第7章MCS-51的串行口ppt課件_第1頁(yè)
第7章MCS-51的串行口ppt課件_第2頁(yè)
第7章MCS-51的串行口ppt課件_第3頁(yè)
第7章MCS-51的串行口ppt課件_第4頁(yè)
第7章MCS-51的串行口ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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 7章章 MCS-51 MCS-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)求。除用于串行通訊,還可用來(lái)擴(kuò)展并行除用于串行通訊,還可用來(lái)擴(kuò)展并行I/OI/O口??凇?.1 7.1 串行口的結(jié)構(gòu)串行口的結(jié)構(gòu)串行口內(nèi)部結(jié)構(gòu)如下圖,兩個(gè)物理上獨(dú)立地接收和串行口內(nèi)部結(jié)構(gòu)如下圖,兩個(gè)物理上獨(dú)立地接收和 發(fā)送緩沖器,可同時(shí)收、發(fā)數(shù)據(jù)。發(fā)送緩沖器,可同時(shí)收、發(fā)數(shù)據(jù)。兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址:

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

3、步移位寄存器方式用于擴(kuò)展I/OI/O口)口) 0 1 1 8 0 1 1 8位異步收發(fā),波特率可變由定時(shí)位異步收發(fā),波特率可變由定時(shí)器控制)器控制) 1 0 2 9 1 0 2 9位異步收發(fā),波特率為位異步收發(fā),波特率為fosc/64fosc/64或或fosc/32fosc/32 1 1 3 9 1 1 3 9位異步收發(fā),波特率可變由定時(shí)位異步收發(fā),波特率可變由定時(shí)器控制)器控制)(2 2SM2 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” RI“1” RI,產(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 3RENREN允許串行接收位允許串行接收位 由軟件置由軟件置“1“1或清或清“0”“0”。 REN=1 REN=1 允許串行口接收數(shù)據(jù)。允許串行口接收數(shù)據(jù)。 REN=0 REN=0 禁止串行口接收數(shù)據(jù)。禁止串行口接收數(shù)據(jù)。 (4 4TB8TB8發(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)位使用,也可作為地址幀或數(shù)據(jù)幀的標(biāo)志。校驗(yàn)位使用,也可作為地

6、址幀或數(shù)據(jù)幀的標(biāo)志。 =1 =1為地址幀為地址幀, =0, =0為數(shù)據(jù)幀為數(shù)據(jù)幀 (5 5RB8RB8接收到的第接收到的第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 6TITI發(fā)送中斷標(biāo)志位發(fā)送中斷標(biāo)志位方式方式0 0時(shí),串行發(fā)送第時(shí),串行發(fā)送第8 8位數(shù)據(jù)結(jié)束時(shí)由硬件置位數(shù)據(jù)結(jié)束時(shí)由硬件置“1”“1”,其它工作方式,串行口發(fā)送停止位的開(kāi)始時(shí)置其它工作方式,串行口發(fā)送停止位的

7、開(kāi)始時(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 7RIRI接收中斷標(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)中斷, CPU, CPU從從接收接收SBUFSBUF取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。RIRI必必須由軟件清須由軟件清“0”“0”。7.1.2 7.1.2 特殊功能寄存器特殊功能寄存器PCON PCON 字節(jié)地址為字節(jié)地址為87H87H,沒(méi)有位尋址功能。,沒(méi)有位尋址功能。 SMODSMOD:波特率選擇位。:波特率選擇位。 例如:方式例如:方式1 1的波特率的計(jì)算公式為:的波特率的計(jì)算公式為: 方式方式1 1波特率波特率= =(2SMOD/322SMOD/32)定時(shí)器)定時(shí)器T1T1的溢出率的溢出率也稱也稱SMODSMOD位為波特率倍增位。位為波特率倍增位。7

9、.2 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è)正脈沖,串行口即

10、把產(chǎn)生一個(gè)正脈沖,串行口即把SBUFSBUF中的中的8 8位數(shù)據(jù)以位數(shù)據(jù)以fosc/12fosc/12的固定波特率從的固定波特率從RXDRXD引腳串行輸出,低位在引腳串行輸出,低位在先先,TXD,TXD引腳輸出同步移位脈沖,發(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“1RENREN位,同時(shí)位,同時(shí)RI=0RI=0時(shí),產(chǎn)生一個(gè)正時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開(kāi)始接收數(shù)據(jù)。脈沖,串行口即開(kāi)始接收數(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” RI“1” RI。表示一幀數(shù)據(jù)接收完,時(shí)序如下:。表示一幀數(shù)據(jù)接收完,時(shí)序如下:方式方式0 0下,下,SCONSCON中的中的TB8TB8、RB8RB8位沒(méi)有用到,發(fā)送或接收位沒(méi)有用到,發(fā)送

12、或接收完完8 8位數(shù)據(jù)由硬件置位數(shù)據(jù)由硬件置“1“1TITI或或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、SM1=01SM1=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波特率波特率= =(2SMOD/322SMOD/32)定時(shí)器)定時(shí)器T1T1的溢出率的溢出率 SMOD SMOD為為PCONPCON寄存器的最高位的值寄存器的最高位的值0 0或或1 1)。)。 1方式方式1發(fā)送發(fā)送 方式方式1輸出時(shí),數(shù)據(jù)由輸出時(shí),數(shù)據(jù)由TXD輸出,輸出,一幀信息為一幀信息為10位,位,1位起始位位起始位0,8位數(shù)據(jù)位先低位位數(shù)據(jù)位先低位和和1位停止位位停止位1。當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動(dòng)的指令,就啟動(dòng)發(fā)送。圖中發(fā)送。圖中TX時(shí)鐘的頻率就是發(fā)送的波特率。時(shí)鐘的

14、頻率就是發(fā)送的波特率。發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行А⑵鹗嘉话l(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向向TXD輸出,以后,每經(jīng)過(guò)一個(gè)輸出,以后,每經(jīng)過(guò)一個(gè)TX時(shí)鐘周期,便時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由產(chǎn)生一個(gè)移位脈沖,并由TXD輸出一個(gè)數(shù)據(jù)位。輸出一個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,置位數(shù)據(jù)位全部發(fā)送完畢后,置“1” TI。方式。方式1發(fā)送發(fā)送數(shù)據(jù)的時(shí)序,如圖數(shù)據(jù)的時(shí)序,如圖7-8所示。所示。 2 2方式方式1 1接收接收 數(shù)據(jù)從數(shù)據(jù)從RXDRXDP3.0P3.0腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),開(kāi)始接收數(shù)據(jù)。時(shí),開(kāi)始接收數(shù)據(jù)。定時(shí)控制信號(hào)有兩

15、種):接收移位時(shí)鐘定時(shí)控制信號(hào)有兩種):接收移位時(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í)采樣進(jìn)行表個(gè)脈沖時(shí)采樣進(jìn)行表決以確認(rèn)是否是真正的起始位負(fù)跳變的開(kāi)始。決以確認(rèn)是否是真正的起始位負(fù)跳變的開(kāi)始。當(dāng)一幀數(shù)據(jù)接收完,須同時(shí)滿足兩個(gè)條件,接收才真正當(dāng)一幀數(shù)據(jù)

16、接收完,須同時(shí)滿足兩個(gè)條件,接收才真正有效。有效。 RI=0 RI=0,即上一幀數(shù)據(jù)接收完成時(shí),即上一幀數(shù)據(jù)接收完成時(shí),RI=1RI=1發(fā)出的中斷發(fā)出的中斷請(qǐng)求已被響應(yīng),請(qǐng)求已被響應(yīng),SBUFSBUF中的數(shù)據(jù)已被取走,說(shuō)明中的數(shù)據(jù)已被取走,說(shuō)明“接收接收SBUFSBUF已空。已空。 SM2=0 SM2=0或收到的停止位或收到的停止位=1=1方式方式1 1時(shí),停止位已進(jìn)入時(shí),停止位已進(jìn)入RB8RB8),則收到的數(shù)據(jù)裝入),則收到的數(shù)據(jù)裝入SBUFSBUF和和RB8RB8RB8RB8裝入停止裝入停止位),且置位),且置“1“1中斷標(biāo)志中斷標(biāo)志RIRI。若這兩個(gè)條件不同時(shí)滿足,收到的數(shù)據(jù)將丟失。若這

17、兩個(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波特率波特率= = (2SMOD/642SMOD/64)fosc fosc 1 1方式方式2 2發(fā)送發(fā)送發(fā)送前,先根據(jù)通訊協(xié)議由軟件設(shè)置發(fā)送前,先根據(jù)通訊協(xié)議由軟件設(shè)置TB8TB8例如,雙機(jī)例如,雙機(jī)通訊時(shí)的奇偶校驗(yàn)位或多機(jī)通訊時(shí)的地址通訊時(shí)的奇偶校驗(yàn)位或

18、多機(jī)通訊時(shí)的地址/ /數(shù)據(jù)的標(biāo)數(shù)據(jù)的標(biāo)志位)。志位)。方式方式2 2發(fā)送數(shù)據(jù)波形如圖所示。發(fā)送數(shù)據(jù)波形如圖所示。 例例7-1 7-1 方式方式2 2發(fā)送在雙機(jī)通訊中的應(yīng)用。發(fā)送在雙機(jī)通訊中的應(yīng)用。下面的發(fā)送中斷服務(wù)程序,是在雙機(jī)通訊中,以下面的發(fā)送中斷服務(wù)程序,是在雙機(jī)通訊中,以TB8TB8作為奇偶校驗(yàn)位,處理方法為數(shù)據(jù)寫入作為奇偶校驗(yàn)位,處理方法為數(shù)據(jù)寫入SBUFSBUF之前,之前,先將數(shù)據(jù)的奇偶校驗(yàn)位寫入先將數(shù)據(jù)的奇偶校驗(yàn)位寫入TB8TB8,以保證采用偶校,以保證采用偶校驗(yàn)發(fā)送。驗(yàn)發(fā)送。 PIPTI PIPTI: PUSH PSW PUSH PSW ;現(xiàn)場(chǎng)保護(hù);現(xiàn)場(chǎng)保護(hù) PUSH Acc

19、PUSH Acc SETB RS1 SETB RS1 ;選擇第;選擇第2 2組工作寄存器區(qū)組工作寄存器區(qū) CLR RS0 CLR RS0 CLR TI CLR TI ;發(fā)送中斷標(biāo)志清;發(fā)送中斷標(biāo)志清“0”“0” MOV A MOV A,R0R0;取數(shù)據(jù);取數(shù)據(jù) MOV C,P ;校驗(yàn)位送TB8,采用偶校驗(yàn) MOV TB8 ,C MOV SBUF ,A ;啟動(dòng)發(fā)送 INC R0 ;數(shù)據(jù)指針加1 POP Acc ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回2方式2接收 SM0、SM1=10,且REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測(cè)到RXD從1到0的負(fù)跳變,并判斷起始位有效后,

20、開(kāi)始收一幀信息。在接收器完第9位數(shù)據(jù)后,需滿足兩個(gè)條件,才能將接收到的數(shù)據(jù)送入SBUF。(1 1RI=0RI=0,意味著接收緩沖器為空。,意味著接收緩沖器為空。(2 2SM2=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“1RIRI。若不滿足兩個(gè)條件,接收的信息將被丟棄。若不滿足兩個(gè)條件,接收的信息將被丟棄。方式方式2 2接收數(shù)據(jù)的時(shí)序如圖所示。接收數(shù)據(jù)的時(shí)序如圖所示。 例例7

21、-2 7-2 方式方式2 2接收在雙機(jī)通訊中的應(yīng)用。接收在雙機(jī)通訊中的應(yīng)用。本例與上例相對(duì)應(yīng)。若第本例與上例相對(duì)應(yīng)。若第9 9位數(shù)據(jù)為校驗(yàn)位,在接收程位數(shù)據(jù)為校驗(yàn)位,在接收程序中作偶校驗(yàn)處理,設(shè)序中作偶校驗(yàn)處理,設(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,PM

22、OV C,PJNC L1JNC L1;C C0 0。跳。跳L1L1JNB RB8,ERP JNB RB8,ERP ;ERPERP為出錯(cuò)處理程為出錯(cuò)處理程序序 AJMP L2AJMP L2 L1: L1: JB RB8,ERPJB RB8,ERP;RB8RB81 1,跳,跳ERPERP L2: L2: MOV R0,AMOV R0,A INC R0INC R0 POP AccPOP Acc POP PSWPOP PSW ERP: ERP: ;出錯(cuò)處理程序段;出錯(cuò)處理程序段 RETIRETI7.2.4 7.2.4 方式方式3 3SM0SM0、SM1=11SM1=11,串口為方式,串口為方式3 3。

23、波特率可變的波特率可變的9 9位異步通訊方式,除波特率外,方式位異步通訊方式,除波特率外,方式3 3和方式和方式2 2相同。方式相同。方式3 3的時(shí)序見(jiàn)方式的時(shí)序見(jiàn)方式2 2。 方式方式3 3波特率波特率= =(2SMOD/322SMOD/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è)置的多機(jī)通訊控位就是滿足這一條件而設(shè)置的多機(jī)通訊控制位。制位。原理:在串行口以方式原理:在串行

24、口以方式2 2或方式或方式3 3接收時(shí),若接收時(shí),若SM2=1SM2=1,表示置多機(jī)通訊功能位,這時(shí)有兩種可能:表示置多機(jī)通訊功能位,這時(shí)有兩種可能: (1 1接收到的第接收到的第9 9位數(shù)據(jù)為位數(shù)據(jù)為1 1時(shí),數(shù)據(jù)才裝入時(shí),數(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í),則不產(chǎn)生中斷標(biāo)時(shí),則不產(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)

25、志,接收到的數(shù)據(jù)裝入中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUFSBUF中。中。應(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ī)地址分別為00H00H、01H01H、02H02H。 多機(jī)通訊工作過(guò)程:多機(jī)通訊工作過(guò)程:(1 1從機(jī)串行口編程為方式從機(jī)串行口編程為方式2 2或方式或方式3 3接收,且置接收,且置“1“1

26、SM2SM2和和RENREN位,使從機(jī)只處于多機(jī)通訊且接收地址位,使從機(jī)只處于多機(jī)通訊且接收地址幀的狀態(tài)。幀的狀態(tài)。(2 2主機(jī)先將從機(jī)地址即準(zhǔn)備接收數(shù)據(jù)的從機(jī)主機(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” RI“1” RI,各從機(jī)響應(yīng)中斷,執(zhí)行中斷程序。在,各從機(jī)響應(yīng)中斷,執(zhí)行中斷程序。在中斷服務(wù)子程序中,判主機(jī)送來(lái)的地址是否和本機(jī)中斷服務(wù)子程序中,判主機(jī)送來(lái)的地址是否和本機(jī)地址相符合

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

28、不激活中斷標(biāo)志不激活中斷標(biāo)志RIRI,不能進(jìn)入中斷,接收的數(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的溢出率來(lái)確定。的溢出率來(lái)確定。7.4.1 7.4.1 波特率的定義波特率的定義波特率的定義。波特率的定義。對(duì)于定時(shí)器的不同工作方式

29、,波特率的范圍不一對(duì)于定時(shí)器的不同工作方式,波特率的范圍不一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即即1Mb/s1Mb/s。(2 2方式方式2 2波特率波特率= =(2SMOD/642SMOD/64)foscfosc 若若fosc=12MHz: SMOD=0 fosc=12MHz: SMOD=0 波特率波特率=187.5kb/s=

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

溫馨提示

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