首页 > 电脑 > 51单片机用4个按钮分别控制四个LED的程序

51单片机用4个按钮分别控制四个LED的程序

电脑 2023-02-16

51单片机用4个按钮分别控制四个LED的程序

简单编了一下程序,,, #include sbit led1=P1^1; //led灯,按实际再改 sbit led2=P1^2; //led灯,按实际再改 sbit led3=P1^3; //led灯,按实际再改 sbit led4=P1^4; //led灯,按实际再改 sbit key1=P2^1; //按键,按实际再改 sbit key2=P2^2; //按键,按实际再改 sbit key3=P2^3; //按键,按实际再改 sbit key4=P2^4; //按键,按实际再改 void delay(unsigned int t) //延时函数 { while(--t)

求解读51单片机用四个按键独立控制四个led的c程序

#include
//k2~k4分别控制le1~le4
voiddelay(unsignedintx)//延时函数
{
while(x--);//延时数减一
}
voidkey_event(unsignedchard)//根据扫描到的键值,亮相应的LED
{
switch(d)
{
case14:P1^=(1<<0);break;//k1 键按下了
case13:P1^=(1<<1);break;//k2键按下了
case11:P1^=(1<<2);break;//k3键按下了
case7:P1^=(1<<3);break;//k4键按下了
//
default:P1^=(1<<7);break;//缺省值,都不亮
}
}

voidkey()//按键扫描
{
staticchari;
unsignedchara;
unsignedcharb;
a=P2;//0000aaaa,000076543210;
a>>=4;//a=a>>4;//移动4位,a取值
if(a!=15)//至少有个键按下
{
if(i==0)//0的时候,标示没有建按下
{
delay(1000);//延时1000次
b=P2;//把按键的口赋给变量b
b>>=4;//移动四位,b取值
if(a==b)//如果a和b相等
{
key_event(b);//这次按键有效
i=1;//1不允许其它键按下
}
}
}
else
{
i=0;//不是有效键按下,清0
}
}
voidmain()//主函数开始
{
while(1)//进入循环,检测按键按下情况
{
key();

}
}

51单片机 c语言 如何用4个按键控制4个流水灯

不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数就可以。比如使用独立键盘,if(P1.1==0) light_water(); 然后: void light_water() { num=1; for(a=0;a<8;a++) { P1.1=num<<1; delay(1000); //延时; keyboard();//执行时又不停扫描键盘函数; } } 这样就会有一个LED从右往左移动8次;那么当第一次流水未完时,又调用第二个流水函数light_water1就能中断当前执行的流水函数又去执行第二个流水灯函数了。 希望我的回答能帮助到你。

51单片机中用4个开关控制4个发光二极管的C语言程序设计

#include
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
sbitled1=P1^4;
sbitled2=P1^5;
sbitled3=P1^6;
sbitled4=P1^7;
main()
{
while(1)
{
led1=key1;
led2=key2;
led3=key3;
led4=key4;
}
}

51单片机点亮一个LED灯并且用4个独立按键控制亮的程度

用定时器T1溢出做pwm周期,在每次T1开始计数时触发输出,软件边增1计数边检查溢出标志。如果软件计数满则清输出,否则直到溢出清输出、清软件计数满值。改变软件计数满值就能改变亮度。【摘要】 51单片机点亮一个LED灯并且用4个独立按键控制亮的程度【提问】 用定时器T1溢出做pwm周期,在每次T1开始计数时触发输出,软件边增1计数边检查溢出标志。如果软件计数满则清输出,否则直到溢出清输出、清软件计数满值。改变软件计数满值就能改变亮度。【回答】

标签:单片机 信息技术 51单片机 按键 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18