第7章_哈工大-MCS-51的串行口_第1頁(yè)
第7章_哈工大-MCS-51的串行口_第2頁(yè)
第7章_哈工大-MCS-51的串行口_第3頁(yè)
第7章_哈工大-MCS-51的串行口_第4頁(yè)
第7章_哈工大-MCS-51的串行口_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第7 7章章 MCS-51MCS-51的串行口的串行口全雙工全雙工的的異步異步通訊串行口通訊串行口4 4種工作方式種工作方式 , ,波特率由片內(nèi)定時(shí)器波特率由片內(nèi)定時(shí)器/ /計(jì)數(shù)器控制。計(jì)數(shù)器控制。每發(fā)送或接收一幀數(shù)據(jù),均可發(fā)出中斷請(qǐng)求。每發(fā)送或接收一幀數(shù)據(jù),均可發(fā)出中斷請(qǐng)求。除用于串行通訊,除用于串行通訊,還可用來擴(kuò)展并行還可用來擴(kuò)展并行I/OI/O口。口。7.1 7.1 串行口的結(jié)構(gòu)串行口的結(jié)構(gòu)串行口內(nèi)部結(jié)構(gòu)如下圖,串行口內(nèi)部結(jié)構(gòu)如下圖,兩個(gè)物理上獨(dú)立地接收和兩個(gè)物理上獨(dú)立地接收和發(fā)送緩沖器發(fā)送緩沖器,可同時(shí)收、發(fā)數(shù)據(jù)。,可同時(shí)收、發(fā)數(shù)據(jù)。兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址:兩個(gè)緩

2、沖器共用一個(gè)特殊功能寄存器字節(jié)地址:SBUFSBUF(99H99H)。)。 控制寄存器共兩個(gè):控制寄存器共兩個(gè):特殊功能寄存器特殊功能寄存器SCONSCON和和PCONPCON。 7.1.1 7.1.1 串行口控制寄存器串行口控制寄存器SCONSCON 字節(jié)地址字節(jié)地址9898H H,可位尋址,格式如圖所示可位尋址,格式如圖所示。 (1 1)SM0SM0、SM1SM1串行口串行口4種工作方式的選擇位種工作方式的選擇位 表表 串行口的串行口的4 4種工作方式種工作方式SM0 SM1 SM0 SM1 方式方式 功功 能能 說說 明明 0 0 0 0 0 0 同步移位寄存器方式(用于擴(kuò)展同步移位寄存

3、器方式(用于擴(kuò)展I/OI/O口)口) 0 1 0 1 1 1 8 8位異步收發(fā),波特率可變(由定時(shí)器控制)位異步收發(fā),波特率可變(由定時(shí)器控制) 1 0 1 0 2 2 9 9位異步收發(fā),波特率為位異步收發(fā),波特率為fosc/64fosc/64或或fosc/32fosc/32 1 1 1 1 3 3 9 9位異步收發(fā),波特率可變(由定時(shí)器控制)位異步收發(fā),波特率可變(由定時(shí)器控制)(2 2)SM2 SM2 多機(jī)通信控制位多機(jī)通信控制位 用于方式用于方式2 2或方式或方式3 3中。中。 當(dāng)串行口以當(dāng)串行口以方式方式2 2或方式或方式3 3接收接收時(shí),時(shí),如果如果SM2=1SM2=1,只有當(dāng)接收到

4、的第只有當(dāng)接收到的第9 9位數(shù)據(jù)(位數(shù)據(jù)(RB8RB8)為為“1 1”時(shí),才將接收到的前時(shí),才將接收到的前8 8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUFSBUF,并置并置“1 1” RIRI,產(chǎn)生中斷請(qǐng)求;當(dāng)接收到的第產(chǎn)生中斷請(qǐng)求;當(dāng)接收到的第9 9位數(shù)據(jù)(位數(shù)據(jù)(RB8RB8)為為“0 0”時(shí),則將接收到的前時(shí),則將接收到的前8 8位數(shù)據(jù)丟棄。位數(shù)據(jù)丟棄。如果如果SM2=0SM2=0,則不論第,則不論第9 9位數(shù)據(jù)是位數(shù)據(jù)是“1 1”還是還是“0 0”,都,都將將 前前8 8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUFSBUF中,并置中,并置“1 1” RIRI,產(chǎn)生產(chǎn)生中斷請(qǐng)求。中斷請(qǐng)求。在在方式方式1 1時(shí),如果時(shí)

5、,如果SM2=1SM2=1,則只有收到停止位時(shí)才會(huì)激則只有收到停止位時(shí)才會(huì)激活活RIRI。在在方式方式0 0時(shí),時(shí),SM2SM2必須為必須為0 0。 (3 3)RENREN允許串行接收位允許串行接收位 由軟件置由軟件置“1 1”或清或清“0 0”。 REN=1 REN=1 允許串行口接收數(shù)據(jù)。允許串行口接收數(shù)據(jù)。 REN=0 REN=0 禁止串行口接收數(shù)據(jù)。禁止串行口接收數(shù)據(jù)。 (4 4)TB8TB8發(fā)送的第發(fā)送的第9 9位數(shù)據(jù)位數(shù)據(jù)方式方式2 2和和3 3時(shí),時(shí),TB8TB8是要發(fā)送的第是要發(fā)送的第9 9位數(shù)據(jù),可作為位數(shù)據(jù),可作為奇偶奇偶校驗(yàn)位校驗(yàn)位使用,也可作為使用,也可作為地址幀地址幀

6、或或數(shù)據(jù)幀數(shù)據(jù)幀的標(biāo)志。的標(biāo)志。 =1=1為地址幀為地址幀, , =0=0為數(shù)據(jù)幀為數(shù)據(jù)幀 (5 5)RB8RB8接收到的第接收到的第9 9位數(shù)據(jù)位數(shù)據(jù)方式方式2 2和和3 3時(shí),時(shí),RB8RB8存放接收到的第存放接收到的第9 9位數(shù)據(jù)。在方式位數(shù)據(jù)。在方式1 1,如果如果SM2=0SM2=0,RB8RB8是接收到的停止位。在方式是接收到的停止位。在方式0 0,不,不使用使用RB8RB8。 (6 6)TITI發(fā)送中斷標(biāo)志位發(fā)送中斷標(biāo)志位方式方式0 0時(shí)時(shí),串行發(fā)送第,串行發(fā)送第8 8位數(shù)據(jù)結(jié)束時(shí)由硬件置位數(shù)據(jù)結(jié)束時(shí)由硬件置“1 1”,其它工作方式其它工作方式,串行口發(fā)送停止位的開始時(shí)置,串行口

7、發(fā)送停止位的開始時(shí)置“1 1”。TI=1TI=1,表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申請(qǐng)中斷??缮暾?qǐng)中斷。CPUCPU響應(yīng)中斷后響應(yīng)中斷后, , 向向SBUFSBUF寫入要發(fā)送的寫入要發(fā)送的下一幀數(shù)據(jù)。下一幀數(shù)據(jù)。TITI必須由軟件清必須由軟件清0 0。(7 7)RIRI接收中斷標(biāo)志位接收中斷標(biāo)志位 方式方式0 0時(shí)時(shí),接收完第,接收完第8 8位數(shù)據(jù)時(shí),位數(shù)據(jù)時(shí),RIRI由硬件置由硬件置1 1。其它工作方式其它工作方式,串行接收到停止位時(shí),該位置,串行接收到停止位時(shí),該位置“1 1”。RI=1RI=1,表示一幀數(shù)據(jù)接收完畢,并申請(qǐng)中斷表示一幀數(shù)據(jù)接收

8、完畢,并申請(qǐng)中斷, , CPUCPU從從接收接收SBUFSBUF取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。RIRI必必須由軟件清須由軟件清“0 0”。7.1.2 7.1.2 特殊功能寄存器特殊功能寄存器PCONPCON 字節(jié)地址為字節(jié)地址為8787H H,沒有位尋址功能沒有位尋址功能。 SMODSMOD:波特率選擇位波特率選擇位。 例如:方式例如:方式1 1的波特率的計(jì)算公式為:的波特率的計(jì)算公式為: 方式方式1 1波特率波特率= =(2 2SMODSMOD/32/32)定時(shí)器定時(shí)器T1T1的溢出率的溢出率也稱也稱SMODSMOD位為位為波特率倍增位波特率倍增位。7.2

9、7.2 串行口的串行口的4 4種工作方式種工作方式7.2.1 7.2.1 方式方式0 0 同步移位寄存器輸入同步移位寄存器輸入/ /輸出方式輸出方式,常用于外接移位寄,常用于外接移位寄存器,以擴(kuò)展并行存器,以擴(kuò)展并行I/OI/O口。口。 8 8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。收最低位。波特率固定為波特率固定為fosc/12fosc/12。幀格式如下:幀格式如下:1 1方式方式0 0發(fā)送發(fā)送 當(dāng)當(dāng)CPUCPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUFSBUF的指令時(shí),的指令時(shí),產(chǎn)生一個(gè)正脈沖,串行口即把產(chǎn)生一

10、個(gè)正脈沖,串行口即把SBUFSBUF中的中的8 8位數(shù)據(jù)以位數(shù)據(jù)以fosc/12fosc/12的固定波特率從的固定波特率從RXDRXD引腳串行輸出引腳串行輸出,低位在,低位在先先, ,TXDTXD引腳輸出同步移位脈沖引腳輸出同步移位脈沖,發(fā)送完,發(fā)送完8 8位數(shù)據(jù)置位數(shù)據(jù)置“1 1”中斷標(biāo)志位中斷標(biāo)志位TITI。時(shí)序如圖時(shí)序如圖7-57-5所示。所示。2 2方式方式0 0接收接收 REN=1REN=1,接收數(shù)據(jù),接收數(shù)據(jù),REN=0REN=0,禁止接收禁止接收。 REN=1REN=1,允許接收允許接收。向串口的。向串口的SCONSCON寫入控制字(置為方寫入控制字(置為方式式0 0,并置,并置

11、“1 1”RENREN位,同時(shí)位,同時(shí)RI=0RI=0)時(shí),產(chǎn)生一個(gè)正時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開始接收數(shù)據(jù)。脈沖,串行口即開始接收數(shù)據(jù)。RXDRXD為數(shù)據(jù)輸入端,為數(shù)據(jù)輸入端,TXDTXD為移位脈沖信號(hào)輸出端為移位脈沖信號(hào)輸出端,接收器也以接收器也以fosc/12fosc/12的固的固定波特率定波特率采樣采樣RXDRXD引腳的數(shù)據(jù)信息,當(dāng)收到引腳的數(shù)據(jù)信息,當(dāng)收到8 8位數(shù)據(jù)時(shí)位數(shù)據(jù)時(shí)置置“1 1” RIRI。表示一幀數(shù)據(jù)接收完,時(shí)序如下:表示一幀數(shù)據(jù)接收完,時(shí)序如下:方式方式0 0下,下,SCONSCON中的中的TB8TB8、RB8RB8位沒有用到,發(fā)送或接收位沒有用到,發(fā)送或接收完完8

12、 8位數(shù)據(jù)由硬件置位數(shù)據(jù)由硬件置“1 1”TITI或或RIRI,CPUCPU響應(yīng)中斷。響應(yīng)中斷。TITI或或RIRI須由用戶軟件清須由用戶軟件清“0 0”,可用如下指令:,可用如下指令:CLR TICLR TI;TITI位清位清“0 0”CLR RI CLR RI ;RIRI位清位清“0 0”方式方式0 0時(shí),時(shí),SM2SM2位必須為位必須為0 0。 7.2.2 7.2.2 方式方式1 1 SM0SM0、SM1SM1=01=01方式方式1 1一幀數(shù)據(jù)一幀數(shù)據(jù)為為1010位,位,1 1個(gè)起始位(個(gè)起始位(0 0),),8 8個(gè)數(shù)據(jù)位,個(gè)數(shù)據(jù)位,1 1個(gè)停止位(個(gè)停止位(1 1),先發(fā)送或接收最低

13、位。幀格式如),先發(fā)送或接收最低位。幀格式如下:下:方式方式1 1波特率波特率= =(2 2SMOD/32SMOD/32)定時(shí)器定時(shí)器T1T1的溢出率的溢出率 SMOD SMOD為為PCONPCON寄存器的最高位的值(寄存器的最高位的值(0 0或或1 1)。)。 1 1方式方式1 1發(fā)送發(fā)送 方式方式1 1輸出時(shí),數(shù)據(jù)由輸出時(shí),數(shù)據(jù)由TXDTXD輸出,輸出,一幀信息為一幀信息為1010位位,1 1位起始位位起始位0 0,8 8位數(shù)據(jù)位(先低位)位數(shù)據(jù)位(先低位)和和1 1位停止位位停止位1 1。當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUFSBUF的指令,就啟動(dòng)發(fā)的指令,就啟動(dòng)發(fā)

14、送。圖中送。圖中TXTX時(shí)鐘的頻率就是發(fā)送的波特率。時(shí)鐘的頻率就是發(fā)送的波特率。發(fā)送開始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位發(fā)送開始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向向TXDTXD輸出,此后,每經(jīng)過一個(gè)輸出,此后,每經(jīng)過一個(gè)TXTX時(shí)鐘周期,便產(chǎn)時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由生一個(gè)移位脈沖,并由TXDTXD輸出一個(gè)數(shù)據(jù)位。輸出一個(gè)數(shù)據(jù)位。8 8位數(shù)位數(shù)據(jù)位全部發(fā)送完畢后,置據(jù)位全部發(fā)送完畢后,置“1 1” TITI。方式。方式1 1發(fā)送數(shù)發(fā)送數(shù)據(jù)的時(shí)序,如圖據(jù)的時(shí)序,如圖7-87-8所示。所示。 2 2方式方式1 1接收接收 數(shù)據(jù)從數(shù)據(jù)從RXDRXD(P3.0P3.0)腳輸入。當(dāng)檢

15、測(cè)到起始位的負(fù)跳變腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),開始接收數(shù)據(jù)。時(shí),開始接收數(shù)據(jù)。定時(shí)控制信號(hào)有兩種定時(shí)控制信號(hào)有兩種):):接收移位時(shí)鐘接收移位時(shí)鐘(RXRX時(shí)鐘,頻時(shí)鐘,頻率和波特率相同)和率和波特率相同)和位檢測(cè)器采樣脈沖位檢測(cè)器采樣脈沖(頻率是(頻率是RXRX時(shí)鐘的時(shí)鐘的1616倍,倍,1 1位數(shù)據(jù)期間,有位數(shù)據(jù)期間,有1616個(gè)采樣脈沖),當(dāng)個(gè)采樣脈沖),當(dāng)采樣到采樣到RXDRXD端從端從1 1到到0 0的跳變時(shí)就啟動(dòng)檢測(cè)器,的跳變時(shí)就啟動(dòng)檢測(cè)器,接收的接收的值是值是3 3次連續(xù)采樣(第次連續(xù)采樣(第7 7、8 8、9 9個(gè)脈沖時(shí)采樣)個(gè)脈沖時(shí)采樣)進(jìn)行進(jìn)行表表決決以以確認(rèn)是否是真

16、正的起始位確認(rèn)是否是真正的起始位(負(fù)跳變)的開始。(負(fù)跳變)的開始。當(dāng)一幀數(shù)據(jù)接收完,須同時(shí)滿足兩個(gè)條件,接收才真正當(dāng)一幀數(shù)據(jù)接收完,須同時(shí)滿足兩個(gè)條件,接收才真正有效。有效。 RI=0RI=0,即上一幀數(shù)據(jù)接收完成時(shí),即上一幀數(shù)據(jù)接收完成時(shí),RI=1RI=1發(fā)出的中斷發(fā)出的中斷請(qǐng)求已被響應(yīng),請(qǐng)求已被響應(yīng),SBUFSBUF中的數(shù)據(jù)已被取走,說明中的數(shù)據(jù)已被取走,說明“接收接收SBUFSBUF”已空。已空。 SM2=0SM2=0或或收到的停止位收到的停止位=1=1(方式(方式1 1時(shí),停止位已進(jìn)入時(shí),停止位已進(jìn)入RB8RB8),),則收到的數(shù)據(jù)裝入則收到的數(shù)據(jù)裝入SBUFSBUF和和RB8RB8

17、(RB8RB8裝入停止裝入停止位),且置位),且置“1 1”中斷標(biāo)志中斷標(biāo)志RIRI。若這兩個(gè)條件不同時(shí)滿足,收到的數(shù)據(jù)將丟失。若這兩個(gè)條件不同時(shí)滿足,收到的數(shù)據(jù)將丟失。 7.2.3 7.2.3 方式方式2 29 9位位異步通信接口。異步通信接口。每幀數(shù)據(jù)均為每幀數(shù)據(jù)均為1111位位,1 1位起始位位起始位0 0,8 8位數(shù)據(jù)位(先低位),位數(shù)據(jù)位(先低位),1 1位可程控的第位可程控的第9 9位數(shù)據(jù)和位數(shù)據(jù)和1 1位停止位。幀格式如下。位停止位。幀格式如下。 方式方式2 2波特率波特率= = (2 2SMODSMOD/64/64)foscfosc 1方式方式2發(fā)送發(fā)送發(fā)送前,先根據(jù)通訊協(xié)議由

18、軟件發(fā)送前,先根據(jù)通訊協(xié)議由軟件設(shè)置設(shè)置TB8TB8(例如,雙機(jī)例如,雙機(jī)通訊時(shí)的奇偶校驗(yàn)位或多機(jī)通訊時(shí)的地址通訊時(shí)的奇偶校驗(yàn)位或多機(jī)通訊時(shí)的地址/ /數(shù)據(jù)的標(biāo)數(shù)據(jù)的標(biāo)志位)。志位)。方式方式2 2發(fā)送數(shù)據(jù)波形如圖所示。發(fā)送數(shù)據(jù)波形如圖所示。 例例7-17-1 方式方式2 2發(fā)送在雙機(jī)通訊中的應(yīng)用。發(fā)送在雙機(jī)通訊中的應(yīng)用。下面的下面的發(fā)送發(fā)送中斷服務(wù)程序,是在雙機(jī)通訊中,以中斷服務(wù)程序,是在雙機(jī)通訊中,以TB8TB8作為奇偶校驗(yàn)位,處理方法為數(shù)據(jù)寫入作為奇偶校驗(yàn)位,處理方法為數(shù)據(jù)寫入SBUFSBUF之前,之前,先將數(shù)據(jù)的奇偶校驗(yàn)位寫入先將數(shù)據(jù)的奇偶校驗(yàn)位寫入TB8TB8,以保證采用偶校以保證采

19、用偶校驗(yàn)發(fā)送。驗(yàn)發(fā)送。 PIPTIPIPTI: PUSH PSW PUSH PSW ;現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)保護(hù) PUSH AccPUSH Acc SETB RS1 SETB RS1 ;選擇第選擇第2 2組工作寄存器區(qū)組工作寄存器區(qū) CLR RS0CLR RS0 CLR TI CLR TI ;發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志清“0 0” MOV AMOV A,R0R0;取數(shù)據(jù)取數(shù)據(jù) MOV C,P MOV C,P ;校驗(yàn)位送校驗(yàn)位送TB8,TB8,采用偶校驗(yàn)采用偶校驗(yàn) MOV TB8 ,CMOV TB8 ,C MOV SBUF ,A MOV SBUF ,A ;啟動(dòng)發(fā)送啟動(dòng)發(fā)送 INC R0 INC R0 ;數(shù)

20、據(jù)指針加數(shù)據(jù)指針加1 1 POP Acc POP Acc ;恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng) POP PSW POP PSW RETI RETI ;中斷返回中斷返回 2 2方式方式2 2接收接收 SM0SM0、SM1SM1=10=10,且且REN=1REN=1。數(shù)據(jù)由。數(shù)據(jù)由RXDRXD端輸入,接收端輸入,接收1111位位信息。當(dāng)位檢測(cè)到信息。當(dāng)位檢測(cè)到RXDRXD從從1 1到到0 0的負(fù)跳變,并判斷起始的負(fù)跳變,并判斷起始位有效后,開始收一幀信息。在接收器完第位有效后,開始收一幀信息。在接收器完第9 9位數(shù)據(jù)位數(shù)據(jù)后,后,需滿足兩個(gè)條件需滿足兩個(gè)條件,才能將接收到的數(shù)據(jù)送入,才能將接收到的數(shù)據(jù)送入SBUFS

21、BUF。(1 1)RI=0RI=0,意味著接收緩沖器為空。意味著接收緩沖器為空。(2 2)SM2=0SM2=0或或接收到的第接收到的第9 9位數(shù)據(jù)位位數(shù)據(jù)位RB8=1RB8=1時(shí)時(shí)。當(dāng)上述兩個(gè)條件滿足時(shí),接收到的數(shù)據(jù)送入當(dāng)上述兩個(gè)條件滿足時(shí),接收到的數(shù)據(jù)送入SBUFSBUF(接接收緩沖器),收緩沖器),第第9 9位數(shù)據(jù)送入位數(shù)據(jù)送入RB8RB8,并置并置“1 1”RIRI。若不滿足兩個(gè)條件,接收的信息將被丟棄。若不滿足兩個(gè)條件,接收的信息將被丟棄。方式方式2 2接收數(shù)據(jù)的時(shí)序如圖所示。接收數(shù)據(jù)的時(shí)序如圖所示。 例例7-27-2 方式方式2 2接收在雙機(jī)通訊中的應(yīng)用。接收在雙機(jī)通訊中的應(yīng)用。本例

22、與上例相對(duì)應(yīng)。若第本例與上例相對(duì)應(yīng)。若第9 9位數(shù)據(jù)為校驗(yàn)位,在接收程位數(shù)據(jù)為校驗(yàn)位,在接收程序中作序中作偶校驗(yàn)偶校驗(yàn)處理,設(shè)處理,設(shè)1 1組寄存器區(qū)的組寄存器區(qū)的R0R0為數(shù)據(jù)緩沖為數(shù)據(jù)緩沖器指針。器指針。 PIRI: PIRI: PUSH PSWPUSH PSW PUSH AccPUSH AccSETB RS0 SETB RS0 ;選擇選擇1 1組寄存器區(qū)組寄存器區(qū)CLR RS1CLR RS1CLR RI CLR RI MOV A,SBUF MOV A,SBUF ;收到數(shù)據(jù)送收到數(shù)據(jù)送A AMOV C,PMOV C,PJNC L1JNC L1 ;C C0 0。跳。跳L1L1JNB RB8,

23、ERP JNB RB8,ERP ;ERPERP為出錯(cuò)處理程序?yàn)槌鲥e(cuò)處理程序 AJMP L2AJMP L2 L1: JB RB8,ERP L1: JB RB8,ERP;RB8RB81 1,跳,跳ERPERP L2: MOV R0,A L2: MOV R0,A INC R0 INC R0 POP Acc POP Acc POP PSW POP PSW ERP: ERP: ;出錯(cuò)處理程序段出錯(cuò)處理程序段 RETIRETI7.2.4 7.2.4 方式方式3 3SM0SM0、SM1SM1=11=11,串口為方式,串口為方式3 3。波特率可變的波特率可變的9 9位異步通訊方式,位異步通訊方式,除波特率外,

24、方式除波特率外,方式3 3和方式和方式2 2相同。相同。方式方式3 3的時(shí)序見方式的時(shí)序見方式2 2。 方式方式3 3波特率波特率= =(2 2SMODSMOD/32/32)定時(shí)器定時(shí)器T1T1的溢出率的溢出率7.3 7.3 多機(jī)通訊多機(jī)通訊要要保證主機(jī)與所選擇的從機(jī)實(shí)現(xiàn)可靠地通訊保證主機(jī)與所選擇的從機(jī)實(shí)現(xiàn)可靠地通訊,必須保,必須保證串口具有識(shí)別功能。證串口具有識(shí)別功能。SCONSCON中的中的SM2SM2位位就是滿足這一條件而設(shè)置的就是滿足這一條件而設(shè)置的多機(jī)通訊控多機(jī)通訊控制位。制位。原理:原理:在串行口以方式在串行口以方式2 2(或方式(或方式3 3)接收時(shí),)接收時(shí),若若SM2=1SM

25、2=1,表示置多機(jī)通訊功能位,這時(shí)有兩種可能:表示置多機(jī)通訊功能位,這時(shí)有兩種可能: (1 1)接收到的第接收到的第9 9位數(shù)據(jù)為位數(shù)據(jù)為1 1時(shí)時(shí),數(shù)據(jù)才裝入,數(shù)據(jù)才裝入SBUFSBUF,并并置中斷標(biāo)志置中斷標(biāo)志RI=1RI=1向向CPUCPU發(fā)出中斷請(qǐng)求;發(fā)出中斷請(qǐng)求; (2 2)接收到的)接收到的第第9 9位數(shù)據(jù)為位數(shù)據(jù)為0 0時(shí)時(shí),則,則不產(chǎn)生中斷標(biāo)不產(chǎn)生中斷標(biāo)志志,信息將拋棄信息將拋棄。若若SM2=0SM2=0,則則接收的第接收的第9 9位數(shù)據(jù)不論是位數(shù)據(jù)不論是0 0還是還是1 1,都產(chǎn)生,都產(chǎn)生RI=1RI=1中斷標(biāo)志,接收到的數(shù)據(jù)裝入中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUFSBUF中。

26、中。應(yīng)用上述特性,便可實(shí)現(xiàn)應(yīng)用上述特性,便可實(shí)現(xiàn)MCS-51MCS-51的多機(jī)通訊。的多機(jī)通訊。 設(shè)多機(jī)系統(tǒng)中有一主機(jī)和設(shè)多機(jī)系統(tǒng)中有一主機(jī)和3 3個(gè)個(gè)80318031從機(jī),從機(jī),如下圖。如下圖。 主機(jī)的主機(jī)的RXDRXD與從機(jī)的與從機(jī)的TXDTXD相連,主機(jī)相連,主機(jī)TXDTXD與從機(jī)的與從機(jī)的RXDRXD端相連。從機(jī)地址分別為端相連。從機(jī)地址分別為0000H H、01H01H、02H02H。 多機(jī)通訊工作過程:多機(jī)通訊工作過程:(1 1)從機(jī)串行口)從機(jī)串行口編程為方式編程為方式2 2或方式或方式3 3接收接收,且,且置置“1 1”SM2SM2和和RENREN位位,使從機(jī)只處于多機(jī)通訊且接

27、收,使從機(jī)只處于多機(jī)通訊且接收地址幀的狀態(tài)。地址幀的狀態(tài)。(2 2)主機(jī))主機(jī)先將從機(jī)地址先將從機(jī)地址(即準(zhǔn)備接收數(shù)據(jù)的從機(jī))(即準(zhǔn)備接收數(shù)據(jù)的從機(jī))發(fā)給各從機(jī)發(fā)給各從機(jī), , 主機(jī)發(fā)出的主機(jī)發(fā)出的地址信息地址信息的第的第9 9位為位為1 1,各從機(jī)接收到的第各從機(jī)接收到的第9 9位信息位信息RB8RB8為為1 1,且由于,且由于SM2=1SM2=1,則則置置“1 1” RIRI,各從機(jī)響應(yīng)中斷,執(zhí)行中斷程序。在各從機(jī)響應(yīng)中斷,執(zhí)行中斷程序。在中斷服務(wù)子程序中,中斷服務(wù)子程序中,判主機(jī)送來的地址是否和本機(jī)判主機(jī)送來的地址是否和本機(jī)地址相符合地址相符合,相符則該從機(jī)相符則該從機(jī)清清“0 0”SM

28、2SM2位位,準(zhǔn)備接,準(zhǔn)備接收主機(jī)的數(shù)據(jù)或命令;若收主機(jī)的數(shù)據(jù)或命令;若不符,則保持不符,則保持SM2=1SM2=1狀態(tài)狀態(tài)。(3 3)接著主機(jī)發(fā)送數(shù)據(jù)幀接著主機(jī)發(fā)送數(shù)據(jù)幀,此時(shí)各從機(jī)串行口接收到,此時(shí)各從機(jī)串行口接收到 的的RB8=0RB8=0,只有地址相符合的從機(jī)系統(tǒng)(即已清只有地址相符合的從機(jī)系統(tǒng)(即已清“0 0”SM2SM2位的從機(jī))位的從機(jī))才能激活才能激活RIRI,從而進(jìn)入中斷,從而進(jìn)入中斷,在中斷程序中接收主機(jī)的數(shù)據(jù)(或命令);在中斷程序中接收主機(jī)的數(shù)據(jù)(或命令); 其它的從機(jī)因其它的從機(jī)因SM2SM21 1,又,又RB8=0RB8=0不激活中斷標(biāo)志不激活中斷標(biāo)志RIRI,不能進(jìn)

29、入中斷,接收的數(shù)據(jù)丟失。不能進(jìn)入中斷,接收的數(shù)據(jù)丟失。 前圖所示的多機(jī)系統(tǒng)是主從式,由主機(jī)控制多機(jī)之間前圖所示的多機(jī)系統(tǒng)是主從式,由主機(jī)控制多機(jī)之間 的通訊,的通訊,從機(jī)和從機(jī)的通訊只能經(jīng)主機(jī)才能實(shí)現(xiàn)從機(jī)和從機(jī)的通訊只能經(jīng)主機(jī)才能實(shí)現(xiàn)。7.4 7.4 波特率的制定方法波特率的制定方法方式方式0 0、方式、方式2 2的波特率是的波特率是固定固定的;的;方式方式1 1、方式、方式3 3波特波特 率由率由定時(shí)器定時(shí)器T1T1的溢出率的溢出率來確定。來確定。7.4.1 7.4.1 波特率的定義波特率的定義波特率的波特率的定義定義。對(duì)于定時(shí)器的不同工作方式,波特率的范圍不一對(duì)于定時(shí)器的不同工作方式,波特

30、率的范圍不一7.4.2 7.4.2 定時(shí)器定時(shí)器T1T1產(chǎn)生波特率的計(jì)算產(chǎn)生波特率的計(jì)算(1 1)方式方式0 0波特率波特率時(shí)鐘頻率時(shí)鐘頻率foscfosc1/121/12,不受,不受SMODSMOD位的值的影響。若位的值的影響。若fosc=12MHzfosc=12MHz,波特率為波特率為fosc/12fosc/12即即1 1Mb/sMb/s。(2 2)方式方式2 2波特率波特率= =(2 2SMODSMOD/64/64)foscfosc 若若fosc=12MHz: SMOD=0 fosc=12MHz: SMOD=0 波特率波特率=187.5=187.5kb/skb/s; SMOD=1 SMO

31、D=1 波特率波特率=375=375kb/skb/s (3 3)方式方式1 1或或方式方式3 3時(shí),波特率為:時(shí),波特率為:波特率波特率= =(2 2SMODSMOD/64/64)T1T1的溢出率的溢出率實(shí)際設(shè)定波特率時(shí),實(shí)際設(shè)定波特率時(shí),T1T1常設(shè)置為常設(shè)置為方式方式2 2定時(shí)定時(shí)(自動(dòng)裝初(自動(dòng)裝初值)值)這種方式不僅操作方便,也可避免因軟件重裝初這種方式不僅操作方便,也可避免因軟件重裝初值而帶來的定時(shí)誤差。值而帶來的定時(shí)誤差。實(shí)際使用時(shí),為避免煩雜的初值計(jì)算,實(shí)際使用時(shí),為避免煩雜的初值計(jì)算,常用的波特率和常用的波特率和初值初值X X間的關(guān)系列成表間的關(guān)系列成表7-2(7-2(P148)P148),以供查用。以供查用。表表7-27-2有兩點(diǎn)需要注意:有兩點(diǎn)需要注意:(1) (1) 時(shí)鐘振蕩頻率為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論