
这程序,是我写的。
程序,是好用的,初始状态,可以做到全灭。
你的电路,弄反了。
你把八个LED,都反过来,公共端,接在电源上,就可以了。
正确电路,可见:
>
用I/O口的两个引脚读取按键的状态,采用循环扫描工作方式,按键按下为1,没按为0,则按键状态为01时,让LED交替量,数据口输出对应的高低电平即可;按键状态为10时,数据口输出同亮同灭数据
我也建议用定时器计时,用中断处理按键
还有一个疑问
如果按下,LED点亮,不足5秒,比如3秒。此时释放按键的话,你需要怎么反应
是在3秒的基础上重新计时5秒后熄灭么
#include <reg52h>
sbit led = P1^0;
sbit key1 = P2^0;
sbit key2 = P2^1;
void delay(unsigned int cnt) //简单的延时
{
while(--cnt);
}
/------------------------------------------------
MAIN C Function
------------------------------------------------/
void main (void)
{
while (1)
{
if(key1 == 0) /按键1按下/
{
led = 0; /灯亮/
delay(1000);
while(!key1); /消抖/
}
else if(key2 == 0) /按键2按下/
{
led = 1; /灯灭/
delay(1000);
while(!key2);
}
}
}
以上就是关于急求程序,89C51汇编语言写8个按键控制8个LED全部的内容,包括:急求程序,89C51汇编语言写8个按键控制8个LED、用一个按键控制一个LED闪烁的程序怎么写、求程序:51单片机两个按键做模式控制led亮灭1;交替亮2;同亮同暗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)