單片機(jī)秒表課程設(shè)計
B2: JB P3.7,LOOP2
ACALL DELAY10;延時10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按鍵松開
AJMP OVER
LOOP2: DJNZ R3,TIME2 ;2毫秒循環(huán)執(zhí)行250次,時間約0.5秒
DJNZ R2,JS2 ;循環(huán)執(zhí)行2次,時間為1 秒鐘
DEC TEMP;滿一秒鐘對時間減1
MOV A,TEMP
JNZ GOON2;判斷TEMP的數(shù)值是否為0?不為0循環(huán)
ACALL OVER
RET
;結(jié)束定時
OVER: AJMP START;退到開機(jī)初始化狀態(tài)
;1毫秒延時子程序
DELY1: MOV R4,#2
D1:MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET
;10毫秒延時子程序
DELAY10: MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET
;實(shí)驗板上的兩位一體的數(shù)碼管0~9各數(shù)字的顯示代碼
NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
DPLOP1: MOV A,A_BIT ;取個位數(shù)
MOVC A,@A+DPTR ;查個位數(shù)的7段代碼
MOV P0,A ;送出個位的7段代碼
CLR P2.5 ;開個位顯示
ACALL DELY1;顯示1毫秒
SETB P2.5;關(guān)閉個位顯示,防止鬼影
MOV A,B_BIT ;取十位數(shù)
MOVC A,@A+DPTR ;查十位數(shù)的7段代碼
MOV P0,A ;送出十位的7段代碼
CLR P2.6 ;開十位顯示
ACALL DELY1;顯示1毫秒
SETB P2.6;關(guān)閉十位顯示,防止鬼影
RET
END
評論