MCS-51單片機定時系統(tǒng)
定時/計數(shù)器和中斷源的多少直接決定單片機的性能。MCS-51單片機內(nèi)部有兩個可編程的16位定時/計數(shù)器和5個中斷源,具有較強的實時處理能力和對外部應(yīng)急事件的處理能力。要充分發(fā)揮單片機的功能,必須充分利用定時和中斷。
定時器/計數(shù)器
一、定時和延時的區(qū)別
在單片機程序清單中,經(jīng)??吹窖訒r子程序和定時(中斷)子程序。它們都能使單片機間隔一段時間后再做另一件事。例如,控制兩組燈的交替閃亮。以1999年第38期九版圖13為例,下面分別是用延時和定時方法的源程序。
程序1:
ORG 0000H
AJMP MAIN
ORG 50H
MAIN:MOV P1,#0AAH;第一組燈亮
ACALL DELAY ;調(diào)延時子程序
MOV P1,#55H ;第二組燈亮
ACALL DELAY ;調(diào)延時子程序
AJMP MAIN ;循環(huán)
DELAY:MOV R0,#08H ;延時子程序,當fc=6MHz時,約延時1秒
L1:MOV R1,#0FFH ;
L2:MOV R2,#0FFH;
L3:DJNZ R2,L3
DJNZ R1,L2
DJNZ R0,L1
RET
END
程序2:
ORG 0000H
AJMP MAIN
ORG 0 WT0;轉(zhuǎn)T0中斷服務(wù)子程序
ORG 50H
MAIN:MOV 21 TL0,#6;裝入定時初值
MOV TH0,#6;裝入重置定時初值
MOV TMOD,#02H;設(shè)T0為工作方式2
SETB EA;允許CPU中斷
SETB ETO;允許TO中斷
SETB TRO;允許TO計數(shù)
MOV P1,#55H;
CLR 00H
M:P1,#55H;CPU去執(zhí)行其他任務(wù)
JNB 0 P1;定時到1秒,燈的狀態(tài)翻轉(zhuǎn)
CLR 0 M;循環(huán)
WTO:PUSH ACC;定時中斷服務(wù)子程序
PUSH PSW;
INC 21H
MOV A,21H
CJNE A,#200,TORETI
MOV 21 22 A,22H
CJNE A,#10,TORETI
MOV 22 0 PSW
POP ACC
RETI
END
評論