單片機(jī)課件第五章_第1頁
單片機(jī)課件第五章_第2頁
單片機(jī)課件第五章_第3頁
單片機(jī)課件第五章_第4頁
單片機(jī)課件第五章_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用 (第5章)第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51單片機(jī)最小系統(tǒng)除了有 CPU、存儲(chǔ)器和并行I/O口之外,還包括定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)和串行接口。對于一些增強(qiáng)型單片機(jī)而言,內(nèi)部還集成了看門狗、A/D轉(zhuǎn)換器等。l5.1 中斷系統(tǒng)n5.1.1中斷概述 中斷是CPU平常可以處理自己的工作,只有外設(shè)需要和CPU之間進(jìn)行信息傳送的時(shí)候,才采用中斷的方式,暫停CPU的工作,使CPU轉(zhuǎn)去處理外設(shè)的請求,處理完外設(shè)請求后,CPU繼續(xù)執(zhí)行原來被暫停的工作。中斷傳輸是CPU與外設(shè)間最常用的一種數(shù)據(jù)傳輸方式。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用采用中斷傳輸方式的功能:(1)CPU

2、與外設(shè)同步工作:CPU與外設(shè)間由串行工作變?yōu)椴⑿泄ぷ鳌T贑PU啟動(dòng)程序后,執(zhí)行主程序。當(dāng)外設(shè)準(zhǔn)備好傳送數(shù)據(jù)后,才要求CPU對其進(jìn)行處理,發(fā)出中斷申請,處理后CPU回到主程序繼續(xù)執(zhí)行,而外設(shè)得到新的數(shù)據(jù)后也可工作。實(shí)現(xiàn)CPU和外設(shè)的并行工作,大大提高了單片機(jī)的效率。(2)實(shí)時(shí)處理:所謂“實(shí)時(shí)”指單片機(jī)能夠?qū)ΜF(xiàn)場采集到的信息及時(shí)做出分析和處理,以便對被控對象立即做出響應(yīng),使被控對象保持最佳工作狀態(tài)。利用中斷技術(shù)可及時(shí)處理隨機(jī)輸入的各種參數(shù)和信息,使單片機(jī)具備實(shí)時(shí)處理和控制功能。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(3)故障處理:CPU在運(yùn)行過程中,會(huì)隨機(jī)出現(xiàn)一些無法預(yù)料的故障,如電源和硬件故障,數(shù)據(jù)

3、運(yùn)送錯(cuò)誤等。利用中斷系統(tǒng),CPU可根據(jù)故障源發(fā)出的中斷請求,立即執(zhí)行相應(yīng)的故障處理程序而不必停機(jī),從而提高了單片機(jī)的可靠性。n5.1.2 中斷的相關(guān)概念(1)中斷:當(dāng)CPU正在執(zhí)行某項(xiàng)任務(wù)A,而外界或內(nèi)部發(fā)生了緊急事件B,向CPU提出中斷請求, CPU暫停原來的任務(wù)A(中斷響應(yīng)),轉(zhuǎn)去處理事件(中斷服務(wù)),對事件B處理完畢后,再回到原來任務(wù)A被中斷的地方(即斷點(diǎn))繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。(2)中斷源:向CPU提出中斷請求的來源、引起中斷的原因,稱為中斷源。中斷源可以是I/O設(shè)備、故障、時(shí)鐘及調(diào)試中的設(shè)置。C51中一共有5個(gè):兩個(gè)外部中斷,兩個(gè)定時(shí)/計(jì)數(shù)器中斷,一個(gè)串行口中

4、斷。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(3)中斷響應(yīng):CPU在滿足條件情況下接受中斷申請,終止現(xiàn)行程序執(zhí)行,轉(zhuǎn)而為申請中斷的對象服務(wù)稱中斷響應(yīng)。(4)斷點(diǎn):現(xiàn)行程序被中斷的地址稱為斷點(diǎn)。(5)中斷嵌套及中斷優(yōu)先級:當(dāng)幾個(gè)中斷源同時(shí)向CPU發(fā)出中斷請求時(shí),CPU應(yīng)優(yōu)先響應(yīng)最需要緊急處理的中斷請求,需要規(guī)定各個(gè)中斷源的優(yōu)先級,優(yōu)先級高的請求處理完畢后,再響應(yīng)優(yōu)先級低的請求,這種預(yù)先安排好的響應(yīng)次序叫做中斷優(yōu)先級(6)中斷系統(tǒng):實(shí)現(xiàn)中斷的硬件邏輯和實(shí)現(xiàn)中斷功能的指令,統(tǒng)稱為中斷系統(tǒng)。(7)中斷服務(wù)程序和中斷返回:實(shí)現(xiàn)中斷功能的處理程序稱為中斷服務(wù)程序;完成中斷服務(wù)程序后,返回到被中斷的程序繼續(xù)執(zhí)行,

5、該過程稱為中斷返回。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用n5.1.3中斷系統(tǒng)中斷請求是在執(zhí)行程序的過程中隨機(jī)發(fā)生的,中斷系統(tǒng)要解決如下問題:(1)CPU在不斷執(zhí)行指令的過程中,如何檢測到隨機(jī)發(fā)生的中斷請求?(2)如何使中斷的雙方(CPU和中斷源)均能人為控制允許中斷或禁止中斷?(3)由于中斷的產(chǎn)生存在隨機(jī)性,因此不可能在程序中使用子程序調(diào)用指令或轉(zhuǎn)移指令,那么如何實(shí)現(xiàn)正確的轉(zhuǎn)移,從而更好地為該中斷源服務(wù)?(4)中斷源有多個(gè),而CPU只有一個(gè),當(dāng)有多個(gè)中斷源同時(shí)有中斷請求時(shí),用戶怎樣控制CPU按照自己的需要安排響應(yīng)次序?第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(5)中斷服務(wù)完畢,如何正確地返回到斷點(diǎn)?1

6、. 中斷系統(tǒng)結(jié)構(gòu)第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51系列單片機(jī)中不同型號(hào)芯片的中斷源數(shù)量是不同的,最基本的C51單片機(jī)有5個(gè)中斷源,分別是兩個(gè)外部中斷 (P3.2)和 (P3.3),2個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和TF1,一個(gè)片內(nèi)串行口中斷TI和RI。 特殊功能寄存器包括定時(shí)/計(jì)數(shù)器控制寄存器TCON、串行口控制寄存器SCON、中斷允許寄存器IE和中斷優(yōu)先級寄存器IP,主要用于控制中斷的打開和關(guān)閉、保存中斷信息、設(shè)置優(yōu)先級別。2.C51的中斷源:C51單片機(jī)的5個(gè)中斷源分別是:第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 (1) 外部中斷請求0,由引腳(P3.2)輸入,低電平/負(fù)跳變有效,在每

7、個(gè)機(jī)器周期的S5P2采樣,請求標(biāo)志位為IE0。(2)外部中斷請求1,由引腳(P3.3)輸入,低電平/負(fù)跳變有效,在每個(gè)機(jī)器周期的S5P2采樣,請求標(biāo)志位為IE1。(3)定時(shí)/計(jì)數(shù)器T0溢出中斷請求,請求標(biāo)志位為TF0。(4)定時(shí)/計(jì)數(shù)器T1溢出中斷請求,請求標(biāo)志位為TF1。(5)串行口中斷請求,當(dāng)串行口完成一幀數(shù)據(jù)的發(fā)送和接收時(shí)請求中斷,請求標(biāo)志位為TI或RI。3.相關(guān)寄存器第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 C51中斷系統(tǒng)在4個(gè)特殊功能寄存器控制下工作。4個(gè)特殊功能寄存器是定時(shí)/計(jì)數(shù)器控制寄存器(TCON)、串行口控制寄存器(SCON)、中斷允許控制寄存器(IE)和中斷優(yōu)先級控制寄存器(IP

8、)。(1)中斷允許寄存器IE(A8H)C51對中斷源的允許或屏蔽是由中斷允許寄存器IE控制,可按位尋址。單片機(jī)復(fù)位時(shí),IE被清0。通過對IE的各位置1或清0,實(shí)現(xiàn)允許或屏蔽某個(gè)中斷。 D7D6D5D4D3D2D1D0IEEAESET1EX1ET1EX00A8H0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用EA:總中斷允許控制位。EA=0時(shí),屏蔽所有中斷;EA=l時(shí),開放所有中斷。ES:串口中斷允許控制位。ES=0時(shí),屏蔽串口中斷;ES=l且EA=1時(shí),允許串口中斷。ETl:定時(shí)計(jì)數(shù)器Tl中斷允許控制位。ETl=0時(shí),屏蔽Tl溢出中斷;ETl=

9、 l且EA=1時(shí),允許Tl溢出中斷。EXl:外部中斷中斷允許控制位。EXl=0時(shí),屏蔽外部中斷; EXl=l且EA=1時(shí),允許外部中斷。ET0:定時(shí)計(jì)數(shù)器T0中斷允許控制位。功能與ETl類似。EX0:外部中斷的中斷允許控制位。功能與EXl類似。 單片機(jī)采用兩級中斷控制,1個(gè)總的開關(guān)控制EA,5個(gè)中斷源控制位, 設(shè)置中斷允許時(shí),各個(gè)中斷控制位應(yīng)該和中斷允許總控制位配合使用。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(2)中斷優(yōu)先級控制寄存器IP(B8H) 中斷系統(tǒng)中,用戶對中斷的管理還體現(xiàn)在當(dāng)有多個(gè)中斷源有中斷請求時(shí),用戶控制CPU按照自己的需要安排響應(yīng)次序。這種管理通過對特殊功能寄存器IP的設(shè)置來完成

10、,可位尋址。D7D6D5D4D3D2D1 D0IPPSPT1PX1PT0 PX0 0B8H0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8HPX0、PT0、PXl、PTl和PS分別為、T0、Tl和串口中斷優(yōu)先級控制位。當(dāng)相應(yīng)的位為0時(shí),所對應(yīng)的中斷源定義為低優(yōu)先級,相反則定義為高優(yōu)先級。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用CPU響應(yīng)中斷的優(yōu)先級控制原則是:(1)若多個(gè)中斷請求同時(shí)有效,CPU優(yōu)先響應(yīng)優(yōu)先權(quán)最高的中斷。如果是同級中斷,則按照CPU查詢次序確定哪個(gè)中斷被響應(yīng)。(2)同級的中斷或更低級的中斷不能打斷CPU正在響應(yīng)的中斷過程。一直到該中斷服務(wù)程序結(jié)束,返回主程序且執(zhí)行了主程

11、序中的一條指令后,CPU才響應(yīng)新的中斷請求。 (3)低優(yōu)先權(quán)的中斷響應(yīng)過程可被高優(yōu)先權(quán)的中斷請求所中斷,CPU會(huì)暫時(shí)中止當(dāng)前低優(yōu)先權(quán)的中斷過程,而響應(yīng)高優(yōu)先權(quán)中斷第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用n5.1.4中斷響應(yīng)過程1.中斷請求及中斷撤除(1)中斷請求:若是外部中斷源,則需將外部中斷源接到單片機(jī)的P3.2()或P3.3()引腳上。當(dāng)外部中斷源發(fā)出有效中斷信號(hào)時(shí),相應(yīng)的中斷請求標(biāo)志位IE0或IE1置“1”,提出中斷請求。若是內(nèi)部中斷源發(fā)出有效中斷信號(hào),如T0、T1溢出,則相應(yīng)的中斷請求標(biāo)志位TF0或TF1置“1”,提出中斷請求。(2)中斷請求的撤除:CPU響應(yīng)中斷請求,轉(zhuǎn)向中斷服務(wù)程序執(zhí)行,

12、在其執(zhí)行中斷返回指令RETI之前,中斷請求信號(hào)必須撤除,否則將會(huì)再一次引起中斷而出錯(cuò)。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用2.中斷響應(yīng)(1)單片機(jī)響應(yīng)中斷的條件:單片機(jī)響應(yīng)中斷的條件是中斷源有請求且CPU開中斷(即EA=1) 無同級或高級中斷正在處理。現(xiàn)行指令執(zhí)行到最后1個(gè)機(jī)器周期且已結(jié)束。若現(xiàn)行指令為RETI或訪問特殊功能寄存器IE、IP的指令時(shí),執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。(2)中斷響應(yīng)過程:置位中斷優(yōu)先級有效觸發(fā)器,即關(guān)閉同級和低級中斷;轉(zhuǎn)入中斷服務(wù)程序入口地址,斷點(diǎn)入棧保護(hù); 進(jìn)入中斷服務(wù)程序。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(3)響應(yīng)時(shí)間:從查詢中斷請求標(biāo)志位到轉(zhuǎn)

13、向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢中斷請求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:1個(gè)周期(查詢)2個(gè)周期(保護(hù)斷點(diǎn),相當(dāng)于LCALL指令)。最長時(shí)間若當(dāng)前指令是RET、RETI和訪問IP、IE指令,緊接著下一條是乘除指令,則最長為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)4個(gè)周期乘除指令2個(gè)周期長調(diào)用8個(gè)周期。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用3.中斷服務(wù)程序(1)中斷服務(wù)程序設(shè)計(jì)的基本任務(wù):設(shè)置IE,允許相應(yīng)的中斷請求。設(shè)置IP,確定并分配所使用的中斷優(yōu)先級。若是外部中斷源,還要設(shè)置中斷請求的觸發(fā)方式IT1或IT0,以決定采用電平觸發(fā)

14、還是邊沿觸發(fā)。編寫中斷服務(wù)程序,處理中斷請求。(2)中斷服務(wù)程序的流程第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用4.恢復(fù)現(xiàn)場:與保護(hù)現(xiàn)場相對應(yīng),在返回前(即執(zhí)行返回指令RETI前),通過“POP direct”指令將保護(hù)現(xiàn)場時(shí)壓入堆棧的內(nèi)容彈出,送到相關(guān)的存儲(chǔ)單元后,再中斷返回。5.中斷返回:中斷處理程序的最后一條指令是RETI,它的功能是使CPU結(jié)束中斷處理程序的執(zhí)行,返回到斷點(diǎn)處,繼續(xù)執(zhí)行主程序。n5.1.5中斷的編程及應(yīng)用 對中斷系統(tǒng)進(jìn)行初始化,即對幾個(gè)特殊功能寄存器的有關(guān)控制位進(jìn)行賦值(1)開中斷和允許中斷源中斷,設(shè)置IE。(2)確定各中斷源的優(yōu)先級,設(shè)置IP。(3)若為外部中斷,應(yīng)規(guī)定是電平

15、觸發(fā)還是邊沿觸發(fā),設(shè)置中斷請求的觸發(fā)方式ITx(x=0/1)。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用在中斷服務(wù)程序中需完成下面幾個(gè)必要工作:(1)現(xiàn)場保護(hù)和現(xiàn)場恢復(fù)(2)開中斷和關(guān)中斷 (3)中斷處理(4)中斷返回l5.2 定時(shí)/計(jì)數(shù)器n5.2.1 概述1.計(jì)數(shù)容量 :C51單片機(jī)中有兩個(gè)計(jì)數(shù)器,分別稱之為T0和T1,這兩個(gè)計(jì)數(shù)器分別是由兩個(gè)8位的RAM單元組成,即每個(gè)計(jì)數(shù)器都是16位,最大計(jì)數(shù)容量是65536。2.定時(shí):定時(shí)/計(jì)數(shù)器是單片機(jī)中最常用、最基本的重要組成功能部件之一,可用來實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測量、脈沖寬度測量、信號(hào)發(fā)生、信號(hào)檢測等功能。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用3.溢出

16、:計(jì)數(shù)器溢出時(shí),將使標(biāo)志位TF0/TF1置“1”。一旦TF0/TF1由0變1,就會(huì)引發(fā)事件,像定時(shí)的時(shí)間一到,鬧鐘會(huì)響。4.定時(shí)方法:1)硬件定時(shí)-硬件定時(shí)方法的特點(diǎn)是定時(shí)功能全部由硬件電路完成,不占CPU時(shí)間,可通過修改電路中的元件參數(shù)(電阻或電容值)來調(diào)節(jié)定時(shí)時(shí)間,但硬件連接好以后,定時(shí)值不能由軟件進(jìn)行控制和修改,即不可編程。2)軟件定時(shí)-讓CPU循環(huán)執(zhí)行一段程序以實(shí)現(xiàn)延遲,延遲時(shí)間可通過選擇指令和設(shè)計(jì)循環(huán)次數(shù)來實(shí)現(xiàn)。軟件定時(shí)的特點(diǎn)是時(shí)間精確,且無需外加硬件電路。3)可編程定時(shí)-通過對系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)來實(shí)現(xiàn)。計(jì)數(shù)值容易用程序來設(shè)定和修改,使用既靈活又方便。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)

17、用5.單片機(jī)時(shí)鐘特點(diǎn)及與微機(jī)的區(qū)別:設(shè)單片機(jī)外接12MHz晶振。單片機(jī)中,定時(shí)/計(jì)數(shù)器實(shí)際是一個(gè)加1計(jì)數(shù)器,每輸入一個(gè)脈沖,計(jì)數(shù)器的值就會(huì)自動(dòng)加1,而花費(fèi)的時(shí)間恰好是1微秒;只要相鄰兩個(gè)計(jì)數(shù)脈沖間的時(shí)間間隔相等,則計(jì)數(shù)值就代表了時(shí)間的流逝。PC機(jī)上的CPU主頻是晶振經(jīng)過倍頻之后的頻率,這一點(diǎn)恰好與C51單片機(jī)的相反。而C51單片機(jī)的主頻是晶振經(jīng)過分頻之后的頻率。所以,C51單片機(jī)中的時(shí)間概念是通過測量計(jì)數(shù)脈沖的個(gè)數(shù)得到n5.2.2 定時(shí)/計(jì)數(shù)的結(jié)構(gòu)與工作原理1. 定時(shí)/計(jì)數(shù)器結(jié)構(gòu): C51單片機(jī)內(nèi)部設(shè)有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器:定時(shí)器0和定時(shí)器1。T0由2個(gè)定時(shí)寄存器TH0和TL0構(gòu)成,

18、T1則由TH1和TL1構(gòu)成,它們分別映射在特殊功能寄存器中。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用2. 定時(shí)/計(jì)數(shù)器工作原理16位定時(shí)/計(jì)數(shù)器的控制電路受軟件控制、切換。當(dāng)定時(shí)/計(jì)數(shù)器設(shè)置為定時(shí)工作方式時(shí),計(jì)數(shù)器對內(nèi)部機(jī)器周期計(jì)數(shù),每過一個(gè)機(jī)器周期,計(jì)數(shù)器加1,直至計(jì)滿溢出。定時(shí)器的定時(shí)時(shí)間與系統(tǒng)的振蕩頻率緊密相關(guān),因?yàn)镃51單片機(jī)的一個(gè)機(jī)器周期等于12個(gè)振蕩周期,如果單片機(jī)系統(tǒng)采用12MHz晶振,即計(jì)數(shù)頻率fcount=fosc,則計(jì)數(shù)周期為: usT11012126第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用計(jì)數(shù)寄存器的溢出: (1)每來一個(gè)脈沖,計(jì)數(shù)器寄存器加1;

19、(2)計(jì)數(shù)器計(jì)滿時(shí),再來一脈沖加1,計(jì)數(shù)器溢出,產(chǎn)生溢出信號(hào),TF0或TF1置1; (3)計(jì)數(shù)器溢出事件表示定時(shí)時(shí)間到或計(jì)數(shù)值已滿,需要單片機(jī)處理,計(jì)數(shù)的初值為:計(jì)數(shù)初值=2n-計(jì)數(shù)值。3. 定時(shí)/計(jì)數(shù)器的控制寄存器 在定時(shí)/計(jì)數(shù)器開始工作前,CPU必須將控制字寫入定時(shí)/計(jì)數(shù)器的相關(guān)寄存器,實(shí)現(xiàn)定時(shí)/計(jì)數(shù)器初始化。在初始化過程中,要將工作方式控制字寫入方式寄存器,工作狀態(tài)字寫入控制寄存器,賦定時(shí)/計(jì)數(shù)初值。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(1)定時(shí)/計(jì)數(shù)器控制寄存器TCON(88H) TCON為定時(shí)計(jì)數(shù)器控制寄存器,地址為88H,可位尋址,位地址范圍為88H8FH。其功能是控制定時(shí)器的啟動(dòng)和

20、停止,它除了控制定時(shí)數(shù)器T0、Tl的溢出中斷外,還控制著兩個(gè)外部中斷源的觸發(fā)方式和鎖存兩個(gè)外部中斷源的中斷請求標(biāo)志IE0和IE1。TCON T1 T1 T0 T0 INT1 INT1 INT0 INT0 中斷標(biāo)志 運(yùn)行標(biāo)志 中斷標(biāo)志 運(yùn)行標(biāo)志 中斷標(biāo)志 觸發(fā)方式 中斷標(biāo)志 觸發(fā)方式名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H 88H第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 TF1/TF0:C/T1、C/T0溢出中斷請求標(biāo)志位 TR1/TR0:C/T1、C/T0運(yùn)行控制位。 IT0/IT1:外部中斷0(或1)的中斷觸發(fā)方式控制位 IE0/IE1:

21、外部中斷0(或1)的中斷請求標(biāo)志位(2)定時(shí)/計(jì)數(shù)器方式寄存器TMOD(89H) TMOD在特殊功能寄存器中,字節(jié)地址為89H,無位地址,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。TMODGATEC/T M1 M0 GATE C/T M1 M089HD7D6 D5 D4 D3 D2 D1D0 定時(shí)器1 定時(shí)器0T第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用n5.2.3 定時(shí)/計(jì)數(shù)器工作方式 C51系列單片機(jī)的定時(shí)/計(jì)數(shù)器還有4種工作方式(方式0、方式1、方式2和方式3)。除方式3外,T0和T1有完全相同的工作狀態(tài)。1.工作方式0及其應(yīng)用 工作方式0是13位計(jì)數(shù)器方式。最大計(jì)數(shù)值213 = 8192。定時(shí)

22、時(shí)間為: t=(213T0初值)機(jī)器周期=(213T0初值)振蕩周期12 最大定時(shí)時(shí)間:213機(jī)器周期第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用定時(shí)/計(jì)數(shù)器0工作在方式0時(shí)電路邏輯結(jié)構(gòu)如圖第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用 當(dāng)=0時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置為定時(shí)方式,單片機(jī)系統(tǒng)時(shí)鐘振蕩器產(chǎn)生的振蕩信號(hào)被12分頻后作為時(shí)基脈沖,加法計(jì)數(shù)器對機(jī)器周期計(jì)數(shù);當(dāng)=1時(shí),定時(shí)/計(jì)數(shù)器被設(shè)置為計(jì)數(shù)方式,外部信號(hào)被選中,由T0端(P3.4腳)輸入作為計(jì)數(shù)脈沖,當(dāng)計(jì)數(shù)脈沖發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1,實(shí)現(xiàn)計(jì)數(shù)功能。2.工作方式1及其應(yīng)用方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式。邏輯結(jié)構(gòu)如圖5-10所示。TL0:存放計(jì)數(shù)初值的低8位。

23、TH0存放計(jì)數(shù)初值的高8位。定時(shí)時(shí)間的計(jì)算: 定時(shí)時(shí)間=(216-定時(shí)初值)機(jī)器周期最大定時(shí)時(shí)間:216機(jī)器周期。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是:165536(216)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為: t=(216計(jì)數(shù)初值)晶振周期12 或 t=(216計(jì)數(shù)初值)機(jī)器周期 3.工作方式2及其應(yīng)用方式2為可自動(dòng)重裝時(shí)間常數(shù)的8位定時(shí)/計(jì)數(shù)器。TL0為8位的定時(shí)/計(jì)數(shù)器,而TH0為8位預(yù)置寄存器,用于保存計(jì)數(shù)初值。工作過程:當(dāng)TL0計(jì)滿溢出時(shí),TF0置1,向CPU發(fā)出中斷請求;同時(shí)引起重裝操作(TH0的計(jì)數(shù)初值送到TL

24、0),進(jìn)行新一輪計(jì)數(shù)。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用優(yōu)點(diǎn):模式2能夠進(jìn)行自動(dòng)重裝載。模式0和1計(jì)數(shù)溢出后,計(jì)數(shù)器為全0。循環(huán)定時(shí)或計(jì)數(shù)時(shí),需要重新設(shè)置初值。故當(dāng)模式2能夠滿足計(jì)數(shù)/定時(shí)要求時(shí),盡可能使用模式2。 缺點(diǎn):這種方式的定時(shí)/計(jì)數(shù)范圍要小于方式0和方式1。4.工作方式3及其應(yīng)用 方式3為兩個(gè)獨(dú)立的8位計(jì)數(shù)器,即把定時(shí)器0的兩個(gè)8位計(jì)數(shù)寄存器TH0和TL0分開使用。但此方式僅適用于T0,T1無方式3。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用n5.2.4 定時(shí)/計(jì)數(shù)器的應(yīng)用1.定時(shí)/計(jì)數(shù)器的初始化(1)確定工作方式,盡可能地選擇方式2,若 N256選擇方式2,否則選擇方式1;如果需要增加一個(gè)

25、定時(shí)/計(jì)數(shù)器則選擇方式3;(2)預(yù)置定時(shí)或計(jì)數(shù)初值(可直接將初值寫入TH0、TL0或TH1、TL1);(3)根據(jù)需要開放定時(shí)/計(jì)數(shù)器的中斷(直接對IE位賦值); (4)啟動(dòng)定時(shí)/計(jì)數(shù)器(若已規(guī)定用軟件啟動(dòng),則可把TR0或TR1置“1”;若已規(guī)定由外中斷引腳電平啟動(dòng),則需給外引腳加啟動(dòng)電平。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用2.定時(shí)/計(jì)數(shù)器初值計(jì)算(1)工作于定時(shí)方式計(jì)數(shù)脈沖由內(nèi)部的時(shí)鐘提供,每個(gè)機(jī)器周期進(jìn)行加1。設(shè)晶振頻率為fosc,則計(jì)數(shù)脈沖的頻率為fosc/12,計(jì)數(shù)脈沖周期T=1/(fosc/12)。設(shè)定時(shí)時(shí)間為t,求計(jì)數(shù)初值X,則: t=(2n -X)12/fosc (2)工作于計(jì)數(shù)方

26、式當(dāng)工作在計(jì)數(shù)方式時(shí),對外部脈沖計(jì)數(shù)。利用計(jì)數(shù)器計(jì)數(shù)結(jié)束產(chǎn)生溢出的特性,來計(jì)算初值X 。則有: X= 2n計(jì)數(shù)次數(shù) 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用l5.3 C51單片機(jī)串行通信與串行接口5.3.1串行通信基礎(chǔ)知識(shí)1. 并行通信方式:并行通信將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)傳送,每一位數(shù)據(jù)都需要一條傳輸線,如圖2.串行通信方式: 串行通信將數(shù)據(jù)的各位一位一位地依次傳送。只需要一條數(shù)據(jù)線,外加一條公共信號(hào)地線和若干控制信號(hào)線第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用3.串行通信的分類:按照同步時(shí)鐘的不同,串行通信可分為同步通信和異步通信。在單片機(jī)中使用的大都是異步串行通信1)異步通信:異步通信中數(shù)據(jù)通

27、常是以字符(或字節(jié))為單位組成字符幀傳送。字符幀由發(fā)送端到接收端一幀一幀地發(fā)送和接收,這兩個(gè)時(shí)鐘彼此獨(dú)立,互不同步 在異步通信方式中,接收器和發(fā)送器有各自的時(shí)鐘,它們是非同步工作。通常,在無數(shù)據(jù)傳送時(shí),發(fā)送線為高電平(邏輯“ 1 ”),每當(dāng)接收端檢測到傳輸線上發(fā)送過來的低電平邏輯“ 0 ”(字符幀中起始位)時(shí)就知道發(fā)送端已開始發(fā)送,每當(dāng)接收端接收到字符幀中停止位時(shí)就知道一幀字符信息已發(fā)送完畢。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(1)異步串行通信的字符格式 在異步通信中,接收端是依靠字符幀格式來判斷發(fā)送端開始發(fā)送和結(jié)束發(fā)送的時(shí)間。字符幀也叫數(shù)據(jù)幀,由4部分組成: 起始位、 數(shù)據(jù)位、 奇偶校驗(yàn)位

28、和停止位.(2)異步通信的傳輸速率 異步串行通信的傳送速率用波特率表示。波特率的定義為每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù)(亦稱比特?cái)?shù)),單位是bps(bit per second),即位秒(3)傳輸距離與傳輸速率的關(guān)系 串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。傳輸距離是隨傳輸速率的增加而減小。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(4)異步通信的傳輸方式 根據(jù)同一時(shí)刻串行通信的數(shù)據(jù)方向,異步串行通信可分為單工、半雙工、全雙工和多工方式等多種數(shù)據(jù)通路形式。 單工方式:數(shù)據(jù)僅按一個(gè)固定方向傳送。 半雙工方式式:數(shù)據(jù)可實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行,實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)

29、收/發(fā)開關(guān)轉(zhuǎn)換。 全雙工方式式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工傳輸方式的線路和設(shè)備較復(fù)雜。 多工方式:以上三種傳輸方式都是用同一線路傳輸一種頻率信號(hào),為了充分地利用線路資源,可通過使用多路復(fù)用器或多路集線器,采用頻分、時(shí)分或碼分復(fù)用技術(shù),可實(shí)現(xiàn)在同一線路上資源共享功能,稱之為多工傳輸方式。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用2)同步通信 同步通信是一種連續(xù)串行傳送數(shù)據(jù)的方式, 一次通信只傳送一幀信息,同步通信格式中,發(fā)送器和接收器由同一個(gè)時(shí)鐘源控制。在異步通信中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸時(shí)間,在要求傳送數(shù)據(jù)量較大的場合,速度就慢得多。為克服這一缺點(diǎn),同步傳輸

30、方式去掉了這些起始位和停止位,只在傳輸數(shù)據(jù)塊時(shí)先送出一個(gè)同步頭(字符)標(biāo)志即可。同步通信中,在數(shù)據(jù)開始傳送前用同步字符來指示(常約定12個(gè)),并由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端同步,即檢測到規(guī)定的同步字符后,連續(xù)按順序傳送數(shù)據(jù)。同步傳送時(shí),字符與字符之間沒有間隙,僅在數(shù)據(jù)塊開始時(shí)用同步字符SYNC來指示,其數(shù)據(jù)格式如圖5-20所示。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用4.串行通信的校驗(yàn) 異步通信時(shí)可能會(huì)出現(xiàn)幀格式錯(cuò)、超時(shí)錯(cuò)等傳輸錯(cuò)誤,因此,應(yīng)對數(shù)據(jù)進(jìn)行差錯(cuò)校驗(yàn)。常用差錯(cuò)校驗(yàn)方法有奇偶校驗(yàn)、和校驗(yàn)及循環(huán)冗余碼校驗(yàn)。(1) 奇偶校驗(yàn):發(fā)送數(shù)據(jù)時(shí), 數(shù)據(jù)位尾隨1位數(shù)據(jù), 為

31、奇偶校驗(yàn)位(1或0)。當(dāng)設(shè)置為奇校驗(yàn)(0)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù)。當(dāng)設(shè)置為偶校驗(yàn)(1)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。 接收時(shí),接收方應(yīng)具有與發(fā)送方一致的差錯(cuò)檢驗(yàn)設(shè)置。當(dāng)接收一個(gè)字符時(shí),對“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若二者不一致,則說明數(shù)據(jù)傳送出現(xiàn)差錯(cuò)。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用(2) 和校驗(yàn): 發(fā)送方將所發(fā)送的數(shù)據(jù)塊求和(字節(jié)數(shù)求和),并產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時(shí)也是先對數(shù)據(jù)塊求和,將所得結(jié)果與發(fā)送方的校驗(yàn)和進(jìn)行比較,相符則無差錯(cuò),否則出現(xiàn)差錯(cuò)。特點(diǎn)是無法檢驗(yàn)出字節(jié)位序的錯(cuò)誤。(3)循環(huán)冗余碼校

32、驗(yàn)這種校驗(yàn)是對一個(gè)數(shù)據(jù)塊校驗(yàn)一次。例如對磁盤信息的訪問、ROM或RAM存儲(chǔ)區(qū)的完整性等的檢驗(yàn)。這種方法廣泛應(yīng)用于串行通信方式。n5.3.2 C51串行接口編程結(jié)構(gòu) C51單片機(jī)內(nèi)部有一個(gè)全雙工、異步、串行、通信接口,通過引腳TXD(P3.1)和RXD(P3.0)實(shí)現(xiàn)串行數(shù)據(jù)的發(fā)送和接收。它既可實(shí)現(xiàn)串行異步通信,也可作為同步移位寄存器使用。 第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用1. C51 串行口結(jié)構(gòu) C51單片機(jī)串行口包括發(fā)送緩沖寄存器(SBUF)、發(fā)送控制器、發(fā)送控制門、接收緩沖寄存器(SBUF)、接收控制寄存器、移位寄存器和中斷構(gòu)成。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用2.C51串行口相關(guān)寄存

33、器 控制C51單片機(jī)串口的寄存器有兩個(gè)SCON和PCON。與串行通信有關(guān)的控制寄存器共有4個(gè):SBUF、SCON、PCON和IE(1)串行口控制寄存器SCON(98H) C51串行通信的方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標(biāo)志等由特殊功能寄存器SCON控制和指示,其控制字格式如圖復(fù)位時(shí),SCON所有位均清0。SCON可位尋址,字節(jié)地址98H,位地址9FH98H。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用串行口工作方式選擇位SM0、SM1(SCON.7,SCON.6)兩個(gè)選擇位對應(yīng)4種工作方式,如表5.7所示。其中,fosc是振蕩頻率。SM0、SM1由軟件置1或清0

34、,用于選擇串行口的4種工作方式(方式0、1、2、3)。SM0 SM1 工作方式 說明 波特率 0 0 方式0 同步移位寄存器 fosc/12 0 1 方式1 10位異步收發(fā)器(8位數(shù)據(jù))有定時(shí)器控制 1 0 方式2 11位異步收發(fā)器(9位數(shù)據(jù)) fosc/32,fosc/64 1 1 方式3 11位異步收發(fā)器(9位數(shù)據(jù))有定時(shí)器控制第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用多機(jī)通信控制位SM2(SCON.5) 主要用于方式2和方式3。當(dāng)串行口在方式2或方式3下進(jìn)行數(shù)據(jù)接收時(shí),如果SM2=1(允許多機(jī)通信)。 若SM2=0,單機(jī)通信方式,當(dāng)收到RB8(0或1),則接收一貞數(shù)據(jù)后,不管第九位數(shù)據(jù)是0還是1

35、,都置RI=1,使接收到的數(shù)據(jù)裝入SBUF。若置SM2=1,則允許多機(jī)通信。當(dāng)一片C51(主機(jī))與多片C51(從機(jī))通信時(shí),所有從機(jī)的SM2位都置1。主機(jī)首先發(fā)送一幀數(shù)據(jù)為地址,即從機(jī)編號(hào),其中第9位為1,所有的從機(jī)接收到數(shù)據(jù)后,將其中第9位裝入RB8中。各個(gè)從機(jī)根據(jù)收到的第9位數(shù)據(jù)(RB8中)的值來決定從機(jī)可否再接收主機(jī)的信息。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用當(dāng)SM2=1,REN=1時(shí),若從機(jī)接收到的(RB8)0,說明是數(shù)據(jù)幀,收到的信息丟棄,不激活RI;若(RB8)1,說明是地址幀,數(shù)據(jù)裝入SBUF并置RI1,中斷所有從機(jī),被尋址的目標(biāo)從機(jī)清除SM2以接收主機(jī)發(fā)來的一幀數(shù)據(jù)。其他從機(jī)仍然

36、保持SM21。允許接收控制位REN(SCON.4) 由軟件置1或清0,只有當(dāng)REN1時(shí)才允許接收;若REN0,則禁止接收。發(fā)送數(shù)據(jù)D8位TB8(SCON.3) 發(fā)送數(shù)據(jù)的第9位(D8)裝入TB8中。TB8是方式2、方式3中要發(fā)送的第9位數(shù)據(jù),事先用軟件寫入1或0。方式0、方式1不用。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用接收數(shù)據(jù)D8位RB8(SCON.2) 接收數(shù)據(jù)的第9位。在方式2或方式3中,由硬件將接收到的第九位數(shù)據(jù)存入RB8位。它或是約定的奇/偶校驗(yàn)位,或是約定的地址/數(shù)據(jù)標(biāo)識(shí)位。在方式2和方式3多機(jī)通信中,若SM21,如果RB81,說明收到的數(shù)據(jù)為地址幀。發(fā)送中斷標(biāo)志位TI(SCON.1)

37、當(dāng)串口以一定方式發(fā)送數(shù)據(jù)時(shí),每發(fā)送完一幀數(shù)據(jù),由硬件自動(dòng)將Tl位置l,可用軟件查詢。它同時(shí)也申請中斷,TI置位意味著向CPU提供“發(fā)送緩沖器SBUF已空”的信息,CPU可準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。串行口發(fā)送中斷被響應(yīng)后,TI不會(huì)自動(dòng)清0,必須由軟件清0。第5章 C51單片機(jī)最小系統(tǒng)及應(yīng)用接收中斷標(biāo)志位RI(SCON.0) 在接收到一幀有效數(shù)據(jù)后由硬件置位。在方式0中,第8位數(shù)據(jù)發(fā)送結(jié)束時(shí),由硬件置位;在其他三種方式中,當(dāng)接收到停止位時(shí)由硬件置位。RI1,申請中斷,表示一幀數(shù)據(jù)接收結(jié)束,并已裝入接收SBUF中,要求CPU取走數(shù)據(jù)。CPU響應(yīng)中斷,取走數(shù)據(jù)。(2)電源控制寄存器PCON(波特率倍增控制寄存器) PCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器。單元地

溫馨提示

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

評論

0/150

提交評論