




已閱讀5頁,還剩192頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章 51單片機的內(nèi)部資源 本章介紹了51單片機的內(nèi)部資源,包括定時與中斷以及串口通信,中斷功能使單片機具有了實時處理能力,定時功能使單片能夠處理與時間和計數(shù)相關(guān)的問題的能力,串口通信使單片機可以與其他單片機、計算機或其它設(shè)備相連,在實際的工程應(yīng)用中非常廣泛。學(xué)習(xí)過程中要注意掌握相關(guān)的基礎(chǔ)知識和基本原理,重點是相關(guān)寄存器的功能和設(shè)置方法,并注意與實際操作相結(jié)合,不斷提高實踐能力。,5.1 51單片機的中斷系統(tǒng) 中斷系統(tǒng)主要用于實時測控,要求單片機能及時地響應(yīng)和處理單片機外部事件或內(nèi)部事件所提出的中斷請求。中斷方式大大地提高了CPU的工作效率。 5.1.1 中斷的概念 CPU正在執(zhí)行程序時,單片機外部或內(nèi)部發(fā)生的某一事件,請求CPU迅速去處理。CPU暫時中止當前的工作,轉(zhuǎn)到中斷服務(wù)處理程序處理所發(fā)生的事件。 處理完該事件后,再回到原來被中止的地方,繼續(xù)原來的工作,這稱為中斷。 CPU處理事件的過程,稱為CPU的中斷響應(yīng)過程。,如下圖所示。對事件的整個處理過程,稱為中斷處理(或中斷服務(wù))。,執(zhí)行主程序,繼續(xù)執(zhí)行主程序,斷點,中斷請求,中斷響應(yīng),執(zhí)行中斷處理程序,中斷返回,能夠?qū)崿F(xiàn)中斷處理功能的部件稱為中斷系統(tǒng);產(chǎn)生中斷的請求源稱為中斷請求源。 中斷源向CPU提出的處理請求,稱為中斷請求(或中斷申請)。 進入中斷保護現(xiàn)場中斷處理恢復(fù)現(xiàn)場 中斷返回 當有幾個中斷源同時申請中斷時,或者CPU正在處理某中斷源服務(wù)程序時,又有另一中斷源申請中斷,那么CPU必須要確定優(yōu)先去處理誰的能力,稱為中斷優(yōu)先級。 優(yōu)先級高的事件可以中斷CPU正在處理的低級的中斷服務(wù)程序,待完成了高級中斷服務(wù)程序之后,再繼續(xù)被打斷的低級中斷服務(wù)程序。這是中斷嵌套問題。,5,引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機構(gòu))。,單片微機的中斷系統(tǒng)需要解決的問題 單片微機的中斷系統(tǒng)需要解決的問題主要有三點,即: 當單片微機內(nèi)部或外部有中斷申請時,CPU能及時響應(yīng)中斷,停下正在執(zhí)行的任務(wù),轉(zhuǎn)去處理中斷服務(wù)子程序,中斷服務(wù)處理后能回到原斷點處繼續(xù)處理原先的任務(wù); 當有多個中斷源同時申請中斷時,應(yīng)能先響應(yīng)優(yōu)先級高的中斷源,實現(xiàn)中斷優(yōu)先級的控制; 當?shù)蛢?yōu)先級中斷源正在使用中斷服務(wù)時,若這時優(yōu)先級比它高的中斷源也申請中斷,要求能停下低優(yōu)先級中斷源的服務(wù)程序轉(zhuǎn)去執(zhí)行更高優(yōu)先級中斷源的服務(wù)程序,實現(xiàn)中斷嵌套,并能逐級正確返回原斷點處。,中斷的主要功能: 實現(xiàn)CPU與外部設(shè)備的速度配合(分時操作) 由于應(yīng)用系統(tǒng)的許多外部設(shè)備速度較慢,可以通過中斷的方法來協(xié)調(diào)快速CPU與慢速外部設(shè)備之間的工作。 實現(xiàn)實時控制 在單片微機中,依靠中斷技術(shù)能實現(xiàn)實時控制。實時控制要求計算機能及時完成被控對象隨機提出的分析和計算任務(wù)。在自動控制系統(tǒng)中,要求各控制參量隨機地在任何時刻可向計算機發(fā)出請求,CPU必須作出快速響應(yīng)、及時處理。,中斷的主要功能: 實現(xiàn)故障的及時發(fā)現(xiàn)及處理 單片微機應(yīng)用中由于外界的干擾、硬件或軟件設(shè)計中存在問題等因素,在實際運行中會出現(xiàn)硬件故障、運算錯誤、程序運行故障等,有了中斷技術(shù),計算機就能及時發(fā)現(xiàn)故障并自動處理。 實現(xiàn)人機聯(lián)系 比如通過鍵盤向單片微機發(fā)出中斷請求,可以實時干預(yù)計算機的工作。,5.1.2 MCS-51中斷系統(tǒng)的結(jié)構(gòu) MCS-51的中斷系統(tǒng)包括中斷源、中斷允許寄存器IE、中斷優(yōu)先級寄存器IP、中斷矢量等。 MCS-51有5個中斷請求源,兩個中斷優(yōu)先級,可兩級嵌套。 MCS-51五個中斷源中包括二個外部中斷源和三個內(nèi)部中斷源。 二個外部中斷源INT0和INT1,外部設(shè)備的中斷請求信號、掉電等故障信號都可以從INT0或INT1引腳輸入。 三個內(nèi)部中斷源為定時器/計數(shù)器T0和T1的定時/計數(shù)謚出中斷源和串行口發(fā)送或接收中斷源。 中斷系統(tǒng)結(jié)構(gòu)示意圖如下圖所示。,5.1.3 中斷請求源 51單片機的五個中斷請求源 : (1)INT0外部中斷請求0,由引腳INT0 (P3.2)輸入,中斷請求標志為IE0。 (2)INT1外部中斷請求1,由引腳INT1 (P3.3)輸入,中斷請求標志為IE1。 外部中斷請求有二種信號觸發(fā)方式,即電平有效方式和跳變有效方式,可通過設(shè)置有關(guān)控制位進行定義。 當設(shè)定為電平有效方式時,若INT0或INT1引腳上采樣到有效的低電平,則向CPU提出中斷請求;當設(shè)定為跳變有效方式時,若INT0或INT1引腳上采樣到有效負跳變,則向CPU提出中斷請求。,51單片機的五個中斷請求源 : (3)定時器/計數(shù)器T0溢出中斷請求,中斷請求標志為TF0 (P3.4) 。 (4)定時器/計數(shù)器T1溢出中斷請求,中斷請求標志為TF1 (P3.5) 。 定時中斷是為滿足定時或計數(shù)的需要而設(shè)置的。當計數(shù)器發(fā)生計數(shù)溢出時,表明設(shè)定的定時時間到或計數(shù)值已滿,這時可以向CPU申請中斷。由于定時器/計數(shù)器在單片微機芯片內(nèi)部,所以定時中斷屬于內(nèi)部中斷。 (5)串行口中斷請求,中斷請求標志為TI或RI。 串行中斷是為串行數(shù)據(jù)傳送的需要而設(shè)置的。每當串行口發(fā)送或接收一組串行數(shù)據(jù)時,就產(chǎn)生一個中斷請求。,當CPU響應(yīng)中斷時,由硬件直接產(chǎn)生一個固定的地址,即矢量地址,由矢量地址指出每個中斷源設(shè)備的中斷服務(wù)程序的入口,這種方法通常稱為矢量中斷。很顯然,每個中斷源分別有自已的中斷服務(wù)程序,而每個中斷服務(wù)程序又有自已的矢量地址。當CPU識別出某個中斷源時,由硬件直接給出一個與該中斷源相對應(yīng)的矢量地址,從而轉(zhuǎn)入各自中斷服務(wù)程序。中斷矢量地址見右表。,中斷矢量(中斷入口地址):,中斷向量地址的使用規(guī)則,中斷向量就是程序存儲器的地址,CPU從0000H開始執(zhí)行的常規(guī)方式:在“ORG 00H”之后即執(zhí)行“JMP START”,這里的地址標號START理論上是在所有中斷向量之后,方能避免沖突,標準格式如下:,ORG 0000H ;程序從00H地址開始 JMP START ;跳至START ORG 0003H ;INT0中斷向量 JMP #1 ;執(zhí)行#1中斷子程序 ORG 0013H ;INT1中斷向量 JMP #2 ;執(zhí)行#1中斷子程序 : START: :,中斷向量空間范圍,觀察左邊的中斷源與中斷向量,可以發(fā)現(xiàn)兩個中斷向量之間,只有個地址的存貯空間,個字節(jié)是很難寫出實用的中斷程序的,通常的原則是只在這個地址放置“JMP #”之指令,#才是真正的中斷子程序。,中斷標志: 特殊功能寄存器TCON和SCON的相應(yīng)位鎖存各中斷請求標志。 TCON為定時器/計數(shù)器的控制寄存器,字節(jié)地址為88H。 包含INT0,INT1,T0 及 T1的中斷標志。 (1)T0和T1的溢出中斷請求標志位TF1和TF0 (2)外部中斷請求標志位IE1與IE0。,各標志位的功能: (1)IT0選擇外中斷請求0為跳沿觸發(fā)方式還是電平觸發(fā)方式: IT0=0,為電平觸發(fā)方式。 IT0=1,為跳沿觸發(fā)方式。 可由軟件置“1”或清“0”。 (2)IE0外部中斷請求0的中斷請求標志位。 IE0=0,無中斷請求。 IE0=1,外部中斷0有中斷請求。當CPU響應(yīng)該中斷,轉(zhuǎn)向中斷服務(wù)程序時,由硬件清“0”IE0。 (3)IT1外部中斷請求1為跳沿觸發(fā)方式還是電平觸發(fā)方式,意義與IT0類似。 (4)IE1外部中斷請求1的中斷請求標志位,意義與IE0類似。,(5)TF0T0溢出中斷請求標志位。 T0計數(shù)后,溢出時,由硬件置“1”TF0,向CPU申請中斷,CPU響應(yīng)TF0中斷時,硬件自動清“0”TF0,TF0也可由軟件清0。 (6)TF1T1的溢出中斷請求標志位,功能和TF0類似。 TR1、TR0 2個位與中斷無關(guān)。 當MCS-51復(fù)位后,TCON被清0,則CPU關(guān)中斷,所有中斷請求被禁止。,SCON為串行口控制寄存器,字節(jié)地址為98H。串行口的發(fā)送中斷和接收中斷的中斷請求標志TI和RI,格式如下: 各標志位的功能: (1)TI發(fā)送中斷請求標志位。串口每發(fā)送完一幀串行數(shù)據(jù)后,硬件自動置“1”TI。響應(yīng)中斷后,必須在中斷服務(wù)程序中用軟件對TI標志清“0”。 (2)RI接收中斷請求標志位。串口接收完一個數(shù)據(jù)幀,硬件自動置“1”RI標志。響應(yīng)中斷后,必須在中斷服務(wù)程序中用軟件對RI標志清“0”。,5.1.4 中斷控制 1 中斷允許寄存器IE CPU對中斷源的開放或屏蔽,由片內(nèi)的中斷允許寄存器IE控制。字節(jié)地址A8H,可位尋址。格式如下: IE寄存器中各位設(shè)置: 為0時,禁止中斷;為 1時,允許中斷。 系統(tǒng)復(fù)位后IE寄存器中各位均為0,即此時禁止所有中斷。 MCS-51復(fù)位后,IE清0,所有中斷請求被禁止。 若使某一個中斷源被允許中斷,除了IE相應(yīng)的位的被置“1” ,還必須使EA位=1。,IE對中斷的開放和關(guān)閉為兩級控制 總的開關(guān)中斷控制位EA(IE.7位): EA=0,所有中斷請求被屏蔽。 EA=1,CPU開放中斷,但五個中斷源的中斷請求是否允許,還要由IE中的5個中斷請求允許控制位決定。 IE中各位的功能如下: (1)EA:中斷允許總控制位 0:CPU屏蔽所有的中斷請求(CPU關(guān)中斷); 1:CPU開放所有中斷(CPU開中斷)。 (2)ES:串行口中斷允許位 0:禁止串行口中斷; 1:允許串行口中斷。,(3)ET1:定時器/計數(shù)器T1的溢出中斷允許位 0:禁止T1溢出中斷; 1:允許T1溢出中斷。 (4)EX1:外部中斷1中斷允許位 0:禁止外部中斷1中斷; 1:允許外部中斷1中斷。 (5)ET0:定時器/計數(shù)器T0的溢出中斷允許位 0:禁止T0溢出中斷; 1:允許T0溢出中斷。 (6)EX0:外部中斷0中斷允許位。 0:禁止外部中斷0中斷; 1:允許外部中斷0中斷。,改變IE的內(nèi)容,可由位操作指令來實現(xiàn),即: SETB bit; CLR bit。 例1 若允許片內(nèi)2個定時器/計數(shù)器中斷,禁止其它中斷源的中斷請求。編寫設(shè)置IE的相應(yīng)程序段 (1)用位操作指令來編寫如下程序段: CLR ES ;禁止串行口中斷 CLR EX1 ;禁止外部中斷1中斷 CLR EX0 ;禁止外部中斷0中斷 SETB ET0 ;允許定時器/計數(shù)器T0中斷 SETB ET1 ;允許定時器/計數(shù)器T1中斷 SETB EA ;CPU開中斷,(2)用字節(jié)操作指令來編寫: MOV IE,#8AH 或者用: MOV 0A8H,#8AH ;A8H為IE寄存器字節(jié)地址,對同時發(fā)生多個中斷申請時: 不同優(yōu)先級的中斷同時申請(很難遇到) 先高后低 相同優(yōu)先級的中斷同時申請(很難遇到) 按序執(zhí)行 正處理低優(yōu)先級中斷又接到高級別中斷 高打斷低 正處理高優(yōu)先級中斷又接到低級別中斷 高不理低,優(yōu)先級的控制處理原則,2 中斷優(yōu)先級寄存器IP,中斷優(yōu)先原則:(概括為四句話) 1、低級不打斷高級 2、高級不睬低級 3、同級不能打斷 4、同級、同時中斷,事先約定。,CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。 正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。 正在進行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。這稱之為“中斷嵌套”。,優(yōu)先級對中斷響應(yīng)的影響,事件1,事件2,子程序2,子程序1,中斷嵌套的概念:,主程序,中斷,中斷,若CPU正在執(zhí)行高優(yōu)先級的中斷,則不能被任何中斷源所中斷。 中斷優(yōu)先級寄存器IP,其字節(jié)地址為B8H。 IP各個位的含義: (1)PS串行口中斷優(yōu)先級控制位 1:高優(yōu)先級中斷; 0:低優(yōu)先級中斷。 (2)PT1定時器T1中斷優(yōu)先級控制位 1:高優(yōu)先級中斷; 0:低優(yōu)先級中斷。,(3)PX1外部中斷1中斷優(yōu)先級控制位 1:高優(yōu)先級中斷; 0:低優(yōu)先級中斷。 (4)PT0定時器T0中斷優(yōu)先級控制位 1:高優(yōu)先級中斷; 0:低優(yōu)先級中斷。 (5)PX0外部中斷0中斷優(yōu)先級控制位 1:高優(yōu)先級中斷; 0:低優(yōu)先級中斷 由軟件可改變各中斷源的中斷優(yōu)先級。 系統(tǒng)復(fù)位后IP寄存器中各位均為0,即此時全部設(shè)定為低中斷優(yōu)先級。,中斷優(yōu)先級控制,除了中斷優(yōu)先級控制寄存器之外,還有兩個不可尋址的“優(yōu)先級激活觸發(fā)器”: 一個用來指示某高優(yōu)先級的中斷正在執(zhí)行,所有后來的中斷均被阻止。 另一個用來指示某低優(yōu)先級的中斷正在執(zhí)行,所有同級中斷都被阻止,但不阻斷高優(yōu)先級的中斷請求。 在中斷執(zhí)行過程中,高中斷優(yōu)先級可以中斷低中斷優(yōu)先級的中斷過程。但是若在中斷服務(wù)程序中,關(guān)掉所有中斷(CLR EA)或關(guān)掉部分中斷時除外。 在同時收到幾個同一優(yōu)先級的中斷請求時,優(yōu)先響應(yīng)哪一個中斷,取決于內(nèi)部的查詢順序。查詢順序如下:,中斷源 中斷級別 外部中斷0 最高 T0溢出中斷 外部中斷1 T1溢出中斷 串行口中斷 最低 MCS-51是一個二級中斷系統(tǒng)。但是通過軟件可以模仿第三優(yōu)先級。,例2 設(shè)置IP寄存器的初始值,使2個外中斷請求為高優(yōu)先級,其它中斷請求為低優(yōu)先級。 (1)用位操作指令 SETB PX0 ;2個外中斷為高優(yōu)先級 SETB PX1 CLR PS ;串口為低優(yōu)先級中斷 CLR PT0 ;2個定時器/計數(shù)器低優(yōu)先級中斷 CLR PT1 (2)用字節(jié)操作指令 MOV IP,#05H 或: MOV 0B8H,#05H ;B8H為IP寄存器的字節(jié)地址,5.1.5 響應(yīng)中斷請求的條件 一個中斷請求被響應(yīng),需滿足以下必要條件: (1)IE寄存器中的中斷總允許位EA=1。 (2)該中斷源發(fā)出中斷請求,即該中斷源對應(yīng)的中斷請求標志為“1”。 (3)該中斷源的中斷允許位=1,即該中斷沒有被屏蔽。 (4)無同級或更高級中斷正在被服務(wù)。 中斷響應(yīng)的主要過程:首先由硬件自動生成一條長調(diào)用指令: LCALL addr16 接著就由CPU執(zhí)行該指令,將PC的內(nèi)容壓入堆棧以保護斷點,再將中斷入口地址裝入PC。各中斷源服務(wù)程序的入口地址固定。,中斷響應(yīng)是有條件的,遇到下列三種情況之一時,中斷響應(yīng)被封鎖: (1)CPU正在處理同級的或更高優(yōu)先級的中斷。 (2)所查詢的機器周期不是所當前正在執(zhí)行指令的最后一個機器周期。只有在當前指令執(zhí)行完畢后,才能進行中斷響應(yīng)。 (3)正在執(zhí)行的指令是RETI或是訪問IE或IP的指令。需要再去執(zhí)行完一條指令,才能響應(yīng)新的中斷請求。 如果存在上述三種情況之一,CPU將丟棄中斷查詢結(jié)果,不能對中斷進行響應(yīng)。,5.1.6 外部中斷的響應(yīng)時間 外部中斷的最短的響應(yīng)時間為3個機器周期: (1)中斷請求標志位查詢占1個機器周期。 (2)子程序調(diào)用指令LCALL轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口,需2個機器周期。 外部中斷響應(yīng)的最長的響應(yīng)時間為8個機器周期: (1)發(fā)生在CPU進行中斷標志查詢時,剛好是開始執(zhí)行RETI或是訪問IE或IP的指令,則需把當前指令執(zhí)行完再繼續(xù)執(zhí)行一條指令后,才能響應(yīng)中斷,當前指令執(zhí)行完最長需2個機器周期。,(2)接著再執(zhí)行一條指令,按最長指令(乘法指令MUL和除法指令DIV)來算,也只有4個機器周期。 (3)加上硬件子程序調(diào)用指令LCALL的執(zhí)行,需要2個機器周期。 所以,外部中斷響應(yīng)最長時間為8個機器周期。 如果中斷請求被前面所列三個條件之一所阻止,不能產(chǎn)生硬件長調(diào)用LCALL指令,那么所需的響應(yīng)時間就更長些。如果已在處理同級或更高級中斷,響應(yīng)時間無法計算。 在一個單一中斷的系統(tǒng)里,MCS-51單片機對外部中斷請求的響應(yīng)的時間總是在38個機器周期之間。,5.1.7 外部中斷的觸發(fā)方式選擇 外部中斷有兩種觸發(fā)方式:電平觸發(fā)方式和跳沿觸發(fā)方式。 這兩種觸發(fā)方式可由設(shè)置TCON寄存器中的IT1(TCON2)、 IT0(TCON0)中斷申請觸發(fā)方式控制位來選擇:設(shè)置IT1、IT00,選擇電平觸發(fā)方式;設(shè)置IT1、IT0l,選擇跳變觸發(fā)方式,即當INT0,INT1引腳檢測到前一個機器周期為高電平、后一個機器周期為低電平時,則置位IE0、IE1且向CPU申請中斷。 由于CPU每個機器周期采樣INT0,INT1引腳信號一次,為確保中斷請求被采樣到,外部中斷源送INT0,INT1引腳的中斷請求信號應(yīng)至少保持一個機器周期。,1 電平觸發(fā)方式 CPU在每個機器周期采樣到的外部中斷輸入線的電平。外部中斷源送INT0,INT1引腳請求中斷的低電平有效信號,應(yīng)一直保持到CPU響應(yīng)中斷為止。否則CPU返回主程序后會再次響應(yīng)中斷。 適于外中斷以低電平輸入且中斷服務(wù)程序能清除外部中斷請求(即外部中斷輸入電平又變?yōu)楦唠娖剑┑那闆r。 2 跳沿觸發(fā)方式 連續(xù)兩次采樣,一個機器周期采樣到外部中斷輸入為高,下一個機器周期采樣為低,則置“1”中斷請求標志,直到CPU響應(yīng)此中斷時,該標志才清0。這樣不會丟失中斷,但輸入的負脈沖寬度至少保持1個機器周期。,5.1.8 中斷請求的撤消 CPU響應(yīng)中斷請求,轉(zhuǎn)向中斷服務(wù)程序執(zhí)行,在其執(zhí)行中斷返回指令(RETI)之前,中斷請求信號必須撤除,否則將會再一次引起中斷而出錯。 中斷請求撤除的方式有三種,即: 1 由單片微機內(nèi)部硬件自動復(fù)位(定時器/計數(shù)器中斷請求的撤消 )。 對于定時器計數(shù)器T0、T1 的溢出中斷和采用跳變觸發(fā)方式的外部中斷請求,在CPU響應(yīng)中斷后,由內(nèi)部硬件自動清除中斷標志TF0和TF1、IE0和IE1,而自動撤除中斷請求。(硬件置位,硬件清除)。,2采用外加 硬件結(jié)合軟件清除中斷請求(外部中斷請求的撤消) (1)跳沿方式外部中斷請求的撤消是自動撤消的。 (2)電平方式外部中斷請求的撤消: 對于采用電平觸發(fā)方式的外部中斷請求,中斷標志的撤消是自動的,但中斷請求信號的低電平可能繼續(xù)存在,在以后機器周期采樣時又會把已清“0”的IE0、IE1標志重新置“1”,再次申請中斷。為保證在CPU響應(yīng)中斷后、執(zhí)行返回指令前,撤除中斷請求,必須在中斷響應(yīng)后把中斷請求信號引腳從低電平強制改變?yōu)楦唠娖健?稍谙到y(tǒng)中加入如圖所示電路。,從上圖中可看到,用D觸發(fā)器鎖存外部中斷請求低電平,并通過觸發(fā)器輸出端Q送或,所以D觸發(fā)器對外部中斷請求沒有影響。但在中斷響應(yīng)后,為了撤消低電平引起的中斷請求,可利用D觸發(fā)器的直接置位端SD來實現(xiàn)。采用80C51的一根I/O口線來控制SD端。只要在SD端輸入一個負脈沖即可使D觸發(fā)器置“1”,從而撤消了低電平的中斷請求信號。(硬件置位,硬、軟件結(jié)合清除) 。只要P1.0端輸出一個負脈沖就可以使D觸發(fā)器置“1”,從而撤消了低電平的中斷請求信號。 所需的負脈沖可通過在中斷服務(wù)程序中增加如下兩條指令得到: ORL P1,#01H ;P1.0為“1”,SD無效 ANL P1,#0FEH ;P1.0為“0”,Q置1(SD為直接置位端,低 電平有效) 使P1.0輸出一個負脈沖,其持續(xù)時間為二個機器周期,足以使D觸發(fā)器置位,撤除低電平中斷請求。第二條指令是必要的,否則D觸發(fā)器的Q端始終輸出“1”,無法再接受外部中斷請求。 電平方式的外部中斷請求信號的完全撤消,是通過軟硬件相結(jié)合的方法來實現(xiàn)的。,3應(yīng)用軟件清除相應(yīng)標志(串行口中斷請求的撤消) 對于串行接收發(fā)送中斷請求和80C52中的定時器計數(shù)器T2的溢出和捕獲中斷請求,在CPU響應(yīng)中斷后,必須在中斷服務(wù)程序中應(yīng)用軟件清除RI、TI、TF2和 EXF2這些中斷標志,才能撤除中斷。(硬件置位,軟件清除) 。 響應(yīng)串行口的中斷后,CPU無法知道是接收中斷還是發(fā)送中斷,還需測試這兩個中斷標志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行口中斷請求的撤消只能用軟件清除 CLR TI ;清TI標志位 CLR RI ;清RI標志位,5.1.9 中斷服務(wù)程序的設(shè)計 在MCS-51單片微機中,需要用軟件對以下5個內(nèi)容進行設(shè)置: 中斷服務(wù)程序入口地址的設(shè)定。 某一中斷源中斷請求的允許與禁止。 對于外部中斷請求,還需進行觸發(fā)方式的設(shè)定。 各中斷源優(yōu)先級別的設(shè)定。 CPU開中斷與關(guān)中斷。 中斷程序一般包含中斷控制程序和中斷服務(wù)程序兩部分。 中斷控制程序即中斷初始化程序,一般不獨立編寫,而是包含在主程序中,根據(jù)上述的5點通過編寫幾條指令來實現(xiàn)。,一、中斷服務(wù)程序設(shè)計的任務(wù) 基本任務(wù): (1)設(shè)置中斷允許控制寄存器IE。 (2)設(shè)置中斷優(yōu)先級寄存器IP。 (3)對外中斷源,是采用電平觸發(fā)還是跳沿觸發(fā)。 (4)編寫中斷服務(wù)程序,處理中斷請求。 前2條一般放在主程序的初始化程序段中。 例3 假設(shè)允許外部中斷0中斷,并設(shè)定它為高級中斷,其它中斷源為低級中斷,采用跳沿觸發(fā)方式。在主程序中編寫如下程序段: SETB EA ;CPU開中斷 SETB ET0 ;允許外中斷0產(chǎn)生中斷 SETB PX0 ;外中斷0為高級中斷 SETB IT0 ;外中斷0為跳沿觸發(fā)方式,二、采用中斷時的主程序結(jié)構(gòu) 常用的主程序結(jié)構(gòu)如下: ORG 0000H LJMP MAIN ORG 中斷入口地址 LJMP INT ORG XXXXH MAIN:主 程 序 INT:中斷服務(wù)程序 中斷服務(wù)程序是一種為中斷源的特定事態(tài)要求服務(wù)的獨立程序段,以中斷返回指令RETI結(jié)束。在程序存儲器中設(shè)置有六個固定的單元作為中斷矢量,即是0003H、000BH、0013H、00lBH、0023H及002BH單元。 一般將中斷服務(wù)程序存放在程序存儲器的其它部位,而在中斷矢量中安排一條無條件轉(zhuǎn)移指令。這樣,當CPU響應(yīng)中斷請求后,轉(zhuǎn)入中斷矢量執(zhí)行無條件轉(zhuǎn)移指令,再轉(zhuǎn)向?qū)嶋H的中斷服務(wù)子程序的入口。,三、中斷服務(wù)程序的流程 中斷響應(yīng)很突出的一點是它的隨機性。下面針對中斷服務(wù)程序在編寫中的幾個問題進行說明。 保護斷點和現(xiàn)場、恢復(fù)斷點和現(xiàn)場 中斷服務(wù)程序和子程序一樣,在調(diào)用和返回時,也有一個保護斷點和現(xiàn)場、恢復(fù)斷點和現(xiàn)場的問題。 在中斷響應(yīng)過程中,斷點的保護主要由硬件電路自動實現(xiàn)。它將斷點壓入堆棧,再將中斷服務(wù)程序的入口地址送入程序計數(shù)器PC,使程序轉(zhuǎn)向中斷服務(wù)程序,即為中斷源的請求服務(wù)。,三、中斷服務(wù)程序的流程 所謂現(xiàn)場是指中斷發(fā)生時單片微機中存儲單元、寄存器、特殊功能寄存器中的數(shù)據(jù)或標志位等。在MCS-51中,現(xiàn)場一般包括累加器 A、工作寄存器 R0R7以及程序狀態(tài)字PSW等。保護的方法可以有以下幾種: 通過堆棧操作指令PUSH direct; 通過工作寄存器區(qū)的切換; 通過單片微機內(nèi)部存儲器單元暫存。 現(xiàn)場保護一定要位于中斷服務(wù)程序的前面。 在結(jié)束中斷服務(wù)程序返回斷點處之前要恢復(fù)現(xiàn)場,與保護現(xiàn)場的方法相對應(yīng)。而恢復(fù)斷點也是由硬件電路自動實現(xiàn)的,中斷服務(wù)程序的最后一條指令必須是RETI指令。,三、中斷服務(wù)程序的流程 對中斷的控制 MCS-51單片微機具有多級中斷功能(即多重中斷嵌套),為了不至于在保護現(xiàn)場或恢復(fù)現(xiàn)場時,由于CPU響應(yīng)其它中斷請求,而使現(xiàn)場破壞。一般規(guī)定,在保護和恢復(fù)現(xiàn)場時,CPU不響應(yīng)外界的中斷請求,即關(guān)中斷。因此,在編寫程序時,應(yīng)在保護現(xiàn)場和恢復(fù)現(xiàn)場之前,關(guān)閉CPU中斷;在保護現(xiàn)場和恢復(fù)現(xiàn)場之后,再根據(jù)需要使CPU開中斷。 對于重要中斷,不允許被其它中斷所嵌套。除了設(shè)置中斷優(yōu)先級外,還可以采用關(guān)中斷的方法,徹底屏蔽其它中斷請求,待中斷處理完之后再打開中斷系統(tǒng)。,例4 根據(jù)上圖的中斷服務(wù)程序流程,編出中斷服務(wù)程序。假設(shè),現(xiàn)場保護只需將PSW和A的內(nèi)容壓入堆棧中保護。典型的中斷服務(wù)程序如下: INT: CLR EA ;CPU關(guān)中斷 PUSH PSW ;現(xiàn)場保護 PUSH ACC ; SETB EA ;CPU開中斷 中斷處理程序段 CLR EA ;CPU關(guān)中斷 POP ACC ;現(xiàn)場恢復(fù) POP PSW SETB EA ;CPU開中斷 RETI ;中斷返回,恢復(fù)斷點,幾點說明: (1)現(xiàn)場保護僅涉及到PSW和A的內(nèi)容,如還有其它需保護的內(nèi)容,只需要在相應(yīng)的位置再加幾條PUSH和POP指令即可。 (2) “中斷處理程序段”,應(yīng)根據(jù)任務(wù)的具體要求,來編寫。 (3)如果本中斷服務(wù)程序不允許被其它的中斷所中斷。可將“中斷處理程序段”前后的“SETB EA”和“CLR EA”兩條指令去掉。 (4)中斷服務(wù)程序的最后一條指令必須是返回指令RETI。,中斷應(yīng)用前后要做的幾項工作,中斷前 開中斷允許:必須 選擇優(yōu)先級:根據(jù)需要選擇,可有/可無 設(shè)置控制位:INTx觸發(fā)方式(ITx) TxTCON,TMOD,TRx,初值 RI/TISCON,REN,RB8,TB8,中斷后 進入中斷服務(wù)后:保護現(xiàn)場,關(guān)中斷, 退出中斷服務(wù)前:恢復(fù)現(xiàn)場,開中斷,設(shè)Tx的初 值,清TI/RI, 中斷服務(wù)程序的最后一條指令必是 RETI,回顧,中斷源 中斷申請 開放中斷 保護現(xiàn)場 中斷服務(wù) 恢復(fù)現(xiàn)場 中斷返回,中斷涉及的幾個環(huán)節(jié)與應(yīng)用步驟,中斷應(yīng)用的步驟: 、即中斷向量的指定設(shè)置; 、中斷相關(guān)寄存器的設(shè)定;包括開啟中斷開關(guān)(IE寄存器)、中斷優(yōu)先級的設(shè)定(IP寄存器)、中斷信號的設(shè)定(TCON寄存器); 、中斷子程序設(shè)計。子程序的最后指令是 “RETI”。,回顧,中斷處理程序格式,INTT0: PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中斷源服務(wù) POP PSW POP DPL POP DPH POP ACC RETI,保護現(xiàn)場,恢復(fù)現(xiàn)場,回顧, 中斷請求: 定時和外中斷控制寄存器TCON; 串行控制寄存器SCON; 中斷使能控制寄存器IE; 中斷優(yōu)先級控制寄存器IP。,MCS-51單片機中涉及中斷控制的有3個方面4個特殊功能寄存器:,回顧,中斷設(shè)定方法,IE寄存器、IP寄存器、TCON寄存器、SCON寄存器的設(shè)定,可以利用MOV指令、SETB指令、CLR指令來實現(xiàn)。,、MOV IE,#10000101B 、SETB IE.7 SETB IE.2 SETB IE.0,例:若開啟“總開關(guān)”、“INT0開關(guān)”、“INT1開關(guān)”。,、MOV 0A8H,#85H 、SETB EA SETB EX0 SETB EX1,回顧,例:若要把“INT1”中斷的優(yōu)先級提高。,、MOV IP,#00000100B 、SETB IP.2 、MOV 0B8H,#04H 、SETB PX1,例:若想“INT1”中斷擬采用負緣觸發(fā)的信號。,、MOV Tcon,#00000100B 、SETB Tcon.2 、MOV 088H,#04H 、SETB IT1,“中斷子程序”就是一種子程序,其與一般子程序的最大差異是其的返回指令是“RETI”,而不是“RET”。,回顧,中斷應(yīng)用實例:中斷_int0之單向,單片機的P2口接個LED發(fā)光二極管,P3.2引腳保持高電平,另外接一按鈕開關(guān)。主程序運行時LED同時閃爍,若按開關(guān),進入中斷狀態(tài)單燈左移3次。,回顧,中斷應(yīng)用實例:中斷_int0之單向,單片機的P2口接個LED發(fā)光二極管,P3.2引腳保持高電平,另外接一按鈕開關(guān)。主程序運行時LED同時閃爍,若按開關(guān),進入中斷狀態(tài)單燈左移3次。 ;一開始即允許所有中斷產(chǎn)生,并特意指明啟用INT0中斷 ORG 0000H ;源程序從0地址開始 JMP START ;跳過中斷向量 ORG 0003H ;INT0中斷向量 JMP INT_0 ;執(zhí)行INT_0中斷子程序 ;= START: MOV IE,#10000001B ;打開總開關(guān)與EX0分路開關(guān) MOV SP,#30H ;設(shè)定堆棧地址 SETB IT0 ;采用負觸發(fā)信號,回顧,中斷應(yīng)用實例:中斷_int0之單向,MOV A,#0 ;將ACC清零 LOOP: MOV P2,A ;輸出到LED CALL DELAY ;調(diào)用延時子程序 CPL A ;將A的內(nèi)容反相 JMP LOOP ;=INT0中斷子程序開始= INT_0: PUSH ACC ;累加器入出棧時不能用簡稱A PUSH PSW ;將程序狀態(tài)控制字入棧 SETB RS0 ;切換到RB1,回顧,中斷應(yīng)用實例:中斷_int0之單向,;=外層循環(huán)開始 MOV R0,#3 ;設(shè)定三次循環(huán) INT_LOOP0: ;=第二層循環(huán)1定義開始 MOV A,#0FEH ;單燈左移初始值 MOV R1,#8 ;設(shè)定八次左移 INT_LOOP1: MOV P2,A ;輸出LED 到P2口 CALL DELAY ;調(diào)用延時子程序 RL A ;將A的內(nèi)容左移 DJNZ R1,INT_LOOP1 ;=第二層循環(huán)1結(jié)束,中斷應(yīng)用實例:中斷_int0之單向,;=第二層循環(huán)2定義開始 MOV A,#07FH ;單燈右移初始值 MOV R1,#8 ;設(shè)定八次右移 INT_LOOP2: MOV P2,A ;輸出LED 到P2口 CALL DELAY ;調(diào)用延時子程序 RR A ;將A的內(nèi)容右移 DJNZ R1,INT_LOOP2 ;=第二層循環(huán)2結(jié)束 DJNZ R0,INT_LOOP0 ;=外層循環(huán)結(jié)束 POP PSW,中斷應(yīng)用實例:中斷_int0之單向,POP ACC ;累加器入出棧時不能用簡稱A RETI ;返加主程序 ;= ;INT0中斷子程序結(jié)束 ;= DELAY: MOV R7,#200 D1: MOV R6,#250 DJNZ R6,$ DJNZ R7,D1 RET END,中斷應(yīng)用實例:中斷_int0之單向,該程序的C51代碼如下: #include #include sbit k1=P32; void delay_ms(unsigned int xms); /ms級延時子程序 void key_scan() interrupt 0 /使用了外部中斷0的鍵盤掃描子函數(shù)。 int i=0,j=0,num; if(k1=0) /有鍵按下嗎?(k1=0 ?) delay_ms(10); /延時消抖,中斷應(yīng)用實例:中斷_int0之單向,if(k1=0) /確實是否有鍵按下 for(j=0;j3;j+) num=0xfe; for(i=0;i8;i+) P2=num; delay_ms(600); num=_crol_(num,1); num=0x7f; for(i=0;i8;i+),中斷應(yīng)用實例:中斷_int0之單向, P2=num; delay_ms(600); num=_cror_(num,1); P2=0x0; delay_ms(600); while(!k1); /等待按鍵放開 void main() ,中斷應(yīng)用實例:中斷_int0之單向,TCON=0x01; /打開外部中斷0,并設(shè)置為下降沿觸發(fā) IE=0x81; /開總中斷 while(1) P2=0xff; delay_ms(600); P2=0x0; delay_ms(600); ,中斷應(yīng)用實例:中斷_int0之單向,void delay_ms(unsigned int xms) /ms級延時子程序 unsigned int x,y; for(x=xms;x0;x-) for(y=130;y0;y-); ,5.2 51單片機的定時計數(shù)器 我們通常采用以下三種方法來實現(xiàn)定時或計數(shù): 1、硬件定時(采用時基電路定時) 硬件定時是指由硬件電路來實現(xiàn)定時的功能 。 例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程,且定時時間容易漂移。 2、軟件定時 軟件定時是執(zhí)行一段循環(huán)程序來進行時間延時,優(yōu)點是無額外的硬件開銷,時間比較精確。但占用了CPU的時間,降低了CPU的利用率。例如延時程序。 3、可編程定時/計數(shù)器 最方便的辦法是利用單片機內(nèi)部的定時器/計數(shù)器。結(jié)合了軟件定時精確和硬件定時電路獨立的特點。由于純軟件要占用CPU,而純硬件又欠靈活。 定時/計數(shù)器是單片機系統(tǒng)一個重要的部件,其工作方式靈活、編程簡單、使用方便,可用來實現(xiàn)定時控制、延時、頻率測量、脈寬測量、信號發(fā)生、信號檢測等。此外,定時/計數(shù)器還可作為串行通信中波特率發(fā)生器。,5.2 51單片機的定時計數(shù)器 T0和T1有都具有以下2種工作模式: (1)計數(shù)器工作模式 對外來脈沖進行計數(shù),T0(P3.4)和T1(P3.5)為計數(shù)脈沖輸入端,等計數(shù)輸入引腳的脈沖發(fā)生負跳變時,計數(shù)器加1。 定時/計數(shù)器作為計數(shù)器時,外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時鐘頻率的1/24。 (2)定時器工作模式 通過計數(shù)片內(nèi)脈沖來實現(xiàn)定時功能:每個機器周期產(chǎn)生1個計數(shù)脈沖,即每經(jīng)過1個機器周期的實踐,計數(shù)器加1。 MCS-51的兩個可編程的定時器/計數(shù)器均有4種工作方式(方式0-方式3)。 用戶通過對相應(yīng)的特殊功能寄存器編程,可以選擇定時器/計數(shù)器的2種工作模式和4種工作方式。,71,定時器/計數(shù)器的工作原理概述,計數(shù)器輸入的計數(shù)脈沖源 1、系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后產(chǎn)生; 2、T0或T1引腳輸入的外部脈沖源。 計數(shù)過程 每來一個脈沖計數(shù)器加1,當加到計數(shù)器為全1(即FFFFH)時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時器/計數(shù)器中斷允許時)。如果定時器/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。,設(shè)置為定時應(yīng)用時 用作定時器:此時設(shè)置為定時器模式,加1計數(shù)器是對內(nèi)部機器周期計數(shù)(1個機器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t 。 設(shè)置為計數(shù)應(yīng)用時 用作計數(shù)器:此時設(shè)置為計數(shù)器模式,外部事件計數(shù)脈沖由T0(P3.4)或T1(P3.5)引腳輸入到計數(shù)器。每來一個外部脈沖,計數(shù)器加1。但單片機對外部脈沖有基本要求:脈沖的高低電平持續(xù)時間都必須大于1個機器周期。,定時與計數(shù)都是利用計數(shù)實現(xiàn)!,定時器/計數(shù)器的工作原理概述,5.2.1 定時器/計數(shù)器的結(jié)構(gòu) 定時器/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成:TH1(地址為8DH)、TL1(地址為8BH)和TH0(地址為8CH)、TL0(地址為8AH)寄存器。 復(fù)位后,所有這四個寄存器全部清零。 TMOD(工作方式寄存器):選擇定時器/計數(shù)器T0、T1的工作模式和工作方式。 TCON(定時器/計數(shù)器控制寄存器):控制T0、T1的啟動和停止計數(shù),同時包含了T0、T1的狀態(tài)。 單片機復(fù)位時,TMOD、TCON都清0。,5.2.1 定時器/計數(shù)器的結(jié)構(gòu),1 工作方式控制寄存器TMOD TMOD(工作方式寄存器):選擇定時器/計數(shù)器T0、T1的工作模式和工作方式,字節(jié)地址為89H,不能位尋址。 8位分為兩組,高4位控制T1,低4位控制T0。 (1)GATE門控位 0:以運行控制位TRX(X=0,1)來啟動定時器/計數(shù)器運行。 1:用外中斷引腳(INT0*或INT1*)上的高電平和TRX兩個條件來啟動定時器/計數(shù)器運行。,(2)M1、M0工作方式選擇位 M1 M0 工 作 方 式 0 0 方式0,13位定時器/計數(shù)器。 0 1 方式1,16位定時器/計數(shù)器。 1 0 方式2,8位常數(shù)自動重新裝載定時器/計數(shù)器 1 1 方式3,僅適用于T0,T0分成兩個8 位計數(shù)器,T1停止計數(shù)。 (3) C/T*計數(shù)器模式和定時器模式選擇位 0:定時器模式。計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期使寄存器的值增1。每個機器周期等于12個振蕩周期,故計數(shù)速率為振蕩周期的112。 1:計數(shù)器模式。通過引腳T0(P3.4)和T1(P3.5)對外部信號進行計數(shù)。在每個機器周期的S5P2期間,CPU采樣引腳的輸入電平。若前一機器周期采樣值為1,下一機器周期采樣值為0,則計數(shù)器增1,此后的機器周期S3P1期間,新的計數(shù)值裝入計數(shù)器。所以檢測一個1到0的跳變 需要兩個機器周期,故計數(shù)脈沖頻率不能高于振蕩脈沖頻率的124。,2 定時器/計數(shù)器控制寄存器TCON TCON(定時器/計數(shù)器控制寄存器):控制T0、T1的啟動和停止計數(shù),同時包含了T0、T1的狀態(tài),字節(jié)地址為88H,位地址為88H8FH。 功能如下: (1) TF1、TF0計數(shù)溢出標志位 當計數(shù)器計數(shù)溢出時,該位置1。使用查詢方式時,此位作為狀態(tài)位供CPU查詢,但應(yīng)注意查詢有效后,應(yīng)以軟件方式及時將該位清0.使用中斷方式時,此位作為中斷請求標志位,進入中斷服務(wù)子程序后,硬件自動清0。 (2) TR1、TR0計數(shù)運行控制位(由軟件置位或清零) 1:啟動定時器/計數(shù)器工作 0:停止定時器/計數(shù)器工作,2 定時器/計數(shù)器控制寄存器TCON (3) TCON的低4位 與中斷有關(guān) IE1(TCON3)外部中斷1請求標志位。 IE0(TCONI)外部中斷0請求標志位。 IT1(TCON0)外部中斷1觸發(fā)類型選擇位。 IT0(TCON0)外部中斷0觸發(fā)類型選擇位。 復(fù)位后,TCON的所有位均清0。T0和T1均是關(guān)斷的。,查詢方式時:關(guān)閉中斷,使用軟件查詢TF0/TF1 中斷方式時:開放中斷,使用硬件自動查詢TF0/TF1,計數(shù)器工作方式選擇,在精確定時采用該工作方式!,5.2.2 定時器/計數(shù)器的4種工作方式,定時器:對片內(nèi)機器時鐘(周期方波)進行計數(shù) 計數(shù)器:對Tx引腳輸入的負脈沖進行計數(shù),方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(TL0的低三位棄之不用)向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。,1 方式0,用它無益,不要記它!,C/T* 位決定工作模式: 0:開關(guān)打在上面,為定時器工作模式; 1:開關(guān)打在下面,為計數(shù)器工作模式,計數(shù)脈沖為P3.4、P3.5引腳上的外部輸入脈沖,當引腳上發(fā)生負跳變時,計數(shù)器加1。 GATE位:決定定時器/計數(shù)器的運行取決于TRx一個條件還是TRx和INTx*引腳兩個條件。 (1)0:A點(見上圖)是否計數(shù),僅取決于TRx的狀態(tài)。 (2)1:B點電位由INTX*的輸入電平和TRX的狀態(tài)這兩個條件來確定。是否計數(shù)是由TRx和INTx*二個條件來控制的。,工作方式0_應(yīng)用分析,定時和計數(shù)的應(yīng)用 計數(shù)范圍:1213 計數(shù)計算公式:計數(shù)值213計數(shù)初值 機器周期(MC):=12/Fosc=12/時鐘頻率 定時范圍:1機器周期213機器周期 定時計算公式:定時時間(213定時初值)機器周期 如果晶振頻率為6MHz ,則最大定時時間為: 213121/6MHz214us16384us=16.384ms 如果晶振頻率為12MHz ,則最大定時時間為: 213121/12MHz213us=8192us=8.192ms,2 方式1,方式1的計數(shù)位數(shù)是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數(shù)器 。,工作方式1(M1M0=01)經(jīng)常用到 方式1是16位計數(shù)結(jié)構(gòu)的工作方式,其計數(shù)器由TH0全部8位和TL0的全部8位構(gòu)成。其邏輯電路和工作情況與方式0完全相同,所不同的只是計數(shù) 器的位數(shù)。 MCS-51單片機之所以設(shè)置幾乎完全一 樣 的方式0和方式1,是出于與 MCS-48單片機兼容的要求。因為,MCS48單片機的定時器/計數(shù)器是13位的計數(shù)結(jié)構(gòu)。,定時器T0工作方式1與工作方式0類同,差別在于其中的計數(shù)器的位數(shù)。工作方式0以13位計數(shù)器參與計數(shù),工作方式1則以16位計數(shù)器參與計數(shù)。,方式不用的原因,工作方式1_應(yīng)用分析,定時和計數(shù)的應(yīng)用 計數(shù)范圍:1216 計數(shù)計算公式:計數(shù)值216計數(shù)初值 機器周期(MC):=12/Fosc=12/時鐘頻率 定時范圍:1機器周期216機器周期 定時計算公式:定時時間(216定時初值)機器周期 如果晶振頻率為6MHz ,則最大定時時間為: 216121/6MHz217us=131072us=131.072ms 如果晶振頻率為12MHz ,則最大定時時間為: 216121/12MHz216us=65536us=65.536ms,工作方式的定時計數(shù)功能切換模式,與工作方式完全一樣;而啟動定時計數(shù)器的模式,也與工作方式完全一樣。計數(shù)量方式更大,可完全取代方式。,3 方式2,在方式2下,當計數(shù)器計滿255(FFH)溢出時,CPU自動把TH 的值裝入TL中,不需用戶干預(yù)。因此特別適合于用作較精確的脈沖信號發(fā)生器。,方式2為自動重裝初值的8位計數(shù)方式。,工作方式2_應(yīng)用分析,定時和計數(shù)的應(yīng)用 計數(shù)范圍:128 計數(shù)計算公式:計數(shù)值28計數(shù)初值 機器周期(MC):=12/Fosc=12/時鐘頻率 定時范圍:1機器周期28機器周期 定時計算公式:定時時間(28定時初值)機器周期 如果晶振頻率為6MHz ,則最大定時時間為: 28121/6MHz29us=512us=0.512ms 如果晶振頻率為12MHz ,則最大定時時間為: 28121/12MHz28us=256us=0.256ms,8位計數(shù)器 TL0作計數(shù)器,TH0作預(yù)置寄存器使用,計數(shù)溢出時,TH0中的計數(shù)初值自動裝入TL0,即TL0是一個自動恢復(fù)初值的8位計數(shù)器。 在使用時,要把計數(shù)初值同時裝入TL0和TH0中。 優(yōu)點是提高定時精度,減少了程序的復(fù)雜程度。 優(yōu)點:定時初值可自動恢復(fù),TH0中存放初值; 缺點:計數(shù)范圍小。 適用于需要重復(fù)定時,而定時范圍不大的應(yīng)用場合。,工作方式2_補充說明,4 方式3,方式3只適用于定時器/計數(shù)器T0,定時器T1方式3時相當于TR1=0,停止計數(shù),此時T1可用來作串行口波特率產(chǎn)生器。,工作方式3將T0分成為兩個獨立的8位計數(shù)器TL0和TH0 。,T0: 組織成TL0和TH0兩個8位定時/計數(shù)器 T1: 不再是定時/計數(shù)器了 T1 的TR1和TF1出借給TH0當控制位使用,剩下的TH1/TL1寄存器只能當作普通寄存器用。 除了不具備計數(shù)及自動加載功能外,幾乎可以用工作方式的T1所取代。,工作方式3_應(yīng)用分析,因為沒有帶來甚麼好處,幾
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電動貨車培訓(xùn)課件圖片
- 周末收心班會課件
- 中國動漫繪畫課件下載
- 超聲引導(dǎo)下穿刺技術(shù)應(yīng)用規(guī)范
- 中國刺繡課件英語
- 創(chuàng)意美術(shù)水果房子
- 中國農(nóng)大葡萄酒課件
- 幼師外出培訓(xùn)分享交流
- 公交車消防課件
- 售后電話培訓(xùn)
- 高中政治必修三政治與法治考點專練選擇題100題含答案詳解
- 中城廉江上閣垌180MW農(nóng)光互補項目(升壓站)環(huán)境影響報告表
- 試卷模擬丨北師大版數(shù)學(xué)三年級下冊期末測試卷(二)(含答案)
- 文言文《活板》專項練習(xí)(含答案)
- 廣東2023屆珠海華潤銀行春季校園招聘考試參考題庫含答案詳解
- 35KV集電線路首次送電啟動方案
- 汽車維修環(huán)保增效設(shè)備一覽表格
- 光纖跳線生產(chǎn)技術(shù)工藝流程
- 警用裝備智能管理中心(室)建設(shè)方案及技術(shù)參數(shù)
- TCVN-2622-越南建筑防火規(guī)范(中文版)
- 2023-2024學(xué)年浙江省臺州市小學(xué)數(shù)學(xué)四年級下冊期末點睛提升試卷
評論
0/150
提交評論