




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、串行通信,本章要點(diǎn),異步通信和同步通信 串行通信波特率 串行通信的制式 串行通信的校驗(yàn) 串行口特殊功能寄存器 串行工作方式,串行通信優(yōu)點(diǎn):便于長(zhǎng)距離傳送 缺點(diǎn):傳送速度較慢,計(jì)算機(jī)與外界信息交換稱為通信。,通信的基本方式可分為并行通信和串行通信:,并行通信是數(shù)據(jù)的各位同時(shí)發(fā)送或同時(shí)接收;,串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。,并行通信優(yōu)點(diǎn):傳送速度快 缺點(diǎn):不便長(zhǎng)距離傳送,串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送 串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。 常見的有: 通用異步收發(fā)器(UART)本課程介紹的串口 通用串行
2、總線(USB) I2C總線 CAN總線 SPI總線 RS-485,RS-232C,RS422A標(biāo)準(zhǔn)等等,異步通信對(duì)硬件要求較低,實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單、靈活,適用于數(shù)據(jù)的隨機(jī)發(fā)送/接收,但因每個(gè)字節(jié)都要建立一次同步,即每個(gè)字符都要額外附加兩位,所以工作速度較低,在單片機(jī)中主要采用異步通信方式。, 1 串行通信概述,一、異步通信和同步通信,串行通信按同步方式可分為異步通信和同步通信。,1、異步通信,異步通信依靠起始位、停止位保持通信同步。,異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗(yàn)位和停止位。,同步通信傳輸速度較快,但要求有準(zhǔn)確的時(shí)鐘來(lái)實(shí)現(xiàn)收發(fā)雙方的嚴(yán)格同步,對(duì)硬件要求較高,適用于成批
3、數(shù)據(jù)傳送。,2、 同步通信,同步通信依靠同步字符保持通信同步。,同步通信是由12個(gè)同步字符和多字節(jié)數(shù)據(jù)位組成,同步字符作為起始位以觸發(fā)同步時(shí)鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時(shí)間相等;空閑位需發(fā)送同步字符。,波特率的倒數(shù)即為每位傳輸所需的時(shí)間。 相互通信的甲乙雙方必須具有相同的波特率,否則無(wú)法成功地完成串行數(shù)據(jù)通信。,二、串行通信波特率,波特率bps(bit per second)定義: 每秒傳輸數(shù)據(jù)的位數(shù),即:,1波特 = 1位/秒(1bps),三、串行通信的制式,串行通信按照數(shù)據(jù)傳送方向可分為三種制式:,單工制式是指甲乙雙方通信時(shí)只能單向傳送數(shù)據(jù),發(fā)送方和接收方固
4、定。,1、單工制式(Simplex),半雙工制式是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時(shí)接收和發(fā)送,發(fā)送時(shí)不能接收,接收時(shí)不能發(fā)送。,2、半雙工制式(Half Duplex),全雙工制式是指通信雙方均設(shè)有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實(shí)現(xiàn)甲乙雙方同時(shí)發(fā)送和接收數(shù)據(jù),發(fā)送時(shí)能接收,接收時(shí)也能發(fā)送。,3、全雙工制式(Full Duplex),四、串行通信的校驗(yàn),3、循環(huán)冗余碼校驗(yàn) (Cyclic Redundancy Check,簡(jiǎn)稱CRC),1、奇偶校驗(yàn),2、累加和校驗(yàn),累加和校驗(yàn)是指發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和,并將“校驗(yàn)和”附加到數(shù)據(jù)塊
5、末尾。接收方接收數(shù)據(jù)時(shí)也是先對(duì)數(shù)據(jù)塊求和,將所得結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無(wú)差錯(cuò),否則即出現(xiàn)了差錯(cuò)?!靶r?yàn)和”的加運(yùn)算可用邏輯加,也可用算術(shù)加。累加和校驗(yàn)的缺點(diǎn)是無(wú)法檢驗(yàn)出字節(jié)位序(或1、0位序不同)的錯(cuò)誤。,循環(huán)冗余碼校驗(yàn)的基本原理是將一個(gè)數(shù)據(jù)塊看成一個(gè)位數(shù)很長(zhǎng)的二進(jìn)制數(shù),然后用一個(gè)特定的數(shù)去除它,將余數(shù)作校驗(yàn)碼附在數(shù)據(jù)塊后一起發(fā)送。接收端收到該數(shù)據(jù)塊和校驗(yàn)碼后,進(jìn)行同樣的運(yùn)算來(lái)校驗(yàn)傳送是否出錯(cuò)。目前CRC已廣泛用于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)通信中,并在國(guó)際上形成規(guī)范,已有不少現(xiàn)成的CRC軟件算法。,80C51系列單片機(jī)有一個(gè)全雙工的串行口,這個(gè)口既可以用于網(wǎng)絡(luò)通信,也可以實(shí)現(xiàn)串行異步通信
6、,還可以作為同步移位寄存器使用。, 2 80C51串行口,51單片機(jī)的串行接口,SBUF(發(fā)),SBUF(收),發(fā)送控制器 TI,接收控制器 RI,移位寄存器,波特率發(fā)生器T1,1,A累加器,(門)移位寄存器,RxD,TxD,去申請(qǐng)中斷,引腳,引腳,CPU內(nèi)部,發(fā)送時(shí),只需將發(fā)送數(shù)據(jù)輸入SBUF,CPU將自動(dòng)啟動(dòng)和完成串行數(shù)據(jù)的發(fā)送; 接收時(shí),CPU將自動(dòng)把接收到的數(shù)據(jù)存入SBUF,用戶只需從SBUF中讀出接收數(shù)據(jù)。,一、串行口特殊功能寄存器,1、串行數(shù)據(jù)緩沖器SBUF,在邏輯上只有一個(gè),既表示發(fā)送寄存器,又表示接收寄存器,具有同一個(gè)單元地址99H,用同一寄存器名SBUF。 在物理上有兩個(gè),一
7、個(gè)是發(fā)送緩沖寄存器,另一個(gè)是接收緩沖寄存器。,指令 MOV SBUF,A 啟動(dòng)一次數(shù)據(jù)發(fā)送,可向SBUF 再發(fā)送下一個(gè)數(shù) 指令 MOV A,SBUF 完成一次數(shù)據(jù)接收,SBUF可再 接收下一個(gè)數(shù),2、串行控制寄存器SCON, SM0 SM1 串行口工作方式選擇位。 SM2 多機(jī)通信控制位。 REN 允許接收控制位。REN=1,允許接收。 TB8 方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。 RB8 方式2和方式3中要接收的第9位數(shù)據(jù)。 TI 發(fā)送中斷標(biāo)志。 RI 接收中斷標(biāo)志。, SM0 SM1串行口工作方式選擇位。其狀態(tài)組合所對(duì)應(yīng)的工作方式如表 2所示。, SM2-多機(jī)通信控制位。在方式2和方式3中
8、,若SM2=1,且RB8(接收到的第9位數(shù)據(jù))=1時(shí),將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請(qǐng)求;否則,將接收到的8位數(shù)據(jù)丟棄。而當(dāng)SM2=0時(shí),則不論第9位數(shù)據(jù)為0還是為1,都將前8位數(shù)據(jù)裝入 SBUF中,并產(chǎn)生中斷請(qǐng)求。 在方式0時(shí),SM2必須為0。,REN-允許接收控制位。REN位用于對(duì)串行數(shù)據(jù)的接收進(jìn)行控制:REN=0,禁止接收;REN=1,允許接收。該位由軟件置位或復(fù)位。 TB8-方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。在方式2和方式3時(shí),TB8是發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0表示數(shù)據(jù),TB8=1表示地址。該位由軟件
9、置位或復(fù)位。 TB8還可用于奇偶校驗(yàn)位。 RB8-方式2和方式3中要接收的第9位數(shù)據(jù)。在方式2或方式3時(shí),RB8存放接收到的第9位數(shù)據(jù)。,TI-發(fā)送中斷標(biāo)志。當(dāng)方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,遇發(fā)送停止位時(shí),該位由硬件置位。因此TI=1,表示幀發(fā)送結(jié)束,可軟件查詢TI位標(biāo)志,也可以請(qǐng)求中斷。TI位必須由軟件清0。 RI-接收中斷標(biāo)志。當(dāng)方式0時(shí),接收完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,當(dāng)接收到停止位時(shí),該位由硬件置位。因此RI=1,表示幀接收結(jié)束,可軟件查詢RI位標(biāo)志,也可以請(qǐng)求中斷。RI位也必須由軟件清0。,接收/發(fā)送數(shù)據(jù),無(wú)論是否采用中斷方式工作,每接
10、收/發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì) RI/TI 清0,以備下一次收/發(fā)。,3、電源控制寄存器PCON,SMOD=1,串行口波特率加倍。PCON寄存器不能進(jìn)行位尋址。, SMOD:在串行口工作方式 1、2、3 中,是波特率加倍位 =1 時(shí),波特率加倍 =0 時(shí),波特率不加倍。 (在PCON中只有這一個(gè)位與串口有關(guān)),二、串行工作方式 80C51串行通信共有4種工作方式,由串行控制寄存器SCON中SM0 SM1決定。 1、串行工作方式0(同步移位寄存器工作方式) 以RXD(P3.0)端作為數(shù)據(jù)移位的輸入/輸出端, 以TXD(P3.1)端輸出移位脈沖。 移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,不設(shè)起始位和停止
11、位,無(wú)論輸入/輸出,均低位在前高位在后。 其幀格式為:,方式0可將串行輸入輸出數(shù)據(jù)轉(zhuǎn)換成并行輸入輸出數(shù)據(jù)。, 數(shù)據(jù)發(fā)送,在移位時(shí)鐘脈沖(TXD)的控制下,數(shù)據(jù)從串行口RXD端逐位移入74HC164 SA、SB端。當(dāng)8位數(shù)據(jù)全部移出后,SCON寄存器的TI位被自動(dòng)置1。其后74HC164的內(nèi)容即可并行輸出。74HC164 CLR為清0端,輸出時(shí)CLR必須為1,否則74HC164 Q0Q7輸出為0。,串行口作為并行輸出口使用時(shí),要有“串入并出”的移位寄存器配合。(例如CD4094或74HCl64),(2) 數(shù)據(jù)接收,串行口作為并行輸入口使用時(shí),要有“并入串出”的移位寄存器配合。(例如CD4014或
12、74HCl65),74HC165 S/L端為移位/置入端,當(dāng)S/L=0時(shí),從Q0Q7并行置入數(shù)據(jù),當(dāng)S/L=1時(shí),允許從QH端移出數(shù)據(jù)。在80C51串行控制寄存器SCON中的REN=1時(shí),TXD端發(fā)出移位時(shí)鐘脈沖,從RXD端串行輸入8位數(shù)據(jù)。當(dāng)接收到第8位數(shù)據(jù)D7后,置位中斷標(biāo)志RI,表示一幀數(shù)據(jù)接收完成。, 波特率: 方式0 波特率固定,為單片機(jī)晶振頻率的十二分之一。即一個(gè)機(jī)器周期進(jìn)行一次移位。 應(yīng)用舉例 【例 1】電路如圖所示,試編制程序按下列順序要求每隔0.5秒循環(huán)操作。, 從右向左依次點(diǎn)亮,每次亮一個(gè); 從左向右依次點(diǎn)亮,每次增加一個(gè),直至全部點(diǎn)亮; 返回從不斷循環(huán)。, 8個(gè)發(fā)光二極管
13、全部點(diǎn)亮;, 從左向右依次暗滅,每次減少一個(gè),直至全滅;, 從左向右依次點(diǎn)亮, 每次亮一個(gè);,解:編程如下:,LIGHT:MOV SCON,#00H ;串行口方式0 CLR ES ;禁止串行中斷 MOV DPTR,#TAB ;置發(fā)光二極管亮暗控制字表首址 LP1: MOV R7,#0 ;置順序編號(hào)0 LP2: MOV A,R7 ;讀順序編號(hào) MOVC A,A+DPTR ;讀控制字 CLR P1.0 ;關(guān)閉并行輸出,STR=O時(shí),關(guān)閉并行輸出; MOV SBUF,A ;啟動(dòng)串行發(fā)送 JNB TI,$ ;等待發(fā)送完畢 CLR TI ;清發(fā)送中斷標(biāo)志 SETB P1.0 ;開啟并行輸出,STR=1時(shí)
14、,開啟并行輸出; LCALL DLY500ms ;調(diào)用延時(shí)0.5秒子程序(參閱例4-13) INC R7 ;指向下一控制字 CJNE R7,#30,LP2 ;判循環(huán)操作完否?未完繼續(xù) SJMP LP1 ;順序編號(hào)029依次操作完畢,從0開始重新循環(huán),TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;從左向右依次暗滅, 每次減少一個(gè),直至全滅; DB 80H,40H,20H,10H,08H,04H,02H,01H;從左向右依次點(diǎn)亮,每次亮一個(gè) DB 02H,04H,08H,10H,20H,40H,80H;從右向左依次點(diǎn)亮,每次亮一個(gè) DB 0C0H,0E0
15、H,0F0H,0F8H,0FCH,0FEH;從左向右依次點(diǎn)亮, 每次增加一個(gè),直至全部點(diǎn)亮;,【例】電路如圖所示,試編制程序輸入K1K8狀態(tài)數(shù)據(jù),并存入內(nèi)RAM 40H。,解:編程如下: KIN: MOV SCON,#00H;串行口方式0 CLR ES ;禁止串行中斷 CLR P1.0 ;鎖存并行輸入數(shù)據(jù) SETB P1.0 ;允許串行移位操作 SETB REN ;允許并啟動(dòng)接收(TXD發(fā)送移位脈沖) JNB RI,$ ;等待接收完畢 MOV 40H,SBUF ;存入K1K8狀態(tài)數(shù)據(jù) RET ;,2、串行工作方式1 方式1是一幀10位的異步串行通信方式,包括1個(gè)起始位,8個(gè)數(shù)據(jù)位和一個(gè)停止位。
16、 其幀格式為:, 數(shù)據(jù)發(fā)送 發(fā)送時(shí)只要將數(shù)據(jù)寫入SBUF,在串行口由硬件自動(dòng)加入起始位和停止位,構(gòu)成一個(gè)完整的幀格式。然后在移位脈沖的作用下,由TXD端串行輸出。一幀數(shù)據(jù)發(fā)送完畢,將SCON中的TI置1。 數(shù)據(jù)接收 接收時(shí),在REN=1前提下,當(dāng)采樣到RXD從1向0跳變狀態(tài)時(shí),就認(rèn)定為已接收到起始位。隨后在移位脈沖的控制下,將串行接收數(shù)據(jù)移入SBUF中。一幀數(shù)據(jù)接收完畢,將SCON中的RI置1,表示可以從SBUF取走接收到的一個(gè)字符。,在實(shí)際應(yīng)用時(shí),通常是先確定波特率,后根據(jù)波特率求T1定時(shí)初值,因此上式又可寫為:, 波特率,方式1波特率可變,由定時(shí)/計(jì)數(shù)器T1的計(jì)數(shù)溢出率來(lái)決定。,波特率 =
17、 2SMOD(T1溢出率)/ 32,其中SMOD為PCON寄存器中最高位的值,SMOD=1表示波特率倍增。,當(dāng)定時(shí)計(jì)數(shù)器T1用作波特率發(fā)生器時(shí),通常選用定時(shí)初值自動(dòng)重裝的工作方式2(注意:不要把定時(shí)計(jì)數(shù)器的工作方式與串行口的工作方式搞混淆了)。其計(jì)數(shù)結(jié)構(gòu)為8位,假定計(jì)數(shù)初值為COUNT,單片機(jī)的機(jī)器周期為T,則定時(shí)時(shí)間為(25 COUNT)*T。從而在1s內(nèi)發(fā)生溢出的次數(shù)(即溢出率)為:,波特率=(2SMOD/32)T1的溢出率,波特率=(2SMOD/32)T1的溢出率, 溢出率:T1溢出的頻繁程度 即:T1溢出一次所需時(shí)間的倒數(shù)。, 初值 X = 2n -,2SMOD fosc 32 波特率
18、 12, 波特率 =,2SMOD fosc 32 12(2n - X),其中:X 是定時(shí)器初值, 應(yīng)用舉例,【例 3】設(shè)甲乙機(jī)以串行方式1進(jìn)行數(shù)據(jù)傳送,fosc=11.0592MHz,波特率為1200b/s。甲機(jī)發(fā)送的16個(gè)數(shù)據(jù)存在內(nèi)RAM 40H4FH單元中,乙機(jī)接收后存在內(nèi)RAM 50H為首地址的區(qū)域中。,T1初值 = 256 - = 232 = E8H,32,121200,解:串行方式1波特率取決于T1溢出率(設(shè)SMOD=0),計(jì)算T1定時(shí)初值:,11059200,20,甲機(jī)發(fā)送子程序:,MOV TMOD,#20H;置T1定時(shí)器工作方式2 MOV TL1,#0E8H;置T1計(jì)數(shù)初值 MO
19、V TH1,#0E8H;置T1計(jì)數(shù)重裝值 CLR ET1;禁止T1中斷 SETB TR1;T1啟動(dòng) MOV SCON,#40H;置串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中斷 MOV R0,#40H;置發(fā)送數(shù)據(jù)區(qū)首地址 MOV R2,#16;置發(fā)送數(shù)據(jù)長(zhǎng)度MOVA,R0;讀一個(gè)數(shù)據(jù) MOVSBUF,A;發(fā)送 JNBTI,$;等待一幀數(shù)據(jù)發(fā)送完畢 CLRTI;清發(fā)送中斷標(biāo)志 INCR0;指向下一字節(jié)單元 DJNZR2,TRSA;判16個(gè)數(shù)據(jù)發(fā)完否?未完繼續(xù) RET ;,TXDA:,TRSA:,MOV TMOD,#20H;置T1
20、定時(shí)器工作方式2 MOV TL1,#0E8H;置T1計(jì)數(shù)初值 MOV TH1,#0E8H;置T1計(jì)數(shù)重裝值 CLR ET1;禁止T1中斷 SETB TR1;T1啟動(dòng) MOV SCON,#40H;置串行方式1,禁止接收 MOV PCON,#00H;置SMOD=0(SMOD不能位操作) CLR ES;禁止串行中斷 MOV R0,#50H;置接收數(shù)據(jù)區(qū)首地址 MOV R2,#16;置接收數(shù)據(jù)長(zhǎng)度 SETB REN;啟動(dòng)接收 JNB RI,$;等待一幀數(shù)據(jù)接收完畢 CLR RI;清接收中斷標(biāo)志 MOV A,SBUF;讀接收數(shù)據(jù) MOV R0,A;存接收數(shù)據(jù) INC R0;指向下一數(shù)據(jù)存儲(chǔ)單元 DJNZ
21、 R2,RDSB;判16個(gè)數(shù)據(jù)接收完否?未完繼續(xù) RET ;,乙機(jī)接收子程序:,RXDB:,RDSB:,方式2是一幀11位的串行通信方式,即1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)可編程位TB8/RB8和1個(gè)停止位, 其幀格式為:,3、 串行工作方式2,當(dāng)SMOD=0時(shí),波特率=20 fosc/64= fosc/64 當(dāng)SMOD=1時(shí),波特率=21 fosc/64= fosc/32,可編程位TB8/RB8既可作奇偶校驗(yàn)位用,也可作控制位(多機(jī)通信)用,其功能由用戶確定。,數(shù)據(jù)發(fā)送和接收與方式1基本相同,區(qū)別在于方式2把發(fā)送/接收到的第9位內(nèi)容送入TB8/RB8。,波特率:方式2波特率固定,即fosc/32
22、和fosc/64。 如用公式表示則為:波特率=2SMOD fosc/64,【例 4】 設(shè)計(jì)一個(gè)串行方式2發(fā)送子程序(SMOD=1),將片內(nèi)RAM 50H5FH中的數(shù)據(jù)串行發(fā)送,第9數(shù)據(jù)位作為奇偶校驗(yàn)位。接到接收方核對(duì)正確的回復(fù)信號(hào)(用FFH表示)后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。,解:程序如下:,MOV A,R0 ;讀數(shù)據(jù) MOV C,PSW.0 ;奇偶標(biāo)志送TB8 MOV TB8,C ; MOV SBUF,A ;啟動(dòng)發(fā)送 JNB TI,$ ;等待一幀數(shù)據(jù)發(fā)送完畢 CLR TI ;清發(fā)送中斷標(biāo)志 SETB REN ;允許接收 CLR RI ;清接收中斷標(biāo)志 JNB RI,$ ;等待接收回
23、復(fù)信號(hào) MOV A,SBUF ;讀回復(fù)信號(hào) CPL A ;回復(fù)信號(hào)取反 JNZ TRLP ;非全0(回復(fù)信號(hào)FFH,錯(cuò)誤),轉(zhuǎn)重發(fā) INC R0 ;全0(回復(fù)信號(hào)=FFH,正確), 指向下一數(shù)據(jù)存儲(chǔ)單元 CJNE R0,#60H,TRLP ;判16個(gè)數(shù)據(jù)發(fā)送完否?未完繼續(xù) RET ;,TRLP:,MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#50H;置發(fā)送數(shù)據(jù)區(qū)首址,TRS2:,【例 5】 編制一個(gè)串行方式2接收子程序,接收上例發(fā)送的16個(gè)數(shù)據(jù),存首址為40H的內(nèi)RAM中,并核對(duì)奇偶校驗(yàn)位,接收核對(duì)正確,發(fā)出回復(fù)信號(hào)FFH;
24、發(fā)現(xiàn)錯(cuò)誤,發(fā)出回復(fù)信號(hào)00H,并等待重新接收。,RXD2: MOV SCON,#80H ;置串行方式2,禁止接收 MOV PCON,#80H ;置SMOD=1 MOV R0,#40H ;置接收數(shù)據(jù)區(qū)首址 SETB REN ;啟動(dòng)接收 RWAP: JNB RI,$ ;等待一幀數(shù)據(jù)接收完畢 CLR RI ;清接收中斷標(biāo)志 MOV A,SBUF ;讀接收數(shù)據(jù),并在PSW中產(chǎn)生接收數(shù)據(jù)的奇偶值 JB PSW.0,ONE ;P=1,轉(zhuǎn)另判 JB RB8,ERR ;P=0,RB8=1,接收有錯(cuò); ;P=0,RB8=0,接收正確,繼續(xù)接收 RLOP: MOV R0,A ;存接收數(shù)據(jù) INC R0 ;指向下一
25、數(shù)據(jù)存儲(chǔ)單元 RIT: MOV A,#0FFH ;置回復(fù)信號(hào)正確 FDBK: MOV SBUF,A ;發(fā)送回復(fù)信號(hào) CJNE R0,#50H,RWAP ;判16個(gè)數(shù)據(jù)接收完否?未完繼續(xù) CLR REN ;16個(gè)數(shù)據(jù)正確接收完畢,禁止接收 RET ; ONE: JNB RB8,ERR ;P=1,RB8=0,接收有錯(cuò) SJMP RIT ;P=1,RB8=1,接收正確,繼續(xù)接收 ERR: CLR A ;接收有錯(cuò),置回復(fù)信號(hào)錯(cuò)誤標(biāo)志 SJMP FDBK ;轉(zhuǎn)發(fā)送回復(fù)信號(hào),解:程序如下:,方式3同樣是一幀11位的串行通信方式,其通信過(guò)程與方式2完全相同,所不同的僅在于波特率。方式2的波特率只有固定的兩種
26、,而方式3的波特率則與方式1相同,即通過(guò)設(shè)置T1的初值來(lái)設(shè)定波特率。,4、串行工作方式3,5、串行口四種工作方式的比較,四種工作方式的區(qū)別主要表現(xiàn)在幀格式及波特率兩個(gè)方面。,表 2 四種工作方式比較,解決的方法只有調(diào)整單片機(jī)的時(shí)鐘頻率fosc,通常采用11.0592MHz晶振。,6、常用波特率及其產(chǎn)生條件,常用波特率通常按規(guī)范取1200、2400、4800、9600、,若采用晶振12MHz和6MHz,則計(jì)算得出的T1定時(shí)初值將不是一個(gè)整數(shù),產(chǎn)生波特率誤差而影響串行通信的同步性能。,表 8給出了串行方式1或方式3時(shí)常用波特率及其產(chǎn)生條件。,多機(jī)通信 MCS-51串行口的方式2和方式3有一個(gè)專門的
27、應(yīng)用領(lǐng)域,即多機(jī)通信。這一功能通常采用主從式多機(jī)通信方式,在這種方式中,要用一臺(tái)主機(jī)和多臺(tái)從機(jī)。主機(jī)發(fā)送的信息可以傳送到各個(gè)從機(jī)或指定的從機(jī),各從機(jī)發(fā)送的信息只能被主機(jī)接收,從機(jī)與從機(jī)之間不能進(jìn)行通信。圖6.21是多機(jī)通信的一種連接示意圖。 多機(jī)通信的實(shí)現(xiàn),主要依靠主、從機(jī)之間正確地設(shè)置與判斷SM2和發(fā)送或接收的第9位數(shù)據(jù)來(lái)(TB8或RB8)完成的。我們首先將上述二者的作用總結(jié)如下。,多機(jī)通信連接示意圖,多機(jī)通信的實(shí)現(xiàn),主要依靠主、從機(jī)之間正確地設(shè)置與判斷SM2和發(fā)送或接收的第9位數(shù)據(jù)來(lái)(TB8或RB8)完成的。我們首先將上述二者的作用總結(jié)如下。 在單片機(jī)串行口以方式2或方式3接收時(shí),一方面,若SM2=1,表示置多機(jī)通信功能位。這時(shí)有兩種情況: 接收到第9位數(shù)據(jù)為1,此時(shí)數(shù)據(jù)裝入SBUF,并置RI=1,向CPU發(fā)中斷請(qǐng)求; 接收到第9位數(shù)據(jù)為0,此時(shí)不產(chǎn)生中斷,信息將被丟失,不能接收。另一方面,若SM2=0,則接收到的第9位信息無(wú)論是1還是0,都產(chǎn)生RI=1的中斷標(biāo)志,接收的數(shù)據(jù)裝入SBUF。根據(jù)這個(gè)功能,就可以實(shí)現(xiàn)多機(jī)通信。,在編程前,首先要給各從機(jī)定義地址編號(hào),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑業(yè)項(xiàng)目合作協(xié)議范本
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算帶括號(hào))計(jì)算題專項(xiàng)練習(xí)與答案
- 管道修復(fù)執(zhí)行的國(guó)內(nèi)外標(biāo)準(zhǔn)
- 會(huì)議布置合同范例
- ppp旅游項(xiàng)目合同范例
- 冷鏈道路運(yùn)輸合同范例
- 第三章球類運(yùn)動(dòng)-《籃球運(yùn)球三步上籃》教學(xué)設(shè)計(jì) 2023-2024學(xué)年華東師大版初中體育與健康七年級(jí)
- 倉(cāng)庫(kù)管理員年終工作總結(jié)x
- 安全教育主題班會(huì)總結(jié)
- 中石油epc合同范本
- 基于實(shí)驗(yàn)教學(xué)培養(yǎng)學(xué)生物理核心素養(yǎng)的研究
- 2023年漢字聽寫大會(huì)漢字聽寫知識(shí)競(jìng)賽題庫(kù)及答案
- 退化林修復(fù)投標(biāo)方案
- 鉆孔樁水下混凝土灌注記錄(自動(dòng)生成)1
- 切削刀具及其材料課件
- 穿刺手術(shù)導(dǎo)航定位系統(tǒng)(CQZ2201581)
- 小學(xué)心理健康教育-想法變一變心情換一換教學(xué)課件設(shè)計(jì)
- 機(jī)械加工工藝過(guò)程卡片(實(shí)例)
- 足球腳內(nèi)側(cè)傳球 課件
- 甲亢的中醫(yī)辨證施治
- 統(tǒng)編教材二年級(jí)下冊(cè)“寫話”編排特色解析
評(píng)論
0/150
提交評(píng)論