用数码管和单片机编写1-2-3-4每秒加1的循环程序。
我一开始买的简易学习板上的汇编程序如下:
其中P 0端口与数码管段连接。
P2.0-P2.3是数码管的位置控制信号。
CLR P2.3是开第1个数码管。
SETB?P2.3是关闭第1个数码管。
表是* * *数码管的七段代码。
ORG 0000H
LJMP MAIN传输初始化程序
ORG 000BH定位中断子程序地址
LJMP INTT0
组织0020H
主要:MOV A,#0C0H
MOV 30H,A;清除0,30H-33H,分别存储10,100,1000位的7段代码。
MOV 31H,A
MOV 32H,A
MOV 33H,A;*******10
MOV TH0,# 0FH设置定时器0FH=15,定时为50ms。
MOV TL0,#00H
MOV TMOD,#01H
SETB ET0;中断
SETB EA;开关中断
MOV A,# 0FFH首先关闭显示器
MOV P0,A
MOV R3,#00H
SETB TR0;启动计时器
环线:MOV A,30H*******20
MOV P0,A
CLR P2.3
MOV R2,# 0E6H延时1MS,E6H=230。
LP1:无
nototherwiseprovided(for)除非另有规定
DJNZ R2,LP1
MOV A,31H
MOV P0,A
SETB P2.3
CLR P2.2*******30
MOV R2,# 0E6H延时1MS,E6H=230。
LP2:NOP
nototherwiseprovided(for)除非另有规定
DJNZ R2,LP2
MOV A,32H
MOV P0,A
SETB P2.2
CLR P2.1
MOV R2,# 0E6H延时1MS,E6H=230。
LP3:NOP;*******40
nototherwiseprovided(for)除非另有规定
DJNZ R2,LP3
MOV A,33H
MOV P0,A
SETB P2.1
CLR P2.0
MOV R2,# 0E6H延时1MS,E6H=230。
LP4:NOP
nototherwiseprovided(for)除非另有规定
DJNZ R2,LP4*******50
SETB P2.0
MOV·DPTR #表
R4 MOV
MOVC A,@A+DPTR
MOV 30H,A
MOV A,R5
MOVC A,@A+DPTR
MOV 31H,A
R6 MOV
MOVC A,@A+DPTR
MOV 32H,A
MOV A,R7;*******60
MOVC A,@A+DPTR
MOV 33H,A
CJNE R3,#14H,环路
MOV R3,#00H
R4公司
CJNE R4,#0AH,循环
MOV R4,#00H
INC R5
CJNE R5,#0AH,环路
MOV R5,# 00H*******70
R6公司
CJNE R6,#0AH,循环
MOV R6,#00H
INC R7
LJMP环路
表:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,84H
INTT0:MOV TH0,# 0FH0FH=15,重载计数初始值。
MOV TL0,#00H
INC R3
雷蒂
结束