标题: 按键控制LED 按键K1总开,按键K2/K3/K4分别控制LED1/LED2/LED3,刚接触单片机,各... [打印本页]

作者: leichyi    时间: 2015-5-26 15:50
标题: 按键控制LED 按键K1总开,按键K2/K3/K4分别控制LED1/LED2/LED3,刚接触单片机,各...
按键控制LED 按键K1总开,按键K2/K3/K4分别控制LED1/LED2/LED3,刚接触单片机,各位帮帮忙
作者: 欢腾智能科技    时间: 2015-5-26 16:19
#inlcude <reg51.h>
sbit LED1 =  P1^0;  // LED 高电平亮
sbit LED2 =  P1^1;
sbit LED3 =  P1^2;
sbit KEY1 =  P2^0;//按键低电平有效
sbit KEY2 =  P2^1;
sbit KEY3 =  P2^2;
sbit KEY4 =  P2^3;

char KEY1_T,KEY2_T,KEY3_T,KEY4_T;
void main()
{
   while(1)
{
    if       ( (KEY1 == 0)&&(KEY1_T == 0) ){LED1 = 1;LED2 = 1;LED3 = 1;KEY1_T = 1;} //总控开
   else if  ( (KEY1 == 0)&&(KEY1_T == 1) ){LED1 = 0;LED2 = 0;LED3 = 0;KEY1_T = 0;} //总控关

    if       ( (KEY2 == 0)&&(KEY2_T == 0) ){LED1 = 1;KEY2_T = 1;}  //LED1 开
   else if  ( (KEY2 == 0)&&(KEY2_T == 1) ){LED1 = 0;KEY2_T = 0;}  //LED1 关

   if        ( (KEY3 == 0)&&(KEY3_T == 0) ){LED2 = 1;KEY3_T = 1;} //LED2 开
   else if  ( (KEY3 == 0)&&(KEY3_T == 1) ){LED2 = 0;KEY3_T = 0;} //LED2关

   if        ( (KEY4 == 0)&&(KEY4_T == 0) ){LED3 = 1;KEY4_T = 1;} //LED3 开
   else if  ( (KEY4 == 0)&&(KEY4_T == 1) ){LED3 = 0;KEY4_T = 0;} //LED3关

}
}


自己在弄一下按键去抖!
作者: leichyi    时间: 2015-5-26 16:38
谢谢!
作者: 时光溢彩    时间: 2015-5-28 00:11
你的电路是自己焊的,还是买的,如果是买的,你可以投机取巧,直接接电源,sbit L1=Key1,按下去就会有反应,程序的话也比较简单,就是一个if(Key1==P)
作者: leichyi    时间: 2015-5-28 14:17
时光溢彩 发表于 2015-5-28 00:11
你的电路是自己焊的,还是买的,如果是买的,你可以投机取巧,直接接电源,sbit L1=Key1,按下去就会有反应 ...

详细点
作者: hubbybob    时间: 2015-5-28 17:16
每台看懂
作者: hubbybob    时间: 2015-5-28 17:17
这里面都是51 单片机吗
作者: 时光溢彩    时间: 2015-5-28 23:58
leichyi 发表于 2015-5-28 14:17
详细点

在详细就只有程序
作者: leichyi    时间: 2015-6-15 08:08

作者: z1061828841    时间: 2015-6-17 12:41
其实很简单,如果要学会,多看看那些视频教程,单独将如何点亮LED  如何扫描键盘,如何去抖,都有讲,这里回答你都不是很全面
作者: 我的MCU    时间: 2015-6-17 20:41
是要源代码么?要是写的话就直接写K1按下后标志位置1,然后在标志位置1以后再判断其他按钮是不是按下就可以了啊




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