#include<reg51h>
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit led1=P1^4;
sbit led2=P1^5;
bit flag=0;
main()
{
while(1)
{
if(flag==0 && key1==0)
{
led1=0;
while(key1==0);
}
if(key2==0)
{
led1=1;
led2=0;
while(key2==0);
flag=1;
}
if(key3==0)
{
led2=1;
flag=0;
while(key3==0);
}
}
}
keyflag应该是判断某个按键按了几次,不安的时候为0
if(KeyFlag == 0)
{
}
按一次时执行
else if(KeyFlag == 1)
{
if(BUTTON_add == 0 && KeyLock ==0)
{
}
if(BUTTON_reduce == 0 && KeyLock ==0)
{
}
按二次时执行
else if(KeyFlag == 2){
if(BUTTON_add == 0 && KeyLock ==0)
{
}
if(BUTTON_reduce == 0 && KeyLock ==0)
{
}
一楼正解,主要按键扩展标志是用来节省资源的,用最少的按键实现最多的功能!
#include<reg51h>
#define uchar unsigned char
uchar sec,min,num;
sbit led1=P1^0;
sbit led2=P1^1;
sbit key=P3^2;
bit flag;
void delay(uchar x)
{
uchar i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=20)
{
num=0;
sec++;
if(sec>59)
{
sec=0;
min++;
switch(min)
{
case 0:led1=0;break;
case 1:if(flag){led1=0;min=0;flag=0;}
break;
case 4:led1=1;led2=0;break;
case 8:led2=1;break;
default:break;
}
if(min>=20)min=0;
}
}
}
void ext0() interrupt 0
{
delay(30);
if(key==0)
{
while(!key);
flag=1;
sec=0;
min=0;
num=0;
led1=1;
led2=1;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
EX0=1;
IT0=1;
TR0=1;
led1=0;
led2=1;
flag=0;
while(1);
}
以上就是关于求51单片机c程序:用三个按键,kye1启动led1,key2启动led2 led1停止 在按key1不起作用 按key3,led2停止全部的内容,包括:求51单片机c程序:用三个按键,kye1启动led1,key2启动led2 led1停止 在按key1不起作用 按key3,led2停止、关于单片机温度控制系统C语言程序中的按键设置程序,请求详细的介绍下按键的输入过程。while(1) { if(KeyFl、求单片机C语言编程p1.0,p1.1分别控制led1,led2. p3.2控制按键开关,求详细C程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)