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

📄 shuzipinlvji.asm

📁 此代码的为at89c51的汇编语言
💻 ASM
字号:
TTL     EQU     30H
TTH     EQU     31H
      org    0000h
      ajmp   main
      org    000bh
      ajmp   T0S
      ORG 0150H
      ORG 01FFH

MAIN: ACALL     PTF
main1:mov   r0,#79h    ;显示器的始端口
      mov   r1,#02h
      mov   r3,TTL     ;十进制调整
      mov   r2,TTH
      acall loop2
      mov   a,r6      ;拆为非压缩的BCD数
      acall loop4
      mov   a,r5
      acall loop4
      acall disp
      sjmp  main1

ptf:  mov   tmod,#51h    ;t0工作于定时器方式1,t1工作于计数器方式1
      mov   th0,#3ch     ;t0初始化,产生50ms定时中断
      mov   tl0,#0b0h
      mov   ie,#82h      ;中断初始化,ea=1,et0=1
      mov   33h,#14h      ;中断20次
      setb  tr0          ;允许t0计数
      setb  tr1          ;允许t1计数
      RET

t0s:  mov   th0,#3ch
      mov   tl0,#0b0h
      djnz  33h,next
      mov   33h,#14h
      MOV   TTL,TL1
      MOV   TTH,TH1
      MOV   TL1,#00H
      MOV   TH1,#00H

NEXT: reti

loop2:clr   a            ;二进制转换为十进制
      mov   r4,a
      mov   r5,a
      mov   r6,a
      mov   r7,#16
loop3:clr   c
      mov   a,r3
      rlc   a
      mov   r3,a
      mov   a,r2
      rlc   a             ;c为bi
      mov   r2,a          ;(r4r5r6)+(r4r5r6)=(r4r5r6)*2+c
                          ;十进制加
      mov   a,r6
      addc  a,r6
      da    a
      mov   r6,a
      mov   a,r5
      addc  a,r5
      da    a
      mov   r5,a
      mov   a,r4
      addc  a,r4
      da    a
      mov   r4,a
      djnz  r7,loop3
      ret

loop4:mov   32h,a
      anl   a,#0fh       ;拆为非压缩的BCD数
      mov   @r0,a
      inc   r0
      mov   a,32h
      swap  a
      djnz  r1,loop4
      mov   r1,#02h
      ret

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,#aa
      movc a,@a+dptr
ee:   mov  p0,a
      acall bb
      inc  r0
      MOV    A,R3
      JB     ACC.3,ff
      RL     A
      MOV    R3,A
      mov    a,r4
      rl     a
      SJMP   gg
ff:    ret
aa:   DB     0EDH,28H,0CBH,0ABH,2EH         ;0,1,2,3,4
      DB     0A7H,0E7H,29H,0EFH,0AFH	    ;5,6,7,8,9
bb:   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 + -