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

下載本文檔

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

文檔簡(jiǎn)介

1、1主要內(nèi)容:主要內(nèi)容: 介紹介紹I/OI/O的基本概念、的基本概念、I/OI/O數(shù)據(jù)傳遞方式,中數(shù)據(jù)傳遞方式,中斷的基本概念,串行通信基本概念。主要介紹單斷的基本概念,串行通信基本概念。主要介紹單片機(jī)中斷系統(tǒng)結(jié)構(gòu)、特點(diǎn)及使用方法;片內(nèi)定時(shí)片機(jī)中斷系統(tǒng)結(jié)構(gòu)、特點(diǎn)及使用方法;片內(nèi)定時(shí)器器/ /計(jì)數(shù)器結(jié)構(gòu)、原理及使用;片內(nèi)串行口結(jié)構(gòu)、計(jì)數(shù)器結(jié)構(gòu)、原理及使用;片內(nèi)串行口結(jié)構(gòu)、原理以及雙機(jī)和多機(jī)通信實(shí)現(xiàn)方法;原理以及雙機(jī)和多機(jī)通信實(shí)現(xiàn)方法;PCPC機(jī)與單片機(jī)與單片機(jī)通信實(shí)現(xiàn)方法。機(jī)通信實(shí)現(xiàn)方法。2 4.1.14.1.1輸入輸入/ /輸出的基本概念輸出的基本概念 輸入輸入/ /輸出設(shè)備又稱為計(jì)算機(jī)外圍設(shè)輸

2、出設(shè)備又稱為計(jì)算機(jī)外圍設(shè)備;簡(jiǎn)稱外設(shè)或備;簡(jiǎn)稱外設(shè)或I IO O設(shè)備。單片機(jī)應(yīng)用系設(shè)備。單片機(jī)應(yīng)用系統(tǒng)常用的輸入設(shè)備有按鈕、鍵盤、各種傳統(tǒng)常用的輸入設(shè)備有按鈕、鍵盤、各種傳感器等。常用的輸出設(shè)備有感器等。常用的輸出設(shè)備有LED(LED(發(fā)光二極發(fā)光二極管顯示器管顯示器) )、LCD(LCD(液晶顯示器液晶顯示器) )等。等。一、輸入一、輸入/ /輸出設(shè)備輸出設(shè)備3 三、輸入三、輸入/ /輸出接口與端口輸出接口與端口 輸入輸入/ /輸出設(shè)備與主機(jī)的連接部分稱為輸入輸出設(shè)備與主機(jī)的連接部分稱為輸入/ /輸出接口,簡(jiǎn)稱輸出接口,簡(jiǎn)稱I IO O接口。接口。 輸入輸入/ /輸出接口的作用是:輸出接口的

3、作用是: 2.2.鎖存與緩沖作用:一鎖存與緩沖作用:一般用般用D D觸發(fā)器進(jìn)行鎖存。觸發(fā)器進(jìn)行鎖存。 1.1.隔離與尋址作用:例隔離與尋址作用:例如右圖用三態(tài)門組成的接口。如右圖用三態(tài)門組成的接口。3.3.信號(hào)電平或形式變換:信號(hào)電平或形式變換:例如例如A/DA/D、D/AD/A、232/485232/485的變換。的變換。4 通常接口電路中可編址并能進(jìn)行讀寫操作的寄存器稱通常接口電路中可編址并能進(jìn)行讀寫操作的寄存器稱為端口或簡(jiǎn)稱口。一個(gè)接口電路中可能包括多個(gè)口,例如為端口或簡(jiǎn)稱口。一個(gè)接口電路中可能包括多個(gè)口,例如數(shù)據(jù)口、狀態(tài)口、控制口,即包含有多個(gè)口地址。同一單數(shù)據(jù)口、狀態(tài)口、控制口,即包

4、含有多個(gè)口地址。同一單片機(jī)系列中,片內(nèi)集成的片機(jī)系列中,片內(nèi)集成的I/OI/O模塊各有不同,當(dāng)片內(nèi)模塊各有不同,當(dāng)片內(nèi)I/OI/O不不能滿足實(shí)際需求時(shí),可擴(kuò)展外部能滿足實(shí)際需求時(shí),可擴(kuò)展外部I/OI/O。 四、四、I/OI/O的分類的分類 按照信號(hào)的傳遞方式,可將按照信號(hào)的傳遞方式,可將I/OI/O分為串行和并行兩類。分為串行和并行兩類。 按照按照I/OI/O連接的信號(hào)大致可分為模擬量、數(shù)字量、脈沖連接的信號(hào)大致可分為模擬量、數(shù)字量、脈沖量量I/OI/O三類。三類。 五、數(shù)據(jù)總線隔離技術(shù)五、數(shù)據(jù)總線隔離技術(shù) 為了正確地進(jìn)行數(shù)據(jù)的為了正確地進(jìn)行數(shù)據(jù)的I/OI/O傳遞,必須解決數(shù)據(jù)總線傳遞,必須解

5、決數(shù)據(jù)總線的隔離問題,即在任一時(shí)刻,的隔離問題,即在任一時(shí)刻,CPUCPU只對(duì)一個(gè)只對(duì)一個(gè)I/OI/O進(jìn)行操作。進(jìn)行操作。為此,對(duì)輸出設(shè)備的接口電路要使用鎖存器,對(duì)輸入設(shè)備為此,對(duì)輸出設(shè)備的接口電路要使用鎖存器,對(duì)輸入設(shè)備的接口電路,使用三態(tài)緩沖器。的接口電路,使用三態(tài)緩沖器。 5六、單片機(jī)六、單片機(jī)I/OI/O編址方式編址方式 每一個(gè)每一個(gè)I/OI/O都需要編址,以便都需要編址,以便CPUCPU分別進(jìn)行尋址。常分別進(jìn)行尋址。常用的用的I/OI/O編址方式有兩種:獨(dú)立編址方式和統(tǒng)一編址方式。編址方式有兩種:獨(dú)立編址方式和統(tǒng)一編址方式。 獨(dú)立編址方式獨(dú)立編址方式: : I/O I/O和存儲(chǔ)器分開

6、編址,有各自獨(dú)立和存儲(chǔ)器分開編址,有各自獨(dú)立的地址空間,采用不同的控制總線,使用不同的指令分別的地址空間,采用不同的控制總線,使用不同的指令分別尋址。尋址。 統(tǒng)一編址方式統(tǒng)一編址方式: : I/O I/O與數(shù)據(jù)存儲(chǔ)器在同一地址空間編與數(shù)據(jù)存儲(chǔ)器在同一地址空間編址,尋址方式相同,采用相同的地址、數(shù)據(jù)、控制總線,址,尋址方式相同,采用相同的地址、數(shù)據(jù)、控制總線,使用相同的指令尋址。使用相同的指令尋址。6 單片機(jī)系統(tǒng)中有不同類型的單片機(jī)系統(tǒng)中有不同類型的I/OI/O設(shè)備,由于設(shè)備,由于I/OI/O所連接所連接的外設(shè)或的外設(shè)或I/OI/O接口本身的速度與接口本身的速度與CPUCPU的處理速度相比,通常

7、的處理速度相比,通常低于低于CPUCPU的速度,為了實(shí)現(xiàn)數(shù)據(jù)的正確傳輸,的速度,為了實(shí)現(xiàn)數(shù)據(jù)的正確傳輸,CPUCPU通常采用通常采用三種控制方式,即無(wú)條件傳送方式、查詢方式和中斷控制三種控制方式,即無(wú)條件傳送方式、查詢方式和中斷控制方式。方式。一、無(wú)條件傳送方式一、無(wú)條件傳送方式 I/OI/O或與或與I/OI/O連接的外設(shè)隨時(shí)都處于準(zhǔn)備好狀態(tài),這時(shí)連接的外設(shè)隨時(shí)都處于準(zhǔn)備好狀態(tài),這時(shí)CPUCPU不需要測(cè)試外設(shè)狀態(tài),隨時(shí)直接對(duì)其進(jìn)行操作。不需要測(cè)試外設(shè)狀態(tài),隨時(shí)直接對(duì)其進(jìn)行操作。 7 Y N 查詢狀態(tài) 就緒? 輸入/輸出 查詢方式流程圖 二、查詢方式二、查詢方式 查詢方式是指查詢方式是指CPUC

8、PU在執(zhí)行輸入在執(zhí)行輸入輸出指令之前,先對(duì)外圍設(shè)備的輸出指令之前,先對(duì)外圍設(shè)備的狀態(tài)進(jìn)行檢測(cè),以判別外設(shè)是否狀態(tài)進(jìn)行檢測(cè),以判別外設(shè)是否準(zhǔn)備就緒。如果已經(jīng)準(zhǔn)備就緒,準(zhǔn)備就緒。如果已經(jīng)準(zhǔn)備就緒,CPUCPU就可以執(zhí)行輸入輸出指令。如就可以執(zhí)行輸入輸出指令。如果還沒有準(zhǔn)備就緒,必須繼續(xù)查果還沒有準(zhǔn)備就緒,必須繼續(xù)查詢(如右圖所示)。詢(如右圖所示)。 查詢方式的特點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,查詢方式的特點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,通用性強(qiáng),適合各種設(shè)備數(shù)據(jù)的通用性強(qiáng),適合各種設(shè)備數(shù)據(jù)的輸入輸入/ /輸出;其缺點(diǎn)是需要占用輸出;其缺點(diǎn)是需要占用CPUCPU的時(shí)間,外設(shè)速度較慢時(shí),效的時(shí)間,外設(shè)速度較慢時(shí),效率較低。率較低。 8

9、三、中斷方式三、中斷方式 中斷方式下外設(shè)的狀態(tài)信號(hào)以中斷申請(qǐng)方式輸入中斷方式下外設(shè)的狀態(tài)信號(hào)以中斷申請(qǐng)方式輸入CPUCPU。 CPUCPU響應(yīng)中斷,暫停正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行中斷服務(wù)響應(yīng)中斷,暫停正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,在中斷服務(wù)程序中對(duì)外設(shè)進(jìn)行輸入程序,在中斷服務(wù)程序中對(duì)外設(shè)進(jìn)行輸入/ /輸出操作,中輸出操作,中斷返回后,再繼續(xù)執(zhí)行被中斷的程序。斷返回后,再繼續(xù)執(zhí)行被中斷的程序。 中斷方式可提高單片機(jī)系統(tǒng)的效率。中斷方式可提高單片機(jī)系統(tǒng)的效率。9 當(dāng)當(dāng)CPUCPU正在處理某件事正在處理某件事情的時(shí)候,內(nèi)部或外部發(fā)生情的時(shí)候,內(nèi)部或外部發(fā)生的某一事件的某一事件( (如一個(gè)電平的

10、如一個(gè)電平的變化,一個(gè)脈沖沿的發(fā)生或變化,一個(gè)脈沖沿的發(fā)生或定時(shí)器計(jì)數(shù)溢出等定時(shí)器計(jì)數(shù)溢出等) )請(qǐng)求請(qǐng)求CPUCPU迅速去處理,于是,迅速去處理,于是,CPUCPU暫暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理所發(fā)生的事件。處理完該理所發(fā)生的事件。處理完該事件以后,再回到原來(lái)被中事件以后,再回到原來(lái)被中止的地方,繼續(xù)原來(lái)的工作,止的地方,繼續(xù)原來(lái)的工作,這樣的過(guò)程稱為這樣的過(guò)程稱為中斷中斷。 請(qǐng)求 主程序 主程序 中斷服務(wù) 返回 響應(yīng) 中斷流程 10一、中斷源一、中斷源 中斷源是指中斷源是指向向CPUCPU申請(qǐng)中斷的事件來(lái)源申請(qǐng)中斷的事件來(lái)源。例如。例如外部輸入輸出設(shè)備,定時(shí)外部輸入

11、輸出設(shè)備,定時(shí)/ /計(jì)數(shù)器,串行接口都可計(jì)數(shù)器,串行接口都可以作為中斷源。以作為中斷源。二、中斷優(yōu)先權(quán)二、中斷優(yōu)先權(quán) 中斷優(yōu)先權(quán)也叫中斷排序,是用戶根據(jù)中斷中斷優(yōu)先權(quán)也叫中斷排序,是用戶根據(jù)中斷源的性質(zhì)和重要性自行排列的先后次序。在多個(gè)源的性質(zhì)和重要性自行排列的先后次序。在多個(gè)中斷源同時(shí)提出申請(qǐng)時(shí),保證優(yōu)先權(quán)高的中斷源中斷源同時(shí)提出申請(qǐng)時(shí),保證優(yōu)先權(quán)高的中斷源首先得到響應(yīng),縱使首先得到響應(yīng),縱使CPUCPU正在處理一個(gè)中斷,也要正在處理一個(gè)中斷,也要暫時(shí)停止較低級(jí)的中斷。響應(yīng)優(yōu)先權(quán)更高的中斷暫時(shí)停止較低級(jí)的中斷。響應(yīng)優(yōu)先權(quán)更高的中斷源請(qǐng)求。這個(gè)過(guò)程稱為源請(qǐng)求。這個(gè)過(guò)程稱為中斷嵌套中斷嵌套或或多

12、重中斷多重中斷。 優(yōu)先權(quán)排序可以用軟件也可以用硬件實(shí)現(xiàn)。優(yōu)先權(quán)排序可以用軟件也可以用硬件實(shí)現(xiàn)。11三、中斷系統(tǒng)的功能:三、中斷系統(tǒng)的功能:(1)(1)可實(shí)現(xiàn)高速可實(shí)現(xiàn)高速CPU CPU 與慢速外設(shè)之間的配合。與慢速外設(shè)之間的配合。因?yàn)樵S多外圍設(shè)因?yàn)樵S多外圍設(shè)備的速度比備的速度比CPUCPU慢,二者間無(wú)法同步地進(jìn)行數(shù)據(jù)交換。為此慢,二者間無(wú)法同步地進(jìn)行數(shù)據(jù)交換。為此可通過(guò)中斷方式實(shí)現(xiàn)可通過(guò)中斷方式實(shí)現(xiàn)CPUCPU與外圍設(shè)備之間的協(xié)調(diào)工作。與外圍設(shè)備之間的協(xié)調(diào)工作。 (2)(2)可實(shí)現(xiàn)實(shí)時(shí)處理??蓪?shí)現(xiàn)實(shí)時(shí)處理。實(shí)時(shí)處理是自動(dòng)控制系統(tǒng)對(duì)計(jì)算機(jī)提出實(shí)時(shí)處理是自動(dòng)控制系統(tǒng)對(duì)計(jì)算機(jī)提出的要求,各控制參量可

13、以隨時(shí)向的要求,各控制參量可以隨時(shí)向CPUCPU發(fā)出中斷申請(qǐng),而發(fā)出中斷申請(qǐng),而CPUCPU也必須做出快速響應(yīng)和及時(shí)處理,以便使被控對(duì)象總保也必須做出快速響應(yīng)和及時(shí)處理,以便使被控對(duì)象總保持在最佳工作狀態(tài)。持在最佳工作狀態(tài)。(3) (3) 實(shí)現(xiàn)故障的緊急處理。實(shí)現(xiàn)故障的緊急處理。當(dāng)外圍設(shè)備或計(jì)算機(jī)出現(xiàn)故障時(shí),當(dāng)外圍設(shè)備或計(jì)算機(jī)出現(xiàn)故障時(shí),可以利用中斷系統(tǒng)請(qǐng)求可以利用中斷系統(tǒng)請(qǐng)求CPUCPU及時(shí)處理這些故障。及時(shí)處理這些故障。(4)(4)便于人機(jī)聯(lián)系。便于人機(jī)聯(lián)系。操作人員可以利用鍵盤中斷等,實(shí)現(xiàn)人機(jī)操作人員可以利用鍵盤中斷等,實(shí)現(xiàn)人機(jī)聯(lián)系,完成人的干預(yù)。聯(lián)系,完成人的干預(yù)。12 四、中斷響應(yīng)過(guò)

14、程四、中斷響應(yīng)過(guò)程 1)1)尋找中斷源。(尋找中斷源。(中斷識(shí)別中斷識(shí)別) 2)2)將當(dāng)前將當(dāng)前PCPC值值( (下一條指令的下一條指令的地址地址) )壓入堆棧壓入堆棧( (即即保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)),以),以便中斷返回時(shí)使用。便中斷返回時(shí)使用。 3)3)尋找中斷入口,以便轉(zhuǎn)向執(zhí)尋找中斷入口,以便轉(zhuǎn)向執(zhí)行中斷服務(wù)程序。行中斷服務(wù)程序。 4)4)保護(hù)現(xiàn)場(chǎng)。保護(hù)現(xiàn)場(chǎng)。 5)5)執(zhí)行中斷服務(wù)程序(執(zhí)行中斷服務(wù)程序(中斷處中斷處理理)。)。 6)6)執(zhí)行完中斷服務(wù)程序后執(zhí)行完中斷服務(wù)程序后, ,恢恢復(fù)現(xiàn)場(chǎng)并返回主程序(復(fù)現(xiàn)場(chǎng)并返回主程序(中斷返中斷返回回)。)。13一、中斷源與中斷標(biāo)志位一、中斷源與中斷標(biāo)

15、志位8051/80318051/8031型單片機(jī)提供了型單片機(jī)提供了5 5個(gè)中斷源:兩個(gè)外部中斷個(gè)中斷源:兩個(gè)外部中斷源和三個(gè)內(nèi)部中斷源。每一個(gè)中斷源都有一個(gè)中斷申請(qǐng)標(biāo)源和三個(gè)內(nèi)部中斷源。每一個(gè)中斷源都有一個(gè)中斷申請(qǐng)標(biāo)志,但串行口占兩個(gè)中斷標(biāo)志位,一共六個(gè)中斷標(biāo)志,下志,但串行口占兩個(gè)中斷標(biāo)志位,一共六個(gè)中斷標(biāo)志,下表給出了它們各自的名稱。表給出了它們各自的名稱。分分 類類中斷源名稱中斷源名稱中斷申請(qǐng)標(biāo)志中斷申請(qǐng)標(biāo)志觸發(fā)方式觸發(fā)方式中斷入口地址中斷入口地址外部中斷外部中斷外部中斷外部中斷0 0IE0(TCON.1)IE0(TCON.1)INT0(P3.2)INT0(P3.2)引腳上的低引腳上的

16、低電平電平/ /下降沿引起的中斷下降沿引起的中斷0003H0003H內(nèi)部中斷內(nèi)部中斷T0T0定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0中斷中斷IF0(TCON.5)IF0(TCON.5)T0T0計(jì)數(shù)器溢出后引起的計(jì)數(shù)器溢出后引起的中斷中斷000BH000BH外部中斷外部中斷外部中斷外部中斷1 1IE1(TCON.3)IE1(TCON.3)INT1(P3.3)INT1(P3.3)引腳上的低引腳上的低電平電平/ /下降沿引起的中斷下降沿引起的中斷0013H0013H內(nèi)部中斷內(nèi)部中斷T1T1定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1中斷中斷IF1(TCON.7)IF1(TCON.7)T1T1計(jì)數(shù)器溢出后引起的計(jì)

17、數(shù)器溢出后引起的中斷中斷001BH001BH內(nèi)部中斷內(nèi)部中斷串口中斷串口中斷RI (SCON.0)RI (SCON.0)TI ( SCON.1)TI ( SCON.1)串行口接收完成或發(fā)送串行口接收完成或發(fā)送完一幀數(shù)據(jù)后引起的中完一幀數(shù)據(jù)后引起的中斷斷0023H0023H中斷源和中斷申請(qǐng)標(biāo)志中斷源和中斷申請(qǐng)標(biāo)志14MCS - 51MCS - 51中斷系統(tǒng)中斷系統(tǒng)MCS - 51MCS - 51中斷系統(tǒng)結(jié)構(gòu)框圖中斷系統(tǒng)結(jié)構(gòu)框圖 中斷源中斷源中斷選擇中斷選擇中斷標(biāo)志中斷標(biāo)志15 1.1.中斷源中斷源(1) 1) 外部中斷外部中斷0 0請(qǐng)求,由請(qǐng)求,由P3.2P3.2引腳輸入。可由用戶引腳輸入??捎?/p>

18、用戶設(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸設(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號(hào)有效,則向發(fā)方式)。一旦輸入信號(hào)有效,則向CPUCPU申請(qǐng)中斷,申請(qǐng)中斷,并且將中斷標(biāo)志并且將中斷標(biāo)志IE0IE0置置1 1。(2) 2) 外部中斷外部中斷1 1請(qǐng)求,由請(qǐng)求,由P3.3P3.3引腳輸入。亦可由用引腳輸入。亦可由用戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號(hào)有效,則向人信號(hào)有效,則向CPUCPU申請(qǐng)中斷,并將中斷標(biāo)志申請(qǐng)中斷,并將中斷標(biāo)志IE1IE1置置1 1。 (3 3)片內(nèi)定時(shí)器)片內(nèi)定時(shí)器T0T0溢出中斷請(qǐng)求。

19、當(dāng)定時(shí)器溢出中斷請(qǐng)求。當(dāng)定時(shí)器T0T0產(chǎn)生產(chǎn)生溢出時(shí),溢出時(shí),T0T0中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志TF0 TF0 置置1 1,請(qǐng)求中斷處理。,請(qǐng)求中斷處理。 (4)4)片內(nèi)定時(shí)器片內(nèi)定時(shí)器T1T1溢出中斷請(qǐng)求。當(dāng)定時(shí)器溢出中斷請(qǐng)求。當(dāng)定時(shí)器T1T1產(chǎn)生溢產(chǎn)生溢出時(shí),出時(shí),T1T1中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志TF1TF1置置l l,請(qǐng)求中斷處理。,請(qǐng)求中斷處理。 (5)5)片內(nèi)串行口發(fā)送接收中斷請(qǐng)求。當(dāng)通過(guò)串行口片內(nèi)串行口發(fā)送接收中斷請(qǐng)求。當(dāng)通過(guò)串行口發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請(qǐng)求標(biāo)志發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請(qǐng)求標(biāo)志TITI或或RIRI置置1 1,請(qǐng)求中斷處理。,請(qǐng)求中斷處理。

20、 INT0 IE0 INT1 IE1 TF0 TF1 RI TI 圖 10、 8051中 斷 源 16因此,與中斷有關(guān)的特殊功能寄存器有:因此,與中斷有關(guān)的特殊功能寄存器有: 中斷允許控制寄存器中斷允許控制寄存器(IE) (IE) 定時(shí)器定時(shí)器/ /計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制寄存器(TCON) (TCON) 中斷優(yōu)先級(jí)控制寄存器中斷優(yōu)先級(jí)控制寄存器(IP) (IP) 串行口控制寄存器串行口控制寄存器(SCON )(SCON ) MCS-51 MCS-51單片機(jī)的中斷系統(tǒng)中,使用何種中斷,采用單片機(jī)的中斷系統(tǒng)中,使用何種中斷,采用何種觸發(fā)方式,可通過(guò)定時(shí)器何種觸發(fā)方式,可通過(guò)定時(shí)器/ /計(jì)數(shù)器控

21、制寄存器計(jì)數(shù)器控制寄存器TCONTCON和串行口控制寄存器和串行口控制寄存器SCONSCON的有關(guān)位來(lái)規(guī)定。只要根據(jù)這的有關(guān)位來(lái)規(guī)定。只要根據(jù)這些位的狀態(tài)就能確定有無(wú)中斷請(qǐng)求及中斷的來(lái)源。些位的狀態(tài)就能確定有無(wú)中斷請(qǐng)求及中斷的來(lái)源。 在中斷源與在中斷源與CPUCPU之間有二級(jí)中斷允許控制邏輯電路,之間有二級(jí)中斷允許控制邏輯電路,一級(jí)為總允許,第二級(jí)為源允許,由一級(jí)為總允許,第二級(jí)為源允許,由IEIE控制??刂?。 中斷優(yōu)先級(jí)由中斷優(yōu)先級(jí)由IPIP控制??刂?。172.2.中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志 (1)TCON(1)TCON的中斷標(biāo)志的中斷標(biāo)志 TCONTCON是專用寄存器,字節(jié)地址為是專用寄存器

22、,字節(jié)地址為88H88H,它鎖存了外部中,它鎖存了外部中斷請(qǐng)求標(biāo)志及斷請(qǐng)求標(biāo)志及T0T0和和T1T1的溢出中斷請(qǐng)求標(biāo)志。的溢出中斷請(qǐng)求標(biāo)志。TCONTCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0 IT0/IT0/ IT1 IT1: 外部中斷請(qǐng)求的觸發(fā)方式選擇位:外部中斷請(qǐng)求的觸發(fā)方式選擇位: =0=0:在:在INT0/INT1INT0/INT1端申請(qǐng)中斷的信號(hào)低電平有效端申請(qǐng)中斷的信號(hào)低電平有效; ; =1 =1:在:在INT0/INT1INT0/INT1端申請(qǐng)中斷的信號(hào)負(fù)

23、跳變有效端申請(qǐng)中斷的信號(hào)負(fù)跳變有效. . IE0/IE1 IE0/IE1:外部中斷申請(qǐng)標(biāo)志位:外部中斷申請(qǐng)標(biāo)志位: =0=0:沒有外部中斷申請(qǐng);:沒有外部中斷申請(qǐng); =1=1:有外部中斷申請(qǐng)。:有外部中斷申請(qǐng)。 TF0/TF1TF0/TF1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位: =0=0:定時(shí)器未溢出;:定時(shí)器未溢出; =1=1:定時(shí)器溢出申請(qǐng)中斷,進(jìn)中斷后自動(dòng)清零。:定時(shí)器溢出申請(qǐng)中斷,進(jìn)中斷后自動(dòng)清零。 TR0/TR1TR0/TR1:定時(shí)器運(yùn)行啟??刂莆唬憾〞r(shí)器運(yùn)行啟停控制位: =0=0:定時(shí)器停止運(yùn)行;:定時(shí)器停止運(yùn)行; =1=1:定時(shí)器啟動(dòng)運(yùn)行。:定時(shí)器啟動(dòng)運(yùn)行。18(

24、2)SCON(2)SCON的中斷標(biāo)志的中斷標(biāo)志 SCONSCON是串行口控制寄存器,與中斷有關(guān)的是它的低兩位是串行口控制寄存器,與中斷有關(guān)的是它的低兩位TITI和和RIRI。 TITI(SCON.1SCON.1):串行口發(fā)送中斷標(biāo)志位。每發(fā)送完一個(gè)):串行口發(fā)送中斷標(biāo)志位。每發(fā)送完一個(gè)串行幀,由硬件置位串行幀,由硬件置位TITI。CPUCPU響應(yīng)中斷時(shí),不能清除響應(yīng)中斷時(shí),不能清除TITI,TITI必須由軟件清除。必須由軟件清除。 RIRI(SCON.0)(SCON.0):串行口接收中斷標(biāo)志位,當(dāng)允許串行口:串行口接收中斷標(biāo)志位,當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位接收數(shù)據(jù)時(shí)

25、,每接收完一個(gè)串行幀,由硬件置位RIRI。同樣,。同樣,RIRI必須由軟件清除。必須由軟件清除。SCONSCON RIRI TITIRB8RB8RB8TB8TB8TB8RENRENRENSM2SM2SM2SM1SM1SM1SM0SM0SM019二、二、MCSMCS5151的中斷管理的中斷管理 1 1、中斷允許寄存器、中斷允許寄存器IEIE中斷的允許與開放中斷的允許與開放 0:關(guān)INT 中斷01:開INT 中斷00:關(guān)T 中斷1:開T 中斷001:開T 中斷0:關(guān)T 中斷0:關(guān)INT 中斷1:開INT 中斷11110:關(guān)T 中斷1:開T 中斷221:開所有中斷0:關(guān)所有中斷1:開串行口中斷0:關(guān)

26、串行口中斷位地址IEEAAFADETACESABETAAEXA9ETA8EX00112 在中斷源與在中斷源與CPUCPU之間有兩級(jí)中斷允許控制邏輯電路,一之間有兩級(jí)中斷允許控制邏輯電路,一級(jí)為總允許,第二級(jí)為源允許,由級(jí)為總允許,第二級(jí)為源允許,由IEIE控制??刂?。 202 2中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器IPIP 中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)控制 內(nèi)部自然優(yōu)先級(jí):內(nèi)部自然優(yōu)先級(jí): 入口地址入口地址 INT0 高高 0003H T0 000BH INT1 0013H T1 001BH TI/RI 低低 0023H213.3.同一級(jí)中的同一級(jí)中的5 5個(gè)中斷源的優(yōu)先順序個(gè)中斷源的優(yōu)先順序 /IN

27、T0/INT0中斷中斷 T0T0溢出中斷溢出中斷 /INT1/INT1中斷中斷 T1T1溢出中斷溢出中斷 串口中斷串口中斷 高高低低自然優(yōu)先級(jí)自然優(yōu)先級(jí)中斷優(yōu)先原則:中斷優(yōu)先原則:(概括為四句話)(概括為四句話)1)1)低級(jí)不中斷高級(jí)低級(jí)不中斷高級(jí)2)2)高級(jí)不睬低級(jí)高級(jí)不睬低級(jí)3)3)同級(jí)不能打斷同級(jí)不能打斷4)4)同級(jí)、同時(shí)中斷,按同級(jí)、同時(shí)中斷,按自然優(yōu)先級(jí)自然優(yōu)先級(jí)22MCS - 51MCS - 51中斷系統(tǒng)中斷系統(tǒng)MCS - 51MCS - 51中斷系統(tǒng)結(jié)構(gòu)框圖中斷系統(tǒng)結(jié)構(gòu)框圖 中斷源中斷源中斷選擇中斷選擇中斷標(biāo)志中斷標(biāo)志23 中斷處理過(guò)程一般分為三個(gè)階段,即中斷處理過(guò)程一般分為三個(gè)

28、階段,即中斷響應(yīng)、中斷處中斷響應(yīng)、中斷處理理和和中斷返回中斷返回。 三、中斷三、中斷響應(yīng)響應(yīng)的條件及過(guò)程的條件及過(guò)程 1.1.中斷響應(yīng)中斷響應(yīng)(1 1)中斷響應(yīng)的條件:)中斷響應(yīng)的條件: 1 1)有中斷源發(fā)出請(qǐng)求信號(hào))有中斷源發(fā)出請(qǐng)求信號(hào) 2 2)中斷是開放的(總允許、源允許)中斷是開放的(總允許、源允許) 3 3)沒有封鎖(受阻),受阻情況是:)沒有封鎖(受阻),受阻情況是: CPUCPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序; 現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前不響應(yīng)任何中斷請(qǐng)

29、求;即現(xiàn)行指令完成前不響應(yīng)任何中斷請(qǐng)求; 當(dāng)前正在執(zhí)行的是中斷返回指令當(dāng)前正在執(zhí)行的是中斷返回指令RETIRETI或訪問專用寄存器或訪問專用寄存器IEIE或或IPIP的指令。也就是說(shuō),在執(zhí)行的指令。也就是說(shuō),在執(zhí)行RETIRETI或是訪問或是訪問IEIE、IPIP的指令的指令后,至少需要再執(zhí)行一條其他指令,才會(huì)響應(yīng)中斷請(qǐng)求。后,至少需要再執(zhí)行一條其他指令,才會(huì)響應(yīng)中斷請(qǐng)求。24 (2 2)中斷響應(yīng)過(guò)程)中斷響應(yīng)過(guò)程 進(jìn)入中斷響應(yīng)周期。進(jìn)入中斷響應(yīng)周期。CPUCPU在中斷響應(yīng)周期要完成下列操作:在中斷響應(yīng)周期要完成下列操作: 1) 1) 根據(jù)中斷請(qǐng)求源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)根據(jù)中斷請(qǐng)求

30、源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置觸發(fā)器置1 1。 2) 2) 清相應(yīng)中斷請(qǐng)求標(biāo)志位清相應(yīng)中斷請(qǐng)求標(biāo)志位IE0IE0、IE1IE1、TF0TF0或或TF1TF1。 3) 3) 保留斷點(diǎn),把保留斷點(diǎn),把PCPC內(nèi)容壓入堆棧保存。內(nèi)容壓入堆棧保存。 4) 4) 把被響應(yīng)的中斷源的服務(wù)把被響應(yīng)的中斷源的服務(wù)程序入口地址送入程序入口地址送入PCPC,轉(zhuǎn)入相應(yīng)的,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。中斷服務(wù)程序。25(3 3)中斷響應(yīng)時(shí)間)中斷響應(yīng)時(shí)間 從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)從查詢中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。器周期數(shù)。1 1)最快響應(yīng)時(shí)間)最快響應(yīng)時(shí)間

31、以外部中斷的電平觸發(fā)為最快。以外部中斷的電平觸發(fā)為最快。 從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期: 1 1個(gè)周期(查詢)個(gè)周期(查詢)2 2個(gè)周期(長(zhǎng)調(diào)用個(gè)周期(長(zhǎng)調(diào)用LCALLLCALL)2 2)最長(zhǎng)時(shí)間)最長(zhǎng)時(shí)間 若當(dāng)前指令是若當(dāng)前指令是RETRET、RETIRETI和和IPIP、IEIE指令,緊接著下一條是乘指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為除指令發(fā)生,則最長(zhǎng)為8 8個(gè)周期:個(gè)周期: 2 2個(gè)周期執(zhí)行當(dāng)前指令(其中含有個(gè)周期執(zhí)行當(dāng)前指令(其中含有1 1個(gè)周期查詢)個(gè)周期查詢)4 4個(gè)周期個(gè)周期乘除指令乘除指令2 2個(gè)周期

32、長(zhǎng)調(diào)用個(gè)周期長(zhǎng)調(diào)用8 8個(gè)周期。個(gè)周期。262.2.中斷處理(服務(wù))與返回中斷處理(服務(wù))與返回 在編寫中斷服務(wù)程序時(shí)加在編寫中斷服務(wù)程序時(shí)加注意注意的幾點(diǎn):的幾點(diǎn):(1)(1)因各入口地址之間只相隔因各入口地址之間只相隔8 8個(gè)字節(jié),所以通常在中斷入口個(gè)字節(jié),所以通常在中斷入口地址單元處存放一條無(wú)條件轉(zhuǎn)移指令,使中斷服務(wù)程序靈活地址單元處存放一條無(wú)條件轉(zhuǎn)移指令,使中斷服務(wù)程序靈活地安排在地安排在64KB64KB程序存儲(chǔ)器的任何空間。程序存儲(chǔ)器的任何空間。(2)(2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用軟件關(guān)閉軟件關(guān)閉CPUCPU

33、中斷(全局中斷),或禁止某中斷源中斷中斷(全局中斷),或禁止某中斷源中斷(局局部中斷部中斷),在中斷返回前再開放中斷。,在中斷返回前再開放中斷。(3)(3)注意保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。注意保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。(4(4)中斷服務(wù)程序的最后一條是返回指令)中斷服務(wù)程序的最后一條是返回指令RETIRETI,該指令將,該指令將清清除響應(yīng)中斷時(shí)被置位的優(yōu)先級(jí)狀態(tài)觸發(fā)器除響應(yīng)中斷時(shí)被置位的優(yōu)先級(jí)狀態(tài)觸發(fā)器,然后自動(dòng)將斷點(diǎn),然后自動(dòng)將斷點(diǎn)地址從棧頂彈出,裝入地址從棧頂彈出,裝入PCPC,使程序返回到被中斷處,繼續(xù)向,使程序返回到被中斷處,繼續(xù)向下執(zhí)行。下執(zhí)行。 27 關(guān)中斷 保護(hù)現(xiàn)場(chǎng) 開中斷 中斷服務(wù) 關(guān)中斷

34、恢復(fù)現(xiàn)場(chǎng) 開中斷 中斷返回 中斷服務(wù)程序流程圖中斷服務(wù)程序流程圖283.3.中斷請(qǐng)求的撤除中斷請(qǐng)求的撤除 CPUCPU響應(yīng)中斷請(qǐng)求后,在中斷返回響應(yīng)中斷請(qǐng)求后,在中斷返回(RETI)(RETI)前,該中斷請(qǐng)求前,該中斷請(qǐng)求信號(hào)必須撤除,否則會(huì)引起另外一次中斷。信號(hào)必須撤除,否則會(huì)引起另外一次中斷。注意:注意:(1)(1)采用采用邊沿觸發(fā)邊沿觸發(fā)的外部中斷標(biāo)志的外部中斷標(biāo)志IE0IE0或或IElIEl和定時(shí)器中斷標(biāo)和定時(shí)器中斷標(biāo)志志TF0TF0或或TFlTFl,CPUCPU響應(yīng)中斷后能用響應(yīng)中斷后能用硬件自動(dòng)情除硬件自動(dòng)情除; ;(2)(2)在在電平觸發(fā)電平觸發(fā)時(shí),時(shí),IE0IE0或或IElIE

35、l受外部引腳中斷信號(hào)的直接控受外部引腳中斷信號(hào)的直接控制,制,CPUCPU無(wú)法控制無(wú)法控制IE0IE0或或IElIEl,需要另外考慮撤除中斷請(qǐng)求信,需要另外考慮撤除中斷請(qǐng)求信號(hào)的措施,如通過(guò)號(hào)的措施,如通過(guò)外加硬件電路外加硬件電路(見下頁(yè)所示),(見下頁(yè)所示),并配合軟并配合軟件來(lái)解決件來(lái)解決;(3)(3)串行口中斷請(qǐng)求串行口中斷請(qǐng)求標(biāo)志標(biāo)志TITI和和RIRI也不能由硬件自動(dòng)清除,需也不能由硬件自動(dòng)清除,需要在中斷服務(wù)程序中,要在中斷服務(wù)程序中,用軟件來(lái)清除用軟件來(lái)清除相應(yīng)的中斷請(qǐng)求標(biāo)志相應(yīng)的中斷請(qǐng)求標(biāo)志. .。 29 并并在中斷服務(wù)程序在中斷服務(wù)程序中增加如下指令,使得的中增加如下指令,使

36、得的/INT0/INT0輸入變輸入變?yōu)楦唠娖?。為高電平。ORLORLP1P1,#01H#01HANLANLP1P1,#0FEH#0FEH 外部中斷為電平觸發(fā)時(shí),如果中斷響應(yīng)后,外部中斷為電平觸發(fā)時(shí),如果中斷響應(yīng)后, 管腳仍為低電平,則會(huì)重新置位中斷請(qǐng)求,為此可以管腳仍為低電平,則會(huì)重新置位中斷請(qǐng)求,為此可以在系統(tǒng)中增加輔助電路解決。在系統(tǒng)中增加輔助電路解決。 0(1)INTINT301.1.在在CPUCPU已經(jīng)開放了外部中斷允許的前提下;已經(jīng)開放了外部中斷允許的前提下;2.2.在在INT0/INT1INT0/INT1引腳輸入一個(gè)引腳輸入一個(gè)負(fù)脈沖負(fù)脈沖或或低電平低電平; 3.3.TCONTCO

37、N寄存器中的寄存器中的IE0/IE1IE0/IE1標(biāo)志位自動(dòng)變標(biāo)志位自動(dòng)變“1”1”;4.4.檢測(cè)到檢測(cè)到IE0/IE1IE0/IE1變變“1”1”后后, ,將產(chǎn)生指令:將產(chǎn)生指令: LCALL 0003H(/0013H)LCALL 0003H(/0013H)執(zhí)行中斷服務(wù)程序;執(zhí)行中斷服務(wù)程序;4 4并將并將IE0/IE1IE0/IE1標(biāo)志位自動(dòng)清標(biāo)志位自動(dòng)清“0”0”或用或用硬件電路撤硬件電路撤除中斷請(qǐng)求信號(hào)除中斷請(qǐng)求信號(hào), ,以備下次申請(qǐng)。以備下次申請(qǐng)。外部中斷外部中斷(INT0,INT1)(INT0,INT1)申請(qǐng)過(guò)程:申請(qǐng)過(guò)程:31 AFH ACH ABH AAH A9H A8H IE

38、 (A8H) EA ES ET1 EX1 ET0 EX0 例例1 1 假設(shè)允許片內(nèi)定時(shí)器假設(shè)允許片內(nèi)定時(shí)器/ /計(jì)數(shù)器中斷,禁止其他中斷。計(jì)數(shù)器中斷,禁止其他中斷。試根據(jù)假設(shè)條件設(shè)置試根據(jù)假設(shè)條件設(shè)置IEIE的相應(yīng)值。的相應(yīng)值。解:解:根據(jù)題目要求,要允許內(nèi)部定時(shí)器中斷,就需要根據(jù)題目要求,要允許內(nèi)部定時(shí)器中斷,就需要將將IEIE寄存器的寄存器的EAEA、ET1ET1、ET0ET0置置1 1,其他位清,其他位清0 0,可分別,可分別通過(guò)字節(jié)尋址或者位尋址進(jìn)行。通過(guò)字節(jié)尋址或者位尋址進(jìn)行。(1) (1) 用字節(jié)操作指令:用字節(jié)操作指令: MOV IEMOV IE,#8AH #8AH 或或 MOV

39、 A8HMOV A8H,#8AH#8AH(2)(2)用位操作指令:用位操作指令: SETBSETBET0 ET0 ; ;定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0允許中斷允許中斷 SETBSETBET1 ET1 ; ;定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1允許中斷允許中斷 SETBSETBEA EA ;CPU;CPU開中斷開中斷32 BCH BBH BAH B9H B8H IP (B8H) PS PT1 PX1 PT0 PX0 例例2 2 系統(tǒng)要求設(shè)定系統(tǒng)要求設(shè)定80518051的片外中斷為高優(yōu)先級(jí)中斷,片的片外中斷為高優(yōu)先級(jí)中斷,片內(nèi)中斷為低優(yōu)先級(jí)。請(qǐng)寫出相應(yīng)的指令。內(nèi)中斷為低優(yōu)先級(jí)。請(qǐng)寫出相應(yīng)的指

40、令。解:解:根據(jù)題目要求,需要將根據(jù)題目要求,需要將80518051的外部中斷優(yōu)先級(jí)控制的外部中斷優(yōu)先級(jí)控制位位PX0PX0、PX1PX1設(shè)置為設(shè)置為1 1,而內(nèi)部中斷優(yōu)先級(jí)控制位,而內(nèi)部中斷優(yōu)先級(jí)控制位PT0PT0、PT1PT1、PSPS清為清為0 0。(1)(1)用字節(jié)操作指令:用字節(jié)操作指令: MOV IPMOV IP,#05H#05H(2)(2)用位操作指令:用位操作指令: SETB PX0SETB PX0 SETB PX1 SETB PX1 CLR PS CLR PS CLR PT0 CLR PT0 CLR PT1 CLR PT1334.34.3 MCS-51 MCS-51單片機(jī)的定

41、時(shí)器單片機(jī)的定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器u定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器的結(jié)構(gòu)的結(jié)構(gòu)u定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器的工作方式的工作方式u定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器應(yīng)用應(yīng)用34 實(shí)現(xiàn)定時(shí)或延時(shí)控制有三種方法:實(shí)現(xiàn)定時(shí)或延時(shí)控制有三種方法:軟件定時(shí)、不可編程軟件定時(shí)、不可編程硬件定時(shí)器、可編程硬件定時(shí)器。硬件定時(shí)器、可編程硬件定時(shí)器。 可編程的硬件定時(shí)器就是其工作方式、定時(shí)值和定時(shí)范可編程的硬件定時(shí)器就是其工作方式、定時(shí)值和定時(shí)范圍可以很方便地由軟件來(lái)確定和改變。通常,一個(gè)可編程定圍可以很方便地由軟件來(lái)確定和改變。通常,一個(gè)可編程定時(shí)時(shí)/ /計(jì)數(shù)器的主要用途有:計(jì)數(shù)器的主要用途有: 以均勻分布的

42、時(shí)間間隔中斷分時(shí)操作系統(tǒng),以便切換程序。以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng),以便切換程序。 向向I/OI/O設(shè)備輸出精確的定時(shí)信號(hào),該信號(hào)的周期由程序控制。設(shè)備輸出精確的定時(shí)信號(hào),該信號(hào)的周期由程序控制。 用作可編程波特率或速率發(fā)生器。用作可編程波特率或速率發(fā)生器。 檢測(cè)外部事件發(fā)生的頻率或周期。檢測(cè)外部事件發(fā)生的頻率或周期。 統(tǒng)計(jì)外部事件處理過(guò)程中某一事件發(fā)生的次數(shù)。統(tǒng)計(jì)外部事件處理過(guò)程中某一事件發(fā)生的次數(shù)。 在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值之后,產(chǎn)生輸出信號(hào),向在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值之后,產(chǎn)生輸出信號(hào),向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。 35 51 51系列單片機(jī)有兩個(gè)系列單片機(jī)有兩個(gè)

43、1616位的定時(shí)器位的定時(shí)器/ /計(jì)數(shù)器:計(jì)數(shù)器:T0T0和和T1T1。T0T0由兩個(gè)由兩個(gè)8 8位的定時(shí)寄存器位的定時(shí)寄存器TH0TH0和和TL0TL0構(gòu)成構(gòu)成1616位寄存器,同位寄存器,同樣,樣,T1T1由兩個(gè)由兩個(gè)8 8位的定時(shí)寄存器位的定時(shí)寄存器TH1TH1和和TL1TL1構(gòu)成構(gòu)成1616位寄存器,位寄存器,它們分別映射在特殊功能寄存器中。它們分別映射在特殊功能寄存器中。TH0TH0、TL0TL0的地址分別的地址分別為為8CH8CH、8AH8AH,TH1TH1和和TL1TL1的地址分別為的地址分別為8DH8DH和和8BH8BH。 其內(nèi)部還有其內(nèi)部還有2 2個(gè)個(gè)8 8位的專用寄存器位的

44、專用寄存器TMODTMOD(88H88H)和)和TCON TCON (89H89H) 。其中。其中TMODTMOD是定時(shí)器的工作方式寄存器,是定時(shí)器的工作方式寄存器,TCONTCON是是控制寄存器,主要用于定時(shí)控制寄存器,主要用于定時(shí)/ /計(jì)數(shù)器管理與控制。計(jì)數(shù)器管理與控制。 4.3.1 4.3.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器的結(jié)構(gòu)計(jì)數(shù)器的結(jié)構(gòu)36CPUTH1TL1P3.5溢出啟動(dòng)中斷TCON(88H)TH0TL0溢出啟動(dòng)TMOD(89H)模式模式P3.44480518051單片機(jī)的定時(shí)器結(jié)構(gòu)單片機(jī)的定時(shí)器結(jié)構(gòu)T0T137一、定時(shí)器一、定時(shí)器/ /計(jì)數(shù)器的定時(shí)和計(jì)數(shù)功能計(jì)數(shù)器的定時(shí)和計(jì)數(shù)功能 在

45、在TMODTMOD中,各有一個(gè)控制位(中,各有一個(gè)控制位(C CT T),分別用于控制),分別用于控制定時(shí)定時(shí)器器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1是工作在是工作在定時(shí)器定時(shí)器方式還是方式還是計(jì)數(shù)器計(jì)數(shù)器方式。方式。1. 1. 定時(shí)功能定時(shí)功能-計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)機(jī)器周期器周期使寄存器的值加使寄存器的值加1 1。所以,計(jì)數(shù)頻率是振蕩頻率的。所以,計(jì)數(shù)頻率是振蕩頻率的1/121/12。2. 2. 計(jì)數(shù)功能計(jì)數(shù)功能-計(jì)數(shù)脈沖來(lái)自相應(yīng)的計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳,外部輸入引腳,T0T0為為P3.4P3.4,T1T1為為P3.5P3.5。即。即對(duì)

46、由對(duì)由T0/T1T0/T1引腳輸入的引腳輸入的負(fù)脈沖負(fù)脈沖進(jìn)行進(jìn)行加法計(jì)數(shù)。加法計(jì)數(shù)。 定時(shí)定時(shí)器器/ /計(jì)數(shù)器的核心部件是計(jì)數(shù)器的核心部件是二進(jìn)制加二進(jìn)制加1 1計(jì)數(shù)器計(jì)數(shù)器(TH0(TH0、TL0TL0或或TH1TH1、TL1) TL1) 。其輸入的計(jì)數(shù)脈沖有其輸入的計(jì)數(shù)脈沖有兩個(gè)來(lái)源兩個(gè)來(lái)源(內(nèi)部時(shí)內(nèi)部時(shí)鐘脈沖和鐘脈沖和外部輸入引腳外部輸入引腳)。當(dāng)加到計(jì)數(shù)器為全)。當(dāng)加到計(jì)數(shù)器為全“1”1”時(shí),再時(shí),再輸入一個(gè)脈沖,就使計(jì)數(shù)器回零,同時(shí)產(chǎn)生溢出脈沖使輸入一個(gè)脈沖,就使計(jì)數(shù)器回零,同時(shí)產(chǎn)生溢出脈沖使TCONTCON中溢出中斷標(biāo)志中溢出中斷標(biāo)志TF0TF0或或TF1TF1置置1 1,并可向

47、,并可向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。38二、定時(shí)器計(jì)數(shù)器的控制寄存器二、定時(shí)器計(jì)數(shù)器的控制寄存器 與定時(shí)器計(jì)數(shù)器有關(guān)的控制寄存器有:與定時(shí)器計(jì)數(shù)器有關(guān)的控制寄存器有:1 1定時(shí)器控制寄存器定時(shí)器控制寄存器TCONTCOND7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志觸發(fā)方式選擇觸發(fā)方式選擇啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0 低電平低電平1 1 下降沿下降沿0 0 停止停止1 1 啟動(dòng)啟動(dòng)392 2工作方式控制寄存器工作方式控制寄存器TMODTMOD T1T1控制控制T0T0控制控制M0M1C/TGATEM0M

48、1C/TGATED0D1D2D3D4D5D6D7GATEGATE門控位門控位C/TC/T計(jì)數(shù)計(jì)數(shù)/ /定時(shí)選擇定時(shí)選擇M1 M0M1 M0工作方式選擇工作方式選擇用于選定定時(shí)用于選定定時(shí)/ /計(jì)數(shù)器的工作方式、啟動(dòng)方式等。計(jì)數(shù)器的工作方式、啟動(dòng)方式等。40 TMOD TMOD的高的高4 4位用于位用于T1T1控制,低控制,低4 4位用于位用于T0T0控制,符號(hào)的控制,符號(hào)的定義如下:定義如下: (1) (1) GATEGATE:門控位。門控位。GATEGATE和軟件控制位和軟件控制位TRTR、外引腳(、外引腳(/INT0/INT0、/INT1/INT1)的狀態(tài),共同控制定時(shí)器)的狀態(tài),共同控制

49、定時(shí)器/ /計(jì)數(shù)器的啟動(dòng)和停止。計(jì)數(shù)器的啟動(dòng)和停止。 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的啟的啟/ /停由軟件對(duì)停由軟件對(duì)TRxTRx位寫位寫“1”/“0”1”/“0”控制??刂啤?GATE = 1 GATE = 1 門控用法門控用法 TimerTimer的啟的啟/ /停由軟件對(duì)停由軟件對(duì)TRxTRx位寫位寫“1”/“0” 1”/“0” 和在和在INTxINTx引腳引腳上出現(xiàn)的信號(hào)的高上出現(xiàn)的信號(hào)的高/ /低共同控制。低共同控制。(2) (2) C/TC/T:定時(shí)定時(shí)/ /計(jì)數(shù)器方式選擇位。計(jì)數(shù)器方式選擇位。 C/T C/T 1 1為計(jì)數(shù)方式;為計(jì)數(shù)方式

50、; C/T C/T 0 0為定時(shí)方式。為定時(shí)方式。(3) (3) M1 M0M1 M0:工作方式選擇位。工作方式選擇位。 M1 M0M1 M00000;方式;方式0 0 M1 M0 M1 M00101;方式;方式1 1 M1 M0 M1 M01010;方式;方式2 2 M1 M0 M1 M01111;方式;方式3 3。41一、一、 方式方式0 0 定時(shí)定時(shí)/ /計(jì)數(shù)器工作于計(jì)數(shù)器工作于方式方式0 0時(shí)為一個(gè)時(shí)為一個(gè)1313位的計(jì)數(shù)器位的計(jì)數(shù)器。選擇定時(shí)器選擇定時(shí)器(T0(T0或或T1)T1)的高的高8 8位和低位和低5 5位組成的一個(gè)位組成的一個(gè)1313位定位定時(shí)器計(jì)數(shù)器。下圖是時(shí)器計(jì)數(shù)器。下

51、圖是T0T0在方式在方式0 0時(shí)的邏輯電路結(jié)構(gòu)。時(shí)的邏輯電路結(jié)構(gòu)。T1T1的模式的模式0 0電路結(jié)構(gòu)與電路結(jié)構(gòu)與T0T0相同。相同。定時(shí)器定時(shí)器T0T0的方式的方式0 0邏輯電路邏輯電路 MCS-51 MCS-51單片機(jī)內(nèi)部的定時(shí)單片機(jī)內(nèi)部的定時(shí)/ /計(jì)數(shù)器是一種可編程器計(jì)數(shù)器是一種可編程器件,可設(shè)置為四種工作方式,由兩個(gè)件,可設(shè)置為四種工作方式,由兩個(gè)8 8位專用寄存器位專用寄存器TMODTMOD和和TCONTCON進(jìn)行管理與控制。進(jìn)行管理與控制。 注:注:此時(shí),此時(shí),/INT0/INT0(須為(須為1 1)不是外部中斷請(qǐng)求信號(hào),而不是外部中斷請(qǐng)求信號(hào),而只是只是對(duì)定時(shí)對(duì)定時(shí)/ /計(jì)數(shù)器的計(jì)

52、數(shù)器的一個(gè)一個(gè)附加控制信號(hào)。附加控制信號(hào)。42(1 1)加加1 1計(jì)數(shù)器為計(jì)數(shù)器為1313位。位。TL0=5TL0=5位,位,TH0=8TH0=8位位(2 2)(GATE+INT0)(GATE+INT0)TR0TR0為真則啟動(dòng)定時(shí)器。為真則啟動(dòng)定時(shí)器。(3 3)C/T=1C/T=1為計(jì)數(shù)工作方式,計(jì)數(shù)脈沖由為計(jì)數(shù)工作方式,計(jì)數(shù)脈沖由T0T0引腳輸入。引腳輸入。 計(jì)數(shù)個(gè)數(shù)計(jì)數(shù)個(gè)數(shù) N=N=( 2 21313初值)初值)(4 4)C/T=0C/T=0為定時(shí)工作方式,時(shí)鐘頻率為為定時(shí)工作方式,時(shí)鐘頻率為fosc/12fosc/12。 定時(shí)時(shí)間定時(shí)時(shí)間t=t=(2 21313初值)初值)* *時(shí)鐘周期

53、時(shí)鐘周期* *1212 顯然:顯然:在機(jī)器周期固定的情況下,定時(shí)時(shí)間的長(zhǎng)短與計(jì)在機(jī)器周期固定的情況下,定時(shí)時(shí)間的長(zhǎng)短與計(jì)數(shù)器事先裝入的初值有關(guān),裝入的數(shù)器事先裝入的初值有關(guān),裝入的初值越大,定時(shí)越短。初值越大,定時(shí)越短。 (5 5)計(jì)數(shù)器溢出,計(jì)數(shù)器溢出,TF0TF0置置1 1。由硬件申請(qǐng)中斷。由硬件申請(qǐng)中斷。43二、方式二、方式1 1 定時(shí)定時(shí)/ /計(jì)數(shù)器工作于方式計(jì)數(shù)器工作于方式1 1時(shí)為一個(gè)時(shí)為一個(gè)1616位的計(jì)數(shù)器位的計(jì)數(shù)器。其邏。其邏輯結(jié)構(gòu)、操作及運(yùn)行控制幾乎與方式輯結(jié)構(gòu)、操作及運(yùn)行控制幾乎與方式0 0完全完全樣,差別僅在樣,差別僅在于計(jì)數(shù)器的位數(shù)不同。于計(jì)數(shù)器的位數(shù)不同。 在方式在

54、方式1 1中中TL0TL0和和TH0TH0均為均為8 8位,位,TL0TL0和和TH0TH0一起構(gòu)成了一起構(gòu)成了l6l6位位計(jì)數(shù)器。計(jì)數(shù)器。定時(shí)工作方式定時(shí)工作方式1 1時(shí),定時(shí)時(shí)間為:時(shí),定時(shí)時(shí)間為:定時(shí)時(shí)間定時(shí)時(shí)間 t t(2(21616計(jì)數(shù)初值計(jì)數(shù)初值) )機(jī)器周期機(jī)器周期用于計(jì)數(shù)器工作方式時(shí):用于計(jì)數(shù)器工作方式時(shí):最大計(jì)數(shù)值最大計(jì)數(shù)值為為: 2: 216166553665536。44定時(shí)器定時(shí)器T0T0的方式的方式1 1邏輯電路邏輯電路45三、三、 方式方式2 2 定時(shí)定時(shí)/ /計(jì)數(shù)器工作于方式計(jì)數(shù)器工作于方式2 2時(shí),將兩個(gè)時(shí),將兩個(gè)8 8位計(jì)數(shù)器位計(jì)數(shù)器THxTHx、TLxTLx分

55、成獨(dú)立的兩部分,組成一個(gè)分成獨(dú)立的兩部分,組成一個(gè)可自動(dòng)重裝載的可自動(dòng)重裝載的8 8位定時(shí)位定時(shí)/ /計(jì)數(shù)計(jì)數(shù)器器。其邏輯結(jié)構(gòu)如下圖所示。其邏輯結(jié)構(gòu)如下圖所示。 方式方式2 2的控制運(yùn)行與方式的控制運(yùn)行與方式0 0、方式、方式1 1相同。相同。 用于定時(shí)工作方式時(shí),用于定時(shí)工作方式時(shí),定時(shí)時(shí)間定時(shí)時(shí)間t t為:為: t t(2(28 8-計(jì)數(shù)初值計(jì)數(shù)初值X)X)機(jī)器周期機(jī)器周期 方式方式2 2用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值( (初值初值0 0時(shí)時(shí)) )是是2 28 8。方式方式2 2特別適合于特別適合于用作較精確的定時(shí)和脈沖信號(hào)發(fā)生器用作較精確的定時(shí)和脈沖信號(hào)發(fā)生

56、器。還常。還常用作用作串行口波特率發(fā)生器串行口波特率發(fā)生器 。46四、方式四、方式3 3 方式方式3 3只適用于定時(shí)器只適用于定時(shí)器T0T0。在方式。在方式3 3下,下,T0T0被分成兩個(gè)相被分成兩個(gè)相互獨(dú)立的互獨(dú)立的8 8位計(jì)數(shù)器位計(jì)數(shù)器TL0TL0和和TH0TH0,如下圖所示,如下圖所示 。(1 1)TH0TH0和和TL0TL0變成變成2 2個(gè)分開的獨(dú)立計(jì)數(shù)器。個(gè)分開的獨(dú)立計(jì)數(shù)器。(2 2)TL0TL0占用了全部的定時(shí)器控制位(占用了全部的定時(shí)器控制位(C/T,GATE,TR0,TF0C/T,GATE,TR0,TF0)。)。(3 3)TH0TH0只能用于定時(shí)方式,運(yùn)行控制位和溢出標(biāo)志位則借

57、用定只能用于定時(shí)方式,運(yùn)行控制位和溢出標(biāo)志位則借用定 時(shí)器時(shí)器1 1的的TR1TR1和和TF1TF1。此時(shí)的定時(shí)器。此時(shí)的定時(shí)器1 1用于串行口波特率發(fā)生器。用于串行口波特率發(fā)生器。 注:注:在在T0T0設(shè)置為方式設(shè)置為方式3 3工作工作時(shí)時(shí),一般是,一般是將定時(shí)器將定時(shí)器T1T1作為串行口作為串行口波特率發(fā)生器,或用于不需要中斷的場(chǎng)合。波特率發(fā)生器,或用于不需要中斷的場(chǎng)合。 47定時(shí)器定時(shí)器T0T0的方式的方式3 3(a)T0(a)T0方式方式3 3時(shí)的時(shí)的T1T1方式方式0 0(b)T0(b)T0方式方式3 3時(shí)的時(shí)的T1T1方式方式1 1484.3.3 4.3.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)

58、器應(yīng)用計(jì)數(shù)器應(yīng)用一、定時(shí)器一、定時(shí)器/ /計(jì)數(shù)器的計(jì)數(shù)初始化計(jì)數(shù)器的計(jì)數(shù)初始化1. 1. 定時(shí)器計(jì)數(shù)器的初始化方法定時(shí)器計(jì)數(shù)器的初始化方法 初始化的主要內(nèi)容是對(duì)初始化的主要內(nèi)容是對(duì)TCONTCON和和TMODTMOD編程,計(jì)算和裝載編程,計(jì)算和裝載T0T0和和T1T1的計(jì)數(shù)初值。的計(jì)數(shù)初值。(1 1)確定相關(guān)參數(shù)確定相關(guān)參數(shù)1 1)分析定時(shí)器計(jì)數(shù)器的工作方式,將方式字寫入)分析定時(shí)器計(jì)數(shù)器的工作方式,將方式字寫入TMODTMOD寄存器;寄存器;( 即確定:定即確定:定/ /計(jì)、內(nèi)計(jì)、內(nèi)/ /外啟動(dòng)、工作方式)外啟動(dòng)、工作方式)2)2)計(jì)算計(jì)算T0T0或或T1T1中的計(jì)數(shù)初值,并將其寫入中的計(jì)數(shù)

59、初值,并將其寫入TH0TH0、TL0TL0或或TH1TH1、TL1TL1;3)3)根據(jù)需要開放根據(jù)需要開放CPUCPU和定時(shí)器計(jì)數(shù)器的中斷,即對(duì)和定時(shí)器計(jì)數(shù)器的中斷,即對(duì)IEIE和和IPIP寄存寄存器編程;器編程;4)4)啟動(dòng)定時(shí)器計(jì)數(shù)器工作:若要求用軟件啟動(dòng),編程時(shí)對(duì)啟動(dòng)定時(shí)器計(jì)數(shù)器工作:若要求用軟件啟動(dòng),編程時(shí)對(duì)TCONTCON中的中的TR0TR0或或TR1TR1置位即可啟動(dòng);若由外部中斷引腳電平啟動(dòng),則對(duì)置位即可啟動(dòng);若由外部中斷引腳電平啟動(dòng),則對(duì)TCONTCON中的中的TR0TR0或或TR1TR1置位后,還需給外部引腳加啟動(dòng)電平。置位后,還需給外部引腳加啟動(dòng)電平。49(2 2)計(jì)算定時(shí)

60、器計(jì)算定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器的的初值初值1 1)計(jì)數(shù)器計(jì)數(shù)器方式時(shí)的方式時(shí)的計(jì)數(shù)初值計(jì)數(shù)初值 TCTC2 2M MN N (M M為計(jì)數(shù)器位數(shù),為計(jì)數(shù)器位數(shù),N N為要求的計(jì)數(shù)值)為要求的計(jì)數(shù)值) 方式方式0 0:M M1313,計(jì)數(shù)器的最大計(jì)數(shù)值,計(jì)數(shù)器的最大計(jì)數(shù)值2 213138192;8192;方式方式1 1:M M1616,計(jì)數(shù)器的最大計(jì)數(shù)值,計(jì)數(shù)器的最大計(jì)數(shù)值2 216166553665536;方式方式2 2:M M8 8,計(jì)數(shù)器的最大計(jì)數(shù)值,計(jì)數(shù)器的最大計(jì)數(shù)值2 28 8256256; 方式方式3 3同方式同方式2 2。 例如,設(shè)例如,設(shè)T0T0工作在計(jì)數(shù)器方式工作在計(jì)數(shù)器方式2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論