【教學】第一講 80C51的串行接口_第1頁
【教學】第一講 80C51的串行接口_第2頁
【教學】第一講 80C51的串行接口_第3頁
【教學】第一講 80C51的串行接口_第4頁
【教學】第一講 80C51的串行接口_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一講80C51的串行接口.學習目標:單片機串行通信I/O接口的結構串行通信控制寄存器單片機串行通信的工作方式以及串行通信應用。.一、串行通信基本概念

通訊:信息交換計算機計算機計算機外設應用:多機系統(tǒng)、計算機網絡方式并行通信串行通信異步通信方式—按字符傳輸

同步通信方式—按數據塊傳輸

單工半雙工全雙工.并行通信:數據多位同時傳送控制簡單,傳輸速度快,傳輸線較多.串行通信:數據字節(jié)一位一位在一條傳輸線上逐個傳送。傳輸線少,可利用電話網,但傳送控制復雜。

.異步通信:收、發(fā)設備使用各自時鐘。

字符之間是異步的,但同一字符內是同步的(各位間距均為”位間隔”的整數倍).

同步通信:發(fā)送方時鐘與接收方時鐘同步。既保持位同步,也保持字符同步。

外同步自同步保持位同步,也保持字符同步..

單工半雙工全雙工

例如:廣播大哥大手機串行通信的傳輸方向.傳輸速率比特率:每秒鐘傳輸二進制代碼的位數bps波特率:每秒鐘調制信號變化的次數。單位是:波特(Baud)。例如:數據傳送的速率為120個字符每秒,每個字符由1個起始位、8個數據位和1個停止位組成,則其傳送波特率為:10b×120/s=1200b/s=1200波特傳輸距離與傳輸速率的關系:傳輸距離隨傳輸速率的增加而減小。傳輸速率與傳輸距離.

1、RS-232C接口

EIA(美國電子工業(yè)協(xié)會)1969年修訂RS-232C標準,它定義了DTE與DCE間的物理接口標準。二、串行通信接口標準

.

過程特性規(guī)定了信號間的時序關系

機械特性使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)功能特性:電氣特性:負邏輯,DC(-3~-15v)為1。DC(+3~+15v)為0,DC(-3~+3v)為過渡區(qū)。.近程通信連接

遠程通信連接.2、PC與外設的RS-232直接連接.PC機與單片機串行通信接口示意圖.三、串行接口的結構主要由兩個數據緩沖寄存器SBUF和一個輸入移位寄存器,以及一個串行控制寄存器SCON(TI\RI)等組成。

ASCON.

設定工作方式、接收/發(fā)送控制以及設置狀態(tài)標志

1、80C51串行口的控制寄存器-SC0N

SM0SM1SM2RENTB8RB8TIRISCON(98H)SM0、SM1:工作方式設置位

00:移位寄存器,fosc/1201:10位異步收發(fā)器(8位數據),波特率可變

10:11位異步收發(fā)器(9位數據),fosc/64或fosc/3211:11位異步收發(fā)器(9位數據),波特率可變

.SM2,多機通信控制位。主要用于方式2和方式3。對于接收機

SM2=0,收到RB8(0或1)既可使收到的數據進入SBUF,并激活RI。

SM2=1,收到的RB8=0時,收到的信息丟棄,不激活RI;若收到的RB8=1時,收到的數據進入SBUF,并激活RI,進而在中斷服務中將數據從SBUF讀走。方式0時,SM2必須是0。方式1時,SM2=1時,只有接收到有效停止位時,RI才激活。REN,允許串行接收位。置REN=1,啟動串口接收過程置REN=0,則禁止串口接收.

TB8,在方式2、3中,是發(fā)送數據的第9位

數據的奇偶校驗位地址幀/數據幀的標志位

RB8,在方式2、3中,是接收到數據的第9位奇偶校驗位地址幀/數據幀的標志位。方式1時,若SM2=0,則RB8是接收到的停止位。.

TI,發(fā)送中斷標志位。方式0時,串行發(fā)送第8位數據結束時其它方式,串行發(fā)送停止位的開始時硬件使TI置1,發(fā)中斷申請。必須在中斷服務程序中用軟件將其清0。RI,接收中斷標志位。方式0時,串行接收第8位數據結束時其它方式,串行接收停止位的中間時硬件使RI置1,發(fā)中斷申請。必須在中斷服務程序中用軟件將其清0。.2、PCON

SMOD,

波特率倍增位。在方式1、2、3時,波特率與SMOD有關:SMOD=1時,波特率提高一倍。復位時SMOD=0。SMOD

PCON(97H).四、80C51串行口的工作方式1.方式0_8位數據串行接口工作方式0為同步移位寄存器方式,多用于I/O口的擴展,其波特率是固定的,為fosc/12。TXD引腳輸出同步移位脈沖,RXD引腳串行輸入/輸出。方式0接收和發(fā)送電路.方式0掌握:1、8位數據,波特率為F0SC/122、低位在前,高位在后3、TI,再發(fā)送數據,軟件清0,CLRTI4、RI,再接收數據,軟件清0,CLRRI5、同步通信,無起始位和停止位.2.方式1_10位數據

在方式l時,串行口被設置為波特率可變的8位異步通信接口。發(fā)送/接收1幀數據為10位,其中1位起始位、8位數據位(先低位后高位)和10位數據的異步通信。幀格式如圖所示..方式1掌握:1、一幀為10位信息,1位起始(0),8位數據,1位停止(1)2、波特率=P1273、異步通信4、接收時,RB8里是停止位,數據位在SBUF(SM2=0).3.方式2_11位數據

串行口工作為方式2時,被定義為9位異步通信接口。發(fā)送/接收1幀數據為11位,其中1位起始位、8位數據位、1位控制/校驗位和1位停止位。控制/校驗位為第9位數據。4.方式3_11位數據方式3為波特率可變的11位異步通信方式,除了波特率有所區(qū)別之外,其余同方式2。11位數據的異步通信.工作方式掌握:1、幾中工作方式波特率不同2、傳送的位數不同,方式0是8位(數據位),方式1是10(8位數據——SBUF,1個起始、1位停止——RB8),方式2和方式3都是11位(8位數據,1位控制/校驗位——RB8、TB8,1位起始和1位停止位)3、方式0是同步,方式1、2、3是異步.5、波特率的計算

方式0、2的波特率是固定的,而方式1、3的波特率是可變的,由定時器T1的溢出率來決定。

方式0波特率=fosc/12方式2波特率=(2SMOD/64)·fosc方式1波特率=(2SMOD/32)·(T1溢出率)方式3波特率=(2SMOD/32)·(T1溢出率)K為定時器T1的位數。.1、單片機與單片機的通信

點對點的通信

硬件連接

五、單片機串行口應用舉例

.串行口初始化具體步驟:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);

串行口在中斷方式工作時,還要進行中斷設置(編程IE、IP寄存器)。.

2、多機通信

硬件連接主從系統(tǒng)在實際系統(tǒng)中,常采用RS-485標準進行數據傳輸。.

六、單片機與PC機的通信

應用系統(tǒng)設計中,單片機與PC機可以方便地組合成分布式控制系統(tǒng)。主計算機監(jiān)督管理各子系統(tǒng)分機的運行狀況。其特點是靈活性好、可靠性高。.DOS環(huán)境下,要實現通信只要直接對微機接口芯片8250進行口地址操作即可

WINDOWS環(huán)境下,不允許用戶直接操作串口地址。可以調用API函數,但較為復雜。使用

VB通信控件(Mscomm)很容易完成通信任務

VB簡明易用,實用性強。它具備基本的串行通信能力:即通過串行口發(fā)送和接收數據。.

MSComm控件主要屬性如下:CommPort:設置并返回通信端口號;Settings:以字符串的方式設置并返回波特率、奇偶校驗、數據位、停止位;PortOpen:設置并返回端口的狀態(tài),也可以打開和關閉端口;Input:從接收緩沖區(qū)返回字符和刪除字符;Output:向傳輸緩沖區(qū)寫一個字符。.

單片機程序清單如下:

ORG3000HMAIN:MOVTMOD,#20H;在11.0592MHz下,串行口波特率MOVTH1,#0FDH;9600bps,方式3MOVTL1,#0FDH MOVPCON,#00H SETBTR1 MOVSCON,#0D8HLOOP:JBCRI,RECEIVE;接收到數據后立即發(fā)出去 SJMPLOOPRECEIVE:MOVA,SBUF MOVSBUF,ASEND:JBCTI,SENDEND SJMPSENDSENDEND:SJMPLOOP.七、單片機串行口的應用

1、串行口擴展顯示器

【例1】用8位串入并出移位寄存器74HC164擴展顯示器。

.【例2】:把數據從顯示緩沖區(qū)送到數碼管。

入口;將要顯示的數放在以DIS0為首的8個單元中。

出口:把預置的數輸出以更新原有的顯示。

MOV R2,#08H ;顯示8個數碼管MOV R0,#DIS7 ;顯示緩沖區(qū)未地址送入R0DL0:MOV A,@R0 ;取要顯示數作查表偏移量MOV DPTR,#TAB ;指向字形表首MOVC A,@A+DPTR;查表得字形碼MOV SBUF,A ;發(fā)送顯示DL1:JNB T1,DL1 ;等待發(fā)送完一幀CLR T1 ;清中斷標志,準備繼續(xù)發(fā)送DEC R0 ;更新顯示單元DJNZ R2,DL0 ;重復顯示所有數碼管TAB: DB0C0H,0F9H,0A4H,0B0H,99H;0,1,2,3,4,DB92H,82H,0F8H,80H,90H;5,6,7,8,9,DB88H,83H,0C6H,0A1H,86H;A,B,C,D,E,

DB8EH,0BFH,8CH,0FFH;F,-,P,暗.2、串行口擴展的鍵盤在方式0下,串行口作同步移位寄存器用,以8位數據為一幀,先發(fā)送或接收最低位,每個機器周期發(fā)送或接收一位,故其波特率是固定的,為fosc/12。串行數據由RXD(P3.0)端輸入或輸出。

.

CJNE R1,#08,LP1

SJMP RCVI

N1:MOV A,R0

ADD A,A

JMP @A+DPTR

TAB:AJMP OPR0

AJMP OPR1

AJMP OPR7

OPR0: …

LJMP START

OPR7: …

LJMP START

END

ORG 0100HSTART: MOV R7,#20 MOV R0,#50H MOV DPTR,#TAB RCVI:MOV SCON,#10HJNB RI,$ CLR RI MOV A,SBUF MOV R0,#0 MOVR1,#0 LP1:RRC A JNC N1 INC R0 INC R1.3雙機通信

編程使乙機從甲機接收16個字節(jié)數據塊,并存入片外3000H~300FH單元。接收過程中要求判奇偶校驗標志RB8。若出錯則置F0標志為1,若正確則置F0標志為0,然后返回。【例3】編程把甲機片內RAM50H~5FH單元中的數據塊從串行口輸出。定義在方式3下發(fā)送,TB8作奇偶校驗位。采用定時器1方式2作波特率發(fā)生器,波特率為1200波特,fosc=11.0592MHz,預置值TH1=0E8H。.發(fā)送子程序如下:MOV TMOD,#20H ;設置定時器1為方式2MOV TL1,#0E8H ;設預置值MOV TH1,#0E8HSETB TRI ;啟動定時器1MOV SCON,#0C0H ;設置串行口為方式3MOV PCON,#00H ;SMOD=0MOV R0,#50H ;設數據塊指針MOV R7,#10H ;設數據長度10HTRS: MOV A,@R0;取數據送至AMOV C,PMOV TB8,C ;奇偶位P送至TB8MOV SBUF,A 啟動發(fā)送WAIT: JNB TI,$ ;判1幀是否發(fā)送完CLR TIINC R0 ;更新數據單元DJNZ R7,TRS ;循環(huán)發(fā)送至結束.接收子程序編程如下:

MOV TMOD,#20H ;設置定時器1為方式2MOV TL1,#0E8H ;設預置值MOV TH1,#0E8HSETB TR1 ;啟動定時器1MOV SCON,#0C0H ;設置串行口為方式3MOV PCON3,#00H ;SMOD=0MOV DPTR,#3000H ;設置數據塊指針MOV R7,#10H ;設數據塊長度SETB REN ;允許接收WAIT: JNB RI,$ ;判1幀是否接收完CLR RI.MOV A,SBUF ;讀入1幀數據JNB PSW.0,PZ ;奇偶位P為0則跳轉JNB RB8,ERR ;P=l,RB8=0則出錯SJMP YES ;二者全為1則正確PZ: JB RB8,ERR ;P=0,RB8=l則出錯YES: MOVX @DPTR,A ;正確,存放數據INC DPTR ;修改地址指針DJNZ R7,WAIT ;判斷數據塊接收完否CLR PSW.5 ;接收正確且接收完清F0標志RET ;返回ERR: SETB PSW.5 ;出錯則置F0標志為“l(fā)”RET ;返回

.【例4】主機向02號從機發(fā)送50H~5FH中的數據;02號從機將接收到的數據放到內RAM30H~3FH單元中。主機程序:ORG0030HMAIN:

溫馨提示

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

評論

0/150

提交評論