第五章 中斷系統(tǒng)與定時(shí)器計(jì)數(shù)器_第1頁
第五章 中斷系統(tǒng)與定時(shí)器計(jì)數(shù)器_第2頁
第五章 中斷系統(tǒng)與定時(shí)器計(jì)數(shù)器_第3頁
第五章 中斷系統(tǒng)與定時(shí)器計(jì)數(shù)器_第4頁
第五章 中斷系統(tǒng)與定時(shí)器計(jì)數(shù)器_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章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)中斷的處理過程

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í)行以前被暫停的下來的工作,這個(gè)過程就叫中斷。

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)串行口中斷源。分為兩級——高級中斷和低級中斷。其中任何一個(gè)中斷源的優(yōu)先級均可由軟件設(shè)定為高級或低級,能實(shí)現(xiàn)兩級中斷服務(wù)程序嵌套。

都是可屏蔽的,由軟件設(shè)定。中斷允許寄存器IE控制中斷優(yōu)先級寄存器IP控制中斷觸發(fā)方式位IT控制第五章-------3wyx一、MCS-51的中斷源

1.中斷源

1)外部中斷0請求,由P3.2引腳輸入。可由用戶設(shè)定為兩種觸發(fā)方式,(電平觸發(fā)方式還是邊沿觸發(fā)方式)。一旦輸入信號有效,則向CPU申請中斷,并且將中斷標(biāo)志IE0置1。

2)外部中斷1請求,由P3.3引腳輸入。亦可由用戶設(shè)定為電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸人信號有效,則向CPU申請中斷,并將中斷標(biāo)志IE1置1。

3)片內(nèi)定時(shí)器T0溢出中斷請求。外部計(jì)數(shù)脈沖由P3.4引腳輸入,當(dāng)定時(shí)器T0產(chǎn)生溢出時(shí),T0中斷請求標(biāo)志TF0置1,請求中斷處理。

4)片內(nèi)定時(shí)器T1溢出中斷請求。外部計(jì)數(shù)脈沖由P3.5引腳輸入,當(dāng)定時(shí)器T1產(chǎn)生溢出時(shí),T1中斷請求標(biāo)志TF1置l,請求中斷處理。

5)片內(nèi)串行口發(fā)送/接收中斷請求。當(dāng)通過串行口發(fā)送或接收完一幀串行數(shù)據(jù)時(shí),串行口中斷請求標(biāo)志TI或RI置1,請求中斷處理。

第五章-------4wyx2.中斷請求標(biāo)志

1)TCON的中斷標(biāo)志

TCON是專用寄存器,字節(jié)地址為88H,它鎖存了外部中斷請求標(biāo)志以及T0和T1的溢出中斷請求標(biāo)志TCON88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

(1)IT0:外部中斷0(INT0)觸發(fā)方式控制位。IT0=0INT0為低電平觸發(fā)方式。

(2)IE0:外部中斷0請求標(biāo)志位。IE0=1,外部中斷0向CPU申請中斷。

(3)IT1:外部中斷1(INT1)觸發(fā)方式控制位。

(4)IE1:外部中斷1請求標(biāo)志位。IE1=1時(shí),外部中斷1向CPU申請中斷。

(5)TF0:片內(nèi)定時(shí)器T0溢出中斷請求標(biāo)志。T0被啟動后,從初始值開始進(jìn)行加1

計(jì)數(shù),當(dāng)最高位產(chǎn)生溢出時(shí)置TF0=1,向CPU申請中斷。

(6)TF1:片內(nèi)定時(shí)器T1溢出中斷請求標(biāo)志,其操作功能與TF0類同。第五章-------5wyx以上中斷請求標(biāo)志在CPU響應(yīng)該中斷時(shí),由硬件自動清0,也可由軟件查詢該標(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)

——中斷的允許與開放第五章-------7wyx2.中斷優(yōu)先級寄存器IP(B8H)

——中斷優(yōu)先級控制

內(nèi)部自然優(yōu)先級:入口地址

INT0高0003HT0000BHINT10013HT1001BHTI/RI低0023H第五章-------88wyx中斷處理過程一般分為三個(gè)階段,即中斷響應(yīng)、中斷處理和中斷返回。三、MCS-51對中斷的響應(yīng)1.中斷響應(yīng)的條件1)有中斷源發(fā)出請求信號2)中斷是開放的(總允許、源允許)3)沒有封鎖(受阻),受阻情況是:

(1)CPU正在執(zhí)行同級或高一級的中斷服務(wù)程序;

(2)現(xiàn)行機(jī)器周期不是正在執(zhí)行的指令的最后一個(gè)機(jī)器周期,即現(xiàn)行指令完成前.不響應(yīng)任何中斷請求;

(3)當(dāng)前正在執(zhí)行的是中斷返回指令RETI或訪問專用寄存器IE或IP的指令。也就是說,在執(zhí)行RETI或是訪問IE、IP的指令后,至少需要再執(zhí)行一條其他指令,才會響應(yīng)中斷請求。第五章-------9wyx2.中斷響應(yīng)過程(CPU自動完成)

進(jìn)入中斷響應(yīng)周期。CPU在中斷響應(yīng)周期要完成下列操作:

1)根據(jù)中斷請求源的優(yōu)先級高低,使相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置1。

2)保留斷點(diǎn),把PC內(nèi)容壓入堆棧保存。

3)清相應(yīng)中斷請求標(biāo)志位IE0、IE1、TF0或TF1。

4)把被響應(yīng)的中斷源服務(wù)程序入口地址送入PC,進(jìn)入相應(yīng)中斷服務(wù)程序。第五章-------10wyx中斷服務(wù)程序入口地址表第五章-------11wyx3.中斷服務(wù)與返回

在編寫中斷服務(wù)程序時(shí)加注意的幾點(diǎn):

1)因各入口地址之間只相隔8個(gè)字節(jié),一般的中斷服務(wù)程序是存放不下的。所以通常在中斷入口地址單元處存放—條無條件轉(zhuǎn)移指令,這樣就可使中斷服務(wù)程序靈活地安排在64KB程序存儲器的任何空間。

2)若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級中斷,可先用軟件關(guān)閉CPU中斷,或禁止某中斷源中斷,在中斷返回前再開放中斷。

3)注意在中斷服務(wù)程序中保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。

4)中斷服務(wù)程序的最后一條是返回指令RETI,該指令將清除響應(yīng)中斷時(shí)被置位的優(yōu)先級狀態(tài)觸發(fā)器,然后自動將斷點(diǎn)地址從棧頂彈出,裝入程序計(jì)數(shù)器PC,使程序返回到被中斷的程序斷點(diǎn)處,繼續(xù)向下執(zhí)行。

第五章-------12wyx4.中斷請求的撤除

CPU響應(yīng)中斷請求后,在中斷返回(RETI)前,該中斷請求信號必須撤除,否則會引起另外一次中斷。

1)定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志TF0或TFl,在CPU響應(yīng)中斷后由硬件自動清除;

2)串行口中斷請求標(biāo)志TI和RI不能由硬件自動清除,需要在中斷服務(wù)程序中,用軟件來清除相應(yīng)的中斷請求標(biāo)志;

3)采用邊沿觸發(fā)的外部中斷標(biāo)志IE0或IEl,在CPU響應(yīng)中斷后由硬件自動清除,但在電平觸發(fā)時(shí),IE0或IEl受外部引腳中斷信號的直接控制,所以要在中斷請求得到CPU響應(yīng)后及時(shí)撤除中斷請求信號,以避免對同一中斷請求的多次響應(yīng)。第五章-------13wyx中斷系統(tǒng)的初始化是指用戶對上述這些特殊功能寄存器中的各控制位進(jìn)行賦值。1.中斷系統(tǒng)的初始化步驟

1)設(shè)定相應(yīng)中斷源的中斷允許控制;

2)設(shè)定所用中斷源的中斷優(yōu)先級;

3)若為外部中斷,則應(yīng)規(guī)定中斷觸發(fā)方式。第五章-------14wyx四、MCS-51中斷系統(tǒng)的初始化例5-5:請寫出INT1為低電平觸發(fā)的中斷系統(tǒng)初始化程序。解:(1)采用位操作指令

SETBEASETBEX1;開INT1中斷

SETBPX1;令I(lǐng)NT1為高優(yōu)先級

CLRIT1;令I(lǐng)NT1為電平觸發(fā)

(2)采用字節(jié)型指令

MOVIE,#84H;開INT1中斷

ORLIP,#04H;高優(yōu)先級

ANLTCON,#0FBH;電平觸發(fā)

2.中斷系統(tǒng)應(yīng)用例5-1:一個(gè)外部中斷源時(shí)的編程。如圖所示電路,設(shè)外部中斷信號為負(fù)脈沖,引入外部中斷1引腳。要求每中斷一次,從P1.4~P1.7輸入外部開關(guān)狀態(tài),然后從P1.0~P1.3輸出。

第五章-------15wyx程序清單:

ORG0000H;主程序

SJMPMAINORG0013HAJMPINT1 ;轉(zhuǎn)入服務(wù)程序

ORG0030HMAIN:SETBIT1 ;設(shè)INT1為邊沿觸發(fā)

SETBET1 ;允許INT1中斷

SETBEA;開放總允許

SJMP$INT1:ORLP1,#0F0H;中斷服務(wù)程序:

MOVA,P1;從P1口輸入開關(guān)狀態(tài)

SWAPA ;交換高、低4位

MOVP1,A;輸出

RETIEND第五章-------16wyx例5-2:當(dāng)外部中斷源多于兩個(gè)時(shí),可采取硬件申請與軟件查詢相結(jié)合的方法,利用一個(gè)外部中斷源輸入端擴(kuò)展外部多個(gè)中斷源服務(wù)。如圖所示。把多個(gè)中斷源通過“線或”或與非門引到外部中斷源輸入端(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號中斷源服務(wù)程序段

LJMPNEXT1ZLOOP1:┋ ;1號中斷源服務(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)部總線溢出啟動啟動工作方式工作方式44T1T0CPUTM中斷請求溢出

定時(shí)器/計(jì)數(shù)器的核心部件是加1計(jì)數(shù)器,其輸入的計(jì)數(shù)脈沖有兩個(gè)來源。當(dāng)加到計(jì)數(shù)器為全“1”時(shí),再輸入一個(gè)脈沖,就使計(jì)數(shù)器回零,同時(shí)產(chǎn)生溢出脈沖使TCON中溢出中斷標(biāo)志TF0或TF1置1,并可向CPU申請中斷。

1)定時(shí)器工作方式。對機(jī)器周期TM計(jì)數(shù),這時(shí)計(jì)數(shù)器的計(jì)數(shù)脈沖由振蕩器的12分頻信號產(chǎn)生,即每經(jīng)過一個(gè)機(jī)器周期,計(jì)數(shù)值加1,直至計(jì)滿溢出。在機(jī)器周期固定的情況下,定時(shí)時(shí)間的長短與計(jì)數(shù)器事先裝入的初值有關(guān),裝入的初值越大,定時(shí)越短。

2)計(jì)數(shù)器工作方式。通過引腳T0(P3.4)和T1(P3.5)對外部脈沖信號計(jì)數(shù)。當(dāng)T0或T1腳上輸入的脈沖信號出現(xiàn)由1到0的負(fù)跳變時(shí),計(jì)數(shù)器值加1。2.定時(shí)器/計(jì)數(shù)器的工作原理第五章-------20wyx單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器是一種可編程器件,主要包括兩對8位的寄存器(TH0、TL0和TH1、TL1),方式寄存器TMOD和控制寄存器TCON。TH0、TL0用于存放T0的計(jì)數(shù)初值和經(jīng)過值;TH1、TL1用于存放T1的計(jì)數(shù)初值和經(jīng)過值;TMOD用于設(shè)置T0和T1的工作方式;TCON用于控制T0和T1的運(yùn)行;P3.4和P3.5引腳用于輸入在計(jì)數(shù)方式下的外部計(jì)數(shù)脈沖信號。

應(yīng)用問題:1.定時(shí)器/計(jì)數(shù)器工作方式如何設(shè)定?

2.定時(shí)器/計(jì)數(shù)器如何啟動?

3.定時(shí)器/計(jì)數(shù)器的初值如何設(shè)定?第五章-------21wyx二、定時(shí)器/計(jì)數(shù)器的控制與工作方式1.定時(shí)器/計(jì)數(shù)器的控制

1)定時(shí)器方式寄存器TMOD(89H)

用于選定定時(shí)/計(jì)數(shù)器的工作方式、啟動方式等。00——方式001——方式110——方式211——方式3TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0控制T1控制T00——定時(shí)器模式1——計(jì)數(shù)器模式0——與INT0無關(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)啟動控制方式選擇---內(nèi)/外;

GATE:門控位,用以決定是軟件還是硬件啟動/停止計(jì)數(shù)

GATE=0-允許軟件位TR0或TR1啟動;

GATE=1-允許外部引腳信號INT0/INT1控制啟動/停止。在

TR0/TR1為1的情況下,若INT0/INT1為高電平,啟動定時(shí)器計(jì)數(shù);為低電平時(shí)停止計(jì)數(shù)。第五章-------23wyx例如:設(shè)定時(shí)器T0工作于方式1定時(shí),由軟件啟動控制,則可用如下指令來裝入控制字。

MOVTMOD,#00000001B;或MOVTMOD,#01H;2)定時(shí)器控制寄存器TCON(88H)注意:復(fù)位后TMOD、TCON各位均清零。例:啟動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請求標(biāo)志(6)IT1外部中斷1觸發(fā)方式選擇位(7)IE0外部中斷0請求標(biāo)志(8)IT0外部中斷0觸發(fā)方式選擇位。

通過控制TMOD中的M1,M0兩位選擇定時(shí)器4種工作方式。這4種工作方式的實(shí)質(zhì)是對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í)器啟、停控制(1)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è)可自動重裝載的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í)和脈沖信號發(fā)生器。還常用作串行口波特率發(fā)生器。第五章-------28wyx4)方式3

方式3只適用于定時(shí)器T0。在方式3下,T0被分成兩個(gè)相互獨(dú)立的8位計(jì)數(shù)器TL0和TH0。第五章-------29wyx

1)TH0和TL0變成2個(gè)分開的計(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ā)生器,或用于不需要中斷的場合。T0工作于方式3時(shí):第五章-------30wyx三、定時(shí)器/計(jì)數(shù)器計(jì)數(shù)初始化1.定時(shí)器/計(jì)數(shù)器的初始化方法初始化的主要是對TCON和TMOD編程,計(jì)算和裝載T0和T1的計(jì)數(shù)初值。1)初始化步驟(1)分析定時(shí)器/計(jì)數(shù)器的工作方式,將方式字寫入TMOD寄存器;

(定/計(jì)、內(nèi)/外啟動、工作方式)(2)計(jì)算T0或T1中的計(jì)數(shù)初值,并將其寫入TH0、TL0或TH1、TL1;(3)根據(jù)需要開放CPU和定時(shí)器/計(jì)數(shù)器的中斷,即對IE和IP寄存器編程;(4)啟動定時(shí)器/計(jì)數(shù)器工作:若要求用軟件啟動,編程時(shí)對TR0或TR1置位即可啟動;若由外部中斷引腳電平啟動,則對TR0或TR1置位后,還需給外引腳提供啟動電平。第五章-------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編寫初始化程序的步驟;

1)方式控制字送TMODMOVTMOD,#——2)計(jì)數(shù)器的初值送TH、TL(0/1)

MOVTH0,#——MOVTL0,#——3)根據(jù)需要開放中斷和設(shè)定優(yōu)先級即對IE和IP賦初值(可位尋址)4)啟動T0/T1開始工作---置位TR0/1SETBTR0/15)等待溢出信號的出現(xiàn)(如何進(jìn)入處理程序?)(查詢法或中斷法)2.定時(shí)/計(jì)數(shù)器初始化舉例第五章-------34wyx例5-3:要求定時(shí)器T1于方式1,定時(shí)50ms,由軟件啟動,允許中斷。設(shè)系統(tǒng)時(shí)鐘頻率fOSC=6MHz,編寫初始化程序段。解:1)方式控制字為00010000B=10H2)計(jì)數(shù)初值為X1=T1初始化程序段如下:

MOV TMOD,#10H

;寫入工作方式控制字

MOV TH1,#9EH ;寫入計(jì)數(shù)初值

MOV TL1,#58HSETB ET1 ;開放T1中斷

SETB EA ;開放CPU中斷

SETB TR1

;啟動T1工作

第五章-------35wyx例5-4:利用定時(shí)器T0產(chǎn)生1ms定時(shí),并使P1.0引腳輸出周期為2ms的方波信號,已知晶振頻率為6MHz,用查詢法編寫程序。解:(1)按題意分析:方波周期T=2ms,可用T0方式0定時(shí)1ms,使P1.0每隔1ms取反一次,即可得到周期為2ms的方波。設(shè)T0工作在方式0,由軟件啟動。

(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

;寫入工作方式字

MOVTH0,#0F0H

;寫入計(jì)數(shù)初值

MOVTL0,#0CHSETBTR0

;啟動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秒,這超過了定時(shí)器的最大定時(shí)時(shí)間。因此,只有采用定時(shí)器定時(shí)和軟件計(jì)數(shù)相結(jié)合的方法才可以解決問題。定時(shí)器T0定時(shí)50ms,軟件計(jì)數(shù)器初值設(shè)為20,每當(dāng)定時(shí)50ms時(shí)間到,CPU就響應(yīng)T0的溢出中斷請求,進(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;開T0中斷

SETBTR0

;啟動

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論