第7章_單片機(jī)串行通信技術(shù)_第1頁(yè)
第7章_單片機(jī)串行通信技術(shù)_第2頁(yè)
第7章_單片機(jī)串行通信技術(shù)_第3頁(yè)
第7章_單片機(jī)串行通信技術(shù)_第4頁(yè)
第7章_單片機(jī)串行通信技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章 單片機(jī)的串行通信技術(shù)7.1 串行通信概述串行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例 7.1 串行通信概述串行通信概述 7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信 7.1.2 異步通信和同步通信異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例7

2、.1 串行通信概述串行通信概述常用的數(shù)據(jù)通信包括兩種形式:常用的數(shù)據(jù)通信包括兩種形式:并行并行通信和通信和串行串行通信。通信。并行通信并行通信 (1)并行方式并行方式數(shù)據(jù)的各位同時(shí)發(fā)送或同時(shí)接收。數(shù)據(jù)的各位同時(shí)發(fā)送或同時(shí)接收。 傳送速度快,但因需要多根傳輸線,故一般只在近距離通傳送速度快,但因需要多根傳輸線,故一般只在近距離通 信中使用。信中使用。7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信串行通信串行通信 (2)串行方式串行方式數(shù)據(jù)的各位依次逐位發(fā)送或接收。數(shù)據(jù)的各位依次逐位發(fā)送或接收。 傳輸速度慢,但因只需較少傳輸線,故適合于遠(yuǎn)距離通信。傳輸速度慢,但因只需較少傳輸線,故適合于遠(yuǎn)距離通信。7.1 串行通信

3、概述串行通信概述 7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信 7.1.2 異步通信和同步通信異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例7.1 串行通信概述串行通信概述7.1.2 異步通信和同步通信異步通信和同步通信在串行數(shù)據(jù)通信中,有在串行數(shù)據(jù)通信中,有同步同步通信和通信和異步異步通信兩種方式。通信兩種方式。一幀數(shù)據(jù)由一幀數(shù)據(jù)由起始位起始位、數(shù)據(jù)位數(shù)據(jù)位、可編程位可編程位和和停止位停

4、止位構(gòu)成構(gòu)成特點(diǎn)特點(diǎn)收發(fā)雙方不同步時(shí),能夠依靠在收發(fā)雙方不同步時(shí),能夠依靠在每幀開(kāi)始時(shí)每幀開(kāi)始時(shí)的不斷的不斷對(duì)齊,對(duì)齊,自行糾正偏差自行糾正偏差,故對(duì)收發(fā)雙方的,故對(duì)收發(fā)雙方的時(shí)鐘精度要求較低時(shí)鐘精度要求較低,但因但因每個(gè)字節(jié)都要建立一次同步每個(gè)字節(jié)都要建立一次同步,所以,所以工作速度較低工作速度較低。1. 異步通信異步通信以以字符為單位字符為單位組成字符幀進(jìn)行的數(shù)據(jù)傳送組成字符幀進(jìn)行的數(shù)據(jù)傳送2. 同步通信同步通信同步通訊數(shù)據(jù)格式同步通訊數(shù)據(jù)格式數(shù)據(jù)數(shù)據(jù)以塊為單位以塊為單位連續(xù)傳送。連續(xù)傳送。在發(fā)在發(fā)一組一組數(shù)據(jù)時(shí),只在開(kāi)始用數(shù)據(jù)時(shí),只在開(kāi)始用若干個(gè)同步字符若干個(gè)同步字符作為雙方的作為雙方的

5、號(hào)令,然后號(hào)令,然后連續(xù)發(fā)送整組數(shù)據(jù)連續(xù)發(fā)送整組數(shù)據(jù)。特點(diǎn)特點(diǎn)數(shù)據(jù)是數(shù)據(jù)是以數(shù)據(jù)塊為單位以數(shù)據(jù)塊為單位連續(xù)傳送的,結(jié)構(gòu)緊湊,連續(xù)傳送的,結(jié)構(gòu)緊湊,傳輸效率高,但要求傳輸效率高,但要求雙方有準(zhǔn)確的時(shí)鐘雙方有準(zhǔn)確的時(shí)鐘,對(duì),對(duì)硬件要求硬件要求高。高。7.1 串行通信概述串行通信概述 7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信 7.1.2 異步通信和同步通信異步通信和同步通信 7.1.3 波特率的概念和串行通信的傳輸方向波特率的概念和串行通信的傳輸方向 7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)

6、計(jì)應(yīng)用舉例7.1 串行通信概述串行通信概述 7.1.3 波特率的概念和串行通信的傳輸方向波特率的概念和串行通信的傳輸方向波特率為每秒鐘發(fā)送二進(jìn)制數(shù)碼的位數(shù),即波特率為每秒鐘發(fā)送二進(jìn)制數(shù)碼的位數(shù),即b/S (位位/秒秒)。在串行通信中,數(shù)據(jù)傳輸速率的快慢,通過(guò)在串行通信中,數(shù)據(jù)傳輸速率的快慢,通過(guò)波特率波特率來(lái)衡量。來(lái)衡量。 例如,在異步通信中傳輸速度為例如,在異步通信中傳輸速度為360字符字符/秒,每個(gè)字符又包含秒,每個(gè)字符又包含10位,則波特率為:位,則波特率為: 360字符字符/秒秒 * 10位位/字符字符 3600波特波特標(biāo)準(zhǔn)波特率:標(biāo)準(zhǔn)波特率:110、300、600、1200、2400

7、、4800、9600、19200、38400波特等。波特等。 三種傳輸形式:?jiǎn)喂?、半雙工、全雙工三種傳輸形式:?jiǎn)喂?、半雙工、全雙工 在串行通信中,按照傳輸數(shù)據(jù)的流向,可分成三種傳輸形式:在串行通信中,按照傳輸數(shù)據(jù)的流向,可分成三種傳輸形式: 單工通信單工通信 半雙工通信半雙工通信 全雙工通信全雙工通信 Simplex Half Duplex Full Duplex 80C51 內(nèi)部設(shè)有一個(gè)全雙工串行接口內(nèi)部設(shè)有一個(gè)全雙工串行接口收發(fā)雙方角色收發(fā)雙方角色固定不能互換固定不能互換收發(fā)雙方角色收發(fā)雙方角色可換但需切換可換但需切換收發(fā)雙方互不收發(fā)雙方互不影響雙向通信影響雙向通信RXDReceive D

8、ata接收數(shù)據(jù)接收數(shù)據(jù) TXDTransmit Data發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù) 7.1 串行通信概述串行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器 7.2.1串行口的結(jié)構(gòu)組成串行口的結(jié)構(gòu)組成 7.2.2串行口控制寄存器串行口控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器 7.1 串行口的結(jié)構(gòu)組成串行口的結(jié)構(gòu)組成 若干寄存器:若干寄存器: 兩個(gè)數(shù)據(jù)緩沖器兩個(gè)數(shù)據(jù)緩沖器SBUF(99H)+串行控制寄存器串行控制寄存器SCON(98H) +移

9、位寄存器移位寄存器+. 。CPU 兩個(gè)引腳:數(shù)據(jù)接收兩個(gè)引腳:數(shù)據(jù)接收RXD(P3.0) 和數(shù)據(jù)發(fā)送和數(shù)據(jù)發(fā)送TXD(P3.1)。 內(nèi)部數(shù)據(jù)并行寫(xiě)入內(nèi)部數(shù)據(jù)并行寫(xiě)入SBUF發(fā)發(fā)數(shù)據(jù)串行送出數(shù)據(jù)串行送出中斷標(biāo)志位中斷標(biāo)志位TI硬件置硬件置1CPU響應(yīng)中斷響應(yīng)中斷TI軟件清零軟件清零,寫(xiě)入下一數(shù)據(jù),寫(xiě)入下一數(shù)據(jù)CPU(1) 發(fā)送數(shù)據(jù)過(guò)程發(fā)送數(shù)據(jù)過(guò)程(中斷法)(中斷法)外界數(shù)據(jù)串行送入移位寄存器外界數(shù)據(jù)串行送入移位寄存器數(shù)據(jù)并行送入數(shù)據(jù)并行送入SBUF收收標(biāo)志標(biāo)志位位RI硬件置硬件置1CPU響應(yīng)中斷響應(yīng)中斷RI軟件清零軟件清零,讀走數(shù)據(jù),讀走數(shù)據(jù)CPU(2) 接收數(shù)據(jù)的過(guò)程接收數(shù)據(jù)的過(guò)程(中斷法)(

10、中斷法)D0D1D2D3D4D5D6D7傳送數(shù)據(jù)傳送數(shù)據(jù)同步時(shí)鐘同步時(shí)鐘數(shù)據(jù)傳送數(shù)據(jù)傳送將串行數(shù)據(jù)按一定節(jié)拍(同步時(shí)鐘脈將串行數(shù)據(jù)按一定節(jié)拍(同步時(shí)鐘脈沖)輸出到傳輸線上,或從傳輸線上讀入。沖)輸出到傳輸線上,或從傳輸線上讀入。同步時(shí)鐘信號(hào)可由同步時(shí)鐘信號(hào)可由系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘或或定時(shí)器定時(shí)器產(chǎn)生產(chǎn)生發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)時(shí),發(fā)送時(shí)鐘的時(shí),發(fā)送時(shí)鐘的下降沿下降沿將數(shù)據(jù)串行移位輸出;將數(shù)據(jù)串行移位輸出;接收數(shù)據(jù)接收數(shù)據(jù)時(shí),接收時(shí)鐘的時(shí),接收時(shí)鐘的上升沿上升沿開(kāi)始對(duì)數(shù)據(jù)位采樣。開(kāi)始對(duì)數(shù)據(jù)位采樣。7.1 串行通信概述串行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器 7.2.1串行

11、口的結(jié)構(gòu)組成串行口的結(jié)構(gòu)組成 7.2.2串行口控制寄存器串行口控制寄存器7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器在物理上有兩個(gè)在物理上有兩個(gè)SBUFSBUF:一個(gè)用于發(fā)送,另一個(gè)用于接收。:一個(gè)用于發(fā)送,另一個(gè)用于接收。在邏輯上只有一個(gè)在邏輯上只有一個(gè)SBUFSBUF(99H99H)。)??筛鶕?jù)用法區(qū)分功能:可根據(jù)用法區(qū)分功能:uchar counter; uchar counter; 待發(fā)送存放變量待發(fā)送存放變量SBUF = counter;SBUF = cou

12、nter; 完成一次數(shù)據(jù)發(fā)送完成一次數(shù)據(jù)發(fā)送counter = SBUF;counter = SBUF; 完成一次數(shù)據(jù)接收完成一次數(shù)據(jù)接收CPU7.2.2 串行口控制寄存器串行口控制寄存器(1) 串行數(shù)據(jù)緩沖器,串行數(shù)據(jù)緩沖器,SBUFSM2、TB8、RB8主要用于多機(jī)通訊(略)主要用于多機(jī)通訊(略)(2) 串口控制寄存器,串口控制寄存器,SCON(98H))(212322anfoscSMOD波特率由定時(shí)器產(chǎn)生的同步時(shí)鐘由定時(shí)器產(chǎn)生的同步時(shí)鐘(3) 電源控制寄存器,電源控制寄存器,PCON(87H) 通過(guò)通過(guò)SM0SM0和和SM1SM1不同的取值,可選擇串行通信中的四種工作方式。不同的取值,可

13、選擇串行通信中的四種工作方式。SM0 SM1工作方式工作方式說(shuō)明說(shuō)明波特率波特率 0 0方式方式0同步移位寄存器同步移位寄存器fosc/12 0 1方式方式110位異步收發(fā)位異步收發(fā)由定時(shí)器控制由定時(shí)器控制 1 0方式方式211位異步收發(fā)位異步收發(fā)fosc/32或或fosc/64 1 1方式方式311位異步收發(fā)位異步收發(fā)由定時(shí)器控制由定時(shí)器控制7.1 串行通信概述串行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式串行通信工作方式 7.3.1 方式方式0(八位同步移位寄存器方式)(八位同步移位寄存器方式) 7.3.2 方式方式1(十位異步收發(fā)通信

14、模式)(十位異步收發(fā)通信模式) 7.3.3 方式方式2、方式、方式3數(shù)據(jù)幀格式及應(yīng)用舉例數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例 7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例7.3.1 方式方式0:八位同步移位寄存器方式:八位同步移位寄存器方式數(shù)據(jù)傳輸波特率固定為數(shù)據(jù)傳輸波特率固定為fosc/12由由RXD引腳輸入或輸出引腳輸入或輸出數(shù)據(jù)數(shù)據(jù)(低位在前低位在前, ,高位在后高位在后)由由TXD引腳輸出引腳輸出同步時(shí)鐘信號(hào)同步時(shí)鐘信號(hào)擴(kuò)展輸出口擴(kuò)展輸出口擴(kuò)展輸入口擴(kuò)展輸入口用于擴(kuò)展并行用于擴(kuò)展并行I/O接口接口實(shí)例實(shí)例1 1 利用利用74LS1647

15、4LS164擴(kuò)展并行輸出口擴(kuò)展并行輸出口, ,并實(shí)現(xiàn)發(fā)光二極管循環(huán)控并實(shí)現(xiàn)發(fā)光二極管循環(huán)控制功能制功能能將串行輸入數(shù)據(jù)轉(zhuǎn)為并行輸出能將串行輸入數(shù)據(jù)轉(zhuǎn)為并行輸出引腳引腳功能描述功能描述A、B串行數(shù)據(jù)輸入引腳串行數(shù)據(jù)輸入引腳QAQG并行數(shù)據(jù)輸出引腳并行數(shù)據(jù)輸出引腳CLOCK移位脈沖輸入端移位脈沖輸入端CLEAR移位寄存器清零端移位寄存器清零端工作原理:工作原理:1 1)CLEARCLEAR端若為低電平,輸出端端若為低電平,輸出端QAQG都為都為0 0;2 2)CLEARCLEAR端若為高電平,且端若為高電平,且CLOCKCLOCK端出現(xiàn)上升沿脈沖,則端出現(xiàn)上升沿脈沖,則 輸出端鎖存輸入端的電平輸出

16、端鎖存輸入端的電平74LS16474LS164為為8 8位串并轉(zhuǎn)換移位寄存器位串并轉(zhuǎn)換移位寄存器數(shù)據(jù)發(fā)送端數(shù)據(jù)發(fā)送端A(B)A(B)RXD RXD ;同步時(shí)鐘端同步時(shí)鐘端CLKCLKTXDTXD;數(shù)據(jù)清除端數(shù)據(jù)清除端CLRCLRP1.0P1.0接線原理接線原理#includesbit MR=P10;void delay() /延時(shí)延時(shí) unsigned int i; for (i=0; i20000; i+) void main() unsigned char index, LED; /定義定義LED指針和顯示字模指針和顯示字模 SCON = 0; /設(shè)置串行模塊工作在方式設(shè)置串行模塊工作在方

17、式0 MR = 1; / CLEAR端端1,允許輸入數(shù)據(jù),允許輸入數(shù)據(jù) while (1) LED=0 xFE; for (index=0; index 8; index+) SBUF = LED; /控制控制L0燈點(diǎn)亮燈點(diǎn)亮 do while(!TI); /通過(guò)通過(guò)TI查詢判別數(shù)據(jù)是否輸出結(jié)束查詢判別數(shù)據(jù)是否輸出結(jié)束 LED = (LED1) |1); /左移左移1位,末位置位,末位置1 if (LED= 0 xff) LED = 0 xfe; /若已循環(huán)一遍,準(zhǔn)備重新開(kāi)始若已循環(huán)一遍,準(zhǔn)備重新開(kāi)始 delay(); 實(shí)例實(shí)例1參考程序參考程序?qū)嵗龑?shí)例1運(yùn)行效果運(yùn)行效果7.1 串行通信概述串

18、行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式串行通信工作方式 7.3.1 方式方式0(八位同步移位寄存器方式)(八位同步移位寄存器方式) 7.3.2 方式方式1(十位異步收發(fā)通信模式)(十位異步收發(fā)通信模式) 7.3.3 方式方式2、方式、方式3數(shù)據(jù)幀格式及應(yīng)用舉例數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例 7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器一幀信息:一幀信息:1個(gè)起始位個(gè)起始位(0)+8位數(shù)據(jù)位位數(shù)據(jù)位+1個(gè)停止位個(gè)停止位(1) ,其中起始位和停止位是其中起始位和停止位是自動(dòng)插入自

19、動(dòng)插入的。的。7.3.2 方式方式1:10位數(shù)據(jù)異步通訊方式位數(shù)據(jù)異步通訊方式用于雙機(jī)通信用于雙機(jī)通信波特率波特率=2SMOD(T1的溢出率的溢出率)/32 數(shù)據(jù)位數(shù)據(jù)位由由 P3.0 (RXD)端接收端接收, 由由P3.1(TXD)端發(fā)送端發(fā)送一幀信息為一幀信息為 10 位位: 一位起始位(一位起始位(0), 8 位數(shù)據(jù)位(低位在前)位數(shù)據(jù)位(低位在前)和一位停止位(和一位停止位(1)。)。發(fā)送過(guò)程發(fā)送過(guò)程: 用軟件清除用軟件清除 TI后后, CPU執(zhí)行任何一條以執(zhí)行任何一條以 SBUF為目標(biāo)寄存為目標(biāo)寄存器的指令器的指令, 就啟動(dòng)發(fā)送過(guò)程。數(shù)據(jù)由就啟動(dòng)發(fā)送過(guò)程。數(shù)據(jù)由TXD引腳輸出引腳輸出

20、, 此時(shí)的發(fā)此時(shí)的發(fā)送移位脈沖是由定時(shí)器送移位脈沖是由定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 T1 送來(lái)的溢出信號(hào)經(jīng)過(guò)送來(lái)的溢出信號(hào)經(jīng)過(guò) 16 或或 32 分頻而取得的。一幀信號(hào)發(fā)送完時(shí)分頻而取得的。一幀信號(hào)發(fā)送完時(shí), 將置位發(fā)送中斷標(biāo)志將置位發(fā)送中斷標(biāo)志TI=1, 向向CPU申請(qǐng)中斷。申請(qǐng)中斷。 2. 方式方式110位位UART方式方式 用軟件清除用軟件清除 RI后后, 當(dāng)允許接收位當(dāng)允許接收位REN=1 時(shí)時(shí), 接收器以選定接收器以選定波特率的波特率的 16 倍的速率采樣倍的速率采樣 RXD引腳上的電平引腳上的電平, 即在一個(gè)數(shù)據(jù)即在一個(gè)數(shù)據(jù)位期間有位期間有 16 個(gè)檢測(cè)脈沖個(gè)檢測(cè)脈沖, 并在第并在第 7、

21、 8、9 個(gè)脈沖期間采樣接個(gè)脈沖期間采樣接收信號(hào)收信號(hào), 然后用三中取二的原則確定檢測(cè)值然后用三中取二的原則確定檢測(cè)值, 以抑制干擾。以抑制干擾。 并并且采樣是在每個(gè)數(shù)據(jù)位的中間且采樣是在每個(gè)數(shù)據(jù)位的中間, 避免了信號(hào)邊沿的波形失真造避免了信號(hào)邊沿的波形失真造成的采樣錯(cuò)誤。成的采樣錯(cuò)誤。 當(dāng)檢測(cè)到有從當(dāng)檢測(cè)到有從“1”到到“0”的負(fù)跳變時(shí)的負(fù)跳變時(shí), 則啟動(dòng)接收過(guò)程則啟動(dòng)接收過(guò)程, 在在接收移位脈沖的控制下接收移位脈沖的控制下, 接收完一幀信息。接收完一幀信息。 當(dāng)最后一次移位脈當(dāng)最后一次移位脈沖產(chǎn)生時(shí)能滿足下列沖產(chǎn)生時(shí)能滿足下列兩個(gè)條件兩個(gè)條件: RI=0; 接收到的停止位為接收到的停止位為

22、1 或或 SM2=0。則則停止位送入停止位送入RB8,8位數(shù)據(jù)進(jìn)入位數(shù)據(jù)進(jìn)入SBUF,并置,并置RI1,完成一,完成一次接收過(guò)程。次接收過(guò)程。否則,所接收到的一幀信息將丟失,接收器復(fù)否則,所接收到的一幀信息將丟失,接收器復(fù)位,并重新開(kāi)始檢測(cè)負(fù)跳變,以便接收下一幀信息。位,并重新開(kāi)始檢測(cè)負(fù)跳變,以便接收下一幀信息。接收過(guò)程接收過(guò)程:發(fā)送條件:由發(fā)送條件:由SBUF = counter即可啟動(dòng)發(fā)送過(guò)程即可啟動(dòng)發(fā)送過(guò)程發(fā)送完成:硬件發(fā)送完成:硬件TI置置1接收條件:在允許接收位接收條件:在允許接收位REN=1時(shí)即可啟動(dòng)接收過(guò)程時(shí)即可啟動(dòng)接收過(guò)程接收完成:硬件接收完成:硬件RI置置1,數(shù)據(jù),數(shù)據(jù)SBU

23、F指定指定T1為波特率時(shí)鐘發(fā)生器(波特率時(shí)鐘可變)為波特率時(shí)鐘發(fā)生器(波特率時(shí)鐘可變))(232212anfoscSMOD波特率時(shí)鐘通常選擇通常選擇定時(shí)器方式定時(shí)器方式2(取(取fosc為為11.0592MHz)序號(hào)序號(hào)波特率波特率SMODa16250010 xff21920010 xfd3960000 xfd4480000 xfa5240000 xf46120000 xe8例如:例如:SCON=0 x50; /串口設(shè)為方式串口設(shè)為方式1,TI和和RI清零,允許接收清零,允許接收PCON=0 x80; /波特率加倍(波特率加倍(2)TMOD=0 x20; /T1設(shè)為定時(shí)方式設(shè)為定時(shí)方式2TH1

24、=0 xcc; /定時(shí)器初值定時(shí)器初值TL1=0 xcc; /重置的定時(shí)初值重置的定時(shí)初值IE=10010000B;/中斷使能(開(kāi)中斷)中斷使能(開(kāi)中斷)TR1=1; /啟動(dòng)啟動(dòng)T1GATETMODC/TM1M0M0M1GATEC/T(89H)一般初始化過(guò)程一般初始化過(guò)程方式方式1應(yīng)用舉例應(yīng)用舉例n例例7.3將將89C51單單片機(jī)的片機(jī)的TXD接接RXD,實(shí)現(xiàn)單片機(jī)串行口數(shù)實(shí)現(xiàn)單片機(jī)串行口數(shù)據(jù)自發(fā)自收,并將接據(jù)自發(fā)自收,并將接收的數(shù)據(jù)通過(guò)收的數(shù)據(jù)通過(guò)P1口口輸出到發(fā)光二極管顯輸出到發(fā)光二極管顯示。系統(tǒng)時(shí)鐘頻率為示。系統(tǒng)時(shí)鐘頻率為11.0592MHz,自,自發(fā)送接收的波特率為發(fā)送接收的波特率為2

25、400bps。編寫(xiě)程。編寫(xiě)程序,要求:?jiǎn)纹瑱C(jī)串序,要求:?jiǎn)纹瑱C(jī)串行口工作在方式,從行口工作在方式,從TXD發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)0 x55,從從RXD將該數(shù)據(jù)讀回,將該數(shù)據(jù)讀回,并送并送P1口通過(guò)口通過(guò)8個(gè)發(fā)個(gè)發(fā)光二極管顯示。電路光二極管顯示。電路圖如圖圖如圖7.13所示。所示。應(yīng)用應(yīng)用C51編寫(xiě)的程序如下:編寫(xiě)的程序如下:n#includen#define uchar unsigned charn#define uint unsigned int nvoid main()nn uchar i=0 x55;uint j=0;n TMOD=0X20;/設(shè)置定時(shí)器設(shè)置定時(shí)器1工作在模式工作在模式2n T

26、L1=0 xf4;/根據(jù)傳輸?shù)牟ㄌ芈试O(shè)置定時(shí)器根據(jù)傳輸?shù)牟ㄌ芈试O(shè)置定時(shí)器1初值初值n TH1=0 xf4;n PCON=0 x00;/電源控制寄存器最高位為電源控制寄存器最高位為0,波特率不加倍,波特率不加倍n SCON=0 x50;/選擇工作方式選擇工作方式1,使能收發(fā)功能,使能收發(fā)功能n TR1=1;/啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器1n while(1)n n SBUF=i;/發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)ndowhile(!RI);/等待發(fā)送數(shù)據(jù)返回等待發(fā)送數(shù)據(jù)返回nRI=0;TI=0;/軟件將標(biāo)志位軟件將標(biāo)志位RI和和TI清清0ni=SBUF;/讀取數(shù)據(jù)讀取數(shù)據(jù)nP1=i;/送入送入P1口顯示口顯示ni=i;

27、/將發(fā)送數(shù)據(jù)取反將發(fā)送數(shù)據(jù)取反nfor(j=0;j12500;j+);/延時(shí)延時(shí)n n雙機(jī)通信協(xié)議雙機(jī)通信協(xié)議通行方式:例如異步串行通信通行方式:例如異步串行通信波特率:波特率: 例如例如2400b/s發(fā)機(jī)要求發(fā)送的呼叫信號(hào):例如發(fā)機(jī)要求發(fā)送的呼叫信號(hào):例如10H收機(jī)同意接收的應(yīng)答信號(hào):例如收機(jī)同意接收的應(yīng)答信號(hào):例如20H收機(jī)不同意接收的應(yīng)答信號(hào):例如收機(jī)不同意接收的應(yīng)答信號(hào):例如30H告知數(shù)據(jù)正確的應(yīng)答信號(hào):例如告知數(shù)據(jù)正確的應(yīng)答信號(hào):例如0FH通信結(jié)束標(biāo)志信號(hào):例如通信結(jié)束標(biāo)志信號(hào):例如0AH要求設(shè)計(jì)一個(gè)雙機(jī)通信方案,甲機(jī)發(fā)送數(shù)據(jù),乙機(jī)接收數(shù)要求設(shè)計(jì)一個(gè)雙機(jī)通信方案,甲機(jī)發(fā)送數(shù)據(jù),乙機(jī)接

28、收數(shù)據(jù)。兩機(jī)的振蕩頻率為據(jù)。兩機(jī)的振蕩頻率為12MHz,波特率設(shè)置為,波特率設(shè)置為2.4k,工,工作在串口方式作在串口方式1。甲機(jī)循環(huán)發(fā)送甲機(jī)循環(huán)發(fā)送0-15的數(shù)字,乙機(jī)接收后返回接收值。若的數(shù)字,乙機(jī)接收后返回接收值。若發(fā)送值與返回值相等,繼續(xù)發(fā)送下一數(shù)字,否則重復(fù)發(fā)送發(fā)送值與返回值相等,繼續(xù)發(fā)送下一數(shù)字,否則重復(fù)發(fā)送當(dāng)前數(shù)字。當(dāng)前數(shù)字。發(fā)送值和接收值應(yīng)顯示在發(fā)送值和接收值應(yīng)顯示在LED數(shù)碼管上數(shù)碼管上;采用查詢法檢查收發(fā)是否完成。采用查詢法檢查收發(fā)是否完成。實(shí)例實(shí)例2:實(shí)例實(shí)例2電路原理圖電路原理圖實(shí)例實(shí)例2程序流程圖程序流程圖實(shí)例實(shí)例2甲機(jī)參考程序甲機(jī)參考程序#include#inclu

29、de#define uchar unsigned char#define uchar unsigned char#define uint unsigned int#define uint unsigned intvoid delay(unsigned int time)void delay(unsigned int time) uint j=0; uint j=0; for(;time0;time-) for(;time0;time-) for(j=0;j125;j+); for(j=0;j15)counter=0;if(+counter15)counter=0;/修正計(jì)數(shù)器值修正計(jì)數(shù)器值 d

30、elay(500);delay(500); /延時(shí)延時(shí) 實(shí)例實(shí)例2乙機(jī)參考程序乙機(jī)參考程序#include#include#define uchar unsigned char#define uchar unsigned charvoid main(void)void main(void) uchar receiv; uchar receiv; /定義接收緩沖定義接收緩沖 TMOD=0 x20;TMOD=0 x20;/T1/T1定時(shí)方式定時(shí)方式2 2 TH1=0 xf4; TH1=0 xf4;/2400b/S/2400b/S TL1=0 xf4; TL1=0 xf4; PCON=0 x00;

31、PCON=0 x00;/SMOD/SMOD0 0,波特率不加倍,波特率不加倍 TR1=1;TR1=1;/啟動(dòng)啟動(dòng)T1T1 SCON=0 x50; SCON=0 x50;/串行方式串行方式1 1,TITI和和RIRI清零,允許接收清零,允許接收 while(1)while(1) while(RI=1) while(RI=1) /等待接收完成等待接收完成 RI=0;RI=0;/清清RIRI標(biāo)志標(biāo)志 receiv=SBUF;receiv=SBUF;/取得接收值取得接收值 SBUF=receiv;SBUF=receiv;/結(jié)果返回主機(jī)結(jié)果返回主機(jī) while(TI=0);while(TI=0);/等待

32、發(fā)送完成等待發(fā)送完成 TI=0;/TI=0;/清清TITI標(biāo)志標(biāo)志 P2=receiv;P2=receiv;/顯示接收顯示接收 實(shí)例實(shí)例2運(yùn)行效果運(yùn)行效果7.1 串行通信概述串行通信概述7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器7.3 串行通信工作方式串行通信工作方式 7.3.1 方式方式0(八位同步移位寄存器方式)(八位同步移位寄存器方式) 7.3.2 方式方式1(十位異步收發(fā)通信模式)(十位異步收發(fā)通信模式) 7.3.3 方式方式2、方式、方式3數(shù)據(jù)幀格式及應(yīng)用舉例數(shù)據(jù)幀格式及應(yīng)用舉例 7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例 7.2 串行口的結(jié)構(gòu)組成及控制寄

33、存器串行口的結(jié)構(gòu)組成及控制寄存器因此:因此:串行口工作于模式串行口工作于模式 2 和模式和模式 3 時(shí)時(shí), 被定義為被定義為 9 位異步位異步通信接口。通信接口。 其其每幀數(shù)據(jù)結(jié)構(gòu)是每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的位的: 首先是起始位(首先是起始位(0), 其后是其后是 8 位數(shù)據(jù)位位數(shù)據(jù)位D0D7(低位在先)(低位在先), 第第 10 位是可編程位是可編程位位D8, 最后一位是停止位(最后一位是停止位(1)。)。7.2.3 方式方式2、方式、方式3數(shù)據(jù)幀格式及應(yīng)用舉例數(shù)據(jù)幀格式及應(yīng)用舉例方式方式2 2和方式和方式3 3的數(shù)據(jù)幀都是的數(shù)據(jù)幀都是1111位位用于多機(jī)通信用于多機(jī)通信格式為:格式為:可編

34、程位可用作奇偶校驗(yàn)位,但在多機(jī)通信時(shí),往往用作地可編程位可用作奇偶校驗(yàn)位,但在多機(jī)通信時(shí),往往用作地址和數(shù)據(jù)的區(qū)別通訊標(biāo)識(shí)。址和數(shù)據(jù)的區(qū)別通訊標(biāo)識(shí)。一個(gè)起始位,一個(gè)起始位,8個(gè)數(shù)據(jù)位,一個(gè)個(gè)數(shù)據(jù)位,一個(gè)可編程位可編程位和一個(gè)停止位和一個(gè)停止位方式方式2與方式與方式3的區(qū)別:的區(qū)別:n方式方式 2 和方式和方式3 工作原理相似工作原理相似, 唯一的差別是方式唯一的差別是方式2 的波特的波特率是固定的率是固定的, 即為即為 fOSC/ 32或或 fOSC / 64; 而方式而方式 3的波特的波特率是可變的率是可變的, 與定時(shí)器與定時(shí)器 T1的溢出率有關(guān)。的溢出率有關(guān)。n方式方式2的的波特率波特率=

35、2SMOD(fosc/64)n方式方式3的的波特率波特率=2SMOD(T1的溢出率的溢出率)/32 (與方式與方式1同同)注:注:可編程位可以由軟件置可編程位可以由軟件置1 1或清或清0 0;發(fā)送時(shí)在發(fā)送時(shí)在TB8TB8中,連同八位數(shù)據(jù)通過(guò)串口發(fā)出。中,連同八位數(shù)據(jù)通過(guò)串口發(fā)出。收到數(shù)據(jù)后,數(shù)據(jù)存入接收收到數(shù)據(jù)后,數(shù)據(jù)存入接收SBUFSBUF內(nèi),可編程位存入內(nèi),可編程位存入RB8RB8中。中。發(fā)送過(guò)程:發(fā)送過(guò)程:第第9位數(shù)據(jù)位數(shù)據(jù)-TB8 其它其它8位位-SBUF進(jìn)行一次發(fā)送。當(dāng)?shù)谶M(jìn)行一次發(fā)送。當(dāng)?shù)?位數(shù)據(jù)位數(shù)據(jù)(TB8)輸出后,置位輸出后,置位TI。接收過(guò)程:接收過(guò)程:在在REN=1時(shí),在第

36、時(shí),在第9位數(shù)據(jù)收到后,若下列條件同時(shí)位數(shù)據(jù)收到后,若下列條件同時(shí)滿足:滿足: RI=0; SM2 =0 或接收到的第或接收到的第 9 位數(shù)據(jù)為位數(shù)據(jù)為“1”。則將已接收到的數(shù)據(jù)裝入則將已接收到的數(shù)據(jù)裝入SBUF和和RB8,并置位,并置位RI。若不滿足則。若不滿足則接收無(wú)效。接收無(wú)效。 可見(jiàn),可見(jiàn),方式方式2和方式和方式3的接收與方式的接收與方式1接收不同:接收不同:其其RB8裝入裝入的是第的是第9位數(shù)據(jù)而方式位數(shù)據(jù)而方式1 RB8裝入的是停止位。所接收的停止位裝入的是停止位。所接收的停止位的值與的值與SBUF、 RB8 和和 RI都沒(méi)有關(guān)系都沒(méi)有關(guān)系, 利用這一特點(diǎn)可用于多機(jī)利用這一特點(diǎn)可用

37、于多機(jī)通信中。通信中。 方式方式2和方式和方式3的發(fā)送和接收過(guò)程的發(fā)送和接收過(guò)程方式方式2 2的波特率為固數(shù)值:的波特率為固數(shù)值:fOSCSMOD642波特率)(232212anSMODfosc波特率方式方式3 3的波特率和方式的波特率和方式1 1相同,是可變的:相同,是可變的:(與方式與方式1同同)波特率計(jì)算公式波特率計(jì)算公式串行口控制寄存器串行口控制寄存器SCON中的中的SM2為多機(jī)通信接口控制位。串行為多機(jī)通信接口控制位。串行口以方式口以方式2或或3接收時(shí),若接收時(shí),若SM2為為1,則僅當(dāng)接收到的第,則僅當(dāng)接收到的第9位數(shù)據(jù)位數(shù)據(jù)RB8為為1時(shí),數(shù)據(jù)才裝入時(shí),數(shù)據(jù)才裝入SBUF,置位,置

38、位RI,請(qǐng)求,請(qǐng)求CPU對(duì)數(shù)據(jù)進(jìn)行對(duì)數(shù)據(jù)進(jìn)行處理;當(dāng)處理;當(dāng)SM2為為0時(shí),則接收到一個(gè)數(shù)據(jù)后,不管第時(shí),則接收到一個(gè)數(shù)據(jù)后,不管第9位數(shù)據(jù)位數(shù)據(jù)RB8是是0還是還是1,都將數(shù)據(jù)裝入接收緩沖器,都將數(shù)據(jù)裝入接收緩沖器SBUF并置位中斷標(biāo)志并置位中斷標(biāo)志RI,請(qǐng)求,請(qǐng)求CPU處理。處理。多機(jī)通信原理多機(jī)通信原理RXDTXD主機(jī)主機(jī)TXDRXD01從機(jī)從機(jī)TXDRXD02從機(jī)從機(jī)TXDRXDn從機(jī)從機(jī)使所有從機(jī)的使所有從機(jī)的SM21,處于接收地址狀態(tài)。,處于接收地址狀態(tài)。主機(jī)發(fā)送一幀地址信息,其中前主機(jī)發(fā)送一幀地址信息,其中前8位為地址,第位為地址,第9位為地址標(biāo)位為地址標(biāo)置置1從機(jī)收到地址幀后,

39、各自將接收到的地址與本機(jī)地址比較,從機(jī)收到地址幀后,各自將接收到的地址與本機(jī)地址比較,相符者置相符者置SM20,為接收主機(jī)隨后發(fā)來(lái)的數(shù)據(jù)幀作好準(zhǔn)備。,為接收主機(jī)隨后發(fā)來(lái)的數(shù)據(jù)幀作好準(zhǔn)備。并向主機(jī)發(fā)回應(yīng)答信息。并向主機(jī)發(fā)回應(yīng)答信息。主機(jī)收到被叫從機(jī)的應(yīng)答信息后,開(kāi)始發(fā)數(shù)據(jù)幀信息,其中主機(jī)收到被叫從機(jī)的應(yīng)答信息后,開(kāi)始發(fā)數(shù)據(jù)幀信息,其中前前8位為數(shù)據(jù),第位為數(shù)據(jù),第9位為位為0,所以只有剛才將,所以只有剛才將SM2置置0的從機(jī)可的從機(jī)可以接收。以接收。為了提高可靠性,發(fā)、收雙方可以增加校驗(yàn)和。為了提高可靠性,發(fā)、收雙方可以增加校驗(yàn)和。多機(jī)通信協(xié)議多機(jī)通信協(xié)議7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例n7.1 串行通信概述串行通信概述n7.2 串行口的結(jié)構(gòu)組成及控制寄存器串行口的結(jié)構(gòu)組成及控制寄存器n7.3 串行通信工作方式及應(yīng)用舉例串行通信工作方式及應(yīng)用舉例n7.4 串行通信設(shè)計(jì)應(yīng)用舉例串行通信設(shè)計(jì)應(yīng)用舉例n7.4.1

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論