MCS單片機的串口通信通俗易懂解讀_第1頁
MCS單片機的串口通信通俗易懂解讀_第2頁
MCS單片機的串口通信通俗易懂解讀_第3頁
MCS單片機的串口通信通俗易懂解讀_第4頁
MCS單片機的串口通信通俗易懂解讀_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單擊此處編輯母版標題樣式 MCS-51MCS-51單片機的串口通信單片機的串口通信 主講人:jxjsyg 你可曾有過這樣的困擾? ?媽媽下班回來忘記帶鑰匙,在門外喊你開門,而這個時候你正好在家里玩游戲,而且正玩到關(guān)鍵時刻,你會怎么辦? 兩個都令人不是很滿意的結(jié)果 在科學(xué)中探索 能答飛電:行路它控進是制行一不個軟同用件工計是作算任機什務(wù)來么的控東程制東? 序各。功 在探索中發(fā)現(xiàn) ?受到飛箭飛行控制軟件的啟發(fā),如果我們把門鎖也用計算機來進行控制的話,就克服了之前的困擾。當然,家里面很多電器設(shè)備都可以用計算機來進行控制。 通信:即一方傳給另一方信息,或者是一方接收來自另一方的信息。 在發(fā)現(xiàn)后學(xué)習(xí) 口

2、并答,口:即都計通是算信傳機端輸上口數(shù)的。據(jù)串的口接和 串口 并口 問:計算上的串口和并口,是用來干嘛的? 新授: 1、通信的分類? 答:并行通信和串行通信。 并行通信:數(shù)據(jù)的各位同時在多根數(shù)據(jù)線上發(fā)送或接收。 串行通信:數(shù)據(jù)的各位在同一根數(shù)據(jù)線上依次逐位發(fā)送或接收。 計算機1 GND 計算機2 GND 計算機1 GND 計算機2 GND 圖1 并口通信 圖2 串口通信 2、串行通信的分類? 答:單工、半雙工和全雙工。 發(fā)A端 A 送發(fā)送 端 接收 接收 (a)尋呼機 ( ( bc ) )對講機手機 A端發(fā)送 發(fā)B端 B端接收送 B 端 接收 發(fā)送 接收 單工 全雙工 半雙工? 通信要求 通信

3、雙方必須遵循一定的通信協(xié)議,即數(shù)據(jù)格式必須相同,通信速率必須相同(缺省為9600,n,8,1)。 ? 數(shù)據(jù)格式 單片機串口通信時數(shù)據(jù)是一幀一幀進行發(fā)送的。 表1 數(shù)據(jù)幀格式 起始位 數(shù)據(jù)位 校驗位 停止位 0 D0 D1 D2 D3 D4 D5 D6 D7 0/1 1 注:對于我們MCS-51單片機(8位)而言,校驗位沒有意義,除非把數(shù)據(jù)位改成7位,才能接收到校驗位。 ? 通信速率 在串行通信中用來衡量數(shù)據(jù)傳輸?shù)乃俾实囊粋€重要指標叫做波特率(Baud Rate) ,亦稱比特率。波特率的定義是每秒傳輸二進制數(shù)碼的位數(shù)。如:波特率為1200bps是指每秒鐘能傳輸1200位二進制數(shù)碼。 3、MCS-

4、51串口編程 ? 串口工作方式的設(shè)置 ? 波特率的設(shè)置 ? 中斷設(shè)置 ? 串行口工作方式的設(shè)置 MCS-51的串口有4種工作方式,它是由SCON中的SM1和SM0來決定的。 ? 串行口控制寄存器SCON 表2 SCON各位的定義 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI (1)SM0,SM1:串行中斷方式控制位 SM0,SM1=00,方式0,8位同步移位寄存器,其波特率為fosc/12; SM0,SM1=01,方式1,10位異步收發(fā),其波特率可變,由定時器控制; SM0,SM1=10,方式2,11位異步收發(fā),其波特率為fosc/64或fosc/32; SM0,SM1

5、=11,方式3,11位異步收發(fā),其波特率可變,由定時器控制。 (2)TI:發(fā)送中斷標志位 用于指示一幀信息發(fā)送是否完成,完成后由硬件自動置位。TI在發(fā)送數(shù)據(jù)前必須由軟件清0。 (3)RI:接收中斷標志位 用于指示一幀信息是否接收完,接收完后由硬件自動置位。RI在準備下次接收之前也必須用軟件清0。 (4)REN:允許接收控制位 REN=1時,允許接收;REN=0時,禁止接收。 問:如果我們要將串口設(shè)置為工作方式1,并 且允許接收,該如何設(shè)置? 答:SCON=0 x50; 返回 波特率 ?(2SMO D/32 )*定時器T1溢出率T1溢出率 ? (fosc/ 12)/( 2K?TC)? 波特率的設(shè)

6、置 在串口工作在方式1時,其波特率為可變,由定時器T1控制。 MCS-51定時器的方式2就是自動重裝初值的8位定時器,所以用它來做波特率發(fā)生器最恰當。當外部晶振選用11.0592MHz時,容易獲得標準的波特率。 程序編寫: TMOD=0 x20; /T1工作方式2,8位自動重裝初值 式中 SMOD波特率倍增位; TH1=0 xfd; /設(shè)置波特率為9600 fosc晶振頻率; K定時器T1的位數(shù); 程序該怎么寫? TL1=0 xfd; TC定時器T1的預(yù)置初值。 TR1=1; /啟動定時器T1 把9600波特率代入得定時初值為0 xfd。 方法1 方法2 返回 ? 中斷設(shè)置 如果要開啟串口,必

7、須要設(shè)置相應(yīng)的中斷允許控制位,即串行中斷允許控制位和總中斷允許控制位。 (1)ES:串行中斷允許控制位 當ES=1時打開串行中斷,ES=0時關(guān)閉串行中斷。 (2)EA:總中斷允許控制位 當EA=1時打開總中斷,EA=0時關(guān)閉總中斷。 問:在這里我們要怎么設(shè)置? 答:ES=1; EA=1; ? 串行數(shù)據(jù)緩存寄存器SBUF 舉例說明: SBUF=temp是把temp里面的內(nèi)容寫入SBUF,即單片機從TXD引腳將其發(fā)送出去; temp=SBUF是讀取SBUF里面的內(nèi)容存入temp變量,即單片機從RXD引腳將數(shù)據(jù)接收并存入temp變量。 MCS-51單片機串口通信完整程序 #include reg51

8、.h void Init() SCON=0 x50;/串行口工作方式1,允許接收 ES=1;/允許串行中斷 TMOD=0 x20;/T1工作方式2,8位自動重裝初值 TH1=0 xfd;/設(shè)置波特率為9600 TL1=0 xfd; TR1=1; EA=1; void main() Init(); while(1); void Uart_Int() interrupt 4/RI置位后才響應(yīng)中斷,所以進行中斷,RI肯定為1 unsigned char temp; temp=SBUF; if(temp=0) P2=0; else if(temp=1) P2=0 xff; RI=0; 4、作品調(diào)試及展

9、示 利用電腦上的上位機軟件對下位機(即單片機)進行調(diào)試。 (a)用串口調(diào)試助手控制 (b)用VB編寫上位機軟件進行控制 知識拓展(用VB編寫的上位機控制軟件) Dim kd_n, dkck_n, msg Private Sub Command1_Click() On Error GoTo Comm_Error dkck_n = dkck_n + 1 dkck_n = dkck_n Mod 2 If dkck_n = 1 Then MSComm1.CommPort = Right(Combo1.Text, 1) MSComm1.PortOpen = True Command1.Caption =

10、 關(guān)閉串口 Command2.Enabled = True Else MSComm1.PortOpen = False Command1.Caption = 打開串口 Command2.Enabled = False End If Exit Sub Comm_Error: Select Case Err.Number Case 8002 MsgBox 無效端口, 48, 警告 Case 8005 MsgBox 端口已打開, 48, 警告 End Select dkck_n = 0 End Sub Private Sub Command2_Click() kd_n = kd_n + 1 kd_n = kd_n Mod 2 If kd_n = 1 Then Command2.Caption = 關(guān)燈 Shape1.FillColor = vbRed MSComm1.Output = 0 Else Command2.Caption = 開燈 Shape1.FillColor = &H8000000F MSComm1.Output = 1 End If En

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論