59秒计数器.asm

来自「很实用的单片机例程」· 汇编 代码 · 共 63 行

ASM
63
字号
sh_c  equ 41h
g_c   equ 42h
second equ 43h
dula bit P2.6;
wela bit P2.7; 
         mov second,#0
main:    
         mov  a,second
         cjne a,#60,loop1
         mov second,#0;
loop1:   mov a,second
         mov b,#10
         div ab
        
         mov sh_c,a
         mov g_c,b     
         mov 30h,#40h
loop:    call display
         djnz 30h,loop
         inc second
         ajmp main



delayxms:mov 52h,#4         ;50h,51h,52h用于延时  50h为参数x  延时1*x ms
delaya: mov 51h,#191
        nop
        nop
        djnz 51h,$
        djnz 52h,delaya
        djnz 50h,delayxms
        ret ;延时返回

display:			;显示程序
   MOV DPTR,#TABLE
   clr dula;
   mov a,sh_c
   MOVC a,@A+DPTR
   mov p0,a ;		;显示十位
   setb dula;
   clr dula;

   clr wela;
   mov P0,#7eh;
   setb wela;
   clr wela;
   mov 50h,#5h
   call delayxms

   mov a,g_c
   MOVC a,@A+DPTR
   mov p0,a ;		;显示个位
   setb dula;
   clr dula;
   mov P0,#7dh;
   setb wela;
   clr wela;
   mov 50h,#5h
   call delayxms
   ret
table:db   3fh,06h,5bh,4fh,66h,6dh,7d,07h,				
      db   7fh,6fh,77h,7ch,39h,5eh,79h,71h

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?