

;******************************************************************************
;*标题: 东哥单片机学习网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
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!
;******************************************************************************
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 ;
MOVC A,@A+DPTR ;取数据表数据
MOV P0,A ;DATA1 显示代码传送到P0口
CLR P1.0 ;
LCALL DELAY1MS ;
SETB P1.0 ;
MOVC A,@A+DPTR ;取数据表数据
MOV P0,A ;DATA2 显示代码传送到P0口
CLR P1.1 ;
LCALL DELAY1MS ;
SETB P1.1 ;
MOVC A,@A+DPTR ;取数据表数据
MOV P0,A ;DATA3 显示代码传送到P0口
CLR P1.2 ;
LCALL DELAY1MS ;
SETB P1.2 ;
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
;********************************************
于2008评论道:
这个是测试过的没问题的,你找找看还有没其他的问题.