找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1528|回复: 5
打印 上一主题 下一主题
收起左侧

新人简单问题求教

[复制链接]
跳转到指定楼层
楼主
ID:137470 发表于 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;
}

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:137470 发表于 2016-8-24 11:23 | 只看该作者
还有就是main主函数是按一次键次执行一次的吗,如果不是,为什么去掉上面的while(1),程序也正常运行,按一下亮一下。。。把我搞晕了
回复

使用道具 举报

板凳
ID:135676 发表于 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);
  
回复

使用道具 举报

地板
ID:97438 发表于 2016-8-24 17:22 | 只看该作者
15997987060 发表于 2016-8-24 11:23
还有就是main主函数是按一次键次执行一次的吗,如果不是,为什么去掉上面的while(1),程序也正常运行,按一 ...

main函数可以看做一个死循环,但这是不符合标准的,我们一般都要用上一个while(1),并不是按一次键执行一次,而是这个函数一直在循环执行。。。。
回复

使用道具 举报

5#
ID:137470 发表于 2016-8-24 18:24 | 只看该作者
delay是延时5秒吗
回复

使用道具 举报

6#
ID:137526 发表于 2016-8-24 21:43 | 只看该作者
描述不够清晰
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表