用数码管和单片机编写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

雷蒂

结束