版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章單片機(jī)串行口主要內(nèi)容:6.1串行通信的基本概念6.2MCS-51串行接口的基本結(jié)構(gòu)6.3串行口的工作方式6.4串行口波特率的確定及串行口初始化6.5串行口的應(yīng)用重點(diǎn)、難點(diǎn):掌握單片機(jī)與外部通信基本方式;了解串行通信的分類,掌握異步通信的原理、幀格式;了解常見(jiàn)的數(shù)據(jù)傳輸方式。了解單片機(jī)串行口的結(jié)構(gòu),掌握控制寄存器SCON的使用方法。掌握單片機(jī)串行口的工作方式及使用方法。掌握串行口波特率的設(shè)置。了解方式0進(jìn)行串并口的擴(kuò)展,掌握雙機(jī)通信及多機(jī)通信的原理及編程(中斷和查詢)方法。掌握RS232串行通信標(biāo)準(zhǔn),了解RS485通信原理。(1)并行通信多個(gè)數(shù)據(jù)位同時(shí)傳輸,速度快。因傳輸線多,特別適用于近距離通信。(2)串行通信數(shù)據(jù)是一位一位地在通信線上傳輸,速度慢。因傳輸線少,特別適用于遠(yuǎn)距離通信。6.1串行通信的基本概念1.串行通信的分類(1)異步通信以字符為單位傳送,字符間隔不固定發(fā)送端和接收端時(shí)鐘彼此獨(dú)立(異步)通信雙方須規(guī)定相同的字符幀格式和波特率①字符幀格式由起始位、數(shù)據(jù)位、奇偶校檢位、停止位等4部分組成。起始位:位于字符的開(kāi)頭,1位,用低電平0表示,表示字符的開(kāi)始,通知接收端準(zhǔn)備接收。數(shù)據(jù)位;緊跟在起始位之后,可以是5-8位數(shù)據(jù),發(fā)送時(shí)低位在前,高位在后。奇偶校驗(yàn)位:1位,位于數(shù)據(jù)位之后,用戶根據(jù)需要加入。用來(lái)表示串行通信中采用奇校驗(yàn)還是偶校驗(yàn)。停止位:位于字符最后,以高電平1表示字符的結(jié)束,告訴接收端本幀數(shù)據(jù)發(fā)送完畢,為下一幀數(shù)據(jù)作準(zhǔn)備。②波特率波特率,即每秒鐘傳送的二進(jìn)制位數(shù),其單位為bps(bitspersecond),是衡量串行數(shù)據(jù)速度快慢的重要指標(biāo)。國(guó)際標(biāo)準(zhǔn):110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。假如在異步串行通信中,傳送一個(gè)字符,包括12位(其中有1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)奇偶校驗(yàn)位,2個(gè)停止位),其傳輸速率是1200b/s,每秒所能傳送的字符數(shù)是1200/(1+8+1+2)=100個(gè)。(2)同步通信一個(gè)信息幀中包含許多字符,每個(gè)信息幀用同步字符作為開(kāi)始。由統(tǒng)一的時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端與接收端之間的嚴(yán)格同步接收端檢測(cè)到有一串?dāng)?shù)位和同步字符相匹配時(shí),把此后的數(shù)位作為實(shí)際傳輸信息來(lái)處理。同步信息幀通常由同步字符、數(shù)據(jù)字符和校驗(yàn)字符CRC三部分組成。同步字符1同步字符2數(shù)據(jù)字符1數(shù)據(jù)字符2……數(shù)據(jù)字符nCRC1CRC22.串行通信的數(shù)據(jù)傳輸方式(1)單工方式:信息傳送只能在一個(gè)方向上進(jìn)行。(2)半雙工方式:通信雙方之間也只有一根數(shù)據(jù)傳輸信號(hào)線,通過(guò)接收和發(fā)送轉(zhuǎn)換開(kāi)關(guān),使得雙方可以交替進(jìn)行發(fā)送和接收,但兩個(gè)方向的數(shù)據(jù)傳送不能同時(shí)進(jìn)行。(3)全雙工方式:通信雙方之間有兩條數(shù)據(jù)傳輸信號(hào)線,可以在同一時(shí)刻進(jìn)行兩個(gè)方向的數(shù)據(jù)傳送。6.2MCS-51串行接口的基本結(jié)構(gòu)1.串行口的內(nèi)部結(jié)構(gòu)MCS-51單片機(jī)內(nèi)部的串行接口是全雙工的。該接口有兩根串行通信傳輸線RXD(P3.0)和TXD(P3.l),數(shù)據(jù)的接收和發(fā)送就是通過(guò)這兩根信號(hào)線來(lái)實(shí)現(xiàn)的。在物理上存在兩個(gè)互相獨(dú)立的接收、發(fā)送緩沖器SBUF,通過(guò)特殊功能寄存器SBUF來(lái)訪問(wèn)。兩個(gè)緩沖器共用一個(gè)地址99H(特殊功能寄存器SBUF的地址)串行口還有接收緩沖作用,即從接收寄存器中讀出前一個(gè)已收到的字節(jié)之前就能開(kāi)始接收第二字節(jié)。收發(fā)數(shù)據(jù)是在發(fā)送/接收控制器的作用下完成的,波特率由定時(shí)計(jì)數(shù)器T1決定。2.串行口的控制寄存器(1)串行控制寄存器SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI①SM0、SM1:指定串行通道的工作方式。SM0SM1工作方式說(shuō)明波特率00方式0同步移位寄存器fosc/1201方式110位異步收發(fā)由定時(shí)器控制10方式211位異步收發(fā)fosc/32或fosc/6411方式311位異步收發(fā)由定時(shí)器控制②SM2:多機(jī)通信控制位。主要用于方式2和方式3中。在方式2和方式3處于接收狀態(tài)時(shí),如SM2=l,REN=1,且接收到的第9位數(shù)據(jù)RB8是1,則RI(接收中斷標(biāo)志位)才被置1。若接收到的第9位數(shù)據(jù)RB8是0,則RI不會(huì)置1。在方式2和方式3處于接收狀態(tài)時(shí),如SM2=0,無(wú)論接收到的第9位數(shù)據(jù)RB8是0還1,則RI都會(huì)被置1。在方式1中,如SM2=1,只有在接收到有效停止位時(shí),則RI才會(huì)被置1。所以,方式1中SM2一般設(shè)置為0,以免丟失數(shù)據(jù)。在方式0中,SM2必須為0。③REN:允許串行接收控制位。由軟件置1或清除。REN=1,允許接收REN=0,禁止接收④TB8:發(fā)送數(shù)據(jù)位8,由軟件進(jìn)行置1或清0。。在方式2和方式3時(shí),它就是要發(fā)送的第9個(gè)數(shù)據(jù)位。如在多處理通信中,用于表示是地址幀還是數(shù)據(jù)幀。在方式0和方式1中,此位不用。⑤RB8:接收數(shù)據(jù)位8。在方式2和3時(shí),它是接收到的第9個(gè)數(shù)據(jù)位在方式1中,若SM2=0,RB8是接收到的停止位在方式0中,此位不用。⑥TI:發(fā)送中斷標(biāo)志位。在方式0中,當(dāng)發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置1在其他方式中,在發(fā)送停止位前,由硬件置1。TI=l時(shí),申請(qǐng)中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。該位必須由軟件清0。⑦RI:接收中斷標(biāo)志位。在方式0中,接收第8位結(jié)束時(shí),由硬件置1;在其他方式中,在接收停止位的中間時(shí)刻,由硬件置1。RI=1時(shí),申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。(但在模式1中,SM2=1時(shí),若未接收到有效的停止位,則不會(huì)對(duì)RI置位。)該位必須由軟件清0。(2)電源控制寄存器PCON電源控制寄存器PCON的格式如下所示:D7D6D5D4D3D2D1D0SMODD7位SMOD是串行口波特率倍增位。SMOD為1時(shí),串行口工作方式1、方式2、方式3的波特率加倍。具體值見(jiàn)各種工作方式下的波特率計(jì)算公式。6.3串行口的工作方式1.方式0:同步移位寄存器,用于擴(kuò)展并行口
RXD:輸入或輸出引腳TXD:移位脈沖輸出接收和方式都是8位波特率固定為:fosc/12(2)數(shù)據(jù)輸入:
(1)數(shù)據(jù)輸出:
2.方式1:10位幀,用于雙機(jī)通信起始位:1位數(shù)據(jù)位:8位停止位:1位10位的異步通信接口,即傳送一幀信息為10位。一位起始位“0”,8位數(shù)據(jù)位(先低位后高位),一位停止位“1”,其中起始位和停止位是在發(fā)送時(shí)自動(dòng)插入的,數(shù)據(jù)位由TXD發(fā)送,由RXD接收。波特率可變。硬件上,T1的計(jì)數(shù)輸出不僅使TF1置位,而且會(huì)產(chǎn)生一個(gè)脈沖送串行口。方式1的波特率這時(shí)就取決于T1(注意只是T1,不是T0)的溢出頻率(每秒鐘T1溢出多少次)和PCON中的SMOD的值。方式1的波特率=(2SMOD/32)×Tl的溢出頻率(1)串行發(fā)送:(寫(xiě)SBUF啟動(dòng)發(fā)送過(guò)程)
(2)串行接收:(置REN=1啟動(dòng)接收過(guò)程)
3.方式2和方式3:11位幀,用于多機(jī)通信起始位:1位數(shù)據(jù)位:9位停止位:1位串行口發(fā)送/接收的一幀信息共11位:一位是起始位“0”,8位數(shù)據(jù),一位奇偶校驗(yàn)位,一位停止位“1”。方式2和方式3的發(fā)送、接收過(guò)程是完全一樣的,只是波特率不同。方式2的波特率=(2SMOD/64)×fosc方式3的波特率=(2SMOD/32)×T1的溢出頻率(1)串行發(fā)送:(寫(xiě)SBUF啟動(dòng)發(fā)送過(guò)程)
(2)串行接收:(置REN=1啟動(dòng)接收過(guò)程)
6.4串行口波特率的確定及串行口初始化1.波特率的計(jì)算(1)方式0的波特率:固定等于fosc/12。(2)方式2的波特率:固定等于(2SMOD/64)×fosc。SMOD為波特率加倍位。(3)方式1或方式3的波特率:等于(2SMOD/32)×T1的溢出頻率。定時(shí)器1溢出頻率=fosc/[12×(256-X)]方式1、3的波特率=2SMOD×fosc/[12×32×(256-X)]當(dāng)時(shí)鐘頻率選用11.0592MHz時(shí),極易獲得標(biāo)準(zhǔn)的波特率SMOD位數(shù)值的選擇直接影響著波特率的精確度2.串行口初始化的步驟確定串行口工作方式(配置SCON寄存器)確定T1的工作方式(配置TMOD寄存器)設(shè)置SMOD位(若不用SMOD,可跳過(guò)此步)計(jì)算T1的初值,裝載TH1和TL1啟動(dòng)T1(置位TR1)串行口中斷設(shè)置(配置IE、IP寄存器)【例6-1】某8051單片機(jī)控制系統(tǒng),主振頻率為12MHz,要求串行口發(fā)送數(shù)據(jù)為8位、波特率為1200b/s,編寫(xiě)串行口的初始化程序(設(shè)SMOD=1)。我們?cè)O(shè)SMOD=1,則T1的時(shí)間常數(shù)X的值為:X=256-2SMOD×fosc/(12×32×波特率)=256-21×12×106/(12×32×1200)=256-52.08=203.92≈0CCH初始化程序?yàn)椋篗OVSCON,#50H ;串行口工作于方式1ORLPCON,#80H ;SMOD=1MOVTMOD,#20H ;T1工作于方式2,定時(shí)方式MOVTH1,#0CCH ;設(shè)置時(shí)間常數(shù)初值MOVTL1,#0CCHSETBTR1 ;啟動(dòng)T16.5串行口的應(yīng)用6.5.1串行口方式0用做擴(kuò)展并行I/O口【例6-2】用8051串行口外接CD4094擴(kuò)展8位并行輸出口,8位并行輸出口的各位都接一個(gè)顯示發(fā)光二極管。要求發(fā)光二極管從左到右以一定延時(shí)輪流顯示,且不斷循環(huán)。發(fā)光二極管為共陰極接法。ORG0000HMOVSCON,#00H;串行口方式0初始化MOVA,#80H;最左一位發(fā)光管先亮CLRP1.0START:MOVSBUF,ALOOP:JNBTI,LOOP;查詢TISETBP1.0;啟動(dòng)并行輸出LCALLDELAY;調(diào)用延時(shí)程序CLRTIRRA;循環(huán)右移一位CLRP1.0LJMPSTART【例6-3】用8051串行口外加移位寄存器擴(kuò)展8位并行輸入口。輸入數(shù)據(jù)由8個(gè)開(kāi)關(guān)提供,另有一個(gè)開(kāi)關(guān)K提供聯(lián)絡(luò)信號(hào)。當(dāng)K=0時(shí).表示要求輸入數(shù)據(jù)。輸入的8位開(kāi)關(guān)量,為邏輯模擬子程序LOG提供輸入信號(hào)。 ORG0000HSTART:JBP1.1,$ SETBP1.0;并行置入數(shù)據(jù)
CLRP1.0;開(kāi)始串行移位
MOVSCON,#10H;串行口方式0啟動(dòng)接收
LOOP:JNBRI,$;查詢RI CLRRI MOVA,SBUF LCALLSUB;數(shù)據(jù)交給SUB模擬子程序
LJMPSTART6.5.2雙機(jī)通信【例6-4】按圖連接兩個(gè)單片機(jī)系統(tǒng)(假設(shè)已經(jīng)擴(kuò)展了外部數(shù)據(jù)存儲(chǔ)器),編程將甲機(jī)的片外RAM的2000H-201FH單元的數(shù)據(jù)塊從串行口發(fā)送。假設(shè)串行口工作在方式3,TB8為奇偶校驗(yàn)位。乙機(jī)接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,并存入片內(nèi)RAM的20H-3FH單元。接收過(guò)程要求判斷RB8,若出錯(cuò)則設(shè)F0標(biāo)志為1,正確則設(shè)F0標(biāo)志為0。波特率為1200bit/s,采用12MHz的晶振。 ORG0000H LJMPSTART ORG0100HSTART:MOVTMOD,#20H MOVTL1,#0E6H MOVTH1,#0E6H SETBTR1 MOVSCON,#0C0H MOVDPTR,#2000H MOVR7,#20H(1)采用查詢方式①甲機(jī)發(fā)送程序:SEND:MOVXA,@DPTR MOVC,P MOVTB8,C MOVSBUF,ALOOP:JNBTI,LOOP CLRTI INCDPTR DJNZR7,SEND SJMP$ ENDORG0000HLJMPSTARTORG0100HSTART:MOVTMOD,#20H MOVTL1,#0E6H MOVTH1,#0E6H SETBTR1 MOVR0,#20H MOVR7,#20H MOVSCON,#0D0HREAD:JNBRI,READ CLRRI②乙機(jī)接收程序 MOVA,SBUF JNBPSW.0,PZERO JNBRB8,ERROR LJMPRIGHTPZERO:JBRB8,ERRORRIGHT:MOV@R0,A INCR0 DJNZR7,READ CLRPSW.5 LJMPLOOPERROR:SETBPSW.5LOOP:SJMPLOOP END(2)采用中斷方式①甲機(jī)發(fā)送程序: ORG0000H LJMPSTART ORG0023H LJMPSINTSTART:MOVSP,#60H MOVSCON,#0C0H MOVDPTR,#2000H MOVR7,#20H MOVTMOD,#20H MOVTL1,#0E6H MOVTH1,#0E6H SETBEA SETBES SETBTR1MOVXA,@DPTR MOVC,P MOVTB8,C MOVSBUF,ALOOP:SJMPLOOPSINT:CLRTI DJNZR7,NEXT CLRES LJMPEXITNEXT:INCDPTR MOVXA,@DPTR MOVC,P MOVTB8,C MOVSBUF,AEXIT:RETI END②乙機(jī)接收程序: ORG0000H LJMPSTART ORG0023H LJMPSINTSTART:MOVSP,#60H MOVSCON,#40H MOVR7,#20H MOVTMOD,#20H MOVTL1,#0E6H MOVTH1,#0E6H SETBEA SETBES SETBTR1 MOVR0,#20H MOVR7,#20H MOVSCON,#0D0HLOOP:LJMPLOOPSINT:CLRRI MOVA,SBUF JNBPSW.0,PZERO JNBRB8,ERROR LJMPRIGHTPZERO:JBRB8,ERRORRIGHT:MOV@R0,A DJNZR7,NEXT CLRES LJMPEXITNEXT:INCR0EXIT:RETI END6.5.3多機(jī)通信1.多機(jī)通信原理單片機(jī)的主從式多機(jī)通信方式要有一臺(tái)主機(jī)和多臺(tái)從機(jī)。主機(jī)發(fā)送的信息可以傳送到各個(gè)從機(jī)或指定的從機(jī),各從機(jī)發(fā)送的信息只能被主機(jī)接收,從機(jī)之間不能直接進(jìn)行通信。具體過(guò)程如下:全部從機(jī)均初始化為方式2或方式3,SM2=1,允許中斷。主機(jī)發(fā)送要尋址的從機(jī)地址,其中TB8=1表示發(fā)送的是呼叫地址幀(TB8=0時(shí)為數(shù)據(jù)幀)。所有從機(jī)均接收主機(jī)發(fā)送的地址,并進(jìn)行地址比較。被尋址的從機(jī)確認(rèn)地址后,置本機(jī)的SM2=0,向主機(jī)返回地址,供主機(jī)核對(duì)。核對(duì)無(wú)誤后,主機(jī)向被尋址的從機(jī)發(fā)送命令,通知從機(jī)接收或發(fā)送數(shù)據(jù)。通信只能在主、從機(jī)之間進(jìn)行,兩個(gè)從機(jī)之間的通信需通過(guò)主機(jī)作中介。本次通信結(jié)束后,從機(jī)重置SM2=1,主機(jī)可再對(duì)其他從機(jī)尋址?!纠?-5】采用查詢方式將主機(jī)50H~5FH中的數(shù)據(jù)發(fā)送給02號(hào)從機(jī);02號(hào)從機(jī)將接收到的數(shù)據(jù)放到內(nèi)部RAM30H~3FH單元中,波特率為1200波特,fosc=11.0592MHz,預(yù)置值TH1=0E8H。 ORG0000H LJMPMAIN ORG0030HMAIN:MOVTMOD,#20H MOVTL1,#0E8H MOVTH1,#0E8H SETBTR1 MOVSCON,#D8HM1:MOVSBUF,#02HL1:JNBTI,L1 CLRTIL2:JNBRI,L2 CLRRI
MOVA,SUBF XRLA,#02H JZRHT LJMPM1RHT:CLRTB8 MOVR0,#50HM1:MOVR7,#10HL3:MOVA,@R0 MOVSBUF,AL4:JNBTI,L4 CLRTI INCR0 DJNZR7,L3 LJMPMAIN END①主機(jī)程序: ORG0000H LJMPMAIN ORG0030HMAIN:MOVTMOD,#20H MOVTL1,#0E8H MOVTH1,#0E8H SETBTR1 MOVR0,#30H MOVR6,#10H MOVSCON,#0F0HSR1:JNBRI,SR1 CLRRISR2:MOVA,SUBF XRLA,#02H JNZSR1 CLRSM2;②從機(jī)程序:
MOVSBUF,#02HSR3:JNBTI,SR3 CLRTISR4:JNBRI,SR4 CLRRI JNBRB8,RHT SETBSM2 LJMPSR1RHT:MOVA,SBUF MOV@R0,A INCR0 DJNZR6,SR4 LJMPSI END6.5.4單片機(jī)與PC機(jī)間的通信1.RS-232接口(1)RS-232接口簡(jiǎn)介①機(jī)械特性現(xiàn)在的PC機(jī)上出現(xiàn)的COM1和COM2就是標(biāo)準(zhǔn)的RS-232C接口,采用9針陽(yáng)頭。引腳序號(hào)信
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮膚科護(hù)士細(xì)致治療皮膚疾病工作總結(jié)
- 2024年商鋪?zhàn)赓U及代售權(quán)捆綁銷(xiāo)售合同3篇
- 旅行用品銷(xiāo)售工作總結(jié)
- 消化外科護(hù)士工作總結(jié)
- 2024年度事實(shí)婚姻離婚協(xié)議及共同財(cái)產(chǎn)分配協(xié)議3篇
- 小學(xué)學(xué)校工作總結(jié)4篇
- 四年級(jí)英語(yǔ)老師學(xué)期工作總結(jié)范文四年級(jí)英語(yǔ)老師工作總結(jié)
- 電商行業(yè)營(yíng)銷(xiāo)工作總結(jié)
- 設(shè)計(jì)行業(yè)咨詢師心得
- 高考文言文翻譯(學(xué)生)
- 2024年度農(nóng)產(chǎn)品供應(yīng)鏈采購(gòu)合同范本627123篇
- 會(huì)計(jì)專業(yè)調(diào)研報(bào)告范文
- 現(xiàn)代學(xué)徒制課題:數(shù)字化時(shí)代中國(guó)特色學(xué)徒制創(chuàng)新發(fā)展路徑研究(附:研究思路模板、可修改技術(shù)路線圖)
- 施工單位施工現(xiàn)場(chǎng)考核評(píng)價(jià)表
- GB 45067-2024特種設(shè)備重大事故隱患判定準(zhǔn)則
- 期末模擬考試卷02-2024-2025學(xué)年上學(xué)期高一思想政治課《中國(guó)特色社會(huì)主義》含答案
- 生物醫(yī)學(xué)電子學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年天津大學(xué)
- 幸福創(chuàng)業(yè)智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東大學(xué)
- DB11T 489-2024 建筑基坑支護(hù)技術(shù)規(guī)程
- 個(gè)體診所藥品清單模板
- 267條表情猜成語(yǔ)【動(dòng)畫(huà)版】
評(píng)論
0/150
提交評(píng)論