⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shizhong.asm

📁 此代码为89c51的汇编语言
💻 ASM
字号:
     org   0000h
     ajmp  main
     org   000bh
     ajmp  ptf0
main:mov   7ch,#00h       ;时十位清零
     mov   7bh,#00h       ;时个位清零
     mov   7ah,#00h       ;分十位清零
     mov   79h,#00h       ;分个位清零
     mov   78h,#00h       ;秒清零
     mov   th0,#3ch       ;t0初始化
     mov   tl0,#0b0h      ;定时50ms
     mov   tmod,#01h
     mov   ip,#02h
     mov   ie,#82h        ;中断初始化
     setb  tr0
     mov   30h,#01h       ;t0溢出中断次数计数单元初始化20(1s)
;     mov   31h,#02h       ;秒闪烁判断
ld:  acall disp
     jb    p2.3,ld1       ;时十位校正
     mov   a,7ch
     cjne  a,#02h,w
     mov   7ch,#0ffh
w:   inc   7ch            ;时十位加1
     mov   78h,#00h       ;秒清零
ld1: jb    p2.2,ld2       ;时个位校正
     mov   a,7bh
     cjne  a,#09h,w1
     mov   7bh,#0ffh
w1:  inc   7bh            ;时个位加1
     mov   78h,#00h       ;秒清零
ld2: jb    p2.1,ld3       ;分十位校正
     mov   a,7ah
     cjne  a,#05h,w2
     mov   7ah,#0ffh
w2:  inc   7ah            ;分十位加1
     mov   78h,#00h       ;秒清零
ld3: jb    p2.0,ld4       ;分个位校正
     mov   a,79h
     cjne  a,#09h,w3
     mov   79h,#00h
w3:  inc   79h            ;分个位加1
     mov   78h,#00h       ;秒清零
ld4: sjmp  ld

ptf0:mov   th0,#3ch        ;中断服务子程序
     mov   tl0,#0b0h
     djnz  30h,ptf0r       ;1秒到否?
     inc   78h             ;秒加1
     mov   30h,#01h        ;恢复中断次数计数单元20
;     djnz  31h,la
;     mov   31h,#02h        ;秒闪烁
;     clr   p0.4
;     sjmp  la1
;la:  setb  p0.4
;la1: clr   p2.6
     mov   a,78h
     cjne  a,#3ch,ptf0r    ;1分到否?
     mov   78h,#00h
     inc   79h
     mov   a,79h
     cjne  a,#0ah,ptf0r    ;分个位到十否?
     mov   79h,#00h
     inc   7ah
     mov   a,7ah
     cjne  a,#06h,ptf0r    ;分十位到六否?
     mov   7ah,#00h
     inc   7bh
     mov   a,7bh
     cjne  a,#0ah,ptf0r    ;时个位到十否?
     mov   7bh,#00h
     inc   7ch
;    acall baoshi          ;调用报时程序
     mov   a,7ch
     cjne  a,#01h,ptf0r    ;12小时到否?
     mov   a,7bh
     cjne  a,#04h,ptf0r
     mov   7ch,#00h
     mov   7bh,#00h
ptf0r: reti

disp: mov  r0,#79h         ;设79H-7C为显示缓冲器
      mov  r3,#1
      mov  a,#0efh
gg:   mov  r4,a            ;数码管动态显示
      mov  p0,#00h
      mov  p2,a
      mov  a,@r0
      mov  dptr,#tab
      movc a,@a+dptr
ee:   mov  p0,a
      acall delay
      inc  r0
      MOV    A,R3
      JB     ACC.3,ff
      RL     A
      MOV    R3,A
      mov    a,r4
      rl     a
      SJMP   gg
ff:   ret

tab:  DB     0EDH,28H,0CBH,0ABH,2EH         ;0,1,2,3,4
      DB     0A7H,0E7H,29H,0EFH,0AFH	    ;5,6,7,8,9

delay:MOV    R7,#02H	                    ;延时子程序
cc:   MOV    R6,#0FFH
dd:   DJNZ   R6,dd
      DJNZ   R7,cc
      RET
      end





⌨️ 快捷键说明

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