萬用電路板

个人兴趣爱好交流空间

« 关于单片机定时器音响知识完全手册 »

单片机10进制计数器数码管显示

        这是关于51单片机数码管显示的简单实验,数码管依次从0计数显示至9,然后再跳回至0重新开始计数,如此反复。电路中的数码管选用共阳型的,公共端直接接电源,数据端连至89S52的P0口。电路图和汇编程序详解如下,供初学者参考:

(点击放大)

        ORG 0000H          ;程序从0开始
START:  MOV R3,#0          ;使R3寄存器加载0
        LJMP LOOP1         ;跳到LOOP1处执行      
LOOP:   CJNE R3,#10,LOOP1  ;如果R3不等于10,则跳至LOOP1处执行
        LJMP START         ;否则跳至START处执行
LOOP1:  MOV A,R3           ;将寄存器R3的内容复制到ACC
        MOV DPTR,#TABLE    ;将DPTR指向编码表位置
        MOVC A,@A+DPTR     ;根据ACC的值取出编码表中的编码
        MOV P0,A           ;P0口输出ACC的内容
        CALL DELAY         ;调用延时子程序
        INC R3             ;将R3寄存器的内容加1
        LJMP LOOP          ;跳至LOOP处执行
DELAY:                     ;0.2S延时子程序(12MHz晶振下)
        MOV R7,#2          ;R7寄存器加载2次数
D1:     MOV R6,#200        ;R6寄存器加载200次数
D2:     MOV R5,#250        ;R5寄存器加载250次数
        DJNZ R5,$          ;本行执行R5次
        DJNZ R6,D2         ;D2执行R6次
        DJNZ R7,D1         ;D1执行R7次
        RET                ;返回主程序
TABLE:                     ;编码表
        DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳数码管0~9字形编码
        END                ;程序结束

原创文章如转载,请注明:转载自萬用電路板 [ http://www.jiangx.net/ ]

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

有用链接

最近发表

热文排行

最新评论及回复

图标汇集

  • 留言板
  • 订阅本站的 ATOM 1.0 新闻聚合
  • 订阅本站的 RSS 2.0 新闻聚合

Powered By Z-Blog 1.8

Copyright 2008 JiangX.net 萬用電路板 All Rights Reserved.
鄂ICP备08003060号 [login]