版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章MCS-51中斷系統(tǒng)與定時(shí)器/計(jì)數(shù)器第五章-------1wyx
本章重點(diǎn):MCS-51的中斷系統(tǒng)和定時(shí)器/計(jì)數(shù)器
講授內(nèi)容:MCS-51單片機(jī)的中斷系統(tǒng)
1)中斷系統(tǒng)概述
2)中斷的處理過(guò)程
3)中斷系統(tǒng)的初始化及應(yīng)用
MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器
1)定時(shí)器/計(jì)數(shù)器的編程結(jié)構(gòu)
2)控制字與編程方法
3)應(yīng)用編程
當(dāng)CPU正在處理某件事情的時(shí)候,外部發(fā)生了某一更為重要或更為緊迫的事件,需要CPU暫時(shí)停下正在執(zhí)行的工作去處理這一突發(fā)事件,之后再繼續(xù)執(zhí)行以前被暫停的下來(lái)的工作,這個(gè)過(guò)程就叫中斷。
5.2MCS-51的中斷系統(tǒng)
第五章-------2wyx
CPU中能夠控制實(shí)現(xiàn)這種中斷響應(yīng)的邏輯機(jī)構(gòu)稱為中斷系統(tǒng)。中斷有以下優(yōu)點(diǎn):
1.實(shí)現(xiàn)與低速設(shè)備的同步;
2.提高系統(tǒng)處理的實(shí)時(shí)性;
3.實(shí)現(xiàn)故障處理,避免系統(tǒng)災(zāi)難。
MCS-51有5個(gè)中斷源——2個(gè)外部中斷源INT0和INT1,2個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器溢出中斷源,1個(gè)片內(nèi)串行口中斷源。分為兩級(jí)——高級(jí)中斷和低級(jí)中斷。其中任何一個(gè)中斷源的優(yōu)先級(jí)均可由軟件設(shè)定為高級(jí)或低級(jí),能實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套。
都是可屏蔽的,由軟件設(shè)定。中斷允許寄存器IE控制中斷優(yōu)先級(jí)寄存器IP控制中斷觸發(fā)方式位IT控制第五章-------3wyx一、MCS-51的中斷源
1.中斷源
1)外部中斷0請(qǐng)求,由P3.2引腳輸入。可由用戶設(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號(hào)有效,則向CPU申請(qǐng)中斷,并且將中斷標(biāo)志IE0置1。
2)外部中斷1請(qǐng)求,由P3.3引腳輸入。亦可由用戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號(hào)有效,則向CPU申請(qǐng)中斷,并將中斷標(biāo)志IE1置1。
3)片內(nèi)定時(shí)器T0溢出中斷請(qǐng)求。外部計(jì)數(shù)脈沖由P3.4引腳輸入,當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),T0中斷請(qǐng)求標(biāo)志TF0置1,請(qǐng)求中斷處理。
4)片內(nèi)定時(shí)器T1溢出中斷請(qǐng)求。外部計(jì)數(shù)脈沖由P3.5引腳輸入,當(dāng)定時(shí)器T1產(chǎn)生溢出時(shí),T1中斷請(qǐng)求標(biāo)志TF1置l,請(qǐng)求中斷處理。
5)片內(nèi)串行口發(fā)送/接收中斷請(qǐng)求。當(dāng)通過(guò)串行口發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請(qǐng)求標(biāo)志TI或RI置1,請(qǐng)求中斷處理。
第五章-------4wyx2.中斷請(qǐng)求標(biāo)志
1)TCON的中斷標(biāo)志
TCON是專用寄存器,字節(jié)地址為88H,它鎖存了外部中斷請(qǐng)求標(biāo)志以及T0和T1的溢出中斷請(qǐng)求標(biāo)志TCON88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0
(1)IT0:外部中斷0(INT0)觸發(fā)方式控制位。IT0=0INT0為低電平觸發(fā)方式。
(2)IE0:外部中斷0請(qǐng)求標(biāo)志位。IE0=1,外部中斷0向CPU申請(qǐng)中斷。
(3)IT1:外部中斷1(INT1)觸發(fā)方式控制位。
(4)IE1:外部中斷1請(qǐng)求標(biāo)志位。IE1=1時(shí),外部中斷1向CPU申請(qǐng)中斷。
(5)TF0:片內(nèi)定時(shí)器T0溢出中斷請(qǐng)求標(biāo)志。T0被啟動(dòng)后,從初始值開(kāi)始進(jìn)行加1
計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時(shí)置TF0=1,向CPU申請(qǐng)中斷。
(6)TF1:片內(nèi)定時(shí)器T1溢出中斷請(qǐng)求標(biāo)志,其操作功能與TF0類同。第五章-------5wyx以上中斷請(qǐng)求標(biāo)志在CPU響應(yīng)該中斷時(shí),由硬件自動(dòng)清0,也可由軟件查詢?cè)摌?biāo)志,并用軟件清0。
SCON是串行口控制寄存器,字節(jié)地址為98H。與中斷有關(guān)的是它的低兩位TI和RI。
1)TI(SCON.1)
:串行口發(fā)送中斷標(biāo)志位。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能清除TI,TI必須由軟件清除。
2)RI(SCON.0):串行口接收中斷標(biāo)志位,當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TIRISCON2)SCON的中斷標(biāo)志第五章-------6wyx二、MCS-51的中斷控制
1.中斷允許寄存器IE(A8H)
——中斷的允許與開(kāi)放第五章-------7wyx2.中斷優(yōu)先級(jí)寄存器IP(B8H)
——中斷優(yōu)先級(jí)控制
內(nèi)部自然優(yōu)先級(jí):入口地址
INT0高0003HT0000BHINT10013HT1001BHTI/RI低0023H第五章-------88wyx中斷處理過(guò)程一般分為三個(gè)階段,即中斷響應(yīng)、中斷處理和中斷返回。三、MCS-51對(duì)中斷的響應(yīng)1.中斷響應(yīng)的條件1)有中斷源發(fā)出請(qǐng)求信號(hào)2)中斷是開(kāi)放的(總允許、源允許)3)沒(méi)有封鎖(受阻),受阻情況是:
(1)CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序;
(2)現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前.不響應(yīng)任何中斷請(qǐng)求;
(3)當(dāng)前正在執(zhí)行的是中斷返回指令RETI或訪問(wèn)專用寄存器IE或IP的指令。也就是說(shuō),在執(zhí)行RETI或是訪問(wèn)IE、IP的指令后,至少需要再執(zhí)行一條其他指令,才會(huì)響應(yīng)中斷請(qǐng)求。第五章-------9wyx2.中斷響應(yīng)過(guò)程(CPU自動(dòng)完成)
進(jìn)入中斷響應(yīng)周期。CPU在中斷響應(yīng)周期要完成下列操作:
1)根據(jù)中斷請(qǐng)求源的優(yōu)先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1。
2)保留斷點(diǎn),把PC內(nèi)容壓入堆棧保存。
3)清相應(yīng)中斷請(qǐng)求標(biāo)志位IE0、IE1、TF0或TF1。
4)把被響應(yīng)的中斷源服務(wù)程序入口地址送入PC,進(jìn)入相應(yīng)中斷服務(wù)程序。第五章-------10wyx中斷服務(wù)程序入口地址表第五章-------11wyx3.中斷服務(wù)與返回
在編寫(xiě)中斷服務(wù)程序時(shí)加注意的幾點(diǎn):
1)因各入口地址之間只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是存放不下的。所以通常在中斷入口地址單元處存放—條無(wú)條件轉(zhuǎn)移指令,這樣就可使中斷服務(wù)程序靈活地安排在64KB程序存儲(chǔ)器的任何空間。
2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可先用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在中斷返回前再開(kāi)放中斷。
3)注意在中斷服務(wù)程序中保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。
4)中斷服務(wù)程序的最后一條是返回指令RETI,該指令將清除響應(yīng)中斷時(shí)被置位的優(yōu)先級(jí)狀態(tài)觸發(fā)器,然后自動(dòng)將斷點(diǎn)地址從棧頂彈出,裝入程序計(jì)數(shù)器PC,使程序返回到被中斷的程序斷點(diǎn)處,繼續(xù)向下執(zhí)行。
第五章-------12wyx4.中斷請(qǐng)求的撤除
CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(RETI)前,該中斷請(qǐng)求信號(hào)必須撤除,否則會(huì)引起另外一次中斷。
1)定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志TF0或TFl,在CPU響應(yīng)中斷后由硬件自動(dòng)清除;
2)串行口中斷請(qǐng)求標(biāo)志TI和RI不能由硬件自動(dòng)清除,需要在中斷服務(wù)程序中,用軟件來(lái)清除相應(yīng)的中斷請(qǐng)求標(biāo)志;
3)采用邊沿觸發(fā)的外部中斷標(biāo)志IE0或IEl,在CPU響應(yīng)中斷后由硬件自動(dòng)清除,但在電平觸發(fā)時(shí),IE0或IEl受外部引腳中斷信號(hào)的直接控制,所以要在中斷請(qǐng)求得到CPU響應(yīng)后及時(shí)撤除中斷請(qǐng)求信號(hào),以避免對(duì)同一中斷請(qǐng)求的多次響應(yīng)。第五章-------13wyx中斷系統(tǒng)的初始化是指用戶對(duì)上述這些特殊功能寄存器中的各控制位進(jìn)行賦值。1.中斷系統(tǒng)的初始化步驟
1)設(shè)定相應(yīng)中斷源的中斷允許控制;
2)設(shè)定所用中斷源的中斷優(yōu)先級(jí);
3)若為外部中斷,則應(yīng)規(guī)定中斷觸發(fā)方式。第五章-------14wyx四、MCS-51中斷系統(tǒng)的初始化例5-5:請(qǐng)寫(xiě)出INT1為低電平觸發(fā)的中斷系統(tǒng)初始化程序。解:(1)采用位操作指令
SETBEASETBEX1;開(kāi)INT1中斷
SETBPX1;令I(lǐng)NT1為高優(yōu)先級(jí)
CLRIT1;令I(lǐng)NT1為電平觸發(fā)
(2)采用字節(jié)型指令
MOVIE,#84H;開(kāi)INT1中斷
ORLIP,#04H;高優(yōu)先級(jí)
ANLTCON,#0FBH;電平觸發(fā)
2.中斷系統(tǒng)應(yīng)用例5-1:一個(gè)外部中斷源時(shí)的編程。如圖所示電路,設(shè)外部中斷信號(hào)為負(fù)脈沖,引入外部中斷1引腳。要求每中斷一次,從P1.4~P1.7輸入外部開(kāi)關(guān)狀態(tài),然后從P1.0~P1.3輸出。
第五章-------15wyx程序清單:
ORG0000H;主程序
SJMPMAINORG0013HAJMPINT1 ;轉(zhuǎn)入服務(wù)程序
ORG0030HMAIN:SETBIT1 ;設(shè)INT1為邊沿觸發(fā)
SETBET1 ;允許INT1中斷
SETBEA;開(kāi)放總允許
SJMP$INT1:ORLP1,#0F0H;中斷服務(wù)程序:
MOVA,P1;從P1口輸入開(kāi)關(guān)狀態(tài)
SWAPA ;交換高、低4位
MOVP1,A;輸出
RETIEND第五章-------16wyx例5-2:當(dāng)外部中斷源多于兩個(gè)時(shí),可采取硬件申請(qǐng)與軟件查詢相結(jié)合的方法,利用一個(gè)外部中斷源輸入端擴(kuò)展外部多個(gè)中斷源服務(wù)。如圖所示。把多個(gè)中斷源通過(guò)“線或”或與非門(mén)引到外部中斷源輸入端(INT0或INT1),同時(shí)又把信息連到某I/O口,便于軟件進(jìn)一步逐個(gè)查詢。第五章-------17wyx
ORG0000H;主程序
SJMPMAINORG0003HAJMPZINT0 ;轉(zhuǎn)入服務(wù)程序
ORG0100HMAIN:
┋
ZINT0:PUSHPSW;中斷服務(wù)程序
PUSHACC JNB P1.0,ZLOOP0;查詢中斷源
NEXT1:JNB P1.1,ZLOOP1 NEXT2:JNB P1.2,ZLOOP2 NEXT3:JNBP1.3,ZLOOP3 LJMPNEXTZLOOP0:┋ ;0號(hào)中斷源服務(wù)程序段
LJMPNEXT1ZLOOP1:┋ ;1號(hào)中斷源服務(wù)程序段
LJMPNEXT2
┋
NEXT:RETI第五章-------18wyx
MCS-51系列單片機(jī)內(nèi)有兩個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器T0和T1;它可由用戶程序選擇其工作方式,設(shè)定其工作參數(shù)和條件。5.1MCS-51的定時(shí)器/計(jì)數(shù)器第五章-------19wyx一、定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)與工作原理1.定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)TH1TL1TH0TL0TCONTMOD內(nèi)部總線溢出啟動(dòng)啟動(dòng)工作方式工作方式44T1T0CPUTM中斷請(qǐng)求溢出
定時(shí)器/計(jì)數(shù)器的核心部件是加1計(jì)數(shù)器,其輸入的計(jì)數(shù)脈沖有兩個(gè)來(lái)源。當(dāng)加到計(jì)數(shù)器為全“1”時(shí),再輸入一個(gè)脈沖,就使計(jì)數(shù)器回零,同時(shí)產(chǎn)生溢出脈沖使TCON中溢出中斷標(biāo)志TF0或TF1置1,并可向CPU申請(qǐng)中斷。
1)定時(shí)器工作方式。對(duì)機(jī)器周期TM計(jì)數(shù),這時(shí)計(jì)數(shù)器的計(jì)數(shù)脈沖由振蕩器的12分頻信號(hào)產(chǎn)生,即每經(jīng)過(guò)一個(gè)機(jī)器周期,計(jì)數(shù)值加1,直至計(jì)滿溢出。在機(jī)器周期固定的情況下,定時(shí)時(shí)間的長(zhǎng)短與計(jì)數(shù)器事先裝入的初值有關(guān),裝入的初值越大,定時(shí)越短。
2)計(jì)數(shù)器工作方式。通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)。當(dāng)T0或T1腳上輸入的脈沖信號(hào)出現(xiàn)由1到0的負(fù)跳變時(shí),計(jì)數(shù)器值加1。2.定時(shí)器/計(jì)數(shù)器的工作原理第五章-------20wyx單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器是一種可編程器件,主要包括兩對(duì)8位的寄存器(TH0、TL0和TH1、TL1),方式寄存器TMOD和控制寄存器TCON。TH0、TL0用于存放T0的計(jì)數(shù)初值和經(jīng)過(guò)值;TH1、TL1用于存放T1的計(jì)數(shù)初值和經(jīng)過(guò)值;TMOD用于設(shè)置T0和T1的工作方式;TCON用于控制T0和T1的運(yùn)行;P3.4和P3.5引腳用于輸入在計(jì)數(shù)方式下的外部計(jì)數(shù)脈沖信號(hào)。
應(yīng)用問(wèn)題:1.定時(shí)器/計(jì)數(shù)器工作方式如何設(shè)定?
2.定時(shí)器/計(jì)數(shù)器如何啟動(dòng)?
3.定時(shí)器/計(jì)數(shù)器的初值如何設(shè)定?第五章-------21wyx二、定時(shí)器/計(jì)數(shù)器的控制與工作方式1.定時(shí)器/計(jì)數(shù)器的控制
1)定時(shí)器方式寄存器TMOD(89H)
用于選定定時(shí)/計(jì)數(shù)器的工作方式、啟動(dòng)方式等。00——方式001——方式110——方式211——方式3TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0控制T1控制T00——定時(shí)器模式1——計(jì)數(shù)器模式0——與INT0無(wú)關(guān)1——與INT0有關(guān)與T0同第五章-------22wyx
(1)用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式(0~3);
M1M0(2)選擇定時(shí)/計(jì)數(shù)——C/T
;
C/T=0---定時(shí),C/T=1---計(jì)數(shù)(3)啟動(dòng)控制方式選擇---內(nèi)/外;
GATE:門(mén)控位,用以決定是軟件還是硬件啟動(dòng)/停止計(jì)數(shù)
GATE=0-允許軟件位TR0或TR1啟動(dòng);
GATE=1-允許外部引腳信號(hào)INT0/INT1控制啟動(dòng)/停止。在
TR0/TR1為1的情況下,若INT0/INT1為高電平,啟動(dòng)定時(shí)器計(jì)數(shù);為低電平時(shí)停止計(jì)數(shù)。第五章-------23wyx例如:設(shè)定時(shí)器T0工作于方式1定時(shí),由軟件啟動(dòng)控制,則可用如下指令來(lái)裝入控制字。
MOVTMOD,#00000001B;或MOVTMOD,#01H;2)定時(shí)器控制寄存器TCON(88H)注意:復(fù)位后TMOD、TCON各位均清零。例:?jiǎn)?dòng)T0工作,用指令SETBTR0第五章-------24wyx(1)TF1定時(shí)器T1溢出標(biāo)志(2)TR1定時(shí)器T1運(yùn)行控制位(3)TF0定時(shí)器T0溢出標(biāo)志(4)TR0定時(shí)器T0運(yùn)行控制位(5)IE1外部中斷1請(qǐng)求標(biāo)志(6)IT1外部中斷1觸發(fā)方式選擇位(7)IE0外部中斷0請(qǐng)求標(biāo)志(8)IT0外部中斷0觸發(fā)方式選擇位。
通過(guò)控制TMOD中的M1,M0兩位選擇定時(shí)器4種工作方式。這4種工作方式的實(shí)質(zhì)是對(duì)T0(或T1)的兩個(gè)8位計(jì)數(shù)器TH0、TL0(或TH1、TL1)的計(jì)數(shù)操作方式而言。方式0下的邏輯結(jié)構(gòu)圖第五章-------25wyx2.定時(shí)器/計(jì)數(shù)器的工作方式1)方式0TL低5位和TH的8位組成13位,高8位溢出置位TF定時(shí)器啟、??刂疲?)C/T=1為計(jì)數(shù)工作方式,計(jì)數(shù)脈沖由T0引腳輸入。計(jì)數(shù)個(gè)數(shù)
N=(213—初值X)(2)C/T=0為定時(shí)工作方式,計(jì)數(shù)脈沖頻率為時(shí)鐘頻率fosc/12。
定時(shí)時(shí)間t=(213—初值X)*機(jī)器周期
X=213—定時(shí)時(shí)間t/機(jī)器周期方式0下工作時(shí):思考:(1)最大計(jì)數(shù)或定時(shí)時(shí)的初值X是多少?(2)時(shí)鐘頻率為12MHZ時(shí),方式0最大定時(shí)時(shí)間是多少?第五章-------26wyx2)方式1
定時(shí)/計(jì)數(shù)器工作于方式1時(shí)為一個(gè)16位的計(jì)數(shù)器。其邏輯結(jié)構(gòu)、操作及運(yùn)行控制幾乎與方式0完全—樣,差別僅在于計(jì)數(shù)器的位數(shù)不同。定時(shí)工作方式1時(shí),定時(shí)時(shí)間為:
t=(216-計(jì)數(shù)初值X)×機(jī)器周期
X=216—定時(shí)時(shí)間t/機(jī)器周期用于計(jì)數(shù)器工作方式時(shí),計(jì)數(shù)個(gè)數(shù)
N=(216—初值X)第五章-------27wyx3)方式2
定時(shí)器/計(jì)數(shù)器工作于方式2時(shí),將兩個(gè)8位計(jì)數(shù)器THx、TLx分成獨(dú)立的兩部分,組成一個(gè)可自動(dòng)重裝載的8位定時(shí)/計(jì)數(shù)器。其邏輯結(jié)構(gòu)如圖所示。
方式2的控制運(yùn)行與方式0、方式1相同。用于定時(shí)工作方式時(shí),定時(shí)時(shí)間t為:t=(28—計(jì)數(shù)初值X)×機(jī)器周期用于計(jì)數(shù)工作方式時(shí),最大計(jì)數(shù)值(初值=0時(shí))是28。方式2特別適合于用作較精確的定時(shí)和脈沖信號(hào)發(fā)生器。還常用作串行口波特率發(fā)生器。第五章-------28wyx4)方式3
方式3只適用于定時(shí)器T0。在方式3下,T0被分成兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0和TH0。第五章-------29wyx
1)TH0和TL0變成2個(gè)分開(kāi)的計(jì)數(shù)器。
2)TL0占用了T0全部的定時(shí)器控制位,可以工作于定時(shí)/
計(jì)數(shù)模式。(C/T,GATE,TR0,TF0)
3)TH0只能用于定時(shí)方式,運(yùn)行控制位和溢出標(biāo)志位則借用T1的TR1和TF1。
4)在T0設(shè)置為方式3工作時(shí),一般是將定時(shí)器T1工作于方式2,作為串行口波特率發(fā)生器,或用于不需要中斷的場(chǎng)合。T0工作于方式3時(shí):第五章-------30wyx三、定時(shí)器/計(jì)數(shù)器計(jì)數(shù)初始化1.定時(shí)器/計(jì)數(shù)器的初始化方法初始化的主要是對(duì)TCON和TMOD編程,計(jì)算和裝載T0和T1的計(jì)數(shù)初值。1)初始化步驟(1)分析定時(shí)器/計(jì)數(shù)器的工作方式,將方式字寫(xiě)入TMOD寄存器;
(定/計(jì)、內(nèi)/外啟動(dòng)、工作方式)(2)計(jì)算T0或T1中的計(jì)數(shù)初值,并將其寫(xiě)入TH0、TL0或TH1、TL1;(3)根據(jù)需要開(kāi)放CPU和定時(shí)器/計(jì)數(shù)器的中斷,即對(duì)IE和IP寄存器編程;(4)啟動(dòng)定時(shí)器/計(jì)數(shù)器工作:若要求用軟件啟動(dòng),編程時(shí)對(duì)TR0或TR1置位即可啟動(dòng);若由外部中斷引腳電平啟動(dòng),則對(duì)TR0或TR1置位后,還需給外引腳提供啟動(dòng)電平。第五章-------31wyx(1)
計(jì)數(shù)器模式時(shí)的計(jì)數(shù)初值
X=2M-N
(M為計(jì)數(shù)器位數(shù),N為要求的計(jì)數(shù)值)
X=0,計(jì)數(shù)器的計(jì)數(shù)值最大——
2M(2)定時(shí)器模式時(shí)的定時(shí)初值定時(shí)時(shí)間為:t=(2M-計(jì)數(shù)初值X)×機(jī)器周期定時(shí)初值X=2M-
(t/12*Tosc
)=2M
-
(t*fosc/12)2)計(jì)數(shù)器初值的計(jì)算213=8192(方式0)216=65536(方式1)28=256(方式2及方式3)第五章-------32wyx
若系統(tǒng)時(shí)鐘頻率fOSC=12MHz,1機(jī)器周期=1μs;方式0:M=13,tmax
=213*機(jī)器周期=8192μs
方式1:M=16,tmax=216*機(jī)器周期=65536μs
方式2:M=8,tmax=28*機(jī)器周期=256μs(方式3同)X==60536=0EC78H
X=0,定時(shí)器的定時(shí)時(shí)間最大:
tmax=2M×機(jī)器周期例如:若fOSC=6MHz,定時(shí)時(shí)間為10ms,使用定時(shí)器T0工作于方式1,則初值:第五章-------33wyx編寫(xiě)初始化程序的步驟;
1)方式控制字送TMODMOVTMOD,#——2)計(jì)數(shù)器的初值送TH、TL(0/1)
MOVTH0,#——MOVTL0,#——3)根據(jù)需要開(kāi)放中斷和設(shè)定優(yōu)先級(jí)即對(duì)IE和IP賦初值(可位尋址)4)啟動(dòng)T0/T1開(kāi)始工作---置位TR0/1SETBTR0/15)等待溢出信號(hào)的出現(xiàn)(如何進(jìn)入處理程序?)(查詢法或中斷法)2.定時(shí)/計(jì)數(shù)器初始化舉例第五章-------34wyx例5-3:要求定時(shí)器T1于方式1,定時(shí)50ms,由軟件啟動(dòng),允許中斷。設(shè)系統(tǒng)時(shí)鐘頻率fOSC=6MHz,編寫(xiě)初始化程序段。解:1)方式控制字為00010000B=10H2)計(jì)數(shù)初值為X1=T1初始化程序段如下:
MOV TMOD,#10H
;寫(xiě)入工作方式控制字
MOV TH1,#9EH ;寫(xiě)入計(jì)數(shù)初值
MOV TL1,#58HSETB ET1 ;開(kāi)放T1中斷
SETB EA ;開(kāi)放CPU中斷
SETB TR1
;啟動(dòng)T1工作
┋
第五章-------35wyx例5-4:利用定時(shí)器T0產(chǎn)生1ms定時(shí),并使P1.0引腳輸出周期為2ms的方波信號(hào),已知晶振頻率為6MHz,用查詢法編寫(xiě)程序。解:(1)按題意分析:方波周期T=2ms,可用T0方式0定時(shí)1ms,使P1.0每隔1ms取反一次,即可得到周期為2ms的方波。設(shè)T0工作在方式0,由軟件啟動(dòng)。
(2)TMOD控制字為00000000B(3)初值計(jì)算:fosc=6MHz,機(jī)器周期為2μs。初值=213-1×10-3/2×10-6=8192-500=7692=1111000001100B
即有TH0=0F0H(高8位),TL0=0CH(低5位)。第五章-------36wyx四、定時(shí)器/計(jì)數(shù)器應(yīng)用舉例程序如下:
ORG2000HSTAR:MOVTMOD,#00H
;寫(xiě)入工作方式字
MOVTH0,#0F0H
;寫(xiě)入計(jì)數(shù)初值
MOVTL0,#0CHSETBTR0
;啟動(dòng)T0LOOP:JBCTF0,PE
;TF0=1溢出轉(zhuǎn)移PE,并清除TF0AJMPLOOP
;TF0為0轉(zhuǎn)LOOP等待
PE:MOVTH0,#0F0H
;重裝初值
MOVTL0,#0C0HCPLP1.0;取反
AJMPLOOP;轉(zhuǎn)LOOP等定時(shí)時(shí)間到
END第五章-------37wyx例5-5:要求使用8051的定時(shí)器T0定時(shí),在P1.0引腳上輸出周期為2秒的方波,設(shè)晶振頻率為12MHz。題意分析:要產(chǎn)生周期為2秒的方波,T0必須定時(shí)1秒,這超過(guò)了定時(shí)器的最大定時(shí)時(shí)間。因此,只有采用定時(shí)器定時(shí)和軟件計(jì)數(shù)相結(jié)合的方法才可以解決問(wèn)題。定時(shí)器T0定時(shí)50ms,軟件計(jì)數(shù)器初值設(shè)為20,每當(dāng)定時(shí)50ms時(shí)間到,CPU就響應(yīng)T0的溢出中斷請(qǐng)求,進(jìn)入中斷服務(wù)程序。在中斷程序中,先讓軟件計(jì)數(shù)器減1,然后判斷它是否為零。若為零,表明定時(shí)1秒鐘已到,便可恢復(fù)軟件計(jì)數(shù)器初值和改變P1.0引腳電平,然后返回主程序;若不為零,則表示定時(shí)1秒未到,也返回主程序。解:(1)按題意分析:可用T0為16位定時(shí)器模式(方式1)定時(shí)50ms。
(2)TMOD控制字為01H(3)初值計(jì)算:fosc=12MHz,機(jī)器周期為1μs。初值=216–50ms/1μs=15536=3CB0H,即TH0=3CH,TL0=0B0H。第五章-------38wyx主程序:
ORG1000HSTART:MOVTMOD,#01H
MOVTH0,#3CHMOVTL0,#0B0HMOVIE,#82H;開(kāi)T0中斷
SETBTR0
;啟動(dòng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圍擋設(shè)施施工方案(3篇)
- 壁紙雨季施工方案(3篇)
- 基坑土方開(kāi)挖施工方案
- 油罐平臺(tái)施工方案(3篇)
- 液體聚氯化鋁項(xiàng)目實(shí)施方案
- 光纜接續(xù)施工方案(3篇)
- 水利抽水施工方案(3篇)
- 模板施工方案視頻(3篇)
- 鐵圍欄施工方案(3篇)
- 施工方案裝訂順序(3篇)
- 2025年國(guó)家開(kāi)放大學(xué)(電大)《物理化學(xué)》期末考試備考題庫(kù)及答案解析
- 無(wú)領(lǐng)導(dǎo)小組討論面試技巧與實(shí)戰(zhàn)案例
- 環(huán)保設(shè)備銷售培訓(xùn)
- 髖臼骨折的護(hù)理課件
- 國(guó)際中文教育概論 課件 第12章 國(guó)際中文教育前瞻
- 競(jìng)賽合同(標(biāo)準(zhǔn)版)
- 恒壓供水原理課件
- 2025年湖北省綜合評(píng)標(biāo)評(píng)審專家?guī)鞂<铱荚嚉v年參考題庫(kù)含答案詳解(5套)
- 2025年內(nèi)部控制與風(fēng)險(xiǎn)管理試卷及答案
- 2025年北京朝陽(yáng)社區(qū)考試題庫(kù)
- 醫(yī)療器械年終匯報(bào)
評(píng)論
0/150
提交評(píng)論