找回密码
 立即注册

QQ登录

只需一步,快速开始

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

判断按钮单、双、三击,开关相应的led,编译通过,逻辑却没反应,诚心请教指点,谢谢

[复制链接]
跳转到指定楼层
楼主
ID:52701 发表于 2013-9-4 09:08 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>     //使用的是stc12c4052ad
sbit led1  = P1^7;     // LED1接P1.7脚
sbit led2  = P1^6;     // LED2接P1.6脚
sbit led3  = P1^5;     // LED3接P1.5脚
sbit led4  = P1^4;     // LED4接P1.4脚
sbit button = P1^0;     // 按钮接P1.0脚
void s(unsigned int a) 、// 延时函数
{
unsigned char i,j;
for(i=0;i<a;i++)
  for(j=0;j<600;j++);
}
void main(void)
{
unsigned  char key=0;        //按钮状态判断变量
led1=led2=led3=led4=1;          //led初始均为关闭
button=1;          //按钮初始化为按下
while(1){
    if(button==0){      
     key+=1;        //单击key值为1
      s(20);
   if(button==0){
      key+=1;       //双击key值为2
       s(20);
    if(button==0){
       key+=1;         //三击key值为3
        s(20);
     if(button==0){
        key+=1;     //四击key值为4
         s(20);
      if(button==0){
       key+=1;    //长按key值为5
       s(100);
        while(button==0);
      }
     }
    }
  
   }
  }
  switch(key){         //根据key值开关相应引脚的led灯
   case 1:
    led1=~led1;
    break;
   case 2:
    led2=~led2;
    break;
   case 3:
    led3=~led3;
    break;
   case 4:
    led4=~led4;
    break;
   default:
    break;
  }

}
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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