用汇编语言编写开关控制LED灯

2025-02-26 06:17:38
推荐回答(3个)
回答1:

延时做 nop 的多次嵌套循环,用ajump 指令和 djnz Rn 指令
关于屏蔽接收,可以用相关寄存器做 逻辑处理,或者是比较跳转处理

摁钮来说,因为是输入,在输入之前,先对接脚做输出高电平处理,然后做接收,否则可能会烧掉单片机接脚内部的fet 管

延时六秒不好控制,如果晶振频率你知道的话,多用nop指令,来缓冲循环段的长短不一问题

回答2:

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
LOOP:
MOV A,P1 ;检测按键,高有效
JZ LOOP ;没有按键按下,循环
PUSH ACC ;有键按下,键值压栈
LOOP1:
MOV A,P1
JNZ LOOP1 ;等待按键抬起
POP ACC
MOV P0,A ;相应键的LED灯点亮,高有效
MOV R2,#100
SETB TR0
LCALL DELAY ;延时5S
SJMP LOOP
DELAY:
JBC TF0,DELAY1
SJMP DELAY
DELAY1:
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
DJNZ R2,DELAY
RET
END

回答3:

8个开关分别接P1.0-P1.7 控制输出是P0.0-P0.7LED灯
还有开关延时6S和按住一个按钮锁住其它按钮

例如:按下P0.0松开按钮 然后延时5s灯亮并且在5s之内锁住P0.1-P0.7的输入

--P0.0,是接的按键? 前面不是说接到 LED 的吗?
--延时 5s ?前面不是说 6s 吗?