第8章 80C51單片機串行通信_第1頁
第8章 80C51單片機串行通信_第2頁
第8章 80C51單片機串行通信_第3頁
第8章 80C51單片機串行通信_第4頁
第8章 80C51單片機串行通信_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

教學(xué)基本要求:

(1)、了解串行通信的基礎(chǔ)知識;(2)、熟悉單片機串行口的結(jié)構(gòu)及工作原理;(3)、掌握單片機串行通信控制寄存器的功能;(4)、掌握單片機串行通信的工作方式;教學(xué)重點:(1)、串行控制寄存器SCON的功能;(2)、串行工作方式0;教學(xué)難點:

(1)、串行工作方式0的程序設(shè)計;第8章80C51單片機串行通信8.1串行通信基礎(chǔ)知識8.1.1異步通信和同步通信在計算機系統(tǒng)中,CPU和外部通信有以下兩種方式:(a)并行通信:各數(shù)據(jù)位同時傳送,速度快、效率高;(b)串行通信:數(shù)據(jù)傳送按位順序進行,成本低、速度慢;串行通信又分為異步和同步方式,單片機中常使用異步通信方式。(1)異步串行通信的字符格式異步串行通信以字符為單位,即一次傳送一個字符。異步串行通信的字符格式如下:(a)信息兩種狀態(tài)分別以mark和space標志,“mark”譯為“標號”對應(yīng)邏輯“1”狀態(tài),在發(fā)送器空閑時,數(shù)據(jù)線應(yīng)保持在mark狀態(tài);“space”譯為“空格”,對應(yīng)邏輯“0”狀態(tài)。(b)起始位:發(fā)送器是通過發(fā)送起始位而開始一個字符的傳送,起始位使數(shù)據(jù)線處于“SPACE”狀態(tài)。(c)數(shù)據(jù)位:起始位之后就傳送數(shù)據(jù)。在數(shù)據(jù)位中、低位在前(左)、高位在后(右)。數(shù)據(jù)位可以是5、6、7或8位。(d)奇偶校驗位:用于對字符傳送作正確性檢查,3種可能:奇、偶或無校驗。(e)停止位:處于最后,用以標志一個字符傳送的結(jié)束,它對應(yīng)于mark狀態(tài),停止位可能是1,1.5或2位。

(f)位時間:一個數(shù)據(jù)位的時間寬度。(g)幀(frame):從起始位到停止位結(jié)束的時間。

(2)異步串行通信的信號形式(a)近程通信:采用數(shù)字信號直接傳送形式,即在傳送過程中不改變原數(shù)據(jù)代碼的波形頻率。

(b)遠程通信:采用頻率調(diào)制法,即以不同頻率的載波信號代表數(shù)字信號的兩種不同電平狀態(tài),也稱頻帶傳送方式,因此,應(yīng)采用調(diào)制解調(diào)器(modem)。(3)串行通信的數(shù)據(jù)通路形式

(a)單工形式

(b)半雙工形式

(c)全雙工形式(4)串行通信的傳送速率波特率:每秒傳送數(shù)據(jù)位的數(shù)目(bps)位/秒

1波特=1bps(位/秒)(5)串行接口電路串行接口電路也稱之為通用異步接收發(fā)送器(UART)。電路組成:(1)接收器;(2)發(fā)送器;(3)控制器;主要功能:(1)數(shù)據(jù)串行化/反串行化,并行數(shù)據(jù)串行數(shù)據(jù);(2)格式信息的插入,濾除;格式信息:啟始位,奇偶位,停止位。(3)錯誤檢驗用于檢驗數(shù)據(jù)通信過程是否正確。8.280C51串行口8.2.180C51串行口硬件結(jié)構(gòu)

80C51串行口硬件結(jié)構(gòu)如圖所示

SBUF:串行口寄存器,專用寄存器,包括發(fā)送寄存器和接收寄存器,具有同一地址(99H)。串行發(fā)送時:向SBUF寫入數(shù)據(jù);串行接收時:從SBUF讀出數(shù)據(jù);移位寄存器:與接收寄存器構(gòu)成雙緩沖結(jié)構(gòu)。在接收方式下,串行數(shù)據(jù)通過引腳RXD(P3.0)進入,由于接收SBUF和移位寄存器構(gòu)成了雙緩沖結(jié)構(gòu),所以,在數(shù)據(jù)接收過程中,可以避免出現(xiàn)幀重疊錯誤。在發(fā)送方式下,串行數(shù)據(jù)通過引腳TXD(P3.1)送出。在發(fā)送數(shù)據(jù)時,CPU處于主動狀態(tài),不會發(fā)生幀重疊錯誤,因此,發(fā)送電路不需要雙緩沖結(jié)構(gòu)。MCS-51單片機串行口結(jié)構(gòu)如圖所示8.2.2串行口控制機制

與串行通信有關(guān)的控制寄存器共有3個:(1)串行控制寄存器SCON(字節(jié)地址:98H;位地址:9FH~98H)

SCON的格式如下:位地址9FH9EH9DH9CH9BH9AH99H98H

位符號SM0SM1SM2RENTB8RB8TIRI各位功能說明如下:(a)SM0,SM1:串行口工作方式選擇位SM0SM1工作方式000011102113(b)SM2:多機通信控制位多機通信控制位,用于方式2和方式3中。在方式2和方式3處于接收方式時,若SM2=1,且接收到的第9位數(shù)據(jù)RB8為0時,不激活RI;若SM2=1,且RB8=1時,則置RI=1。在方式2、3處于接收或發(fā)送方式時,若SM2=0,不論接收到的第9位RB8為0還是為1,TI、RI都以正常方式被激活。在方式1處于接收時,若SM2=1,則只有收到有效的停止位后,RI置1。在方式0中,SM2應(yīng)為0。(c)REN:允許接收位

它由軟件置位或清零。REN=1時,允許接收;REN=0時,禁止接收。(d)TB8:發(fā)送數(shù)據(jù)位8

在方式2和方式3中,TB8的內(nèi)容是要發(fā)送的第9位數(shù)據(jù),其值由用戶通過軟件置位或復(fù)位。在雙機通信時,TB8可做奇偶校驗位使用;在多機通信時,常以TB8位的狀態(tài)表示主機發(fā)送的是地址幀還是數(shù)據(jù)幀(TB8=0,數(shù)據(jù)幀;TB8=1,地址幀)。(e)RB8:接收數(shù)據(jù)位8

在方式2和方式3中,RB8的內(nèi)容是接收到的第9位數(shù)據(jù),代表著接收數(shù)據(jù)的某種特征(與TB8功能類似)。(f)TI發(fā)送中斷標志位

在方式0中,發(fā)送完8位數(shù)據(jù)后,由硬件置位;在其它方式中,在發(fā)送停止位之前由硬件置位。因此,TI=1,表示幀發(fā)送結(jié)束。可用指令JBCTI,rel來查詢是否發(fā)送結(jié)束。TI=1時,也可向CPU申請中斷,響應(yīng)中斷后,必須由軟件清除TI(TI=0)。

(g)RI:接收中斷標志位在方式0中,接收完8位數(shù)據(jù)后,由硬件置位;在其它方式中,在接收停止位時由硬件置位。因此,RI=1,表示幀接收結(jié)束。同TI一樣,也可以通過JBCRI,rel來查詢是否接收完一幀數(shù)據(jù)。RI=1時,也可申請中斷,響應(yīng)中斷后,必須由軟件清除RI。(2)電源控制寄存器PCON(字節(jié)地址87H)電源控制寄存器PCON是為CHMOS型單片機的電源控制而設(shè)置的。SMOD:串行口波特率的倍增位。SMOD=1:串行口波特率加倍,系統(tǒng)復(fù)位后SMOD=0。位序B7B6B5B4B3B2B1B0位符號SMOD///GF1GF0PDID(3)中斷允許寄存器IE(字節(jié)地址0A8H,位地址0AFH~0A8H)

ES:串行中斷允許位;(a)ES=0:禁止串行中斷(b)ES=1:允許串行中斷

位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符號EA//ESET1EX1ET0EX08.380C51串行口工作方式SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變

MCS-51單片機的串行口有4種工作方式,基本情況如下:

從表中可以看出,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,其值由定時器T1的溢出率控制。8.3.1串行工作方式0

在方式0下,串行口作為同步移位寄存器使用,波特率固定為fosc/12,RXD(P3.0):數(shù)據(jù)移位的出入口;TXD(P3.1):提供移位時鐘脈沖。移位數(shù)據(jù)發(fā)送,接收以8位為一幀,不設(shè)起始位和停止位,低位在前,高位在后。

…D0D1D2D3D4D5D6D7…(1)數(shù)據(jù)發(fā)送與接收使用方式0實現(xiàn)數(shù)據(jù)的移位輸入輸出時,實際上把串行口變成為并行口使用。串行口作為并行口輸入輸出使用時,必須要有“并入串出”(CD4014、74LS165)和“串入并出”(CD4094、74LS164)移位寄存器的配合。(a)串行口作并行口實現(xiàn)數(shù)據(jù)輸出(b)串行口作并行口實現(xiàn)數(shù)據(jù)輸入(2)應(yīng)用舉例例:使用CD4094的并行輸出端接8支發(fā)光二極管,利用它的串入并出功能,把發(fā)光二極管從左向右依此點亮,并反復(fù)循環(huán)之。假設(shè)發(fā)光二極管為共陰極型,電路如圖所示。解:當串行口把8位狀態(tài)碼串行移位輸出后,TI置1,如把TI作狀態(tài)查詢標志,則可使用查詢法進行程序設(shè)計。

ORG0000H LJMPMAIN ORG0100HMAIN:MOVSCON,#00H;串行口方式0工作

CLRES;

MOVA,#80H;發(fā)光二極管從左亮起

DELR:CLRP1.0;關(guān)閉(關(guān))并行輸出

MOVSBUF,A;串行輸出

JNBTI,$;狀態(tài)查詢

SETBP1.0;開啟并行輸出

ACALLDELAY;狀態(tài)維持(DELAY延時子程序)

CLRTI;清發(fā)送中斷標志

RRA;發(fā)光右移

AJMPDELR;繼續(xù)

END思考題:如采用中斷方法,應(yīng)如何修改程序?#include<reg51.h>#include<intrins.h>#defineucharunsignedcharsbitP1_0=P1^0;uchar

aa;voidmain(){ SCON=0x00; ES=0;

aa=0x80; while(1) { P1_0=0; SBUF=aa;

if(TI==1) { P1_0=1; delay(); TI=0;

aa=_cror_(aa,1); }}}*8.3.2串行工作方式1

串行工作方式1是10位為一幀的異步串行通信方式,這種工作方式是為雙機通信而準備的。幀格式包括1個起始位,8個數(shù)據(jù)位和1個停止位。數(shù)據(jù)發(fā)送:是由一條寫發(fā)送寄存器(SBUF)的指令開始,隨后在串行口由硬件自動加入起始位和停止位,構(gòu)成一個完整的幀格式,然后在移位脈沖的作用下,由TXD端串行輸出。一個字符幀發(fā)送完后,使TXD輸出線維持在1狀態(tài)下,并將SCON寄存器的TI位置1,通知CPU可以接著發(fā)送下一個字符。數(shù)據(jù)接收:SCON的REN位應(yīng)處于允許接收狀態(tài),即REN=1。在此前提下,串行口采樣RXD端,當采樣到從1到0的狀態(tài)跳變時,就認為已接收到起始位。隨后在移位脈沖的控制下,把接收到的數(shù)據(jù)位移入接收寄存器中。直到停止位到來之后置位中斷標志位RI,通知CPU從SBUF取走接收到的一個字符。*8.3.3串行工作方式2和3串行工作方式2和3都是11位為一幀的串行通信方式,即1個起始位、9個數(shù)據(jù)位和1個停止位。在這兩種工作方式下,字符還是8個數(shù)據(jù)位,只不過增加了一個第9數(shù)據(jù)位(D8),它是一個可編程位,其功能由用戶設(shè)定。在發(fā)送數(shù)據(jù)時,應(yīng)予先在串行口控制寄存器SCON的TB8位中把第9個數(shù)據(jù)位的內(nèi)容準備好。這兩種工作方式的數(shù)據(jù)接收過程也與方式1基本類似,不同點仍在第9數(shù)據(jù)位上,串行口把接收到的前8個數(shù)據(jù)位移入SBUF,而把第9數(shù)據(jù)位送SCON的RB8。串行工作方式2和3是為多機通信而準備的。兩者的工作過程相同,差別僅在于波特率的設(shè)置,方式2的波特率是固定的,而方式3的波特率可由用戶根據(jù)需要設(shè)定,設(shè)定方法與方式1相同。*8.

溫馨提示

  • 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

提交評論