标题: 新人简单问题求教 [打印本页]

作者: 15997987060    时间: 2016-8-24 11:17
标题: 新人简单问题求教
这是个按键LED灯亮的程序,为什么按了之后立即灭了,有什么办法让按一下一直亮,直到按下另一个键
#include <reg51.h>

     //定义两个按键 key1,key2
sbit key1=P3^4;
sbit key2=P3^5;
     //定义两个灯led1,led2
sbit led1=P1^0;
sbit led2=P1^1;
void mian()
{

if (key1==0) //按键1按下
{

   led1=0;
  
  
}
if (key2==0) //按键2按下
{
   led2=0;
}

}


作者: 15997987060    时间: 2016-8-24 11:23
还有就是main主函数是按一次键次执行一次的吗,如果不是,为什么去掉上面的while(1),程序也正常运行,按一下亮一下。。。把我搞晕了
作者: 浅水初探    时间: 2016-8-24 13:41
/定义两个按键 key1,key2
sbit key1=P3^4;
sbit key2=P3^5;
     //定义两个灯led1,led2
sbit led1=P1^0;
sbit led2=P1^1;
void mian()
{
if (key1==0)
delay(5)
if (key1==0) //按键1按下
{
                               
led1=0;
}
while(!key1);
delay(5);
while(!key1);
  
  
if (key2==0)
delay(5)
if (key1==0) //按键1按下
{
                               
led2=0;
}

while(!key1);
delay(5);
while(!key1);
  
作者: luoluoluo136    时间: 2016-8-24 17:22
15997987060 发表于 2016-8-24 11:23
还有就是main主函数是按一次键次执行一次的吗,如果不是,为什么去掉上面的while(1),程序也正常运行,按一 ...

main函数可以看做一个死循环,但这是不符合标准的,我们一般都要用上一个while(1),并不是按一次键执行一次,而是这个函数一直在循环执行。。。。
作者: 15997987060    时间: 2016-8-24 18:24
delay是延时5秒吗
作者: wgrren    时间: 2016-8-24 21:43
描述不够清晰




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1