A_Bit EQU 20H
B_Bit EQU 21h ;十位数存放处
TEMP EQU 22h
STAR: MOV TEMP, #0 ;初始化计数器
STLOP:
ACALL DISPLAY
INC TEMP
MOV A,TEMP
CJNE A,#100,NEXT ;=100重来
MOV TEMP,#0
NEXT:
LJMP STLOP
;显示子程序
DISPLAY:
MOV A, TEMP ;将temp中 的数转换成10进制
MOV B,#10;
DIV AB;
MOV B_Bit,A ;十位在A
MOV A_Bit,B;个位在B
MOV DPTR,#TAB;指定查表启始地址
MOV R0,#2;4
DPL1: MOV R1,#100;250 ;显示1000次
DPLOP: MOV A,A_Bit;取个位数
MOVC A,@A+DPTR;查个位数的7段代码
;CPL A;
MOV P1 ,A;送出个位的7段代码
CLR P2.7;
ACALL D1MS;延时显示1ms
SETB P2.7;
MOV A,B_Bit ;取十位数
MOVC A, @A+DPTR ;查十位数的7 段代码
;CPL A;
MOV P1 ,A;送出十位的7段代码
CLR P2.6;
ACALL D1MS;
SETB P2.6;
DJNZ R1,DPLOP ;100次没完循环
DJNZ R0,DPL1 ;2个100次没完循环RET
;延时4毫秒即2微秒* R7*R6(按12MHZ算)
D1MS: MOV R7 ,#5;10
D1: MOV R6,#50;
DJNZ R6,$;
DJNZ R7,D1;
RET;
;7段数码管各划的数字排列表,共阳的七段花数
TAB:
DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h;
END;就不知道对不对,我们学校给的 |