display_ceshi.asm

来自「基于51单片机的频率计设计」· 汇编 代码 · 共 45 行

ASM
45
字号
DisplayBuffer EQU 40H
Disp1  EQU  35H         ;输出数据10进制(高位)
Disp2  EQU  36H
Disp3  EQU  37H     

        
       ORG 0000H
       LJMP MAIN
       ORG 0100H
MAIN: 
        MOV 40H,#00
        MOV 41H,#07
        MOV 42H,#04
        MOV 43H,#05
        MOV 44H,#06
        MOV 45H,#05
DISPLAY:
       MOV   R1,#DisplayBuffer       ;指向显示数据首址
       MOV   R4,#11111011b      ;扫描控制字初值
PLAY:  MOV   A,R4          ;扫描字放入A
       MOV   P2,A          ;从P2口输出
       MOV   A,@R1         ;取显示数据到A
       MOV   DPTR,#TAB     ;取段码表地址
       MOVC  A,@A+DPTR     ;查显示数据对应段码
       MOV   P0,A          ;段码放入P1口
       LCALL  Delay
       INC   R1            ;指向下一地址
       MOV   A,R4            ;扫描控制字放入A
       JNB   ACC.7,DISPLAY    ;扫到第六位时结束
       RL   A               ;A中数据循环左移
       MOV   R4,A            ;放回R5内
       AJMP  PLAY            ;跳回PLAY循环

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H         ;共阳极
     DB 92H,82H,0F8H,80H,90H            ;"0""1""2" "3""4""5""6""7" "8""9""
     RET
Delay:
       MOV R6,#2
Del:
       MOV R7,#249
       DJNZ R7,$
       DJNZ R6,Del
       RET

       END

⌨️ 快捷键说明

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