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