导航:首页 > 操作系统 > 单片机两个开关控制一个灯闪烁

单片机两个开关控制一个灯闪烁

发布时间:2025-03-31 15:52:32

❶ 51单片机的按键控制小灯亮灭的问题(程序类型:c语言)怎么解决

#include
#define uint unsigned int
sbit LED = P1^0;
sbit KEY1 = P1^2;
void delay(uint);
void main(void)
{
LED = 1; //初始化LED熄灭
KEY1 = 1; //赋值KEY1高电平
while(1)
{
if(!KEY1) //检测到按键按下
{
LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不
进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循
环,LED取反得到LED = 0,灯亮。*/
delay(500); /*此处延迟,保证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/
}
}

}
void delay(uint z) //延时函数
{
uint x, y;
for(x=85; x>0; x--)
for(y=z; y>0; y--);
}

可下载到单片机验证。

❷ 51单片机,用两个按键分别控制两个led,一个亮/灭,另一个闪烁/灭,为什么我按下了第二个灯不闪呢

你的led1=~led1;这个语句没有循环,所以只会反转一次。要么加循环,要么再写一个闪烁函数。

voidled_filcker(usignedcharx)

{

while(x)

{

led1=~led1;

x--:

}

}

如果你是想,按一下,松开也会闪烁,再按一下熄灭。你得定义一个变量来表示按键的按下。

#include<reg52.h>

#define uchar unsigned char

bit stop=1;

sbit k5=P1^4;

void delay(uchar xms)

{

while(xms--);

}

void main()

{

if(k5==0)

{

delay(1000);

if(k5==0)

{

while(k5==0)

{

if(stop)

<<<<<<<<<<<<<<<此处执行你的语句

else

stop=~stop:

}

}

}
}


❸ 求两个独立开关控制点亮一个led灯的原理图

1. 双控开关基础电路图当K1扳到1位置的时候,k2扳到3位置,电路接通,电灯亮,此时,再扳动任何一个开关,都能使电灯熄灭。这属于两地开关控制

❹ c51单片机:两个独立按键控制一个led,k1按下松开led闪烁,k2按下松开led灭


#include"reg52.h"
typedefunsignedintu16;
typedefunsignedcharu8;
sbitled=P2^0;//把所要控制的led灯定义为p2.0这个口
sbitk1=P2^1;
sbitk2=P2^2;

voiddelay(u16i)
{
while(i--);
}//一个延时程序
voidmain()
{
if(k1==1)
while(1)
{
led=1;
delay(50000);//大约延时450ms
led=0;
if(k2==1)
break;
}
led=0;
}

思路很简单,就是用检测的方法去扫描相应的按键是否被触发,然后执行相应的子程序。

阅读全文

与单片机两个开关控制一个灯闪烁相关的资料

热点内容
为什么要编译源代码 浏览:819
输入法freetype交叉编译 浏览:436
电阻单片机代号 浏览:469
来画app怎么添加对话框 浏览:318
python序列化分布式 浏览:107
域名服务器是什么形式 浏览:681
rsa加密解密速度快 浏览:924
mac电脑如何单片机开发 浏览:547
纪念日app怎么用小插件 浏览:331
如何更改安卓手机所在地区 浏览:217
程序员负债120万 浏览:80
阶层pdf 浏览:380
linuxgit安装配置 浏览:319
用源码搭建app要改什么 浏览:42
密码学教程pdf 浏览:3
亚马逊做的加密货币 浏览:81
怎么搭建云播服务器 浏览:867
网站客服机器人源码 浏览:317
2021程序员的出路 浏览:547
发行与承销pdf 浏览:945