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

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

发布时间: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;
}

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

阅读全文

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

热点内容
服务器托管到云端是什么意思 浏览:833
app保存草稿怎么用 浏览:808
安卓如何进入proumb 浏览:143
主机虚拟云服务器 浏览:619
删除分区加密的空间会不会恢复 浏览:705
京东app客户上门怎么看搜索量 浏览:739
怎么在农行app购买黄金 浏览:45
c型开发板和单片机 浏览:146
虚拟机建立用户的模板文件夹 浏览:904
无锡代码编程培训班 浏览:631
eps图形数据加密 浏览:933
没有滴滴app怎么打车 浏览:101
大数乘法java 浏览:1002
如何登录服务器看源码 浏览:526
如何做服务器端 浏览:157
注册服务器地址指什么 浏览:435
文本命令行 浏览:98
扑克牌睡眠解压 浏览:197
rc4算法流程图 浏览:163
胡萝卜解压方法 浏览:40