




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章MCS-51單片機(jī)定時(shí)系統(tǒng)與中斷系統(tǒng)本章學(xué)習(xí)目標(biāo):了解中斷的基本概念和功能。掌握中斷系統(tǒng)的結(jié)構(gòu)和控制方式。掌握中斷系統(tǒng)的中斷處理過程。了解定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與工作原理。掌握定時(shí)器/的四種工作方式的特點(diǎn)及應(yīng)用。5.1中斷系統(tǒng)及應(yīng)用中斷是指CPU正在處理某件事情的時(shí)候,外部發(fā)生了某一事件,請(qǐng)求CPU迅速去處理。CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完以后,再回來繼續(xù)執(zhí)行被終止了的工作,這個(gè)過程稱為中斷。實(shí)現(xiàn)中斷功能的硬件和軟件稱為中斷系統(tǒng),產(chǎn)生中斷請(qǐng)求的請(qǐng)求源稱為中斷源。原來正在執(zhí)行的程序稱為主程序,主程序被斷開的位置稱為斷點(diǎn)。5.1.1中斷的概念5.1.2中斷源以8051為例,共有3類5個(gè)中斷源,5個(gè)中斷源中共有兩個(gè)外部中斷、兩個(gè)定時(shí)中斷和一個(gè)串行中斷。(1)外部中斷源外部中斷是由外部原因(如打印機(jī)、鍵盤、控制開關(guān)、外部故障)引起的,可以通過兩個(gè)固定引腳來輸入到單片機(jī)內(nèi)的信號(hào),即外部中斷0和外部中斷1。外部中斷0中斷請(qǐng)求信號(hào)輸入端,P3.2的第二功能。由定時(shí)器控制寄存器TCON中的IT0位決定中斷請(qǐng)求信號(hào)是低電平還是下降沿有效。一旦輸入信號(hào)有效,即向CPU申請(qǐng)中斷,并且硬件自動(dòng)使IE0置1。外部中斷1中斷請(qǐng)求信號(hào)輸入端,P3.3的第二功能。由定時(shí)器控制寄存器TCON中的IT1位決定中斷請(qǐng)求信號(hào)是低電平還是下降沿有效。一旦輸入信號(hào)有效,即向CPU申請(qǐng)中斷,并且硬件自動(dòng)使IE1置1。2)定時(shí)中斷類定時(shí)中斷是由內(nèi)部定時(shí)(或計(jì)數(shù))溢出或外部定時(shí)(或計(jì)數(shù))溢出引起的,即T0和T1中斷。當(dāng)定時(shí)器對(duì)單片機(jī)內(nèi)部定時(shí)脈沖進(jìn)行計(jì)數(shù)而發(fā)生計(jì)數(shù)溢出時(shí),即表明定時(shí)時(shí)間到,由硬件自動(dòng)使TF0(TF1)置1,并申請(qǐng)中斷。當(dāng)定時(shí)器對(duì)單片機(jī)外部計(jì)數(shù)脈沖進(jìn)行計(jì)數(shù)而發(fā)生計(jì)數(shù)溢出時(shí),即表明計(jì)數(shù)次數(shù)到,由硬件自動(dòng)使TF0(TF1)置1,并申請(qǐng)中斷。外部計(jì)數(shù)脈沖是通過兩個(gè)固定引腳來輸入到單片機(jī)內(nèi)的。(3)串行口中斷類串行口中斷是為接收或發(fā)送串行數(shù)據(jù)而設(shè)置的。串行中斷請(qǐng)求是在單片機(jī)芯片內(nèi)部發(fā)生的。RXD—串行口輸入端,P3.0的第二功能。當(dāng)接收完一幀數(shù)據(jù)時(shí),硬件自動(dòng)使RI置1,并申請(qǐng)中斷。TXD—串行口輸出端,P3.1的第二功能。當(dāng)發(fā)送完一幀數(shù)據(jù)時(shí),硬件自動(dòng)使TI置1,并申請(qǐng)中斷。
當(dāng)某中斷源的中斷申請(qǐng)被CPU響應(yīng)之后,CPU將把此中斷源的中斷入口地址裝入PC,中斷服務(wù)程序即從地址開始執(zhí)行。因一般在此地址存放的是一條絕對(duì)轉(zhuǎn)移指令,可使程序從此地址跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序去,因而將此地址稱為中斷入口,也稱為中斷矢量。5.1.3中斷系統(tǒng)控制1.定時(shí)器控制寄存器TCON作用是控制定時(shí)器的啟動(dòng)和停止。
(1)TF1(TCON.7):定時(shí)器/計(jì)數(shù)器T1溢出標(biāo)志位。當(dāng)T1被啟動(dòng)計(jì)數(shù)后,從初值進(jìn)行加1計(jì)數(shù),當(dāng)T1計(jì)滿溢出時(shí),由硬件自動(dòng)使TF1置1,并申請(qǐng)中斷。該標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢?cè)摌?biāo)志位,并由軟件清0。(2)TR1(TCON.6):定時(shí)器/計(jì)數(shù)器T1啟??刂莆?。(3)TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志位,其功能同TF1。(4)TR0(TCON.4):定時(shí)/計(jì)數(shù)器T0啟停控制位,其功能同TR1。(5)IE1(TCON.3):外部中斷請(qǐng)求標(biāo)志位。IE1=1表示外部中斷向CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)外部中斷請(qǐng)求時(shí),由硬件自動(dòng)使IE1清0(負(fù)邊沿觸發(fā)方式)。(6)IT1(TCON.2):外部中斷觸發(fā)方式選擇位。(7)IE0(TCON.1):外部中斷請(qǐng)求標(biāo)志位。其功能同IE1(8)IT0(TCON.0):外部中斷觸發(fā)方式選擇位。其功能同IT1。2.串行口控制寄存器(SCON)(1)TI(SCON.1):串行發(fā)送中斷請(qǐng)求標(biāo)志。CPU將一個(gè)字節(jié)數(shù)據(jù)寫入發(fā)送緩沖器SBUF后啟動(dòng)發(fā)送,每發(fā)送完一幀數(shù)據(jù),硬件自動(dòng)使TI置1。但CPU響應(yīng)中斷后,硬件并不自動(dòng)使TI清0,必須由軟件使TI清0。(2)RI(SCON.0):串行接收中斷請(qǐng)求標(biāo)志位。在串行口允許接收時(shí),每接收完一幀數(shù)據(jù),硬件自動(dòng)使RI置1。但CPU響應(yīng)中斷后,硬件并不能自動(dòng)使RI清0,必須由軟件清0。3.中斷允許寄存器IE
中斷允許寄存器IE的作用是控制CPU對(duì)中斷的開放或屏蔽以及每個(gè)中斷源是否允許中斷。(1)EA(IE.7):CPU中斷總控位。EA=1,CPU開放中斷,每個(gè)中斷源是被允許還是被禁止,分別由各中斷源的中斷允許位確定:EA=0,CPU屏蔽所有的中斷要求,稱為關(guān)中斷。(2)ES(IE.4):串行口中斷允許位。ES=1,允許串行口中斷:ES=0,禁止串行口中斷。4.中斷優(yōu)先級(jí)控制寄存器IP作用是設(shè)定各中斷源的優(yōu)先級(jí)別。各位的功能說明如下:(1)PS(IP.4):串行口中斷優(yōu)先級(jí)控制位。PS=1,串行口為高優(yōu)先級(jí)中斷;PS=0,串行口為低優(yōu)先級(jí)中斷。(2)PT1(IP.3):定時(shí)器T1中斷優(yōu)先級(jí)控制位。PT1=1,T1為高優(yōu)先級(jí)中斷;PT1=0,T1為低優(yōu)先級(jí)中斷。(3)PX1(IP.2):外部中斷中斷優(yōu)先級(jí)控制位。PX1=1,為高優(yōu)先級(jí)中斷;PX1=0,為低優(yōu)先級(jí)。(4)PT0(IP.1):定時(shí)器T0中斷優(yōu)先級(jí)控制位。PT0=1,T1為高優(yōu)先級(jí)中斷;PT0=0,T0為低優(yōu)先級(jí)中斷。(5)PX0(IP.0):外部中斷中斷優(yōu)先級(jí)控制位。PX0=1,為高優(yōu)先級(jí)中斷;PX0=0,為低優(yōu)先級(jí)5.1.4中斷處理過程中斷處理過程可分為3個(gè)階段,即中斷響應(yīng)、中斷處理和中斷返回。1.中斷響應(yīng)(1)CPU的中斷響應(yīng)條件①首先要由中斷源發(fā)出中斷申請(qǐng);②中斷總允許EA=1,即CPU允許所有中斷源申請(qǐng)中斷。③中斷的中斷源的中斷允許位為1,即此中斷源可以向CPU申請(qǐng)中若滿足上述條件,CPU一般會(huì)響應(yīng)中斷,但如果有下列任何一種情況存在,則中斷響應(yīng)會(huì)受到阻斷。①CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序;②當(dāng)前的機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)周期,即正在執(zhí)行的指令還未完成前,任何中斷請(qǐng)求都得不到響應(yīng);③正在執(zhí)行的指令是返回指令或者對(duì)專業(yè)寄存器IE、IP進(jìn)行讀/寫的指令,此時(shí)。在執(zhí)行RETI或者讀寫IE或IP之后,不會(huì)馬上響應(yīng)中斷請(qǐng)求,至少在執(zhí)行一條其他之后才會(huì)響應(yīng)。若存在上述任何一種情況,中斷查詢結(jié)果就被取消,否則,在緊接著的下一個(gè)機(jī)器周期,就會(huì)響應(yīng)中斷。(2)中斷優(yōu)先級(jí)的判定中斷源的優(yōu)先級(jí)別分別為高級(jí)和低級(jí),通過軟件設(shè)置中斷優(yōu)先級(jí)寄存器IP相關(guān)位來設(shè)定每個(gè)中斷源的級(jí)別
如果幾個(gè)同一優(yōu)先級(jí)別的中斷源同時(shí)向CPU請(qǐng)求中斷,CPU通過硬件查詢電路首先響應(yīng)自然優(yōu)先級(jí)較高的中斷源的中斷請(qǐng)求。其自然優(yōu)先級(jí)由硬件規(guī)定。
(3)中斷響應(yīng)過程如果中斷響應(yīng)條件滿足,且不存在中斷阻斷的情況,則CPU將響應(yīng)中斷。此時(shí),中斷系統(tǒng)通過硬件生成調(diào)用指令(LCALL),此指令將自動(dòng)把斷點(diǎn)地址壓入堆棧保護(hù)起來(但不保護(hù)狀態(tài)字寄存器PSW及其他寄存器內(nèi)容),然后將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向中斷入口地址,執(zhí)行中斷服務(wù)程序。
在MCS-51機(jī)中各中斷源與之對(duì)應(yīng)的入口地址分配如表5-2所示。2.中斷處理中斷服務(wù)程序從入口地址開始執(zhí)行,直至遇到中斷返回RETI指令為止,這個(gè)過程稱為中斷處理(又稱中斷服務(wù))。進(jìn)入中斷服務(wù)程序后,一般要先保護(hù)現(xiàn)場,然后再執(zhí)行中斷處理程序,在返回主程序以前,再恢復(fù)現(xiàn)場。(1)因?yàn)楦魅肟诘刂分g,只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是容納不下的,因而最常用的方法是在中斷入口地址單元存放一條無條件轉(zhuǎn)移指令,這樣可使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。(2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷源中斷,要先用軟件關(guān)閉CPU中斷,或禁止更高級(jí)中斷源的中斷,而在中斷返回前再開放中斷。(3)在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時(shí),為了不使現(xiàn)場數(shù)據(jù)受到破壞或者造成混亂,一般規(guī)定在保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場時(shí),CPU不影響新的中斷請(qǐng)求。這就要求在編寫中斷服務(wù)程序時(shí),注意在保護(hù)現(xiàn)場之前要關(guān)中斷,在恢復(fù)現(xiàn)場之后開中斷。3.中斷返回(1)中斷返回中斷返回是指中斷服務(wù)完成后,CPU返回到原程序的斷點(diǎn),CPU返回到原程序的斷點(diǎn)(即原來斷開的位置),繼續(xù)執(zhí)行原來的程序。中斷返回通過執(zhí)行中斷返回指令RETI來實(shí)現(xiàn),該指令的功能是首先將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置0,以開放同級(jí)別中斷源的中斷請(qǐng)求;其次,從堆棧區(qū)把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器PC中。因此,不能用RET指令代替RETI指令。(2)中斷請(qǐng)求的撤除①定時(shí)器溢出中斷請(qǐng)求的撤除
CPU在響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志TF0和TF1。②串行口中斷的撤除在CPU響應(yīng)中斷后,硬件不能清除中斷請(qǐng)求標(biāo)志TI和RI,而要由軟件來清除相應(yīng)的標(biāo)志。③外部中斷的撤除外部中斷為邊沿觸發(fā)方式時(shí),CPU響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志IE0和IE1。外部中斷為電平觸發(fā)方式時(shí),CPU響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志IE0和IE1,但由于和加到或引腳的外部中斷請(qǐng)求信號(hào)并未撤除,中斷請(qǐng)求標(biāo)志IE0或IE1會(huì)再次被置1,所以在CPU響應(yīng)中斷后應(yīng)立即撤除和引腳上的低電平。
圖5-1外部中斷的撤除電路中斷服務(wù)程序的開始部分:INT0:ANLP1,#0FEH
ORLP1,#01HCLRIE0……4.中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間,是從查詢中斷請(qǐng)求標(biāo)志位開始到轉(zhuǎn)向中斷入口地址所需的機(jī)器周期數(shù)。MCS-51單片機(jī)的最短響應(yīng)時(shí)間為3個(gè)機(jī)器周期。MCS-51單片機(jī)最長響應(yīng)時(shí)間為8個(gè)機(jī)器周期。5.2定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)及應(yīng)用在控制系統(tǒng)中,常常要求有有一些定時(shí)或延時(shí)控制,如定時(shí)輸出、定時(shí)檢測和定時(shí)掃描等;也往往要求有計(jì)數(shù)功能,能對(duì)外部事件進(jìn)行計(jì)數(shù)。要實(shí)現(xiàn)上述功能,一般可用下面3種方法。1.軟件定時(shí):讓CPU循環(huán)執(zhí)行一段程序,以實(shí)現(xiàn)軟件定時(shí)。但軟件定時(shí)占用了CPU時(shí)間,降低了CPU的利用率,因此軟件定時(shí)的時(shí)間不宜太長。2.硬件定時(shí):采用時(shí)基電路(例如555定時(shí)芯片),外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。這種定時(shí)電路在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程。3.可編程的定時(shí)器:這種定時(shí)器的定時(shí)值及定時(shí)范圍可以很容易地用軟件來確定和修改,因而功能強(qiáng),使用靈活,例如8253可編程芯片。5.2.1定時(shí)器/計(jì)數(shù)器的的結(jié)構(gòu)及功能定時(shí)器/計(jì)數(shù)器T0由TH0和TL0構(gòu)成,T1由TH1和TH1構(gòu)成。TMOD(定時(shí)器方式寄存器)用于控制和確定各定時(shí)器/計(jì)數(shù)器的功能和工作模式。TCON用于控制定時(shí)器/計(jì)數(shù)器T0、T1啟動(dòng)和停止計(jì)數(shù),同時(shí)包含定時(shí)器/計(jì)數(shù)器的狀態(tài)。它們屬于特殊功能寄存器,這些寄存器的內(nèi)容靠軟件設(shè)計(jì)。系統(tǒng)復(fù)位時(shí),寄存器的所有位都被清零。定時(shí)器/計(jì)數(shù)器T0、T1都是加法計(jì)數(shù)器,每輸入一個(gè)脈沖,計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖,就使計(jì)數(shù)器發(fā)生溢出,溢出時(shí),計(jì)數(shù)器回零,并置位TCON(定時(shí)器控制寄存器)中的TF0或TF1,以表示定時(shí)時(shí)間已到或計(jì)數(shù)值已滿,向CPU發(fā)出中斷申請(qǐng)。2.T0和T1的功能選擇在TMOD中,有一個(gè)控制位(C/),分別用于選擇T0和T1是工作在定時(shí)器方式,還是計(jì)數(shù)器方式。(1)計(jì)數(shù)功能所謂計(jì)數(shù),是對(duì)外部事件進(jìn)行計(jì)數(shù)。當(dāng)選擇計(jì)數(shù)器方式時(shí),計(jì)數(shù)脈沖來自相應(yīng)的外部輸入引腳T0(P3.4)或T1(P3.5)。當(dāng)輸入信號(hào)發(fā)生由1至0的負(fù)跳變時(shí),計(jì)數(shù)器(T0或T1)的值增1。每個(gè)機(jī)器周期中采樣值為1,而在下一個(gè)周期中采樣值為0,則在緊跟著的再下一個(gè)周期的S3P1期間,計(jì)數(shù)值就加1(2)定時(shí)功能
T0、T1的定時(shí)功能也是通過計(jì)數(shù)實(shí)現(xiàn)的。當(dāng)選擇定時(shí)器方式時(shí),計(jì)數(shù)脈沖來自于內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期使計(jì)數(shù)器的值加1。每個(gè)機(jī)器周期等于12個(gè)時(shí)鐘周期,故計(jì)數(shù)速率為振蕩頻率的1/12。例如當(dāng)采用6MHz晶體時(shí),計(jì)數(shù)速率為2MHz,即2us計(jì)數(shù)器加1。計(jì)數(shù)值乘以單片機(jī)的機(jī)器周期就是定時(shí)時(shí)間。5.2.2定時(shí)器/計(jì)數(shù)器的控制1.定時(shí)器方式寄存器TMODTMOD的作用是設(shè)置T0、T1的工作方式。
各位功能說明如下(1)GATE:門控位。GATE=0:軟件啟動(dòng)定時(shí)器,即用指令使TCON中的TR1(TR0)置1即可啟動(dòng)定時(shí)器1或定時(shí)器0。GATE=1:軟件和硬件共同啟動(dòng)定時(shí)器,即用指令使TCON中的TR1(TR0)置1,只有外部中斷引腳輸入高電平時(shí)才能啟動(dòng)定時(shí)器。(2):功能選擇位。
=0時(shí),以定時(shí)器方式工作;=1時(shí),以計(jì)數(shù)器方式工作。(3)M1、M0:方式選擇位。C/TC/TC/T2.定時(shí)器控制寄存器TCON
定時(shí)器控制寄存器TCON的作用是控制定時(shí)器的啟動(dòng)和停止,并保存T0、T1的溢出和中斷標(biāo)志。(1)TF1(TCON.7):定時(shí)器/計(jì)數(shù)器T1溢出標(biāo)志位。當(dāng)T1計(jì)數(shù)計(jì)滿溢出時(shí),由硬件自動(dòng)使TF1置1,并申請(qǐng)中斷。對(duì)該標(biāo)志位有兩種處理方法,一種是以中斷方式工作,即TF1置1并申請(qǐng)中斷,響應(yīng)中斷后,執(zhí)行中斷服務(wù)子程序,并由硬件自動(dòng)使TF1清0;另一種以查詢方式工作,即通過查詢?cè)撐皇欠駷?來判斷是否溢出,TF1置1后必須用軟件使TF1清0。(2)TR1(TCON.6):定時(shí)器/計(jì)數(shù)器T1啟??刂莆?。當(dāng)GATE=0時(shí),用軟件使TR1置1即啟動(dòng)T1,用軟件使TR1清0則停止T1。當(dāng)GATE=1時(shí),用軟件使TR1置1的調(diào)試外部中斷的引腳輸入高電平才能啟動(dòng)T1。(3)TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出標(biāo)志位,其功能同TF1。(4)TR0(TCON.4):定時(shí)/計(jì)數(shù)器T0啟??刂莆?,其功能同TR1。(5)IE1(TCON.3):外部中斷請(qǐng)求標(biāo)志位。(6)IT1(TCON.2):外部中斷觸發(fā)方式選擇位。(7)IE0(TCON.1):外部中斷請(qǐng)求標(biāo)志位。(8)IT0(TCON.0):外部中斷觸發(fā)方式選擇位。5.2.3定時(shí)器/計(jì)數(shù)器的四種工作方式1.定時(shí)器/計(jì)數(shù)器的初始化定時(shí)器/計(jì)數(shù)器是一種可編程部件,在使用定時(shí)器/計(jì)數(shù)器前,一般都要對(duì)其進(jìn)行初始化,以確定其以特定的功能工作。初始化的步驟如下。(1)確定定時(shí)器/計(jì)數(shù)器的工作方式,確定方式控制字,并寫入TMOD。(2)預(yù)置定時(shí)初值或計(jì)數(shù)初值,根據(jù)定時(shí)時(shí)間或計(jì)數(shù)次數(shù),計(jì)算定時(shí)初值或計(jì)數(shù)初值,并寫入TH0、TL0或TH1、TL1。(3)根據(jù)需要開放定時(shí)器/計(jì)數(shù)器的中斷,給中斷允許控制寄存器IE中的相關(guān)位賦值。(4)啟動(dòng)定時(shí)器/計(jì)數(shù)器,給TCON的TR1或TR0置1。2.定時(shí)初值或計(jì)數(shù)初值的計(jì)算方法3.四種工作方式(1)方式0
在定時(shí)器/計(jì)數(shù)器啟動(dòng)工作前,CPU先要為它裝入方式控制字,以設(shè)定其工作方式,然后再為它裝入定時(shí)器/計(jì)數(shù)器初值,并通過指令啟動(dòng)其工作。13位計(jì)數(shù)器按加1計(jì)數(shù)器計(jì)數(shù),計(jì)滿為零時(shí)能自動(dòng)向CPU發(fā)出溢出中斷請(qǐng)求,但若要它再次計(jì)數(shù),CPU必須在其中斷服務(wù)程序中為它重裝初值。(2)方式1
在本方式下,定時(shí)器/計(jì)數(shù)器是按16位加1計(jì)數(shù)器工作的,該計(jì)數(shù)器由高8位TH和低8位TL組成,如圖5-7所示。定時(shí)器/計(jì)數(shù)器在方式1下的工作情況和方式0時(shí)相同,只是最大定時(shí)/計(jì)數(shù)值是方式0時(shí)的8倍。(3)方式2
在方式2時(shí),定時(shí)器/計(jì)數(shù)器被拆成一個(gè)8位寄存器TH(TH0/TH1)和一個(gè)8位計(jì)數(shù)器TL(TL0/TL1),CPU對(duì)它們初始化時(shí)必須送相同的定時(shí)初值/計(jì)數(shù)初值。當(dāng)定時(shí)器/計(jì)數(shù)器啟動(dòng)后,TL按8位加1計(jì)數(shù)器計(jì)數(shù),每當(dāng)它計(jì)滿回零時(shí),一方面向CPU發(fā)出溢出中斷請(qǐng)求,另一方面從TH中重新獲得初值并啟動(dòng)計(jì)數(shù),如圖5-8所示。(4)方式3TH0和TL0按兩個(gè)獨(dú)立的8位計(jì)數(shù)器工作,T1只能按不需要中斷的方式2工作,如圖所示。例5-1單片機(jī)時(shí)鐘頻率為12MHz,計(jì)算定時(shí)5ms所需的定時(shí)器初值。解:定時(shí)器工作在方式2和方式3下時(shí)的最大定時(shí)時(shí)間只有0.256ms,因此要想獲得5ms的定時(shí)時(shí)間,定時(shí)器必須在方式0或方式1。(1)方式05.3MCS-51單片機(jī)外部中斷源的擴(kuò)展1.定時(shí)器擴(kuò)展法
MCS-51單片機(jī)內(nèi)部計(jì)數(shù)器是16位的,在允許中斷的情況下,當(dāng)計(jì)數(shù)從全1變?yōu)槿?時(shí),就產(chǎn)生溢出中斷。如果把計(jì)數(shù)器的初值為FFFFH,那么只要計(jì)數(shù)輸入端加一個(gè)脈沖就可以產(chǎn)生溢出中斷申請(qǐng)。如果把外部中斷輸入加到計(jì)數(shù)輸入端,就可以利用外部中斷申請(qǐng)的負(fù)脈沖產(chǎn)生定時(shí)器溢出中斷申請(qǐng)而轉(zhuǎn)到相應(yīng)的中斷入口(000BH或001BH),只要在哪里存放的是為外中斷服務(wù)的中斷子程序,就可以最后實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器溢出中斷轉(zhuǎn)為外部中斷的目的。擴(kuò)展步驟:(1)置定時(shí)器/計(jì)數(shù)器為工作模式2,且為計(jì)數(shù)方式,即8位的自動(dòng)重裝方式。當(dāng)?shù)?位計(jì)數(shù)器溢出時(shí),高8位內(nèi)容自動(dòng)重新裝入低8位,從而使計(jì)數(shù)可以重新按原規(guī)定的初值進(jìn)行。(2)定時(shí)器/計(jì)數(shù)器的高8位和低8位都預(yù)置為FFH。(3)將定時(shí)器/計(jì)數(shù)器的計(jì)數(shù)輸入端(P3.5、P3.4)作為擴(kuò)展的外部中斷請(qǐng)求輸入。(4)在相應(yīng)的中斷服務(wù)程序入口開始存放為外中斷服務(wù)程序。借用定時(shí)器/計(jì)數(shù)器0溢出中斷為外部中斷的初始化程序如下:MOVTMOD,#06H;置T0為工作模式2、計(jì)數(shù)方式MOVTL0,#0FFH;置低8位初始值MOVTH0,#0FFH;置高8位初始值SETBEA;開中斷SETBET0;定時(shí)器T0允許中斷SETBTR0;啟動(dòng)計(jì)數(shù)器這樣設(shè)置后,定時(shí)器T0的輸入就可以作為外部中斷請(qǐng)求的輸入,相當(dāng)增加了一個(gè)邊沿觸發(fā)的外部中斷源,其中中斷服務(wù)程序的入口地址為000BH。2.用查詢方式擴(kuò)展中斷源ORG0013HLJMPITROU……ITROU:PUSHPSW;保護(hù)現(xiàn)場
PUSHACCANLP1,#0FH;取出P1口低4位
JNBP1.0,N1;若非EI1中斷,則轉(zhuǎn)N1ACALLBR0;若為EI1中斷,則轉(zhuǎn)BR0N1:JNBP1.1,N2;若非EI2中斷,則轉(zhuǎn)N2ACALLBR1;若為EI2中斷,則轉(zhuǎn)BR2N2:JNBP1.2,N3;若非EI3中斷,則轉(zhuǎn)N3ACALLBR2;若為EI3中斷,則轉(zhuǎn)BR2N3:JNBP1.3,N4;若非EI4中斷,則轉(zhuǎn)N4ACALLBR3;若為EI4中斷,則轉(zhuǎn)BR3N4:POPACC;恢復(fù)現(xiàn)場
POPPSWRETIBR0:…;EI1中斷服務(wù)程序
RETBR1:…;EI2中斷服務(wù)程序
RETBR2:…;EI3中斷服務(wù)程序
RETBR3:…;EI4中斷服務(wù)程序
RET5.4中斷系統(tǒng)的應(yīng)用
在MCS-51單片機(jī)中,需要人為地進(jìn)行管理和控制的有以下幾點(diǎn):(1)CPU的開中斷與關(guān)中斷;(2)各中斷源中斷請(qǐng)求的允許和禁止;(3)各中斷源優(yōu)先級(jí)別的設(shè)定;(4)外部中斷請(qǐng)求的觸發(fā)方式。例5-2設(shè)8031時(shí)鐘頻率為12MHz,清編出利用定時(shí)器/計(jì)數(shù)器T0在P1.0引腳上輸出2秒的方波程序。①主程序主程序包括對(duì)8031內(nèi)部定時(shí)器T0的初始化和設(shè)定軟件計(jì)數(shù)器初值等。由于需要定時(shí)50ms,故定時(shí)器T0必須工作于方式1。T0的定時(shí)初值為:TC=M-t/T計(jì)數(shù)=216-50ms/1us=15536=3CB0H相應(yīng)程序如下:
ORG1000HSTART:MOVTMOD,#01H;令T0為定時(shí)器方式1MOVTH0,#3CH;裝入定時(shí)初值
MOVTL0,#0B0HM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)分包班組管理制度
- 宿舍電表安裝方案(3篇)
- 農(nóng)業(yè)園區(qū)財(cái)物管理制度
- 超市到期退場方案(3篇)
- 醫(yī)院安保規(guī)章管理制度
- 商砼公司人事管理制度
- 品牌創(chuàng)建培育方案(3篇)
- 衛(wèi)生應(yīng)急工作管理制度
- 裝修工程賠補(bǔ)方案(3篇)
- 廚房蔬菜進(jìn)貨管理制度
- 財(cái)務(wù)培訓(xùn):AI與財(cái)稅合規(guī)的未來
- 全國農(nóng)業(yè)行業(yè)職業(yè)技能大賽(農(nóng)業(yè)技術(shù)員)理論考試題(附答案)
- 直招軍官面試題庫及答案
- 2025至2030中國磷石膏市場行情走勢監(jiān)測及未來發(fā)展展望報(bào)告
- 青少年足球訓(xùn)練營未來三年計(jì)劃
- 2025建設(shè)工程施工專業(yè)分包合同(示范文本)-建設(shè)工程專業(yè)分包合同(示范文本)
- 2024年系統(tǒng)分析師考試的重要趨勢發(fā)現(xiàn):試題及答案
- 成人禮活動(dòng)流程
- 測繪管理考試試題及答案
- 青馬班面試試題及答案
- 2025年廣東物理中考二輪專題復(fù)習(xí)之質(zhì)量與密度(含答案)
評(píng)論
0/150
提交評(píng)論