找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助多按键控制分别控制LED的程序

[复制链接]
跳转到指定楼层
楼主
ID:141313 发表于 2017-1-6 13:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机2个按键分别控制LED灯 ,当K1按下LED1亮,松开LED1灭,且同时按下K2键LED2没反应;当K2按下LED2亮,松开LED2灭,且同时按下K1键LED1没反应;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149988 发表于 2017-1-6 14:04 | 只看该作者

RE: 求助多按键控制分别控制LED的程序

完全符合上述要求
#include <reg51.h>
sbit K1=P1^0;  //按键1,控制第1个继电器启动
sbit K2=P1^1;  //按键2,控制第2个继电器启动
sbit J1=P1^6;  //第1个继电器
sbit J2=P1^7;  //第2个继电器
void Delay_1ms(unsigned int t)
{
  unsigned char x, y;
  for(x=0; x<t; x++)
    for(y=0; y<122; y++);
}
void main()  //主程序
{
  while(1)   //大循环
  {
    if(K1==0)  //检测第1个按键是否按下
    {
      Delay_1ms(50);  //延时
      if(K1==0)
      {
        while(!K1)  //检测第1个按键是否松开
        J1=0;  //第1个继电器启动
      }
      if(K1==1)
      {
        J1=1;  //第1个继电器停止
      }
    }
    if(K2==0)  //检测第2个按键是否按下
    {
      Delay_1ms(50);  //延时
      if(K2==0)
      {
        while(!K2)  //检测第2个按键是否松开
        J2=0;  //第2个继电器启动
      }
      if(K2==1)
      {
        J2=1;  //第2个继电器停止
      }
    }
  }
}
回复

使用道具 举报

板凳
ID:141313 发表于 2017-1-6 17:32 | 只看该作者
不倒翁.WZT 发表于 2017-1-6 14:04
完全符合上述要求
#include
sbit K1=P1^0;  //按键1,控制第1个继电器启动

不行哦,按K2键时 J2有时没反应
回复

使用道具 举报

地板
ID:161164 发表于 2017-1-11 17:11 | 只看该作者
本帖最后由 lkc8210 于 2017-1-11 17:12 编辑

#include <reg51.h>
sbit K1=P1^0;  //按键1,控制第1个继电器启动
sbit K2=P1^1;  //按键2,控制第2个继电器启动
sbit J1=P1^6;  //第1个继电器
sbit J2=P1^7;  //第2个继电器
void Delay_1ms(unsigned int t)
{
  unsigned char x, y;
  for(x=0; x<t; x++)
    for(y=0; y<122; y++);
}
void main()  //主程序
{
  while(1)   //大循环
  {
   J1=~(K1==0 & (K2==1 | J1 == 0));  //第1个继电器启动
   J2=~(K2==0 & (K1==1 | J2 == 0));  //第2个继电器启动
  }
}
回复

使用道具 举报

5#
ID:150865 发表于 2017-1-11 22:09 | 只看该作者
测试过了 没问题

模拟.rar

44.7 KB, 下载次数: 21

回复

使用道具 举报

6#
ID:161391 发表于 2017-1-11 22:44 来自手机 | 只看该作者
百度一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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