;*****************************************;
;实验名称: 六位数码管动态显示0-1-..-5实验;
;作者: 龙谊 ;
;版本: VER 1.0 ;
;说明: 采用共阴极数码管 ;
;修改: 无 ;
;编程语言: 汇编语言 ;
;*****************************************;
ORG00H
START: MOVR1,#00H ;段选计数器清零
MOVR2,#00H ;位选计数器清零
BEGIN: MOVA,R1 ;段选计数器送A
MOVDPTR,#TABLE1;表TABLE1的地址存入数据指针
MOVCA,@A+DPTR ;从表TABLE1中计数器所指的位置取码
CJNEA,#01H,QIDONG;码=01H?不等于跳到QIDONG
JMPSTART ;等于返回开始进行程序的循环
QIDONG:MOVP0,A ;段选码送P0
MOVA,R2 ;位选计数器送A
MOVDPTR,#TABLE2;表TABLE2的地址存入数据指针
MOVCA,@A+DPTR ;从表TABLE2中计数器所指的位置取码
MOVP2,A ;位选码送P2
CALLDELAY ;调延时子程序
MOVP2,#0FFH ;稳定动态显示处理,PROTUES仿真必加,实际电路测试可不用此行
INCR1 ;段选计数器加1
INCR2 ;位选计数器加1
JMPBEGIN
DELAY: MOVR6,#20 ;采用12MHZ晶振,延时时间为0.01秒
D1: MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE1:DB3FH,06H,5BH,4FH,66H,6DH ;共阴极数码管0-5的编码
DB01H ;结束码
TABLE2:DB0DFH,0EFH,0F7H,0FBH,0FDH,0FEH;位选信号,6-5-4-3-2-1
END