第八章串行口_第1頁(yè)
第八章串行口_第2頁(yè)
第八章串行口_第3頁(yè)
第八章串行口_第4頁(yè)
第八章串行口_第5頁(yè)
已閱讀5頁(yè),還剩74頁(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、本章介紹的主要內(nèi)容本章介紹的主要內(nèi)容串行通信的基本概念串行通信的基本概念串行通信接口串行通信接口串行通信串行通信寄存器寄存器串行通信串行通信 數(shù)據(jù)通信方式有兩種:并行通信與串行通信數(shù)據(jù)通信方式有兩種:并行通信與串行通信并行通信:并行通信: 所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收,所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收, 數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線。數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線。 特點(diǎn):特點(diǎn): 速度快,成本高,適合近距離傳輸速度快,成本高,適合近距離傳輸 如計(jì)算機(jī)并口,打印機(jī),如計(jì)算機(jī)并口,打印機(jī),8255 。 串行通信:所傳送數(shù)據(jù)的各位按順序一位一位串行通信:所傳送數(shù)據(jù)的各位按順序一位一位 地發(fā)送或接收

2、。地發(fā)送或接收。 只需一根數(shù)據(jù),一根地線,共只需一根數(shù)據(jù),一根地線,共2 根根 (如雙向通信發(fā)送和接收各需(如雙向通信發(fā)送和接收各需1根數(shù)據(jù)線。)根數(shù)據(jù)線。) 特點(diǎn):成本低,硬件方便,適合遠(yuǎn)距離通信,特點(diǎn):成本低,硬件方便,適合遠(yuǎn)距離通信, 傳輸速度低。傳輸速度低。 通信的雙方應(yīng)該有一個(gè)約定,什么時(shí)候開始通信的雙方應(yīng)該有一個(gè)約定,什么時(shí)候開始發(fā)送,什么時(shí)候發(fā)送完畢;接收方收到的信息是發(fā)送,什么時(shí)候發(fā)送完畢;接收方收到的信息是否正確等,這就是否正確等,這就是通信協(xié)議通信協(xié)議。 異步串行通信一幀數(shù)據(jù)格式:異步串行通信一幀數(shù)據(jù)格式:l 一個(gè)起始位一個(gè)起始位 “0”,表示字符的開始,然后是表示字符的開

3、始,然后是58位數(shù)據(jù)即該字符的代碼,規(guī)定低位在前,高位數(shù)據(jù)即該字符的代碼,規(guī)定低位在前,高位在后,接位在后,接 下來(lái)是奇偶校驗(yàn)位下來(lái)是奇偶校驗(yàn)位(可省略可省略),最后以,最后以停止位停止位“1”表示字符的結(jié)束。表示字符的結(jié)束。l優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單。l缺點(diǎn):傳輸速度慢。缺點(diǎn):傳輸速度慢。P1D0 D1D2 D3 D4 D5 D6 D7P10第第n個(gè)字符(一幀)個(gè)字符(一幀)n-1n+10D0起起始始位位數(shù)據(jù)位(數(shù)據(jù)位(58位)位)校校驗(yàn)驗(yàn)位位停停止止位位二、同步通信二、同步通信 在同步通信中,發(fā)送方在數(shù)據(jù)或字符開始在同步通信中,發(fā)送方在數(shù)據(jù)或字符開始處就用同步字符處就用同步字

4、符(常約定常約定12個(gè)字節(jié)個(gè)字節(jié))指示一幀指示一幀的開始的開始 ,由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面面 就連續(xù)按順序傳送若干個(gè)數(shù)據(jù)就連續(xù)按順序傳送若干個(gè)數(shù)據(jù) ,最后發(fā),最后發(fā)校校驗(yàn)驗(yàn)字節(jié)。見(jiàn)下圖:字節(jié)。見(jiàn)下圖:SYN字符字符1SYN字符字符2數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)2.數(shù)據(jù)數(shù)據(jù)n連續(xù)傳送連續(xù)傳送n 個(gè)數(shù)據(jù)個(gè)數(shù)據(jù)校驗(yàn)校驗(yàn)按通信方向分類:?jiǎn)喂ぁ腚p工、全雙工通信方式按通信方向分類:?jiǎn)喂?、半雙工、全雙工通信方式 1 單工方式單工方式: 一端是發(fā)送端,另外一端是接收端:一端是發(fā)送端,另外一端是接收

5、端: 每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過(guò)開每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過(guò)開關(guān)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同關(guān)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收時(shí)發(fā)送和接收. 要通過(guò)換向器轉(zhuǎn)換方向。要通過(guò)換向器轉(zhuǎn)換方向。 通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接,可以可以同時(shí)發(fā)送和接收數(shù)據(jù)同時(shí)發(fā)送和接收數(shù)據(jù),因而提高了速度。因而提高了速度。 8.1.3 串行通信接口的任務(wù)串行通信接口的任務(wù)2.進(jìn)行串、并轉(zhuǎn)換進(jìn)行串、并轉(zhuǎn)換 在發(fā)送端,接口將在發(fā)送端,接口將CPU送來(lái)的并行信號(hào)轉(zhuǎn)換成串行數(shù)送來(lái)的并行信號(hào)轉(zhuǎn)換成串行數(shù)據(jù)進(jìn)行傳送;而在接收端,接口要將接據(jù)進(jìn)

6、行傳送;而在接收端,接口要將接 收到串行數(shù)據(jù)收到串行數(shù)據(jù)變成并行數(shù)據(jù)送往變成并行數(shù)據(jù)送往CPU,由,由CPU進(jìn)行處理。進(jìn)行處理。3.控制數(shù)據(jù)的傳輸速率控制數(shù)據(jù)的傳輸速率 接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率波特率的控制選擇能力,波特率的控制選擇能力,即具有波特率發(fā)生器。即具有波特率發(fā)生器。4.進(jìn)行傳送錯(cuò)誤檢測(cè)進(jìn)行傳送錯(cuò)誤檢測(cè) 在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校驗(yàn)位或校驗(yàn)碼,在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校驗(yàn)位或校驗(yàn)碼,在接收端能檢查校驗(yàn)位或校驗(yàn)在接收端能檢查校驗(yàn)位或校驗(yàn) 碼,以確定傳送中是否碼,以確定傳送中是否有誤碼。有誤碼。 是通信中對(duì)數(shù)據(jù)傳輸速率的一種描述。在計(jì)算是通信中對(duì)數(shù)據(jù)傳輸速

7、率的一種描述。在計(jì)算機(jī)中,其意義每秒傳送多少位二進(jìn)制位數(shù)。機(jī)中,其意義每秒傳送多少位二進(jìn)制位數(shù)。例如:例如:100字符字符/秒,秒,1個(gè)字符個(gè)字符11位,位, 波特率為:波特率為:10011=1100(波特)(波特) 平均每位傳送占用時(shí)間平均每位傳送占用時(shí)間 Td = 1/1100=0.909ms RXD TXD GNDRXDTXDGNDRXDTXDGND電電平平轉(zhuǎn)轉(zhuǎn)換換RXDTXDGNDRXDTXDGND電電平平轉(zhuǎn)轉(zhuǎn)換換RXDTXDGND微機(jī)微機(jī)微機(jī)其微機(jī)其他設(shè)備他設(shè)備較遠(yuǎn)距離傳送電路較遠(yuǎn)距離傳送電路近距離傳送電路近距離傳送電路微機(jī)接口調(diào)制解調(diào)器調(diào)制解調(diào)器接口微機(jī)電話分機(jī)電話分機(jī)遠(yuǎn)距離傳送電

8、路遠(yuǎn)距離傳送電路 數(shù)字信號(hào)通過(guò)調(diào)制器變成模擬信號(hào)通過(guò)電話線傳數(shù)字信號(hào)通過(guò)調(diào)制器變成模擬信號(hào)通過(guò)電話線傳送到對(duì)方,接收方通過(guò)解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字送到對(duì)方,接收方通過(guò)解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)接收。信號(hào)接收。 測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信方式,常用的異步總線標(biāo)準(zhǔn)有三種:方式,常用的異步總線標(biāo)準(zhǔn)有三種:RS-232(RS-232A RS-232B RS-232C)RS-449 (RS422 RS423 RS485)20mA電流環(huán)電流環(huán) 這里僅介紹這里僅介紹RS-232 RS-232C:速率:速率:20Kbit/S, 最大通信距離最大通

9、信距離 : 15m RS422: 10Mbit/s, : 300m 90Kbit/s, :1200m RS232C是美國(guó)電子工業(yè)協(xié)會(huì)(是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)公布的一種異)公布的一種異步串行通信標(biāo)準(zhǔn)。步串行通信標(biāo)準(zhǔn)。1、基本特性、基本特性設(shè)備之間通信的距離不大于設(shè)備之間通信的距離不大于15米米最大傳輸速率最大傳輸速率20KB/S采用負(fù)邏輯:采用負(fù)邏輯:“1” 5V 15V “0” +5V + 15V不帶負(fù)載時(shí)輸出電平:不帶負(fù)載時(shí)輸出電平:25V +25V輸出短路電流:輸出短路電流: 0.5A最大負(fù)載電容最大負(fù)載電容: 2500pF 當(dāng)計(jì)算機(jī)采用當(dāng)計(jì)算機(jī)采用RS232標(biāo)準(zhǔn)時(shí)必須通過(guò)電平轉(zhuǎn)換,

10、標(biāo)準(zhǔn)時(shí)必須通過(guò)電平轉(zhuǎn)換,MAX232 是是EIA和和TTL電平轉(zhuǎn)換芯片。內(nèi)部具有電壓提電平轉(zhuǎn)換芯片。內(nèi)部具有電壓提升電路,并有兩路接收器和發(fā)送器。其連線和引腳如圖升電路,并有兩路接收器和發(fā)送器。其連線和引腳如圖C1C1C C2 2C C2 2T1INT2INR1OUTR2OUTV+V-T1OUTT2OUTR1INR2IN+5V1.0FFFFF1.01.0 1.01.0+10V-10VTTL/CMOSTTL/CMOSRS-232RS-232VCCC1V+C1C2C2V-T2OUTT1OUTR2INVCCR1INR1OUTT1INT2INR2OUTGNDMAX232MAX232 連線圖連線圖MAX

11、232 引腳圖引腳圖2、RS-232的信號(hào) RS-232 9針D型和25針D型接線器如下圖;1)基本數(shù)據(jù)傳送線: TXD(Transmitted Data)數(shù)據(jù)發(fā)送腳 RXD (Received Data)數(shù)據(jù)接收腳 GND (Groud)信號(hào)地 串行通信中,最簡(jiǎn)單的通信只需連接這三根線2)握手信號(hào)RTS 請(qǐng)求發(fā)送信號(hào),輸出信號(hào)CTS 消除傳送,是對(duì)RTS的響應(yīng)信號(hào),輸入信號(hào)DCD 數(shù)據(jù)載波檢測(cè),輸入信號(hào)DSR 數(shù)據(jù)通信準(zhǔn)備就緒,輸入信號(hào)DTR數(shù)據(jù)終端就緒,輸出信號(hào),表明計(jì)算機(jī)已做好接收準(zhǔn)備8.1.8 單片機(jī)串行通信 電路 RXD TXD GNDTXDGND8xx518xx51RXDVCCEA

12、C1C2RSTXTAL1XTAL2TXDRXD89C51C1C2T1INR1OUTC2R1INT1OUTV-V+VCCC1C3C4C5GNDGNDC1=C2=C3=C4=C5=1FMAX23215PC機(jī)機(jī)COM1或或COM212346789+5V+5V 51單片機(jī)有一個(gè)可編程的全雙工異步串單片機(jī)有一個(gè)可編程的全雙工異步串行通信接口,它可作行通信接口,它可作UART用,也可作同用,也可作同步移位寄存器,步移位寄存器, 其幀格式可有其幀格式可有8位、位、10位或位或l l位,并能設(shè)位,并能設(shè)置各種波特率。置各種波特率。發(fā)送發(fā)送SBUF(99H)門門88 P132圖圖8.7 串行口結(jié)構(gòu)框圖串行口結(jié)構(gòu)

13、框圖 RXD(P3.0)TXD(P3.1)中斷中斷接收接收SBUF(99H)定定時(shí)時(shí)器器T1fosc2分頻器分頻器發(fā)送控制器發(fā)送控制器接收控制器接收控制器串寄串寄行存行存控器控器制制 SCON (98H)輸入移位寄存器輸入移位寄存器TIRI內(nèi)內(nèi) 部部 總總 線線 5 l 單片機(jī)通過(guò)引腳單片機(jī)通過(guò)引腳RXD(P3.0)串行數(shù)串行數(shù)據(jù)接收端和引腳據(jù)接收端和引腳TXD(P3.l)串行數(shù)據(jù)發(fā)送串行數(shù)據(jù)發(fā)送端端)與外界進(jìn)行通信。與外界進(jìn)行通信。 圖中有兩個(gè)物理上獨(dú)立的接收、發(fā)送圖中有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器緩沖器SBUF,它們占用同一地址,它們占用同一地址99H,可,可同時(shí)發(fā)送、接收數(shù)據(jù)。同時(shí)發(fā)

14、送、接收數(shù)據(jù)。 發(fā)送緩沖器只能寫入,不能讀出,發(fā)送緩沖器只能寫入,不能讀出,CPU寫寫SBUF,一方面修改發(fā)送寄存器,同時(shí)啟動(dòng)數(shù),一方面修改發(fā)送寄存器,同時(shí)啟動(dòng)數(shù)據(jù)串行發(fā)送;據(jù)串行發(fā)送; 接收緩沖器只能讀出、不能寫入。讀接收緩沖器只能讀出、不能寫入。讀SBUF,就是讀接收寄存器。就是讀接收寄存器。串行控制寄存器串行控制寄存器SCON 用以存用以存 放串行口的控制和狀態(tài)信息。通放串行口的控制和狀態(tài)信息。通過(guò)對(duì)它的設(shè)置、檢測(cè)與讀取過(guò)對(duì)它的設(shè)置、檢測(cè)與讀取 來(lái)管理串行通信的。來(lái)管理串行通信的。特特 殊功能寄存器殊功能寄存器PCON的最高位的最高位SMOD為串行為串行口波特率的倍增控制位??诓ㄌ芈实谋?/p>

15、增控制位。波特率發(fā)生器波特率發(fā)生器 可以有兩種選擇:可以有兩種選擇:1. 定時(shí)器定時(shí)器T1作波特率發(fā)生器,改變計(jì)數(shù)初值就作波特率發(fā)生器,改變計(jì)數(shù)初值就可以改變串行通信的速率,稱為可變波特率??梢愿淖兇型ㄐ诺乃俾?,稱為可變波特率。2. 以內(nèi)部時(shí)鐘的分頻器作波特率發(fā)生器,因內(nèi)部以內(nèi)部時(shí)鐘的分頻器作波特率發(fā)生器,因內(nèi)部時(shí)鐘頻率一定,稱為固定波特率時(shí)鐘頻率一定,稱為固定波特率 甲方發(fā)送時(shí),甲方發(fā)送時(shí),CPU執(zhí)行執(zhí)行指令指令 MOV SBUF , A 啟動(dòng)啟動(dòng)了發(fā)送過(guò)程,數(shù)據(jù)并行送入了發(fā)送過(guò)程,數(shù)據(jù)并行送入SBUF ,在發(fā)送時(shí)鐘,在發(fā)送時(shí)鐘 shift的控制下由低位到高位一位一位發(fā)送,乙方在接收時(shí)的控

16、制下由低位到高位一位一位發(fā)送,乙方在接收時(shí)鐘鐘 shift 的控制下由低位到高位的控制下由低位到高位 順序進(jìn)入移位寄存器順序進(jìn)入移位寄存器SBUF 。8.2.2 工作基本原理工作基本原理shiftMOV A , SBUF串行數(shù)據(jù)串行數(shù)據(jù)CPUCPU SBUF SBUFshiftMOV SBUF , A并行數(shù)據(jù)并行數(shù)據(jù)甲方(發(fā)送)甲方(發(fā)送)乙方(接收)乙方(接收) TIRI 甲方一幀數(shù)據(jù)發(fā)送完畢,置位發(fā)送中斷標(biāo)志甲方一幀數(shù)據(jù)發(fā)送完畢,置位發(fā)送中斷標(biāo)志TI,該位可作為查詢標(biāo)志(或引起中斷),該位可作為查詢標(biāo)志(或引起中斷),CPU可再發(fā)送下一幀數(shù)據(jù)可再發(fā)送下一幀數(shù)據(jù) 。 乙方一幀數(shù)據(jù)到齊即接收緩

17、沖器滿,置位接乙方一幀數(shù)據(jù)到齊即接收緩沖器滿,置位接收中斷標(biāo)志收中斷標(biāo)志RI,該位可作為查詢標(biāo)志(或引,該位可作為查詢標(biāo)志(或引起接收中斷),起接收中斷),通過(guò)通過(guò)MOV A ,SBUF CPU將這幀數(shù)據(jù)并行讀入。將這幀數(shù)據(jù)并行讀入。 由上述可知:由上述可知:1、發(fā)送方是先發(fā)數(shù)據(jù)再查標(biāo)志,接收方是先、發(fā)送方是先發(fā)數(shù)據(jù)再查標(biāo)志,接收方是先查標(biāo)志再收數(shù)據(jù)。查標(biāo)志再收數(shù)據(jù)。2、CPU通過(guò)指令和通過(guò)指令和SBUF并行交換數(shù)據(jù),并行交換數(shù)據(jù), TI和和RI確定數(shù)據(jù)的移位是否完成,即一幀確定數(shù)據(jù)的移位是否完成,即一幀數(shù)據(jù)是否發(fā)完或是否接收一幀數(shù)據(jù)?(數(shù)據(jù)是否發(fā)完或是否接收一幀數(shù)據(jù)?(通通過(guò)查詢標(biāo)志位或中斷

18、方式)過(guò)查詢標(biāo)志位或中斷方式)。51單片機(jī)串行口是一個(gè)可編程接口,對(duì)它單片機(jī)串行口是一個(gè)可編程接口,對(duì)它的編程只用兩個(gè)控制字分別寫入的編程只用兩個(gè)控制字分別寫入兩個(gè)兩個(gè)特特殊功能寄存器:殊功能寄存器: 串行口控制寄存器串行口控制寄存器SCON(98H) 電源控制寄存器電源控制寄存器PCON(97H) 8.3.1 串行口的控制寄存器串行口的控制寄存器SCON(98H) 8XX51串行通信的方式選擇串行通信的方式選擇 ,接收和發(fā)送控制及串接收和發(fā)送控制及串行口的標(biāo)志均由專用寄存器行口的標(biāo)志均由專用寄存器SCON控制和指示??刂坪椭甘?。其格式如下(其格式如下(P134):SM0.SM1:串行口工作方

19、式控制位。串行口工作方式控制位。 0 0-方式方式0, 0 1-方式方式1 1 0-方式方式2, 1 1-方式方式3REN:串行接收允許位。:串行接收允許位。 0-禁止接收禁止接收, 1-允許接收允許接收TB8: 在方式在方式2,3中中,TB8是發(fā)送機(jī)要發(fā)送的第是發(fā)送機(jī)要發(fā)送的第9位數(shù)據(jù)。位數(shù)據(jù)。RB8:在方式在方式2,3中中,RB8是接受機(jī)收到的第是接受機(jī)收到的第9位數(shù)據(jù)位數(shù)據(jù), 該數(shù)據(jù)來(lái)自發(fā)送機(jī)的該數(shù)據(jù)來(lái)自發(fā)送機(jī)的TB8。TI: 發(fā)送中斷標(biāo)志位。發(fā)送前必須用軟件清零,發(fā)發(fā)送中斷標(biāo)志位。發(fā)送前必須用軟件清零,發(fā) 送過(guò)程中送過(guò)程中TI保持零電平保持零電平,發(fā)送完一幀數(shù)據(jù)后,由發(fā)送完一幀數(shù)據(jù)后,

20、由 硬件置硬件置 “1”,如果再發(fā)送,如果再發(fā)送,必須用軟件再清零。必須用軟件再清零。RI: 接收中斷標(biāo)志位。接收前接收中斷標(biāo)志位。接收前,必須用軟件清零必須用軟件清零,接接 收過(guò)程中收過(guò)程中RI保持零電平,接收完一幀數(shù)據(jù)后由保持零電平,接收完一幀數(shù)據(jù)后由 片內(nèi)硬件自動(dòng)置片內(nèi)硬件自動(dòng)置“1”。如果再接收必須用軟件清。如果再接收必須用軟件清 零。零。SM2:多機(jī)通信控制位,僅用于方式多機(jī)通信控制位,僅用于方式2和方式和方式3。 當(dāng)選擇方式當(dāng)選擇方式2或方式或方式3時(shí)時(shí),發(fā)送機(jī)設(shè)置發(fā)送機(jī)設(shè)置SM2=1, 以發(fā)送第九位以發(fā)送第九位TB8為為1作為地址幀尋找從機(jī)作為地址幀尋找從機(jī),以以 TB8為為0作

21、為數(shù)據(jù)幀進(jìn)行通信,從機(jī)初始化時(shí)設(shè)作為數(shù)據(jù)幀進(jìn)行通信,從機(jī)初始化時(shí)設(shè) 置置SM2=1,若接收到的第九位數(shù)據(jù)若接收到的第九位數(shù)據(jù)RB8=0,不置位不置位 RI,即不引起接收中斷即不引起接收中斷,亦既不接收數(shù)據(jù)幀亦既不接收數(shù)據(jù)幀,繼續(xù)繼續(xù) 監(jiān)聽(tīng)監(jiān)聽(tīng),如接收到的如接收到的RB8=1,置位置位RI,引起接收中斷引起接收中斷, 中斷程序中判斷所接收的地址幀和本機(jī)的地址中斷程序中判斷所接收的地址幀和本機(jī)的地址是否符合是否符合,若不符合若不符合,維持維持SM2=1,繼續(xù)監(jiān)聽(tīng)繼續(xù)監(jiān)聽(tīng),若符合若符合,則則 清清SM2,接收對(duì)放發(fā)來(lái)的后續(xù)信息接收對(duì)放發(fā)來(lái)的后續(xù)信息. 綜上所述綜上所述,SM2的作用為的作用為:在方式

22、在方式2,3中,發(fā)送機(jī)中,發(fā)送機(jī)SM2=1(程序設(shè)置程序設(shè)置). 接收機(jī)接收機(jī)SM2=1,若若RB8=1,激活激活RI,引起接收中斷引起接收中斷. RB8=0,不激活不激活RI,不引起接斷不引起接斷. SM2=0,無(wú)論無(wú)論RB8=1還是還是RB8=0均激活均激活RI引起引起 接收中斷。接收中斷。在方式在方式1中中, 當(dāng)接收時(shí)當(dāng)接收時(shí)SM2=1, 則只有收到有效停止位才則只有收到有效停止位才 激活激活RI,在方式,在方式 0 中中, SM2應(yīng)置為應(yīng)置為0。 PCON的字節(jié)地址為的字節(jié)地址為87H,無(wú)位地址無(wú)位地址, 只能字節(jié)只能字節(jié)尋址尋址.,初始化時(shí)初始化時(shí)SMOD=0.PCON87H8 .3

23、. 2 電源控制寄存器電源控制寄存器PCON(P87H) PCON的格式如下圖所示的格式如下圖所示,串行通信只用其中串行通信只用其中的最高位的最高位SMODSMOD : 波特率加倍位。在計(jì)算串行方式波特率加倍位。在計(jì)算串行方式 1、 2、 3 的波特率時(shí),的波特率時(shí), SMOD 0 波特率不加倍波特率不加倍; SMOD 1 波特率加倍波特率加倍 根據(jù)串行通信數(shù)據(jù)格式和波特率的不同根據(jù)串行通信數(shù)據(jù)格式和波特率的不同, 51系列單片機(jī)的串行通信有四種工作方式系列單片機(jī)的串行通信有四種工作方式,通通過(guò)編程進(jìn)行選擇過(guò)編程進(jìn)行選擇,各工作方式的特點(diǎn)如下各工作方式的特點(diǎn)如下:1.方式方式0(移位寄存器方式

24、)(移位寄存器方式) RXD為串行數(shù)據(jù)的發(fā)送端或接收端為串行數(shù)據(jù)的發(fā)送端或接收端, TXD輸出頻率為輸出頻率為fosc/12的時(shí)鐘脈沖。的時(shí)鐘脈沖。波特率固定為波特率固定為fosc/12 (fosc為單片機(jī)晶振頻率為單片機(jī)晶振頻率)方式方式0的數(shù)據(jù)格式為的數(shù)據(jù)格式為8位位,低位在前低位在前,高位在后高位在后 根據(jù)串行通信數(shù)據(jù)格式和波特率的不同根據(jù)串行通信數(shù)據(jù)格式和波特率的不同, 51系列單片機(jī)的串行通信有四種工作方式系列單片機(jī)的串行通信有四種工作方式,通通過(guò)編程進(jìn)行選擇過(guò)編程進(jìn)行選擇,各工作方式的特點(diǎn)如下各工作方式的特點(diǎn)如下:1.方式方式0(移位寄存器方式)(移位寄存器方式) RXD為串行數(shù)據(jù)

25、的發(fā)送端或接收端為串行數(shù)據(jù)的發(fā)送端或接收端, TXD輸出頻率為輸出頻率為fosc/12的時(shí)鐘脈沖。的時(shí)鐘脈沖。波特率固定為波特率固定為fosc/12 (fosc為單片機(jī)晶振頻率為單片機(jī)晶振頻率)方式方式0的數(shù)據(jù)格式為的數(shù)據(jù)格式為8位位,低位在前低位在前,高位在后高位在后 發(fā)送過(guò)程以寫入發(fā)送過(guò)程以寫入SBUF寄存器開始,當(dāng)寄存器開始,當(dāng)8位數(shù)位數(shù)據(jù)傳送完,據(jù)傳送完,TI被置被置1,方可再發(fā)送下一幀數(shù)據(jù)。接,方可再發(fā)送下一幀數(shù)據(jù)。接收必須先置收必須先置REN=1(允許接收)和允許接收)和RI0,當(dāng),當(dāng)8位數(shù)位數(shù)據(jù)接收完,據(jù)接收完,RI被置被置1,此時(shí),可通過(guò)讀,此時(shí),可通過(guò)讀SBUF指令,指令,將

26、串行數(shù)據(jù)讀入。將串行數(shù)據(jù)讀入。 這種方式多用于接口擴(kuò)展,此時(shí),可外接串入并出這種方式多用于接口擴(kuò)展,此時(shí),可外接串入并出移位寄存器擴(kuò)展輸出接口,通過(guò)外接并入串出移位移位寄存器擴(kuò)展輸出接口,通過(guò)外接并入串出移位寄存器擴(kuò)展輸入接口。寄存器擴(kuò)展輸入接口。2.方式方式1(波特率可變(波特率可變10位異步通信方式)位異步通信方式) 為為10位異步通信方式位異步通信方式,每幀數(shù)據(jù)由每幀數(shù)據(jù)由1個(gè)起始位個(gè)起始位 “0”。八個(gè)數(shù)據(jù)位八個(gè)數(shù)據(jù)位 和和1個(gè)停止位個(gè)停止位“1”共共10位構(gòu)成位構(gòu)成。其中起始其中起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的位和停止位在發(fā)送時(shí)是自動(dòng)插入的。 以以TXD為串行數(shù)據(jù)的發(fā)送端為串行數(shù)據(jù)

27、的發(fā)送端,T1提供位時(shí)鐘提供位時(shí)鐘,RXD 為數(shù)據(jù)的接收端為數(shù)據(jù)的接收端,由由T1提供移位時(shí)鐘提供移位時(shí)鐘,是波特率可是波特率可 變方式變方式。波特率波特率=(2SMOD/32)(TI的溢出率的溢出率) =(2SMOD/32)(fosc/12(256-x) )根據(jù)給定的波特率根據(jù)給定的波特率,可以計(jì)算可以計(jì)算T1的計(jì)數(shù)初值的計(jì)數(shù)初值X。 11位異步通信方式位異步通信方式,即每幀數(shù)據(jù)由有一個(gè)起即每幀數(shù)據(jù)由有一個(gè)起 始位始位“0”,9個(gè)數(shù)據(jù)位和個(gè)數(shù)據(jù)位和1個(gè)停止位個(gè)停止位“1”組成組成.發(fā)送時(shí)發(fā)送時(shí) 九個(gè)數(shù)據(jù)位九個(gè)數(shù)據(jù)位,由由SCON寄存器的寄存器的TB8位位 提供提供,接收接收 到的第九位數(shù)據(jù)存

28、放在到的第九位數(shù)據(jù)存放在SCON寄存器的寄存器的RB8位位. 第九位數(shù)據(jù)可作為檢驗(yàn)位第九位數(shù)據(jù)可作為檢驗(yàn)位,也可用于多機(jī)通信中也可用于多機(jī)通信中 識(shí)別傳送的是地址還是數(shù)據(jù)的特征位。識(shí)別傳送的是地址還是數(shù)據(jù)的特征位。波特率固定為波特率固定為(2SMOD/64)fosc.3. 方式方式24. 方式方式3 數(shù)據(jù)格式同方式數(shù)據(jù)格式同方式 3,所不同的是,所不同的是算算方式同方式方式同方式 1。編程要點(diǎn)如下:編程要點(diǎn)如下: (1)填寫控制字。即對(duì))填寫控制字。即對(duì)SCON寄存器設(shè)定工作方式。寄存器設(shè)定工作方式。 (2)確定波特率。串行口的波特率有兩種方式:)確定波特率。串行口的波特率有兩種方式:固定波特

29、率,可變波特率。固定波特率,可變波特率。注意:使用可變波特率時(shí),先確定注意:使用可變波特率時(shí),先確定TI 的計(jì)數(shù)初值,的計(jì)數(shù)初值,并對(duì)并對(duì)TI 進(jìn)行初始化。進(jìn)行初始化。 (3)串行通信可采用兩種方式:)串行通信可采用兩種方式:查詢方式查詢方式: 查查TI或或RI 是否為是否為“1”。中斷方式:如果預(yù)先開了中斷,當(dāng)中斷方式:如果預(yù)先開了中斷,當(dāng)TI、RI 為為“1”,會(huì)自動(dòng)產(chǎn)生中斷。,會(huì)自動(dòng)產(chǎn)生中斷。注意:兩種方式中當(dāng)發(fā)送注意:兩種方式中當(dāng)發(fā)送完完或接受數(shù)據(jù)后都或接受數(shù)據(jù)后都要注意要注意 清清TI 或或RI 。l查詢方式發(fā)送程序:查詢方式發(fā)送程序: (先發(fā)后查)先發(fā)后查) 發(fā)送一個(gè)數(shù)據(jù)發(fā)送一個(gè)數(shù)

30、據(jù)查詢查詢TI 發(fā)送下一個(gè)數(shù)據(jù)發(fā)送下一個(gè)數(shù)據(jù)l查詢方式接收程序:(先查后收)查詢方式接收程序:(先查后收) 查詢查詢RI讀入一個(gè)數(shù)據(jù)讀入一個(gè)數(shù)據(jù)查詢查詢RI讀下一個(gè)數(shù)據(jù)讀下一個(gè)數(shù)據(jù)l中斷方式發(fā)送程序:中斷方式發(fā)送程序: 發(fā)送一個(gè)數(shù)據(jù)發(fā)送一個(gè)數(shù)據(jù)等待中斷,在中斷中再發(fā)送下一等待中斷,在中斷中再發(fā)送下一個(gè)數(shù)據(jù)。個(gè)數(shù)據(jù)。l中斷方式接收程序:中斷方式接收程序: 等待中斷,在中斷中再接收一個(gè)數(shù)據(jù)。等待中斷,在中斷中再接收一個(gè)數(shù)據(jù)。l查詢方式發(fā)送流程圖和接收流程圖查詢方式發(fā)送流程圖和接收流程圖l(P136 圖圖8-9)T1初始化、啟動(dòng)初始化、啟動(dòng)T1工作工作設(shè)定串行通信方式設(shè)定串行通信方式置發(fā)送數(shù)據(jù)塊首址

31、置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器清清TI發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)TI1?修改地址指針修改地址指針和塊長(zhǎng)度計(jì)數(shù)器和塊長(zhǎng)度計(jì)數(shù)器全部數(shù)據(jù)發(fā)送完?全部數(shù)據(jù)發(fā)送完?開始開始結(jié)束結(jié)束可變波特率查詢方式發(fā)送流程圖可變波特率查詢方式發(fā)送流程圖YNYNT1初始化、啟動(dòng)初始化、啟動(dòng)T1工作工作設(shè)定串行通信方式設(shè)定串行通信方式,允許接收允許接收置接收緩沖區(qū)首址置接收緩沖區(qū)首址接收數(shù)據(jù)塊長(zhǎng)度接收數(shù)據(jù)塊長(zhǎng)度清清RIRI1?修改地址指針修改地址指針和塊長(zhǎng)度計(jì)數(shù)器和塊長(zhǎng)度計(jì)數(shù)器全部數(shù)據(jù)接收完?全部數(shù)據(jù)接收完?開始開始結(jié)束結(jié)束接收數(shù)據(jù)接收數(shù)據(jù)Y可變波特率查詢方式接收流程圖可變波特率查詢方式接收流程圖YNYN 中斷方

32、式的初始化編程同查詢方式不同的是:中斷方式的初始化編程同查詢方式不同的是:要開中斷,即置位要開中斷,即置位EA和和ES;編寫中斷服務(wù)程序。編寫中斷服務(wù)程序。中斷方式串行通信的程序流程見(jiàn)下圖:中斷方式串行通信的程序流程見(jiàn)下圖:(P137 圖圖8-10)T1初始化、啟動(dòng)初始化、啟動(dòng)T1工作工作設(shè)定串行通信方式設(shè)定串行通信方式置發(fā)送數(shù)據(jù)塊首址置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)全部數(shù)據(jù)發(fā)送完?全部數(shù)據(jù)發(fā)送完?YN中斷方式發(fā)送流程圖中斷方式發(fā)送流程圖等待中斷等待中斷1 EA, 1ES發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)中斷返回中斷返回0 EA, 0ES中斷服務(wù)程序中斷服務(wù)程序主程序主程序修改地

33、址指針修改地址指針和塊長(zhǎng)度計(jì)數(shù)器和塊長(zhǎng)度計(jì)數(shù)器清清TIYNT1初始化、啟動(dòng)初始化、啟動(dòng)T1工作工作設(shè)定串行通信方式設(shè)定串行通信方式置接收數(shù)據(jù)塊首址置接收數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器全部數(shù)據(jù)接收完?全部數(shù)據(jù)接收完?Y中斷方式接收流程圖中斷方式接收流程圖等待中斷等待中斷1 EA, 1ES中斷返回中斷返回0 EA, 0ES中斷服務(wù)程序中斷服務(wù)程序主程序主程序修改地址指針修改地址指針和塊長(zhǎng)度計(jì)數(shù)器和塊長(zhǎng)度計(jì)數(shù)器清清RI接收數(shù)據(jù)接收數(shù)據(jù)YN例例8-1. 在內(nèi)部數(shù)據(jù)存貯器在內(nèi)部數(shù)據(jù)存貯器20H3FH單元中共有單元中共有32個(gè)數(shù)據(jù),要求采用方式個(gè)數(shù)據(jù),要求采用方式 1 串行發(fā)送出去,串行發(fā)送出

34、去, 傳送速率為傳送速率為1200波特,設(shè)波特,設(shè)fosc12MHZ。方法:方法:T1工作于方式工作于方式 2 作波特率發(fā)生器,取作波特率發(fā)生器,取SMOD0,T1的時(shí)間常數(shù)計(jì)算如下:的時(shí)間常數(shù)計(jì)算如下: 波特率波特率 1200(1/32)12106 /12(256-x) x230E6H(1)查詢方式編程)查詢方式編程 2 2SMODSMOD foscfosc12(256-x)12(256-x)32發(fā)送程序:發(fā)送程序: ORG 0000H MOV TMOD, #20H ;T1方式方式2 MOV TH1, #0E6H MOV TL1, #0E6H ;T1時(shí)間常數(shù)時(shí)間常數(shù) SETB TR1 ;啟動(dòng)

35、;啟動(dòng)T1 MOV SCON, #40H ;串行口工作于方式;串行口工作于方式1 MOV R0, #20H ;R0指發(fā)送緩沖區(qū)首指發(fā)送緩沖區(qū)首 MOV R7, #32 ;R7作發(fā)送數(shù)據(jù)計(jì)數(shù)作發(fā)送數(shù)據(jù)計(jì)數(shù)LO: MOV SBUF,R0 ;發(fā)送數(shù)據(jù);發(fā)送數(shù)據(jù) JNB TI, ;一幀未發(fā)完繼續(xù)查詢;一幀未發(fā)完繼續(xù)查詢 CLR TI ;一幀發(fā)完清;一幀發(fā)完清TI INC R0 DJNZ R7, LO ;數(shù)據(jù)塊未發(fā)完繼續(xù);數(shù)據(jù)塊未發(fā)完繼續(xù) SJMP 接收程序:接收程序: ORG 0000H MOV TMOD, #20H MOV TH1, #0E6H MOV TL1, #0E6H SETB TR1 ;初始

36、化;初始化T1, 并啟動(dòng)并啟動(dòng)T1 MOV SCON, #50H ;設(shè)定串行方式;設(shè)定串行方式1,并允許接收并允許接收 MOV R0, #20H MOV R7, #32 LOOP:JNB RI, ;一幀收完;一幀收完? CLR RI ;收完清;收完清RI MOV R0, SBUF ;將數(shù)據(jù)讀入;將數(shù)據(jù)讀入 INC R0 DJNZ R7, LOOP ;數(shù)據(jù)未發(fā)完,繼續(xù),即轉(zhuǎn);數(shù)據(jù)未發(fā)完,繼續(xù),即轉(zhuǎn)LOOP SJMP (2)中斷方式編程中斷方式的初始化同查詢方式,以下僅給出不同部分。中斷發(fā)送程序:。(部分主程序) SETB EA ; 開中斷 SETB ES ;容許串口中斷 MOV SBUF , R

37、0 ;發(fā)送LOOP: SJMP $ ;等待中斷AGA: DJNZ R7 ,LOOP ;數(shù)據(jù)未發(fā)完等待 CLR EA ;數(shù)據(jù)發(fā)完,關(guān)中斷 SJMP $ ORG 0023H(中斷服務(wù)程序) IOIP: CLR TI POP DPH POP DPL MOV DPTR ,#AGA ;修改中斷返回點(diǎn) 為AGA PUSH DPL PUSH DPH INC R0 MOV SBUF ,R0 RETI中斷接收程序:。(部分主程序) SETB EA SETB ESLOOP: SJMP $ AGA: DJNZ R7 ,LOOP CLR EA SJMP $ ORG 0023H(中斷服務(wù)程序) IOIP: CLR RI

38、 MOV R0 ,SBUF POP DPH POP DPL MOV DPTR , #AGA PUSH DPL PUSH DPH INC R0 RETI#includemain( ) unsingned char i;char *p;TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x40;p=0 x20;for (i=0;i=32;i+) SBUF=*p p+ while (!TI); TI=0; #include main( ) unsingned char i;char *p;TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;S

39、CON=0 x50;p=0 x20;for (i=0;i=32;i+) while (!RI); RI=0; *p=SBUF; p+ 查詢方式查詢方式 C 語(yǔ)言發(fā)送程序語(yǔ)言發(fā)送程序查詢方式查詢方式 C 語(yǔ)言接收程序語(yǔ)言接收程序TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x40;p=0 x20;SBUF=*pfor (i=0;i32;);#includeTrs( ) interrupt 4 TI=0; i+; p+; SBUF=*p; main( ) unsingned char i;char *p; 中斷方式中斷方式 C 語(yǔ)言發(fā)送程序語(yǔ)言發(fā)送程序TM

40、OD=0 x20;TH1=0 xe6;TL1=0 xe6;TR1=1;SCON=0 x50;p=0 x20;for (i=0;i32;);#includeTrs()() interrupt 4 RI=0; i+; *p =SBUF; p+; main( ) unsingned char i;char *p; 中斷方式中斷方式 C 語(yǔ)言接收程序語(yǔ)言接收程序RXD89C51TXDP1.0例例8-2 8-2 接線如圖(接線如圖(P139 P139 圖圖8-118-11),編一個(gè)自發(fā)),編一個(gè)自發(fā)自收程序,檢查單片機(jī)的串行口是否完好,自收程序,檢查單片機(jī)的串行口是否完好,f=12MHzf=12MHz,

41、波特率,波特率600600,取,取SMODSMOD0 0。解:依據(jù)公式解:依據(jù)公式波特率波特率 求得求得 )256(12321xo os sc cf fCCHx 204 MOV TMOD,#20H ; 0010000B,T1工作方式工作方式2MOV TH1, #0CCHMOV TL1, #0CCH ; 設(shè)定波特率設(shè)定波特率SETB TR1MOV SCON, #50H ; 01010000B,工作方式,工作方式1,接收容許,接收容許ABC: CLR TI MOV P1, #0FEH ; LED滅滅 ACALL DAY ; 延時(shí)延時(shí) MOV A, #OFFH MOV SBUF, A ; 發(fā)送數(shù)據(jù)發(fā)

42、送數(shù)據(jù)FFH JNB RI, $ ; RI = 0等待等待 CLR RI MOV A, SBUF ; 接收數(shù)據(jù),接收數(shù)據(jù),A=FFH MOV P1, A ; 燈亮燈亮 JNB TI, $ ;TI = 0 等待等待 ACALL DAY ; 延時(shí)延時(shí) SJMP ABCDAY: MOV R0, #0DAL: MOV R1, #0 DJNZ R1, $ DJNZ R0, DAL RET 如果發(fā)送接收正確,可觀察到如果發(fā)送接收正確,可觀察到P1.0P1.0接的發(fā)光二極管閃亮。接的發(fā)光二極管閃亮。 例例8-2 C語(yǔ)言編程語(yǔ)言編程include Main()unsigned int I;TMOD=0 x20

43、;TH1=0 xcc;TL1=0 xcc; / 初始化初始化T1TR1=1; SCON=0 x50;While(1) / / 無(wú)限循環(huán)執(zhí)行一下發(fā)送和接收語(yǔ)句無(wú)限循環(huán)執(zhí)行一下發(fā)送和接收語(yǔ)句TI=0;P1=0 xfe; / LED滅滅for(I=0;I10000;I+); / 延時(shí)延時(shí)SBUF0 xff; / 發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù)FFHwhile(RI=0); / RI=0等待等待RI=0; / RI=1清清RIP1=SBUF;/ 接收數(shù)據(jù)并送接收數(shù)據(jù)并送P1口,燈亮口,燈亮 while(TI=0); / TI=0等待等待for(I=0;I10000;I+); / 延時(shí)延時(shí)例例(P141)83,設(shè)甲、

44、乙兩機(jī)進(jìn)行通信,波特率設(shè)甲、乙兩機(jī)進(jìn)行通信,波特率為為2400,晶振均為,晶振均為6MH z ,甲機(jī)將外部數(shù)據(jù),甲機(jī)將外部數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器4000H40FFH單元內(nèi)容發(fā)向乙機(jī),發(fā)單元內(nèi)容發(fā)向乙機(jī),發(fā)送數(shù)據(jù)之前將數(shù)據(jù)長(zhǎng)度發(fā)給乙機(jī),當(dāng)數(shù)據(jù)發(fā)送送數(shù)據(jù)之前將數(shù)據(jù)長(zhǎng)度發(fā)給乙機(jī),當(dāng)數(shù)據(jù)發(fā)送完向乙機(jī)發(fā)送一個(gè)累加效驗(yàn)和。乙機(jī)接收數(shù)據(jù)完向乙機(jī)發(fā)送一個(gè)累加效驗(yàn)和。乙機(jī)接收數(shù)據(jù)完進(jìn)行累加和效驗(yàn),如果和發(fā)送方的累加和一完進(jìn)行累加和效驗(yàn),如果和發(fā)送方的累加和一致,發(fā)送數(shù)據(jù)致,發(fā)送數(shù)據(jù)“0”,如果不一致發(fā)送數(shù)據(jù),如果不一致發(fā)送數(shù)據(jù)FFH,甲方再重發(fā),編出程序。甲方再重發(fā),編出程序。解解(1)計(jì)算)計(jì)算T1初值初值 串口方

45、式串口方式1,T1采用方式采用方式2,取,取SMOD=0 2400=1/32 (6 106/(12 (256-X)))得得X=249.5FAH(2)約定)約定R6作為數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器,計(jì)數(shù)作為數(shù)據(jù)長(zhǎng)度計(jì)數(shù)器,計(jì)數(shù)256個(gè)字個(gè)字節(jié)。采用加節(jié)。采用加1計(jì)數(shù),初值為計(jì)數(shù),初值為0,R5作為累加和寄作為累加和寄存器。存器。甲機(jī)發(fā)送程序:甲機(jī)發(fā)送程序:TRT: MOV TMOD ,#20H MOV TH1,#0FAH MOV TL1,#0FAH SETB TR1 MOV SCON ,#50H ;串口方式;串口方式1,允許接收,允許接收 RPT: MOV DPTR,#4000H MOV R6, #00H ;

46、 MOV R5,#00H MOV SBUF,R6 ;發(fā)送數(shù)據(jù)長(zhǎng)度;發(fā)送數(shù)據(jù)長(zhǎng)度 L1: JBC TI,L2 ;查詢是否發(fā)送完,;查詢是否發(fā)送完,TI=1? AJMP L1 L2: MOX A, DPTR MOV SBUF,A ADD A,R5 MOV R5,A ;求發(fā)送數(shù)據(jù)累加和;求發(fā)送數(shù)據(jù)累加和 INC DPTR ;修改發(fā)送數(shù)據(jù)地址指針;修改發(fā)送數(shù)據(jù)地址指針 L4: JBC TI, L3 AJMP L4 L3 : DJNZ R6 , L2 ;判斷發(fā)送完判斷發(fā)送完256個(gè)數(shù)據(jù)否個(gè)數(shù)據(jù)否 MOV SBUF , R5 ;發(fā)送累加和發(fā)送累加和 MOV R5 ,#00H L6 : JBC TI , L5 AJMP L6 L5 : JBC RI , L7 ;等乙機(jī)回答 AJMP L5 L7 : MOV A ,SBUF JZ L8 ; 發(fā)送正確返回 AJMP RPT ;發(fā)送有錯(cuò),重發(fā) L8 : RET (3)乙機(jī)接收程序)乙機(jī)接收程序乙機(jī)接收甲機(jī)發(fā)送得數(shù)據(jù),并寫入以乙機(jī)接收甲機(jī)發(fā)送得數(shù)據(jù),并寫入以4000H為首地為首地址的外部數(shù)據(jù)存儲(chǔ)器中,首先接收數(shù)據(jù)長(zhǎng)度,接址的外部數(shù)據(jù)存儲(chǔ)器中,首先接收數(shù)據(jù)長(zhǎng)度,接著接收數(shù)據(jù),當(dāng)接收著接收數(shù)據(jù),當(dāng)接收256字節(jié)后,接收效驗(yàn)碼,字節(jié)后,接收效驗(yàn)碼,進(jìn)行累加和校驗(yàn),數(shù)據(jù)傳送結(jié)束,

溫馨提示

  • 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)論