单片机C语言按键开关程序

此程序只有一个按键请问怎么才能在增加一个呢,单片机用STC15F104E

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint);
sbit led0=P0^0;
sbit key1=P3^2;
void main()
{
uchar i;
while(1)
{
if(key1==0)
{
delay_ms(10);
if(key1==0)
{
i++;
i=i%2;
switch(i)
{
case 0: led0=1; break;//关小灯
case 1: led0=0; break;//开小灯
default: break;
}
}
while(!key1);
}
}
}
void delay_ms(uint z) //延时子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint);
sbit led0=P0^0;
sbit led1=P0^1;
sbit key1=P3^2;
sbit key2=P3^3;
void main()
{
   uchar i=0;
   uchar j=0;
    while(1)
    {
       if(key1==0)//按键1
       {
        delay_ms(10);
        if(key1==0)
        {
            i++;
            i=i%2;
            switch(i)
            {
                 case 0: led0=1; break;//关小灯
                 case 1: led0=0; break;//开小灯
                 default:  break;
            }
        }
        while(!key1);
        }
        
        if(key2==0)//按键2
       {
        delay_ms(10);
        if(key2==0)
        {
            j++;
            j=j%2;
            switch(j)
            {
                 case 0: led1=1; break;//关小灯
                 case 1: led1=0; break;//开小灯
                 default:  break;
            }
        }
        while(!key2);
        }
    }
}
void delay_ms(uint z)  //延时子程序
{  
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

温馨提示:内容为网友见解,仅供参考
无其他回答

单片机C语言按键开关程序
\/\/关小灯 case 1: led1=0; break;\/\/开小灯 default: break; } } while(!key2);

51单片机如何用一个按键控制一段程序的运行与停止
首先,你需要为你的项目创建一个新的文件,这是基础步骤,它将承载你的代码逻辑(1、在51单片机项目中,新建一个文件用于存放程序代码。)。接着,配置你的按键和LED。假设你选择的按键S1连接到P3的第2引脚,当按键按下时,可以通过编程使其对应P1的第5引脚点亮LED(2、按键S1的输入设置为P3^2,LED...

单片机用C语言编程,有两个按钮开关,控制八个LED灯,要求实现两种不同的...
给你个没有按键的,按键程序自己加上就行了 include <reg51.h> void main(){ unsigned int i = 0; \/\/定义循环变量i,用于软件延时 unsigned char cnt = 0; \/\/定义计数变量cnt,用于移位控制 while (1) \/\/主循环,程序无限循环执行该循环体语句 { P0 = ~(0x01 << cnt); \/\/...

c55单片机中,独立按键用C语言编程,
在c55单片机中,独立按键的C语言编程需要考虑去抖动的问题。下面是一个简单的去抖动函数示例:void delay(int t) \/\/延迟 { int i;while(t--)for(i=0;i<125;i++);} void key() \/\/k1要接哪个引脚记得在开头定义一下 { if(k1==0)\/\/按下按键 { delay(5); \/\/去抖 if(k1==0)\/\/...

单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED...
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include<reg52.h> \/\/定义单片机的头文件sbit led=P2^0; \/\/定义单片机的管脚,void main(void) \/\/主函数{ while(1) \/\/无限循环 {led=0x1f; \/\/点亮前面三个灯。这里...

求一单片机C语言程序:两个按键控制两个LED KEY1按一下LED1亮 再按一...
sbit led2 = P1^3;void Delay(unsigned int x){ unsigned int i, j;for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);} \/\/KEY1按一下LED1亮 再按一下LED1灭 \/\/KEY2按下LED2亮 LED1灭 main(){ while(1) { if (!key2) { led1 = 1; led2 = 0;} else ...

求一单片机c语言程序:两个按键控制两个led,按键按住不放led闪烁,松手...
一个按键时程序如下:while(1){ if(key==0)\/\/按键按下 { delayms(20);\/\/延时消抖 if(key==0)\/\/再次判断按键是否按下 { while(key==0)\/\/按键没有抬起 { led=!led; delayms(200);}\/\/LED闪烁 } } else led=0;}

在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按...
sbit key = P1^0;\/\/按键 void delay(unsigned int time){ unsigned int i,j;for(i=0; i<time; i++)for(j=0; j<1000; j++){;} } void mian(){ unsigned int temp =0x00;while(1){ if(key == 0){ delay(20);\/\/适当延时,消除按键抖动,自己看实际情况修改时间 if(key ==...

51单片机如何用一个按键控制一段程序的运行与停止
1、创建项目文件。2、按键:S1=P3^2,点亮: led=P1^5。3、创建C语言主函数。4、创建循环效果,检测效果。while(1) {}。5、选择输出的效果。6、当按下一个按键时,关闭灯,整个程序运行,再按一次,程序停止。

c语言单片机密码锁控制程序,用4个按键输入状态分别代表4位二进制数...
用51单片机,假设p1·0至p1·3接4个开关,P2·0接开锁按键S1 While(s1!=0);\/\/等待按开锁按钮 delayms(10);\/\/延时 While(s1==0);\/\/等待按键抬起 mima=0x0F&P1;\/\/读取P1低4位 if(mima==12)lock=1;\/\/如果与设定密码相等开锁 else Fmq=1;\/\/否则,报警 ...

相似回答