版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
定時器與中斷第1頁,課件共50頁,創(chuàng)作于2023年2月
中斷的基本概念
80C51中斷源中斷控制寄存器中斷處理過程中斷優(yōu)先控制和中斷嵌套中斷系統(tǒng)的應(yīng)用
80C51定時/計數(shù)器定時/計數(shù)器控制寄存器定時/計數(shù)器工作方式定時/計數(shù)器的應(yīng)用第5章中斷系統(tǒng)和定時/計數(shù)器
本章要點:第2頁,課件共50頁,創(chuàng)作于2023年2月§5-180C51中斷系統(tǒng)CPU暫時中止其正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行請求中斷的那個外設(shè)或事件的服務(wù)程序,等處理完畢后再返回執(zhí)行原來中止的程序,叫做中斷。⒉為什么要設(shè)置中斷?⑴提高CPU工作效率⑵具有實時處理功能⑶具有故障處理功能⑷實現(xiàn)分時操作一.中斷概述⒈什么叫中斷?第3頁,課件共50頁,創(chuàng)作于2023年2月⑴ INT0:外部中斷0,中斷請求信號由P3.2輸入。⑵ INT1:外部中斷1,中斷請求信號由P3.3輸入。⑶T0:定時/計數(shù)器0溢出中斷,對外部脈沖計數(shù)由P3.4輸入。⑷T1:定時/計數(shù)器1溢出中斷,對外部脈沖計數(shù)由P3.5輸入。⑸串行中斷:包括串行接收中斷RI和串行發(fā)送中斷TI。二.中斷源和中斷控制寄存器⒈中斷源中斷源是指能發(fā)出中斷請求,引起中斷的裝置或事件。
80C51單片機的中斷源共有5個,其中2個為外部中斷源,3個為內(nèi)部中斷源:第4頁,課件共50頁,創(chuàng)作于2023年2月①中斷請求:定時和外中斷控制寄存器TCON;
串行控制寄存器SCON;②中斷允許控制寄存器IE;③中斷優(yōu)先級控制寄存器IP。⒉中斷控制寄存器
80C51單片機中涉及中斷控制的有3個方面4個特殊功能寄存器:第5頁,課件共50頁,創(chuàng)作于2023年2月INT0、INT1、T0、T1中斷請求標志放在TCON中串行中斷請求標志放在SCON中。⑴中斷請求控制寄存器(88H)TCOND7D6D5D4D3D2D1D0位名稱TF1—TF0—IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H功能T1
中斷標志—T0中斷標志—
中斷標志
觸發(fā)方式
中斷標志觸發(fā)方式TCON的結(jié)構(gòu)、位名稱、位地址和功能如下:第6頁,課件共50頁,創(chuàng)作于2023年2月
TCON位功能:①TF1——T1溢出中斷請求標志
T1計數(shù)溢出后,TF1=1②TF0——T0溢出中斷請求標志
T0計數(shù)溢出后,TF0=1③IE1——外中斷中斷請求標志
當P3.3引腳信號有效時,IE1=1④IE0——外中斷中斷請求標志
當P3.2引腳信號有效時,IE0=1⑤IT1——外中斷觸發(fā)方式控制位
IT1=1,邊沿觸發(fā)方式;
IT1=0,電平觸發(fā)方式。⑥IT0——外中斷觸發(fā)方式控制位其意義和功能與IT1相似。第7頁,課件共50頁,創(chuàng)作于2023年2月串行控制寄存器SCON(98H)TCOND7D6D5D4D3D2D1D0位名稱——————TIRI位地址——————99H98H功能——————串行發(fā)送中斷標志串行接收中斷標志①TI——串行口發(fā)送中斷請求標志②RI——串行口接收中斷請求標志第8頁,課件共50頁,創(chuàng)作于2023年2月
80C51對中斷源的開放或關(guān)閉由中斷允許控制寄存器IE控制。
IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8H~AFH。IE控制CPU對中斷源總的開放或禁止以及每個中斷源是否允許中斷。⑵中斷允許控制寄存器IE(A8H)IE的結(jié)構(gòu)、位名稱和位地址如下:IED7D6D5D4D3D2D1D0位名稱EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H中斷源CPU——串行口T1T0第9頁,課件共50頁,創(chuàng)作于2023年2月①EA——CPU中斷允許控制位
EA=1,CPU開中;
EA=0,CPU關(guān)中,且屏蔽所有5個中斷源。②EX0——外中斷INT0中斷允許控制位
EX0=1,INT0開中;EX0=0,INT0關(guān)中。③EX1——外中斷INT1中斷允許控制位
EX1=1,INT1開中;EX1=0,INT1關(guān)中。④ET0——定時/計數(shù)器T0中斷允許控制位
ET0=1,T0開中;ET0=0,T0關(guān)中。⑤ET1——定時/計數(shù)器T1中斷允許控制位
ET1=1,T1開中;ET1=0,T1關(guān)中。⑥ES——串行口中斷(包括串發(fā)、串收)允許控制位
ES=1,串行口開中;ES=0,串行口關(guān)中。說明:80C51對中斷實行兩級控制,總控制位是EA,每一中斷源還有各自的控制位。首先要EA=1,其次還要自身的控制位置“1”。第10頁,課件共50頁,創(chuàng)作于2023年2月(3)中斷優(yōu)先寄存器IP(B8H)
IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8H~BFH,IP用來鎖存各中斷源優(yōu)先級的控制位,其格式如圖所示。第11頁,課件共50頁,創(chuàng)作于2023年2月三.中斷處理過程中斷處理過程大致可分為四步:中斷請求、中斷響應(yīng)、中斷服務(wù)、中斷返回⒈中斷請求中斷源發(fā)出中斷請求信號,相應(yīng)的中斷請求標志位(在中斷控制寄存器TCON和SCON中)置“1”。⒉中斷響應(yīng)
CPU查詢(檢測)到某中斷標志為“1”,在滿足中斷響應(yīng)條件下,響應(yīng)中斷。⑴中斷響應(yīng)條件:
①該中斷已經(jīng)“開中”;②CPU此時沒有響應(yīng)同級或更高級的中斷;③當前正處于所執(zhí)行指令的最后一個機器周期;④正在執(zhí)行的指令不是RETI或者是訪向IE、IP的指令,否則必須再另外執(zhí)行一條指令后才能響應(yīng)。第12頁,課件共50頁,創(chuàng)作于2023年2月⑵中斷響應(yīng)操作
CPU響應(yīng)中斷后,進行下列操作:①保護斷點地址;②撤除該中斷源的中斷請求標志;③關(guān)閉同級中斷;④將相應(yīng)中斷的入口地址送入PC;
80C51五個中斷入口地址:INT0:0003H;
T0:000BH;INT1:0013H T1:001BH;串行口:0023H⒊執(zhí)行中斷服務(wù)程序中斷服務(wù)程序應(yīng)包含以下幾部分:⑴保護現(xiàn)場⑵執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作⑶恢復現(xiàn)場⒋中斷返回在中斷服務(wù)程序最后,必須安排一條中斷返回指令RETI,當CPU執(zhí)行RETI指令后,自動完成下列操作:⑴恢復斷點地址。⑵開放同級中斷,以便允許同級中斷源請求中斷。第13頁,課件共50頁,創(chuàng)作于2023年2月
四.中斷響應(yīng)等待時間
若排除CPU正在響應(yīng)同級或更高級的中斷情況,中斷響應(yīng)等待時間為:
3~8個機器周期五.中斷請求的撤除中斷源發(fā)出中斷請求,相應(yīng)中斷請求標志置“1”。CPU響應(yīng)中斷后,必須清除中斷請求“1”標志。否則中斷響應(yīng)返回后,將再次進入該中斷,引起死循環(huán)出錯。⑴對定時/計數(shù)器T0、T1中斷,外中斷邊沿觸發(fā)方式,CPU響應(yīng)中斷時就用硬件自動清除了相應(yīng)的中斷請求標志。⑵對外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合的方法消除后果。⑶對串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清除TI或RI。第14頁,課件共50頁,創(chuàng)作于2023年2月六.
中斷優(yōu)先控制和中斷嵌套⒈中斷優(yōu)先控制
80C51中斷優(yōu)先控制首先根據(jù)中斷優(yōu)先級,此外還規(guī)定了同一中斷優(yōu)先級之間的中斷優(yōu)先權(quán)。其從高到低的順序為:
INT0、T0、INT1、T1、串行口。
中斷優(yōu)先級是可編程的,而中斷優(yōu)先權(quán)是固定的,不能設(shè)置,僅用于同級中斷源同時請求中斷時的優(yōu)先次序。
80C51中斷優(yōu)先控制的基本原則:①高優(yōu)先級中斷可以中斷正在響應(yīng)的低優(yōu)先級中斷,反之則不能。②同優(yōu)先級中斷不能互相中斷。③同一中斷優(yōu)先級中,若有多個中斷源同時請求中斷,CPU將先響應(yīng)優(yōu)先權(quán)高的中斷,后響應(yīng)優(yōu)先權(quán)低的中斷。第15頁,課件共50頁,創(chuàng)作于2023年2月第16頁,課件共50頁,創(chuàng)作于2023年2月⒉
中斷嵌套
當CPU正在執(zhí)行某個中斷服務(wù)程序時,如果發(fā)生更高一級的中斷源請求中斷,CPU可以“中斷”正在執(zhí)行的低優(yōu)先級中斷,轉(zhuǎn)而響應(yīng)更高一級的中斷,這就是中斷嵌套。
中斷嵌套只能高優(yōu)先級“中斷”低優(yōu)先級,低優(yōu)先級不能“中斷”高優(yōu)先級,同一優(yōu)先級也不能相互“中斷”。
中斷嵌套結(jié)構(gòu)類似與調(diào)用子程序嵌套,不同的是:①子程序嵌套是在程序中事先按排好的;中斷嵌套是隨機發(fā)生的。②子程序嵌套無次序限制,中斷嵌套只允許高優(yōu)先級“中斷”低優(yōu)先級。第17頁,課件共50頁,創(chuàng)作于2023年2月七.中斷系統(tǒng)的應(yīng)用⒈中斷初始化⑴設(shè)置堆棧指針SP⑵定義中斷優(yōu)先級⑶定義外中斷觸發(fā)方式⑷開放中斷⑸安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容。⒉中斷服務(wù)主程序中斷服務(wù)子程序內(nèi)容要求:⑴在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實際入口處。⑵根據(jù)需要保護現(xiàn)場。⑶中斷源請求中斷服務(wù)要求的操作。
⑷恢復現(xiàn)場。與保護現(xiàn)場相對應(yīng),注意先進后出、后進先出操作原則。⑸中斷返回,最后一條指令必須是RETI。第18頁,課件共50頁,創(chuàng)作于2023年2月【例】出租車計價器計程方法是車輪每運轉(zhuǎn)一圈產(chǎn)生一個負脈沖,從外中斷(P3.2)引腳輸入,行駛里程為輪胎周長×運轉(zhuǎn)圈數(shù),設(shè)輪胎周長為2m,試實時計算出租車行駛里程(單位米),數(shù)據(jù)存32H、31H、30H。
⒊中斷系統(tǒng)應(yīng)用舉例解:編程如下:
ORG 0000H ;復位地址
LJMP STAT ;轉(zhuǎn)初始化
ORG 0003H ;中斷入口地址
LJMP INT ;轉(zhuǎn)中斷服務(wù)程序第19頁,課件共50頁,創(chuàng)作于2023年2月
ORG0100H ;初始化程序首地址STAT:MOVSP,#60H ;置堆棧指針
SETBITO ;置邊沿觸發(fā)方式
MOVIP,#01H ;置高優(yōu)先級
MOVIE,#81H ;開中
MOV30H,#0 ;里程計數(shù)器清0MOV31H,#0 ;MOV32H,#0 ;LJMPMAIN ;轉(zhuǎn)主程序,并等待中斷
ORG0200H ;中斷服務(wù)子程序首地址INT:PUSHAcc ;保護現(xiàn)場
PUSHPSW ; MOVA,30H ;讀低8位計數(shù)器
ADDA,#2 ;低8位計數(shù)器加2m MOV30H,A ;回存
CLRA ; ADDCA,31H ;中8位計數(shù)器加進位
MOV31H,A ;回存
CLRA ; ADDCA,32H ;高8位計數(shù)器加進位
MOV32H,A ;回存
POPPSW ;恢復現(xiàn)場
POPAcc ; RETI ;中斷返回第20頁,課件共50頁,創(chuàng)作于2023年2月【例】現(xiàn)有5個外中斷源EX1、EX20、EX21、EX22和EX23,高電平時表示請求中斷,要求執(zhí)行相應(yīng)中斷服務(wù)程序,試編制程序。解:ORG 0000H ;復位地址LJMP MAIN
;轉(zhuǎn)主程序ORG 0003H ;中斷入口地址LJMP PINT0
;轉(zhuǎn)中斷服務(wù)程序ORG 0013H ;中斷入口地址LJMP PINT1
;轉(zhuǎn)中斷服務(wù)程序第21頁,課件共50頁,創(chuàng)作于2023年2月
ORG 0100H ;主程序首地址MAIN:MOV SP,#60H ;置堆棧指針
ORL TCON,#05H ;置INT0、INT1為邊沿觸發(fā)方式
SETB PX0 ;置為高優(yōu)先級
MOV IE,#0FFH ;全部開中
… ;主程序內(nèi)容
ORG1000H ;中斷服務(wù)程序首地址
PINT0:PUSH Acc ;中斷,保護現(xiàn)場
LCALLWORK1 ;調(diào)用EX1服務(wù)子程序
POP Acc ;恢復現(xiàn)場
RETI ;中斷返回
ORG 2000H;中斷服務(wù)程序首地址PINT1:CLR EA ;CPU禁中
PUSH Acc ;中斷保護現(xiàn)場
PUSH DPH ;PUSH DPL ;SETB EA ;CPU開中第22頁,課件共50頁,創(chuàng)作于2023年2月
JBP1.0,LWK20;P1.0=1,EX20請求中斷
JBP1.1,LWK21;P1.1=1,EX21請求中斷
JBP1.2,LWK22;P1.2=1,EX22請求中斷
LCALLWORK23;P1.3=1,調(diào)用EX23服務(wù)子
LRET: CLR EA ;CPU禁中
POP DPL ;恢復現(xiàn)場
POP DPH ;POP Acc ;SETB EA ;CPU開中
RETI ;中斷返回LWK20:LCALLWORK20 ;P1.0=1,調(diào)用EX20服務(wù)子程序
SJMPLRET;轉(zhuǎn)中斷返回LWK21:LCALLWORK21 ;P1.1=1,調(diào)用EX21服務(wù)子程序
SJMPLRET ;轉(zhuǎn)中斷返回LWK22:LCALLWORK22;P1.2=1,調(diào)用EX22服務(wù)子程序
SJMPLRET ;轉(zhuǎn)中斷返回
第23頁,課件共50頁,創(chuàng)作于2023年2月
定時/計數(shù)器是單片機系統(tǒng)一個重要的部件,其工作方式靈活、編程簡單、使用方便,可用來實現(xiàn)定時控制、延時、頻率測量、脈寬測量、信號發(fā)生、信號檢測等。此外,定時/計數(shù)器還可作為串行通信中波特率發(fā)生器?!?-2
80C51定時/計數(shù)器第24頁,課件共50頁,創(chuàng)作于2023年2月80C51單片機內(nèi)部有兩個定時/計數(shù)器T0和T1,其核心是計數(shù)器,基本功能是加1。對外部事件脈沖(下降沿)計數(shù),是計數(shù)器;對片內(nèi)機周脈沖計數(shù),是定時器。計數(shù)器由二個8位計數(shù)器組成。定時時間和計數(shù)值可以編程設(shè)定,其方法是在計數(shù)器內(nèi)設(shè)置一個初值,然后加1計滿后溢出。調(diào)整計數(shù)器初值,可調(diào)整從初值到計滿溢出的數(shù)值,即調(diào)整了定時時間和計數(shù)值。定時/計數(shù)器作為計數(shù)器時,外部事件脈沖必須從規(guī)定的引腳輸入。且外部脈沖的最高頻率不能超過時鐘頻率的1/24。一.定時/計數(shù)器概述第25頁,課件共50頁,創(chuàng)作于2023年2月TCON低4位與外中斷、有關(guān),已在中斷中敘述。高4位與定時/計數(shù)器T0、T1有關(guān)。⑴TF1:定時/計數(shù)器T1溢出標志。⑵TF0:定時/計數(shù)器T0溢出標志。⑶TR1:定時/計數(shù)器T1運行控制位。TR1=1,T1運行;TR1=0,T1停。⑷TR0:定時/計數(shù)器T0運行控制位。TR0=1,T0運行;TR0=0,T0停。TCON的字節(jié)地址為88H,每一位有位地址,均可位操作。⒈定時/計數(shù)器控制寄存器TCON二.定時/計數(shù)器的控制寄存器TCONT1中斷標志T1運行標志T0中斷標志T0運行標志INT1中斷標志INT1觸發(fā)方式INT0中斷標志INT0觸發(fā)方式位名稱TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H第26頁,課件共50頁,創(chuàng)作于2023年2月高4位控制T1低4位控制T0門控位計數(shù)/定時方式選擇工作方式選擇門控位計數(shù)/定時方式選擇工作方式選擇GC/TM1M0GC/TM1M0TMOD用于設(shè)定定時/計數(shù)器的工作方式低4位用于控制T0,高4位用于控制T1。⒉定時/計數(shù)器工作方式控制寄存器TMOD(89H)⑴M1M0——工作方式選擇位M1M0工作方式功能00方式013位計數(shù)器01方式116位計數(shù)器10方式2兩個8位計數(shù)器,初值自動裝入11方式3兩個8位計數(shù)器,僅適用T0第27頁,課件共50頁,創(chuàng)作于2023年2月⑵C/T——計數(shù)/定時方式選擇位
C/T=1,計數(shù)工作方式,對外部事件脈沖計數(shù),用作計數(shù)器。
C/T=0,定時工作方式,對片內(nèi)機周脈沖計數(shù),用作定時器。⑶GATE——門控位
GATE=0,運行只受TCON中運行控制位TR0/TR1的控制。
GATE=1,運行同時受TR0/TR1和外中斷輸入信號的雙重控制。只有當INT0/INT1=1且TR0/TR1=1,T0/T1才能運行。
注意:TMOD字節(jié)地址89H,不能位操作,設(shè)置TMOD須用字節(jié)操作指令。第28頁,課件共50頁,創(chuàng)作于2023年2月三.定時/計數(shù)器工作方式⒈工作方式0
13位計數(shù)器,由TL0低5位和TH08位組成,TL0低5位計數(shù)滿時不向TL0第6位進位,而是向TH0進位,13位計滿溢出,TF0置“1”。最大計數(shù)值213=8192。⒉工作方式1
16位計數(shù)器,最大計數(shù)值為216=65536。⒊工作方式2
8位計數(shù)器,僅用TL0計數(shù),最大計數(shù)值為28=256,計滿溢出后,一方面進位TF0,使溢出標志TF0=1;另一方面,使原來裝在TH0中的初值裝入TL0。優(yōu)點:定時初值可自動恢復;缺點:計數(shù)范圍小。適用于需要重復定時,而定時范圍不大的應(yīng)用場合。第29頁,課件共50頁,創(chuàng)作于2023年2月⒋工作方式3
方式3僅適用于T0,T1無方式3。⑴T0方式3
在方式3情況下,T0被拆成二個獨立的8位計數(shù)器TH0、TL0。①TL0使用T0原有的控制寄存器資源:TF0,TR0,GATE,C/T,INT0,組成一個8位的定時/計數(shù)器;②TH0借用T1的中斷溢出標志TF1,運行控制開關(guān)TR1,只能對片內(nèi)機周脈沖計數(shù),組成另一個8位定時器(不能用作計數(shù)器)。⑵T0方式3情況下的T1T1由于其TF1、TR1被T0的TH0占用,計數(shù)器溢出時,只能將輸出信號送至串行口,即用作串行口波特率發(fā)生器。第30頁,課件共50頁,創(chuàng)作于2023年2月其中:N與工作方式有關(guān):方式0時,N=13;
方式1時,N=16;
方式2、3時,N=8。 機周時間與主振頻率有關(guān):機周時間=12/fosc
fosc=12MHZ時,1機周=1S;
fosc=6MHZ
時,1機周=2S。
四.定時/計數(shù)器的應(yīng)用⒈計算定時/計數(shù)初值80C51定時/計數(shù)初值計算公式:第31頁,課件共50頁,創(chuàng)作于2023年2月解:⑴工作方式0:
213–500S/2S=8192-250=7942=1F06H 1F06H化成二進制: 1F06H=0001111100000110B =00011111000
00110B其中:低5位00110前添加3位000送入TL0 TL0=00000110B=06H;
高8位11111000B送入TH0TH0=11111000B=F8H。【例】已知晶振6MHz,要求定時0.5mS,試分別求出T0工作于方式0、方式1、方式2、方式3時的定時初值。第32頁,課件共50頁,創(chuàng)作于2023年2月⑵工作方式1:
T0初值=216-500s/2s=65536–250=65286=FF06HTH0=FFH;TL0=06H。⑶工作方式2:
T0初值=28-500s/2s=256-250=6TH0=06H;TL0=06H。⑷工作方式3:
T0方式3時,被拆成兩個8位定時器,定時初值可分別計算,計算方法同方式2。兩個定時初值一個裝入TL0,另一個裝入TH0。因此:
TH0=06H;TL0=06H。從上例中看到,方式0時計算定時初值比較麻煩,根據(jù)公式計算出數(shù)值后,還要變換一下,容易出錯,不如直接用方式1,且方式0計數(shù)范圍比方式1小,方式0完全可以用方式1代替,方式0與方式1相比,無任何優(yōu)點。第33頁,課件共50頁,創(chuàng)作于2023年2月⒉定時/計數(shù)器應(yīng)用步驟⑴合理選擇定時/計數(shù)器工作方式⑵計算定時/計數(shù)器定時初值(按上述公式計算)⑶編制應(yīng)用程序
①定時/計數(shù)器的初始化包括定義TMOD、寫入定時初值、設(shè)置中斷系統(tǒng)、啟動定時/計數(shù)器運行等。②正確編制定時/計數(shù)器中斷服務(wù)程序
注意是否需要重裝定時初值,若需要連續(xù)反復使用原定時時間,且未工作在方式2,則應(yīng)在中斷服務(wù)程序中重裝定時初值。第34頁,課件共50頁,創(chuàng)作于2023年2月【例】試用T1方式2編制程序,在P1.0引腳輸出周期為400S的脈沖方波,已知fosc=12MHZ。解:①計算定時初值
T1初值=28-200s/1s=256–200=56=38HTH1=38H;TL1=38H②設(shè)置TMOD:
0
0
10
0000B=20HT0控制位,與T1無關(guān)
T1方式2T1定時器
T1啟動與無關(guān)第35頁,課件共50頁,創(chuàng)作于2023年2月③編制程序如下:
ORG 0000H ;復位地址
LJMP MAIN ;轉(zhuǎn)主程序
ORG 001BH ;T1中斷入口地址
LJMP IT1 ;轉(zhuǎn)T1中斷服務(wù)程序
ORG 0100H ;主程序首地址MAIN:
MOV TMOD,#20H ;置T1定時器方式2 MOV TL1,#38H ;置定時初值
MOV TH1,#38H ;置定時初值備份
MOV IP,#00001000B;置T1高優(yōu)先級
MOV IE,#0FFH ;全部開中
SETB TR1 ;T1運行
SJMP $ ;等待T1中斷
ORG0200H;T1中斷服務(wù)程序首地址IT1:
CPLP1.0;輸出波形取反首地址
RETI;中斷返回第36頁,課件共50頁,創(chuàng)作于2023年2月【課堂練習題】
參照以上例題工作方式2,按下列要求分別修改程序: ①脈沖方波從P3.0輸出; ②fosc=6MHz; ③脈沖方波脈寬為100s; ④用定時/計數(shù)器T0;第37頁,課件共50頁,創(chuàng)作于2023年2月【例】設(shè)MCS-51單片機系統(tǒng)時鐘頻率ФCLK為6MHZ,請編出利用定時/計數(shù)器T0在P1.0引腳上產(chǎn)生周期為2秒,占空比為50%的方波信號的程序(1)主程序任務(wù):1)T0工作方式的設(shè)定:選擇方式1(16位方式)(最大定時131ms)
2)定時常數(shù)的設(shè)定:
TC=216-100ms/2μs=15536=3CB0H
即:TH0應(yīng)裝3CH,TL0應(yīng)裝B0H。第38頁,課件共50頁,創(chuàng)作于2023年2月3)中斷管理:允許T0中斷,開放總中斷即:IE應(yīng)裝10000010B。
4)啟動定時器T0:SETB TR05)設(shè)置軟件計數(shù)器初值:(如使用R7)即R7應(yīng)裝0AH6)動態(tài)停機:SJMP $主程序如下:第39頁,課件共50頁,創(chuàng)作于2023年2月MAIN:MOV TMOD,#01H ;設(shè)定T0為方式1 MOV TH0,#3CH ;裝入定時常數(shù)高8位
MOV TL0,#0B0H ;裝入定時常數(shù)低8位
MOVIE,#82H ;開放T0中斷
SETBTR0 ;啟動T0 MOV R7,#0AH ;設(shè)置軟件計數(shù)器
SJMP $第40頁,課件共50頁,創(chuàng)作于2023年2月(2)中斷服務(wù)程序任務(wù):1)恢復T0常數(shù);2)軟件計數(shù)器減1;3)判斷軟件計數(shù)器是否為0。為0時,改變P1.0狀態(tài),并恢復軟件計數(shù)器初值;不為0時中斷返回。程序如下:TOINT: MOVTL0,#0B0H ;恢復定時常數(shù)
MOVTH0,#3CH ;
DJNZR7,NEXT CPL P1.0MOVR7,#0AHNEXT: RETI第41頁,課件共50頁,創(chuàng)作于2023年2月完整程序如下:
ORG0000HAJMPMAIN ORG000BHAJMP TOINTORG0030HMAIN:MOV TMOD,#01H MOVTH0,#3CHMOV TL0,#0B0H MOVIE,#82HSETB TR0 MOVR7,#0AHSJMP $第42頁,課件共50頁,創(chuàng)作于2023年2月
TOINT: MOV TL0,#0B0H MOV TH0,#3CH DJNZR7,NEXT CPLP1.0MOVR7,#0AHNEXT: RETI END第43頁,課件共50頁,創(chuàng)作于2023年2月【例】已知晶振12MHZ,參閱圖5-15,要求利用定時器
T0使圖中發(fā)光二極管D進行秒閃爍。
解:發(fā)光二極管進行秒閃爍。即一秒鐘一亮一暗,亮500ms,暗500ms。晶振12MHz,每機周1s,T0方式1最大定時只能65ms余。
取T0定時50ms,計數(shù)10次,即可實現(xiàn)500ms定時。
第44頁,課件共50頁,創(chuàng)作于2023年2月①計算定時初值
T0初值=216-50000s/1s=65536–50000=15536=3CB0HTH0=3CH;TL0=B0H。②設(shè)置TMOD:
0000
0
0
01B=01HT0方式1
T0
與無關(guān)
T1控制位第45頁,課件共50頁,創(chuàng)作于2023年2月③編制程序如下:
ORG 0000H ;復位地址
LJMP MAIN ;轉(zhuǎn)主程序
ORG 000BH ;T0中斷入口地址
LJMP IT0 ;轉(zhuǎn)T0中斷服務(wù)程序
ORG 0100H ;主程序首地址MAIN:MOV TMOD,#01H ;置T0定時器方式1 MOV TH0,#3CH ;置T0初值50mS MOV TL0,#0B0H ; MOV IE,#10000010B;T0開中
MOV R7,#0AH ;置50mS計數(shù)器初值
SETB TR0 ;T0運行
SJMP $ ;等待中斷
IT0:MOVTH0,#3CH;重置T0初值50mSMOVTL0,#0B0H;DJNZR7,GORET;判500mS到否?
CPLP1.7;500mS到,輸出取反
MOVR7,#0AH;恢復50mS計數(shù)器初值GORET:RETI第46頁,課件共50頁,創(chuàng)作于2023年2月【例】已知fosc=6MHz,試編寫24小時模擬電子鐘程序,秒分時數(shù)分別存在R1、R2、R3中,可直接調(diào)用顯示程序DIR。解:
ORG0000H;復位地址
LJMPSTART;轉(zhuǎn)主程序
ORG000BH;T0中斷入口地址
LJMPIT0;T0中斷,轉(zhuǎn)T0中斷服務(wù)子程序IT0ORG1000H;主程序首地址START:MOVR1,#0;秒計數(shù)器清0MOVR2,#0;分計數(shù)器清0MOVR3,#0;時計數(shù)器清0MOVR4,#0;500S計數(shù)器清0MOVR5,#0;100ms計數(shù)器清0MOVTMOD,#02H;置T0定時器方式2MOVTL0,#06H;置T0定時初值500SMOVTH0,#06H;用于自動恢復定時初值
SETBTR0;啟動T0WAIT:LCALLDIR;顯示時鐘時分秒并等待中斷
SJMPWAIT;循環(huán)顯示
第47頁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級語文上冊第4單元第20課《雖有佳肴》教學設(shè)計及反思(新版)新人教版
- DB 3705T 47-2024黃河口灘區(qū)肉羊繁育技術(shù)規(guī)范
- 二手房買賣合同范本解析
- 個人與公司委托代繳公積金合同范本
- 中小企業(yè)借款合同模板
- XX公司委托培訓合同
- 中鐵物資商城采購合同新范本
- 上海市臨時勞動合同模板
- 個人投資入股合同范例
- 不動產(chǎn)行紀買賣合同書
- 商業(yè)綜合體市場調(diào)研報告
- 資源枯竭型城市的轉(zhuǎn)型發(fā)展 課件 2024-2025學年高二上學期地理人教版選擇性必修2
- 2025屆河北省衡水市衡水中學高考仿真模擬英語試卷含解析
- 天津市部分區(qū)2023-2024學年高二上學期期末考試 生物 含解析
- 變壓器投標書-技術(shù)部分
- 小學一年級數(shù)學思維訓練100題(附答案)
- 法院拍賣議價協(xié)議書
- 新能源充電站運營手冊
- 2024年蘭州新區(qū)實正鑫熱電有限公司招聘筆試沖刺題(帶答案解析)
- 血透室護士長述職
- (正式版)JTT 1218.4-2024 城市軌道交通運營設(shè)備維修與更新技術(shù)規(guī)范 第4部分:軌道
評論
0/150
提交評論