版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章中斷系統(tǒng)和定時(shí)器/計(jì)數(shù)器5.1MCS-51中斷系統(tǒng)
5.2MCS-51定時(shí)器/計(jì)數(shù)器
5.3習(xí)題
實(shí)訓(xùn)五中斷系統(tǒng)和定時(shí)器/計(jì)數(shù)器的設(shè)計(jì)與使用
5.1MCS-51中斷系統(tǒng)
5.1.1中斷概述
1.中斷的概念
中斷是指CPU正在處理某件事情(如正在執(zhí)行主程序)時(shí),單片機(jī)外部或內(nèi)部發(fā)生另一事件(如外設(shè)產(chǎn)生一個(gè)電平變化或片內(nèi)計(jì)數(shù)器溢出),請(qǐng)求CPU迅速去處理,于是CPU暫時(shí)中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請(qǐng)求中斷的那個(gè)外設(shè)或事件的服務(wù)程序,等處理完畢后再返回執(zhí)行原來(lái)中止的程序。其運(yùn)行過(guò)程如圖5-1所示。圖5-1中斷示意圖
2.中斷的作用
(1)提高CPU的工作效率。計(jì)算機(jī)與外設(shè)交換信息時(shí),由于CPU的工作速度快,外設(shè)的工作速度慢,便形成了CPU的等待,使效率降低。例如計(jì)算機(jī)與打印機(jī)相連接,CPU處理和傳送數(shù)據(jù)的速度是微秒級(jí)的,而打印機(jī)打字的速度比CPU慢得多,CPU不得不花費(fèi)大量時(shí)間等待和查詢打印機(jī)打印字符。設(shè)置中斷后,CPU不必花費(fèi)大量的時(shí)間等待和查詢外設(shè)工作,計(jì)算機(jī)可以快速傳送一行字符給打印機(jī)去打印,同時(shí)CPU處理其他的工作。待打印機(jī)打印該行完畢,發(fā)給CPU一個(gè)信號(hào),CPU產(chǎn)生中斷,中斷正在處理的工作,轉(zhuǎn)而再傳送一行字符給打印機(jī)。這樣在打印機(jī)打印字符期間,CPU可以不必等待或查詢,自行處理自己的工作,從而大大提高CPU工作效率。
(2)具有實(shí)時(shí)處理功能。實(shí)時(shí)控制是微型計(jì)算機(jī)系統(tǒng)特別是單片機(jī)系統(tǒng)應(yīng)用領(lǐng)域的一個(gè)重要任務(wù)。在實(shí)時(shí)控制系統(tǒng)中,現(xiàn)場(chǎng)各種參數(shù)和狀態(tài)的變化是隨機(jī)發(fā)生的,要求CPU能做出快速響應(yīng),及時(shí)處理。有了中斷系統(tǒng),這些參數(shù)和狀態(tài)的變化就可以作為中斷信號(hào),使CPU中斷,在相應(yīng)的中斷服務(wù)程序中及時(shí)處理這些參數(shù)和狀態(tài)的變化。
(3)具有故障處理功能。單片機(jī)應(yīng)用系統(tǒng)在實(shí)際運(yùn)行中,常會(huì)出現(xiàn)一些故障。例如電源突然掉電、硬件自檢出錯(cuò)、運(yùn)算溢出等。利用中斷,就可以執(zhí)行處理故障的中斷服務(wù)程序。
(4)實(shí)現(xiàn)分時(shí)操作。單片機(jī)應(yīng)用系統(tǒng)通常需要控制多個(gè)外設(shè)同時(shí)工作,例如鍵盤、打印機(jī)、顯示器、A/D轉(zhuǎn)換器等,這些設(shè)備工作有些是隨機(jī)的,有些是定時(shí)的。對(duì)于一些定時(shí)工作的外設(shè),可以利用定時(shí)器來(lái)控制,到一定時(shí)間產(chǎn)生中斷,在中斷服務(wù)程序中控制這些外設(shè)工作。例如動(dòng)態(tài)掃描顯示,每隔一定時(shí)間更換顯示字位碼和字段碼。
此外,中斷系統(tǒng)還能用于程序調(diào)試、多機(jī)連接等方面。因此,中斷系統(tǒng)是計(jì)算機(jī)中重要的組成部分??梢哉f(shuō),只有有了中斷系統(tǒng)后,計(jì)算機(jī)才能比原來(lái)無(wú)中斷系統(tǒng)的早期計(jì)算機(jī)演繹出多姿多彩的功能。5.1.2中斷系統(tǒng)結(jié)構(gòu)
1.中斷源
中斷源是指能發(fā)出中斷請(qǐng)求,引起中斷的裝置或事件。MCS-51單片機(jī)的中斷源共有5個(gè),其中2個(gè)為外部中斷源,3個(gè)為內(nèi)部中斷源。
2.中斷控制寄存器
MCS-51單片機(jī)中涉及中斷控制的有中斷請(qǐng)求、中斷允許和中斷優(yōu)先級(jí)控制3個(gè)方面,共4個(gè)特殊功能寄存器。
中斷請(qǐng)求:定時(shí)和外中斷控制寄存器TCON、串行控制寄存器SCON。
中斷允許控制寄存器IE。
中斷優(yōu)先級(jí)控制寄存器IP。
1)中斷請(qǐng)求控制寄存器表5-1TCON寄存器結(jié)構(gòu)及位地址
2)串行控制寄存器SCON
SCON的結(jié)構(gòu)、位名稱、位地址如表5-2所示。表5-2SCON寄存器結(jié)構(gòu)及位地址
3)中斷允許控制寄存器IE
MCS-51單片機(jī)對(duì)中斷源的開(kāi)放或關(guān)閉(屏蔽)是由中斷允許控制寄存器IE控制的,可用指令對(duì)各位分別置“1”或清“0”,從而實(shí)現(xiàn)對(duì)各中斷源開(kāi)放或關(guān)閉。IE字節(jié)地址位A8H,可位尋址。IE的結(jié)構(gòu)、位名稱、位地址如表5-3所示。表5-3IE寄存器結(jié)構(gòu)及位地址
4)中斷優(yōu)先級(jí)控制寄存器IP
MCS-51有五個(gè)中斷源,劃分為兩個(gè)中斷優(yōu)先級(jí);高優(yōu)先級(jí)和低優(yōu)先級(jí)。若CPU在執(zhí)行低優(yōu)先級(jí)中斷時(shí),又發(fā)生高優(yōu)先級(jí)請(qǐng)求中斷,CPU會(huì)中斷正在執(zhí)行的低優(yōu)先級(jí)中斷,轉(zhuǎn)而去響應(yīng)高優(yōu)先級(jí)中斷。中斷優(yōu)先級(jí)的劃分是可編程序的,即可以用指令設(shè)置哪些中斷源為高優(yōu)先級(jí),哪些中斷源為低優(yōu)先級(jí)。控制中斷優(yōu)先的寄存器為IP,只要對(duì)IP各位設(shè)置“1”或清“0”,就可對(duì)各中斷源設(shè)置為高優(yōu)先級(jí)或低優(yōu)先級(jí)。相應(yīng)位置“1”,定義為高優(yōu)先級(jí);相應(yīng)位清“0”,定義為低優(yōu)先級(jí)。IP的結(jié)構(gòu)、位名稱和位地址如表5-4所示。表5-4IP寄存器結(jié)構(gòu)及位地址5.1.3中斷處理過(guò)程
中斷處理過(guò)程大致可分為四步:中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)和中斷返回。
1.中斷請(qǐng)求
當(dāng)中斷源要求CPU為它服務(wù)時(shí),必須發(fā)出一個(gè)中斷信號(hào)。若是外部中斷源,則需將中斷請(qǐng)求信號(hào)發(fā)送到規(guī)定的外部中斷引腳上,由CPU將相應(yīng)的中斷請(qǐng)求標(biāo)志位置“1”。為保證該中斷得以實(shí)現(xiàn),中斷請(qǐng)求信號(hào)應(yīng)保持到CPU響應(yīng)該中斷后才能取消。若是內(nèi)部中斷,則內(nèi)部硬件電路將自動(dòng)置位該中斷請(qǐng)求標(biāo)志。CPU將不斷地及時(shí)地查詢這些中斷請(qǐng)求標(biāo)志,一旦查詢到某個(gè)中斷請(qǐng)求標(biāo)志置位,CPU就響應(yīng)該中斷源中斷。
2.中斷響應(yīng)
CPU查詢到某中斷標(biāo)志為“1”,在滿足中斷響應(yīng)條件下,響應(yīng)中斷。
1)中斷響應(yīng)條件
(1)總中斷打開(kāi),EA=1。該中斷已經(jīng)“開(kāi)中斷”即允許位為“1”。
(2)?CPU此時(shí)沒(méi)有響應(yīng)同級(jí)或更高級(jí)的中斷。
(3)當(dāng)前正處于所執(zhí)行指令的最后一個(gè)機(jī)器周期。
(4)該中斷源發(fā)出中斷請(qǐng)求,無(wú)論外中斷還是內(nèi)中斷均使中斷請(qǐng)求標(biāo)志置位,以等待CPU查詢。CPU是在執(zhí)行每一條指令的最后一個(gè)機(jī)器周期去查詢中斷請(qǐng)求標(biāo)志位是否置
位,查詢到有中斷標(biāo)志置位就響應(yīng)中斷。在其他時(shí)間CPU不查詢,即不會(huì)響應(yīng)中斷。
(5)正在執(zhí)行的指令不是RETI或者是訪問(wèn)IE、IP的指令,否則必須再另外執(zhí)行一條指令后才能響應(yīng)。
2)中斷響應(yīng)操作
在滿足上述中斷響應(yīng)條件的前提下,進(jìn)行中斷響應(yīng),CPU響應(yīng)中斷后,進(jìn)行以下操作:
(1)保護(hù)中斷地址。因?yàn)镃PU響應(yīng)中斷是中斷原來(lái)的執(zhí)行程序,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序執(zhí)行完畢后,還要返回到原來(lái)的斷點(diǎn)處,繼續(xù)執(zhí)行原來(lái)的程序。因此,必須把斷點(diǎn)的PC地址保存起來(lái),以便正確返回。斷點(diǎn)的地址保存在堆棧之中。16位PC地址占用堆棧中兩個(gè)字節(jié)。
(2)撤除該中斷源的中斷請(qǐng)求標(biāo)志。CPU在執(zhí)行每一條指令的最后一個(gè)機(jī)器周期都去查詢中斷請(qǐng)求標(biāo)志位是否置位,響應(yīng)中斷后,必須將其撤消;否則,中斷返回后將重新響應(yīng)該中斷而出錯(cuò)。
(3)關(guān)閉同級(jí)中斷。在一種中斷響應(yīng)后,同一優(yōu)先級(jí)的中斷即被暫時(shí)屏蔽。待中斷返回時(shí)再重新自動(dòng)開(kāi)啟。
(4)將相應(yīng)中斷的入口地址送入PC中。對(duì)MCS-51來(lái)講,每一個(gè)中斷源都有其對(duì)應(yīng)的固定不變的中斷入口地址,哪一個(gè)中斷源中斷,在PC中就裝入哪一個(gè)中斷源相應(yīng)的中斷入口地址。MCS-51的5個(gè)中斷源中斷入口地址如下:
3.中斷服務(wù)
一般來(lái)說(shuō),中斷服務(wù)程序應(yīng)包括以下幾部分:
1)保護(hù)現(xiàn)場(chǎng)
在中斷服務(wù)程序中,通常會(huì)用到一些特殊功能寄存器,如A、PSW、DPTR等,而這些特殊功能寄存器中斷前的數(shù)據(jù)在中斷返回后還要用到,若在中斷服務(wù)程序中被改變,返回主程序后就會(huì)出錯(cuò)。因此,要求把這些特殊功能寄存器在中斷前的數(shù)據(jù)保存起來(lái),待中斷返回后恢復(fù)。
保護(hù)現(xiàn)場(chǎng)就是把斷點(diǎn)處有關(guān)寄存器的內(nèi)容壓入堆棧保護(hù),以便中斷返回后恢復(fù)。通常有關(guān)特殊功能寄存器是A、PSW、DPTR等。
2)執(zhí)行中斷
執(zhí)行中斷服務(wù)程序,完成操作內(nèi)容、實(shí)現(xiàn)中斷源要求的功能,是中斷的主體。
3)恢復(fù)現(xiàn)場(chǎng)
與保護(hù)現(xiàn)場(chǎng)相對(duì)應(yīng),中斷返回前,將所保護(hù)的寄存器內(nèi)容從堆棧中彈出,送回到原寄存器中,以便從斷點(diǎn)處繼續(xù)執(zhí)行原來(lái)的程序。利用堆棧保護(hù)和恢復(fù)現(xiàn)場(chǎng)需要遵循先進(jìn)后出、后進(jìn)先出的原則。
4.中斷返回
在中斷服務(wù)程序最后,必須安排一條中斷返回指令RETI,當(dāng)CPU執(zhí)行RETI指令后,自動(dòng)完成下列操作:
(1)恢復(fù)斷點(diǎn)地址。將原來(lái)壓入堆棧中的PC斷點(diǎn)地址從堆棧中彈出,送回PC。這樣CPU就返回到原斷點(diǎn)處,繼續(xù)執(zhí)行被中斷的原程序。中斷返回,返回到哪里,返回的原則是,從什么地方來(lái),回到什么地方去。不是返回到相應(yīng)中斷的入口地址,而是返回到中斷斷點(diǎn)地址。
(2)開(kāi)放同級(jí)中斷,以便允許同級(jí)中斷源請(qǐng)求中斷。上述中斷響應(yīng)過(guò)程大部分操作是自動(dòng)完成的。用戶需要做的事情是編制中斷服務(wù)程序。并在此之前完成中斷初始化(設(shè)置堆棧,定義外中斷觸發(fā)方式,定義中斷優(yōu)先級(jí),開(kāi)放中斷等)。5.1.4中斷響應(yīng)等待時(shí)間
在中斷過(guò)程中,從發(fā)出中斷請(qǐng)求到響應(yīng)中斷需要等待一個(gè)響應(yīng)時(shí)間,即響應(yīng)等待時(shí)間?,F(xiàn)以外部中斷為例說(shuō)明中斷響應(yīng)等待時(shí)間。CPU在執(zhí)行指令的最后一個(gè)機(jī)器周期的S5P2狀態(tài)節(jié)拍中采樣TCON,若發(fā)現(xiàn)TCON中的IE0=1,則在下一個(gè)機(jī)器周期進(jìn)入中斷處理過(guò)程。首先查詢?cè)撝袛嗍欠駶M足中斷響應(yīng)條件。若滿足條件,則在再下一機(jī)器周期進(jìn)入中斷響應(yīng)過(guò)程,由硬件生成一條相當(dāng)于長(zhǎng)調(diào)用的指令,轉(zhuǎn)移到相應(yīng)中斷入口地址。因此從中斷源發(fā)出中斷請(qǐng)求有效到執(zhí)行中斷服務(wù)程序中第一條指令的時(shí)間至少需要3個(gè)機(jī)器周期。如果正在執(zhí)行的指令是RETI或訪問(wèn)IE、IP的指令,則根據(jù)中斷響應(yīng)條件,執(zhí)行或訪問(wèn)IE、IP的指令是不滿足中斷響應(yīng)條件的,必須等待這類指令執(zhí)行完畢,再另外執(zhí)行一條指令后,才能滿足中斷響應(yīng)條件,進(jìn)入中斷響應(yīng)。在這種情況下,中斷響應(yīng)等待時(shí)間最長(zhǎng)就需要8個(gè)機(jī)器周期。
如果CPU正在執(zhí)行同級(jí)或更高級(jí)的中斷服務(wù)程序,那么必須等CPU執(zhí)行同級(jí)或更高級(jí)的中斷服務(wù)程序結(jié)束返回后,才能響應(yīng)新的中斷。這樣,中斷響應(yīng)等待時(shí)間就要視執(zhí)行同級(jí)或更高級(jí)的中斷服務(wù)程序時(shí)間的長(zhǎng)短,就無(wú)法判定了。
綜上所述,若排除CPU正在響應(yīng)同級(jí)或更高極的中斷情況,中斷響應(yīng)等待時(shí)間為3~8個(gè)機(jī)器周期,一般情況是3~4個(gè)機(jī)器周期;執(zhí)行RETI或IE、IP訪問(wèn)指令,且后一條指令是乘除法指令時(shí),最長(zhǎng)可達(dá)8個(gè)機(jī)器周期。5.1.5中斷請(qǐng)求的撤除
中斷請(qǐng)求被響應(yīng)后,有一個(gè)中斷請(qǐng)求的撤除問(wèn)題。中斷源發(fā)出中斷請(qǐng)求,相應(yīng)中斷請(qǐng)求標(biāo)志位置“1”。CPU響應(yīng)中斷后,必須清除中斷請(qǐng)求標(biāo)志位的“1”。否則,中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。有關(guān)中斷請(qǐng)求標(biāo)志撤除情況分析說(shuō)明如下:
1.定時(shí)器/計(jì)數(shù)器中斷請(qǐng)求的撤除
定時(shí)器/計(jì)數(shù)器中斷的中斷請(qǐng)求被響應(yīng)后,硬件會(huì)自動(dòng)把中斷請(qǐng)求標(biāo)志位TF0和TF1清“0”,即自動(dòng)撤除中斷請(qǐng)求。
3.串行口中斷請(qǐng)求的撤除
串行口中斷請(qǐng)求的撤除只有標(biāo)志位清“0”的問(wèn)題。CPU響應(yīng)中斷后不能自動(dòng)將中斷請(qǐng)求標(biāo)志位TI和RI清“0”,應(yīng)在串行中斷服務(wù)程序中用指令清“0”,即用如下指令在對(duì)標(biāo)志位進(jìn)行清“0”:
CLR TI ;
CLR RI ;5.1.6中斷系統(tǒng)的應(yīng)用
中斷系統(tǒng)的應(yīng)用要解決的主要問(wèn)題是應(yīng)用程序的編制,編寫應(yīng)用程序包括兩大部分內(nèi)容:一部分是中斷初始化;另一部分是中斷服務(wù)主程序的設(shè)計(jì)。
1.中斷初始化
中斷初始化應(yīng)在產(chǎn)生中斷請(qǐng)求前完成,一般放在主程序中,與主程序其他初始化內(nèi)容一起完成設(shè)置。
1)設(shè)置堆棧指針SP
中斷需要保護(hù)斷點(diǎn)處的PC地址和保護(hù)現(xiàn)場(chǎng)數(shù)據(jù),都需要用堆棧實(shí)現(xiàn)保護(hù),因此要設(shè)置適當(dāng)?shù)亩褩I疃?,一般設(shè)置SP=60H或50H即可。
2)定義中斷優(yōu)先級(jí)
根據(jù)中斷源的輕重緩急,劃分高優(yōu)先級(jí)和低優(yōu)先級(jí)。用MOVIP,#XXH或SETBXX指令設(shè)置。
3)定義外中斷的觸發(fā)方式
通常情況,外中斷的觸發(fā)方式定義為邊沿觸發(fā)為宜。若外部中斷信號(hào)無(wú)法適用邊沿觸發(fā)方式,則采用電平觸發(fā)方式,應(yīng)在硬件電路上和中斷服務(wù)程序中采取相應(yīng)的撤消中斷請(qǐng)求信號(hào)的措施。
2.中斷服務(wù)主程序
中斷服務(wù)主程序內(nèi)容要求如下:
(1)在中斷服務(wù)入口地址處設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。跳轉(zhuǎn)指令可用SJMP、AJMP或LJMP指令,SJMP、AJMP均受跳轉(zhuǎn)范圍的限制,建議采用LJMP指令,則可跳轉(zhuǎn)到64?KB中任何位置的中斷服務(wù)程序去。
(2)保護(hù)現(xiàn)場(chǎng)。通常保護(hù)A、PSW和DPTR等特殊功能寄存器中的內(nèi)容。若中斷服務(wù)程序中不涉及A、PSW、DPTR,則不保護(hù),也不恢復(fù)。
(3)中斷源請(qǐng)求中斷服務(wù)所要完成的操作,這是中斷服務(wù)程序的主體。
(4)若是外中斷的電平觸發(fā)方式,應(yīng)有中斷信號(hào)撤除操作。若是串行收發(fā)中斷,應(yīng)有對(duì)RI、TI清0的指令。
(5)恢復(fù)現(xiàn)場(chǎng)與保護(hù)現(xiàn)場(chǎng)相對(duì)應(yīng),遵循先進(jìn)后出、后進(jìn)先出的操作原則。
(6)中斷返回。中斷服務(wù)程序中最后一條指令必須是RETI。
5.2MCS-51定時(shí)器/?計(jì)數(shù)器
5.2.1定時(shí)器/計(jì)數(shù)器概述
MCS-51單片機(jī)內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器T0和T1,其核心是計(jì)數(shù)器,基本功能是加1。對(duì)外部事件脈沖(下降沿)計(jì)數(shù),是計(jì)數(shù)器;對(duì)片內(nèi)機(jī)器周期脈沖計(jì)數(shù),是定時(shí)器。因?yàn)槠瑑?nèi)機(jī)器周期脈沖頻率是固定的,是fOSC的1/12。若fOSC=12?MHz,1個(gè)機(jī)器周期為1?μs;若fOSC=6MHz,1個(gè)機(jī)器周期為2?μs。
定時(shí)時(shí)間?=?機(jī)器周期?×?機(jī)器周期數(shù)5.2.2定時(shí)器/計(jì)數(shù)器的控制寄存器
1.定時(shí)器/計(jì)數(shù)器控制寄存器TCON
TCON的字節(jié)地址為88H,可位尋址。其結(jié)構(gòu)和各位名稱、位地址如表5-5所示。表5-5TCON的結(jié)構(gòu)和各位名稱、位地址
2.定時(shí)器/計(jì)數(shù)器工作方式控制寄存器TMOD
TMOD用于設(shè)定定時(shí)器/計(jì)數(shù)器工作方式,字節(jié)地址為89H,不能位尋址。低4位用于控制T0,高4位用于控制T1。TMOD的結(jié)構(gòu)和各位名稱、功能如表5-6所示。表5-6TMOD的結(jié)構(gòu)和各位名稱、功能
(1)?M1M0:工作方式選擇位。M1M0兩位二進(jìn)制可表示四種狀態(tài),因此M1M0可選擇四種工作方式,如表5-7所示。表5-7M1M0的4種工作方式5.2.3定時(shí)器/計(jì)數(shù)器的工作方式
1.工作方式0
當(dāng)M1M0=00時(shí),定時(shí)器/計(jì)數(shù)器工作于方式0,如圖5-2所示。在方式0情況下,內(nèi)部計(jì)數(shù)器為13位。由TL0低5位和TH0的8位組成,TL0低5位計(jì)數(shù)滿時(shí)不向TL0第6位進(jìn)位,而是向TH0進(jìn)位,13位計(jì)滿溢出,TF0置“1”,最大計(jì)數(shù)值213=8192?(計(jì)數(shù)器初值為0)。圖5-2定時(shí)器/計(jì)數(shù)器T0工作方式0框圖
2.工作方式1
當(dāng)M1M0=01時(shí),定時(shí)器/計(jì)數(shù)器工作于方式1。在方式1情況下,內(nèi)部計(jì)數(shù)器為16位。由TL0作低8位,TH0作高8位。16位計(jì)滿溢出時(shí),TF0置“1”。
方式1與方式0的區(qū)別在于方式0是13位計(jì)數(shù)器,最大計(jì)數(shù)值213=8192;方式1是16位計(jì)數(shù)器,最大計(jì)數(shù)值為216=65?536。用作定時(shí)器時(shí),若fOSC?=?12?MHz,則方式0最大定時(shí)時(shí)間為8192?μs,方式1最大定時(shí)時(shí)間為65?536?μs。
3.工作方式2
當(dāng)M1M0=10時(shí),定時(shí)器/計(jì)數(shù)器工作于方式2。在方式2情況下,定時(shí)器/計(jì)數(shù)器為8位,能自動(dòng)恢復(fù)定時(shí)器/計(jì)數(shù)器的初值。在方式0、方式1時(shí),定時(shí)器/計(jì)數(shù)器的初值不能自動(dòng)恢復(fù),計(jì)滿后若要恢復(fù)原來(lái)的初值,須在程序中用指令重新給TH0、TL0賦值。但用方式2時(shí),僅用TL0計(jì)數(shù),最大計(jì)數(shù)值為28=256,計(jì)滿溢出后,一方面進(jìn)位TF0,使溢出標(biāo)志TF0=1;另一方面,使原來(lái)裝在TH0中的初值裝入TL0(TH0中的初值允許與TL0不同)。所以,方式2既有優(yōu)點(diǎn),又有缺點(diǎn),優(yōu)點(diǎn)是定時(shí)初值可自動(dòng)恢復(fù),缺點(diǎn)是計(jì)數(shù)范圍小。因此,方式2適用于需要重復(fù)定時(shí),而定時(shí)范圍不大的應(yīng)用場(chǎng)合。
4.工作方式3
當(dāng)M1M0=11時(shí),定時(shí)器/計(jì)數(shù)器工作于方式3,但方式3僅適用于T0,T1無(wú)方式3。
1)?T0方式3
在方式3情況下,T0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TH0、TL0,如圖5-3所示。圖5-3定時(shí)器/計(jì)數(shù)器T0工作方式3
2)?T0方式3情況下的T1
T1由于其TF1、TR1被T0的TH0占用,計(jì)數(shù)器溢出時(shí),只能將輸出信號(hào)送出至串行口,即用作串行口波特率發(fā)生器。但T1工作方式仍可設(shè)置為方式0~方式2,C/控制位仍可使T1工作在計(jì)數(shù)器方式或定時(shí)器方式。
T0方式3情況下的T1方式2,因定時(shí)初值能自動(dòng)恢復(fù),用作波特率發(fā)生器更為合適。5.2.4定時(shí)器/計(jì)數(shù)器的應(yīng)用
1.計(jì)算定時(shí)器/計(jì)數(shù)器初值
MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器初值(有的書中稱時(shí)間常數(shù))計(jì)算公式為
【例5-2】
已知晶振頻率為6MHz,要求定時(shí)0.5?ms,試分別求出T0工作于方式0、方式1、方式2、方式3時(shí)的定時(shí)初值。
解:(1)工作于方式0。
(4)工作于方式3。
方式3時(shí),T0被拆成兩個(gè)8位定時(shí)器,定時(shí)初值可分別計(jì)算,計(jì)算方法同方式2。兩個(gè)定時(shí)初始值一個(gè)裝入TL0,另一個(gè)裝入TH0。因此,TH0=06H;TL0=06H。
工作方式0時(shí)計(jì)算定時(shí)初值比較麻煩,根據(jù)式(5-1)計(jì)算出數(shù)值后,還要交換一下,容易出錯(cuò),不如直接用方式1,且方式0計(jì)數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比無(wú)任何優(yōu)點(diǎn)。通常選用方式1較合適。
2.定時(shí)器/計(jì)數(shù)器應(yīng)用步驟
(1)合理選擇定時(shí)器/計(jì)數(shù)器工作方式。根據(jù)所要求的定時(shí)時(shí)間長(zhǎng)短、定時(shí)的重復(fù)性,合理選擇定時(shí)器/計(jì)數(shù)器工作方式,確定實(shí)現(xiàn)方法。一般來(lái)講,定時(shí)時(shí)間長(zhǎng),用方式1(盡量不用方式0);定時(shí)時(shí)間短(≤255機(jī)器周期)且需重復(fù)使用自動(dòng)恢復(fù)定時(shí)初值,用方式2;串行通信波特率,用T1的方式2。
(2)計(jì)算定時(shí)器/計(jì)數(shù)器定時(shí)初值按式(5-1)計(jì)算。
(3)編制應(yīng)用程序。定時(shí)器/計(jì)數(shù)器的初始化,包括定義TMOD,寫入定時(shí)初值,設(shè)置中斷系統(tǒng),啟動(dòng)定時(shí)器/計(jì)數(shù)器運(yùn)行等。
3.定時(shí)器/計(jì)數(shù)器應(yīng)用舉例
【例5-3】
設(shè)系統(tǒng)時(shí)鐘頻率為12?MHz。要在P1.0引腳上輸出周期為400?μs的脈沖波,試分別用T1工作方式0、方式1、方式2編寫程序。
解:(1)采用工作方式0。
設(shè)置TMOD如下:
(2)采用工作方式1。
設(shè)置TMOD如下:
(3)采用工作方式2。
設(shè)置TMOD如下:實(shí)時(shí)時(shí)鐘設(shè)計(jì)是以秒、分、時(shí)為計(jì)時(shí)單位。定時(shí)100ms,計(jì)數(shù)10次,即得到秒計(jì)時(shí)。時(shí)鐘運(yùn)行時(shí),在片內(nèi)RAM安排3個(gè)單元作為秒、分、時(shí)數(shù)據(jù)的存放空間。
時(shí)鐘為6MHz的條件下,方式0最長(zhǎng)定時(shí)16.384ms;方式1最長(zhǎng)定時(shí)131.072ms;方式2最長(zhǎng)定時(shí)0.512ms。可選方式1,每隔100ms中斷一次,中斷10次為1?s。
【例5-4】設(shè)系統(tǒng)時(shí)鐘頻率為6MHz,試采用查詢方式編寫24?h實(shí)時(shí)時(shí)鐘程序。秒、分、時(shí)數(shù)據(jù)分別存放在R1、R2、R3中??烧{(diào)用顯示程序DIR。
解:采用T0工作方式1。取定時(shí)100ms,計(jì)10次,100?ms?×?10?=?1?s。
【例5-5】
設(shè)系統(tǒng)時(shí)鐘頻率為12?MHz,P1.7經(jīng)反相器接一發(fā)光二極管,要求利用定時(shí)器T0使發(fā)光二極管進(jìn)行秒閃爍。
解:發(fā)光管秒閃爍。即1?s內(nèi)一亮一滅,亮500ms,滅500ms。晶振12?MHz,一機(jī)器周期為1?μs,T0方式1最大定時(shí)只能65ms左右,取50ms,計(jì)數(shù)10次,即可實(shí)現(xiàn)500ms的定時(shí)。
計(jì)算定時(shí)初值:設(shè)置TMOD如下:
5.3習(xí)題
1.填空題
(1)外部中斷1的入口地址為()。
(2)定時(shí)器1的中斷入口地址為()。
(3)外部中斷請(qǐng)求位是()和()。
(4)執(zhí)行返回指令時(shí),返回的斷點(diǎn)地址是()。
2.什么叫中斷?設(shè)置中斷有什么優(yōu)點(diǎn)和功能?
3.MCS-51單片機(jī)有幾個(gè)中斷源?寫出其名稱。
4.涉及MCS-51單片機(jī)中斷控制的有哪幾個(gè)特殊功能寄存器?
5.寫出MCS-51單片機(jī)五個(gè)中斷源的中斷入口地址。
12.什么叫現(xiàn)場(chǎng)恢復(fù)?現(xiàn)場(chǎng)恢復(fù)與現(xiàn)場(chǎng)保護(hù)有什么關(guān)系?須遵循什么原則?
13.中斷初始化包括哪些內(nèi)容?
14.利用中斷設(shè)計(jì)一個(gè)應(yīng)用系統(tǒng),實(shí)現(xiàn)顯示P3.2引腳上出現(xiàn)負(fù)跳變脈沖的個(gè)數(shù)(設(shè)此脈沖數(shù)小于255,可直接調(diào)用顯示子程序DIR)。
15.MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器在什么情況下是定時(shí)器?什么情況下是計(jì)數(shù)器?
16.寫出TMOD的結(jié)構(gòu)、各位的名稱和作用。
17.MCS-51單片機(jī)定時(shí)器/計(jì)數(shù)器,當(dāng)晶振頻率分別是6?MHz和12?MHz時(shí),最大定時(shí)各為多少?
實(shí)訓(xùn)五中斷系統(tǒng)和定時(shí)器/計(jì)數(shù)器的
設(shè)計(jì)與使用
實(shí)訓(xùn)5.1定時(shí)器(循環(huán)彩燈控制)
一、實(shí)驗(yàn)?zāi)康?/p>
(1)學(xué)習(xí)MCS-51單片機(jī)內(nèi)部計(jì)數(shù)器的使用和編程方法。
(2)進(jìn)一步掌握中斷處理程序的編寫方法。
二、實(shí)驗(yàn)設(shè)備
EL—8051型單片機(jī)實(shí)驗(yàn)系統(tǒng)。三、實(shí)驗(yàn)原理
1.定時(shí)常數(shù)的確
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技進(jìn)步與項(xiàng)目?jī)?yōu)化
- 專利使用權(quán)及收益分配合同版B版
- 2025年度運(yùn)動(dòng)健身器材試用買賣服務(wù)合同4篇
- 二零二五年度大數(shù)據(jù)中心建設(shè)不可撤銷數(shù)據(jù)安全保密合同3篇
- 2025年度產(chǎn)學(xué)研產(chǎn)學(xué)研合作企業(yè)社會(huì)責(zé)任合作協(xié)議:社會(huì)責(zé)任履行與產(chǎn)業(yè)和諧發(fā)展3篇
- 2025年度文化用品場(chǎng)買賣合同規(guī)范文本4篇
- 二零二五年度獵頭服務(wù)與人才效能提升合作協(xié)議3篇
- 2024藥店門店店長(zhǎng)聘用合同范本3篇
- 二零二五年度車輛租賃與車輛租賃行業(yè)規(guī)范制定協(xié)議3篇
- 專用消防設(shè)備增補(bǔ)協(xié)議規(guī)范文本版B版
- 危險(xiǎn)性較大分部分項(xiàng)工程及施工現(xiàn)場(chǎng)易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護(hù)試題庫(kù)(含參考答案)
- 《榜樣9》觀后感心得體會(huì)四
- 《住院患者身體約束的護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀課件
- 酒店一線員工績(jī)效考核指標(biāo)體系優(yōu)化研究
- 建設(shè)領(lǐng)域禁止、限制使用落后技術(shù)通告版
- Harris-髖關(guān)節(jié)功能評(píng)分標(biāo)準(zhǔn)(共1頁(yè))
- 成都市優(yōu)質(zhì)結(jié)構(gòu)工程申報(bào)指南
- 小學(xué)四年級(jí)上冊(cè)-數(shù)學(xué)口算題精選(分頁(yè)打印)
- 【納棺夫日記】
- 《鐵路貨車運(yùn)用維修規(guī)程》2018年10月
評(píng)論
0/150
提交評(píng)論