专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机用一位数码管循环显示0-9,A-f

作者:蓝梦荒   来源:本站原创   点击数:  更新时间:2013年12月08日   【字体:
                              功能:51单片机用一位数码管循环显示0-9,A-f ,十六位字,变换间隔为一秒
                               程序:主要使用查表的方法(从程序存储器里装载数据)
                              
                                         ORG   00H
                               START:    SETB  P2.7;打开位选锁存器
                                         MOV   P0,#0FEH;载入位选信号,第一位显示
                                         CLR   P2.7;关闭位选锁存器
                                         MOV   R0,#0;这一句和下一句是将A清零操作(初始化)
                              LOOP:      MOV   A,R0;将A清零操作
                                       MOV   DPTR,#TAPE ;装载表头  
                                       MOVC  A,@A+DPTR;查表取数据
                                         SETB  P2.6;打开段选锁存器
                                         MOV   P0,A;输出数据到P0口
                                         CLR   P2.6;关段选锁存器
                                         CALL  DELAY;延时一秒
                                         INC   R0;将R0自加一(准备取下一表头数据)
                                         CJNE  R0,#16,LOOP;比较指令,看否取到了十六位否  则继续取表数据
                                         JMP   START;跳到"START开始
                                 DELAY:MOV R5,#50;延时一秒子程序
                                    D1:MOV R6,#100
                                    D2:MOV R7,#100
                                       DJNZ R7,$
                                       DJNZ R6,D2
                                       DJNZ R5,D1
                                  
                                       RET;子程序返回
                                        
                                 TAPE:  DB 3FH,6H,5BH,4FH;表头
                                        DB 66H,6DH,7DH,7H
                                        DB 7FH, 6FH,77H,7CH
                                        DB 39H,5EH,79H,71H
                                      
                                        END ;结束
关闭窗口

相关文章