a_bit equ 20h ;個位數(shù)存放處 b_bit equ 21h ;十位數(shù)存放處 temp equ 22h ;計數(shù)器寄存器
star: mov temp,#0 ;初始化計數(shù)器 stlop: acall display inc temp mov a,temp cjne a,#100,next ;=100重來 mov temp,#0 next: ljmp stlop
;顯示子程序 display: mov a,temp ;將temp中的十六進制數(shù)轉(zhuǎn)換成10進制 mov b,#10 ;10進制/10=10進制 div ab mov b_bit,a ;十位在a mov a_bit,b ;個位在b
mov dptr,#numtab ;指定查表啟始地址 mov r0,#4 dpl1: mov r1,#250 ;顯示1000次 dplop: mov a,a_bit ;取個位數(shù) MOVC A,@A+DPTR ;查個位數(shù)的7段代碼 mov p0,a ;送出個位的7段代碼 clr p2.7 ;開個位顯示 acall d1ms ;顯示1ms setb p2.7 mov a,b_bit ;取十位數(shù) MOVC A,@A+DPTR ;查十位數(shù)的7段代碼 mov p0,a ;送出十位的7段代碼 clr p2.6 ;開十位顯示 acall d1ms ;顯示1ms setb p2.6 djnz r1,dplop ;100次沒完循環(huán) djnz r0,dpl1 ;4個100次沒完循環(huán) ret ;1MS延時(按12MHZ算) ;==================================================== D1MS: MOV R7,#80 DJNZ R7,$ RET
;7段數(shù)碼管各劃的數(shù)字排列表 numtab: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h ;0 1 2 3 4 5 6 7 8 9
end |
評論