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

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

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

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

阅读全文

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

热点内容
程序员摘录 浏览:414
秘密花园解压原理 浏览:951
编译链接框架 浏览:340
python多行图形注释 浏览:632
亳州前端程序员私活工作平台 浏览:839
回转式压缩机工作原理 浏览:811
wow最新的服务器地址 浏览:193
sonyprivate文件夹 浏览:707
最大功率跟踪算法 浏览:343
八路军命令 浏览:276
安卓手机如何安装BT种子 浏览:794
linux重启网卡命令行 浏览:930
ug数控编程是什么 浏览:500
文件夹备注标签在哪里 浏览:611
10匹的压缩机功率是多少 浏览:576
制作app和网站哪个更简单 浏览:726
tick命令 浏览:922
单片机系统开发的应用原理 浏览:807
怎么样使用crt将服务器的文件导出 浏览:735
编译原理相对地址 浏览:301