




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章第七章 89C5189C51串行口及串行通信技術(shù)串行口及串行通信技術(shù)7.1 串行通信基本知識串行通信基本知識7.2 串行口及應(yīng)用串行口及應(yīng)用7.3 89C51與與89C51點對點異步通信點對點異步通信7.4 RS-232C標(biāo)準(zhǔn)接口總線及串行通信硬件設(shè)計標(biāo)準(zhǔn)接口總線及串行通信硬件設(shè)計7.5 89C51與與PC機間通信軟件的設(shè)計機間通信軟件的設(shè)計7.6 PC機與多個單片機間的通信機與多個單片機間的通信 串行通信串行通信優(yōu)點優(yōu)點:便于長距離傳送便于長距離傳送 缺點缺點:傳送速度較慢傳送速度較慢計算機與外界信息交換稱為計算機與外界信息交換稱為通信通信。通信的通信的基本方式基本方式可分為并行通信和
2、串行通信:可分為并行通信和串行通信:并行通信并行通信是數(shù)據(jù)的各位同時發(fā)送或同時接收;是數(shù)據(jù)的各位同時發(fā)送或同時接收;串行通信串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。是數(shù)據(jù)的各位依次逐位發(fā)送或接收。并行通信并行通信優(yōu)點優(yōu)點:傳送速度快傳送速度快 缺點缺點:不便長距離傳送不便長距離傳送串行通信的基本特征是串行通信的基本特征是數(shù)據(jù)數(shù)據(jù)逐位順序逐位順序進行傳送進行傳送串行通信的格式及約定(如:同步方式、通訊速串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平率、數(shù)據(jù)塊格式、信號電平等)不同,形成等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見的有:常見
3、的有:通用異步收發(fā)器通用異步收發(fā)器( (UARTUART) )本課程介紹的串口本課程介紹的串口通用串行總線(通用串行總線(USBUSB)I I2 2C C總線總線CANCAN總線總線SPISPI總線總線RS-485RS-485,RS-232CRS-232C,RS422ARS422A標(biāo)準(zhǔn)標(biāo)準(zhǔn)等等等等v異步通信和同步通信異步通信和同步通信v串行通信波特率串行通信波特率v串行通信的制式串行通信的制式v串行通信的校驗串行通信的校驗v串行口特殊功能寄存器串行口特殊功能寄存器v串行工作方式串行工作方式本章要點本章要點7-1 7-1 串行通信基礎(chǔ)知識串行通信基礎(chǔ)知識一、一、異步通信和同步通信異步通信和同步通
4、信串行通信兩種通信方式:異步通信和同步通信。串行通信兩種通信方式:異步通信和同步通信。1、異步通信異步通信異步通信依靠起始位、停止位保持通信同步。異步通信依靠起始位、停止位保持通信同步。 異步通信數(shù)據(jù)傳送按幀傳輸,異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗位和停止位起始位、數(shù)據(jù)位、校驗位和停止位。異步通信對硬件要求較低,實現(xiàn)起來比異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送/接收,接收,但因每個字節(jié)都要建立一次同步,即每個字但因每個字節(jié)都要建立一次同步,即每個字符都要額外附加兩位,所以工作速度較低,符都要額外
5、附加兩位,所以工作速度較低,在單片機中主要采用異步通信方式。在單片機中主要采用異步通信方式。 同步通信傳輸速度較快,但要求有準(zhǔn)確同步通信傳輸速度較快,但要求有準(zhǔn)確的時鐘來實現(xiàn)收發(fā)雙方的嚴(yán)格同步,對硬件的時鐘來實現(xiàn)收發(fā)雙方的嚴(yán)格同步,對硬件要求較高,適用于成批數(shù)據(jù)傳送。要求較高,適用于成批數(shù)據(jù)傳送。2、 同步通信同步通信同步通信依靠同步字符保持通信同步。同步通信依靠同步字符保持通信同步。 同步通信是同步通信是由由1 12 2個同步字符和多字節(jié)個同步字符和多字節(jié)數(shù)據(jù)位組成數(shù)據(jù)位組成,同步字符作為起始位以觸發(fā)同,同步字符作為起始位以觸發(fā)同步時鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之步時鐘開始發(fā)送或接收數(shù)據(jù)
6、;多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時間相等;空間不允許有空隙,每位占用的時間相等;空閑位需發(fā)送同步字符。閑位需發(fā)送同步字符。 波特率的倒數(shù)即為每位傳輸所需的時間。波特率的倒數(shù)即為每位傳輸所需的時間。 相互通信的甲乙雙方必須具有相同的波特相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。率,否則無法成功地完成串行數(shù)據(jù)通信。二、二、串行通信波特率串行通信波特率波特率波特率bps(bit per second)bps(bit per second)定義定義: 每秒傳輸數(shù)據(jù)的位數(shù),即:每秒傳輸數(shù)據(jù)的位數(shù),即:1波特波特 = 1位位/秒(秒(1bps1bps)三、三、串行通信
7、的制式串行通信的制式 串行通信按照數(shù)據(jù)傳送方向可分為三種制串行通信按照數(shù)據(jù)傳送方向可分為三種制式:式: 單工制式單工制式是指甲乙雙方通信時是指甲乙雙方通信時只能單向傳只能單向傳送數(shù)據(jù)送數(shù)據(jù),發(fā)送方和接收方固定。,發(fā)送方和接收方固定。 1 1、單工制式(單工制式(SimplexSimplex) 半雙工制式半雙工制式是指通信雙方都具有發(fā)送器是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時和接收器,既可發(fā)送也可接收,但不能同時接收和發(fā)送,接收和發(fā)送,發(fā)送時不能接收,接收時不能發(fā)送時不能接收,接收時不能發(fā)送。發(fā)送。2、半雙工制式(半雙工制式(Half DuplexHalf Duplex)
8、 全雙工制式全雙工制式是指通信雙方均設(shè)有發(fā)送器和是指通信雙方均設(shè)有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實現(xiàn)甲乙雙方因此全雙工制式可實現(xiàn)甲乙雙方同時發(fā)送和接同時發(fā)送和接收數(shù)據(jù)收數(shù)據(jù),發(fā)送時能接收,接收時也能發(fā)送。,發(fā)送時能接收,接收時也能發(fā)送。3 3、全雙工制式(全雙工制式(Full DuplexFull Duplex)四、四、串行通信的校驗串行通信的校驗3、循環(huán)冗余碼校驗循環(huán)冗余碼校驗(Cyclic Redundancy Check,Cyclic Redundancy Check,簡稱簡稱CRCCRC)1、奇偶校驗奇偶校驗
9、2、累加和校驗累加和校驗四、四、串行通信的校驗串行通信的校驗3、循環(huán)冗余碼校驗循環(huán)冗余碼校驗(Cyclic Redundancy Check,Cyclic Redundancy Check,簡稱簡稱CRCCRC)1、奇偶校驗奇偶校驗2、累加和校驗累加和校驗累加和校驗累加和校驗是指發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和,并是指發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和,并將將“校驗和校驗和”附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時也是先對數(shù)據(jù)塊求和,將所得結(jié)果與發(fā)送方的時也是先對數(shù)據(jù)塊求和,將所得結(jié)果與發(fā)送方的“校驗和校驗和”進行比較,相符則無差錯,否則即出現(xiàn)進行比較,相符則無差錯,否則即出現(xiàn)了差
10、錯。了差錯?!靶r灪托r灪汀钡募舆\算可用邏輯加,也可用的加運算可用邏輯加,也可用算術(shù)加。累加和校驗算術(shù)加。累加和校驗的缺點是無法檢驗出字節(jié)位序的缺點是無法檢驗出字節(jié)位序( (或或1 1、0 0位序不同位序不同) )的錯誤。的錯誤。 循環(huán)冗余碼校驗的基本原理是將一個數(shù)據(jù)塊看成一個循環(huán)冗余碼校驗的基本原理是將一個數(shù)據(jù)塊看成一個位數(shù)很長的二進制數(shù),然后用一個特定的數(shù)去除它,位數(shù)很長的二進制數(shù),然后用一個特定的數(shù)去除它,將余數(shù)作校驗碼附在數(shù)據(jù)塊后一起發(fā)送。接收端收將余數(shù)作校驗碼附在數(shù)據(jù)塊后一起發(fā)送。接收端收到該數(shù)據(jù)塊和校驗碼后,進行同樣的運算來校驗傳到該數(shù)據(jù)塊和校驗碼后,進行同樣的運算來校驗傳送是否出
11、錯。目前送是否出錯。目前CRC已廣泛用于數(shù)據(jù)存儲和數(shù)已廣泛用于數(shù)據(jù)存儲和數(shù)據(jù)通信中,并在國際上形成規(guī)范,已有不少現(xiàn)成的據(jù)通信中,并在國際上形成規(guī)范,已有不少現(xiàn)成的CRC軟件算法。軟件算法。 80C5180C51系列單片機有一個系列單片機有一個全雙工全雙工的串行口,這個口既可以用于網(wǎng)絡(luò)通的串行口,這個口既可以用于網(wǎng)絡(luò)通信,也可以實現(xiàn)串行異步通信,還可信,也可以實現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。以作為同步移位寄存器使用。7-2 89C517-2 89C51串行口及應(yīng)用串行口及應(yīng)用51單片機的串行接口SBUF(發(fā))(發(fā))SBUF(收)(收)發(fā)送控制器發(fā)送控制器 TI接收控制器接收控制器
12、 RI移位寄存器移位寄存器波波特特率率發(fā)發(fā)生生器器T1 1A累累加加器器(門門)移位寄存器移位寄存器RxDTxD去申請中斷去申請中斷引腳引腳引腳引腳CPU內(nèi)部內(nèi)部發(fā)送時發(fā)送時,只需將發(fā)送數(shù)據(jù)輸入,只需將發(fā)送數(shù)據(jù)輸入SBUFSBUF,CPUCPU將自動啟動和將自動啟動和完成串行數(shù)據(jù)的發(fā)送;完成串行數(shù)據(jù)的發(fā)送; 接收時接收時,CPUCPU將自動把接收到的數(shù)據(jù)存入將自動把接收到的數(shù)據(jù)存入SBUFSBUF,用戶只,用戶只需從需從SBUFSBUF中讀出接收數(shù)據(jù)中讀出接收數(shù)據(jù)。一、一、串行口特殊功能寄存器串行口特殊功能寄存器1 1、串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器SBUFSBUF 在在邏輯上邏輯上只有一個只有
13、一個,既表示發(fā)送寄存器,又表示接收寄,既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單元地址存器,具有同一個單元地址99H99H,用,用同一寄存器名同一寄存器名SBUFSBUF。 在在物理上有兩個物理上有兩個,一個是發(fā)送緩沖寄存器,另一個是接,一個是發(fā)送緩沖寄存器,另一個是接收緩沖寄存器。收緩沖寄存器。指令指令 MOV SBUFMOV SBUF,A A 啟動一次數(shù)據(jù)發(fā)送啟動一次數(shù)據(jù)發(fā)送, ,可向可向SBUFSBUF 再發(fā)送下一個數(shù)再發(fā)送下一個數(shù)指令指令 MOV AMOV A,SBUFSBUF 完成一次數(shù)據(jù)接收完成一次數(shù)據(jù)接收,SBUF,SBUF可再可再 接收下一個數(shù)接收下一個數(shù)2 2、串行控制
14、寄存器串行控制寄存器SCONSCONSCONSCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名稱位名稱SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H功能功能工作方式工作方式選擇選擇多機通多機通信控制信控制接收接收 允許允許發(fā)送發(fā)送 第第9 9位位接收接收 第第9 9位位發(fā)送發(fā)送 中斷中斷接收接收 中斷中斷 SM0 SM1SM0 SM1 串行口串行口工作方式工作方式選擇位。選擇位。 SM2SM2 多機通信控制位。多機通信控
15、制位。 RENREN 允許允許接收控制位。接收控制位。REN=1REN=1,允許接收。,允許接收。 TB8TB8 方式方式2 2和方式和方式3 3中要發(fā)送的第中要發(fā)送的第9 9位數(shù)據(jù)。位數(shù)據(jù)。 RB8RB8 方式方式2 2和方式和方式3 3中要接收的第中要接收的第9 9位數(shù)據(jù)。位數(shù)據(jù)。 TITI 發(fā)送發(fā)送中斷標(biāo)志。中斷標(biāo)志。 RIRI 接收接收中斷標(biāo)志。中斷標(biāo)志。 SM0 SM1SM0 SM1串行口工作方式選擇位。其狀態(tài)組合所對串行口工作方式選擇位。其狀態(tài)組合所對應(yīng)的工作方式如表應(yīng)的工作方式如表6-26-2所示。所示。 SM0 SM1工作方式工作方式 功能說明功能說明 00 0同步移位寄存器輸
16、入同步移位寄存器輸入/輸出輸出,波特率波特率固定固定為為fosc/12 01 18位位UART;波特率;波特率可變可變(TI溢出率溢出率/n,n=32或或16) 10 29位位UART,波特率,波特率固定固定為為fosc/n,(n=64或或32) 11 39位位UART,波特率,波特率可變可變(T1溢出率溢出率/n,n=32或或16) SM2-多機通信控制位。在方式多機通信控制位。在方式2和方式和方式3中,若中,若SM2=1,且,且RB8(接收到的第接收到的第9位數(shù)據(jù)位數(shù)據(jù))=1時,將接收到的前時,將接收到的前8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUF,并置位,并置位RI產(chǎn)生中斷請求;否則,將接收產(chǎn)生中斷
17、請求;否則,將接收到的到的8位數(shù)據(jù)丟棄。而當(dāng)位數(shù)據(jù)丟棄。而當(dāng)SM2=0時,則不論第時,則不論第9位數(shù)據(jù)為位數(shù)據(jù)為0還還是為是為1,都將前,都將前8位數(shù)據(jù)裝入位數(shù)據(jù)裝入 SBUF中,并產(chǎn)生中斷請求。中,并產(chǎn)生中斷請求。 在方式在方式0 0時,時,SM2SM2必須為必須為0 0。 REN-允許接收控制位。允許接收控制位。REN位用于對串位用于對串行數(shù)據(jù)的接收進行控制:行數(shù)據(jù)的接收進行控制:REN=0,禁止接收;,禁止接收;REN=1,允許接收。該位由軟件置位或復(fù)位。,允許接收。該位由軟件置位或復(fù)位。TB8-方式方式2和方式和方式3中要發(fā)送的第中要發(fā)送的第9位數(shù)據(jù)。位數(shù)據(jù)。在方式在方式2和方式和方式
18、3時,時,TB8是發(fā)送的第是發(fā)送的第9位數(shù)據(jù)。位數(shù)據(jù)。在多機通信中,以在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的位的狀態(tài)表示主機發(fā)送的是地址還是數(shù)據(jù):是地址還是數(shù)據(jù):TB8=0表示數(shù)據(jù),表示數(shù)據(jù),TB8=1表示表示地址。該位由軟件置位或復(fù)位。地址。該位由軟件置位或復(fù)位。 TB8還可用于奇偶校驗位。還可用于奇偶校驗位。RB8-方式方式2和方式和方式3中要接收的第中要接收的第9位數(shù)據(jù)。位數(shù)據(jù)。在方式在方式2或方式或方式3時,時,RB8存放接收到的第存放接收到的第9位數(shù)位數(shù)據(jù)。據(jù)。TI-發(fā)送中斷標(biāo)志。當(dāng)方式發(fā)送中斷標(biāo)志。當(dāng)方式0時,發(fā)送完第時,發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,遇位
19、數(shù)據(jù)后,該位由硬件置位。在其他方式下,遇發(fā)送停止位時,該位由硬件置位。因此發(fā)送停止位時,該位由硬件置位。因此TI=1,表,表示幀發(fā)送結(jié)束,可軟件查詢示幀發(fā)送結(jié)束,可軟件查詢TI位標(biāo)志,也可以請位標(biāo)志,也可以請求中斷。求中斷。TI位必須由軟件清位必須由軟件清0。RI-接收中斷標(biāo)志。當(dāng)方式接收中斷標(biāo)志。當(dāng)方式0時,接收完第時,接收完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,當(dāng)位數(shù)據(jù)后,該位由硬件置位。在其他方式下,當(dāng)接收到停止位時,該位由硬件置位。因此接收到停止位時,該位由硬件置位。因此RI=1,表示幀接收結(jié)束,可軟件查詢表示幀接收結(jié)束,可軟件查詢RIRI位標(biāo)志,也可以位標(biāo)志,也可以請求中斷。請
20、求中斷。RIRI位也必須由軟件清位也必須由軟件清0 0。接收接收/ /發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù), ,無論是否采用中斷方式工作無論是否采用中斷方式工作, ,每每接收接收/ /發(fā)送一個數(shù)據(jù)都必須用指令對發(fā)送一個數(shù)據(jù)都必須用指令對 RI/TIRI/TI 清清0 0,以備下一次收以備下一次收/ /發(fā)。發(fā)。3 3、電源控制寄存器電源控制寄存器PCONPCONPCONPCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名稱位名稱SMODSMODGF1GF1GF0GF0PDPDIDLIDLSMODSMOD=1=1,串行口波特率加倍。串行口波特率加倍。PCONPCON寄存器不能進行位尋址。寄存器
21、不能進行位尋址。 SMODSMOD:在串行口工作方式:在串行口工作方式 1 1、2 2、3 3 中,是中,是波波特率加倍位特率加倍位 =1 =1 時,波特率加倍時,波特率加倍 =0 =0 時,波特率不加倍。時,波特率不加倍。 ( (在在PCONPCON中只有這一個位與串口有關(guān)中只有這一個位與串口有關(guān)) ) 二、二、串行工作方式串行工作方式 80C5180C51串行通信共有串行通信共有4 4種種工作方式,由串行控制寄存器工作方式,由串行控制寄存器SCONSCON中中SM0 SM1SM0 SM1決定。決定。 1 1、串行工作方式、串行工作方式0 0(同步移位寄存器工作方式)(同步移位寄存器工作方式
22、) 以以RXDRXD(P3.0P3.0)端作為數(shù)據(jù)移位的輸入)端作為數(shù)據(jù)移位的輸入/ /輸出端,輸出端, 以以TXDTXD(P3.1P3.1)端輸出移位脈沖。)端輸出移位脈沖。 移位數(shù)據(jù)的發(fā)送和接收以移位數(shù)據(jù)的發(fā)送和接收以8 8位為一幀,位為一幀,不設(shè)不設(shè)起始位和停起始位和停止位,無論輸入止位,無論輸入/ /輸出,均低位在前高位在后。輸出,均低位在前高位在后。 其幀格式為:其幀格式為: D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 方式方式0 0可將可將串行串行輸入輸出數(shù)據(jù)輸入輸出數(shù)據(jù)轉(zhuǎn)換成轉(zhuǎn)換成并行并行輸入輸出數(shù)據(jù)。輸入輸出數(shù)據(jù)。 數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送 在在移位時鐘脈沖(移位
23、時鐘脈沖(TXDTXD)的控制下,數(shù)據(jù)從串行口的控制下,數(shù)據(jù)從串行口RXDRXD端逐位移入端逐位移入74HC164 S74HC164 SA A、S SB B端。端。當(dāng)當(dāng)8 8位數(shù)據(jù)全部移出后,位數(shù)據(jù)全部移出后,SCONSCON寄存器的寄存器的TITI位被自動置位被自動置1 1。其后其后74HC16474HC164的內(nèi)容即可的內(nèi)容即可并行輸出。并行輸出。74HC164 CLR74HC164 CLR為清為清0 0端,輸出時端,輸出時CLRCLR必須為必須為1 1,否則否則74HC164 Q074HC164 Q0Q7Q7輸出為輸出為0 0。 串行口作為并行輸出口使用時,要有串行口作為并行輸出口使用時
24、,要有“串入并出串入并出”的移位寄存器配合。的移位寄存器配合。(例如例如CD4094或或74HCl64)(2) (2) 數(shù)據(jù)接收數(shù)據(jù)接收 串行口作為并行輸入口使用時,要有串行口作為并行輸入口使用時,要有“并入串出并入串出”的移位寄存器配合。的移位寄存器配合。( (例如例如CD4014或或74HCl65) ) 74HC165 S/L74HC165 S/L端為移位端為移位/ /置入端,置入端,當(dāng)當(dāng)S/L=0S/L=0時,從時,從Q0Q0Q7Q7并行置入數(shù)據(jù),并行置入數(shù)據(jù),當(dāng)當(dāng)S/L=1S/L=1時,允許從時,允許從Q QH H端移出數(shù)據(jù)。端移出數(shù)據(jù)。在在80C5180C51串行控制寄存器串行控制寄
25、存器SCONSCON中的中的REN=1REN=1時,時,TXDTXD端發(fā)出移位端發(fā)出移位時鐘脈沖,從時鐘脈沖,從RXDRXD端串行輸入端串行輸入8 8位數(shù)據(jù)。位數(shù)據(jù)。當(dāng)接收到第當(dāng)接收到第8 8位數(shù)位數(shù)據(jù)據(jù)D7D7后,置位中斷標(biāo)志后,置位中斷標(biāo)志RIRI,表示一幀數(shù)據(jù)接收完成。,表示一幀數(shù)據(jù)接收完成。 波特率波特率 l方式方式0 0 波特率固定波特率固定,為單片機晶振頻率的十,為單片機晶振頻率的十二分之一。即二分之一。即一個機器周期進行一次移位。一個機器周期進行一次移位。方式0波特率的產(chǎn)生 應(yīng)用舉例應(yīng)用舉例【例例7-17-1】電路如圖所示,試編制程序按下列順序要求每隔電路如圖所示,試編制程序按下
26、列順序要求每隔0.50.5秒循環(huán)操作。秒循環(huán)操作。 從右向左依次點亮,從右向左依次點亮,每次亮一個;每次亮一個; 從左向右依次點亮,從左向右依次點亮,每次增加一個,每次增加一個,直至全直至全部點亮;部點亮; 返回從不斷循環(huán)。返回從不斷循環(huán)。 8個發(fā)光二極管全部點亮;個發(fā)光二極管全部點亮; 從左向右依次暗滅,每次減少一個,直至全滅;從左向右依次暗滅,每次減少一個,直至全滅; 從左向右依次點亮,從左向右依次點亮, 每次亮一個;每次亮一個;解:編程如下:解:編程如下:LIGHT:MOV SCON,#00H ;串行口方式串行口方式0 CLR ES ;禁止串行中斷禁止串行中斷 MOV DPTR,#TAB
27、 ;置發(fā)光二極管亮暗控制字表首址置發(fā)光二極管亮暗控制字表首址LP1: MOV R7,#0 ;置順序編號置順序編號0LP2: MOV A,R7 ;讀順序編號讀順序編號 MOVC A,A+DPTR ;讀控制字讀控制字 CLR P1.0 ;關(guān)閉并行輸出關(guān)閉并行輸出,STR=O時,關(guān)閉并行輸時,關(guān)閉并行輸出;出; MOV SBUF,A ;啟動串行發(fā)送啟動串行發(fā)送 JNB TI,$ ;等待發(fā)送完畢等待發(fā)送完畢 CLR TI ;清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志 SETB P1.0 ;開啟并行輸出開啟并行輸出,STR=1時,開啟并行時,開啟并行輸輸出;出; LCALL DLY500ms ;調(diào)用延時調(diào)用延時0.5
28、秒子程序秒子程序 INC R7 ;指向下一控制字指向下一控制字 CJNE R7,#30,LP2 ;判循環(huán)操作完否判循環(huán)操作完否?未完繼續(xù)未完繼續(xù) SJMP LP1 ;順序編號順序編號029依次操作完畢依次操作完畢,從從0開始重新循環(huán)開始重新循環(huán)TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00H;從左向右依次從左向右依次暗滅暗滅, 每次減少一個每次減少一個,直至全滅直至全滅;DB 80H,40H,20H,10H,08H,04H,02H,01H;從左向右依次亮從左向右依次亮,每次亮一個每次亮一個 DB 02H,04H,08H,10H,20H,40H,80H;從
29、右向左依次點亮從右向左依次點亮,每次亮一個每次亮一個DB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH;從左向右依次點亮從左向右依次點亮, 每次增加一個每次增加一個,直至全部點亮直至全部點亮;【例例7-27-2】電路電路如圖所示,試如圖所示,試編制程序輸入編制程序輸入K1K1K8K8狀態(tài)數(shù)狀態(tài)數(shù)據(jù),并存入內(nèi)據(jù),并存入內(nèi)RAM 40HRAM 40H。 解:編程如下:解:編程如下: KIN:KIN: MOV SCON,#00HMOV SCON,#00H; ;串行口方式串行口方式0 0 CLR ES CLR ES ; ;禁止串行中斷禁止串行中斷 CLR P1.0 CLR P1.0 ;
30、;鎖存并行輸入數(shù)據(jù)鎖存并行輸入數(shù)據(jù) SETB P1.0 SETB P1.0 ; ;允許串行移位操作允許串行移位操作 SETB REN SETB REN ; ;允許并啟動接收(允許并啟動接收(TXDTXD發(fā)送移位脈沖)發(fā)送移位脈沖) JNB RI,$JNB RI,$ ; ;等待接收完畢等待接收完畢 MOV 40H,SBUF MOV 40H,SBUF ; ;存入存入K1K1K8K8狀態(tài)數(shù)據(jù)狀態(tài)數(shù)據(jù) RET RET ; ;2 2、串行工作方式串行工作方式1 1 方式方式1 1是是一幀一幀1010位位的異步串行通信方式,包括的異步串行通信方式,包括1 1個起始個起始位,位,8 8個數(shù)據(jù)位和一個停止位個
31、數(shù)據(jù)位和一個停止位。 其幀格式為:其幀格式為:起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7停止停止 數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送 發(fā)送時只要將數(shù)據(jù)寫入發(fā)送時只要將數(shù)據(jù)寫入SBUFSBUF,在串行口由硬件自動加入,在串行口由硬件自動加入起始位和停止位,構(gòu)成一個完整的幀格式。然后在移位脈沖起始位和停止位,構(gòu)成一個完整的幀格式。然后在移位脈沖的作用下,由的作用下,由TXDTXD端串行輸出。一幀數(shù)據(jù)發(fā)送完畢,將端串行輸出。一幀數(shù)據(jù)發(fā)送完畢,將SCONSCON中的中的TITI置置1 1。 數(shù)據(jù)接收數(shù)據(jù)接收 接收時,在接收時,在REN=1REN=1前提下,當(dāng)采樣到前提下,當(dāng)采樣到RXDRX
32、D從從1 1向向0 0跳變狀態(tài)跳變狀態(tài)時,就認(rèn)定為已接收到起始位。隨后在移位脈沖的控制下,時,就認(rèn)定為已接收到起始位。隨后在移位脈沖的控制下,將將串行串行接收接收數(shù)據(jù)數(shù)據(jù)移入移入SBUFSBUF中。一幀數(shù)據(jù)中。一幀數(shù)據(jù)接收接收完畢,將完畢,將SCONSCON中中的的RIRI置置1 1,表示可以從,表示可以從SBUFSBUF取走接收到的一個字符。取走接收到的一個字符。 (3)方式方式1波特率波特率l 在串行通信中,收發(fā)雙方對發(fā)送或接收的數(shù)據(jù)速率在串行通信中,收發(fā)雙方對發(fā)送或接收的數(shù)據(jù)速率有一定的約定,通過軟件對有一定的約定,通過軟件對89C51串行口編程可約串行口編程可約定四種工作方式。定四種工
33、作方式。l 串行口的四種工作方式對應(yīng)著三種波特率。串行口的四種工作方式對應(yīng)著三種波特率。l 其中,方式其中,方式0和方式和方式2的波特率是固定的。的波特率是固定的。 (3)波特率設(shè)計)波特率設(shè)計l 而方式而方式1和方式和方式3的波特率是可變的,由定時器的波特率是可變的,由定時器T1的溢出率來決定。的溢出率來決定。l 由于輸入的移位時鐘來源不同,因此,各種方式的由于輸入的移位時鐘來源不同,因此,各種方式的波特率計算公式也不同。波特率計算公式也不同。l方式方式1、3波特率波特率=T1溢出率溢出率n波特率波特率=(2=(2SMODSMOD/32)/32) T1T1的溢出率的溢出率波特率波特率=(2=
34、(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的頻繁程度溢出的頻繁程度 即:即:T1T1溢出一次所需時間的倒數(shù)。溢出一次所需時間的倒數(shù)。 T1T1溢出時間即定時時間:溢出時間即定時時間: t t= = (2 (2n nT1T1初值初值) )振蕩周期振蕩周期1212 初值初值 X = 2 2n n - - 2 2SMOD SMOD foscfosc32 32 波特率波特率 1212 波特率波特率 = =2 2SMOD SMOD foscfosc32 32 12(212(2n n T1 T1初值初值) )當(dāng)定時計數(shù)器當(dāng)定時計數(shù)器T1用作波特率發(fā)生器時,
35、通常選用作波特率發(fā)生器時,通常選用定時初值自動重裝的工作方式用定時初值自動重裝的工作方式2(注意:不要把定時計數(shù)器的工作方式與串行口注意:不要把定時計數(shù)器的工作方式與串行口的工作方式搞混淆了的工作方式搞混淆了)。其計數(shù)結(jié)構(gòu)為其計數(shù)結(jié)構(gòu)為8位,假定計數(shù)初值為位,假定計數(shù)初值為COUNT,單,單片機的機器周期為片機的機器周期為T,則定時時間為,則定時時間為(256-COUNT)*T。從而在。從而在1s內(nèi)發(fā)生溢出的次數(shù)(即溢內(nèi)發(fā)生溢出的次數(shù)(即溢出率)為:出率)為: TCOUNT *)256(1 應(yīng)用舉例應(yīng)用舉例【例例7-37-3】設(shè)甲乙機以串行方式設(shè)甲乙機以串行方式1 1進行數(shù)據(jù)傳送,進行數(shù)據(jù)傳送
36、,fosc=11.0592MHzfosc=11.0592MHz,波特率為,波特率為1200b/s1200b/s。甲機發(fā)送。甲機發(fā)送的的1616個數(shù)據(jù)存在內(nèi)個數(shù)據(jù)存在內(nèi)RAM 40HRAM 40H4FH4FH單元中,乙機接單元中,乙機接收后存在內(nèi)收后存在內(nèi)RAM 50HRAM 50H為首地址的區(qū)域中為首地址的區(qū)域中。 T1T1初值初值 = 256 - = 256 - = 232 = E8H = 232 = E8H3232121212001200解:解: 串行方式串行方式1 1波特率取決于波特率取決于T1T1溢出率溢出率( (設(shè)設(shè)SMOD=0), SMOD=0), 計算計算T1T1定時初值:定時初
37、值:11059200110592002 20 0甲機發(fā)送子程序:甲機發(fā)送子程序: MOV TMOD,#20H;置置T1定時器工作方式定時器工作方式2MOV TL1,#0E8H;置置T1計數(shù)初值計數(shù)初值MOV TH1,#0E8H;置置T1計數(shù)重裝值計數(shù)重裝值CLR ET1;禁止禁止T1中斷中斷SETB TR1;T1啟動啟動MOV SCON,#40H;置串行方式置串行方式1,禁止接收禁止接收MOV PCON,#00H;置置SMOD=0(SMOD不能位操作不能位操作) CLR ES;禁止串行中斷禁止串行中斷MOV R0,#40H;置發(fā)送數(shù)據(jù)區(qū)首地址置發(fā)送數(shù)據(jù)區(qū)首地址MOV R2,#16;置發(fā)送數(shù)據(jù)長
38、度置發(fā)送數(shù)據(jù)長度MOVA,R0;讀一個數(shù)據(jù)讀一個數(shù)據(jù)MOVSBUF,A;發(fā)送發(fā)送JNBTI,$;等待一幀數(shù)據(jù)發(fā)送完畢等待一幀數(shù)據(jù)發(fā)送完畢CLRTI;清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志INCR0;指向下一字節(jié)單元指向下一字節(jié)單元DJNZR2,TRSA;判判16個數(shù)據(jù)發(fā)完否個數(shù)據(jù)發(fā)完否?未完繼續(xù)未完繼續(xù)RET ;TXDA:TRSA:MOV TMOD,#20H ;置置T1定時器工作方式定時器工作方式2MOV TL1,#0E8H;置置T1計數(shù)初值計數(shù)初值MOV TH1,#0E8H;置置T1計數(shù)重裝值計數(shù)重裝值CLR ET1;禁止禁止T1中斷中斷SETB TR1;T1啟動啟動MOV SCON,#40H ;置串
39、行方式置串行方式1,禁止接收禁止接收MOV PCON,#00H ;置置SMOD=0(SMOD不能位操作不能位操作)CLR ES;禁止串行中斷禁止串行中斷MOV R0,#50H;置接收數(shù)據(jù)區(qū)首地址置接收數(shù)據(jù)區(qū)首地址MOV R2,#16;置接收數(shù)據(jù)長度置接收數(shù)據(jù)長度SETB REN;啟動接收啟動接收J(rèn)NB RI,$;等待一幀數(shù)據(jù)接收完畢等待一幀數(shù)據(jù)接收完畢CLR RI;清接收中斷標(biāo)志清接收中斷標(biāo)志MOV A,SBUF;讀接收數(shù)據(jù)讀接收數(shù)據(jù)MOV R0,A;存接收數(shù)據(jù)存接收數(shù)據(jù)INC R0;指向下一數(shù)據(jù)存儲單元指向下一數(shù)據(jù)存儲單元DJNZ R2,RDSB;判判16個數(shù)據(jù)接收完否個數(shù)據(jù)接收完否?未完繼
40、續(xù)未完繼續(xù)RET ;乙機接收子程序:乙機接收子程序:RXDB:RDSB: 方式方式2 2是一幀是一幀1111位位的串行通信方式,即的串行通信方式,即1 1個起始個起始位,位,8 8個數(shù)據(jù)位,個數(shù)據(jù)位,1 1個可編程位個可編程位TB8/RB8TB8/RB8和和1 1個停止位,個停止位, 其幀格式為:其幀格式為:3 3、 串行工作方式串行工作方式2 2起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7TB8/RB8TB8/RB8停止停止 可編程位可編程位TB8/RB8TB8/RB8既可作奇偶校驗位用,也可作既可作奇偶校驗位用,也可作控制位(多機通信)用,其功能由用戶確定??刂?/p>
41、位(多機通信)用,其功能由用戶確定。 數(shù)據(jù)發(fā)送和接收與方式數(shù)據(jù)發(fā)送和接收與方式1 1基本相同,基本相同,區(qū)別區(qū)別在于方式在于方式2 2把發(fā)送把發(fā)送/ /接收到的第接收到的第9 9位內(nèi)容送入位內(nèi)容送入TB8/RB8TB8/RB8。 (4)方式方式2波特率波特率l 方式方式2 2波特率固定波特率固定,即,即fosc/32fosc/32和和fosc/64fosc/64。 如用如用公式表示則為:公式表示則為:l波特率波特率=2=2SMOD SMOD fosc/64 fosc/64l 當(dāng)當(dāng)SMOD=0SMOD=0時,波特率時,波特率=2=20 0 fosc/64= fosc/64= fosc/64fos
42、c/64l 當(dāng)當(dāng)SMOD=1SMOD=1時,波特率時,波特率=2=21 1 fosc/64= fosc/64= fosc/32fosc/32【例例7-47-4】 設(shè)計一個串行方式設(shè)計一個串行方式2 2發(fā)送子程序發(fā)送子程序(SMOD=1SMOD=1),將片內(nèi)),將片內(nèi)RAM 50HRAM 50H5FH5FH中的數(shù)據(jù)串行中的數(shù)據(jù)串行發(fā)送,第發(fā)送,第9 9數(shù)據(jù)位作為奇偶校驗位。數(shù)據(jù)位作為奇偶校驗位。 接到接收方核對正確的回復(fù)信號(用接到接收方核對正確的回復(fù)信號(用FFHFFH表示)表示)后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。MOV A,R0 ;讀數(shù)據(jù)讀數(shù)據(jù)M
43、OV C,PSW.0 ;奇偶標(biāo)志送奇偶標(biāo)志送TB8MOV TB8,C ;MOV SBUF,A ;啟動發(fā)送啟動發(fā)送JNB TI,$ ;等待一幀數(shù)據(jù)發(fā)送完畢等待一幀數(shù)據(jù)發(fā)送完畢CLR TI ;清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志SETB REN ;允許接收允許接收CLR RI ;清接收中斷標(biāo)志清接收中斷標(biāo)志JNB RI,$ ;等待接收回復(fù)信號等待接收回復(fù)信號MOV A,SBUF ;讀回復(fù)信號讀回復(fù)信號CPL A ;回復(fù)信號取反回復(fù)信號取反JNZ TRLP ;非全非全0(回復(fù)信號回復(fù)信號FFH,錯誤錯誤),轉(zhuǎn)重發(fā)轉(zhuǎn)重發(fā)INC R0 ;全全0(回復(fù)信號回復(fù)信號=FFH,正確正確), 指向下一數(shù)據(jù)存儲單元指向下
44、一數(shù)據(jù)存儲單元CJNE R0,#60H,TRLP ;判判16個數(shù)據(jù)發(fā)送完否個數(shù)據(jù)發(fā)送完否?未完繼續(xù)未完繼續(xù)RET ;TRLP:MOV SCON,#80H ;置串行方式置串行方式2,禁止接收禁止接收MOV PCON,#80H ;置置SMOD=1MOV R0,#50H;置發(fā)送數(shù)據(jù)區(qū)首址置發(fā)送數(shù)據(jù)區(qū)首址TRS2:【例例7-57-5】 編制一個串行方式編制一個串行方式2 2接收子程序,接接收子程序,接 收上例發(fā)送的收上例發(fā)送的1616個數(shù)據(jù),存首址為個數(shù)據(jù),存首址為40H40H的內(nèi)的內(nèi) RAM RAM中,并核對奇偶校驗位,接收核對正確,中,并核對奇偶校驗位,接收核對正確, 發(fā)出回復(fù)信號發(fā)出回復(fù)信號FFHFFH;發(fā)現(xiàn)錯誤,發(fā)出回復(fù)信;發(fā)現(xiàn)錯誤,發(fā)出回復(fù)信號號 00H 00H,并等待重新接收。,并等待重新接收。RXD2: MOV SCON,#80H ;置串行方式置串行方式2,禁止接收禁止接收 MOV PCON,#80H ;置置SMOD=1 MOV R0,#40H ;置接收數(shù)據(jù)區(qū)首址置接收數(shù)據(jù)區(qū)首址 SETB REN ;啟動接收
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西安求職手冊
- 外墻直接抗裂砂漿施工方案
- 文昌東郊椰娜美椰子油加工廠環(huán)評報告表
- 岳池縣瀝青路面施工方案
- ??谑猩罾贌l(fā)電項目爐渣綜合利用項目環(huán)境影響報告表(公示稿)環(huán)評報告表
- 初一的上學(xué)期數(shù)學(xué)試卷
- 有關(guān)廣西地區(qū)桉樹高產(chǎn)營造林技術(shù)及病蟲害防治措施的討論
- 江蘇省鹽城市阜寧縣2024-2025學(xué)年七年級下學(xué)期3月月考地理試題(原卷版+解析版)
- 智研咨詢發(fā)布:2025年中國醫(yī)療器械融資租賃行業(yè)市場現(xiàn)狀及投資前景分析報告
- 加強生態(tài)環(huán)境保護與綠色發(fā)展實施方案
- CBZ125-1998-潛艇船體結(jié)構(gòu)焊接質(zhì)量檢驗規(guī)則
- 2024年河南省信陽市浉河區(qū)二模語文試卷
- 代理商區(qū)域保護協(xié)議書范本
- 2024年包頭鋼鐵職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 英語定位紙模板
- 中外政治思想史-形成性測試四-國開(HB)-參考資料
- 小學(xué)語文中高年級單元整體教學(xué)設(shè)計的實踐研究(中期報告)
- 國家安全教育國土安全
- 機電系統(tǒng)綜合調(diào)試方案
- 《合理調(diào)節(jié)情緒-做自己情緒的主人》班會課件
評論
0/150
提交評論