51单片机流水灯汇编,p1口接八个流水灯,依次点亮一秒,p3.3口接一按钮。按下后全亮两秒,全灭两秒,后恢复正常。汇编语言
时间: 2023-08-05 12:05:53 浏览: 149
以下是基于Keil C51编译器的51单片机流水灯汇编代码:
```
;定义P1口输出流水灯
P1 EQU 90H
;定义P3.3口输入按钮
P3 EQU B0H
BUTTON EQU P3.3
ORG 0H
;初始化P1口为输出
MOV P1, #00H
;设置P3.3口为输入
SETB BUTTON
LOOP:
;检测按钮是否按下
JNB BUTTON, LOOP
;按钮按下时全亮两秒
SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
;延时两秒
CALL DELAY_1S
CALL DELAY_1S
;全灭两秒
CLR P1.0
CLR P1.1
CLR P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
CLR P1.7
;延时两秒
CALL DELAY_1S
CALL DELAY_1S
;恢复正常流水灯
MOV P1, #01H
;循环执行
SJMP LOOP
;延时函数,延时1秒
DELAY_1S:
MOV R7, #250D
L1:
MOV R6, #250D
L2:
DJNZ R6, L2
DJNZ R7, L1
RET
```
以上代码实现了按下P3.3口的按钮时,全亮两秒,全灭两秒,然后恢复正常的流水灯。流水灯在P1口的8个引脚上依次点亮1秒。
阅读全文