單片機串行通信及應(yīng)用_第1頁
單片機串行通信及應(yīng)用_第2頁
單片機串行通信及應(yīng)用_第3頁
單片機串行通信及應(yīng)用_第4頁
單片機串行通信及應(yīng)用_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

單片機串行通信及應(yīng)用第1頁,共42頁,2023年,2月20日,星期一5.1概述1、按數(shù)據(jù)傳輸方向分類

1)單工方式——數(shù)據(jù)只能向一個方向傳輸。

2)半雙工方式——允許數(shù)據(jù)分時兩個方向傳輸。

第2頁,共42頁,2023年,2月20日,星期一3)全雙工方式——數(shù)據(jù)可以同時往兩個相反的方向傳輸。第3頁,共42頁,2023年,2月20日,星期一

2)同步方式:每個數(shù)據(jù)位占用的時間都相等,發(fā)送機每一個基本的時間單位發(fā)送一位,接收機與發(fā)送機的時鐘必須嚴格同步。其格式如圖。

2、按傳輸數(shù)據(jù)格式分類:異步和同步通信方式1)異步方式:用一個起始位表示字符的開始,停止位表示字符的結(jié)束。數(shù)據(jù)位則在起始位之后,停止位之前,這樣構(gòu)成一幀,其格式如圖。第4頁,共42頁,2023年,2月20日,星期一3常用串行接口標準RS-232

RS-232是PC機與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊.0:+5~+15V,

1:在-5~-15V

傳送距離最大為約15米

最高速率為20kb/s

點對點第5頁,共42頁,2023年,2月20日,星期一RS-422/485

RS-422、RS-485與RS-232不一樣,數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。

1:A、B電壓差在+2~+6V

0:A、B電壓差在-2~-6V

在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的第6頁,共42頁,2023年,2月20日,星期一RS-422/485

RS-422的最大傳輸距離為4000英尺(約1219米),最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。

RS-485比RS-422有改進,總線上可多32個設(shè)備。第7頁,共42頁,2023年,2月20日,星期一通用串行總線USBUSB接口特點1.接口類型一致2.速度快

目前USB2.0速度達480MbpsM3.接口數(shù)量無限一個設(shè)備上如果有USB接口,那其它USB設(shè)備接到此口上和接到主機的USB接口上是一樣的。USB可連接127個周邊設(shè)備,所以說是“無限的”。4.提供外設(shè)電源5.具有即插即用的功能6.具有熱插拔功能USB外設(shè)可以帶電插拔功能。7.傳輸距離5m第8頁,共42頁,2023年,2月20日,星期一IEEE1394●使用方便,支持熱插拔,即插即用,無需設(shè)置設(shè)備ID號,從Win98SE以上版本的操作系統(tǒng)開始內(nèi)置IEEE1394支持核心,無需驅(qū)動程序。

●數(shù)據(jù)傳輸速度快,IEEE1394a高達400Mbps,后續(xù)的IEEE1394b標準可將速度提升到800Mbps、1.6Gbps甚至3.2Gbps。

●自帶供電線路,能提供8—40V可變電壓,允許通過最大電流也達到1.5A左右,因此它能為耗電量要求小的設(shè)備進行供電。

●真正點對點連接(peer-to-peer),設(shè)備間不分主從,可直接實現(xiàn)兩臺DV間的數(shù)據(jù)傳輸或是多臺電腦共享一臺DV機,而且從理論上講我們可以直接將IEEE1394接口DV機中的圖像數(shù)據(jù)保存到IEEE1394接口的硬盤中。第9頁,共42頁,2023年,2月20日,星期一5.2 MCS-51的串行口

第10頁,共42頁,2023年,2月20日,星期一第11頁,共42頁,2023年,2月20日,星期一5.2 MCS-51的串行口

1、數(shù)據(jù)緩沖器SBUF

發(fā)送SBUF和接收SBUF共用一個地址99H。2、串行口控制寄存器SCON

寄存器的字節(jié)地址為98H,可位尋址。SCON格式如圖。SM0、SM1:控制串行口的工作方式00011011SM2:多機控制位,用于多機通訊。REN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收。TB8:發(fā)送的第9位數(shù)據(jù)位,可用作校驗位和地址/數(shù)據(jù)標識位RB8:接收的第9位數(shù)據(jù)位或停止位TI:發(fā)送中斷標志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零RI:接收中斷標志,接收一幀結(jié)束,RI=1,必須軟件清零第12頁,共42頁,2023年,2月20日,星期一3.特殊功能寄存器PCON其字節(jié)地址為87H,沒有位尋址功能,其中與串行接口有關(guān)的只有D7位。SMOD(PCON.7):波特率倍增位。當SMOD=1時,波特率加倍;當SMOD=0時,波特率不加倍。第13頁,共42頁,2023年,2月20日,星期一3、串行口的工作方式

(1)方式0:同步移位寄存器方式。用于擴展并行I/O接口。1.一幀8位,無起始位和停止位。2.RXD:數(shù)據(jù)輸入/輸出端。

TXD:同步脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。3.波特率B=fosc/12

如:fosc=12MHz, B=1MHz,每位數(shù)據(jù)占1s。4.發(fā)送過程:寫入SBUF,啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收過程:REN=1且RI=0,啟動接收,一幀接收完畢,RI=1。

發(fā)送時序?qū)懭隨BUFRXD輸出TXDTID0D1D2D3D4D5D6D7寫REN=1RI=0RXD輸入RI

接收時序(a)(b)第14頁,共42頁,2023年,2月20日,星期一(2)方式1:8位數(shù)據(jù)異步通訊方式。1.一幀10位:8位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。2.RXD:接收數(shù)據(jù)端。TXD:發(fā)送數(shù)據(jù)端。3.波特率:用T1作為波特率發(fā)生器,B=(2SMOD/32)×T1溢出率。4.發(fā)送:寫入SBUF,同時啟動發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且停止位為1(或SM2=0),將接收數(shù)據(jù)裝入SBUF,停止位裝入RB8,并使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。當REN=1,CPU開始采樣RXD引腳負跳變信號,若出現(xiàn)負跳變,才進入數(shù)據(jù)接收狀態(tài),先檢測起始位,若第一位為0,繼續(xù)接收其余位;否則,停止接收,重新采樣負跳變。數(shù)據(jù)采樣速率為波特率16倍頻,在數(shù)據(jù)位中間,用第7、8、9個脈沖采樣3次數(shù)據(jù)位,并3中取2保留采樣值。第15頁,共42頁,2023年,2月20日,星期一方式1串行發(fā)送接收時序圖寫入SBUF采樣(a)發(fā)送時序圖TXD數(shù)據(jù)輸出TID0D1D2D3D4D5D6D7停止位起始位RXD輸入數(shù)據(jù)(b)接收時序圖D0D1D2D3D4D5D6D7停止位起始位RI檢測負跳變第16頁,共42頁,2023年,2月20日,星期一(3)方式2和方式39位數(shù)據(jù)異步通訊方式。1.一幀為11位:9位數(shù)據(jù)位,1個起始位(0),1個停止位(1)。 第9位數(shù)據(jù)位在TB8/RB8中,常用作校驗位和多機通訊標識位。2.RXD:接收數(shù)據(jù)端,TXD:發(fā)送數(shù)據(jù)端。3.波特率:方式2:BR=(2SMOD/64)×fosc。 方式3:BR=(2SMOD/32)×T1溢出率。4.發(fā)送:先裝入TB8,寫入SBUF并啟動發(fā)送,發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1(或SM2=0),將接收數(shù)據(jù)裝入接收SBUF,第9位裝入RB8,使RI=1;否則丟棄接收數(shù)據(jù),不置位RI。發(fā)送時序?qū)懭隨BUFTXD輸出TIRXD輸入接收時序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7檢測負跳變第17頁,共42頁,2023年,2月20日,星期一(4)計算波特率方式0為固定波特率:BR=fosc/12 方式2可選兩種波特率:BR=(2SMOD

/64)×fosc 方式1、3為可變波特率,用T1作波特率發(fā)生器。

BR=(2SMOD/32)×T1溢出率

T1溢出率=fosc/(12×(256-x))串行口方式1、3,根據(jù)波特率選擇T1工作方式,計算時間常數(shù)。T1選方式2:TH1=X=28-(2SMOD×

fosc)/(12×32×BR)T1選方式1用于低波特率,需考慮T1重裝時間常數(shù)時間。第18頁,共42頁,2023年,2月20日,星期一簡單示例設(shè)波特率為1200bps,求定時器初值X大小并進行初始化(設(shè)SMOD=0,fosc=12MHz)

1200=(1/32)*(fosc/(12*(256-x)))

X=E6HMOVTMOD,#20HMOVTH1,#0E6HMOVTL1,#0E6HMOVPCON,#00HMOVSCON,#50H

第19頁,共42頁,2023年,2月20日,星期一5.3

雙機通信5-3-1主從機間的通信

1雙機串行異步通信(1)單片機與單片機間的串行異步通信接口設(shè)計兩臺8031直接通信如圖:

第20頁,共42頁,2023年,2月20日,星期一兩臺8031采用RS232C總線通信如圖:

第21頁,共42頁,2023年,2月20日,星期一(2)單片機與PC系列微機間的異步串行通信接口設(shè)計

8031單片機與PC系列微機是兩種不同類型的機種,它們的硬件結(jié)構(gòu)不同,具有的電氣特性也不一樣,因此它們之間不能用導(dǎo)線直接連接,而要通過電平轉(zhuǎn)換電路。8031單片機和PC機通過RS232C總線通信接口圖如下:第22頁,共42頁,2023年,2月20日,星期一雙機通信實驗項目1:A機循環(huán)發(fā)送0、1、2給B機,B機收到0,對P1.0口線的LED取反,收到1對P1.1口線的LED取反,類推。項目2:利用8279的鍵盤、顯示管理功能,A機按下8279管理的5個鍵,B機通過8279管理的數(shù)碼管分別顯示A、B、C、D、E。第23頁,共42頁,2023年,2月20日,星期一項目1:發(fā)送機程序;發(fā)送機程序

ORG0000HLJMPMAIN

ORG0010HMAIN:LCALLDELAYLCALLINITSYSMOV20H,#00HLOOP:LCALLSENDLCALLDELAYINC20HCJNE20H,#03H,LOOPMOV20H,#00HAJMPLOOPSJMP$

;發(fā)送子程序

SEND:MOVA,20HCLRTIMOVSBUF,AJNBTI,$RET;串口初始化程序INITSYS:MOVSCON,#50HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#00H;SMOD=0SETBTR1CLREARET;延時子程序DELAY:MOVR6,#00HLOOP1:MOVR7,#00HDJNZR7,$DJNZR6,LOOP1RET

第24頁,共42頁,2023年,2月20日,星期一項目1:接收機程序ORG0000HLJMPMAINORG0023HRECEIVE:CLRRIMOVA,SBUFP10:CJNEA,#00H,P11CPLP1.0AJMPBACKP11:CJNEA,#01H,P12CPLP1.1AJMPBACKP12:CPLP1.2BACK:RETIORG0200HMAIN:MOVR0,#0FFHDJNZR0,$LCALLINITSYSSJMP$INITSYS:MOVSCON,#50HMOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3HMOVPCON,#00H;SMOD=0SETTR1SETBEASETBESRET第25頁,共42頁,2023年,2月20日,星期一項目2:發(fā)送機實驗程序,含8279;;;;發(fā)送機程序

DISCHAREQU3EHKEYVALUEEQU3FHKEYAEQU00HKEYBEQU01HKEYCEQU02HKEYDEQU03HKEYEEQU04HCOM8279EQU4001HDAT8279EQU4000HKEYFLAGBIT20H ORG0000HMAIN:MOVR0,#0FFHDJNZR0,$;開機延時

LCALLINITSYS;系統(tǒng)初始化

MOV40H,#00H;程序運行初始顯示008279MOV41H,#00H;MOV42H,#08HMOV43H,#02HMOV44H,#07HMOV45H,#09HLLOOP:LCALLKEY;調(diào)鍵處理子程序

LCALLDISPLAY;調(diào)顯示子程序

JNBKEYFLAG,LLOOPCLRKEYFLAGLCALLSOLVEKEYLCALLSEND;調(diào)用發(fā)送子程序

AJMPLLOOP第26頁,共42頁,2023年,2月20日,星期一;;;;;發(fā)送子程序

SEND:PUSHACCCLRTIMOVA,DISCHARMOVSBUF,AJNBTI,$POPACCRET;;;;;系統(tǒng)初始化子程序INITSYS:MOVTMOD,#20H;設(shè)定時器工作方式

MOVTH1,#0F3HMOVTl1,#0F3H;MOVPCON,#80H;設(shè)置波特率=2.4KbpsMOVSCON,#50h;允許接收,10位異步通訊

CLREASETBTR1LCALLINIT8279;8279初始化

RET;;;;;;8279初始化子程序INIT8279:MOVDPTR,#COM8279;8279控制口

MOVA,#0DFH;清除顯示RAM及FIFORAM MOVX@DPTR,ALOOP0: MOVXA,@DPTR JBACC.7,LOOP0;直到DU=0 MOVA,#00H MOVX@DPTR,A;8*8左邊輸入,編碼掃描鍵盤

MOVA,#32H MOVX@DPTR,A;分頻系數(shù)18RET;;;;;;顯示子程序DISPLAY:PUSHDPHPUSHDPLPUSHACCMOV30H,#80HMOVR7,#06HMOVR0,#40HDIS1:MOVDPTR,#COM8279MOVA,30HMOVX@DPTR,A;準備對第0個顯示RAM寫數(shù)據(jù)據(jù)

MOVA,@R0MOVDPTR,#ZIXINGMOVCA,@A+DPTR;取字形碼

MOVDPTR,#DAT8279MOVX@DPTR,A;送字形碼

INCR0;修改顯示緩沖區(qū)單元地址

INC30H;修改顯示RAM地址

DJNZR7,DIS1POPACCPOPDPLPOPDPHRETZIXING:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH第27頁,共42頁,2023年,2月20日,星期一;;;;;;鍵值處理子程序KEY: PUSHDPHPUSHDPLPUSHACCMOVDPTR,#COM8279; MOVXA,@DPTR; ANLA,#07H;檢查FIFO中有無鍵值

JZKEYBACK;無鍵值,轉(zhuǎn)KEYBACK MOVA,#40H MOVX@DPTR,A;寫指令,要讀FIFORAMMOVDPTR,#DAT8279;MOVXA,@DPTR;讀數(shù)據(jù)口,取鍵值

ANLA,#3FHSETBKEYFLAGMOVKEYVALUE,A;送鍵值入鍵值緩沖區(qū)KEYBACK:POPACCPOPDPLPOPDPHRET

;;;;;;鍵功能處理子程序SOLVEKEY:PUSHACCMOVA,KEYVALUEPKEYA:CJNEA,#KEYA,PKEYBMOVDISCHAR,#0AHMOV40H,#0AHAJMPSKEYBACKPKEYB:CJNEA,#KEYB,PKEYCMOVDISCHAR,#0BHMOV41H,#0BHAJMPSKEYBACKPKEYC:CJNEA,#KEYC,PKEYDMOVDISCHAR,#0CHMOV42H,#0CHAJMPSKEYBACKPKEYD:CJNEA,#KEYD,SKEYBACKMOVDISCHAR,#0DHMOV43H,#0DHAJMPSKEYBACKSKEYBACK:CLRKEYFLAGMOVKEYVALUE,#0FFHPOPACCRET第28頁,共42頁,2023年,2月20日,星期一項目2:接收機實驗程序,含8279;;;;接收機程序

DISCHAREQU3EHCOM8279EQU4001HDAT8279EQU4000HCOMFLAGBIT20HORG0000HLJMPMAINORG0023HRECEIVE:CLRRIMOVA,SBUFMOVDISCHAR,ASETBCOMFLAGRETI ORG0100HMAIN:MOVR0,#0FFHDJNZR0,$;開機延時

LCALLINITSYS;系統(tǒng)初始化

MOV40H,#00H;程序運行初始顯示008279MOV41H,#00H;MOV42H,#08HMOV43H,#02HMOV44H,#07HMOV45H,#09HLLOOP:LCALLDISPLAY;調(diào)顯示子程序

JNBCOMFLAG,LLOOPCLRCOMFLAGMOV40H,DISCHARAJMPLLOOP;;;;;系統(tǒng)初始化子程序INITSYS:MOVTMOD,#20H;設(shè)定時器工作方式

MOVTH1,#0F3HMOVTl1,#0F3H;MOVPCON,#80H;設(shè)置波特率=2.4KbpsMOVSCON,#50h;允許接收,10位異步通訊

SETBEASETBES;允許串口中斷

SETBTR1LCALLINIT8279;8279初始化

RET;;;;;;8279初始化子程序INIT8279:MOVDPTR,#COM8279;8279控制口

MOVA,#0DFH;清除顯示RAM及FIFORAM MOVX@DPTR,ALOOP0:MOVXA,@DPTR JBACC.7,LOOP0;直到DU=0 MOVA,#00H MOVX@DPTR,A;8*8左邊輸入,編碼掃描鍵盤

MOVA,#32H MOVX@DPTR,A;分頻系數(shù)18RET

第29頁,共42頁,2023年,2月20日,星期一;;;;;;顯示子程序DISPLAY:PUSHDPHPUSHDPLPUSHACCMOV30H,#80HMOVR7,#06HMOVR0,#40HDIS1:MOVDPTR,#COM8279MOVA,30HMOVX@DPTR,A;準備對第0個顯示RAM寫數(shù)據(jù)據(jù)

MOVA,@R0MOVDPTR,#ZIXINGMOVCA,@A+DPTR;取字形碼

MOVDPTR,#DAT8279MOVX@DPTR,A;送字形碼

INCR0;修改顯示緩沖區(qū)單元地址

INC30H;修改顯示RAM地址

DJNZR7,DIS1POPACCPOPDPLPOPDPHRETZIXING:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH第30頁,共42頁,2023年,2月20日,星期一5-3-2多機通信接口教學目標教學要求:掌握多機通信的原理及實現(xiàn)過程,能設(shè)計簡單的多機通信系統(tǒng)及程序。本節(jié)重點:多機通信原理本節(jié)難點:SM2、TB8、RB8在通信過程中的作用第31頁,共42頁,2023年,2月20日,星期一多機通信的應(yīng)用領(lǐng)域典型應(yīng)用:校園卡系統(tǒng)、智能樓宇、自動溫控蔬菜大棚、大型糧庫、工廠自動化;1#打卡機2#打卡機3#打卡機……n#打卡機第32頁,共42頁,2023年,2月20日,星期一1.MCS-51多機通信原理

串行口控制寄存器SCON中的SM2為多機通信接口控制位。串行口工作于方式2或3。

SM2------多機通信位;

TB8/RB8----地址/數(shù)據(jù)區(qū)分位;若SM2為1,則僅當接收到的第9位數(shù)據(jù)RB8為1時,數(shù)據(jù)才裝入SBUF,置位RI,請求CPU對數(shù)據(jù)進行處理;如果接收到的第9位數(shù)據(jù)RB8為0,則不產(chǎn)生中斷標志RI,信息丟失,CPU不做任何處理。當SM2為0時,則接收到一個數(shù)據(jù)后,不管第9位數(shù)據(jù)RB8是0還是1,都將數(shù)據(jù)裝入接收緩沖器SBUF并置位中斷標志RI,請求CPU處理。關(guān)鍵是SM2與TB8、RB8的關(guān)系!第33頁,共42頁,2023年,2月20日,星期一SM2、RB8與從機動作關(guān)系SM2RB8從機動作10此時不能接收數(shù)據(jù)11能收到主機發(fā)的數(shù)據(jù)(地址信息)00進入串口中斷,對接收的數(shù)據(jù)進行處理01進入串口中斷,對接收的數(shù)據(jù)進行處理第34頁,共42頁,2023年,2月20日,星期一通信過程所有從機的SM2=1,處于只接收地址幀狀態(tài)所有同學坐著聽講主機發(fā)地址信息,以第9位TB8=1表示發(fā)送的是地址老師喊同學名字從機接收到地址幀后與本機地址比較所有同學聽到名字與自己的名字比較被尋址從機SM2=0,其作從機SM2=1不變名字相符的同學站起來主機發(fā)數(shù)據(jù)信息,對已被尋址的從機因SM2=0,可以接收主機發(fā)來的信息。其余從機因SM2=1不理睬主機。老師與站起的同學進行提問回答課堂交流被尋址的從機SM2置1.主機可另發(fā)地址幀與其它從機通信時?;卮饐栴}的同學坐下多機通信動畫演示第35頁,共42頁,2023年,2月20日,星期一2.多機通信系統(tǒng)設(shè)計

設(shè)多機通信系統(tǒng)主、從機晶振為6MHz,波特率為2400bps,以方式3進行多機串行通信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論