;*****************************************;
;实验名称:两位数码管动态显示0-99实验 ;
;作者: 龙谊 ;
;版本: VER 1.0 ;
;说明: 采用共阴极数码管 ;
;修改: 无 ;
;编程语言: 汇编语言 ;
;*****************************************;
ORG00H
START: MOVDPTR,#TABLE;把表TABLE的地址存入数据指针
MOVR1,#00H ;计数器清零,显示从00开始
MOVR5,#50 ;设定显示间隔为1秒
BEGIN: MOVA,R1 ;计数器送累加器
MOVB,#10 ;B=10
divAB ;除法运算,除数送A,余数送B
MOVCA,@A+DPTR ;从表中除数所指的地址取码
MOVP0,A ;码由P0显示,即显示两位数的十位,段选信号
MOVP2,#0FDH ;位选由P2控制
CALLDELAY ;调延时子程序
MOVP2,#0FFH ;稳定动态显示处理,PROTUES仿真必加,实际电路测试可不用此行
MOVA,B ;将余数送A
MOVCA,@A+DPTR ;从表中余数所指的地址取码
MOVP0,A ;码由P0显示,即显示两位数的个位,段选信号
MOVP2,#0FEH ;位选由P2控制
CALLDELAY ;调延时子程序
MOVP2,#0FFH ;稳定动态显示处理,PROTUES仿真必加,实际电路测试可不用此行
DJNZR5,BEGIN ;显示时间=1秒?不等于跳到BEGIN
MOVR5,#50 ;等于重新设定延时时间为1秒
INCR1 ;计数器加1
CJNER1,#100,BEGIN;计数器=100?不等于返回BEGIN
JMPSTART ;计数器=100返回开始重新计数
DELAY: MOVR6,#20 ;采用12MHZ晶振,延时时间为0.01秒
D1: MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
TABLE: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴极数码管0-9的编码
END