原创 数码管0-99计数器

2006-12-28 21:37 4039 6 6 分类: MCU/ 嵌入式
《数码管0-99计数器》 "eCzD$~l  
p F!Z0{$A  
a_bit equ 20h ;个位数存放处
'VnJjA~rA  
b_bit equ 21h ;十位数存放处
hl.T9O  
temp equ 22h ;计数器寄存器
{]U4w/_U>  
qGk}XpvC  
star: mov temp,#0 ;初始化计数器
nawLW-/)  
stlop: acall display
G<k[:{c  
inc temp
$uHhP\F  
mov a,temp
W.xVj=L'  
cjne a,#100,next ;=100重来
"N1h`S@f^  
mov temp,#0
Zg-L.\_CP+  
next: ljmp stlop
b3xCT^  
;显示子程序
#QB0z}S  
display: mov a,temp ;将temp中的十六进制数转换成10进制
{yB!~8  
mov b,#10 ;10进制/10=10进制
w+~sx`  
div ab
%;XG=  
mov b_bit,a ;十位在a
tqaj,$[u  
mov a_bit,b ;个位在b
Dx1U/`Y  
I3Q>x5:  
mov dptr,#numtab ;指定查表启始地址
-v4@.r  
mov r0,#4
#"s .j4<,  
dpl1: mov r1,#250 ;显示1000次
d9N!{J40D  
dplop: mov a,a_bit ;取个位数
by27W A<1  
MOVC A,@A+DPTR ;查个位数的7段代码
>8u=2\k5  
mov p0,a ;送出个位的7段代码
SWP\C  
clr p2.7 ;开个位显示
Pf* ^R%;  
acall d1ms ;显示1ms
iHs| 1'K  
setb p2.7
><2nkwIUG  
mov a,b_bit ;取十位数
@9A7&?kA  
MOVC A,@A+DPTR ;查十位数的7段代码
) D8TWw(4  
mov p0,a ;送出十位的7段代码
4DG1`}p_tN  
clr p2.6 ;开十位显示
K`oFH7!::  
acall d1ms ;显示1ms
/1;[fb~  
setb p2.6
tno Nux7p  
djnz r1,dplop ;100次没完循环
F[Dv 1{  
djnz r0,dpl1 ;4个100次没完循环
,1K9@  
ret
Kl@4r1X$  
;1MS延时(按12MHZ算)
QHb#@|3  
;====================================================
-@2AS\  
D1MS: MOV R7,#80
->< ?Qe  
DJNZ R7,$
f\ /zN+Y5  
RET
[qK<GHkC  
;7段数码管各划的数字排列表
0%|;pM W  
numtab: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
l4J4: ss  
;0 1 2 3 4 5 6 7 8 9
9

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条