资源描述
(原理仿真图)
三位数码管显示000~255汇编源程序
说明(数码管是轮流工作的,个位显示时十位与百位数码管关闭,以此类推只要轮流的时间足够快,人在视觉暂留的作用下,就会感觉同时显示是三位数本程序延时10MS。“;”后面为程序注释不属于程序)
ORG 00H
M EQU P2.0
N EQU P2.1
Q EQU P2.2
LJMP START
ORG 30H
START: MOV DPTR,#TABLE
CLR A
LOOP1: ACALL SCAN
INC R0;r0作为计数器
CJNE R0,#255,LOOP1未计数到255循环
JMP START
———————————scan为显示程序———————————————
SCAN: MOV R7,#33;循环次数
MOV A,R0
MOV B,#100
DIV AB
MOV R1,A;百位数字
MOV R2,B
MOV A,R2
MOV B,#10
DIV AB
MOV R3,A;十位数字
LOOP: MOV R4,B;个位数字
MOV A,R4
ACALL CHANGE;取码表
CLR M;清零个位计数器有效
ACALL DELAY10ms;延时10ms
SETB M;置位
MOV A,R3
ACALL CHANGE
CLR N
ACALL DELAY10ms
SETB N
MOV A,R1
ACALL CHANGE
CLR Q
ACALL DELAY10ms
SETB Q
DJNZ R7,LOOP; 33*30`约为1s
RET
CHANGE :
MOVC A,@A+DPTR
MOV P0,A
RET
DELAY10ms:
MOV R5,#20
D1: MOV R6,#248
DJNZ R6,$
DJNZ R5,D1
RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H ;(数码表)
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
展开阅读全文