您的位置:首页版主原创51示例程序
内容搜索: 标题内容作者
     
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

四位数码管动态显示(DG003)

[日期:2008-03-20 ] [来源:东哥单片机学习网(www.picavr.com) 作者:东哥] [字体: (投递新闻)

 

 

;******************************************************************************
;*标题:   东哥单片机学习网DG-51/AVR-V1.0开发板演示程序--数码管动态显示     
;*文件:    DG003.asm                        
;*版本:    1.0
;*作者:    东哥开发网 - 东哥   
;*邮箱:    picavr@163.com     QQ: 279068079

;*网站:    http://www.picavr.com                
;*****************************************************************************                                                                                                                                           

;*:    描述:     
;*:                   实现四位数码管动态显示(显示四个0)

;*:                        
;******************************************************************************

;* 【版权】 Copyright(C)东哥单片机学习网 www.picavr.com  All Rights  Reserved  

;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                 

;******************************************************************************

       DATA1   EQU    30H     ;
       DATA2   EQU    31H     ;
       DATA3   EQU    32H     ;
       DATA4   EQU    33H     ;
;-------------------------------------------
        ORG     0000H          ;
        LJMP    START          ;转入主程序
        ORG     0030H          ;
START:
        MOV     SP,#60H        ;初始化堆栈指针
        MOV     P0,#0FFH       ;初始化I/O口
        MOV     P1,#0FFH       ;
        MOV     A,#00H         ;
        MOV     DATA1,A        ;设定显示初值
        MOV     DATA2,A        ;
        MOV     DATA3,A        ;
        MOV     DATA4,A        ;
;*******************************************
MAIN:
         CALL    DISP           ;调显示子程序
         AJMP    MAIN          ;
;******************************************
DISP:
         MOV      A,DATA1        ;

         MOV      DPTR,#TABLE    ; 
         MOVC    A,@A+DPTR      ;取数据表数据
         MOV      P0,A           ;DATA1 显示代码传送到P0口
         CLR       P1.0           ;
         LCALL   DELAY1MS       ;
         SETB     P1.0           ;

 

         MOV      A,DATA2        ;
         MOVC    A,@A+DPTR      ;取数据表数据
         MOV      P0,A           ;DATA2 显示代码传送到P0口
         CLR       P1.1           ;
         LCALL   DELAY1MS       ;
         SETB     P1.1           ;

 

         MOV     A,DATA3        ;
         MOVC   A,@A+DPTR      ;取数据表数据
         MOV     P0,A           ;DATA3 显示代码传送到P0口
         CLR      P1.2           ;
         LCALL  DELAY1MS       ;
         SETB    P1.2           ;

 

         MOV    A,DATA4        ;
         MOVC  A,@A+DPTR      ;取数据表数据
         MOV    P0,A           ;DATA4 显示代码传送到P0口
         CLR     P1.3           ;
         LCALL DELAY1MS       ;
         SETB   P1.3           ;
         RET                    ;
;*******************************************
DELAY1MS:
          MOV   R4,#2          ;延时子程序
DEL1:
          MOV   R5,#250        ;
          DJNZ  R5,$           ;
          DJNZ  R4,DEL1        ;
          RET                    ;
;*******************************************
TABLE:
         DB 11000000B      ;0
         DB 11111001B      ;1
         DB 10100100B      ;2
         DB 10110000B      ;3
         DB 10011001B      ;4
         DB 10010010B      ;5
         DB 10000010B      ;6
         DB 11111000B      ;7
         DB 10000000B      ;8
         DB 10010000B      ;9
         END
;********************************************

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告