这问题困扰我两天了,我写的程序是:
#include <reg51.h>
#include<intrins.h>
sbit k1=P2^0;//k1是按键
sbit d1=P0^0;//d1是LED
main()
{
int A=0;
while(1)
{
if(ld1==0&&A==0&&d1==1)
{
d1=~d1 ;
A=1;
}
if(ld1!=0)
{ delay();
A=0;
}
if(ld1==0&&A==0&&d1==0)
{
d1=~d1;
A=1;
}
}
}
单片机是低电平有效的,这个程序运行时按着按着会乱,一下又不能按亮了,一下又不能灭了,我问了别人说要去抖动,就是加个延时函数,可是我加延时函数之后按住不动它就会闪烁,如果按太快的话它又反应不过来,求解释!!!
最好有程序例子给我!!就是让它按一次键不管按多久LED就改变一次值,直到松开后再按键它才改变一次值,不能让它乱了…最好试验成功的… 求求各位啦!!很急!!粘贴或邮箱都可以我基本在线1057994470@qq.com!!好的再加分哦!!
不好意思,我自己已经解决了……
#include
sbit Beep = P1^5 ;
sbit ld1=P2^0;
sbit d1=P0^0;
void main()
{
int A=0;
while(1)
{
if(ld1==0&&A==0&&d1==1)
{
d1=~d1 ;
A=1;
}
while(k1!=0)
{
A=0;
}
if(ld1==0&&A==0&&d1==0)
{
d1=~d1;
A=1;
}
}
是这样吗?可是它还是乱的……为什么??
请问可以具体一点吗?谢谢