数码管.asm

来自「AT89S52单片机程序50例(00-50)」· 汇编 代码 · 共 56 行

ASM
56
字号
;名称  数码管1
;功能  此程序实现四数码管显示01234567

 
     ORG 0000H
LOOP:MOV P0,#07H  ;07H在共阴数码管上显示为数字"7"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#07H  ;显示最右边的位(第一位)
     CALL DELAY  ;调用延时子程序

     MOV P0,#7DH  ;7DH在共阴数码管上显示为数字"6"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#06H  ;显示第二位
     CALL DELAY  ;调用延时子程序

     MOV P0,#6DH  ;6DH在共阴数码管上显示为数字"5"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#05H  ;显示第三位
     CALL DELAY  ;调用延时子程序

     MOV P0,#66H  ;066H在共阴数码管上显示为数字"4"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#04H  ;显示第四位
     CALL DELAY  ;调用延时子程序

     MOV P0,#4FH  ;4FH在共阴数码管上显示为数字"3"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#03H  ;显示最右边的位(第一位)
     CALL DELAY  ;调用延时子程序

     MOV P0,#5BH  ;05BH在共阴数码管上显示为数字"2"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#02H  ;显示第二位
     CALL DELAY  ;调用延时子程序

     MOV P0,#06H  ;06H在共阴数码管上显示为数字"1"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#01H  ;显示第三位
     CALL DELAY  ;调用延时子程序

     MOV P0,#3FH  ;3FH在共阴数码管上显示为数字"0"
     MOV P2,#0FFH  ;关掉所有数码管
     MOV P2,#00H  ;显示第四位
     CALL DELAY  ;调用延时子程序

     JMP LOOP  ;循环

;延时子程序
DELAY:MOV R7,#25
   D1:MOV R6,#5
   D2:MOV R5,#1
      DJNZ R5,$
      DJNZ R6,D2
      DJNZ R7,D1
  RET
END

⌨️ 快捷键说明

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