




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1,PIC單片機技術,電子信息與電氣工程系 通信教研室,2,第9章 串行通信及通用接收發(fā)送器模塊,串行擴展通信接口是單片機與其它計算機之間進行數(shù)據(jù)交換的重要渠道,F(xiàn)877單片機主要配置有2種形式的串行通信模塊: 主控同步串行通信MSSP (Master Synchronous Serial Port) 通用同步/異步收發(fā)器USART (Universal Synchronous/Asynchronous Receiver Transmitter )。 MSSP模塊主要應用于系統(tǒng)內(nèi)部近距離的串行通信擴展,如SPI、I2C模式。USART模塊主要應用于系統(tǒng)之間的遠距離串行通信,在外圍接口電路及計算
2、機通信中應用相當廣泛。,3,9.1 SPI串行通信模塊,SPI(Serial Peripheral Interface)是一種單片機外設芯片同步串行擴展接口,由摩托羅拉公司推出。采用SPI接口外圍器件的特點是引腳性價比高等優(yōu)點,因而在市場上得到了廣泛的應用。,4,9.1 SPI串行通信模塊,數(shù)據(jù)以字節(jié)為單位傳送,每次傳1個或多個字節(jié)。從高位MSB開始到低位LSB結束。 注:SDI、SDO、SS、SCK的引腳。,5,9.1.1 SPI模式下相關寄存器,在SPI模式下,有關的寄存器共有10個,其中無編址的只有一個SSPSR。這10個寄存器中有6個寄存器是與其它模塊共用的。另外有4個寄存器與MSSP
3、模塊相關,它們是與I2C模式共用的。,6,1SSPBUF(收/發(fā)數(shù)據(jù)緩沖器)13H,2SSPSTAT(同步串行狀態(tài)寄存器),7,Bit0/BF:緩沖器滿標志位,被動參數(shù)。 SPI接收狀態(tài)下: 0:緩沖器空; 1:緩沖器滿。 Bit6/CKE:SPI時鐘沿選擇和I2C總線輸入電平選擇位。 在CKP = 0,空閑時鐘電平為低時: 0:SCK的下降沿發(fā)送數(shù)據(jù); 1:SCK的上升沿發(fā)送數(shù)據(jù)。 在CKP = 1, 空閑時鐘電平為高時: 0:SCK的上升沿發(fā)送數(shù)據(jù); 1:SCK的下降沿發(fā)送數(shù)據(jù)。 Bit7/SMP:SPI采樣控制位兼I2C總線轉(zhuǎn)換率控制位。 在SPI主控方式下: 0:在輸出數(shù)據(jù)的中間采樣輸
4、入數(shù)據(jù); 1:在輸出數(shù)據(jù)的末尾采樣輸入數(shù)據(jù)。 注意:在SPI從動方式下,SMP位必須置位。,8,3SSPCON(同步串行控制寄存器),Bit3-Bit0/SSPM3-SSPM0:同步串行口MSSP方式選擇位。,9,Bit4/CPK:空閑時鐘電平選擇位。 0:表示空閑時時鐘停留在低電平; 1:表示空閑時時鐘停留在高電平。 Bit5/SSPEN:同步串口MSSP使能位。 在SPI模式下時,必須確保SCK、SDO設定為輸出狀態(tài),而SDI、SS設定為輸入狀態(tài)。 0:關閉串行端口功能,且設定SCK、SOD、SDI和SS為普通數(shù)字I/O腳; 1:允許串行端口工作,且設定SCK、SOD、SDI和SS為SPI
5、接口專用。,10,Bit6/SSPOV:接收溢出標志位,被動參數(shù)。 0:未發(fā)生接收溢出; 1:發(fā)生接收溢出。 注意:所指的接收溢出是緩沖器SSPBUF中數(shù)據(jù)還未取出時,移位寄存器SSPSR中又收到新的數(shù)據(jù),原SSPSR中的數(shù)據(jù)丟失。 Bit7/WCOL:寫操作沖突檢測位,被動參數(shù)。必須用軟件予以清零。 在SPI從動方式下: 0:未發(fā)生沖突; 1:發(fā)生沖突。 注意:發(fā)生寫操作沖突,是指移位寄存器SSPSR正在發(fā)送前一個數(shù)據(jù)字節(jié)時,又有新數(shù)據(jù)寫入SSPBUF。,11,4SSPSR移位寄存器,直接從端口引腳接收或發(fā)送數(shù)據(jù),將已經(jīng)成功接收到的數(shù)據(jù)送到緩沖器SSPBUF中,或者從緩沖器SSPBUF讀取將
6、發(fā)送的數(shù)據(jù)。,12,9.1.2 SPI模式工作原理,要發(fā)送的數(shù)據(jù)通過數(shù)據(jù)總線送入發(fā)送緩沖器,然后自動傳送到移位寄存器中;移位寄存器接收到數(shù)據(jù)自動傳送到接收緩沖器,然后由程序讀取收到的數(shù)據(jù);移位寄存器有移入和移出兩個端口,分別與收和發(fā)兩條通信線路連接,負責收發(fā)數(shù)據(jù)。,13,SPI模式電路的基本結構,14,SPI工作原理示意圖,15,【例題9-1】如圖9-5為8位數(shù)碼顯示電路,利用F877的SPI同步串行功能實現(xiàn)數(shù)碼管數(shù)據(jù)串行傳送,并通過8個74LS164組成的移位電路,達到數(shù)碼數(shù)據(jù)的靜態(tài)顯示。 要求: 單片機數(shù)據(jù)存儲器60H67H定義8個數(shù)碼管的數(shù)據(jù)顯示緩沖器。,16,17,ORG 0000H
7、banksel TRISC movlw B11010111;定義RC3/SCK、RC5/SDO輸出、RC4/SDI輸入 movwf TRISC clrf SSPSTAT ;清除SMP、CKE位 banksel SSPCON movlw B00110010 movwf SSPCON - XSH movlw 67H;設置顯示緩沖區(qū)的數(shù)據(jù)地址 movwf FSR; LOOP movf INDF,W;取出數(shù)據(jù) call BMA;查碼表 call OUTXSH;利用SPI方式輸出編碼數(shù)據(jù) decf FSR btfss FSR,4 ;直到8位數(shù)碼全部輸出 goto LOOP goto end,18,OUT
8、XSH movwf SSPBUF ;送至SSPBUF后開始逐位發(fā)送 LOOP1 banksel SSPSTAT btfss SSPSTAT,BF ;是否發(fā)送完畢。注發(fā)送數(shù)據(jù)同時接收無效數(shù)據(jù) goto LOOP1; 否,繼續(xù)查詢 banksel SSPBUF movf SSPBUF,W ;移空SSPBUF return - BMA 略 return end,19,9.2 I2C串行通信模式,1980年PHILIPS公司首創(chuàng)I2C(Inter Integrated Circuit Bus)總線規(guī)范,已成為一種串行總線事實上的工業(yè)標準。I2C總線是一種高性能芯片間串行同步傳輸總線,被大量的用作系統(tǒng)內(nèi)
9、部的電路板級總線。 它定義了兩根信號線,串行數(shù)據(jù)線SDA和串形時鐘線SCL,可實現(xiàn)雙工同步數(shù)據(jù)傳輸,能夠極其方便的構成多機系統(tǒng)和外圍器件擴展系統(tǒng)。,20,9.2.1 I2C串行通信模式,I2C總線的數(shù)據(jù)傳輸過程,在一次通信過程中,如主控器為發(fā)送器則稱主控發(fā)送器,而被控器為接收器則稱被控接收器;如主控器為接收器則稱主控接收器,而被控器為發(fā)送器則被控發(fā)送器。,21,1I2C數(shù)據(jù)格式,I2C數(shù)據(jù)格式有五部分組成:啟動信號(SCL=1,SDA從高到低);被控器地址(可7位或10位);R/ W信號;若干個數(shù)據(jù)字節(jié);停止信號(SCL=1,SDA從低到高)。,22,主控器向被控器寫數(shù)據(jù),23,主控器向被控器
10、讀數(shù)據(jù),24,2I2C地址設定,在I2C總線系統(tǒng)中的器件,一般都有一個專用的7位從器件地址碼。地址碼分為兩部分,A6、A5、A4、A3為器件類型碼。如存貯器為:1010,LCD點陣顯示器啟動器為:0111等等,不可更改統(tǒng)一規(guī)定。A2、A1、A0可由器件改變,所以同一類器件在I2C總線系統(tǒng)中最多能接8個。,25,10位地址格式,其中A9、A8是10位地址的高2位。,26,3數(shù)據(jù)傳遞,主控器發(fā)送數(shù)據(jù),被控器接收數(shù)據(jù)的通信過程如下: (1)主控器在檢測到總線空閑的狀況下,首先發(fā)送一個啟動S信號,將數(shù)據(jù)線拉低; (2)接著發(fā)送一個地址字節(jié)(包含著7位地址碼和一位讀/寫位。1為讀,0為寫(設為寫); (
11、3)掛在同一I2C專線上的所有從動器件將主動與自身的識別碼進行比較,只有與之匹配的從動器件才會回送一個應答信號(ACK=0)。這時主、從動器件之間建立一條專向數(shù)據(jù)通道; (4)在主控器收到該應答位后開始發(fā)送第一個數(shù)據(jù)字節(jié); (5)在被控器收到第一個數(shù)據(jù)字節(jié)后又回送一個應答位ACK = 0; (6)在主控器收到應答位后開始發(fā)送第二個數(shù)據(jù)字節(jié); (7)被控器收到第二個數(shù)據(jù)字節(jié)后再返送一個(非)應答位(NACK=1)ACK=0; (8)在主控器將所需發(fā)送的全部數(shù)據(jù)(在此假設是兩個字節(jié))發(fā)送完畢后,就發(fā)送一個停止P信號時序,結束整個通信過程,并且釋放總線,使總線返回空閑狀態(tài)。,27,28,9.2.2
12、I2C總線模式下相關的寄存器,與I2C總線有關的寄存器共有12個。其中,有6個寄存器(INTCON、PIR1、PIE1、PRI2、PIE2、TRISC)是與單片機其他模塊共用。 屬于I2C總線專用的兩個寄存器SSPCON2和SSPADD。,29,1SSPSTAT同步串口狀態(tài)寄存器,SSPSTAT用來記錄MSSP模塊的各種工作狀態(tài):,30,Bit0/BF:緩沖器已滿標志位,被動參數(shù)。 在I2C總線方式下接收時: 0:緩沖器SSPBUF還為空; 1:緩沖器SSPBUF已經(jīng)滿。 在I2C總線方式下發(fā)送時: 0:數(shù)據(jù)發(fā)送已完成(不含應答和停止位),緩沖器SSPBUF已經(jīng)空; 1:數(shù)據(jù)正在發(fā)送(不含應答
13、和停止位),緩沖器SSPBUF還是滿的。 Bit1/UA:地址更新標志位(I2C總線10位尋址方式),由硬件自動設置。 0:不需要更新SSPADD寄存器中的地址; 1:需要更新SSPADD寄存器中的地址。,31,Bit2/R/W:讀寫信息位(僅用于I2C總線方式)。 該位記錄最近一次地址匹配后,從地址字節(jié)中獲取的讀/寫狀態(tài)信息。它與SEN、RSEN、PEN、RCEN或ACKEN位一起,將用于顯示MSSP是否處于空閑狀態(tài)。該位僅僅從地址匹配到下一個啟動位或停止位或非應答位被檢測到的期間有效。 在I2C被控方式下: 0:寫操作; 1:讀操作。 在I2C主控方式下: 0:不在進行發(fā)送; 1:正在進行
14、發(fā)送。,32,Bit3/S:啟動位,用于I2C總線方式,當SSPEN = 0, MSSP被關閉,該位被自動清零。 0:當前沒有檢測到啟動位; 1:當前檢測到了啟動位(單片機復位時該位為0)。 Bit4/P:停止位,僅用于I2C總線方式,當SSPEN = 0,MSSP被關閉時,該位被自動清零。 0:表示當前沒有檢測到停止位; 1:表示當前檢測到了停止位(單片機復位時該位為0)。 Bit5/D/A:數(shù)據(jù)/地址標志位(I2C總線規(guī)范有效)。 0:當前接收或發(fā)送的字節(jié)是地址; 1:當前接收或發(fā)送的字節(jié)是數(shù)據(jù)。,33,Bit6/CKE:I2C總線輸入電平規(guī)范選擇位或SPI時鐘沿選擇位。 在I2C主控和被
15、控方式下: 0:輸入電平遵循I2C總線規(guī)范; 1:輸入電平遵循SMBus總線規(guī)范。 Bit7/SMP:I2C總線傳送率控制位或SPI采樣控制位,主動參數(shù)。 在I2C主控和被控方式下: 0:傳送率為快速速度模式(400kHz); 1:傳送率為標準速度模式(100kHz)。,34,2SSPCON同步串口控制寄存器,SSPCON用來對MSSP模塊的多種功能和指標進行控制:,35,Bit3-Bit0/SSPM3-SSPM0:同步串口MSSP方式選擇位,36,Bit4/CKP:時鐘極性選擇位(對于SPI模式而言)。主動參數(shù) 在I2C被控方式下,SCL時鐘使能位(I2C主控下沒有用): 0:將時鐘SCL線
16、拉低并保持,以延長時鐘周期,來確保數(shù)據(jù)建立時間; 1:時鐘正常工作。 Bit5/SSPEN:同步串口MSSP使能位。 主動參數(shù) 0:禁止串行通信功能,設定SDA和SCL為普通數(shù)字I/O引腳; 1:允許串行端口工作,設定SDA和SCL為I2C總線專用引腳。 Bit6/SSPOV:接收溢出標志位。被動參數(shù) 當接收溢出時,SSPBUF前一個數(shù)據(jù)還沒被取走,又收到了新數(shù)據(jù); 在發(fā)送方式下此位無效,必須用軟件清零。 0:未發(fā)生接收溢出; 1:發(fā)生接收溢出。 Bit7/WCOL:寫操作沖突檢測位。 被動參數(shù) 當發(fā)生沖突時,I2C總線的狀態(tài)還沒有準備好時,試圖向SSPBUF緩 沖器寫入數(shù)據(jù),WCOL = 1
17、,必須用軟件清零。 0:未發(fā)生沖突; 1:發(fā)生沖突。,37,3SSPADD從動器件地址/波特率寄存器,在I2C主控工作方式下,該寄存器被用作波特率發(fā)生器的定時常數(shù)裝載寄存器。,在I2C被控器工作方式下,用來存放從動器件的地址。在10位尋址方式下,程序需要寫入高8位字節(jié)和低8位字節(jié)地址信息。注:分兩次寫入。,38,4 同步串口控制寄存器2-SSPCON2,主要是為增強MSSP模塊I2C總線模式的主控器功能而新增加的。,39,Bit0/SEN:啟動信號時序發(fā)送使能位。 0:在I2C傳送線路上未出現(xiàn)啟動信號時序; 1:在I2C傳送線路上已出現(xiàn)啟動信號(硬件自動清零)。 Bit1/RSEN:重啟動信號
18、時序發(fā)送使能位。 0:在I2C傳送線路上未出現(xiàn)重啟動信號時序; 1:在I2C傳送線路上已出現(xiàn)重啟動信號(硬件自動清零)。 Bit2/PEN:停止信號時序發(fā)送使能位。 0:在I2C傳送線路上未出現(xiàn)停止信號時序; 1:在I2C傳送線路上已出現(xiàn)停止信號時序(硬件自動清零)。 Bit3/RCEN:接收使能位。主動參數(shù) 0:禁止I2C接收模式; 1:使能I2C接收模式。 Bit4/ACKEN:應答信號時序發(fā)送使能位,在I2C主控接收方式下: 0:表示不在SDA和SCL引腳上建立和發(fā)送應答信號時序; 1:表示在SDA和SCL上建立和發(fā)送一個帶ACKDT的應答信號(硬件自動清零)。,40,Bit5/ACKD
19、T:應答信息位。 在I2C主控接收方式下,在一個字節(jié)收完之后,主控器軟件應返送一個應答信號,該位就是用戶軟件寫入的將被返送的值: 0:將發(fā)送有效應答位(ACK); 1:將發(fā)送非應答位(NACK)。 Bit6/ACKSTAT:應答狀態(tài)位。 在I2C主控方式下,硬件自動接收來自被控器的應答信號 0:收到來自被控接收器的有效應答位(或表示位); 1:沒有收到來自被控接收器的有效應答位(或表示為NACK)。 Bit7/GCEN:通用呼叫地址尋址使能位,主動參數(shù)。 0:禁止以通用呼叫地址尋址; 1:當SSPSTAT中收到通用呼叫地址(00H)時允許中斷。,41,9.2.3 I2C主控模式,對SSPCON
20、寄存器中的相應SSPM置位和清零,對SSPEN置位即可使能主控工作方式,控制工作方式使能后,用戶有以下六種選擇 : 送啟動信號到SDA和SCL(將SEN置位); 送重復啟動信號到SDA和SCL(將RSEN置位); 寫SSPBUF寄存器啟動數(shù)據(jù)或地址的傳送; 送結束信號到SDA和SCL(將PEN置位); 設置I2C端口以接收數(shù)據(jù); 數(shù)據(jù)字節(jié)接收完成后,發(fā)出應答信號。,42,I2C在主控基本結構模塊,43,9.2.4 I2C從動模式,當I2C工作在從動方式時,SDA和SCL引腳必須設置為輸入,如果需要發(fā)送時,MSSP模塊強行將輸入狀態(tài)改為輸出狀態(tài)。在地址匹配后,收到傳送的數(shù)據(jù)后,將自動產(chǎn)生ACK,
21、并將SSPSR中的數(shù)據(jù)傳入SSPBUF。,44,I2C從動方式電路模塊結構,45,【例題9-5】圖9-5 利用RC6和RC7引腳組成一個I2C同步串行功能,實現(xiàn)對24LC515EEPROM的串行數(shù)據(jù)傳送。 RC6SCL、RC7SDA 編程要求:將64個數(shù)據(jù)00H-3FH存入24LC515的0000H-003FH單元中。 注:24LC515芯片本身支持I2C同步串行通信。地址為兩個字節(jié)。,46,47,List P=16F877 Include “P16F877.INC” DEVICE EQU 2CH; 用于存放設備地址 TXBUF EQU 28H; 發(fā)送寄存器 ADDRH EQU 2AH; 24
22、LC515地址的高字節(jié) ADDRL EQU 2BH; 24LC515地址的低字節(jié) CNT EQU 27H; 存放一個字節(jié)的位數(shù)8 COUNTER EQU 26H; 用于存放循環(huán)變量 ORG 0000H START movlw 0A8H; 10101000 定義設備地址,最后一位為R/W movwf DEVICE movlw 00H ;定義24LC515地址的高字節(jié) movwf ADDRH movlw 00H ;定義24LC515地址的低字節(jié) movwf ADDRL - CALL WRBYTE ; 發(fā)送子程序 . . .,48,- ;向24LC515寫入數(shù)據(jù)子程序 WRBYTE movf DEV
23、ICE,W movwf TXBUF ;設備地址送TXBUF call BSTART ;發(fā)送起始位 call TX ;發(fā)送一個字節(jié)(發(fā)送設備地址) - movf ADDRH,W ; movwf TXBUF call TX ;發(fā)送一個字節(jié)(發(fā)送芯片地址高8位) movf ADDRL,W ; movwf TXBUF call TX ;發(fā)送一個字節(jié)(發(fā)送芯片地址低8位) - movlw 00H movwf COUNTER,49,WRLOOP movf COUNTER,W movwf TXBUF call TX ; 發(fā)送一個字節(jié) incf COUNTER ; btfss COUNTER,6; 是否已發(fā)送
24、64個數(shù) goto WRLOOP call BSTOP ;調(diào)用發(fā)送停止位 call W_END ;調(diào)用發(fā)送結束 retlw 00H; -,50,- ;發(fā)送起始位子程序 BSTART bsf PORTC,SCL ; SCL置高電平 bsf PORTC,SDA ; SDA置高電平 banksel TRISC movlw B00111111; 設置SCL、SDA為輸出 banksel PORTC NOP 延時5us bcf PORTC,SDA ;SDA從高到低(啟動信號) NOP 延時5us bcf PORTC,SCL ;SCL置低電平 retlw 00H -,51,- ;字節(jié)發(fā)送子程序 TX mo
25、vlw 08H movwf CNT ;一個字節(jié)8個位,循環(huán)8次 TXLP banksel TRISC mowlw B00111111 ;設置SCL、SDA全為輸出 movwf TRISC - banksel PORTC btfss TXBUF,7 ;判斷發(fā)送TXBUF第7位(最高位先發(fā)送) goto BIT0 bsf PORTC,SDA ;發(fā)送1,SDA置高電平 goto CLKOUT BIT0 bcf PORTC,SDA ;發(fā)送0,SDA置低電平 - CLKOUT bsf PORTC,SCL ;SCL置高電平 nop 延時5us bcf PORTC,SCL ;SCL置低電平 rlf TXBU
26、F,f ;發(fā)送緩沖器左移一位 decfz CNT,f ;是否完成一個字節(jié)8個位的發(fā)送? goto TXLP ;否,繼續(xù),52,;-接下來準備接收ACK banksel TRISC movlw B10111111 ; SCL為輸出,SDA為輸入 movwf TRISC banksel PORTC ACK nop nop bcf PORTC,SCL ; SCL置低電平 nop nop nop bsf PORTC,SCL ; SCL置高電平 nop nop btfsc PORTC,SDA ;判斷SDA為0或1 (ACK) goto ACK ;沒有收到24LC515的反饋信號 bcf PORTC,SC
27、L ; SCL置低電平 retlw 00H -,53,- ;發(fā)送停止位子程序 BSTOP bcf PORTC,SDA ; SDA置低電平 banksel TRISC movlw B00111111 ; SCL、SDA為輸出 movwf TRISC - banksel PORTC bcf PORTC,SCL ;SCL置低電平 nop nop nop ;延時3us,等待電平拉低 bsf PORTC,SCL ;SCL置高電平 nop nop nop ;延時3us,等待電平拉高 bsf PORTC ,SDA ;SDA置高電平 nop retlw 00H,54,9.3 USART串行通信模塊,PIC系列
28、芯片中,片內(nèi)除了含有同步串行口SSP(SPI,I2C)外,還有一個串行通信接口SCI。這是一個通用同步異步收發(fā)器,簡稱USART,它是計算機最常用的通信接口之一。 USART可工作于如下三種方式:全雙工異步方式;半雙工同步主控方式;半雙工同步從動方式。,55,9.3.1與USART模塊相關的寄存器,1發(fā)送狀態(tài)兼控制寄存器:TXSTA 2接收狀態(tài)兼控制寄存器:RCSTA 3USART發(fā)送緩沖寄存器: TXREG 4USART接收緩沖寄存器 :RCREG 5PIE寄存器 6PIR寄存器,56,1發(fā)送狀態(tài)兼控制寄存器TXSTA,57,Bit0/TX9D:發(fā)送數(shù)據(jù)的第9位(9位數(shù)據(jù)幀結構)。 0:不發(fā)
29、送9位數(shù)據(jù); 1:發(fā)送9位數(shù)據(jù)幀。 Bit1/TRMT:發(fā)送移位寄存器(TSR)“空”標志位。 0:發(fā)送移位寄存器滿; 1:發(fā)送移位寄存器空。 Bit2/BRGH:高波特率選擇位。 異步模式下: 0:低速; 1:高速。 同步方式下,未用。 Bit4/SYNC:USART同步/異步模式選擇位。 0:選擇異步模式(USAT); 1:選擇同步模式(USRT)。,58,Bit5/TXEN:發(fā)送使能位。 0:關閉發(fā)送功能; 1:使能發(fā)送功能。 Bit6/TX9:發(fā)送數(shù)據(jù)長度選擇位。8位數(shù)據(jù)加1位校驗或標識位。 0:8位數(shù)據(jù)位發(fā)送; 1:9位數(shù)據(jù)發(fā)送。 Bit7/CSRC:時鐘源選擇位。 同步模式下: 0
30、:選擇被控(從屬)模式(時鐘來自外部輸入信號); 1:選擇主控模式(時鐘來自內(nèi)部波特率發(fā)生器)。 異步模式下,未用。,59,2. 接收狀態(tài)兼控制寄存器RCSTA,Bit0/RX9D:所接收數(shù)據(jù)的第9位,可作校驗位或標識位等。 Bit1/OERR:溢出標志位(overruan error bit )。 0:未發(fā)生溢出錯誤; 1:發(fā)生了溢出錯誤。 Bit2/FERR:幀格式錯誤標志位,被動參數(shù)。 0:無幀格式錯誤; 1:有幀格式錯誤。,60,Bit3/ADDEN:地址匹配檢測使能位; 接收數(shù)據(jù)選擇9位時,該位才起作用。 0:取消地址匹配檢測功能; 1:啟用地址匹配檢測功能。 Bit4/CREN:連
31、續(xù)接收使能位。 異步模式下: 0:禁止連續(xù)接收功能; 1:使能連續(xù)接收功能。 同步模式下: 0:關閉連續(xù)接收; 1:使能連續(xù)接收,直到該未被清0為止。優(yōu)先于SREN位。,61,Bit5/SREN:單字節(jié)接收使能位。 同步方式下: 0:禁止單字節(jié)接收功能; 1:使能單字節(jié)接收功能。 異步方式下未用,并且在同步從屬接收方式下該位也無用。接收完成后該位即被清零。 Bit6/RX9:接收數(shù)據(jù)長度選擇位。 0:選擇接收8位數(shù)據(jù); 1:選擇接收9位數(shù)據(jù)。 Bit7/SPEN:串行端口使能位。 0:禁止串行端口工作; 1:允許串行端口工作。 此時,RC7和RC6作為USART的接收發(fā)送引腳。,62,3TXR
32、EG,USART發(fā)送緩沖寄存器,每次發(fā)送的數(shù)據(jù)都是通過寫入該緩沖器來實現(xiàn)的。,63,4RCREG,USART接收緩沖寄存器,每次接收到的數(shù)據(jù)都可從該緩沖器讀取出來的。,64,5SPBRG波特率寄存器,SPBRG寄存器的設定值(0-255)與波特率成反比關系。在同步方式下,波特率僅由該寄存器來決定;而在異步方式下,則由BRGH位(TXSTA寄存器的bit2)和該寄存器共同確定。,65,9.3.2 USART波特率發(fā)生器,USART模塊帶有一個波特率發(fā)生器BRG(baud rate generator),用以產(chǎn)生串行傳送所需的時鐘,它支持USART的同步方式和異步方式。在異步方式下,BRGH位用來
33、控制波特率。在同步方式下, BRGH位不起作用。 波特率發(fā)生器的邏輯結構如圖10-24。其核心實際是一個遞減的位二進制計數(shù)器,其計數(shù)初始值是由寄存器SPBRG裝入,在每次遞減計數(shù)器到達00H之后的下一個計數(shù)脈沖到來時進行裝入。系統(tǒng)時鐘經(jīng)過位分頻器后作為傳遞計數(shù)器的計數(shù)脈沖,其分頻比可以由BRGH位和SYNC位設定為:、:16、或:。,66,波特率時鐘發(fā)生器示意圖,67,其波特率計算方式如下:,1同步方式 波特率fosc/4(N+1) Nfosc/(4波特率)- 注意,N為SPBRG寄存器的初始值;BRGH必須設置為0,BRGH為1無用。 2異步方式 BRGH=0時: 波特率fosc/64(N+
34、1) Nfosc/(64波特率)- BRGH=1時: 波特率fosc/16(N+1) Nfosc/(16波特率)-,68,【例題9-4】在某應用系統(tǒng)中,采用4800波特進行異步通信。假設單片機時鐘頻率為fosc20MHZ,低速方式(BRGH=0)。,69,9.4 USART的異步模式,USART在異步模式下采用的數(shù)據(jù)格式為l位起始位、8位或9位數(shù)據(jù)位和1位停止位,無奇偶校驗碼位(硬件不支持),常用的數(shù)據(jù)為8位。片內(nèi)提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時鐘信號產(chǎn)生標準的波特率頻率。,70,9.4.1 USART異步發(fā)送模式,USART發(fā)送器主要是由發(fā)送移位寄存器(TSR)、發(fā)送緩沖器TXR
35、EG構成。USART異步發(fā)送過程如下:要發(fā)送的數(shù)據(jù)送入TXREG中,寄存器TXREG中的數(shù)據(jù)就被裝入TSR。一旦把TXREG中的數(shù)據(jù)送入TSR,就將中斷標志位TXIF置位。TXIF置位后,不能用軟件清除,只有在下一個要發(fā)送的數(shù)據(jù)送入TXREG后TXIF才能復位。,71,USART異步發(fā)送其結構示意圖,72,9.4.2 USART異步接收模式,主要是由接收移位寄存器RSR和接收寄存器RCREG構成,串行信號從RC7RXDT引腳接收,送入移位寄存器RSR。一旦收到停止位,RSR就將收到的8位數(shù)據(jù)裝載到RCREG中。同時,RCIF置1,表示收到一個數(shù)據(jù),當RCREG被讀出時RCIF被清零。從圖中看出,RCREG是一個雙緩沖寄存器,具有FIFO性質(zhì)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第2.6講 指數(shù)與指數(shù)函數(shù)(解析版)-2024年高考數(shù)學一輪復習精講精練寶典(新高考專用)
- 浙教版2023小學信息技術六年級上冊《算法的多樣性》教學設計及反思
- (一模)萍鄉(xiāng)市2025年高三第一次模擬考試歷史試卷(含答案解析)
- 2025年B2B營銷業(yè)務 AI提示詞手冊
- 陶瓷攔水帶施工方案
- 高樓地鐵隧道施工方案
- 砂漿基礎知識培訓課件
- 2025年山東聊城高三一模高考數(shù)學試卷試題(含答案詳解)
- 2025年藥具科技工作培訓標準教案
- 寫贈予房產(chǎn)合同范例
- 2024-2025學年第二學期天域全國名校協(xié)作體高三3月聯(lián)考 地理試卷(含答案)
- 修理木橋施工合同范本
- 學校2025年每日兩小時體育活動方案-陽光體育活力四溢
- 錘擊式PHC預應力混凝土管樁貫入度的控制
- 新教科版一年級科學下冊第一單元第6課《哪個流動得快》課件
- 屋面種植土垂直施工方案
- 2025年新人教PEP版英語三年級下冊全冊課時練習
- 《愛耳日課件》課件
- 2024年安徽中醫(yī)藥高等??茖W校高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- GB/T 45107-2024表土剝離及其再利用技術要求
- 2025年保密工作計劃(3篇)
評論
0/150
提交評論