單片機應用技術(shù)項目式教程課件:串行口技術(shù)_第1頁
單片機應用技術(shù)項目式教程課件:串行口技術(shù)_第2頁
單片機應用技術(shù)項目式教程課件:串行口技術(shù)_第3頁
單片機應用技術(shù)項目式教程課件:串行口技術(shù)_第4頁
單片機應用技術(shù)項目式教程課件:串行口技術(shù)_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機應用技術(shù)項目式教程—基于Proteus和KeilCSINGLE-CHIP

COMPUTER

APPLICATION

TECHNOLOGY

串行通信技術(shù)串行通信基礎知識01STC15W4K32S4單片機串行口控制寄存器02STC15W4K32S4單片機串行口的工作方式03STC15W4K32S4單片機串行口通信技術(shù)應用04知識要點

串行通信技術(shù)STC15W4K32S4單片機串行口控制寄存器的設置01串口通信波特率的選擇與設計02掌握簡單流水燈的設計和編程03掌握開關(guān)量指示電路的設計04學習要求掌握主從多級通信系統(tǒng)的設計05教學內(nèi)容走近科學北斗衛(wèi)星導航系統(tǒng)由空間段、地面段和用戶段三部分組成,可在全球范圍內(nèi)全天候、全天時為各類用戶提供高精度、高可靠定位、導航、授時服務,并且具備短報文通信能力,已經(jīng)初步具備區(qū)域?qū)Ш?、定位和授時能力,定位精度為分米、厘米級別,測速精度0.2米/秒,授時精度10納秒。2020年7月31日上午,北斗三號全球衛(wèi)星導航系統(tǒng)正式開通。中國北斗衛(wèi)星導航系統(tǒng)是中國自行研制的全球衛(wèi)星導航系統(tǒng),也是繼GPS、GLONASS之后的第三個成熟的衛(wèi)星導航系統(tǒng)。北斗衛(wèi)星導航系統(tǒng)(BDS)和美國GPS、俄羅斯GLONASS、歐盟GALILEO,是聯(lián)合國衛(wèi)星導航委員會已認定的供應商。北斗衛(wèi)星走近科學

第一步,建設北斗一號系統(tǒng)。1994年,啟動北斗一號系統(tǒng)工程建設;2000年,發(fā)射2顆地球靜止軌道衛(wèi)星,建成系統(tǒng)并投入使用,采用有源定位體制,為中國用戶提供定位、授時、廣域差分和短報文通信服務;2003年發(fā)射第3顆地球靜止軌道衛(wèi)星,進一步增強系統(tǒng)性能。

第二步,建設北斗二號系統(tǒng)。2004年,啟動北斗二號系統(tǒng)工程建設;2012年年底,完成14顆衛(wèi)星(5顆地球靜止軌道衛(wèi)星、5顆傾斜地球同步軌道衛(wèi)星和4顆中圓地球軌道衛(wèi)星)發(fā)射組網(wǎng)。北斗二號系統(tǒng)在兼容北斗一號系統(tǒng)技術(shù)體制基礎上,增加無源定位體制,為亞太地區(qū)用戶提供定位、測速、授時和短報文通信服務。

第三步,建設北斗三號系統(tǒng)。2009年,啟動北斗三號系統(tǒng)建設;2018年年底,完成19顆衛(wèi)星發(fā)射組網(wǎng),完成基本系統(tǒng)建設,向全球提供服務;計劃2020年年底前,完成30顆衛(wèi)星發(fā)射組網(wǎng),全面建成北斗三號系統(tǒng)。北斗三號系統(tǒng)繼承北斗有源服務和無源服務兩種技術(shù)體制,能夠為全球用戶提供基本導航(定位、測速、授時)、全球短報文通信、國際搜救服務,中國及周邊地區(qū)用戶還可享有區(qū)域短報文通信、星基增強、精密單點定位等服務。發(fā)展歷程走近科學

2012-2021年,我國衛(wèi)星導航與位置服務產(chǎn)業(yè)總產(chǎn)值從810億元上升至4690億元,年均復合增長率達到了21.55%。北斗系統(tǒng)廣泛應用于重點運輸過程監(jiān)控、公路基礎設施安全監(jiān)控、港口高精度實時定位調(diào)度監(jiān)控等領(lǐng)域。

2021年國內(nèi)衛(wèi)星導航定位終端產(chǎn)品總銷量超5.1億臺,其中具有衛(wèi)星導航定位功能的智能手機出貨量達到3.43億臺,汽車導航后裝市場終端銷量達到477萬臺,汽車導航前裝市場終端銷量達到681萬臺,各類監(jiān)控終端銷量達到317萬臺。在交通領(lǐng)域,目前全國超過780萬道路營運車輛、4萬多輛郵政快遞干線車輛、47000多艘船舶應用北斗系統(tǒng);長江干線北斗增強系統(tǒng)基準站和水上助導航設施數(shù)量超過13106座;近500架通用航空器應用北斗系統(tǒng),建成全球最大的營運車輛動態(tài)監(jiān)管系統(tǒng),有效提升了監(jiān)控管理效率和道路運輸安全水平。行業(yè)及區(qū)域應用5.1串行口的結(jié)構(gòu)并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進行傳送。并行通信的特點:控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。1.并行通信圖1并行通信方式5.1串行口的結(jié)構(gòu)串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設備,但數(shù)據(jù)的傳送控制比并行通信復雜。2.串行通信圖2

串行通信方式5.1串行口的結(jié)構(gòu)1)串行通信的分類5.1串行口的結(jié)構(gòu)同步通信是要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。①同步時鐘②同步字符SYN(1)同步通信圖3同步通信方式5.1串行口的結(jié)構(gòu)異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設備的時鐘盡可能一致。異步通信方式的一幀信息由四部分組成:起始位、數(shù)據(jù)位、校驗位和停止位。異步通信的特點:不要求收發(fā)雙方時鐘的嚴格一致,實現(xiàn)容易,設備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。(2)異步通信圖4

異步通信方式圖5異步通信數(shù)據(jù)幀格式5.1串行口的結(jié)構(gòu)波特率,即數(shù)據(jù)傳送率,表示每秒傳送二進制數(shù)碼的位數(shù),它的單位是波特(位/秒)。在串行通信中,波特率是一個很重要的指標,它反映了串行通信的速率,波特率越高,數(shù)據(jù)傳輸速率越快,假如在異步傳送方式中,數(shù)據(jù)的傳送率是240字符/秒,每個字符由一個起始位、八個數(shù)據(jù)位和一個停止位組成,則傳送波特率為:10×240=2400位/秒=2400波特一般異步通信的波特率在50~9600波特之間;一般同步通信可達56K波特或更高。(3)波特率5.1串行口的結(jié)構(gòu)2)串行通信的制式在單工制式下,通信線的一端接發(fā)送器,一端接接收器,只允許一個方向傳輸數(shù)據(jù),不能實現(xiàn)反向傳輸。單工(simpleduplex)在半雙工制式下,系統(tǒng)的每個通信設備都由一個發(fā)送器和一個接收器組成,使用一條(或一對)傳輸線。半雙工(halfduplex)全雙工制式通信系統(tǒng)的每端都有發(fā)送器和接收器,使用兩條(或兩對)傳輸線,允許兩個方向同時進行數(shù)據(jù)傳輸。全雙工(fullduplex)5.1串行口的結(jié)構(gòu)3)串行口的結(jié)構(gòu)圖6UART串行口的結(jié)構(gòu)5.1.1串行口控制寄存器1.串行口1表1

串行口1相關(guān)的特殊功能寄存器地址B7B6B5B4B3B2BlB0復位值

98HSM0/FESM1SM2RENTB8RB8TIRI00000000SCON99H串行口1數(shù)據(jù)緩沖器xxxxxxxxSBUF87HSMODSMOD0LVDFPOFGF1GF0PDIDL00110000PCON8EHT0x12T1x12UART_M0x6T2RT2_C/T2x12EXTRAMS1ST200000000AUXR8AHT1的低8位00000000TL18BHT1的高8位00000000TH1D7HT2的低8位00000000T2LD6T2的高8位00000000T2H89HGATEC/MlM0GATEC/M1M000000000TMOD88HTF1TR1TF0TR0IE1IT1IE0IT000000000TCONA8HEAELVDEADCESET1EXIET0EX000000000IEB8HPPCAPLVDPADCPSPT1PX1PT0PX000000000IPA2HS1_S1S1_S0CCP_S1CCP_S0SPI_S1SPI_S00DPS00000000P_SW1(AUXR1)與串行口1有關(guān)的特殊功能寄存器包括:串行口1的控制寄存器、與波特率設置有關(guān)的定時器/計數(shù)器(T1/T2)相關(guān)寄存器以及與中斷控制相關(guān)的寄存器。5.1.1串行口控制寄存器1)串行口1控制寄存器SCON表1

串行口1相關(guān)的特殊功能寄存器串行口1控制寄存器SCON用于設定串行口1的工作方式、允許接收控制以及設置狀態(tài)標志。字節(jié)地址為98H,可進行位尋址。單片機復位時,所有位全為“0”。如表1。地址B7B6B5B4B3B2B1B0復位值SCON98HSM0/FESM1SM2RENTB8RB8TIRI000000005.1.1串行口控制寄存器1)串行口1控制寄存器SCONSM0SM1工作方式功 能波特率00方式08位同步移位寄存器fsys/12或fsys/201方式110位UART可變,取決于T1或T2的溢出率10方式211位UARTfsys/64或fsys/3211方式311位UART可變,取決于T1或T2的溢出率表2串行口1方式選擇位SM0/FE、SM1:PCON寄存器中的SMOD0位為“1”時,SM0/FE用于幀錯誤檢測。當檢測到一個無效停止位時,通過UART接收器設置該位,它由軟件清零。PCON寄存器中的SMOD0為“0”時,SM0/FE和SM1一起指定串行通信的工作方式。如表2。地址B7B6B5B4B3B2B1B0復位值SCON98HSM0/FESM1SM2RENTB8RB8TIRI000000005.1.1串行口控制寄存器1)串行口1控制寄存器SCONSM2:多機通信控制位,用于方式2和方式3。在方式2和方式3處于接收狀態(tài)時,若SM2=1,且接收到的第9位數(shù)據(jù)RB8為“0”時,不激活RI;若SM2=1,且RB8=1,置位RI標志。在方式2、方式3處于接收狀態(tài)時,若SM2=0,不論接收到的第9位RB8為“0”還是為“1”,RI都以正常方式被激活。REN:允許串行接收控制位。由軟件置位或清零。REN=1時,啟動接收;REN=0時,禁止接收。TB8:在方式2和方式3中,串行發(fā)送數(shù)據(jù)的第9位,由軟件置位或復位,可作為奇偶校驗位。在多機通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標識位。一般約定,作為地址幀時,TB8為“1”;作為數(shù)據(jù)幀時,TB8為“0”。RB8:在方式2和方式3中,是串行接收到的第9位數(shù)據(jù),作為奇偶校驗位或地址幀、數(shù)據(jù)幀的標識位。地址B7B6B5B4B3B2B1B0復位值SCON98HSM0/FESM1SM2RENTB8RB8TIRI000000005.1.1串行口控制寄存器1)串行口1控制寄存器SCONTI:發(fā)送中斷標志位。在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其他方式中,在發(fā)送停止位之初由硬件置位。TI是發(fā)送完一幀數(shù)據(jù)的標志,既可以用查詢的方法,也可以用中斷的方法來響應該標志;然后,在相應的査詢服務程序或中斷服務程序中,由軟件清除。RI:接收中斷標志位。在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其他方式中,在接收停止位的中間由硬件置位。RI是接收完一幀數(shù)據(jù)的標志,同TI一樣,既可以用查詢的方法,也可以用中斷的方法來響應該標志;然后,在相應的查詢服務程序或中斷服務程序中,由軟件清除。地址B7B6B5B4B3B2B1B0復位值SCON98HSM0/FESM1SM2RENTB8RB8TIRI000000005.1.1串行口控制寄存器2)輔助寄存器AUXR表3輔助寄存器AUXR的格式UART_M0x6:串行口1方式0通信速率設置位。UART_M0x6=0,串行口方式0的通信速率與傳統(tǒng)8051單片機一致,波特率為系統(tǒng)時鐘頻率的12分頻,即fSYS/12;UART_M0x6=1,串行口1方式0的通信速率是傳統(tǒng)8051單片機通信速率的6倍,波特率為系統(tǒng)時鐘頻率的2分頻,即fSYS/2。S1ST2:當串行口1工作在方式1、方式3時,S1ST2為串行口1波特率發(fā)生器選擇控制位。S1ST2=0時,選擇定時器T1為波特率發(fā)生器;S1ST2=1,選擇定時器T2為波特率發(fā)生器。T1x12、T2R、T2_C/

、T2x12:與定時器T1、T2有關(guān)的控制位。地址B7B6B5B4B3B2BlBO復位值AUXR8EHT0xl2T1xl2UART_.M0x6T2RT2_C/T2xl2EXTRAMS1ST2000000005.1.1串行口控制寄存器2.串行口2表4串行口2相關(guān)的特殊功能寄存器串行口2默認對應的發(fā)送、接收引腳是TxD2/P1.1、RxD2/P1.0,通過P_SW2設置S2_S控制位,串行口2的TxD2、RxD2硬件引腳可切換為P4.7、P4.6。與單片機串行口2有關(guān)的特殊功能寄存器有:單片機串行口2控制寄存器、與波特率設置有關(guān)的定時器/計數(shù)器T2的相關(guān)寄存器、與中斷控制相關(guān)的寄存器。地址B7B6B5B4B3B2BlBO復位值

9AHS2SM0—S2SM2S2RENS2TB8S2RB8S2TIS2RI0x000000S2CON9BH串行口2數(shù)據(jù)緩沖器xxxxxxxxS2BUFD7HT2的低8位00000000T2LD6HT2的高8位00000000T2H8EHT0x12Tlx12UART_M0x6T2RT2_C/`TT2x12EXTRAMS1ST200000000AUXRAFH一ET4ET3ES4ES3ET2ESPIES2x0000000IE2B5H一一一一PPWMFDPPWMPSPIPS2xxxx0000IP2BAH一一———S4_SS3_SS2_Sxxxxx000P_SW25.1.1串行口控制寄存器1)串行口2控制寄存器S2CON串行控制寄存器S2CON用于設定串行口2的工作方式、串行接收控制以及設置狀態(tài)標志。字節(jié)地址為9AH,其格式為:S2SM0:用于指定串行口2的工作方式,如表5.4所示,串行口2的波特率為T2定時器溢出率的四分之一。S2SM0工作方式功能波特率0方式08位UARTT2溢出率/41方式19位UART表5S2SM0說明地址B7B6B5B4B3B2BlB0復位值S2CON9AHS2SM0—S2SM2S2RENS2TB8S2RB8S2TTS2RI0x0000005.1.1串行口控制寄存器1)串行口2控制寄存器S2CONS2SM2:串行口2多機通信控制位,用于方式1。在方式1處于接收時,若S2SM2=1,且接收到的第9位數(shù)據(jù)S2RB8為“0”,不激活S2RI;若S2SM2=1,且S2RB8=1,置位S2RI標志。在方式1處于接收方式,若S2SM2=0,不論接收到的第9位S2RB8為“0”還是為“1”,S2RI都以正常方式被激活。S2REN:允許串行口2接收控制位。由軟件置位或清零。S2REN=1時,啟動接收;S2REN=0時,禁止接收。S2TB8:串行口2發(fā)送數(shù)據(jù)的第9位。在方式1中,由軟件置位或復位,可做奇偶校驗位。在多機通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標識位。一般約定,作為地址幀時,S2TB8為“1”;作為數(shù)據(jù)幀時,S2TB8為“0”。地址B7B6B5B4B3B2BlB0復位值S2CON9AHS2SM0—S2SM2S2RENS2TB8S2RB8S2TTS2RI0x0000005.1.1串行口控制寄存器1)串行口2控制寄存器S2CONS2RB8:在方式1中,是串行口2接收到的第9位數(shù)據(jù),作為奇偶校驗位或地址幀、數(shù)據(jù)幀的標識位。S2TI:串行口2發(fā)送中斷標志位。在發(fā)送停止位之初,由硬件置位。S2TI是發(fā)送完一幀數(shù)據(jù)的標志,既可以用查詢的方法,也可以用中斷的方法來響應該標志。然后,在相應的查詢服務程序或中斷服務程序中,由軟件清除。S2RI:串行口2接收中斷標志位。在接收停止位的中間,由硬件置位。S2RI是接收完一幀數(shù)據(jù)的標志,同S2TI一樣,既可以用查詢的方法,也可以用中斷的方法來響應該標志。然后,在相應的査詢服務程序或中斷服務程序中,由軟件清除。地址B7B6B5B4B3B2BlB0復位值S2CON9AHS2SM0—S2SM2S2RENS2TB8S2RB8S2TTS2RI0x0000005.1.1串行口控制寄存器2)串行口2數(shù)據(jù)緩沖器S2BUFS2BUF是串行口2的數(shù)據(jù)緩沖器,同SBUF一樣,一個地址對應兩個物理上的緩沖器。當對S2BUF寫操作時,對應的是串行口2的發(fā)送緩沖器,同時寫緩沖器操作串行口2的啟動發(fā)送命令;當對S2BUF讀操作時,對應的是串行口2的接收緩沖器,用于讀取串行口2串行接收進來的數(shù)據(jù)。3)串行口2的中斷控制IE2、IP2IE2的ES2位是串行口2的中斷允許位,“1”表示允許,“0”表示禁止。IP2的PS2位是串行口2的中斷優(yōu)先級的設置位,“1”表示高級,“0”表示低級。串行口2的中斷向量地址是0043H,其中斷號是8。5.1.1串行口控制寄存器3.串行口3表6串行口3相關(guān)的特殊功能寄存器串行口3默認對應的發(fā)送、接收引腳是TxD3/P0.l、RxD3/P0.0,通過設置P_SW2的S3_S控制位,串行口3的TxD3、RxD3硬件引腳可切換為P5.1、P5.0。與單片機串行口3有關(guān)的特殊功能寄存器有:單片機串行口3控制寄存器,與波特率設置有關(guān)的定時器/計數(shù)器T2、T3的相關(guān)寄存器,與中斷控制相關(guān)的寄存器地址B7B6B5B4B3B2BlBO復位值

ACHS3SM0S3ST3S3SM2S3RENS3TB8S3RB8S3TIS3RI00000000S3CONADH串行口3數(shù)據(jù)緩沖器ADH串行口3數(shù)據(jù)緩沖器xxxxxxxxS3BUFD7HT2的低8位D7HT2的低8位00000000T2LD6HT2的高8位D6HT2的高8位00000000T2H8EHT0x12T1x12UARTM0x6T2RT2_C/`TT2x12EXTRAMS1ST200000000AUXRD4HT3的低8位00000000T3LD5HT3的高8位00000000T3HD1HT4RT4_C/`TT4xl2T4CLKOT3RT3_C/`TT3x12T3CLKO00000000T4T3MAFH一ET4ET3ES4ES3ET2ESPIES2x0000000IE2BAH一一一一一S4_SS3_SS2_Sxxxxx000P_SW25.1.1串行口控制寄存器1)串行口3控制寄存器S3CON串行口3控制寄存器S3CON用于設定串行口3的工作方式、串行接收控制以及設置狀態(tài)標志。字節(jié)地址為ACH,單片機復位時,所有位全為0,其格式為:地址B7B6B5B4B3B2BlB0復位值S3CONACHS3SM0S3ST3S3SM2S3RENS3TB8S3RB8S3TIS3RI00000000S3SM0:用于指定串行口3的工作方式,如下表所示。S3SM0工作方式功能波特率0方式08位UARTT2溢出率/4,或T3溢出率/41方式19位UART表7S3SM0說明5.1.1串行口控制寄存器1)串行口3控制寄存器S3CON地址B7B6B5B4B3B2BlB0復位值S3CONACHS3SM0S3ST3S3SM2S3RENS3TB8S3RB8S3TIS3RI00000000S3ST3:串行口3選擇波特率發(fā)生器控制位。0:選擇定時器T2為波特率發(fā)生器,其波特率為T2溢出率的1/4。1:選擇定時器T3為波特率發(fā)生器,其波特率為T3溢出率的1/4。S3SM2:串行口3多機通信控制位,用于方式l。在方式1處于接收狀態(tài)時,若S3SM2=1,且接收到的第9位數(shù)據(jù)S3RB8為“0”時,不激活S3RI;若S3SM2=1,且S3RB8=1,置位S3RI標志。在方式1處于接收方式時,若S3SM2=0,不論接收到第9位數(shù)據(jù)S3RB8為“0”還是為“1”,S3RI都以正常方式被激活。5.1.1串行口控制寄存器1)串行口3控制寄存器S3CON地址B7B6B5B4B3B2BlB0復位值S3CONACHS3SM0S3ST3S3SM2S3RENS3TB8S3RB8S3TIS3RI00000000S3REN:允許串行口3串行接收控制位。由軟件置位或清零。S3REN=1時,啟動接收;S3REN=0時,禁止接收。S3TB8:串行口3發(fā)送數(shù)據(jù)的第9位。在方式1中,由軟件置位或復位,可做奇偶校驗位;在多機通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標識位,一般約定地址幀時S3TB8為1,數(shù)據(jù)幀時S3TB8為0。S3RB8:在方式1中,是串行口3接收到的第9位數(shù)據(jù),作為奇偶校驗位或地址幀、數(shù)據(jù)幀的標識位。5.1.1串行口控制寄存器1)串行口3控制寄存器S3CON地址B7B6B5B4B3B2BlB0復位值S3CONACHS3SM0S3ST3S3SM2S3RENS3TB8S3RB8S3TIS3RI00000000S3TI:串行口3發(fā)送中斷標志位。在發(fā)送停止位之初由硬件置位。S3TI是發(fā)送完一幀數(shù)據(jù)的標志,既可以用査詢的方法,也可以用中斷的方法來響應該標志。然后,在相應的査詢服務程序或中斷服務程序中,由軟件清除。S3RI:串行口3接收中斷標志位。在接收停止位的中間由硬件置位。S3RI是接收完一幀數(shù)據(jù)的標志,同S3TI一樣,既可以用查詢的方法,也可以用中斷的方法來響應該標志,然后,在相應的查詢服務程序或中斷服務程序中,由軟件清除。5.1.1串行口控制寄存器2)串行口3數(shù)據(jù)緩沖器S3BUFS3BUF是串行口3的數(shù)據(jù)緩沖器,同SBUF一樣,一個地址對應兩個物理上的緩沖器。當對S3BUF寫操作時,對應的是串行口3的發(fā)送緩沖器,同時寫緩沖器操作是串行口3的啟動發(fā)送命令;當對S3BUF讀操作時,對應的是串行口3的接收緩沖器,用于讀取串行口3串行接收的數(shù)據(jù)。3)串行口3的中斷控制IE2IE2的ES3位是串行口3的中斷允許位,“1”表示允許,“0”表示禁止。串行口3的中斷向量地址是008BH,其中斷號是17;串行口3的中斷優(yōu)先級固定為低級。5.1.1串行口控制寄存器4.串行口4表8串行口4相關(guān)的特殊功能寄存器串行口4默認對應的發(fā)送、接收引腳是TxD4/P0.3、RxD4/P0.2,通過設置P_SW2的S4_S控制位,串行口4的TxD4、RxD4硬件引腳可切換為P5.3、P5.2。與單片機串行口4有關(guān)的特殊功能寄存器有:單片機串行口4控制寄存器,與波特率設置有關(guān)的定時器/計數(shù)器T2、T4的相關(guān)寄存器,以及與中斷控制相關(guān)的寄存器地址B7B6B5B4B3B2BlBO復位值

84HS4SM0S4ST4S4SM2S4RENS4TB8S4RB8S4TIS4RI00000000S4CON85H串行口3數(shù)據(jù)緩沖器ADH串行口3數(shù)據(jù)緩沖器xxxxxxxxS4BUFD7HT2的低8位D7HT2的低8位00000000T2LD6HT2的高8位D6HT2的高8位00000000T2H8EHT0x12T1x12UARTM0x6T2RT2_C/`TT2x12EXTRAMS1ST200000000AUXRD2HT4的低8位00000000T4LD3HT4的高8位00000000T4HD1HT4RT4_C/`TT4xl2T4CLKOT3RT3_C/`TT3x12T3CLKO00000000T4T3MAFH一ET4ET3ES4ES3ET2ESPIES2x0000000IE2BAH一一一一一S4_SS3_SS2_Sxxxxx000P_SW25.1.1串行口控制寄存器1)串行口4控制寄存器S4CON串行口4控制寄存器S4CON用于設定串行口4的工作方式、串行接收控制以及設置狀態(tài)標志。字節(jié)地址為84H。單片機復位時,所有位全為“0”,其格式如下所示。S4SM0:用于指定串行口4的工作方式,如下表所示。表9S4SM0說明地址B7B6B5B4B3B2BlB0復位值S4CON84HS4SM0S4ST3S4SM2S4RENS4TB8S4RB8S4TIS4RI00000000S4SM0工作方式功能波特率0方式08位UARTT2溢出率/4,或T4溢出率/41方式19位UART5.1.1串行口控制寄存器1)串行口4控制寄存器S4CONS4ST3:串行口4選擇波特率發(fā)生器控制位。0:選擇定時器T2為波特率發(fā)生器,其波特率為T2溢出率的1/4。1:選擇定時器T4為波特率發(fā)生器,其波特率為T4溢出率的1/4。S4SM2:串行口4多機通信控制位,用于方式l。在方式1處于接收時,若S4SM2=1,且接收到的第9位數(shù)據(jù)S4RB8為“0”,不激活S4RI;若S4SM2=1,且S4RB8=1,置位S4RI標志。在方式1處于接收狀態(tài)下,若S4SM2=0,不論接收到第9位數(shù)據(jù)S4RB8為“0”還是為“1”,S4RI都以正常方式被激活。地址B7B6B5B4B3B2BlB0復位值S4CON84HS4SM0S4ST3S4SM2S4RENS4TB8S4RB8S4TIS4RI000000005.1.1串行口控制寄存器1)串行口4控制寄存器S4CONS4REN:允許串行口4接收控制位。由軟件置位或清零。S4REN=1時,啟動接收;S4REN=0時,禁止接收。S4TB8:串行口4發(fā)送數(shù)據(jù)的第9位。在方式1中,由軟件置位或復位,可做奇偶校驗位;在多機通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標識位。一般約定,作為地址幀時,S4TB8為“1”;作為數(shù)據(jù)幀時,S4TB8為“0”。S4RB8:在方式1中,是串行口4接收到的第9位數(shù)據(jù),作為奇偶校驗位或地址幀、數(shù)據(jù)幀的標識位。地址B7B6B5B4B3B2BlB0復位值S4CON84HS4SM0S4ST3S4SM2S4RENS4TB8S4RB8S4TIS4RI000000005.1.1串行口控制寄存器1)串行口4控制寄存器S4CONS4TI:串行口4發(fā)送中斷標志位。在發(fā)送停止位之初由硬件置位。S4TI是發(fā)送完一幀數(shù)據(jù)的標志,既可以用查詢的方法,也可以用中斷的方法來響應該標志。然后,在相應的查詢服務程序或中斷服務程序中,由軟件清除。S4RI:串行口4接收中斷標志位。在接收停止位的中間由硬件置位。S4RI是接收完一幀數(shù)據(jù)的標志,同S4TI一樣,既可以用查詢的方法,也可以用中斷的方法來響應該標志。然后,在相應的查詢服務程序或中斷服務程序中,由軟件清除。地址B7B6B5B4B3B2BlB0復位值S4CON84HS4SM0S4ST3S4SM2S4RENS4TB8S4RB8S4TIS4RI000000005.1.1串行口控制寄存器2)串行口4數(shù)據(jù)緩沖器S4BUFS4BUF是串行口4的數(shù)據(jù)緩沖器,同SBUF一樣,一個地址對應兩個物理上的緩沖器。當對S4BUF寫操作時,對應的是串行口4的發(fā)送緩沖器,同時寫緩沖器操作是串行口4的啟動發(fā)送命令;當對S4BUF讀操作時,對應的是串行口4的接收緩沖器,用于讀取串行口4串行接收的數(shù)據(jù)。3)串行口4的中斷控制IE2IE2的ES4位是串行口4的中斷允許位,“1”表示允許,“0”表示禁止。串行口4的中斷向量地址是0093H,其中斷號是18;串行口4的中斷優(yōu)先級固定為低級。5.1.2特殊功能寄存器PCONPCON主要是為單片機的電源控制而設置的專用寄存器,不可以位尋址,字節(jié)地址為87H,復位值為30H。其中,SMOD、SMOD0與串口控制有關(guān),其格式與說明如下所示。SMOD:SMOD為波特率倍增系數(shù)選擇位。在方式1、方式2和方式3時,串行通信的波特率與SMOD有關(guān)。當SMOD=0時,通信速度為基本波特率;當SMOD=1時,通信速度為基本波特率的2倍。SMOD0:幀錯誤檢測有效控制位。SMOD0=1,SCON寄存器中的SM0/FE用于幀錯誤檢測;SMOD0=0,SCON寄存器中的SM0/FE用于SM0功能,與SM1一起指定串行口1的工作方式。地址B7B6B5B4B3B2BlB0復位值PCON87HSMODSMOD0LVDFPOFGF1GF0PDIDL001100005.2串行口工作方式1.串行口1的工作方式STC15W4K32S4單片機串行通信有4種工作方式。當SMOD0=0時,通過設置SCON中的SM0、SM1位來選擇。1)方式0在方式0下,串行口用作同步移位寄存器,其波特率為fSYS/12(UART_M0x6為“0”時)或fSYS/2(UART_M0x6為“1”時)。串行數(shù)據(jù)從RxD(P3.0)端輸入或輸出,同步移位脈沖由TxD(P3.1)送出。這種方式常用于擴展I/O口。5.2串行口工作方式1.串行口1的工作方式STC15W4K32S4單片機串行通信有4種工作方式。當SMOD0=0時,通過設置SCON中的SM0、SM1位來選擇。2)方式1串行口工作在方式1下時,串行口為波特率可調(diào)的10位通用異步UART,—幀信息包括1位起始位(0)、8位數(shù)據(jù)位和1位停止位(1)。5.2串行口工作方式1.串行口1的工作方式STC15W4K32S4單片機串行通信有4種工作方式。當SMOD0=0時,通過設置SCON中的SM0、SM1位來選擇。3)方式2串行口工作在方式2,串行口為11位UART。一幀數(shù)據(jù)包括1位起始位(0)、8位數(shù)據(jù)位、1位可編程位(TB8)和1位停止位(1)。5.2串行口工作方式1.串行口1的工作方式STC15W4K32S4單片機串行通信有4種工作方式。當SMOD0=0時,通過設置SCON中的SM0、SM1位來選擇。4)方式3串行口工作在方式3,串行口同方式2—樣為11位UART。方式2與方式3的區(qū)別在于波特率的設置方法不同,方式2的波特率為fSYS/64(SMOD為“0”)或fSYS/32(SMOD為“1”);方式3數(shù)據(jù)傳輸?shù)牟ㄌ芈释绞?一樣,取決于定時器T1的溢出率或T2的溢出率。對于以方式3發(fā)送的過程與接收過程,除發(fā)送、接收速率不同以外,其他過程和方式2完全一致。因方式2和方式3在接收過程中,只有當SM2=0或SM2=1且接收到的RB8為“1”時,才會置位RI,向CPU申請中斷請求接收數(shù)據(jù);否則,不會置位RI標志,接收數(shù)據(jù)丟失,因此,方式2和方式3常用于多機通信中。5.2串行口工作方式2.串行口的波特率

5.2串行口工作方式2.串行口的波特率

5.3串行口通信技術(shù)應用流水燈開關(guān)量指示主從多級通信系統(tǒng)5.3.1應用串行口控制流水燈例1:利用串行口工作在方式0,外擴74LS164點亮8位LED,完成流水燈功能。圖7流水燈電路連接圖5.3.1應用串行口控制流水燈例1:利用串行口工作在方式0,外擴74LS164點亮8位LED,完成流水燈功能。程序:#include<system.h>#include<intrins.h>sbitLED=P1^0;unsignedchari=0;voiddelay_ms(unsignedintz){unsignedintx,y,mid;

mid=(unsignedint)((float)fosc*z/Fre_Div);

for(x=mid;x>0;x--)

for(y=123;y>0;y--);}

main(){unsignedchari=0,j=0x7f;

CLK_DIV&=~0x07;

SCON=0x00;

P1M1=0x00;

P1M0=0x00;

while(1)

{SBUF=j;while(!TI);TI=0;LED=~LED;j=_cror_(j,1);delay_ms(500);}}5.3.1應用串行口控制流水燈例1:利用串行口工作在方式0,外擴74LS164點亮8位LED,完成流水燈功能。延時程序:#include"system.h"voiddelay_ms(unsignedintz){unsignedintx,y,mid;mid=(unsignedint)((float)fosc*z/Fre_Div);for(x=mid;x>0;x--) for(y=123;y>0;y--);} 5.3.2開關(guān)量指示電路的設計例2:有U1和U2兩個STC15W4K32S4單片機,U2單片機讀入其P1口的開關(guān)狀態(tài)后通過串行口發(fā)送到U1單片機,U1單片機將接收到的數(shù)據(jù)送其P1口,通過發(fā)光二極管顯示。圖8開關(guān)量指示電路連接圖5.3.2開關(guān)量指示電路的設計分析:1.方式1發(fā)送串行口以方式1發(fā)送時,數(shù)據(jù)由TXD引腳輸出。在發(fā)送中斷標志TI=0時,任何一次“寫入SBUF”的操作,都可啟動一次發(fā)送,串行口自動在數(shù)據(jù)前插入一個起始位(0)向TXD引腳輸出,然后在移位脈沖作用下,數(shù)據(jù)依次由TXD引腳發(fā)出,在數(shù)據(jù)全部發(fā)送完畢后,置TXD=1(作為停止位)、置TI=1(用以通知CPU數(shù)據(jù)已發(fā)送完畢)。2.方式1接收串行口以方式1接收時,數(shù)據(jù)從RXD引腳輸入。在允許接收的條件下(REN=1),當檢測到RXD端出現(xiàn)由“1”到“0”的跳變時,即啟動一次接收。當8位數(shù)據(jù)接收完,并滿足下列條件:1)RI=02)SM2=0或接收到的停止位為1則將接收到的8位數(shù)據(jù)裝入SBUF、停止位裝入RB8,并置位RI。如果不滿足上述兩個條件,就會丟失已接收到的一幀信息。5.3.2開關(guān)量指示電路的設計分析:3.串行口中斷初始化設置在串行口工作在方式1時,需要進行一些設置,主要是設置產(chǎn)生波特率的定時器T1、串行口控制和中斷控制。具體操作的步驟如下:1)確定T1的工作方式(設置TMOD寄存器);2)計算T1的初值,送入TH1、TL1;3)啟動T1計時(置TR1=1);4)設置串行口為工作方式1(設置SCON寄存器);5)串行口工作采用中斷方式時,要進行中斷設置(IE、IP寄存器)。5.3.2開關(guān)量指示電路的設計U1單片機通信接收程序:#include<system.h>#include<intrins.h>sbitLED=P1^0;unsignedchari=0;main(){unsignedchari=0;CLK_DIV&=~0x07;SCON=0x50; AUXR|=0x01; AUXR&=0xFB; T2L=0xE8; T2H=0xFF; AUXR|=0x10; ES=1;EA=1;while(1){}}voidser(void)interrupt4{if(RI){

RI=0; P1=SBUF;} if(TI) TI=0;} 5.3.2開關(guān)量指示電路的設計U2單片機通信發(fā)送程序:#include<system.h>#include<intrins.h>sbitLED=P1^0;unsignedchari=0;main(){unsignedchari=0; CLK_DIV&=~0x07; SCON=0x50; AUXR|=0x01; AUXR&=0xFB;

T2L=0xE8; T2H=0xFF; AUXR|=0x10; while(1) {SBUF=P1;

while(!TI);

TI=0;

delay_ms(50);

}}延時程序:#include"system.h"voiddelay_ms(unsignedintz){unsignedintx,y,mid;mid=(unsignedint)((float)fosc*z/Fre_Div);for(x=mid;x>0;x--) for(y=123;y>0;y--);} 5.3.3主從多級通信系統(tǒng)的構(gòu)建例3:主從式多機通信系統(tǒng)有一個主機和兩個從機,主機根據(jù)控制開關(guān)的狀態(tài),向要訪問的從機發(fā)送地址,地址相符的從機和主機進行通信,然后主機根據(jù)開關(guān)狀態(tài)向從機發(fā)送數(shù)據(jù),從機將接收到的數(shù)據(jù)通過點亮發(fā)光二極管的方式顯示。圖9主從式多機通信系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論