(單片機-汪文)4.輸入-輸出、中斷、定時與串行通信_第1頁
(單片機-汪文)4.輸入-輸出、中斷、定時與串行通信_第2頁
(單片機-汪文)4.輸入-輸出、中斷、定時與串行通信_第3頁
(單片機-汪文)4.輸入-輸出、中斷、定時與串行通信_第4頁
(單片機-汪文)4.輸入-輸出、中斷、定時與串行通信_第5頁
已閱讀5頁,還剩160頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第4章輸入/輸出、中斷、定時與串行通信主要內(nèi)容:介紹I/O的基本概念、I/O數(shù)據(jù)傳遞方式,中斷的基本概念,串行通信基本概念。主要介紹單片機中斷系統(tǒng)結(jié)構(gòu)、特點及使用方法;片內(nèi)定時器/計數(shù)器結(jié)構(gòu)、原理及使用;片內(nèi)串行口結(jié)構(gòu)、原理以及雙機和多機通信實現(xiàn)方法;PC機與單片機通信實現(xiàn)方法。1精選2021版課件4.1輸入/輸出概述

4.1.1輸入/輸出的基本概念

輸入/輸出設備又稱為計算機外圍設備;簡稱外設或I/O設備。單片機應用系統(tǒng)常用的輸入設備有按鈕、鍵盤、各種傳感器等。常用的輸出設備有LED(發(fā)光二極管顯示器)、LCD(液晶顯示器)等。二、輸入/輸出信息種類

計算機與輸入/輸出設備之間交換信息,有三種信息形式:數(shù)據(jù)信息、控制信息和狀態(tài)信息。一、輸入/輸出設備2精選2021版課件

三、輸入/輸出接口與端口

CPU與外設,并不直接相連,而是通過接口電路進行連接。輸入/輸出設備與主機的連接部分稱為輸入/輸出接口,簡稱I/O接口。輸入/輸出接口的作用是:

2.鎖存與緩沖作用:一般用D觸發(fā)器進行鎖存。

1.隔離與尋址作用:例如右圖用三態(tài)門組成的接口。3.信號電平或形式變換:例如A/D、D/A、232/485的變換。3精選2021版課件

通常接口電路中可編址并能進行讀寫操作的寄存器稱為端口或簡稱口。一個接口電路中可能包括多個口,例如數(shù)據(jù)口、狀態(tài)口、控制口,即包含有多個口地址。同一單片機系列中,片內(nèi)集成的I/O模塊各有不同,當片內(nèi)I/O不能滿足實際需求時,可擴展外部I/O。

四、I/O的分類

按照信號的傳遞方式,可將I/O分為串行和并行兩類。按照I/O連接的信號大致可分為模擬量、數(shù)字量、脈沖量I/O三類。五、數(shù)據(jù)總線隔離技術

為了正確地進行數(shù)據(jù)的I/O傳遞,必須解決數(shù)據(jù)總線的隔離問題,即在任一時刻,CPU只對一個I/O進行操作。為此,對輸出設備的接口電路要使用鎖存器,對輸入設備的接口電路,使用三態(tài)緩沖器。4精選2021版課件六、單片機I/O編址方式

每一個I/O都需要編址,以便CPU分別進行尋址。常用的I/O編址方式有兩種:獨立編址方式和統(tǒng)一編址方式。

獨立編址方式:I/O和存儲器分開編址,有各自獨立的地址空間,采用不同的控制總線,使用不同的指令分別尋址。

統(tǒng)一編址方式:I/O與數(shù)據(jù)存儲器在同一地址空間編址,尋址方式相同,采用相同的地址、數(shù)據(jù)、控制總線,使用相同的指令尋址。5精選2021版課件4.1.2輸入輸出的傳送方式單片機系統(tǒng)中有不同類型的I/O設備,由于I/O所連接的外設或I/O接口本身的速度與CPU的處理速度相比,通常低于CPU的速度,為了實現(xiàn)數(shù)據(jù)的正確傳輸,CPU通常采用三種控制方式,即無條件傳送方式、查詢方式和中斷控制方式。一、無條件傳送方式

I/O或與I/O連接的外設隨時都處于準備好狀態(tài),這時CPU不需要測試外設狀態(tài),隨時直接對其進行操作。

6精選2021版課件查詢方式流程圖

二、查詢方式查詢方式是指CPU在執(zhí)行輸入輸出指令之前,先對外圍設備的狀態(tài)進行檢測,以判別外設是否準備就緒。如果已經(jīng)準備就緒,CPU就可以執(zhí)行輸入輸出指令。如果還沒有準備就緒,必須繼續(xù)查詢(如右圖所示)。查詢方式的特點:實現(xiàn)簡單,通用性強,適合各種設備數(shù)據(jù)的輸入/輸出;其缺點是需要占用CPU的時間,外設速度較慢時,效率較低。7精選2021版課件三、中斷方式中斷方式下外設的狀態(tài)信號以中斷申請方式輸入CPU。CPU響應中斷,暫停正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行中斷服務程序,在中斷服務程序中對外設進行輸入/輸出操作,中斷返回后,再繼續(xù)執(zhí)行被中斷的程序。中斷方式可提高單片機系統(tǒng)的效率。8精選2021版課件4.2.1中斷的概念當CPU正在處理某件事情的時候,內(nèi)部或外部發(fā)生的某一事件(如一個電平的變化,一個脈沖沿的發(fā)生或定時器計數(shù)溢出等)請求CPU迅速去處理,于是,CPU暫時中止當前的工作,轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件以后,再回到原來被中止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。4.2MCS-51單片機的中斷系統(tǒng)9精選2021版課件一、中斷源

中斷源是指向CPU申請中斷的事件來源。例如外部輸入輸出設備,定時/計數(shù)器,串行接口都可以作為中斷源。二、中斷優(yōu)先權

中斷優(yōu)先權也叫中斷排序,是用戶根據(jù)中斷源的性質(zhì)和重要性自行排列的先后次序。在多個中斷源同時提出申請時,保證優(yōu)先權高的中斷源首先得到響應,縱使CPU正在處理一個中斷,也要暫時停止較低級的中斷。響應優(yōu)先權更高的中斷源請求。這個過程稱為中斷嵌套或多重中斷。優(yōu)先權排序可以用軟件也可以用硬件實現(xiàn)。10精選2021版課件三、中斷系統(tǒng)的功能:(1)可實現(xiàn)高速CPU與慢速外設之間的配合。因為許多外圍設備的速度比CPU慢,二者間無法同步地進行數(shù)據(jù)交換。為此可通過中斷方式實現(xiàn)CPU與外圍設備之間的協(xié)調(diào)工作。

(2)可實現(xiàn)實時處理。實時處理是自動控制系統(tǒng)對計算機提出的要求,各控制參量可以隨時向CPU發(fā)出中斷申請,而CPU也必須做出快速響應和及時處理,以便使被控對象總保持在最佳工作狀態(tài)。(3)實現(xiàn)故障的緊急處理。當外圍設備或計算機出現(xiàn)故障時,可以利用中斷系統(tǒng)請求CPU及時處理這些故障。(4)便于人機聯(lián)系。操作人員可以利用鍵盤中斷等,實現(xiàn)人機聯(lián)系,完成人的干預。11精選2021版課件

四、中斷響應過程1)尋找中斷源。(中斷識別)2)將當前PC值(下一條指令的地址)壓入堆棧(即保護斷點),以便中斷返回時使用。3)尋找中斷入口,以便轉(zhuǎn)向執(zhí)行中斷服務程序。4)保護現(xiàn)場。5)執(zhí)行中斷服務程序(中斷處理)。6)執(zhí)行完中斷服務程序后,恢復現(xiàn)場并返回主程序(中斷返回)。12精選2021版課件4.2.2MCS-51單片機的中斷系統(tǒng)一、中斷源與中斷標志位

8051/8031型單片機提供了5個中斷源:兩個外部中斷源和三個內(nèi)部中斷源。每一個中斷源都有一個中斷申請標志,但串行口占兩個中斷標志位,一共六個中斷標志,下表給出了它們各自的名稱。分類中斷源名稱中斷申請標志觸發(fā)方式中斷入口地址外部中斷外部中斷0IE0(TCON.1)INT0(P3.2)引腳上的低電平/下降沿引起的中斷0003H內(nèi)部中斷T0定時器/計數(shù)器0中斷IF0(TCON.5)T0計數(shù)器溢出后引起的中斷000BH外部中斷外部中斷1IE1(TCON.3)INT1(P3.3)引腳上的低電平/下降沿引起的中斷0013H內(nèi)部中斷T1定時器/計數(shù)器1中斷IF1(TCON.7)T1計數(shù)器溢出后引起的中斷001BH內(nèi)部中斷串口中斷RI(SCON.0)TI(SCON.1)串行口接收完成或發(fā)送完一幀數(shù)據(jù)后引起的中斷0023H中斷源和中斷申請標志13精選2021版課件MCS-51中斷系統(tǒng)MCS-51中斷系統(tǒng)結(jié)構(gòu)框圖

中斷源中斷選擇中斷標志14精選2021版課件

1.中斷源(1)外部中斷0請求,由P3.2引腳輸入??捎捎脩粼O定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號有效,則向CPU申請中斷,并且將中斷標志IE0置1。(2)外部中斷1請求,由P3.3引腳輸入。亦可由用戶設定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號有效,則向CPU申請中斷,并將中斷標志IE1置1。

(3)片內(nèi)定時器T0溢出中斷請求。當定時器T0產(chǎn)生溢出時,T0中斷請求標志TF0置1,請求中斷處理。(4)片內(nèi)定時器T1溢出中斷請求。當定時器T1產(chǎn)生溢出時,T1中斷請求標志TF1置l,請求中斷處理。(5)片內(nèi)串行口發(fā)送/接收中斷請求。當通過串行口發(fā)送或接收完一幀串行數(shù)據(jù)時,串行口中斷請求標志TI或RI置1,請求中斷處理。15精選2021版課件因此,與中斷有關的特殊功能寄存器有:

中斷允許控制寄存器(IE)

定時器/計數(shù)器控制寄存器(TCON)

中斷優(yōu)先級控制寄存器(IP)

串行口控制寄存器(SCON)

MCS-51單片機的中斷系統(tǒng)中,使用何種中斷,采用何種觸發(fā)方式,可通過定時器/計數(shù)器控制寄存器TCON和串行口控制寄存器SCON的有關位來規(guī)定。只要根據(jù)這些位的狀態(tài)就能確定有無中斷請求及中斷的來源。

在中斷源與CPU之間有二級中斷允許控制邏輯電路,一級為總允許,第二級為源允許,由IE控制。中斷優(yōu)先級由IP控制。16精選2021版課件2.中斷請求標志

(1)TCON的中斷標志

TCON是專用寄存器,字節(jié)地址為88H,它鎖存了外部中斷請求標志及T0和T1的溢出中斷請求標志。TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

IT0/IT1:外部中斷請求的觸發(fā)方式選擇位:=0:在INT0/INT1端申請中斷的信號低電平有效;=1:在INT0/INT1端申請中斷的信號負跳變有效.IE0/IE1:外部中斷申請標志位:=0:沒有外部中斷申請;=1:有外部中斷申請。

TF0/TF1:定時器溢出中斷申請標志位:=0:定時器未溢出;=1:定時器溢出申請中斷,進中斷后自動清零。TR0/TR1:定時器運行啟停控制位:=0:定時器停止運行;=1:定時器啟動運行。17精選2021版課件(2)SCON的中斷標志

SCON是串行口控制寄存器,與中斷有關的是它的低兩位TI和RI。

TI(SCON.1):串行口發(fā)送中斷標志位。每發(fā)送完一個串行幀,由硬件置位TI。CPU響應中斷時,不能清除TI,TI必須由軟件清除。

RI(SCON.0):串行口接收中斷標志位,當允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI。同樣,RI必須由軟件清除。SCONRI

TIRB8TB8RENSM2SM1SM018精選2021版課件二、MCS—51的中斷管理

1、中斷允許寄存器IE——中斷的允許與開放

在中斷源與CPU之間有兩級中斷允許控制邏輯電路,一級為總允許,第二級為源允許,由IE控制。19精選2021版課件2.中斷優(yōu)先級寄存器IP

——中斷優(yōu)先級控制

內(nèi)部自然優(yōu)先級:入口地址INT0高0003HT0000BHINT10013HT1001BHTI/RI低0023H20精選2021版課件3.同一級中的5個中斷源的優(yōu)先順序

/INT0中斷T0溢出中斷/INT1中斷T1溢出中斷串口中斷

高低自然優(yōu)先級中斷優(yōu)先原則:(概括為四句話)1)低級不中斷高級2)高級不睬低級3)同級不能打斷4)同級、同時中斷,按自然優(yōu)先級21精選2021版課件MCS-51中斷系統(tǒng)MCS-51中斷系統(tǒng)結(jié)構(gòu)框圖

中斷源中斷選擇中斷標志22精選2021版課件中斷處理過程一般分為三個階段,即中斷響應、中斷處理和中斷返回。

三、中斷響應的條件及過程

1.中斷響應(1)中斷響應的條件:1)有中斷源發(fā)出請求信號2)中斷是開放的(總允許、源允許)3)沒有封鎖(受阻),受阻情況是:①CPU正在執(zhí)行同級或高一級的中斷服務程序;②現(xiàn)行機器周期不是正在執(zhí)行的指令的最后一個機器周期,即現(xiàn)行指令完成前.不響應任何中斷請求;③當前正在執(zhí)行的是中斷返回指令RETI或訪問專用寄存器IE或IP的指令。也就是說,在執(zhí)行RETI或是訪問IE、IP的指令后,至少需要再執(zhí)行一條其他指令,才會響應中斷請求。23精選2021版課件

(2)中斷響應過程

進入中斷響應周期。CPU在中斷響應周期要完成下列操作:1)根據(jù)中斷請求源的優(yōu)先級高低,使相應的優(yōu)先級狀態(tài)觸發(fā)器置1。2)清相應中斷請求標志位IE0、IE1、TF0或TF1。3)保留斷點,把PC內(nèi)容壓入堆棧保存。4)把被響應的中斷源的服務程序入口地址送入PC,轉(zhuǎn)入相應的中斷服務程序。24精選2021版課件(3)中斷響應時間

從查詢中斷請求標志位到轉(zhuǎn)向中斷服務入口地址所需的機器周期數(shù)。1)最快響應時間以外部中斷的電平觸發(fā)為最快。從查詢中斷請求信號到中斷服務程序需要三個機器周期:1個周期(查詢)+2個周期(長調(diào)用LCALL)2)最長時間若當前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長為8個周期:2個周期執(zhí)行當前指令(其中含有1個周期查詢)+4個周期乘除指令+2個周期長調(diào)用=8個周期。25精選2021版課件2.中斷處理(服務)與返回

在編寫中斷服務程序時加注意的幾點:(1)因各入口地址之間只相隔8個字節(jié),所以通常在中斷入口地址單元處存放一條無條件轉(zhuǎn)移指令,使中斷服務程序靈活地安排在64KB程序存儲器的任何空間。(2)若要在執(zhí)行當前中斷程序時禁止更高優(yōu)先級中斷,可先用軟件關閉CPU中斷(全局中斷),或禁止某中斷源中斷(局部中斷),在中斷返回前再開放中斷。(3)注意保護現(xiàn)場和恢復現(xiàn)場。(4)中斷服務程序的最后一條是返回指令RETI,該指令將清除響應中斷時被置位的優(yōu)先級狀態(tài)觸發(fā)器,然后自動將斷點地址從棧頂彈出,裝入PC,使程序返回到被中斷處,繼續(xù)向下執(zhí)行。26精選2021版課件中斷服務程序流程圖27精選2021版課件3.中斷請求的撤除

CPU響應中斷請求后,在中斷返回(RETI)前,該中斷請求信號必須撤除,否則會引起另外一次中斷。注意:(1)采用邊沿觸發(fā)的外部中斷標志IE0或IEl和定時器中斷標志TF0或TFl,CPU響應中斷后能用硬件自動情除;(2)在電平觸發(fā)時,IE0或IEl受外部引腳中斷信號的直接控制,CPU無法控制IE0或IEl,需要另外考慮撤除中斷請求信號的措施,如通過外加硬件電路(見下頁所示),并配合軟件來解決;(3)串行口中斷請求標志TI和RI也不能由硬件自動清除,需要在中斷服務程序中,用軟件來清除相應的中斷請求標志.

。28精選2021版課件并在中斷服務程序中增加如下指令,使得的/INT0輸入變?yōu)楦唠娖健?/p>

ORL P1,#01H

ANL P1,#0FEH

外部中斷為電平觸發(fā)時,如果中斷響應后,管腳仍為低電平,則會重新置位中斷請求,為此可以在系統(tǒng)中增加輔助電路解決。29精選2021版課件1.在CPU已經(jīng)開放了外部中斷允許的前提下;2.在INT0/INT1引腳輸入一個負脈沖或低電平;3.TCON寄存器中的IE0/IE1標志位自動變“1”;4.檢測到IE0/IE1變“1”后,將產(chǎn)生指令:LCALL0003H(/0013H)執(zhí)行中斷服務程序;4并將IE0/IE1標志位自動清“0”或用硬件電路撤除中斷請求信號,以備下次申請。外部中斷(INT0,INT1)申請過程:30精選2021版課件例1假設允許片內(nèi)定時器/計數(shù)器中斷,禁止其他中斷。試根據(jù)假設條件設置IE的相應值。解:根據(jù)題目要求,要允許內(nèi)部定時器中斷,就需要將IE寄存器的EA、ET1、ET0置1,其他位清0,可分別通過字節(jié)尋址或者位尋址進行。(1)用字節(jié)操作指令:MOVIE,#8AH或MOVA8H,#8AH(2) 用位操作指令: SETB ET0 ;定時器/計數(shù)器0允許中斷 SETB ET1 ;定時器/計數(shù)器1允許中斷 SETB EA ;CPU開中斷31精選2021版課件例2系統(tǒng)要求設定8051的片外中斷為高優(yōu)先級中斷,片內(nèi)中斷為低優(yōu)先級。請寫出相應的指令。解:根據(jù)題目要求,需要將8051的外部中斷優(yōu)先級控制位PX0、PX1設置為1,而內(nèi)部中斷優(yōu)先級控制位PT0、PT1、PS清為0。(1) 用字節(jié)操作指令:MOVIP,#05H(2) 用位操作指令:SETBPX0SETBPX1CLRPSCLRPT0CLRPT132精選2021版課件4.3MCS-51單片機的定時器/計數(shù)器定時器/計數(shù)器的結(jié)構(gòu)定時器/計數(shù)器的工作方式定時器/計數(shù)器應用33精選2021版課件實現(xiàn)定時或延時控制有三種方法:軟件定時、不可編程硬件定時器、可編程硬件定時器??删幊痰挠布〞r器就是其工作方式、定時值和定時范圍可以很方便地由軟件來確定和改變。通常,一個可編程定時/計數(shù)器的主要用途有:①以均勻分布的時間間隔中斷分時操作系統(tǒng),以便切換程序。②向I/O設備輸出精確的定時信號,該信號的周期由程序控制。③用作可編程波特率或速率發(fā)生器。④檢測外部事件發(fā)生的頻率或周期。⑤統(tǒng)計外部事件處理過程中某一事件發(fā)生的次數(shù)。⑥在定時或計數(shù)達到編程規(guī)定的值之后,產(chǎn)生輸出信號,向CPU申請中斷。34精選2021版課件51系列單片機有兩個16位的定時器/計數(shù)器:T0和T1。T0由兩個8位的定時寄存器TH0和TL0構(gòu)成16位寄存器,同樣,T1由兩個8位的定時寄存器TH1和TL1構(gòu)成16位寄存器,它們分別映射在特殊功能寄存器中。TH0、TL0的地址分別為8CH、8AH,TH1和TL1的地址分別為8DH和8BH。其內(nèi)部還有2個8位的專用寄存器TMOD(88H)和TCON(89H)

。其中TMOD是定時器的工作方式寄存器,TCON是控制寄存器,主要用于定時/計數(shù)器管理與控制。

4.3.1定時器/計數(shù)器的結(jié)構(gòu)35精選2021版課件8051單片機的定時器結(jié)構(gòu)T0T136精選2021版課件一、定時器/計數(shù)器的定時和計數(shù)功能

在TMOD中,各有一個控制位(C/T),分別用于控制定時器/計數(shù)器T0和T1是工作在定時器方式還是計數(shù)器方式。1.定時功能----計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期使寄存器的值加1。所以,計數(shù)頻率是振蕩頻率的1/12。2.計數(shù)功能----計數(shù)脈沖來自相應的外部輸入引腳,T0為P3.4,T1為P3.5。即對由T0/T1引腳輸入的負脈沖進行加法計數(shù)。定時器/計數(shù)器的核心部件是二進制加1計數(shù)器(TH0、TL0或TH1、TL1)。其輸入的計數(shù)脈沖有兩個來源(內(nèi)部時鐘脈沖和外部輸入引腳)。當加到計數(shù)器為全“1”時,再輸入一個脈沖,就使計數(shù)器回零,同時產(chǎn)生溢出脈沖使TCON中溢出中斷標志TF0或TF1置1,并可向CPU申請中斷。37精選2021版課件二、定時器/計數(shù)器的控制寄存器與定時器/計數(shù)器有關的控制寄存器有:1.定時器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中斷請求標志觸發(fā)方式選擇啟動定時器/計數(shù)器0低電平1下降沿0停止1啟動38精選2021版課件2.工作方式控制寄存器TMOD

T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—門控位C/T—計數(shù)/定時選擇M1M0—工作方式選擇用于選定定時/計數(shù)器的工作方式、啟動方式等。39精選2021版課件TMOD的高4位用于T1控制,低4位用于T0控制,符號的定義如下:(1)GATE:門控位。GATE和軟件控制位TR、外引腳(/INT0、/INT1)的狀態(tài),共同控制定時器/計數(shù)器的啟動和停止。

GATE=0——普通用法Timer的啟/停由軟件對TRx位寫“1”/“0”控制。

GATE=1——門控用法

Timer的啟/停由軟件對TRx位寫“1”/“0”和在INTx引腳上出現(xiàn)的信號的高/低共同控制。(2)C/T:定時/計數(shù)器方式選擇位。C/T=1為計數(shù)方式;C/T=0為定時方式。(3)M1M0:工作方式選擇位。M1M0=00;方式0M1M0=01;方式1M1M0=10;方式2M1M0=11;方式3。40精選2021版課件4.3.2定時器的工作方式一、方式0定時/計數(shù)器工作于方式0時為一個13位的計數(shù)器。選擇定時器(T0或T1)的高8位和低5位組成的一個13位定時器/計數(shù)器。下圖是T0在方式0時的邏輯電路結(jié)構(gòu)。T1的模式0電路結(jié)構(gòu)與T0相同。定時器T0的方式0邏輯電路MCS-51單片機內(nèi)部的定時/計數(shù)器是一種可編程器件,可設置為四種工作方式,由兩個8位專用寄存器TMOD和TCON進行管理與控制。注:此時,/INT0(須為1)不是外部中斷請求信號,而只是對定時/計數(shù)器的一個附加控制信號。41精選2021版課件(1)加1計數(shù)器為13位。TL0=5位,TH0=8位(2)(GATE+INT0)?TR0為真則啟動定時器。(3)C/T=1為計數(shù)工作方式,計數(shù)脈沖由T0引腳輸入。

計數(shù)個數(shù)N=(213—初值)(4)C/T=0為定時工作方式,時鐘頻率為fosc/12。

定時時間t=(213—初值)*時鐘周期*12顯然:在機器周期固定的情況下,定時時間的長短與計數(shù)器事先裝入的初值有關,裝入的初值越大,定時越短。

(5)計數(shù)器溢出,TF0置1。由硬件申請中斷。42精選2021版課件二、方式1

定時/計數(shù)器工作于方式1時為一個16位的計數(shù)器。其邏輯結(jié)構(gòu)、操作及運行控制幾乎與方式0完全—樣,差別僅在于計數(shù)器的位數(shù)不同。在方式1中TL0和TH0均為8位,TL0和TH0一起構(gòu)成了l6位計數(shù)器。定時工作方式1時,定時時間為:定時時間t=(216-計數(shù)初值)×機器周期用于計數(shù)器工作方式時:最大計數(shù)值為:216=65536。43精選2021版課件定時器T0的方式1邏輯電路44精選2021版課件三、方式2定時/計數(shù)器工作于方式2時,將兩個8位計數(shù)器THx、TLx分成獨立的兩部分,組成一個可自動重裝載的8位定時/計數(shù)器。其邏輯結(jié)構(gòu)如下圖所示。方式2的控制運行與方式0、方式1相同。用于定時工作方式時,定時時間t為:t=(28-計數(shù)初值X)×機器周期方式2用于計數(shù)工作方式時,最大計數(shù)值(初值=0時)是28。方式2特別適合于用作較精確的定時和脈沖信號發(fā)生器。還常用作串行口波特率發(fā)生器。45精選2021版課件四、方式3

方式3只適用于定時器T0。在方式3下,T0被分成兩個相互獨立的8位計數(shù)器TL0和TH0,如下圖所示。(1)TH0和TL0變成2個分開的獨立計數(shù)器。(2)TL0占用了全部的定時器控制位(C/T,GATE,TR0,TF0)。(3)TH0只能用于定時方式,運行控制位和溢出標志位則借用定時器1的TR1和TF1。此時的定時器1用于串行口波特率發(fā)生器。注:在T0設置為方式3工作時,一般是將定時器T1作為串行口波特率發(fā)生器,或用于不需要中斷的場合。46精選2021版課件定時器T0的方式3(a)T0方式3時的T1方式0(b)T0方式3時的T1方式147精選2021版課件4.3.3定時器/計數(shù)器應用一、定時器/計數(shù)器的計數(shù)初始化1.定時器/計數(shù)器的初始化方法初始化的主要內(nèi)容是對TCON和TMOD編程,計算和裝載T0和T1的計數(shù)初值。(1)確定相關參數(shù)1)分析定時器/計數(shù)器的工作方式,將方式字寫入TMOD寄存器;(即確定:定/計、內(nèi)/外啟動、工作方式)2)計算T0或T1中的計數(shù)初值,并將其寫入TH0、TL0或TH1、TL1;3)根據(jù)需要開放CPU和定時器/計數(shù)器的中斷,即對IE和IP寄存器編程;4)啟動定時器/計數(shù)器工作:若要求用軟件啟動,編程時對TCON中的TR0或TR1置位即可啟動;若由外部中斷引腳電平啟動,則對TCON中的TR0或TR1置位后,還需給外部引腳加啟動電平。48精選2021版課件(2)計算定時器/計數(shù)器的初值1)計數(shù)器方式時的計數(shù)初值

TC=2M-N(M為計數(shù)器位數(shù),N為要求的計數(shù)值)方式0:M=13,計數(shù)器的最大計數(shù)值213=8192;方式1:M=16,計數(shù)器的最大計數(shù)值216=65536;方式2:M=8,計數(shù)器的最大計數(shù)值28=256;方式3同方式2。例如,設T0工作在計數(shù)器方式2,求計數(shù)10個脈沖的計數(shù)初值。TC=28-10=246=(11110110)B=0F6H2)定時器方式時的計數(shù)初值在定時器方式下,定時器T0(或T1)是對機器周期進行計數(shù)的。定時時間為:t=(2M-計數(shù)初值X)×機器周期。故:

計數(shù)初值X=2M-(t/(12*Tosc))=49精選2021版課件

注意:不同方式下,M的取值不同。若系統(tǒng)時鐘頻率fOSC=12MHz。則方式0:M=13,定時器的最大定時值為:213*機器周期=8192μS;方式1:M=16,定時器的最大定時值為:216*機器周期=65536μS;方式2:M=8,定時器的最大定時值為:28*機器周期=256μS;方式3同方式2。例如:若fOSC=6MHz,定時時間為10ms,使用定時器T0工作于方式1,則定時器T0的初值為

:TC0==60536=0EC78H

注意時鐘頻率(HZ)和定時時間(S)的單位換算!50精選2021版課件2.定時器/計數(shù)器初始化舉例編寫初始化程序的步驟:

(1)方式控制字送TMOD;MOVTMOD,#——(2)計數(shù)器的初值送TH、TL(0/1);MOVTH0,#——MOVTL0,#——(3)根據(jù)需要開放中斷和設定優(yōu)先級;即對IE和IP賦初值。(4)啟動T0/T1開始工作---置位TR0/TR1;SETBTR0/TR1(5)等待溢出信號的出現(xiàn)(如何進入處理程序?)(有查詢法或中斷法)51精選2021版課件例1:要求定時器T1工作于方式1,定時50ms,由軟件啟動,允許中斷。設系統(tǒng)時鐘頻率fOSC=6MHz,編寫初始化程序段。解:1)方式控制字為00010000B=10H2)計數(shù)初值為TC1=T1初始化程序段如下:MOV TMOD,#10H ;寫入工作方式字MOV TH1,#9EH ;寫入計數(shù)初值MOV TL1,#58HSETB ET1 ;開放T1中斷SETB EA ;開放CPU中斷SETB TR1 ;啟動T1工作┋52精選2021版課件例2:

要求利用定時/計數(shù)器T0對T0引腳(P3.4)出現(xiàn)的脈沖計數(shù),每計數(shù)100個脈沖向CPU申請中斷,設由軟件啟動。編寫初始化程序段。解:1)經(jīng)分析,可設定時器T0工作于方式2計數(shù),方式控制字為00000110B=06H2)要求的計數(shù)值N=100,則計數(shù)初值為28-100=156初始化程序段如下:MOV TMOD,#06H ;寫入工作方式字MOV TH0,#156 ;寫入計數(shù)初值MOV TL0,#156MOV IE,#10000010B ;開放T0、CPU中斷SETB TR0 ;啟動T0工作53精選2021版課件二、定時器/計數(shù)器應用舉例

在應用定時器/計數(shù)器時,溢出標志TFx置位后既可由硬件向CPU申請中斷;也可通過用戶程序查詢TFx的狀態(tài),因此對計數(shù)溢出信息的處理有以下兩種方法:中斷法:在定時器初始化時要開放對應的源允許(ET0或ET1)和總允許,在啟動后等待中斷。當計數(shù)器溢出中斷時,CPU將程序轉(zhuǎn)到中斷服務程序入口,因此應在中斷服務程序中安排相應的處理程序。查詢法:在定時器初始化并啟動后,在程序中安排指令查詢TFx的狀態(tài)。LP:JBCTF0,NEXT;TF0為1,轉(zhuǎn)后面的處理程序,并將TF0復位SJMP LP;TF0為0,繼續(xù)查詢NEXT:┋54精選2021版課件采用查詢方式時的一般編程模式為:ORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——--------------SETBTR0WAIT:JBCTF0,NEXT;SJMPWAIT;NEXT:MOVTH0,#——;重裝MOVTL0,#——;初值----------;處理程序SLMPWAIT注意問題:1)方式0、1、3溢出后要重裝初值,方式2可自動重裝初值。2)方式0時TH為8位,TL為5位。采用中斷方式時的一般編程模式為:ORG0000HSJMPMAINORG000BH(001BH)LJMPT0SORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——SETBET0;SETBEA;------------------;置其他初值SETBTR0;SJMP$T0S:MOVTH0,#——MOVTL0,#——;重裝初值--------------;處理程序RETI假設使用T0,則:55精選2021版課件

1.定時器/計數(shù)器定時方式的應用例3:

利用定時/計數(shù)器定時產(chǎn)生周期信號。要求用定時器T0定時,在P1.7引腳上輸出頻率為50Hz的方波。設晶振頻率為12MHz。解:1)按題意分析:方波周期T=1/50=20ms,可用T0方式1定時10ms,使P1.7每隔10ms取反一次,即可得到周期為20ms的方波。設T0工作在方式1,由軟件啟動。2)TMOD控制字為00000001B3)初值計算:因fosc=12MHz,則機器周期為1μs。初值=216-10×103/1=65536-10000=55536=D8F0H,即有TH0=D8H,TL0=F0H。56精選2021版課件4)編程a.若采用查詢法,編程如下:ORG0030HSTAR:MOVTMOD,#01H;寫方式字MOVTH0,#0D8H;寫入計數(shù)初值MOVTL0,#0F0HSETBTR0 ;啟動T0LP:JBCTF0,NEXT ;TF0為1轉(zhuǎn)NXETSJMPLP ;TF0為0,繼續(xù)查詢NEXT:MOVTH0,#0D8H;重裝初值MOVTL0,#0F0HCPLP1.7;P1.7取反輸出方波AJMPLP;反復循環(huán)57精選2021版課件b.若采用中斷法,編程如下:主程序:

ORG0000HSJMPSTAR ORG000BH;定義T0服務程序入口AJMPDVT0ORG0030HSTAR:MOVTMOD,#01H;寫入工作方式字MOVTH0,#0D8H;寫入計數(shù)初值MOVTL0,#0F0HSETBET0;SETBEA;開放T0和CPU中斷SETBTR0 ;啟動T0SJMP$;等待中斷中斷服務程序:

DVT0:MOVTH0,#0D8H ;重裝初值MOVTL0,#0F0H;CPLP1.7;RETI58精選2021版課件2.定時器/計數(shù)器計數(shù)方式的應用

例4:

某系統(tǒng)要求用定時器T1對由P3.5(T1)引腳輸入的脈沖計數(shù),每計滿100個脈沖,在P1.0引腳輸出一個正脈沖。解:1)據(jù)題意分析,可將定時器T1設置為方式2計數(shù),由軟件啟動。2)方式控制字:TMOD=01100000B=60H3)計數(shù)初值:TC1=28-100=156=9CH,即有TH1=TL1=9CH59精選2021版課件4)程序如下:ORG0000HSJMPMAIN ORG001BH;定義T1服務程序入口AJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;寫入工作方式字MOVTH1,#9CH;寫入計數(shù)初值MOVTL1,#9CHSETBET1;開放T1中斷SETBEA;開放CPU中斷CLRP1.0SETBTR1;啟動T1SJMP$;等待中斷

DVT1:SETBP1.0 NOP NOPCLRP1.0;RETI

60精選2021版課件3.定時時間的擴展

為什么要擴展?因為晶振頻率為6MHz時一個定時器最長的定時時間為:例如,若用T0定時50ms,每次溢出后就計數(shù)一次,則計數(shù)20次就得1秒的定時。較常用的是軟件計數(shù)擴展法。軟件擴展是利用內(nèi)存單元作溢出次數(shù)的計數(shù)器。如果定時時間長,8位計數(shù)器不夠,還可采用16位計數(shù)器或用更多字節(jié)單元計數(shù)。61精選2021版課件例5:要求利用軟件擴展方法實現(xiàn)1秒定時,使得由P1口控制的8個LED指示燈每隔一秒輪流閃亮(輸出為低電平時亮),設fOSC=6MHz。解:1)分析:設利用定時器T0工作于方式1,定時50ms,并用R2作軟件計數(shù)器,取R2的初值為20,作減法計數(shù),每次T0溢出時,R2減1,當R2減到0,則定時1秒完成。2)即有:TMOD=00000001B=01H,TH0=9EH,TL0=58H(見前PPT52例1)62精選2021版課件主程序:ORG0000HSJMPMAIN ORG000BH;定義T0服務程序入口AJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;置工作方式字MOVTH0,#9EHMOVTL0,#58H;置計數(shù)初值SETBET0SETBEA;;開放中斷

MOVR2,#20;置軟件計數(shù)初值MOVA,#0FEHMOVP1,A;從P1輸出一位低電平SETBTR0SJMP$;等待中斷;中斷服務程序DVT0:MOVTH0,#9EH MOVTL0,#58H;重置計數(shù)值

DJNZR2,RTN

MOVP1,A

RLA;A循環(huán)左移一位MOVR2,#20;再置計數(shù)值RTN:RETI若采用中斷法,編程如下:63精選2021版課件4.利用定時器/計數(shù)器擴展外部中斷源

利用定時/計數(shù)器來擴展外部中斷源。方法是將定時器/計數(shù)器設置成計數(shù)器方式2計數(shù),計數(shù)初值設定為THx、TLx均為0FFH,并將待擴展的外部中斷源接到定時器/計數(shù)器的外部脈沖計數(shù)引腳.例如,利用定時器/計數(shù)器T0擴展一個外部中斷源。將T0設置為計數(shù)器方式,按方式2工作,TH0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序段如下:MOV TMOD,#06H ;置T0為計數(shù)器方式2MOV TL0,#0FFH ;置計數(shù)初值MOV TH0,#0FFHSETBTR0 ;啟動T0工作SETBEA ;CPU開中斷SETBET0 ;允許T0中斷64精選2021版課件5.門控位GATE的應用例6:利用定時/計數(shù)器T0的門控位GATE,測量引腳上出現(xiàn)的脈沖寬度,并將結(jié)果(機器周期數(shù))存入內(nèi)部RAM的30H和31H單元中。解:1)由題意分析,外部脈沖由引腳輸入,可設T0工作于定時器方式1,計數(shù)初值為0,在一個完整的外部脈沖寬度內(nèi)對機器周期計數(shù)(定時方式),顯然計數(shù)值乘上機器周期就是脈沖寬度。2)設定GATE=1,當TR0置1時,由外部脈沖上升沿啟動T0開始工作。加1計數(shù)器開始對機器周期計數(shù);引腳變?yōu)榈碗娖綍r,停止計數(shù),這時讀出TH0、TL0的值,該計數(shù)值即為被測信號的脈沖寬度對應的機器周期數(shù)。測試過程如圖所示.65精選2021版課件3)程序設計工作方式字:TMOD=00001001B計數(shù)初值:TH0=00H,TL0=00HORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#09H;GATE=1MOVTH0,#00H;置計數(shù)初值MOVTL0,#00HMOVR0,#30H WAIT1:JBP3.2,WAIT1;等待變低SETBTR0;預啟動T0

WAIT2:JNBP3.2,WAIT2;等待INT0變高、啟動計數(shù)WAIT3:JBP3.2,WAIT3 ;等待INT0再變低CLRTR0;停止計數(shù)MOV@R0,TL0 ;讀取計數(shù)值,存入指定單元INCR0,MOV@R0,TH0AJMPDATA ;轉(zhuǎn)數(shù)據(jù)處理程序66精選2021版課件

主要內(nèi)容:串行通信基礎;MCS-51單片機串行通信接口的結(jié)構(gòu);MCS-51單片機串行通信的工作原理及其工作方式;MCS-51單片機串行接口應用編程。重點:MCS-51單片機串行接口的工作原理及工作方式;MCS-51單片機串行接口應用程序設計方法。4.4單片機的串行通信67精選2021版課件

串行通信優(yōu)點:便于長距離傳送缺點:傳送速度較慢計算機與外界信息交換稱為通信。通信的基本方式可分為并行通信和串行通信:并行通信是數(shù)據(jù)的各位同時發(fā)送或同時接收;串行通信是數(shù)據(jù)的各位依次逐位發(fā)送或接收。并行通信優(yōu)點:傳送速度快

缺點:不便長距離傳送68精選2021版課件

(a)并行通信 (b)串行通信通信的兩種基本方式69精選2021版課件

異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送/接收,但因每個字節(jié)都要建立一次同步,即每個字符都要額外附加兩位,所以工作速度較低,在單片機中主要采用異步通信方式。4.4.1串行通信基礎

串行通信有兩種基本通信方式:異步通信和同步通信。在此,只介紹異步通信。一、異步串行通信的字符格式異步通信依靠起始位、停止位保持通信同步。異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗位和停止位。

70精選2021版課件幀異步串行通信的字符格式起始位數(shù)據(jù)位[0~(n

1)位]奇偶位停止位起始位位時間

異步串行通信以字符為單位,即一個字符一個字符的傳送。71精選2021版課件(b)有空閑位串行異步通信的幀格式(a)無空閑位72精選2021版課件

⑶奇偶效驗位——用于對字符的傳送作正確性檢查,因此奇偶效驗位是可選擇的,共有3種可能,即奇效驗、偶效驗和無效驗,由用戶根據(jù)需要選定。⑴起始位——開始一個字符的傳送的標志位。起始位使數(shù)據(jù)線處于“0”狀態(tài)。

⑵數(shù)據(jù)位——起始位之后傳送的數(shù)據(jù)信號位。在數(shù)據(jù)位中,低位在前(左)高位在后(右)。由于字符編碼方式的不同,數(shù)據(jù)位可以是5、6、7或8位。⑷停止位——用以標志一個字符的結(jié)束,它對應于“1”狀態(tài)。停止位在一幀的最后,它可能是1、1.5或2位,在實際中根據(jù)需要確定。73精選2021版課件⑸位時間——一個格式位的時間寬度。

⑹幀(frame)——從起始位開始到停止位結(jié)束的全部內(nèi)容稱之為一幀。幀是一個字符的完整通信格式,因此也就把串行通信的字符格式稱之為幀格式。二、異步串行通信的信號形式

1、近程通信

近程通信又稱本地通信。

近程通信采用數(shù)字信號直接傳送形式,即在傳送過程中不改變原數(shù)據(jù)代碼的波形和頻率。這種數(shù)據(jù)傳送方式稱之為基帶傳送方式。74精選2021版課件寄存器串行接口TTL電平寄存器串行接口TTL電平計算機A計算機BRS-232電平標準

近程串行通信

計算機內(nèi)部的數(shù)據(jù)信號是TTL電平標準,而通信線上的數(shù)據(jù)信號卻是RS

232C電平標準。然而,盡管電平標準不同,但數(shù)據(jù)信號的波形和頻率并沒有改變。近程串行通信只需用傳輸線把兩端的接口電路直接連起來即可實現(xiàn),既方便又經(jīng)濟。75精選2021版課件2、遠程通信

在遠程串行通信中,應使用專用的通信電纜,但出于經(jīng)濟上的考慮也可以使用電話線作為傳輸線。

數(shù)字信號計算機MODEM計算機電話線MODEM

遠程串行通信模擬信號數(shù)字信號

遠距離直接傳送數(shù)字信號,信號會發(fā)生畸變,因此要把數(shù)字信號變?yōu)槟M信號再進行傳送。信號形式的轉(zhuǎn)變通常使用頻率調(diào)制法,即以不同頻率的載波信號代表數(shù)字信號的兩種不同電平狀態(tài)。這種數(shù)據(jù)傳送方式就稱為頻帶傳送方式。

76精選2021版課件

波特率對于CPU與外界的通信是很重要的。相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。在通信中發(fā)、接雙方有兩次約定:

字符格式————幀格式傳送速率————波特率三、串行通信波特率

波特率bps(bitpersecond)為數(shù)據(jù)傳送速率,表示每秒鐘傳送二進制代碼的位數(shù),它的單位是b/s。即:1波特=1位/秒(1bps)作用:1.反映串行通信的速率;2.反映對傳輸通道的要求:波特率越高,要求的傳輸通道的頻帶寬度就越寬。77精選2021版課件

假如數(shù)據(jù)傳送的速率是120個字符/秒,每一個字符規(guī)定包含10個位(一個起始位、8個數(shù)據(jù)位和1個停止位),則傳送的波特率為:10×120=1200位/秒=1200波特(bps)每一位的傳送時間即為波特率的倒數(shù)。

注意:時鐘頻率和波特率不是同一個概念,時鐘頻率比波特率高得多。78精選2021版課件四、串行通信的制式

串行通信按照數(shù)據(jù)傳送方向可分為三種制式:

單工制式是指甲乙雙方通信時只能單向傳送數(shù)據(jù),發(fā)送方和接收方固定。1、單工制式(Simplex)79精選2021版課件

半雙工制式是指通信雙方都具有發(fā)送器和接收器,既可發(fā)送也可接收,但不能同時接收和發(fā)送,發(fā)送時不能接收,接收時不能發(fā)送。2、半雙工制式(HalfDuplex)80精選2021版課件三、EIA-232-D端口的直接連接

兩臺計算機可通過調(diào)制解調(diào)器(Modem),由電話線連接實現(xiàn)長距離通信。在工業(yè)數(shù)據(jù)通信中,常直接將兩臺計算機的EIA-232端口連接。在通信過程中,不需要握手時,只需要3根連接線,DB-9連接器的接線如圖(a)所示。在需要握手時,還需要將請求發(fā)送、允許發(fā)送、準備就緒等信號端形成如圖(b)所示的交叉連接形式。(a)無握手(b)全握手

EIA-232端口的直接連接

81精選2021版課件

全雙工制式是指通信雙方均設有發(fā)送器和接收器,并且信道劃分為發(fā)送信道和接收信道,因此全雙工制式可實現(xiàn)甲乙雙方同時發(fā)送和接收數(shù)據(jù),發(fā)送時能接收,接收時也能發(fā)送。3、全雙工制式(FullDuplex)82精選2021版課件4.4.2EIA-232-D接口標準

EIA-232-D是由美國電子工業(yè)協(xié)會正式公布的串行總線標準,也是目前最常用的串行接口標準,用來實現(xiàn)計算機之間、計算機與外設之間的數(shù)據(jù)通信。EIA-232-D總線接口適用于設備之間距離不大于15米,傳輸速度最大20kb/s。一、EIA-232-D信號引腳定義EIA-232-D定義了22根線,采用標準25芯(DB-25)插頭座,在EIA-232中描述的連接器還有DB-9。如表4.7和4.8所示(見教材78頁)。二、電氣特性EIA-232-D采用負邏輯,即:邏輯“1”:-3V~-15V邏輯“0”:+3V~+15VEIA-232-D的邏輯電平與TTL電平不兼容,為了與TTL器件相連必須進行電平轉(zhuǎn)換。83精選2021版課件

4.4.3MCS-51串行口結(jié)構(gòu)及工作原理

當計算機向外發(fā)送數(shù)據(jù)時,必須將并行的數(shù)據(jù)轉(zhuǎn)換為串行的數(shù)據(jù)再傳送。反之,又必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入計算機中。通用的異步接收/發(fā)送器,簡稱UART(UniversalAsynchronousReceiver/Transmitter),就是完成這一功能的硬件電路。

MCS-51單片機有一個可編程全雙工的串行通信接口(UART),可同時發(fā)送、接收數(shù)據(jù)(Transmit/Receive);可以方便地實現(xiàn)與其他單片機之間、與PC機之間的串行通信,也可用通信接口實現(xiàn)鍵盤輸入、LED顯示及其他的控制。

在串行口中可供用戶使用的是它的寄存器,因此了解其寄存器結(jié)構(gòu)對用戶來說是十分重要的。84精選2021版課件

MCS-51單片機串行接口由兩個獨立的數(shù)據(jù)緩沖器SBUF(一個用作接收,一個用作發(fā)送)以及發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門等組成。用戶可訪問的四個地址單元為:SBUF(99H):兩個SBUF共用一個地址99H。發(fā)送SBUF只寫不讀,接收SBUF只讀不寫,由所用指令是發(fā)送還是接收來決定對兩個SBUF進行操作;SCON(98H)

:串行口控制寄存器PCON(87H)

:電源控制寄存器IE(0A8H):中斷允許寄存器

一、MCS-51單片機串行接口的結(jié)構(gòu)

輸入/輸出接口是CPU與外設之間信息交換的橋梁,它可以制成一塊單獨的大規(guī)模集成電路,也可以和CPU集成在同一塊芯片上,單片機中就是后一種結(jié)構(gòu)。I/O接口有并行接口和串行接口兩種。85精選2021版課件86精選2021版課件51單片機的串行接口結(jié)構(gòu)SBUF(發(fā))SBUF(收)發(fā)送控制器TI接收控制器RI移位寄存器波特率發(fā)生器T11A累加器(門)RxDTxD去申請中斷引腳引腳CPU內(nèi)部87精選2021版課件

發(fā)送時,只需將發(fā)送數(shù)據(jù)輸入SBUF,CPU將自動啟動和完成串行數(shù)據(jù)的發(fā)送;接收時,CPU將自動把接收到的數(shù)據(jù)存入SBUF,用戶只需從SBUF中讀出接收數(shù)據(jù)。1.串行數(shù)據(jù)緩沖器SBUF(99H)

在邏輯上只有一個,既表示發(fā)送寄存器,又表示接收寄存器,具有同一個單元地址99H,用同一寄存器名SBUF。在物理上有兩個,一個是發(fā)送緩沖寄存器,另一個是接收緩沖寄存器。MOVSBUF,A;啟動一次數(shù)據(jù)發(fā)送MOVA,SBUF;完成一次數(shù)據(jù)接收88精選2021版課件發(fā)送SBUF(99H)接收SUBF(99H)輸入移位寄存器TI(發(fā)送中斷)TXD串行輸出8051內(nèi)部總線RXD串行輸入RI(接收輸入)移位時鐘MCS-51串行口寄存器結(jié)構(gòu)89精選2021版課件在接收方式下,串行數(shù)據(jù)通過引腳RXD(P3.0)進入。由于在接收寄存器之間還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤,即在下一幀數(shù)據(jù)來時,前一幀數(shù)據(jù)還沒有讀走。

在發(fā)送方式下,串行數(shù)據(jù)通過TXD(P3.1)送出。與接收數(shù)據(jù)情況不同,發(fā)送數(shù)據(jù)時,由于CPU是主動的,不會發(fā)生幀重疊錯誤,因此發(fā)送電路就不需雙重緩沖結(jié)構(gòu),這樣可以提高數(shù)據(jù)發(fā)送速度。90精選2021版課件2.串行控制寄存器SCON(98H)SCOND7D6D5D4D3D2D1D0位名稱SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式選擇多機通信控制接收允許發(fā)送第9位接收第9位發(fā)送中斷接收中斷①SM0SM1——串行口工作方式選擇位。②SM2——多機通信控制位。③REN——允許接收控制位。REN=1,允許接收。④TB8——方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。⑤RB8——方式2和方式3中要接收的第9位數(shù)據(jù)。⑥TI——發(fā)送中斷標志。⑦RI——接收中斷標志。SCON是一個可位尋址的專用寄存器,用來設定串行口的工作方式、控制串行口的接收/發(fā)送以及狀態(tài)標志。91精選2021版課件①

SM0SM1——串行口工作方式選擇位。其狀態(tài)組合所對應的工作方式如下表所示。

SM0SM1工作方式功能說明000同步移位寄存器輸入/輸出,波特率固定為fosc/120118位UART;波特率可變(T1溢出率/n,n=32或16)1029位UART,波特率固定為fosc/n,(n=64或32)1139位UART,波特率可變(T1溢出率/n,n=32或16)SM2----多機通信控制位。

在工作方式2和方式3中:若SM2=1:當接收到第9位數(shù)據(jù)(RB8)為1,才將接收到的前8位數(shù)據(jù)裝入SBUF,并置位RI;否則將接收到的數(shù)據(jù)丟棄。若SM2=0:不論第9位數(shù)據(jù)(RB8)是否為1,都將接收到的前8位數(shù)據(jù)裝入SBUF,并置位RI。在方式1中:若SM2=1,則只有接收到有效的停止位時,才置位RI。在方式0中:必須使SM2=092精選2021版課件③REN------允許接收控制位。REN位用于對串行數(shù)據(jù)的接收進行控制:REN=0,禁止接收;REN=1,允許接收。該位由軟件置位或復位。④TB8------方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。在方式2和方式3時,TB8是發(fā)送的第9位數(shù)據(jù)。在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的是地址還是數(shù)據(jù):TB8=0表示數(shù)據(jù),TB8=1表示地址。該位由軟件置位或復位。TB8還可用于奇偶校驗位。⑤RB8------方式2和方式3中要接收的第9位數(shù)據(jù)。在方式2或方式3時,RB8存放接收到的第9位數(shù)據(jù)。注:多機通信時,SM2必須置1。雙機通信時,通常使SM2=0。93精選2021版課件⑥TI------發(fā)送中斷標志。當方式0時,發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,遇發(fā)送停止位時,該位由硬件置位。因此TI=1,表示幀發(fā)送結(jié)束,可軟件查詢TI位標志,也可以請求中斷。TI位必須由軟件清0。⑦RI------接收中斷標志。當方式0時,接收完第8位數(shù)據(jù)后,該位由硬件置位。在其他方式下,當接收到停止位時,該位由硬件置位。因此RI=1,表示幀接收結(jié)束,可軟件查詢RI位標志,也可以請求中斷。RI位也必須由軟件清0。注:接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式工作,每接收/發(fā)送一個數(shù)據(jù)都必須用指令對RI/TI清0,以備下一次收/發(fā)。單片機復位時,SCON中的所有位均為0。94精選2021版課件3.電源控制寄存器PCON(87H)PCOND7D6D5D4D3D2D1D0位名稱SMOD———GF1GF0PDIDL?SMOD:在串行口工作方式1、2、3中,是波特率加倍位:=1時,波特率加倍=0時,波特率不加倍。(復位時,SMOD=0。

)

PCON寄存器不能進行位尋址。只有最高位SMOD與串行口工作有關。

ES=0禁止串行中斷

ES=1允許串行中斷4.中斷允許寄存器IE

95精選2021版課件

MCS—51單片機的串行口可編程選擇四種工作方式,其中方式0主要用于擴展并行輸入/輸出口,串行通信時一般使用方式1、2或3。1.方式0工作在方式0時,串行口是作為同步移位寄存器使用的,其數(shù)據(jù)傳輸波特率固定為foc/12。串行數(shù)據(jù)由RXD(P3.0)端輸入/輸出,同步移位脈沖由TXD(P3.1)端輸出。數(shù)據(jù)的發(fā)送/接收以8位為一幀,低位在前,無起始位、奇偶位及停止位。其幀格式為:二、MCS—51串行通信接口的工作方式96精選2021版課件

DATACD4094CLKSTB并行輸出80C51RXD

TXDP1.0Q8CD4014CLKP/S并行輸入80C51RXD

TXDP1.0

串行口與CD4094配合串行口與CD4014配合

使用方式0實現(xiàn)數(shù)據(jù)的移位輸入/輸出時,實際上是把串行口變成為并行口使用。串行口作為并行口輸出使用時,要有“串入并出”的移位寄存器(例如CD4094或74LS164、74HC164等)配合;串行口作為并行口輸入使用時,要有“并入串出”的移位寄存器(例如CD4014等)配合。其電路連接如上圖所示。

故在方式0下,常用于擴展I/O口。97精選2021版課件⑴數(shù)據(jù)發(fā)送

在移位時鐘脈沖(TXD)的控制下,數(shù)據(jù)從串行口RXD端逐位移入74HC164SA、SB端。當8位數(shù)據(jù)全部移出后,SCON寄存器的TI位被自動置1。其后74HC164的內(nèi)容即可并行輸出。74HC164CLR為清0端,輸出時CLR必須為1,否則74HC164Q0~Q7輸出為0。

串行口作為并行輸出口使用時,要有“串入并出”的移位寄存器配合。(例如CD4094或74HCl64)98精選2021版課件(2)數(shù)據(jù)接收

串行口作為并行輸入口使用時,要有“并入串出”的移位寄存器配合。(例如CD4014或74HCl65)

74HC165的S/L端為移位/置入端,當S/L=0時,從Q0~Q7并行置入數(shù)據(jù),當S/L=1時,允許從QH端移出數(shù)據(jù)。在80C51串行控制寄存器SCON中的REN=1時,TXD端發(fā)出移位時鐘脈沖,從RXD端串行輸入8位數(shù)據(jù)。當接收到第8位數(shù)據(jù)D7后,置位中斷標志RI,表示一幀數(shù)據(jù)接收完成。99精選2021版課件

(4)應用舉例

DATACD4094CLKSTB80C51RXDTXD

P1.0

串行移位輸出電路例1:使用CD4094的輸出端接8只發(fā)光二極管,利用它的串入并出功能,把發(fā)光二極管從左向右依次點亮,并反復循環(huán)之。按此要求所做的電路連接如圖所示。

⑶波特率:

方式0波特率固定,為單片機晶振頻率的十二分之一。即一個機器周期進行一次移位。100精選2021版課件解:采用查詢方式發(fā)送數(shù)據(jù)可編程序如下:

MOVSCON,#00H;串行口方式0工作CLRES ;禁止串行中斷MOVA,#80H ;發(fā)光管從左邊亮起DELR:CLRP1.0 ;關閉并行輸出MOVSBUF,A ;串行輸出WAIT:JNBTI,WAIT;狀態(tài)查詢SETBP1.0 ;開啟并行輸出ACALLDELAY ;狀態(tài)維持時間

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

RRA ;發(fā)光組合循環(huán)右移AJMPDELR ;繼續(xù)101精選2021版課件例2.電路如圖所示,試編制程序輸入K1~K8狀態(tài)數(shù)據(jù),并存入片內(nèi)RAM40H。解:編程如下:

KIN:

MOVSCON,#00H;串行口方式0CLRES ;禁止串行中斷CLRP1.0;鎖存并行輸入數(shù)據(jù)SETBP1.0;允許串行移位操作SETBREN;允許并啟動接收(TXD發(fā)送移位脈沖)WAIT:JNBRI,WAIT;等待接收完畢MOV40H,SBUF;存入K1~K8狀態(tài)數(shù)據(jù)

102精選2021版課件例3.電路如圖所示,試編制程序按下列順序要求每隔0.5秒循環(huán)操作。④從右向左依次點亮,每次亮一個;⑤從左向右依次點亮,每次增加一個,直至全部點亮;⑥返回從②不斷循環(huán)。①8個發(fā)光二極管全部點亮;②

從左向右依次暗滅,每次減少一個,直至全滅;③從左向右依次點亮,每次亮一個;解:編程如下:103精選2021版課件LIGHT:MOVSCON,#00H;串行口方式0CLRES;禁止串行中斷MOVDPTR,#TAB;置發(fā)光二極管亮暗控制字表首址LP1:MOVR7,#0;置順序編號0LP2:MOVA,R7;讀順序編號MOVCA,@A+DPTR;讀控制字CLR

溫馨提示

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

評論

0/150

提交評論