第7章 AT89S51的串行口_第1頁
第7章 AT89S51的串行口_第2頁
第7章 AT89S51的串行口_第3頁
第7章 AT89S51的串行口_第4頁
第7章 AT89S51的串行口_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 本章內(nèi)容本章內(nèi)容Single Chip Microcomputer串行口的結(jié)構(gòu)串行口的結(jié)構(gòu)多機(jī)通信多機(jī)通信串行口的四種工作方式串行口的四種工作方式單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口AT89S51AT89S51單片機(jī)信號引腳簡介單片機(jī)信號引腳簡介 VCCVSSXTAL2XTAL1RSTP0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1

2、.6 P1.7P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0ALEP3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7EAPSENRXD/TXD/INT0/ INT1/ T0/ T1/WR/ RD/1234567891011121314151617181920403938373635343332313029282726252424222180318051 875189C51單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口v 隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的

3、普及,計(jì)算機(jī)的通信功能愈來愈顯得重要。算機(jī)的通信功能愈來愈顯得重要。計(jì)算機(jī)通信是指計(jì)算機(jī)與計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。v 通信有通信有并行通信并行通信和和串行通信串行通信兩種方式。在多微機(jī)系統(tǒng)以及兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式?,F(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。7.1 7.1 串行口的結(jié)構(gòu)串行口的結(jié)構(gòu)一、串行通信概述一、串行通信概述單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口1、并行通信與串行通信、并行通信與串行通信并行通信:數(shù)據(jù)的各位同時傳送并行通

4、信:數(shù)據(jù)的各位同時傳送特點(diǎn):特點(diǎn):數(shù)據(jù)有多少位就需要多少條傳送線數(shù)據(jù)有多少位就需要多少條傳送線傳輸速度快,效率高傳輸速度快,效率高,控制簡單,長距控制簡單,長距離傳送成本高。離傳送成本高。如:主機(jī)(如:主機(jī)(CPU)與存儲器、存儲器與存儲器之間)與存儲器、存儲器與存儲器之間 的通信。的通信。AT89S51有有4個個并行并行I/0口口單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口并行通信并行通信計(jì)算機(jī)計(jì)算機(jī)1計(jì)算機(jī)計(jì)算機(jī)28位同時傳送位同時傳送單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口串行通信:串行通信:將數(shù)據(jù)字節(jié)分成一位一位的形式在一將數(shù)據(jù)字

5、節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。條傳輸線上逐個地傳送。特點(diǎn):特點(diǎn):只需一對傳送線,成本低,且可以利只需一對傳送線,成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備用電話網(wǎng)等現(xiàn)成的設(shè)備傳輸速度慢,控制復(fù)雜傳輸速度慢,控制復(fù)雜適合數(shù)據(jù)位數(shù)多,距離遠(yuǎn)的場合適合數(shù)據(jù)位數(shù)多,距離遠(yuǎn)的場合單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口串行通信串行通信單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口串行通信串行通信分類分類 :單工單工半雙工半雙工全雙工全雙工發(fā)送發(fā)送接收接收發(fā)送發(fā)送接收接收接收接收發(fā)送發(fā)送發(fā)送發(fā)送接收接收發(fā)送發(fā)送接收接收時間時間1時間時間2單片

6、機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口2,異步通信和同步通信,異步通信和同步通信異步通信異步通信 異步通信是指通信的發(fā)送與接收設(shè)備使用異步通信是指通信的發(fā)送與接收設(shè)備使用各自的各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能盡可能一致。一致。 異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,協(xié)議規(guī)定了字符數(shù)據(jù)的傳送格式即幀格式。數(shù)據(jù)以相協(xié)議規(guī)定了字符數(shù)據(jù)的傳送格式即幀格式。數(shù)據(jù)以相同的幀格式傳送。同的幀格式傳送。單片機(jī)

7、技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 字符(幀)與字符之間的間隙(時間間隔)是字符(幀)與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送任意的,但每個字符中的各位是以固定的時間傳送的,即的,即字符之間是異步的字符之間是異步的(字符之間不一定有(字符之間不一定有“位位間隔間隔”的整數(shù)倍的關(guān)系),但的整數(shù)倍的關(guān)系),但同一字符內(nèi)的各位是同一字符內(nèi)的各位是同步的同步的(各位之間的距離均為(各位之間的距離均為“位間隔位間隔”的整數(shù)的整數(shù)倍)。倍)。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口異步通信的數(shù)據(jù)格式異步通信的數(shù)據(jù)

8、格式 : 數(shù)據(jù)幀由起始位、數(shù)據(jù)位、校驗(yàn)位和停止位組數(shù)據(jù)幀由起始位、數(shù)據(jù)位、校驗(yàn)位和停止位組成。幀與幀之間用高電平分開。成。幀與幀之間用高電平分開。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口起始位起始位:位于字符幀開頭,只占一位,始終為邏輯:位于字符幀開頭,只占一位,始終為邏輯0電平,用于向接收設(shè)備表示發(fā)送端開始發(fā)送一電平,用于向接收設(shè)備表示發(fā)送端開始發(fā)送一幀信息。(通信線上沒有數(shù)據(jù)傳送時處于邏輯幀信息。(通信線上沒有數(shù)據(jù)傳送時處于邏輯1電平(空閑位)電平(空閑位)數(shù)據(jù)位:數(shù)據(jù)位:緊跟起始位之后,用戶根據(jù)情況可取緊跟起始位之后,用戶根據(jù)情況可取5位,位,6位,位,7位

9、或位或8位(位(ASCII字符通常取字符通常取7位),傳送時位),傳送時低位在前(先傳送低位在前(先傳送 ),高位在后(后傳送),高位在后(后傳送)奇偶校驗(yàn)位:奇偶校驗(yàn)位:位于數(shù)據(jù)位之后,僅占一位,用于對位于數(shù)據(jù)位之后,僅占一位,用于對數(shù)據(jù)檢錯。通信雙方應(yīng)采用一致的校驗(yàn)方式。數(shù)據(jù)檢錯。通信雙方應(yīng)采用一致的校驗(yàn)方式。 51中中采用偶校驗(yàn)方式:偶數(shù)個采用偶校驗(yàn)方式:偶數(shù)個1則則P=0。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口說明:說明: 異步通信中數(shù)據(jù)一幀一幀進(jìn)行傳輸,幀與幀之異步通信中數(shù)據(jù)一幀一幀進(jìn)行傳輸,幀與幀之間的間隙不固定,間隙處用空閑位(高電平)填補(bǔ),間的間

10、隙不固定,間隙處用空閑位(高電平)填補(bǔ),信息傳輸可以隨時或間斷的進(jìn)行。比較靈活。對同步信息傳輸可以隨時或間斷的進(jìn)行。比較靈活。對同步時鐘的要求不是非常嚴(yán)格。但數(shù)據(jù)冗余大,影響效率。時鐘的要求不是非常嚴(yán)格。但數(shù)據(jù)冗余大,影響效率。停止位:停止位:位于字符幀末尾,為邏輯位于字符幀末尾,為邏輯1電平,可取電平,可取1位,位,1.5位或位或2位,用于向接收端表示一幀字符信息位,用于向接收端表示一幀字符信息已發(fā)送完畢。已發(fā)送完畢。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口波特率:每秒鐘傳送二進(jìn)制碼的位數(shù)(比特?cái)?shù))波特率:每秒鐘傳送二進(jìn)制碼的位數(shù)(比特?cái)?shù))單位:單位:BPS(比

11、特(比特/秒)秒)注意:波特率與字符的實(shí)際傳輸速率不同,因?yàn)樽肿⒁猓翰ㄌ芈逝c字符的實(shí)際傳輸速率不同,因?yàn)樽址膶?shí)際傳輸速率是指每秒鐘傳送字符幀的幀數(shù),符的實(shí)際傳輸速率是指每秒鐘傳送字符幀的幀數(shù),與字符幀格式有關(guān)。與字符幀格式有關(guān)。小結(jié):在異步通信中,接收與發(fā)送方之間必須有小結(jié):在異步通信中,接收與發(fā)送方之間必須有幀幀格式格式和和波特率波特率兩項(xiàng)設(shè)定。兩項(xiàng)設(shè)定。如每秒鐘傳送如每秒鐘傳送240個字符,而每個字符格式包含個字符,而每個字符格式包含10位位(1個起始位、個起始位、1個停止位、個停止位、8個數(shù)據(jù)位個數(shù)據(jù)位),這時的,這時的波特率為:波特率為: 10位位240個個/秒秒 = 2400 bp

12、s單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 同步通信同步通信同步通信是按數(shù)據(jù)塊(把數(shù)據(jù)順序連接起來組同步通信是按數(shù)據(jù)塊(把數(shù)據(jù)順序連接起來組成數(shù)據(jù)塊成數(shù)據(jù)塊 )傳送的,)傳送的,同步字符1同步字符2N個數(shù)據(jù)字節(jié)校驗(yàn)字節(jié)1校驗(yàn)字節(jié)2特點(diǎn):特點(diǎn):以同步字符作為傳送的開始,從而使收以同步字符作為傳送的開始,從而使收/發(fā)雙方取得同步。發(fā)雙方取得同步。字符數(shù)據(jù)之間不允許有空隙,當(dāng)線路空字符數(shù)據(jù)之間不允許有空隙,當(dāng)線路空閑或沒有字符可發(fā)時,發(fā)送同步字符。閑或沒有字符可發(fā)時,發(fā)送同步字符。 即即要求發(fā)送端不間斷的發(fā)送數(shù)據(jù)。要求發(fā)送端不間斷的發(fā)送數(shù)據(jù)。單片機(jī)技術(shù)第第7 7章章 A

13、T89S51AT89S51的串行口的串行口說明:說明:要求收發(fā)雙方使用相同的同步字符要求收發(fā)雙方使用相同的同步字符要求由時鐘來實(shí)現(xiàn)收要求由時鐘來實(shí)現(xiàn)收/發(fā)之間嚴(yán)格的同步,對時鐘發(fā)之間嚴(yán)格的同步,對時鐘信號的相位一致性要求非常嚴(yán)格信號的相位一致性要求非常嚴(yán)格 。傳輸數(shù)據(jù)的位之。傳輸數(shù)據(jù)的位之間的距離均為間的距離均為“位間隔位間隔”的整數(shù)倍,同時傳送的字的整數(shù)倍,同時傳送的字符間不留間隙,既符間不留間隙,既保持位同步保持位同步關(guān)系,關(guān)系,也保持字符同也保持字符同步步關(guān)系。故硬件復(fù)雜,成本高。關(guān)系。故硬件復(fù)雜,成本高。用于數(shù)據(jù)量大,對傳輸速度要求高的場合。用于數(shù)據(jù)量大,對傳輸速度要求高的場合。單片機(jī)

14、技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口三、串行通信接口電路三、串行通信接口電路1,種類:,種類:UART(Universal Asynchronous Receiver/Transmitter)異步串行通信接口異步串行通信接口USRT (Universal Synchronous Receiver/Transmitter)同步串行通信接口同步串行通信接口USART通用同步通用同步/ 異步收發(fā)器異步收發(fā)器2,相同點(diǎn):,相同點(diǎn): 所有的串行接口電路都是以并行數(shù)據(jù)形式與所有的串行接口電路都是以并行數(shù)據(jù)形式與CPU接口,而以串行數(shù)據(jù)形式與外部邏輯接口。接口,而以串行數(shù)據(jù)形式與

15、外部邏輯接口。 功能:功能:CPU并行數(shù)據(jù)并行數(shù)據(jù) 外部邏輯串行數(shù)據(jù)外部邏輯串行數(shù)據(jù) 轉(zhuǎn)換轉(zhuǎn)換 單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口3,UART(通用異步接收(通用異步接收/發(fā)送器)主要功能發(fā)送器)主要功能 數(shù)據(jù)的串化和反串化數(shù)據(jù)的串化和反串化發(fā)送器:并發(fā)送器:并 串串接收器:接收器: 串串 并并格式信息的插入和濾除格式信息的插入和濾除包括起始位、校驗(yàn)位停止位包括起始位、校驗(yàn)位停止位單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口三、三、AT89S51單片機(jī)串行接口的組成和特性單片機(jī)串行接口的組成和特性 發(fā)送發(fā)送SBUF(99H)發(fā)送控制

16、器發(fā)送控制器串串行行口口控控制制寄寄存存器器(98H)接收接收SBUF(99H)接收控制器接收控制器串行中斷串行中斷1定定時時器器T188門門輸入移位寄存器輸入移位寄存器8TXDP3.1RXDP3.0TIRI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 AT89S51單片機(jī)的串行口是一個可編程的全雙單片機(jī)的串行口是一個可編程的全雙工串行通信接口工串行通信接口 1,結(jié)構(gòu)組成:,結(jié)構(gòu)組成: 數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器SBUF SBUF是一個可直接尋址的專用寄存器,字節(jié)地是一個可直接尋址的專用寄存器,字節(jié)地址為址為99H。在物理上對應(yīng)兩個寄存器:一個發(fā)送緩沖。在物理上對應(yīng)

17、兩個寄存器:一個發(fā)送緩沖器和一個接收緩沖器,兩個緩沖器共用一個地址器和一個接收緩沖器,兩個緩沖器共用一個地址99H。 CPU寫寫SBUF(MOV SBUF,A)修改發(fā)送緩沖器內(nèi)容,)修改發(fā)送緩沖器內(nèi)容,同時啟動發(fā)送同時啟動發(fā)送 CPU讀讀SBUF(MOV A , SBUF )讀接收緩沖器內(nèi)容)讀接收緩沖器內(nèi)容單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口接收雙緩沖結(jié)構(gòu)(輸入移位寄存器)接收雙緩沖結(jié)構(gòu)(輸入移位寄存器) 外部數(shù)據(jù)先進(jìn)入移位寄存器,一幀數(shù)據(jù)接收完,外部數(shù)據(jù)先進(jìn)入移位寄存器,一幀數(shù)據(jù)接收完,由移位寄存器裝入由移位寄存器裝入SBUF,立即接收下一幀,要求立即接收

18、下一幀,要求主機(jī)應(yīng)及時將數(shù)據(jù)從主機(jī)應(yīng)及時將數(shù)據(jù)從SBUF中取走,否則會由于下中取走,否則會由于下一幀數(shù)據(jù)的輸入而丟失,造成錯誤。一幀數(shù)據(jù)的輸入而丟失,造成錯誤。 雙緩沖結(jié)構(gòu)可以防止數(shù)據(jù)重疊錯誤。雙緩沖結(jié)構(gòu)可以防止數(shù)據(jù)重疊錯誤。 數(shù)據(jù)的發(fā)送數(shù)據(jù)的發(fā)送由由CPU控制,不會發(fā)生幀重疊錯誤??刂?,不會發(fā)生幀重疊錯誤。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口發(fā)送發(fā)送SBUF(99H)發(fā)送控制器發(fā)送控制器串串行行口口控控制制寄寄存存器器(98H)接收接收SBUF(99H)接收控制器接收控制器串行中斷串行中斷1定定時時器器T188門門輸入移位寄存器輸入移位寄存器8TXDP3.1

19、RXDP3.0TIRI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口2,AT89S51單片機(jī)串行口的控制寄存器單片機(jī)串行口的控制寄存器電源控制寄存器電源控制寄存器PCON(字節(jié)地址(字節(jié)地址87H)IDLPDGF0GF1SMOD01234567無位尋址功能,與串行口有關(guān)的只有其最高位無位尋址功能,與串行口有關(guān)的只有其最高位SMOD:波特率選擇位。:波特率選擇位。SMOD=1 波特率加倍波特率加倍單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口串行口控制寄存器串行口控制寄存器SCON(字節(jié)地址(字節(jié)地址98H) RI TIRB8TB8 RENSM2

20、SM1 SM0位名稱98H99H9AH9BH9CH9DH9EH9FH位地址SM0 SM1方式功能波特率 0 00同步移位寄存器Fosc/12 0 118位UART可變 1 029位UART(2smod/64)Fosc 1 139位UART可變SM0、SM1:串行口工作方式選擇位:串行口工作方式選擇位單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口SM2 在工作方式在工作方式2、3中為多機(jī)通信控制位中為多機(jī)通信控制位若若SM2=1,則只接收地址幀,則只接收地址幀收到的數(shù)據(jù)第收到的數(shù)據(jù)第9位位RB8=1表示為地址幀表示為地址幀即當(dāng)收到的第即當(dāng)收到的第9位數(shù)據(jù)位數(shù)據(jù)RB8=0時

21、不置位中斷請求標(biāo)時不置位中斷請求標(biāo)志位志位RI若若SM2=0,則不再判斷收到的數(shù)據(jù)是地址幀還是數(shù),則不再判斷收到的數(shù)據(jù)是地址幀還是數(shù)據(jù)幀,直接接收,將據(jù)幀,直接接收,將RI=1,產(chǎn)生中斷請求,數(shù)據(jù)裝,產(chǎn)生中斷請求,數(shù)據(jù)裝入入SBUF,為,為“直通方式直通方式”,不用多機(jī)通信時,不用多機(jī)通信時SM2=0單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口多機(jī)通信的過程如下:多機(jī)通信的過程如下: T RT R1#T R2#T R3#T R4#主機(jī)主機(jī)從機(jī)從機(jī)1,使所有從機(jī)的,使所有從機(jī)的SM2=1,處于只接收地址幀的狀態(tài)。,處于只接收地址幀的狀態(tài)。2,主機(jī)發(fā)送一幀地址信息,(其中

22、包含,主機(jī)發(fā)送一幀地址信息,(其中包含8位地址,第位地址,第9位位RB8為為1,以表示發(fā)送的是地址。),以表示發(fā)送的是地址。)3,從機(jī)接收到地址幀后,各自將接收到的地址與本機(jī),從機(jī)接收到地址幀后,各自將接收到的地址與本機(jī)地址比較。地址比較。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口4,被尋址的從機(jī)清除其,被尋址的從機(jī)清除其SM2(將(將SM2清清0),),未被尋址的從機(jī)仍維持未被尋址的從機(jī)仍維持SM2=1不變不變5,主機(jī)發(fā)送數(shù)據(jù)或控制信息(第,主機(jī)發(fā)送數(shù)據(jù)或控制信息(第9位數(shù)據(jù)位數(shù)據(jù)RB8=0)。)。 被尋址從機(jī)因被尋址從機(jī)因SM2=0,可接收,可接收 未被尋址從機(jī)

23、因未被尋址從機(jī)因SM2=1,不理睬,直至發(fā)來新的地,不理睬,直至發(fā)來新的地址幀。址幀。6,當(dāng)主機(jī)改為與另外從機(jī)聯(lián)系時,再發(fā)地址幀尋址,當(dāng)主機(jī)改為與另外從機(jī)聯(lián)系時,再發(fā)地址幀尋址從機(jī),而先前被尋址的從機(jī)分析出主機(jī)是對其他從機(jī)從機(jī),而先前被尋址的從機(jī)分析出主機(jī)是對其他從機(jī)尋址,恢復(fù)其尋址,恢復(fù)其SM2=1。對主機(jī)隨后發(fā)來的數(shù)據(jù)幀不。對主機(jī)隨后發(fā)來的數(shù)據(jù)幀不予理睬。予理睬。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 在工作方式在工作方式1中中SM2的狀態(tài)與的狀態(tài)與“收到停止位收到停止位=1(有效停止位)(有效停止位)”兩個條件取兩個條件取“或或”構(gòu)成接收有構(gòu)成接收有效控制

24、條件。效控制條件。即:即:SM2=1 ,要求必須收到有效停止位才置位,要求必須收到有效停止位才置位RI SM2=0 ,不要求必須收到有效停止位即置位,不要求必須收到有效停止位即置位RI SM2=0 “或或”停止位停止位=1均可置位均可置位RI 在方式在方式1工作時,通常工作時,通常SM2=0 在工作方式在工作方式0中中SM2的狀態(tài)必須是的狀態(tài)必須是0單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口REN: 允許串行接收位。由軟件置允許串行接收位。由軟件置REN=1,則啟動,則啟動串行口接收數(shù)據(jù);若軟件置串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。,則禁止接收。TB8

25、:在方式在方式2或方式或方式3中,是發(fā)送數(shù)據(jù)的第九位中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)位,或在多機(jī)通信中,作為地址幀位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。數(shù)據(jù)幀的標(biāo)志位。在方式在方式0和方式和方式1中,該位未用。中,該位未用。RB8 :在方式在方式2或方式或方式3中,是接收到數(shù)據(jù)的第九位中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式數(shù)據(jù)幀的標(biāo)志位。在方式1時,若時,若SM2=0,則,則RB8是接收到的停止位。是接收到的停止位。單片機(jī)技術(shù)第第7 7章章 AT89

26、S51AT89S51的串行口的串行口TI:發(fā)送中斷標(biāo)志位發(fā)送中斷標(biāo)志位。在方式。在方式0時,當(dāng)串行發(fā)送第時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式(位數(shù)據(jù)結(jié)束時,或在其它方式(1、2、3),串行),串行發(fā)送停止位的開始時,由內(nèi)部硬件使發(fā)送停止位的開始時,由內(nèi)部硬件使TI置置1,向,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件必須用軟件將其將其清清0,取消此中斷申請,以再次發(fā)送數(shù)據(jù)。,取消此中斷申請,以再次發(fā)送數(shù)據(jù)。RI:接收中斷標(biāo)志位接收中斷標(biāo)志位。在方式。在方式0時,當(dāng)串行接收第時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的位數(shù)據(jù)結(jié)束時,或

27、在其它方式,串行接收停止位的中間點(diǎn)時,由內(nèi)部硬件使中間點(diǎn)時,由內(nèi)部硬件使RI置置1,向,向CPU發(fā)中斷申請。發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清也必須在中斷服務(wù)程序中,用軟件將其清0,取消此,取消此中斷申請。中斷申請。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口一、方式一、方式0(主要用于(主要用于I/O口擴(kuò)展)口擴(kuò)展) 1,特點(diǎn):,特點(diǎn): 同步移位寄存器方式同步移位寄存器方式 波特率固定為波特率固定為Fosc/12 一幀數(shù)據(jù)是一幀數(shù)據(jù)是8位,無起始位和停止位。位,無起始位和停止位。 數(shù)據(jù)由數(shù)據(jù)由RXD(P3.0)端發(fā)送或接收,同步移位)端發(fā)送或接收,同步

28、移位 脈沖由脈沖由TXD(P3.1)端輸出,每個脈沖對應(yīng)一個)端輸出,每個脈沖對應(yīng)一個 數(shù)據(jù)位。數(shù)據(jù)位。 方式方式0中,中,SCON的的TB8位沒用,位沒用,SM2位必須是位必須是0。7.2 7.2 串行口的四種工作方式串行口的四種工作方式 單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口2,工作過程,工作過程 發(fā)送:執(zhí)行任何一條將發(fā)送:執(zhí)行任何一條將SBUF作為目的寄存器的指作為目的寄存器的指令時,串行口即將令時,串行口即將8位數(shù)據(jù)以位數(shù)據(jù)以Fosc/12的波特率從的波特率從RXD管腳輸出(先送低位)。管腳輸出(先送低位)。 當(dāng)寫信號有效后,相隔一個機(jī)器周期,發(fā)送控當(dāng)寫

29、信號有效后,相隔一個機(jī)器周期,發(fā)送控制端制端SEND有效(高電平),允許有效(高電平),允許RXD發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù),同時允許從同時允許從TXD端輸出同步移位脈沖,一幀數(shù)據(jù)端輸出同步移位脈沖,一幀數(shù)據(jù)(8位)發(fā)送完畢時,各控制端恢復(fù)原狀態(tài),發(fā)送位)發(fā)送完畢時,各控制端恢復(fù)原狀態(tài),發(fā)送完中斷標(biāo)志完中斷標(biāo)志TI置置“1”,呈中斷申請狀態(tài),呈中斷申請狀態(tài),在再次發(fā)在再次發(fā)送數(shù)據(jù)前,必須用軟件將送數(shù)據(jù)前,必須用軟件將TI清清“0”單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口方式方式0輸出輸出單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口接收:在滿足接收

30、:在滿足REN=1和和RI=0的條件下,就會啟的條件下,就會啟動一次接收過程,此時動一次接收過程,此時RXD為串行輸入端,為串行輸入端,TXD為為同步脈沖輸出端,接受波特率為同步脈沖輸出端,接受波特率為Fosc/12,當(dāng)接收,當(dāng)接收完一幀數(shù)據(jù)(完一幀數(shù)據(jù)(8位)后控制信號復(fù)位,中斷標(biāo)志位)后控制信號復(fù)位,中斷標(biāo)志RI被置被置“1”,呈中斷申請狀態(tài),當(dāng)再次接收時,必須,呈中斷申請狀態(tài),當(dāng)再次接收時,必須通過軟件將通過軟件將RI清清“0”。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口3,應(yīng)用舉例,應(yīng)用舉例輸出(可串接多個移位寄存器)輸出(可串接多個移位寄存器)1 142

31、133 124 115 106 97 8ABQAQBQCQDGNDVCCQHQGQFQECLRCLK74LS164:8位串行輸入,并行輸出移位寄存器位串行輸入,并行輸出移位寄存器74LS164A,B:串行輸入端,二者?。捍休斎攵?,二者取“與與”后輸入。后輸入。CLK:時鐘脈沖輸入端,在脈沖的上升:時鐘脈沖輸入端,在脈沖的上升 沿實(shí)現(xiàn)移位。沿實(shí)現(xiàn)移位。 當(dāng)當(dāng)CLK=0,CLR=1時,時,74LS164 的輸出保持原狀態(tài),。的輸出保持原狀態(tài),。CLR:清零端,低電平有效,使輸出端:清零端,低電平有效,使輸出端 清零。清零。QAQH:并行輸出端。:并行輸出端。單片機(jī)技術(shù)第第7 7章章 AT89S5

32、1AT89S51的串行口的串行口用用164擴(kuò)展并行輸出口擴(kuò)展并行輸出口 RXD +5V TXD CLK CLR VCC GNDA B 3 4 5 6 10 11 12 13CLK CLR VCC GNDA B 3 4 5 6 10 11 12 13單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口MAIN:MOV SCON,#00000000B MOV SBUF,#0FH JNB TI,$ CLR TI MOV SBUF ,#55H JNB TI,$ CLR TI 單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口說明:說明: 74LS164無并行輸出控

33、制端,在串行輸入過無并行輸出控制端,在串行輸入過程中,其輸出狀態(tài)不斷變化,要實(shí)現(xiàn)在輸入結(jié)束后程中,其輸出狀態(tài)不斷變化,要實(shí)現(xiàn)在輸入結(jié)束后再并行輸出,可在再并行輸出,可在164與與LED之間加之間加74LS244(8位位同相三態(tài)緩沖器同相三態(tài)緩沖器/總線驅(qū)動器)作輸出控制?;蛴每偩€驅(qū)動器)作輸出控制?;蛴肅D4094代替代替164。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口74LS165AH:并行輸入端:并行輸入端S/L VCCCLK1 CLK2E DF CG BH AQ7 SERGND Q712345678161514131211109Q7、Q7:串行輸出端:串行輸

34、出端CLK1:時鐘脈沖輸入端(上升沿:時鐘脈沖輸入端(上升沿移位)移位)CLK:時鐘禁止端:時鐘禁止端SER:擴(kuò)展多片:擴(kuò)展多片165時接收串行輸時接收串行輸入,可連上一片入,可連上一片165的的Q7S/L:移位與置位控制:移位與置位控制 0 接收并行數(shù)據(jù)接收并行數(shù)據(jù) 1 串行移位輸出串行移位輸出74LS165:8位并行輸入,串行輸出移位寄存器位并行輸入,串行輸出移位寄存器單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RXD TXD P3.2 A BQ7 CCLK1 DS/L E F G

35、H+5VAT89S51165用用165擴(kuò)展并行輸入擴(kuò)展并行輸入單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口MAIN:MOV SCON,#10H CLR P3.2 ;讀入讀入8位并行數(shù)據(jù)(鍵狀態(tài))位并行數(shù)據(jù)(鍵狀態(tài)) SETB P3.2 ;允許串行移位;允許串行移位 CLR RI ;清除串行接收中斷標(biāo)志;清除串行接收中斷標(biāo)志 JNB RI,$ ;等待接收完畢;等待接收完畢 MOV A, SBUF;取數(shù)據(jù);取數(shù)據(jù) MOV P1,A ;將鍵盤數(shù)據(jù)送入;將鍵盤數(shù)據(jù)送入P1口口 AJMP MAIN ;程序循環(huán)執(zhí)行;程序循環(huán)執(zhí)行 END單片機(jī)技術(shù)第第7 7章章 AT89S51AT

36、89S51的串行口的串行口二、方式二、方式1 1,特點(diǎn):,特點(diǎn): 8位位UART方式方式 波特率可變,取決于定時器波特率可變,取決于定時器T1的溢出速率的溢出速率 一幀信息為一幀信息為10位:位:1位起始位(位起始位(0),),8位數(shù)據(jù)位數(shù)據(jù)位(低位在前),位(低位在前),1位停止位。位停止位。 TXD為發(fā)送端,為發(fā)送端,RXD為接收端。為接收端。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口發(fā)送發(fā)送 執(zhí)行一條寫入執(zhí)行一條寫入SBUF的指令后便啟動發(fā)送,的指令后便啟動發(fā)送,發(fā)送完一幀信息時,中斷標(biāo)志發(fā)送完一幀信息時,中斷標(biāo)志TI置置“1”。 串行發(fā)送串行發(fā)送單片機(jī)技術(shù)第

37、第7 7章章 AT89S51AT89S51的串行口的串行口接收接收 當(dāng)當(dāng)REN=1時,接收器便以所選波特率的時,接收器便以所選波特率的16倍速倍速率采樣率采樣RXD引腳狀態(tài)(接收端采樣時鐘),當(dāng)采樣到引腳狀態(tài)(接收端采樣時鐘),當(dāng)采樣到RXD端從端從“1”到到“0”的跳變時就啟動接收器接收數(shù)的跳變時就啟動接收器接收數(shù)據(jù),接收的值是據(jù),接收的值是3次采樣(即次采樣(即16個狀態(tài)的中間個狀態(tài)的中間7、8、9三個狀態(tài))中至少兩次相同的值,以保證可靠無誤。三個狀態(tài))中至少兩次相同的值,以保證可靠無誤。 如果接收的起始位不是如果接收的起始位不是“0”,即起始位無效,則復(fù),即起始位無效,則復(fù)位接收電路,再

38、次等待下降沿的到來。位接收電路,再次等待下降沿的到來。 如果起始位有效,將其移入輸入移位寄存器,并如果起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進(jìn)行最后一次移位。器最左邊時,控制電路進(jìn)行最后一次移位。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口本幀信息(本幀信息(10位)收完,若同時滿足以下條件位)收完,若同時滿足以下條件 RI=0SM2=0 或或 接收到的停止位為接收到

39、的停止位為1 則接收信息有效,裝入則接收信息有效,裝入SBUF,停止位,停止位RB8,RI被置被置“1”,接受控制器再次采樣,接受控制器再次采樣RXD的負(fù)跳變,以便的負(fù)跳變,以便接收下一幀數(shù)據(jù)(注意及時將接收下一幀數(shù)據(jù)(注意及時將RI清清“0”,表示,表示SBUF已已空)空) 否則,如果上述兩個條件任一不滿足,接收的數(shù)否則,如果上述兩個條件任一不滿足,接收的數(shù)據(jù)將丟失,不再恢復(fù)。據(jù)將丟失,不再恢復(fù)。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 串行接收串行接收單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口3,方式,方式1的波特率設(shè)置的波特率設(shè)置

40、 波特率波特率=(2SMOD/32)定時器定時器T1的溢出率的溢出率定時器定時器T1的溢出率的溢出率=定時器定時器T1每秒溢出的次數(shù)每秒溢出的次數(shù)通常使通常使T1工作于方式工作于方式2,則溢出一次所需時間為:,則溢出一次所需時間為: (28N)機(jī)器周期(機(jī)器周期(N為初值)為初值) 機(jī)器周期機(jī)器周期=12/Fosc(秒)(秒)故定時器故定時器T1的溢出率的溢出率= 1/(28N)機(jī)器周期機(jī)器周期 =Fosc/12 (28N) 波特率波特率= 2SMOD 32Fosc12 (28 N)單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口說明:說明: 實(shí)際應(yīng)用中通常是先設(shè)定波特率

41、再設(shè)定時間常實(shí)際應(yīng)用中通常是先設(shè)定波特率再設(shè)定時間常數(shù)(定時初值)數(shù)(定時初值)N。 實(shí)際算得的初值往往不是整數(shù),故有誤差,且實(shí)際算得的初值往往不是整數(shù),故有誤差,且此誤差與此誤差與SMOD位的設(shè)置有關(guān)。位的設(shè)置有關(guān)。 T1用作波特率發(fā)生器時,要關(guān)中斷。用作波特率發(fā)生器時,要關(guān)中斷。 當(dāng)晶振頻率選用當(dāng)晶振頻率選用11.0592MHz時,對于常用的時,對于常用的標(biāo)準(zhǔn)波特率(標(biāo)準(zhǔn)波特率(19.2k、9.6k、4.8k、2.4k、1.2k),),能正確算出計(jì)數(shù)初值,故此頻率常用。能正確算出計(jì)數(shù)初值,故此頻率常用。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口T波特率波特率/(

42、b/s)Fosc/MHzSMOD定時器定時器1C/模式模式初始值初始值方式方式0: 1M方式方式2:375 k方式方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBH常用波特率常用波特率單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口4,應(yīng)用舉例,應(yīng)用舉例RXDTXD GNDTXDRXDGND 雙機(jī)串行通信雙機(jī)串行通信AT

43、89S51乙乙AT89S51甲甲單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口要求要求:甲機(jī)有:甲機(jī)有4個數(shù)存放于內(nèi)部個數(shù)存放于內(nèi)部RAM的的20H23H單元,單元,發(fā)送給乙機(jī),乙機(jī)收到后存放于內(nèi)部發(fā)送給乙機(jī),乙機(jī)收到后存放于內(nèi)部RAM的的33H36H單元中。單元中。分析分析:為保證通信成功,通信雙方必須在軟件上有:為保證通信成功,通信雙方必須在軟件上有一系列的約定,通常稱為軟件協(xié)議。規(guī)定如下:一系列的約定,通常稱為軟件協(xié)議。規(guī)定如下: 波特率:波特率:9.6K(晶振頻率(晶振頻率11.0592MHz) 甲機(jī)先發(fā)聯(lián)絡(luò)信號甲機(jī)先發(fā)聯(lián)絡(luò)信號55H,乙機(jī)收到信號后回送,乙機(jī)收

44、到信號后回送55H,表示已準(zhǔn)備好接收,然后開始發(fā)送數(shù)據(jù)。表示已準(zhǔn)備好接收,然后開始發(fā)送數(shù)據(jù)。 甲機(jī)使用甲機(jī)使用PSW中的用戶標(biāo)志位中的用戶標(biāo)志位F0來表示乙機(jī)是來表示乙機(jī)是否準(zhǔn)備好。乙機(jī)使用否準(zhǔn)備好。乙機(jī)使用F0來表示甲機(jī)發(fā)來的是查詢信來表示甲機(jī)發(fā)來的是查詢信息還是數(shù)據(jù)。息還是數(shù)據(jù)。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口程序:甲機(jī)程序:甲機(jī)ORG 0000HLJMP MAINORG 0023HLJMP SUB1 MAIN:MOV SCON,#50H ;方式;方式1,允許接收,允許接收MOV TMOD, #20H ;方式;方式2MOV TL1, #0FDH ;定時

45、器置初值;定時器置初值MOV TH1, #0FDHMOV IE, #90H ;允許串行中斷;允許串行中斷SETB TR1 ;啟動;啟動T1 (產(chǎn)生波特率)(產(chǎn)生波特率)單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口INI:MOV SBUF,#55H ;發(fā)聯(lián)絡(luò)信號;發(fā)聯(lián)絡(luò)信號 MOV R1,#0FFH ;延時程序;延時程序LOOP:NOPDJNZ R1,LOOPJNB F0,INI ;若若F0=1,表示乙機(jī)已準(zhǔn)備好接收表示乙機(jī)已準(zhǔn)備好接收;若若F0=0,表示乙機(jī)未準(zhǔn)備好,重新聯(lián)絡(luò)。,表示乙機(jī)未準(zhǔn)備好,重新聯(lián)絡(luò)。MOV R0,#20HMOV SBUF,R0 INC R0 S

46、JMP $延時時間應(yīng)大于甲機(jī)串口延時時間應(yīng)大于甲機(jī)串口中斷處理時間和乙機(jī)串口中斷處理時間和乙機(jī)串口中斷處理時間之和中斷處理時間之和單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口SUB1:JNB RI,LAB0 ;RI1,即,即TI=1,轉(zhuǎn)發(fā),轉(zhuǎn)發(fā);送中斷處理,若;送中斷處理,若RI=1,表示乙機(jī)回送了信息。,表示乙機(jī)回送了信息。MOV A,SBUF CJNE A,#55H,LAB1;回送不是回送不是55H, 返回返回. SETB F0 ;置;置“1”F0,表示乙機(jī)準(zhǔn)備好。,表示乙機(jī)準(zhǔn)備好。 LAB1:CLR RI ;清;清“0”RI,準(zhǔn)備下一次接收。,準(zhǔn)備下一次接收。

47、RETI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口LAB0:JNB F0,LAB2 ;若;若F01,乙機(jī)未準(zhǔn),乙機(jī)未準(zhǔn);備好,返回;備好,返回 CLR TIMOV SBUF,R0INC R0CJNE R0,#24H,LAB2CLR ESLAB2:CLR TIRETIEND單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口乙機(jī):乙機(jī): ORG 0000HLJMP MAINORG 0023HLJMP SUB1 MAIN:MOV SCON,#50H ;方式;方式1,允許接收,允許接收MOV TMOD, #20H ;方式;方式2MOV TL1, #0FD

48、H ;定時器置初值;定時器置初值MOV TH1, #0FDHMOV IE, #90H ;允許串行中斷;允許串行中斷SETB TR1 ;啟動;啟動T1 (產(chǎn)生波特率)(產(chǎn)生波特率)MOV R0,#33H SJMP $單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口SUB1:JBC TI, LAB1 JB F0,LAB2 ;若;若F0=0,則表明送,則表明送;來的數(shù)據(jù)是查詢信號,若;來的數(shù)據(jù)是查詢信號,若F0=1,表明為數(shù)據(jù)。,表明為數(shù)據(jù)。 MOV A,SBUF CJNE A,#55H,LAB1 SETB F0 ;是;是55H,置位,置位F0 CLR RI MOV SBUF,

49、#55HLAB1:CLR RIRETI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口LAB2:MOV R0,SBUFINC R0 CJNE R0,#37H,LAB3 CLR ES LAB3:CLR RIRETIEND單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口三、方式三、方式2和方式和方式3 1,共同點(diǎn):,共同點(diǎn): 9位位UART方式方式 一幀信息為一幀信息為11位:位:1位起始位(位起始位(“0”),),8位數(shù)據(jù)位位數(shù)據(jù)位 (低位在前),(低位在前),1位可編程位(第位可編程位(第9位數(shù)據(jù)位),位數(shù)據(jù)位), 1位停止位位停止位“1”。 2 ,

50、不同點(diǎn):波特率不同,不同點(diǎn):波特率不同方式方式2:2SMOD/64 方式方式3:可變,取決于定時器:可變,取決于定時器T1溢出率溢出率 波特率波特率= 2SMOD 32Fosc12 (28 N)單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口工作過程:工作過程: 發(fā)送:數(shù)據(jù)由發(fā)送:數(shù)據(jù)由TXD端輸出,附加的第端輸出,附加的第9位數(shù)據(jù)位為位數(shù)據(jù)位為SCON中的中的TB8(由軟件設(shè)置)。(由軟件設(shè)置)。 CPU執(zhí)行一條寫入執(zhí)行一條寫入SBUF的指令后便立即啟動發(fā)的指令后便立即啟動發(fā)送器發(fā)送,發(fā)送開始時,先把起始位送器發(fā)送,發(fā)送開始時,先把起始位0輸出到輸出到TXD引腳,引腳,

51、然后發(fā)送移位寄存器的輸出位(然后發(fā)送移位寄存器的輸出位(D0)到)到TXD引腳。引腳。 每一個移位脈沖都使輸出移位寄存器的各位右移每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由一位,并由TXD引腳輸出。第一次移位時,停止位引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第移入輸出移位寄存器的第9位上位上 ,以后每次移位,左,以后每次移位,左邊都移入邊都移入0。當(dāng)停止位移至輸出位時,左邊其余位全為。當(dāng)停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進(jìn)行最后,檢測電路檢測到這一條件時,使控制電路進(jìn)行最后一次移位,并置一次移位,并置TI=1,向,向CPU請求中

52、斷。請求中斷。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口方式方式2、3發(fā)送時序發(fā)送時序單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 接收:與方式接收:與方式1類似,當(dāng)類似,當(dāng)REN=1時,時,CPU開始不斷開始不斷以以16倍于波特率的采樣速率對倍于波特率的采樣速率對RXD采樣,當(dāng)檢測到負(fù)采樣,當(dāng)檢測到負(fù)跳變后啟動接收器,位采集器對每位采集跳變后啟動接收器,位采集器對每位采集3個值,用個值,用采采3取取2表決法確定每位狀態(tài)。表決法確定每位狀態(tài)。 接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位始位0移到

53、最左邊時,控制電路進(jìn)行最后一次移位,移到最左邊時,控制電路進(jìn)行最后一次移位,判斷以下條件:判斷以下條件: RI=0SM2=0 或接收到的第或接收到的第9位數(shù)據(jù)位數(shù)據(jù)=1若都滿足,將若都滿足,將8位數(shù)據(jù)裝入位數(shù)據(jù)裝入SBUF,第,第9位數(shù)據(jù)裝入位數(shù)據(jù)裝入RB8,并置,并置RI=1。若任一條件不滿足,則數(shù)據(jù)丟失,且不置位若任一條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼,繼續(xù)搜索續(xù)搜索RXD引腳的負(fù)跳變。引腳的負(fù)跳變。單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口方式方式2、3接收接收單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口3,應(yīng)用舉例,應(yīng)用舉例

54、使用奇偶校驗(yàn)的發(fā)送及接收中斷服務(wù)程序使用奇偶校驗(yàn)的發(fā)送及接收中斷服務(wù)程序發(fā)送:以發(fā)送:以TB8作為奇偶校驗(yàn)位,作為奇偶校驗(yàn)位,R0為發(fā)送數(shù)據(jù)區(qū)地址為發(fā)送數(shù)據(jù)區(qū)地址指針。指針。SEND:PUSH PSW PUSH ACC CLR TI MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,A INC R0 POP A POP PSW RETI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口RECEIVE:PUSH PSW PUSH ACC ;保護(hù)現(xiàn)場;保護(hù)現(xiàn)場 CLR RI ;清中斷標(biāo)志;清中斷標(biāo)志 MOV A,SBUF ;接收數(shù)據(jù);接收數(shù)據(jù) MOV C,

55、P JNC L1;校驗(yàn)位為;校驗(yàn)位為0轉(zhuǎn)轉(zhuǎn)L1 JNB RB8,ER;奇偶錯,轉(zhuǎn)錯誤處理;奇偶錯,轉(zhuǎn)錯誤處理 AJMP L2 ;數(shù)據(jù)正確,轉(zhuǎn);數(shù)據(jù)正確,轉(zhuǎn)L2 L1:JB RB8,ER ;奇偶錯,轉(zhuǎn)錯誤處理;奇偶錯,轉(zhuǎn)錯誤處理L2:MOV R1,A ;存數(shù)據(jù);存數(shù)據(jù)INC R1 POP APOP PSWLJMP LRER:。:。LR:RETI單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口 TXD RXDT R1#T R2#T R3#T R4#主機(jī)主機(jī)從機(jī)從機(jī) 在實(shí)際應(yīng)用系統(tǒng)中,經(jīng)常需要多個微處理機(jī)協(xié)在實(shí)際應(yīng)用系統(tǒng)中,經(jīng)常需要多個微處理機(jī)協(xié)調(diào)工作,由于調(diào)工作,由于MCS-

56、51單片機(jī)具有多機(jī)通信功能故單片機(jī)具有多機(jī)通信功能故可以利用它構(gòu)成各種分布式系統(tǒng),電路結(jié)構(gòu)如下:可以利用它構(gòu)成各種分布式系統(tǒng),電路結(jié)構(gòu)如下:7.37.3多機(jī)通信多機(jī)通信單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口1,主機(jī)程序,主機(jī)程序 主機(jī)發(fā)送的信息可以被各從機(jī)接收,而各從機(jī)發(fā)主機(jī)發(fā)送的信息可以被各從機(jī)接收,而各從機(jī)發(fā)送的信息只能由主機(jī)接收,各從機(jī)之間通信只能通過送的信息只能由主機(jī)接收,各從機(jī)之間通信只能通過主機(jī)。主機(jī)。 主機(jī)采用中斷方式發(fā)送程序。主機(jī)采用中斷方式發(fā)送程序。 若主機(jī)要發(fā)送數(shù)據(jù),先調(diào)用名為若主機(jī)要發(fā)送數(shù)據(jù),先調(diào)用名為TRANSFER的子的子程序,以完成發(fā)

57、送數(shù)據(jù)前的初始化、參數(shù)預(yù)置,以及程序,以完成發(fā)送數(shù)據(jù)前的初始化、參數(shù)預(yù)置,以及和從機(jī)接通聯(lián)系的工作,而發(fā)送數(shù)據(jù)的任務(wù)則安排在和從機(jī)接通聯(lián)系的工作,而發(fā)送數(shù)據(jù)的任務(wù)則安排在中斷服務(wù)程序中,主程序在調(diào)用完中斷服務(wù)程序中,主程序在調(diào)用完TRANSFER后,繼后,繼續(xù)完成后面的工作,以后只需檢查狀態(tài)標(biāo)志位續(xù)完成后面的工作,以后只需檢查狀態(tài)標(biāo)志位PSW.1就可知道數(shù)據(jù)是否發(fā)送完畢。就可知道數(shù)據(jù)是否發(fā)送完畢。 待發(fā)送數(shù)據(jù)放在內(nèi)部待發(fā)送數(shù)據(jù)放在內(nèi)部RAM中,首地址為中,首地址為51H,數(shù)據(jù),數(shù)據(jù)塊長度在塊長度在50H單元,單元,PSW.1為是否發(fā)送完標(biāo)志位。發(fā)為是否發(fā)送完標(biāo)志位。發(fā)送完則置送完則置“1”。單

58、片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口子程序子程序串口初始化串口初始化置置TB8=1發(fā)從機(jī)地址發(fā)從機(jī)地址接收從機(jī)回答接收從機(jī)回答正確嗎?正確嗎?NY置置TB8=0準(zhǔn)備入口參數(shù),發(fā)送數(shù)準(zhǔn)備入口參數(shù),發(fā)送數(shù)據(jù)塊長度,據(jù)塊長度,允許串口中斷允許串口中斷返回返回CLR TI發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)完?發(fā)完?Y標(biāo)志位標(biāo)志位PSW.1=1禁止串口中斷禁止串口中斷恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場中斷返回中斷返回N保護(hù)現(xiàn)場保護(hù)現(xiàn)場中斷中斷單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口ORG 0000HLJMP MAINORG 0023H ;串行中斷程序入口;串行中斷程序入口OR

59、G 0030HLJMP SERVEMAIN:。:。;主程序(略);主程序(略)TRANSFER: PUSH PSW ;保護(hù)現(xiàn)場;保護(hù)現(xiàn)場MOV TL1,#0FDH ;置初值,波特率;置初值,波特率9600MOV TH1,#0FDHMOV SCON,#11011000;方式方式3,允許接收允許接收,TB8=1SETB TR1 ;啟動定時器;啟動定時器T1 SETB EA ;開中斷總允許;開中斷總允許CLR ES ;禁止串口中斷;禁止串口中斷PUSH ACCMOV TMOD,#20H ;設(shè)置;設(shè)置T1為定時器方式為定時器方式2單片機(jī)技術(shù)第第7 7章章 AT89S51AT89S51的串行口的串行口TX_ADDR:MOV SBUF,#01H;發(fā)從機(jī)地址;發(fā)從機(jī)地址JNB TI,$ ;等待,直到發(fā)送完畢。;等待,直到發(fā)送完畢。CLR TICLR RIJNB RI,$ ;等待從機(jī)應(yīng)答;等待從機(jī)應(yīng)答MOV A,SBUF ;接收從機(jī)應(yīng)答信息;接收從機(jī)應(yīng)答信息CJNE A,#01H,TX_ADDR;應(yīng)答不相符應(yīng)答不相符,再發(fā)地址再發(fā)地址CLR TB8 ;應(yīng)答相符,清;應(yīng)答相符,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論