标题:
51单片机启停保的逻辑电图
[打印本页]
作者:
888zhjzhj
时间:
2015-3-22 19:37
标题:
51单片机启停保的逻辑电图
#include<reg52.h>
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
//sbit KEY3 = P3^4;
//sbit LED1 = P0^0;
sbit LED2 = P1^0;
void KEY()
{
if((KEY1==0||LED2==0)&& KEY2==1)
{ LED2=0;}
else
{ LED2=1;}
}
void Main(void)
{
while(1)
{
// P0=0x00;
// P3=0x00;
KEY();
}
}
请问各位老师,为什么LED亮保持不住,有时短,有时长,我搞了很久也不明白
作者:
admin
时间:
2015-3-23 00:23
按键没有做消抖处理
作者:
野强强
时间:
2015-3-23 09:40
在按键指令后加上延时50ms的指令,或者用一个硬件消除,就是在开关后面加上单稳态多谐震荡器。型号54121。
作者:
888zhjzhj
时间:
2015-3-25 20:09
我改成如下程序,效果还不错。
#include<reg52.h>
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
sbit LED2 = P0^0;
void delay(unsigned int b) //延时约1ms
{
unsigned int i;
while (--b!=0)
for(i=600;i>0;i--);
}
void KEY()
{
if((KEY1==0||LED2==0)&& KEY2==1)
{ LED2=0;}
else
{ LED2=1;}
}
void Main(void)
{
while(1)
{
if((KEY1&KEY2) != 1)
{
delay(30) ;
KEY();
}
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1