数码管动态显示 汇编 60进制

来源:互联网 发布:linux怎么写shell脚本 编辑:程序博客网 时间:2024/06/04 18:13

去年回答的一个题目,被网友翻了出来,提出了很多问题。今天补写了一些说明,发表出来。
题目:用两个动态数码管从0显示到60,由89C51的P1口输出,不加译码器,直接连接数码管,注意是动态数码管,不是两个单独的静态数码管。
悬赏分:100 | 解决时间:2010-5-24 20:25
最佳答案:
;=====================================
程序如下:
        ORG  0000H
        LJMP MAIN
        ORG  0100H
MAIN:                            ;开始初始化
        MOV  DPTR,#TAB           ;表首址送DPTR
        MOV  R1, #0
        MOV  R2, #0             
;-------------------------------------------------------
M1:
        MOV  R0, #50
LOOP:
        CALL DIS
        DJNZ R0, LOOP            ;循环显示80遍,约用1.6s
;-------------------------------------------------------
        MOV  A,  R3              ;这是计数值
        ADD  A,  #1
        DA   A                   ;变成 BCD 码,即:00~99H
        CJNE A, #60H, SSS
        CLR  A
SSS:
        MOV  R3, A               ;计数值分解.
        MOV  B,  #16
        DIV  AB                  ;分成高、低四位
        MOV  R2, A               ;准备去显示
        MOV  R1, B
        SJMP M1                  ;转到前面,显示80遍
;-------------------------------------------------------
DIS:                             ;显示程序.
        MOV  A,  R2              ;显示十位.
        MOVC A,  @A+DPTR
        CLR  P2.1
        MOV  P1, A
        SETB P2.0                ;十位的位选.
        CALL DLY

        MOV  A,  R1              ;个位显示.
        MOVC A,  @A+DPTR
        CLR  P2.0                ;关闭十位的显示.
        MOV  P1, A
        SETB P2.1                ;个位的位选.
        CALL DLY
        RET
;------------------------------
TAB:    DB  0xc0,0xf9,0xa4,0xb0,0x99  ;共阳极段码 0~4
        DB  0x92,0x82,0xf8,0x80,0x90  ;共阳极段码 5~9
;-------------------------------------------------------
DLY:    MOV  R6, #20            ;10ms延时.
D1:     MOV  R7, #248
        DJNZ R7, $
        DJNZ R6, D1
        RET
;-------------------------------------------------------
上述程序运行的效果图如下:

数码管动态显示 汇编 60进制 - 非著名博主 - 电子信息角落

插图链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/c2e04b0f98f784be37d12233.html
;=======================================================
回答时间:2010-5-17 23:07
回答者: 做而论道 | 十三级采纳率:35% 名人
原题网址:http://zhidao.baidu.com/question/153705677.html

0 0