單片微機(jī)原理 第四章 43定時、中斷、串行_第1頁
單片微機(jī)原理 第四章 43定時、中斷、串行_第2頁
單片微機(jī)原理 第四章 43定時、中斷、串行_第3頁
單片微機(jī)原理 第四章 43定時、中斷、串行_第4頁
單片微機(jī)原理 第四章 43定時、中斷、串行_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4.3串行口及其通信方式根本通信方式計(jì)算機(jī)與外界的信息交換稱為通信。串行通信是CPU與外界交換信息的一種根本通信方式。常用通信方式有兩種:并行通信——所傳送數(shù)據(jù)的各位同時發(fā)送或接受;串行通信——所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接受并行通信方式的特點(diǎn):傳送速度快,但傳輸線多,價格較貴,適合近距離傳輸。串行通信方式的特點(diǎn):傳送速度較慢,需傳輸線少,適合遠(yuǎn)距離傳輸。計(jì)算機(jī)1GND計(jì)或算外機(jī)設(shè)2GND計(jì)算機(jī)1GND計(jì)或算外機(jī)設(shè)2GND幾個概念傳送編碼:用二進(jìn)制數(shù)對傳送字符編碼。常用的編碼有:ASCII碼和擴(kuò)展BCD碼〔同步通信〕串行通信分同步和異步兩種方式異步方式:在異步通信中數(shù)據(jù)或字符是分為一幀一幀地傳送,在幀格式中先用一個起始位“0〞表示字符的開始,然后是5~8位數(shù)據(jù),規(guī)定低位在前,高位在后,接下來是奇偶校驗(yàn)位〔可省略〕,最后一位停止為“1〞表示字符結(jié)束,構(gòu)成一幀。01D7D6D5D4D3D2D1D0P異步傳送格式0D0同步方式:在同步通信中,在數(shù)據(jù)或字符開始處就用一同步字符來指示〔常約定1~2個〕,由時鐘來實(shí)現(xiàn)發(fā)送端和接收端同步,一旦檢測到與規(guī)定的同步字符符合,下面就連續(xù)按順序傳送數(shù)據(jù)。同步方式:在同步通信中,在數(shù)據(jù)或字符開始處就用一同步字符來指示〔常約定1~2個〕,由時鐘來實(shí)現(xiàn)發(fā)送端和接收端同步,一旦檢測到與規(guī)定的同步字符符合,下面就連續(xù)按順序傳送數(shù)據(jù)。SYS字符1SYS字符2連續(xù)傳送的數(shù)據(jù)波特率〔Baudrate〕:是異步通信中對數(shù)據(jù)傳送速率的規(guī)定。即每秒鐘傳送多少位二進(jìn)制數(shù)。如果數(shù)據(jù)傳送的速率為每秒鐘傳送240個字符,每個字符由1個起始位8個數(shù)據(jù)位,一個停止位組成,傳送波特率為:10x240=2400b/s=2400波特率異步通信的傳送速度一般在50~9600波特率之間。通信方向:在串行通信中,如果通信接口只能發(fā)送或接受,這種單向傳送的方法稱單工傳送。通常數(shù)據(jù)需在兩機(jī)之間雙向傳送,這種方式稱雙工傳送。在雙工傳送方式中,如果接收和發(fā)送不能同時進(jìn)行,只能分時接收和發(fā)送,這種方式稱半雙工傳送;如果接收和發(fā)送可以同時進(jìn)行,那么稱全雙工傳送。4.3.1串行口結(jié)構(gòu)8051的串行口是一個可編程的全雙工串行通信接口,通過編程控制,該口可以同時進(jìn)行發(fā)送和接收。串行通信數(shù)據(jù)幀的格式有8位、10位、11位,并能設(shè)置各種波特率,使用方便靈活。8051串行口結(jié)構(gòu)框圖如圖4—5所示。串行口結(jié)構(gòu)

一、數(shù)據(jù)緩沖存放器SBUF數(shù)據(jù)緩沖存放器共兩個,一個對應(yīng)發(fā)送,一個對應(yīng)接收。當(dāng)CPU向SBUF寫入時,數(shù)據(jù)進(jìn)入發(fā)送存放器,同時啟動串行發(fā)送;CPU讀SBUF時,實(shí)際是讀接收存放器數(shù)據(jù)。注意:兩個SBUF用同一個地址99H。二、串行控制存放器SCONSCON控制串行通信方式的選擇、接收、發(fā)送及保存串行口的狀態(tài)。其格式如下圖:8051單片微機(jī)通過對SCON的設(shè)置、檢測與讀、取來管理串行口的通信。三、專用存放器PCONPCON的最高位SMOD是串行口波特率倍增位。當(dāng)SMOD=1時,波特率加倍,復(fù)位時,SMOD=0。

D7D6D5D4D3D2D1D0

接收中斷標(biāo)志位發(fā)送中斷標(biāo)志位接收數(shù)據(jù)/地址標(biāo)志位RB8=0接收的是數(shù)據(jù),RB8=1接收的是地址發(fā)送數(shù)據(jù)/地址標(biāo)志位RB8=0發(fā)送的是數(shù)據(jù),RB8=1發(fā)送的是地址串行接收允許位REN=0允許接收,REN=1禁止接收功能控制方式選擇控制8051單片微機(jī)正是通過對SCON的設(shè)置、檢測與讀、取來管理串行口的通信。SM0SM1SM2RENTB8RB8TIRI三、輸入移位存放器輸入移位存放器的作用是在接收到外部數(shù)據(jù)后,先進(jìn)入輸入移位存放器,再送入接收緩沖存放器SBUF。這樣起到了雙緩沖作用,防止第1幀數(shù)據(jù)沒取走,第2幀數(shù)據(jù)又輸入,造成數(shù)據(jù)重迭的錯誤4.3.2串行口工作方式SCON中最高兩位SM0、SM1是方式選擇控制位。兩位組合出四種狀態(tài):00、0l、10、11,正好對應(yīng)串行口的方式0、方式1、方式2、方式3四種工作方式。方式0:串行口為同步移位存放器方式,波特率固定為fosc/12。該方式主要用于I/O口擴(kuò)展,串行數(shù)據(jù)由RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)端送出。發(fā)送時,8位數(shù)據(jù)以fosc/12的波特率從RXD端輸出(低位在前),發(fā)送完置中斷標(biāo)志TI為“l(fā)〞。接收時,當(dāng)REN=l時,RXD以fosc/12的波特率接收數(shù)據(jù)(低位在前),接收完8位數(shù)據(jù),置RI為“1〞。方式1串行口為10位異步通信口。一幀信息10位(包括起始標(biāo)志“O〞和停止標(biāo)志位“l(fā)〞及8位數(shù)據(jù))。2SMOD波特率——×T1溢出率32發(fā)送時,只要數(shù)據(jù)寫入發(fā)送緩沖器SBUF,就啟動發(fā)送器,數(shù)據(jù)那么從TXD端輸出。發(fā)送完一幀數(shù)據(jù).把TI置“1〞申請中斷。接收時REN=l,數(shù)據(jù)從RXD端輸入。當(dāng)采樣到起始位為“0〞,開始接收一幀數(shù)據(jù),采到停止位為“l(fā)〞此時RI=0(或SM2=0),那么把RI置“1〞。注意:方式1,發(fā)送前先清TI,接收前先清RI和SM2。方式2串行口為11位異步通信口。一幀信息由11位組成。除了起始位0、停止位l和8位數(shù)據(jù)還有一位可編程位(第9位),存放數(shù)據(jù)地址標(biāo)志。發(fā)送時,寫SBUF地址,把8位數(shù)據(jù)裝入SBUF,同時把數(shù)據(jù)/地址標(biāo)志TB8狀態(tài)送入第9位,從TXD端送出一幀數(shù)據(jù),置TI為“l(fā)〞。接收時,RKN=l允許接收,RB8接收的是TB8狀態(tài)。RB8=0表示接收的是數(shù)據(jù),RB8=l表示接收的是地址。在多機(jī)通信中能否接收還受SM2控制,2SMOD方式2波特率=——fOSC64方式3:2SMOD方式3波特率為——×T1溢出率32除此之外,方式3與方式2通信方式完全相同。說明:表中用到的SMOD是專用存放器PCON的最高位(其它位無用),SMOD是串行口波特率倍增位。SMOD=1時波特率加倍4.3.3串行口通信舉例串行口通信,要進(jìn)行波特率設(shè)置、通信雙方的約定以及接收、發(fā)送程序設(shè)計(jì)。一、波特率設(shè)置在串行通信中,接收和發(fā)送雙方的波特率必須一致。因此,首先要約定通信波特率,根據(jù)需要設(shè)置合理的發(fā)送、接收速率。波特率和串行口工作方式有關(guān)。方式0:波特率固定為時鐘頻率fosc的十二分之一,且不受SMOD影響。假設(shè)fosc=12MHz,波特率為fosc/12即1Mb/s。方式2:波特率與SMOD值有關(guān)其關(guān)系式為:2SMOD波特率=———·fosc64假設(shè)fosc=12MHz,SMOD=0波特率=187.5kb/sSMOD=l波特率=375kb/s

方式l和方式3:

波特率可變8051單片機(jī)在串行口方式1和方式3兩種方式工作時,常用定時器T1為波特率發(fā)生器。T1的溢出率和SMOD共同決定波特率,其關(guān)系式如下:2SMOD波特率=---------·T1溢出率32T1的溢出率取決于T1的工作方式和初值。T1常設(shè)置為定時方式(C/T=0),方式2(自動裝初值),即TL1作8位計(jì)數(shù)器、TH1存放備用初值。設(shè)定時器初值為X那么計(jì)數(shù)速率fosc/12fosc溢出率=———=————=————(代入上式)256-X256-X12(256-X)

2SMODfosc波特率=————·————3212(256-X)從表達(dá)式可見,這種方式波特率隨fosc、SOMD及初值x而變化,都會引起波特率的改變。為方便,波特率可查表。注意:假設(shè)C/T=1,T1為計(jì)數(shù)方式,這時的計(jì)數(shù)速率取決于外部輸入脈沖頻率。在串行通信設(shè)置中,經(jīng)常根據(jù)波特率和時鐘頻率,計(jì)算定時器T1的初值。表

常用的波特率及計(jì)算器初值例假設(shè)805l單片機(jī)時鐘頻率11.059MHz,需要波特率2400b/s,試計(jì)算T1初值。解:設(shè)T1為工作方式2,選SMOD=0根據(jù)2SMODfosc波特率=────·──────32

12(256-X)

fosc×2SMODx=256-───────384×波特率把fosc、SMOD、波特率代入式中那么:

11.059×106×20x=256-────────=244D=F4H384×2400只要把F4H裝入TH1和TTL1,那么T1發(fā)出的波特率為2400b/s。二、串行口雙機(jī)通信設(shè)兩個8051系統(tǒng)直接通信,甲機(jī)發(fā)送,乙機(jī)接收,如圖4—6所示。

圖4—6雙機(jī)通信示意圖RXD8051(甲機(jī))TXD

GNDTXD8051RXD(乙機(jī))

GND1.通信任務(wù)及約定任務(wù):甲機(jī)將外部數(shù)據(jù)存儲器4000H~40FFH單元的內(nèi)容向乙機(jī)發(fā)送,在發(fā)送數(shù)據(jù)之前先將數(shù)據(jù)塊長度發(fā)送給乙機(jī),發(fā)送完256B,向乙機(jī)發(fā)送一個累加校驗(yàn)和。乙機(jī)接收甲機(jī)發(fā)送的數(shù)據(jù)并存入乙機(jī)以4000H為首地址的外部數(shù)據(jù)存儲器中。首先接收數(shù)據(jù)長度,然后接受數(shù)據(jù),接受完256B,最后接受累加和校驗(yàn)碼之后,進(jìn)行一次累加和校驗(yàn),數(shù)據(jù)全部接收完畢且校驗(yàn)碼比較時向甲機(jī)送出狀態(tài)字,表示傳送狀態(tài)。雙機(jī)通信必有許多約定,以保持兩者數(shù)據(jù)傳送正常。設(shè)約定如下:①波特率約定為2400即T1方式2,常數(shù)為F4H,SMOD=0。②行口初始化為方式1,允許接收方式。③工作存放器設(shè)置R5為累加和存放器,R4為頁內(nèi)計(jì)數(shù)器,R6為數(shù)據(jù)塊長度存放器。2.雙機(jī)通信程序發(fā)送程序TRT:MOVTMOD,#20HMOVTH1,#0F4H;T1初始化MOVTL1,#0F4HSETBTR1MOVSCON,#50H;串行口初始化方式1,允許接收MOVPCON,#00H;置SMOD=0RPT:MOVDPTR,#4000H;送數(shù)據(jù)塊首地址MOVR6,#00H;數(shù)據(jù)塊長度初值→R6MOVR5,#00H;累加和存放器清“0〞MOVSBUF,R6;發(fā)送長度L1:JBCT1,L2;等待發(fā)送,TI=1發(fā)送結(jié)束AJMPL1L2:MOVXA,@DPTR;讀數(shù)據(jù)塊中數(shù)據(jù)MOVSBUF,A;發(fā)送數(shù)據(jù)ADDA,R5;累加MOVR5,A;累加和送R5INCDPTR;地址加1L4:JBCT1,L3;等待發(fā)送AJMPL4L3:DJNZR6,L2;判斷256個數(shù)是否發(fā)送完MOVSBUF,R6;假設(shè)R6=0,256個數(shù)發(fā)送完,發(fā)校驗(yàn)碼MOVR5,#00HL6:JBCTI,L5;等待發(fā)送校驗(yàn)碼結(jié)束AJMPL6L5:JBCRI,L7;等待接收乙機(jī)發(fā)來的結(jié)束標(biāo)志碼AJMPL5L7:MOVA,SBUFJZL8;標(biāo)志碼為00H,接收正確AJMPRPT;發(fā)送有錯,重發(fā)L8:RET乙機(jī)接收程序RSU:MOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HSETBTR1MOVSCON,#50H

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論