




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、串行傳輸簡介StartD0D1D2D3D4D5D6D7ParityStop01 通用異步收發傳輸器(UniversalAsynchronous Receiver/Transmitter,通常稱作UART,讀音juart/) 是一種異步收發傳輸器,將數據由串行傳輸(Serial communication)與并行傳輸(Parallelcommunication) 間作傳輸轉換。UART通常用在與其他通訊協議(如EIARS-232)的連結上。 RS-232C是標準的串行傳輸標準。 RS(Recommended standard)代表推薦標準,232是標識號,C代表RS232的 第三次修改(1969
2、年)。IBM PC機上的COM1、COM2接口,就是RS-232C接口。簡介 STC12C5410AD系列單片機具有1個采用UART(Universal Asychronous Receiver/Transmitter)工作方式的全雙工 串行通信接口。串行口由2個數據緩沖器、一個移位寄存器、一個串行控 制寄存器和一個波特率發生器等組成。串行口的數據緩沖器由2個互相獨立的接收、發送緩沖器 構成,可以同時發送和接收數據。發送緩沖器只能寫入而不能讀出,接收緩沖器只能讀出而 不能寫入,因而兩個緩沖器可以共享一個地址碼。串行口的兩個緩沖器統稱為串行通信特殊功能寄存器SBUF, 其共享的地址碼是99H。簡
3、介STC12C5410AD系列單片機的兩個串行口都有4種工作方式, 其中兩種方式的波特率是可變的,另兩種是固定的, 以供不同應用場合選用。用戶可用軟件設置不同的波特率和選擇不同的工 作方式。主機可通過查詢或中斷方式對接收/發送進行程序處理。STC-12C5410AD系列單片機串行口對應的硬件部分是 TxD/P3.1和RxD/P3.0引腳。STC12C5410AD系列單片機的串行通信口,除用于數據通信 外,還可方便地構成一個或多個并行I/O口,或作串并 轉換,或用于擴展串行外設等。串行口的相關寄存器PCON : 電源控制寄存器(不可位尋址)AddressbitB7B6B5B4B3B2B1B087
4、HnameSMODSMOD0LVDFPOFGF1GF0PDIDLSMOD:波特率選擇位。復位時SMOD=0。 SMOD=1,則使串行通信方式1、2、3的波特率 加倍;SMOD=0,則各工作方式的波特率不變。SMOD0:幀錯誤檢測有效控制位。復位時SMOD0=0 當SMOD0=1,SCON寄存器中的SM0/FE位用于FE(幀錯 誤檢測)功能;當SMOD0=0,SCON寄存器中的SM0/FE位用于SM0功能, 和SM1一起指定串行口的工作方式。串行控制寄存器SCONAddressbitB7B6B5B4B3B2B1B098HnameSM0/FESM1SM2RENTB8RB8TIRI用于選擇串行通信的
5、工作方式和某些控制功能。SM0、SM1確定串行口1的工作方式REN:允許/禁止串行接收控制位。 REN=1為允許串行接收狀態TI:發送中斷請求中斷標志位。 由硬件自動設定TI=1,用軟件設定TI=0RI:接收中斷請求標志位。 由硬件自動設定RI=1,用軟件設定RI=0串行控制寄存器SCONAddressbitB7B6B5B4B3B2B1B098HnameSM0/FESM1SM2RENTB8RB8TIRI用于選擇串行通信的工作方式和某些控制功能。SM0/FE:若SMOD0=1,當檢測到一個無效停止位時,設定 SM0/FE=1,必須用軟件清除。SM2:允許方式2或方式3多機通信控制位。TB8:用在
6、方式2或方式3,發送第9位,使用軟件設定。RB8:用在方式2或方式3,接收第9位。SM0、SM1確定串行口的工作方式SM0SM1工作方式功能說明波特率00方式0同步移位元元串行方式:移位寄存器當UART_M0x6=0時,波特率是SYSclk/12, 當UART_M0x6=1,波特率是 SYSclk/201方式18位UART,串行傳輸速率可變(2SMOD/32)×(定時器1的溢出率)10方式29位UART(2SMOD/64)xSYSclk系統工作時鐘頻率11方式39位UART,串行傳輸速 率可變(2SMOD/32)x(定時器1的溢出率)當T1x12 = 0時,定時器1的溢出率 = SY
7、Sclk/12/( 256 - TH1);當T1x12 = 1時,定時器1的溢出率 = SYSclk / ( 256 - TH1)數據緩沖寄存器SBUF緩沖寄存器(SBUF)的地址是99H,對應兩個不同的寄存器,1個是只寫寄存器,1個是只讀寄存器。 接收寄存器:在方式0時它的字長為8位元,其他方式時 為9位元。第9位裝入SCON寄存器中的RB8位。 接收后,將數據由移位寄存器裝入SBUF,可立即開始接收 下一個信息,主機應在該幀接收結束前從SBUF緩沖器中將 數據取走,否則前一幀資料將丟失。輔助寄存器AUXRAddressB7B6B5B4B3B2B1B08EHT0x12T1x12UART_M0
8、x6EADCIESPIELVDI-T1x12: 定時器1速度設置位元 如果UART串口用定時器1做波特率發生器,T1x12 位就可以控制UART串口是12T還是1T了。UART_M0x6:串行口模式0的通信速度設置位元 0,UART串口的模式0的速度是12分頻;1,UART串口的模式0的速度是2分頻;IE : 中斷允許寄存器 (可位尋址)AddressB7B6B5B4B3B2B1B0A8HEAEPCA_LVDEADC_SPIESET1EX1ET0EX0EA:CPU的總中斷允許控制位, EA=1,CPU開放中斷, EA=0,CPU屏蔽所有的中斷申請。ES :串行口中斷允許位, ES=1,允許串行
9、口中斷, ES=0,禁止串行口中斷。IPH : 中斷優先級控制寄存器PSH, PS: 串行口中斷優先級控制位。當PSH=0且PS=0時,為最低優先級中斷(優先級0)當PSH=0且PS=1時,為較低優先級中斷(優先級1)當PSH=1且PS=0時,為較高優先級中斷(優先級2)當PSH=1且PS=1時,為最高優先級中斷(優先級3)串行口工作模式0:同步移位寄存器串行口數據由RxD/P3.0端輸入/輸出,同步移位脈沖(SHIFTCLOCK)由TxD/P3.1輸出。RITI接收SBUFRXD腳串行數據 頻率信號TXD腳發送、接收的是8位數據,低位在先。D7D6D5D4D3D2D1D0移位寄存器D7D6D
10、5D4D3D2D1D0發射SBUFD7D6D5D4D3D2D1D0模式0的發送過程:當主機執行將數據寫入發送緩沖器 SBUF指令時啟動發送,串行口即將8位數據從RxD管腳輸 出,發送完中斷標志TI置“1”。TxD管腳輸出同步移位脈 沖(SHIFTCLOCK)。模式0接收過程:啟動接收過程后,RxD為串行輸入端,TxD為同步脈沖輸出端。波特率固定為SYSclk/12或SYSclk/2,無需定時器 提供UART_M0x6/AUXR.5=0,SYSclk/12(12分頻) UART_M0x6/AUXR.5=1,SYSclk/2(2分頻)由TX和RX控制單元分別產生中斷請求信號,并置TI=1或RI=1
11、,經“或門 “送主機請求中斷,所以主機響應中斷后 必須軟件判別是TI還是RI請求中斷,必須軟件清0插斷要 求標志位TI或RI。串行口工作模式1:8位UART,波特率可變SM0、SM1=01一幀信息為10位:1位起始位,8位數據位(低 位在先)和1位停止位。TxD/P3.1為發送信息,RxD/P3.0為接收端接收信息串行模式1的波特率=2SMOD×(TIMER1溢出率)/32T1x12 =0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 = 1, TIMER1的溢出率 = SYSclk / ( 256 - TH1)UART串行埠傳輸格式串行端口模式1串行
12、傳輸RI接收 SBUFD7D6D5D4D3D2D1D0startD0D1D2D3D4D5D6D7移位 緩存器stopRXD腳串行 數據串行 數據stopD7D6D5D4D3D2D1D0 startTXD腳TI發射 SBUFD7D6D5D4D3D2D1D0串行口工作模式2:9位UART,波特率固定SM0、SM1=10一幀信息由11字節成:1位起始位,8位數據 位(低位在先),1位可程序設計位(第9位資 料)和1位停止位。TxD/P3.1為發送埠,RxD/P3.0為接收埠模式2的波特率為:=2SMOD×(SYSclk系統工作時鐘頻率) /64串行口工作模式2:9位UART,波特率固定第9
13、數據位,TB8(SCON.3)可指定為0或1;或將同位檢查旗標(P,PSW.0) 存放到TB8。在接收周期時,第9數據位會被存放到RB8。RITI接收SBUFD7D6D5D4D3D2D1D0RXD腳startD0D1D2D3D4D5D6D7RB8stop串行數據移位寄存器stopTB9串行數據D7D6D5D4D3D2D1D0 startTXD腳發射SBUFD7D6D5D4D3D2D1D0串行口工作模式3:9位UART,波特率可變一幀的信息由11字節成:1位起始位,8位數據位元(低位在先),1位可程序設計位和1位停止位。發送時可程序設計第9位數據,由SCON中的TB8提供,可 軟件設置為1或0,
14、或者可將PSW中的奇/偶校驗位P值裝入 TB8。模式3的波特率為:=2SMOD×(TIMER1的溢出率)/32T1x12 =0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 =1,TIMER1的溢出率 =SYSclk/(256 -TH1)傳輸速率的設置串行通信模式0UART_M0x6/AUXR.5 =0時,其波特率 =SYSclk/12。UART_M0x6/AUXR.5 =1時,其波特率 =SYSclk/2。串行通信工作模式2SMOD=1,傳輸速率=(SYSclk)/32;SMOD=0,傳輸速率=(SYSclk)/64。串行通信模式1、3傳輸速率=2S
15、MOD×(TIMER1的溢出率)/32T1x12=0,TIMER1的溢出率 =SYSclk/12/(256 -TH1);T1x12 = 1, TIMER1的溢出率 = SYSclk /(256 - TH1)傳輸速率的設置UART在Mode1模式下,使用Timer1工作于Mode2(自動重新加載模式)計算傳輸率公式如下:9600 =2 SMOD振蕩器頻率 ?3212 ? 256 - (TH1)配合9600傳輸率,使用11.0592MHz石英晶體振蕩器,且SMOD=0,得出TH1為:TH1 =256 -2 ? 11.0592 ? 10 6384 ? 9600= 253 =FDH傳輸速率的
16、設置T1x12=0,TIMER1的溢出率=SYSclk×(28-N)/12T1x12=1,TIMER1的溢出率=SYSclk×(28-N)常用波特率系統時鐘頻率(MHz)SMOD定時器1C/T方式重新裝入值方式0MAX:1M12××××方式2MAX:375K121×××方式1和362.5K12102FFH19.2K11 .059102FDH9.6K11 .059002FDH4.8K11 .059002FAH2.4K11 .059002F4H1.2K11 .059002F8H137.511 .9860021
17、DH110600272H11012001FFFBH雙機通信 如果兩個8051應用系統距離很近,可將它們的串行埠直接 相連(TXDRXD,RXDTXD,GNDGND地),即可實現 雙機通信。RS232的串行信號UART串行埠傳輸格式StartD0D1D2D3D4D5D6D7ParityStop018051與RS232的串行信號電壓轉換80515V信號0V+10VRS232信號-10VGND15串行端口UART電路IC122 u2C 1 +1162738495V+ +22 uJ 62C 1 - 3 J 62710 P3 1P3 0C 2 +R S23 222 u6V- C 2 -5C ON 622
18、 uVCC16V CC1214 T1 OU TT1 IN11 TX D123413 R 1 INR 1 O UT12 R XD34568T2 OU TT2 IN9R 2 INR 2 O UT4RS-232C接腳594837261 ,UART電路 8051的RXD與TXD與EIA 界面ICL232連接,做訊 號準位轉換-準位0V轉換為-8V-15V-準位5V轉換為8V-15V使用9PIN的RS-232 接頭PIN2(RXD)接腳接收 PIN 3(TXD)接腳傳送 PIN5(GND)接地。雙機異步通信軟件協議甲機發送數據,乙機接收數據。在雙機開始通信時,先由甲機發送一個呼叫信號(例如 “06H”)
19、,以詢問乙機是否可以接收數據;乙機接收到呼叫信號后,若同意接收資料,則發回“00H” 作為應答信號,否則發“05H”表示暫不能接收資料,;甲機只有在接收到乙機的應答信號“00H”后才可將存儲 在外部數據存儲器中的內容逐一發送給乙機,否則繼續向 乙機發呼叫信號,直到乙機同意接收。字節數n資料1資料2資料3資料n累加校驗和發送數據格式如上:字節數n:甲機向乙機發送的資料個數;數據1數據n:甲機將向乙機發送的n幀資料;累加校驗和:為字節數n、數據1、數據n,這(n+1)個字節內容的算術累相加的和. 乙機根據接收到的“校驗和”判斷已接收到的n個數據是 否正確。若接收正確,向甲機回發“0FH”信號,否則
20、回發 “F0H”信號。甲機只有在接收到乙機發回的“0FH”信號才算完成發送 任務,返回被調用的程序,否則繼續呼叫,重發數據。雙機通信軟件(查詢方式)甲機發送子程序雙機通信軟件(查詢方式)乙機接收子程序段雙機通信軟件(中斷方式)由于STC-12C5410AD系列單片機的串行通信是雙工的,且 中斷系統只提供一個中斷向量入口地址,所以實際上是中 斷和查詢必須相結合,即接收/發送均可各自請求中斷, 響應中斷時主機并不知道是誰請求中斷,統一轉入同一個 中斷向量入口,必須由中斷服務程序查詢確定并轉入對應 的服務程序進行處理。甲方(發送方)任以查詢方式通信(從略),乙方(接收方)則改用中斷查詢方式進行通信。
21、常用的串行端口函數stdio.h內定函數格式串行埠輸出入說明getkey (void)接收一個按鍵數據getchar (void)接收一個字符數據putchar (char)發射一個字符數據printf(const char , .)發射字符、字符串及數值數據gets (char , int n)接收一個字符串字符數據scanf (const char , .)接收字符串數據puts (const char)發射一個字符串字符常數數據常用顯示格式字符表字符動作%d顯示有符號10進制數據%u顯示無符號10進制數據%f顯示浮點數10進制資料%e顯示指數10進制數據%g先以浮點數顯示,若不行則以指數
22、顯示數據%o顯示8進制數據%x顯示16進制數據%6d10進制數據占用6格,數據右移%06d10進制數據占用6格,數據右移,前面加0%-6d10進制數據占用6格,數據左移%c顯示字符數據%6c顯示字符數據,占用6格,資料右移%-6c顯示字符數據,占用6格,資料左移%s顯示字符串數據常用“”控制字符表控制字符動作ASCII碼(16進制)0空字符(NULL)0x00n換行(LF)0x0Ar歸位(CR)0x0Dt跳9格(HT)0x09b倒退(BS)0x08f換頁(FF)0x0C單引號0x27”雙引號0x22反斜杠0x5CUART使用時設定 1.ES 2.EA 3.IP,IPH當串行口接收中斷請求標志位RI和串行口發送中斷請求 標志位TI中的任何一個被置為1后,串行口中斷都會產 生。范例8_1/串行傳輸模擬的觀察與練習/從8051傳送字符串Hellokitty到P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高職單招面試培訓
- 服務與教學培訓
- 全國上海科教版初中信息技術八年級第一學期第三單元活動三《設計家庭網絡》教學設計
- 人教部編版五年級下冊景陽岡教學設計及反思
- 地震救援高級培訓課件
- 材料安全復習測試卷
- 《營養含量》(教學設計)-2024-2025學年北師大版小學數學六年級上冊
- 【八下HK數學】安徽省桐城市黃崗初級中學2023-2024學年八年級下學期期中數學試題
- 江蘇省宿遷市沭陽縣鄉鎮聯考2024-2025學年八年級下學期4月期中數學試題(原卷版+解析版)
- 大氣環境生態信息傳播重點基礎知識點
- CJT244-2016 游泳池水質標準
- SH/T 3115-2024 石油化工管式爐輕質澆注料襯里工程技術規范(正式版)
- HCIA H13-111鯤鵬應用開發考試復習題庫(含答案)
- 部編版語文八年級下冊期中基礎鞏固與能力提升練習-解析版
- 杜威《民主主義與教育》電子版
- 碎石技術供應保障方案
- 2023年江蘇省南京市中考化學試卷真題(含答案)
- 衛星互聯網通信技術
- 2023年水利部珠江水利委員會直屬事業單位招聘工作人員考試真題及答案
- 2024年3月四川省考公務員面試題及參考答案
- 戰略性新興產業政府引導基金發展策略與模式
評論
0/150
提交評論