第五章 單片機(jī)內(nèi)部資源應(yīng)用(二).ppt_第1頁(yè)
第五章 單片機(jī)內(nèi)部資源應(yīng)用(二).ppt_第2頁(yè)
第五章 單片機(jī)內(nèi)部資源應(yīng)用(二).ppt_第3頁(yè)
第五章 單片機(jī)內(nèi)部資源應(yīng)用(二).ppt_第4頁(yè)
第五章 單片機(jī)內(nèi)部資源應(yīng)用(二).ppt_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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、單片機(jī)接口技術(shù)及應(yīng)用單片機(jī)接口技術(shù)及應(yīng)用第五章第五章 單片機(jī)內(nèi)部資源應(yīng)用單片機(jī)內(nèi)部資源應(yīng)用(二二)萬(wàn)旭萬(wàn)旭M.T.:660109)QQ:8543101744:18:262浙江師范大學(xué)第五章第五章 單片機(jī)內(nèi)部資源應(yīng)用單片機(jī)內(nèi)部資源應(yīng)用課程目錄浙江師范大學(xué)4:18:274浙江師范大學(xué)MCS-51內(nèi)部有一個(gè)可編程全雙工串行接口,具有UART(通用異步接收和發(fā)送器)的全部功能,該串行口,有4種工作方式,以供不同場(chǎng)合使用。波特率可由軟件設(shè)置,通過(guò)對(duì)串口編程,可以實(shí)現(xiàn)串并轉(zhuǎn)換,雙機(jī)通信及多機(jī)通信。4:18:275浙江師范大學(xué)全雙工串行接口全雙工串行接口(UART)(UART)數(shù)據(jù)

2、通信的數(shù)據(jù)通信的幾個(gè)術(shù)語(yǔ):幾個(gè)術(shù)語(yǔ): 并行并行:數(shù)據(jù)各位數(shù)據(jù)各位同時(shí)同時(shí)進(jìn)行傳送進(jìn)行傳送 串行串行:數(shù)據(jù)數(shù)據(jù)逐位逐位順序進(jìn)行順序進(jìn)行傳送傳送全雙工全雙工:(:(串行通信串行通信) )收收/ /發(fā)發(fā)可同時(shí)可同時(shí)進(jìn)行進(jìn)行 半雙工半雙工:(:(串行通信串行通信) )收收/ /發(fā)發(fā)不可不可同時(shí)進(jìn)行同時(shí)進(jìn)行異步串行通信異步串行通信: :以字符為單位進(jìn)行傳送以字符為單位進(jìn)行傳送 同步串行通信同步串行通信: :以數(shù)據(jù)塊以數(shù)據(jù)塊為單位進(jìn)行傳送為單位進(jìn)行傳送 波特率波特率(bps.)(bps.): :單位時(shí)間傳送的位數(shù)單位時(shí)間傳送的位數(shù)4:18:27浙江師范大學(xué)6發(fā)送接收發(fā)送接收A端B端 半雙工制式發(fā)送接收接收

3、發(fā)送A端B端 全雙工制式4:18:277浙江師范大學(xué)MCS-51單片機(jī)串行口的內(nèi)部有三個(gè)特殊功能寄存器:SBUF、SCON、PCON,發(fā)送SBUF(99H)接收SBUF(99H)同步時(shí)鐘門電路發(fā)送控制器接收控制器輸入移位寄存器串行口控制寄存器(98H)內(nèi)部總線1串行口中斷TIRITXD(P3.1)RXD(P3.0)4:18:278浙江師范大學(xué)兩個(gè)同名的兩個(gè)同名的接收接收/ /發(fā)送緩沖寄存器發(fā)送緩沖寄存器SBUFSBUF 指令指令 MOV SBUFMOV SBUF,A A ; ;啟動(dòng)啟動(dòng)一次數(shù)據(jù)發(fā)送一次數(shù)據(jù)發(fā)送, ,可向可向SBUFSBUF 再發(fā)送下一個(gè)數(shù)再發(fā)送下一個(gè)數(shù) 指令指令 MOV AMO

4、V A,SBUF SBUF ; ;完成完成一次數(shù)據(jù)接收一次數(shù)據(jù)接收,SBUF,SBUF可再可再 接收下一個(gè)數(shù)接收下一個(gè)數(shù)接收接收/ /發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù), ,無(wú)論是否采用中斷無(wú)論是否采用中斷方式工作方式工作, ,每每接收接收/ /發(fā)送一個(gè)數(shù)據(jù)都必須用發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì)指令對(duì)RI/TIRI/TI清清0 0,以備下一次收以備下一次收/ /發(fā)。發(fā)。串行口相關(guān)的串行口相關(guān)的SFRSFR(SCON,PCON)(SCON,PCON)1. 串行口的結(jié)構(gòu)2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:

5、SCON(98H)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRISCON(98H)SM0、SMl:串行口工作方式選擇位:串行口工作方式選擇位SM0SM1工作方式功能說(shuō)明001101010123同步移位寄存器輸入/輸出,波特率為fOSC/128位UART,波特率可變(TI溢出率/n,n=16或32)9位UART,波特率為fosc/n,n=32或64)9位UART,波特率可變(TI溢出率/n,n=16或32)4:18:279浙江師范大學(xué)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRISM2:多機(jī)通信控制位,用于方式:多機(jī)通信控制位,用于方式2和方式

6、和方式3中。中。在方式在方式2和方式和方式3處于接收方式時(shí)處于接收方式時(shí) 若若SM2=1,表示置多機(jī)通信功能。,表示置多機(jī)通信功能。 若若SM2=0,不論接收到的第,不論接收到的第9位位RB8是是0還是還是l,TI、RI都以正常都以正常方式被激活,接收到的數(shù)據(jù)裝入方式被激活,接收到的數(shù)據(jù)裝入SBUF。在方式在方式1,若,若SM2=1,則只有收到有效的停止位后,則只有收到有效的停止位后,RI=1。在方式。在方式0中,中,SM2=0。2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:SCON(98

7、H)SCON(98H)4:18:2710浙江師范大學(xué)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRIRENREN:允許串行接收控制位:允許串行接收控制位。REN=lREN=l時(shí),允許接收;時(shí),允許接收;REN=0REN=0時(shí),禁止接收時(shí),禁止接收。2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:SCON(98H)SCON(98H)4:18:2711浙江師范大學(xué)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRITB8:發(fā)送數(shù)據(jù)的第:發(fā)送數(shù)據(jù)的第9位

8、。位。 在在方式方式2和方式和方式3中,中,TB8是第是第9位發(fā)送數(shù)據(jù),可做奇偶校位發(fā)送數(shù)據(jù),可做奇偶校驗(yàn)位驗(yàn)位。在在多機(jī)通信多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位,中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位,一般約定發(fā)送地址幀時(shí),一般約定發(fā)送地址幀時(shí),TB8為為1,發(fā)送數(shù)據(jù)幀時(shí),發(fā)送數(shù)據(jù)幀時(shí),TB8為為0。TB8由軟件置位或復(fù)位;由軟件置位或復(fù)位;2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:SCON(98H)SCON(98H)4:18:2712浙江師范大學(xué)位位76543210功能功能S

9、M0SM1SM2RENTB8RB8TIRIRB8:接收數(shù)據(jù)的第:接收數(shù)據(jù)的第9位。位。在在方式方式2和方式和方式3中,接收第中,接收第9位數(shù)據(jù)。位數(shù)據(jù)。在在方式方式1下,若下,若SM2=0,則,則RB8用于存放接收到的停止位方式;用于存放接收到的停止位方式;方式方式0下,不使用下,不使用RB8;2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:SCON(98H)SCON(98H)4:18:2713浙江師范大學(xué)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRITI:發(fā)送中斷

10、標(biāo)志位,用于指示一幀數(shù)據(jù)發(fā)送完否。:發(fā)送中斷標(biāo)志位,用于指示一幀數(shù)據(jù)發(fā)送完否。當(dāng)當(dāng)TI=l時(shí),向時(shí),向CPU申請(qǐng)串行中斷,響應(yīng)中斷后,必須由軟件清除申請(qǐng)串行中斷,響應(yīng)中斷后,必須由軟件清除TI。就是說(shuō):就是說(shuō):TI在發(fā)送前必須由軟件復(fù)位,發(fā)送完一幀后由硬件置位。在發(fā)送前必須由軟件復(fù)位,發(fā)送完一幀后由硬件置位。因此,因此,CPU查詢查詢TI狀態(tài)便可知一幀信息是否已發(fā)送完畢。狀態(tài)便可知一幀信息是否已發(fā)送完畢。2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位被清零。SCON的格式如下所示:SCON(98H)SCON(98H)4:

11、18:2714浙江師范大學(xué)位位76543210功能功能SM0SM1SM2RENTB8RB8TIRIRI:接收中斷標(biāo)志位。用于指示一幀信息是否接收完。:接收中斷標(biāo)志位。用于指示一幀信息是否接收完。在在方式方式1中,接收到第中,接收到第8位數(shù)據(jù)時(shí)由硬件置位;位數(shù)據(jù)時(shí)由硬件置位;在在其它方式其它方式中在接收停止位的中間點(diǎn)由硬件置位。中在接收停止位的中間點(diǎn)由硬件置位。接收完一幀數(shù)據(jù)接收完一幀數(shù)據(jù)RI=l,向,向CPU申請(qǐng)中斷,供申請(qǐng)中斷,供CPU查詢。查詢。RI由軟件復(fù)由軟件復(fù)位位。2.串行口控制寄存器SCONSCON寄存器用來(lái)控制串行口的工作方式和狀態(tài),字節(jié)地址為98H。它可以位尋址。在復(fù)位時(shí)所有位

12、被清零。SCON的格式如下所示:SCON(98H)SCON(98H)4:18:2815浙江師范大學(xué)SCON的所有位復(fù)位時(shí)被清零。3電源及波特率選擇寄存器PCONPCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,沒(méi)有位尋址功能。字節(jié)地址為87H。在HMOS的8051單片機(jī)中,PCON只有最高位被定義,其它位都是虛設(shè)的。位位76543210功能功能SMODSSSSSSSSGF11GF00PPDDIDLLPCONPCON的最高位的最高位SMODSMOD為串行口波特率的倍增位。為串行口波特率的倍增位。在方式在方式1 1、2 2和和3 3時(shí),串行通信的波特率與時(shí),串行通信的波特率與SMOD

13、SMOD有關(guān)。有關(guān)。當(dāng)當(dāng)SMOD=lSMOD=l時(shí),通信波特率加倍,時(shí),通信波特率加倍,當(dāng)當(dāng)SMOD=0SMOD=0時(shí),波特率不變。其它各位為掉電方式控制位時(shí),波特率不變。其它各位為掉電方式控制位。4:18:2816浙江師范大學(xué)串行口有4種工作方式,通過(guò)SCON中的SMl、SM0位決定:1工作方式08 8位移位寄存器位移位寄存器I/OI/O方式方式為同步移位寄存器方式,波特率固定為fOSC/l2串行數(shù)據(jù)從RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)送出移位數(shù)據(jù)的發(fā)送和接收以8位為一幀,無(wú)需起始位和停止位常用于擴(kuò)展I/O口4:18:2817浙江師范大學(xué)4:18:28浙江師范大

14、學(xué)18經(jīng)常配合經(jīng)常配合“串入并出串入并出”“”“并入串出并入串出”移位移位 寄存器一起使用擴(kuò)展寄存器一起使用擴(kuò)展接口接口 方式方式0 0工作時(shí),多用查詢方式編程:工作時(shí),多用查詢方式編程: 發(fā)送:發(fā)送:MOV SBUFMOV SBUF,A A 接收:接收:JNB RIJNB RI,$ $ JNB TIJNB TI,$ $ CLR RI CLR RI CLR TI CLR TI MOV A, SBUFMOV A, SBUF復(fù)位時(shí)復(fù)位時(shí), ,SCONSCON已經(jīng)已經(jīng)被清零被清零, ,缺省值缺省值: : 方式方式0 0接收前接收前, ,務(wù)必先置位務(wù)必先置位 REN=1REN=1允許允許接收接收數(shù)據(jù)數(shù)

15、據(jù)4:18:2819浙江師范大學(xué)發(fā)送:發(fā)送:SBUFSBUF中的串行數(shù)據(jù)由中的串行數(shù)據(jù)由RxDRxD逐位移出;逐位移出; TxDTxD輸出輸出移位時(shí)鐘移位時(shí)鐘,頻率,頻率= =foscfosc/12/12; 每送出每送出8 8位位數(shù)據(jù)數(shù)據(jù)TITI就自動(dòng)置就自動(dòng)置1 1; 需要用軟件清需要用軟件清零零TITI。 接收:串行數(shù)據(jù)由接收:串行數(shù)據(jù)由RxDRxD逐位移入逐位移入SBUFSBUF中;中; TxDTxD輸出輸出移位時(shí)鐘移位時(shí)鐘,頻率,頻率= =foscfosc/12/12; 每接收每接收 8 8位數(shù)據(jù)位數(shù)據(jù)RIRI就自動(dòng)置就自動(dòng)置1 1; 需要用軟件清需要用軟件清零零RIRI。4:18:2

16、820浙江師范大學(xué)串行口方式0的擴(kuò)展應(yīng)用串行口常用工作方式串行口常用工作方式0 0擴(kuò)展出并行擴(kuò)展出并行I/OI/O口口,工作,工作方式方式1 1、2 2、3 3則常用于串行通信則常用于串行通信74LS16474LS164是是串入并出串入并出芯片;芯片;74LS16574LS165是是并入串出并入串出芯片芯片A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V+5V74LS16474LS16474LS16474LS16474LS1674LS164 4h g f e d c b

17、 ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共陽(yáng)共陽(yáng)LED LED 數(shù)碼管數(shù)碼管VCCVCCTxDTxDRxDRxD5151單片機(jī)單片機(jī)4:18:2821浙江師范大學(xué)例:利用串行口例:利用串行口工作方式工作方式0 0擴(kuò)展出擴(kuò)展出8 8位并行位并行I/OI/O口,口,驅(qū)動(dòng)共陽(yáng)驅(qū)動(dòng)共陽(yáng)LEDLED數(shù)碼管顯示數(shù)碼管顯示0 09 9。A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLR+5V+5VVCCVCCTxDTxDRxDRxD51單片機(jī)單片機(jī)74LS1674LS164 4共陽(yáng)共陽(yáng)LEDLED

18、數(shù)碼管數(shù)碼管4:18:2822浙江師范大學(xué)根據(jù)通過(guò)根據(jù)通過(guò)串行口串行口和和74LS164 74LS164 驅(qū)動(dòng)共陽(yáng)驅(qū)動(dòng)共陽(yáng)LEDLED數(shù)碼數(shù)碼管管( (查表查表) )顯示顯示0-90-9數(shù)字的子程數(shù)字的子程序:序:DSPLY:MOV DPTR, #TABLEDSPLY:MOV DPTR, #TABLE MOVC A, MOVC A, A+DPTRA+DPTR MOV SBUF, A MOV SBUF, A JNB TI, $ JNB TI, $ CLR TI CLR TI RET RETTABLE:DB 0C0H,0F9H,0A4HTABLE:DB 0C0H,0F9H,0A4H DB 0B0H

19、,99H,92H DB 0B0H,99H,92H DB 82H,0F8H,80H,90H DB 82H,0F8H,80H,90Hh g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0 0 0 0 0 00C0H = 0C0H = “0 0”1 0 1 1 0 0 0 01 0 1 1 0 0 0 00B0H = 0B0H = “3 3”共陽(yáng)極共陽(yáng)極h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h注意注意: :這里沒(méi)有設(shè)置這里沒(méi)有設(shè)置SCONSCON,而是采用,而是采用了復(fù)位

20、后的默認(rèn)值了復(fù)位后的默認(rèn)值00H00H4:18:2823浙江師范大學(xué)常用于串行通訊。除發(fā)常用于串行通訊。除發(fā)/ /收收8 8位數(shù)據(jù)外,還位數(shù)據(jù)外,還 在在D0D0位前有一個(gè)起始位位前有一個(gè)起始位“0 0”; 在在D7D7位后有一個(gè)停止位位后有一個(gè)停止位“1 1”。方式方式1 1工作時(shí):工作時(shí): 發(fā)送端自動(dòng)添加發(fā)送端自動(dòng)添加一個(gè)起始位和一個(gè)停止位一個(gè)起始位和一個(gè)停止位; 接收端自動(dòng)去掉一個(gè)起始位和一個(gè)停止位。接收端自動(dòng)去掉一個(gè)起始位和一個(gè)停止位。工作方式工作方式1 1:8:8位位UART(UART(1 1+8+8+1 1位位) )波特率波特率可變可變波特率可變波特率可變 用定時(shí)器用定時(shí)器T1T1

21、作波特率發(fā)生器:作波特率發(fā)生器: 公式:公式:波特率波特率 = =(2 2SMODSMOD/32/32) T1T1的溢出率的溢出率4:18:2824浙江師范大學(xué)波特率波特率=(2=(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的頻繁程度溢出的頻繁程度 即:即:T1T1溢出一次所需時(shí)間的倒數(shù)。溢出一次所需時(shí)間的倒數(shù)。 初值初值 X = 2 2n n - - 2 2SMOD SMOD foscfosc32 32 波特率波特率 1212 波特率波特率 = =2 2SMOD SMOD foscfosc32 32 12(212(2n n - - X X) )

22、其中:其中:X X 是定時(shí)器初值是定時(shí)器初值4:18:2825浙江師范大學(xué) 初值初值 X = 2 2n n - - 2 2SMOD SMOD foscfosc32 32 波特率波特率 1212 計(jì)算波特率:計(jì)算波特率: 要求用要求用T1T1工作于工作于方式方式2 2來(lái)產(chǎn)生波特率來(lái)產(chǎn)生波特率12001200, 已知晶振頻率已知晶振頻率=6MHz=6MHz。要求出。要求出T1T1的初值:的初值:初值初值 X = 2 28 8 - - 2 20 0 6 6 10106 632 32 1200 1200 1212= 256 - - = 256 - - 13.026 6 10106 6460800460

23、800 243 = 0F3H 4:18:2826浙江師范大學(xué) 表格有多種表格有多種, , 晶振也不止一種晶振也不止一種常用波特率和常用波特率和T1T1初值查表初值查表4:18:2827浙江師范大學(xué)RxDRxD引腳為接收端,引腳為接收端,TxDTxD引腳為發(fā)送端引腳為發(fā)送端, ,由波特率由波特率 發(fā)生器發(fā)生器T1T1控制發(fā)送速度控制發(fā)送速度, ,不同于方式不同于方式0 0:收:收/ /發(fā)都發(fā)都 需要由需要由TxDTxD送出移位時(shí)鐘送出移位時(shí)鐘。 T1T1作波特率發(fā)生器時(shí)作波特率發(fā)生器時(shí)初始化包括初始化包括: : 選選定時(shí)器工作方式定時(shí)器工作方式2 2 ( (TMODTMOD選選8 8位自動(dòng)重裝位

24、自動(dòng)重裝);); 將計(jì)算將計(jì)算( (或查表或查表) )出的出的初值初值X X賦給賦給TH1,TL1TH1,TL1; ; 啟動(dòng)啟動(dòng)T1 T1 (SETB TR1);(SETB TR1); 對(duì)對(duì)T1T1不要開(kāi)中斷不要開(kāi)中斷 ! !工作方式工作方式1 1的接收的接收/ /發(fā)送發(fā)送串行口的初始化包括串行口的初始化包括: : 對(duì)對(duì)SCONSCON選工作方式選工作方式 對(duì)對(duì)PCONPCON設(shè)波特率加倍位設(shè)波特率加倍位“SMODSMOD”( (缺省值缺省值=0)=0) 如果是接收數(shù)據(jù)如果是接收數(shù)據(jù), ,仍要先仍要先置置“1 1” RENREN位位 4:18:2828浙江師范大學(xué)MAINMAIN: ORG 0

25、023HORG 0023H MOV TMODMOV TMOD,#20H #20H SBR1:JNB RI,SENDSBR1:JNB RI,SEND MOV TL1MOV TL1,#0F3H #0F3H LCALL SINLCALL SIN MOV TH1MOV TH1,#0F3H #0F3H SJMP NEXTSJMP NEXT SETB TR1 SETB TR1 SEND:LCALL SOUT SEND:LCALL SOUT MOV SCON, #50H MOV SCON, #50H NEXT:RETINEXT:RETI SETB EA SIN: SETB EA SIN: SETB ES R

26、ET SETB ES RET LCALL SOUT LCALL SOUT SOUTSOUT: : SJMP $ RET SJMP $ RET串行串行通信通信方式方式1 1應(yīng)用應(yīng)用例:用例:用T1T1工作于方式工作于方式2 2,產(chǎn)生波特率,產(chǎn)生波特率12001200bpsbps4:18:2829浙江師范大學(xué)由于波特率固定由于波特率固定, ,常用于單片機(jī)間通訊。常用于單片機(jī)間通訊。 數(shù)據(jù)由數(shù)據(jù)由8+18+1位組成,通常附加的一位組成,通常附加的一位位( (TB8/RB8)TB8/RB8)用于用于“奇偶校驗(yàn)奇偶校驗(yàn)”。 工作方式工作方式2 2: : 9 9位位UART UART ( (1 1+8+8

27、+1 1+ + 1 1位位) ) 兩種兩種波特率波特率 方式方式2 2的波特率的波特率 = = foscfosc 2 2SMODSMOD/64 /64 即即: : f foscosc 1/32 1/32 或或 f foscosc 1/64 1/64 兩種兩種0D0D1D2D3D4D5D6D70/118位數(shù)據(jù)位數(shù)據(jù)起始位起始位停止位停止位4:18:2830浙江師范大學(xué)例:發(fā)送中斷服務(wù)程序,以TB8作為奇偶校驗(yàn)位,處理方法:數(shù)據(jù)寫(xiě)入SBUF之前,先將數(shù)據(jù)的奇偶位寫(xiě)入TB8。CPU執(zhí)行一條寫(xiě)SBUF的命令后,便立即啟動(dòng)發(fā)送器發(fā)送,發(fā)送完一幀信息后,TI被置1,再次向CPU申請(qǐng)中斷。因此在進(jìn)入中斷服務(wù)

28、子程序后,必須將TI清零。4:18:2831浙江師范大學(xué) PIPL: PUSH PSW ;保護(hù)現(xiàn)場(chǎng);保護(hù)現(xiàn)場(chǎng) PUSH A CLR TI ;清零發(fā)送中斷標(biāo)志;清零發(fā)送中斷標(biāo)志 MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù) MOV C,P ;奇偶位送;奇偶位送C MOV TB8,C ;奇偶位送;奇偶位送TB8 MOV SBUF,A ;發(fā)送數(shù)據(jù);發(fā)送數(shù)據(jù) INC R0 ;數(shù)據(jù)指針加;數(shù)據(jù)指針加1 POP A ;恢復(fù)現(xiàn)場(chǎng);恢復(fù)現(xiàn)場(chǎng) POP PSW RETI4:18:2832浙江師范大學(xué)工作方式工作方式3 3: :當(dāng)當(dāng)SM0,SM1SM0,SM1為為1111時(shí)時(shí), ,串行口工作于方式串行口工作于方式3 3 9

29、9位位UART(1+8+1+1UART(1+8+1+1位位) ) 波特率波特率可變可變串口方式串口方式3 3和方式和方式2 2唯一的區(qū)別是波特率機(jī)制不同唯一的區(qū)別是波特率機(jī)制不同。方式方式2 2的波特率固定為時(shí)鐘周期的的波特率固定為時(shí)鐘周期的3232或或6464分頻,分頻,不可變。此工作方式與其他串行通訊設(shè)備連接困不可變。此工作方式與其他串行通訊設(shè)備連接困難,因此不常用。難,因此不常用。方式方式3 3的的波特率可變波特率可變,按公式,按公式計(jì)算:計(jì)算: 波特率波特率= =(2(2SMODSMOD/32)/32) T1T1的溢出率的溢出率 波特率波特率 = =2 2SMOD SMOD foscf

30、osc32 32 12(2 12(2n n - X)- X)其中:其中:X X 是定時(shí)器初值是定時(shí)器初值4:18:2833浙江師范大學(xué)3 MCS-51單片機(jī)串行通信的波持率隨串行口工作方式選擇不同而異,它除了與系統(tǒng)的振蕩頻率fosc,電源控制寄存器PCON的SMOD位有關(guān)外,還與定時(shí)器T1的設(shè)置有關(guān)。收發(fā)雙方必須采用相同的波特率。方式方式0和方式和方式2的波特率是固定的的波特率是固定的;方式方式1和方式和方式3的波特率是可變的,由定時(shí)器的波特率是可變的,由定時(shí)器T1的的溢出率決定。溢出率決定。4:18:2834浙江師范大學(xué)1方式0和方式2方式0: 波特率為時(shí)鐘頻率的1/12,即fOSC/12,

31、固定不變。方式2: 波特率取決于PCON中的SMOD值,選定公式為波特率=2SMODfosc/64,固定為二種: 當(dāng)當(dāng)SMOD=l時(shí),波特率為時(shí),波特率為fosc/32;當(dāng)當(dāng)SMOD=0時(shí),波特率為時(shí),波特率為fosc/64。4:18:2835浙江師范大學(xué)2方式1和方式3 在方式l和方式3下,波特率由定時(shí)器Tl的溢出率和SMOD共同決定,因而波特率也是可變的。 相應(yīng)公式為: 波特率=2SMOD /32 n(定時(shí)器T1的溢出率)溢出率為溢出周期的倒數(shù),所以波特率為:波特率 = 定時(shí)器T1的溢出率取決于定時(shí)器T1的預(yù)置值。X)k12(2OSCf32SMOD24:18:2936浙江師范大學(xué) 波特率也

32、是可變的。 溢出周期為:fOSC /121/(2n一X) 式中,n為定時(shí)器T1的位數(shù),它和定時(shí)器T1的設(shè)定方式有關(guān)。即:若定時(shí)器若定時(shí)器T1為方式為方式0,則,則n=13若定時(shí)器若定時(shí)器T1為方式為方式1,則,則n=16若定時(shí)器若定時(shí)器T1為方式為方式2或或3,則,則n=84:18:2937浙江師范大學(xué) 定時(shí)器T1通常采用方式2。 方式2:TH1和TLl分別設(shè)定為兩個(gè)8位重裝計(jì)數(shù)器(當(dāng)TLl從全“1”變?yōu)槿?”時(shí),TH1重裝TL1)。 這種方式,不僅可使操作方便,也可避免因重裝初值(時(shí)間常數(shù)初值)而帶來(lái)的定時(shí)誤差。 方式1或方式3下所選波特率常常需要通過(guò)計(jì)算來(lái)確定初值。4:18:2938浙江

33、師范大學(xué)在波特率的設(shè)置中,SMOD位影響著波特率的準(zhǔn)確度的問(wèn)題值得注意。 例:設(shè)波特率選為2400, 時(shí),SMOD可以任選為0和1,但是由于對(duì)SMOD不同的選擇產(chǎn)生不同的波特率誤差:1.選擇SMOD0時(shí),此時(shí)HFoscfSMODN924912322400610602-256 12322-256波特率計(jì)數(shù)常數(shù)MHZfosc6 4:18:2939浙江師范大學(xué)將此值置入TH1,可得實(shí)際的波特率及誤差為:7%24002238.8-24002238.8F9H)8(21261063202N)8(212oscf32SMOD2波特率波特率 誤誤差差4:18:2940浙江師范大學(xué)2SMOD1,此時(shí)將此值置入TH

34、1,可得實(shí)際的波特率及誤差為:HFN324312322400610612-256計(jì)計(jì)數(shù)數(shù)常常數(shù)數(shù) %16. 024002400-85.240385.2403)382(1261063212波特率誤差波特率誤差波特率波特率 HF4:18:2941浙江師范大學(xué) SMOD值雖然是可以任意選擇的值,但在某些情況下會(huì)直接影響波特率誤差范圍。 通常波特率相對(duì)誤差不大于2.5,為了保證通信的可靠性,當(dāng)不同機(jī)種相互之間進(jìn)行通信時(shí),尤其要注意這點(diǎn)。4:18:2942浙江師范大學(xué)例:通信波特率為2400bps,fOSC=11.0592MHz,T1工作在方式2,其SMOD=0,計(jì)算T1的初值X,且編寫(xiě)初始化程序。 根

35、據(jù) 波特率=2SMOD/32n 得n=76800根據(jù)n= fOSC/12(2K一X) 得X=244 即:X=F4H,相應(yīng)的程序?yàn)椋?MOV TMOD,#20H MOV TLl,#0F4H MOV THl,#0F4H SETB TRl4:18:2943浙江師范大學(xué)1單片機(jī)串行通信口測(cè)試 例: 如圖將單片機(jī)的發(fā)送端與接收端接在一起,可以測(cè)試單片機(jī)的串口通信功能。設(shè)單片機(jī)主頻為6MHz,波特率為2400bps。程序執(zhí)行后,8個(gè)發(fā)光二極管閃爍表示通信正常。8051TXDRXDP1.0P1.1P1.7330330330742447424474244.VCC.4:18:2944浙江師范大學(xué)定時(shí)器采用工作模

36、式2,初值為FAH,程序: ORG 0000H MOV TMOD,#20H ;定時(shí)器定時(shí)器1設(shè)為模式設(shè)為模式2 MOV TL1,#0FAH MOV TH1,#0FAH ;置定時(shí)器初值置定時(shí)器初值 SETB TR1 ;啟動(dòng)啟動(dòng)T1 MOV SCON,#50H ;串口設(shè)置為方式串口設(shè)置為方式1,REN=1STA: CLR TI ;清發(fā)送標(biāo)志清發(fā)送標(biāo)志 MOV P1,#00H ;送亮燈信號(hào)送亮燈信號(hào) ACALL DELAY ;調(diào)延時(shí)調(diào)延時(shí) MOV A,#0FFH MOV SBUF, A ;發(fā)送滅燈信號(hào)發(fā)送滅燈信號(hào)4:18:2945浙江師范大學(xué) JXFS: JNB TI, JXFS ;發(fā)送等待發(fā)送等待

37、 JXJS: JNB RI, JXJS ;接收等待接收等待 CLR RI ;清接收標(biāo)志清接收標(biāo)志 MOV A, SBUF ;接收數(shù)據(jù)接收數(shù)據(jù) MOV P1, A ;接收數(shù)據(jù)接收數(shù)據(jù)(滅燈信號(hào))送(滅燈信號(hào))送P1口口 ACALL DELAY ;調(diào)延時(shí)調(diào)延時(shí) SJMP STA ;重復(fù)重復(fù)DELAY: MOV R0,#0FFH ;延時(shí)子程序延時(shí)子程序DAL: MOV R1,#0FFHDAL1: DJNZ R1,DAL1 DJNZ R0,DAL RET END4:18:2946浙江師范大學(xué)2MCS-51單片機(jī)雙機(jī)通信技術(shù) 如果兩個(gè)單片機(jī)應(yīng)用系統(tǒng)相距很近,可將它們的串行口直接相連,即可實(shí)現(xiàn)雙機(jī)通信,如

38、圖:8051TXDRXDGND8051RXDTXDGND4:18:2947浙江師范大學(xué)為了增加通信距離,減少通道及電源干擾,可以在通信線路上采取光電隔離的方法,利用RS-422標(biāo)準(zhǔn)進(jìn)行雙機(jī)通信。一種實(shí)用的接口電路如圖:12174LS05VCC外 5 V1123123SN7517511431232133474LS0574LS05外 5 VVCCTXDRXD8051(甲 機(jī) )8051(乙 機(jī) )RXDTXDVCC外 5 V外 5 VVCCSN75174SN75175SN7517474LS05外 5 V外 5 VR1R3R2R1R3R24:18:2948浙江師范大學(xué)例:利用方式1實(shí)現(xiàn)單片機(jī)雙機(jī)通信

39、,主頻為6MHz,波特率為2400bps,當(dāng)兩個(gè)單片機(jī)距離較近時(shí),甲、乙兩機(jī)的發(fā)送端與接收端分別直接相聯(lián),兩機(jī)共地。執(zhí)行程序,甲機(jī)將亮燈信號(hào)發(fā)送給乙機(jī),若通信正常,乙機(jī)接收到信號(hào)后點(diǎn)亮8個(gè)發(fā)光二極管。電路原理圖如圖所示,下面介紹甲機(jī)發(fā)送,乙機(jī)采用查詢與中斷兩種工作方式接收。8051TXDRXDGND8051RXDTXDGND甲機(jī)發(fā)送程序:甲機(jī)發(fā)送程序: ORG 0000H STA: MOV TMOD,#20H ;設(shè)置波特率設(shè)置波特率 MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#40H ;置工作方式置工作方式1 CLR TI MOV A,#00H

40、 MOV SBUF,A ;發(fā)送亮燈信號(hào)發(fā)送亮燈信號(hào)WAIT: JBC TI,CONT ;發(fā)送成功清標(biāo)志發(fā)送成功清標(biāo)志 AJMP WAIT ;等待發(fā)送完畢等待發(fā)送完畢CONT: SJMP STA ;重復(fù)發(fā)送重復(fù)發(fā)送 END乙機(jī)查詢工作方式接收:乙機(jī)查詢工作方式接收:ORG 0000H MOV TMOD,#20H ;設(shè)置通信波特率設(shè)置通信波特率 MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#40H CLR RI SETB REN ;允許接收允許接收WAIT: JBC RI,READ ;接收成功清標(biāo)志接收成功清標(biāo)志 AJMP WAIT ;接收未完等待接

41、收未完等待READ: MOV A ,SBUF MOV P1,A ;接收亮燈信號(hào)送接收亮燈信號(hào)送P1口口 SJMP $ END乙機(jī)中斷工作方式接收乙機(jī)中斷工作方式接收: ORG 0000H AJMP MAIN ORG 0023H AJMP ZD ;轉(zhuǎn)串口中斷程序MAIN:MOV TMOD,#20H MOV TL1,#0FAH MOV TH1,#0FAH SETB TR1 MOV SCON,#50H CLR RI MOV IE,#90H ;開(kāi)中斷 SJMP $ZD:CLR RI ;清接收標(biāo)志 MOV A ,SBUF ;讀接收信號(hào) MOV P1,A RETI ;中斷返回 END4:18:2952浙江

42、師范大學(xué)例:編程將甲機(jī)片內(nèi)50H單元開(kāi)始的20個(gè)數(shù)據(jù)從串行口輸出,乙機(jī)接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,并存入片內(nèi) 50H開(kāi)始的20個(gè)單元。采用方式2 通信,數(shù)據(jù)幀格式是11位的,TB8為奇偶校驗(yàn)位,接收過(guò)程要求判斷RB8,若出錯(cuò)置F0標(biāo)志為1,正確則置F0標(biāo)志為0,然后返回。發(fā)送波特率375kbps,晶振為12MHz,所以SMOD=l。 由于傳送數(shù)據(jù)的波特率與定時(shí)器無(wú)關(guān),所以程序中無(wú)需對(duì)定時(shí)器編程。發(fā)送子程序如下:發(fā)送子程序如下: MOV SCON,#80H ;設(shè)置串行口為方式;設(shè)置串行口為方式2 MOV PCON,#80H ;SMOD=l MOV R0,#50H ;設(shè)數(shù)據(jù)塊指針;設(shè)數(shù)據(jù)塊指針 MO

43、V R7,#20 ;設(shè)數(shù)據(jù)塊長(zhǎng)度;設(shè)數(shù)據(jù)塊長(zhǎng)度 STA:MOV A,R0 ;取數(shù)據(jù)給;取數(shù)據(jù)給A MOV C,P MOV TB8,C ;奇偶位;奇偶位P送給送給TB8, MOV SBUF,A ;啟動(dòng)發(fā)送;啟動(dòng)發(fā)送WAIT: JBC TI,CONT ;若發(fā)完一幀數(shù)據(jù),清標(biāo)志后發(fā);若發(fā)完一幀數(shù)據(jù),清標(biāo)志后發(fā) 下一幀數(shù)據(jù)下一幀數(shù)據(jù) AJMP WAIT ;未完等待;未完等待CONT: INC R0 ;修改數(shù)據(jù)指針;修改數(shù)據(jù)指針 DJNZ R7,STA ;循環(huán)發(fā)送至結(jié)束;循環(huán)發(fā)送至結(jié)束 RET乙機(jī)接收程序如下:乙機(jī)接收程序如下: 在進(jìn)行雙機(jī)通信時(shí),兩機(jī)應(yīng)采用相同的工作方式和波特率。在進(jìn)行雙機(jī)通信時(shí),兩機(jī)

44、應(yīng)采用相同的工作方式和波特率。 參考接收子程序如下:參考接收子程序如下: MOV SCON,#90H ;設(shè)置串行口為方式設(shè)置串行口為方式2, ;REN為為1,允許接收,允許接收 MOV PCON,#80H ;SMOD=1 MOV R0,#50H ;設(shè)置數(shù)據(jù)塊首址設(shè)置數(shù)據(jù)塊首址 MOV R7,#20 ;置數(shù)據(jù)塊長(zhǎng)度置數(shù)據(jù)塊長(zhǎng)度WAIT:JBC RI,READ ;接收完一幀數(shù)據(jù)則接收完一幀數(shù)據(jù)則RI清零并清零并 ; 讀入數(shù)據(jù)讀入數(shù)據(jù) AJMP WAIT ;未完等待未完等待 READ: MOV A,SBUF ;讀入數(shù)據(jù)讀入數(shù)據(jù) JNB PSW.0,PZ ;收到數(shù)為偶數(shù)則轉(zhuǎn)收到數(shù)為偶數(shù)則轉(zhuǎn)乙機(jī)接收程序如下:乙機(jī)接收程序如下: 在進(jìn)行雙機(jī)通信時(shí),兩機(jī)應(yīng)采用相同的工作方

溫馨提示

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