您的位置:首页单片机51单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

单片机0--999999计数器程序

[日期:2008-07-04 ] [来源:NET 作者:佚名] [字体: (投递新闻)
org 00h
a_bit equ 30h         ;个位数存放处
b_bit equ 31h         ;十位数存放处
c_bit equ 32h         ;百位数存放处
d_bit equ 33h         ;千位数存放处
e_bit equ 34h         ;万位数存放处
f_bit equ 35h         ;十万位数存放处

org 0000h
ajmp star
org 0030h
   
star:
   MOV sp,#60h
   clr   p2.0
clr   p2.7
MOV a,#00h  ;;清0
MOV a_bit,a
MOV b_bit,a
MOV c_bit,a
MOV d_bit,a
MOV e_bit,a
MOV f_bit,a
stlop:  acall display    ;显示
        inc a_bit
        MOV a,a_bit 
        cjne a,#10,stlop;
        MOV a_bit,#00h
        inc b_bit
        MOV a,b_bit
        cjne a,#10,stlop
        MOV b_bit,#00h
        inc c_bit
        MOV a,c_bit
        cjne a,#10,stlop
        MOV c_bit,#00h
        inc d_bit
        MOV a,d_bit
        cjne a,#10,stlop
        MOV d_bit,#00h
        inc e_bit
        MOV a,e_bit
        cjne a,#10,stlop
        MOV e_bit,#00h
        inc f_bit
        MOV a,f_bit
        cjne a,#10,stlop
        MOV f_bit,#00h
ajmp stlop

;显示子程序
display:
         MOV dptr,#numtab ;指定查表启始地址
         MOV r0,#4
dpl1:    MOV r1,#250     ;显示1000次
dplop:   MOV a,a_bit     ;取个位数
         MOVC A,@A+DPTR  ;查个位数的7段代码
         MOV p0,a        ;送出个位的7段代码
         clr p2.6        ;开个位显示
         acall d1ms       ;显示1ms
         setb p2.6

         MOV a,b_bit ;取十位数
         MOVC A,@A+DPTR ;查十位数的7段代码
         MOV p0,a ;送出十位的7段代码
         clr p2.5 ;开十位显示
         acall d1ms ;显示1ms
         setb p2.5
         MOV a,c_bit ;取百位数
         MOVC A,@A+DPTR ;查百位数的7段代码
         MOV p0,a ;送出百位的7段代码
         clr p2.4 ;开百位显示
         acall d1ms ;显示1ms
         setb p2.4

         MOV a,d_bit ;取千位数
         MOVC A,@A+DPTR ;查千位数的7段代码
         MOV p0,a ;送出千位的7段代码
         clr p2.3 ;开千位显示
         acall d1ms ;显示1ms
         setb p2.3

         MOV a,e_bit ;取万位数
         MOVC A,@A+DPTR ;查万位数的7段代码
         MOV p0,a ;送出万位的7段代码
         clr p2.2 ;开万位显示
         acall d1ms ;显示1ms
         setb p2.2

         MOV a,f_bit ;取十万位数
         MOVC A,@A+DPTR ;查十万位数的7段代码
         MOV p0,a ;送出十万位的7段代码
         clr p2.1 ;开十万位显示
         acall d1ms ;显示1ms
         setb p2.1

         djnz r1,dplop ;100次没完循环
         djnz r0,dpl1 ;4个100次没完循环
         ret
;1MS延时(按12MHZ算)
;====================================================
D1MS: MOV R7,#2
      DJNZ R7,$
      RET
;7段数码管各划的数字排列表
numtab: db 21H,77H,0A2H,62H,74H,68H,28H, 73H,20H,60H
;           0,  1,   2,  3,  4,  5,  6,  7,  8,  9
end
阅读:
录入:petta

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐