微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机闪烁灯流水灯汇编代码大全

单片机闪烁灯流水灯汇编代码大全

时间:11-29 来源:互联网 点击:

R0,LOOP_3_1

MOV P0,#11111111B

LOOP_3_2: JB P2.2,LOOP

JMP LOOP_3_2

D100MS: MOV R7,#250

D1: MOV R6,#200

DJNZ R6,$

DJNZ R7,D1

RET

END

7、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。指拨开关闭合之前8个LED全亮,

闭合指拨开关P2.0,则P0.0所对应的LED灭,以此类推。

源代码:

ORG 0

MOV A,#00000000B

MOV P0,A

MOV P2,#0FFH

LOOP: MOV A,P2

CPL A

MOV P0,A

JMP LOOP

END

8、单片机AT89C51的P2口分别接8个指拨开关;P0口接8个LED。

指拨开关闭合之前8个LED单灯左移3次后,全亮,闭合指拨开关P2.0,

则P0.0所对应的LED灭,以此类推。延时为0.2S。

原理图:

源代码:

ORG 0

MOV R1,#3

LOOP1: MOV R0,#8

MOV A,#11111110B

LOOP2: MOV P0,A

RL A

CALL D200MS

DJNZ R0,LOOP2

DJNZ R1,LOOP1

MOV A,#00000000B

MOV P0,A

MOV P2,#0FFH

LOOP: MOV A,P2

CPL A

MOV P0,A

JMP LOOP

D200MS:

MOV R7,#250

D1: MOV R6,#200

D2: MOV R5,#2

DJNZ R5,$

DJNZ R6,D2

DJNZ R7,D1

RET

END

9、单片机AT89C51的P2.0、P2.1和P2.2口分别接一个按钮开关,

P1口低4位接译码器7447,7447输出部分接共阳极LED数码管。要求按一下P2.0口对应按钮,数码管显示数字“0”;

按一下P2.1口对应按钮,数码管显示数字“8”;按一下P2.2口对应按钮,数码管所显示的数字被关闭。

原理图:

源代码:

ORG 0000H

START: MOV P2,#0FFH

LOOP: JNB P2.0,ON

JNB P2.1,ON8

JNB P2.2,OFF

JMP LOOP

ON: MOV P1,#00H

ON_1: JB P2.0,LOOP

JMP ON_1

ON8: MOV P1,#08H

ON_8: JB P2.1,LOOP

JMP ON_8

OFF: MOV P1,#0FFH

OFF_1: JB P2.2,LOOP

JMP OFF_1

END

10、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。让该数码管循环显示数字“9~0”,延时为1S。

ORG 0000H

MOV R0,#10

start:

DJNZ R0,s

MOV P2,R0

CALL delay

MOV R0,#10

JMP start

s: MOV P2,R0

CALL delay

JMP start

delay: MOV R5,#100

k1: MOV R6,#250

k2: MOV R7,#250

k3: DJNZ R7,k3

DJNZ R6,k2

DJNZ R5,k1

RET

END

11、单片机AT89C51的P2口接7447驱动一个共阳极七段数码管。

让该数码管显示数字“2~6”,之后显示“9~0”,如此循环,延时为1S。

ORG 0

START: MOV R0,#5

MOV A,#2

LOOP_1: MOV P2,A

INC A

CALL D1000MS

DJNZ R0,LOOP_1

MOV R0,#10

MOV A,#9

LOOP_2: MOV P2,A

DEC A

CALL D1000MS

DJNZ R0,LOOP_2

JMP START

D1000MS:

MOV R7,#250

D1: MOV R6,#200

D2: MOV R5,#250

DJNZ R5,$

DJNZ R6,D2

DJNZ R7,D1

RET

END

12、四个集成共阳极七段数码管的公共端以PNP三极管做开关分别连接到单片机AT89C51的P1低四位,

数码管的各显示引脚a~dP分别连接到P2.0~2.7。让4个数码管稳定显示“2012”。

ORG 0

LOOP:

MOV P1,#11111110B

MOV P2,#10100100B

CALL D4MS

MOV P1,#11111101B

MOV P2,#11000000B

CALL D4MS

MOV P1,#11111011B

MOV P2,#11111001B

CALL D4MS

MOV P1,#11110111B

MOV P2,#11111001B

CALL D4MS

JMP LOOP

D4MS:

MOV R7,#10

D1: MOV R6,#200

DJNZ R6,$

DJNZ R7,D1

RET

END

13、四个集成共阳极七段数码管的公共端以PNP三极管做开关分别连接到单片机AT89C51的P1低四位,

数码管的各显示引脚a~dP分别连接到P2.0~2.7。让LED先稳定显示“2012”,

约1秒之后再稳定显示“12.21”,如此循环。

ORG 0

LOOP: MOV R0,#65

LOOP_1: MOV P1,#11111110B

MOV P2,#10100100B

CALL D4MS

MOV P1,#11111101B

MOV P2,#11000000B

CALL D4MS

MOV

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top