标题: 单片机按键程序的问题,求助大佬解决 [打印本页]

作者: 黄廣廣    时间: 2022-9-3 21:15
标题: 单片机按键程序的问题,求助大佬解决
怎么把下面两条程序共用一个按键,js()是让灯缓慢亮起,td()是让灯缓慢熄灭
现在是用两个按钮控制,按一个亮起,按另一个熄灭
怎么把它们归在一个0x45按键里,按一下亮,再按一下灭。
本人小白,刚学单片机,见谅。

IMG_20220903_210252__01.jpg (1.99 MB, 下载次数: 84)

IMG_20220903_210252__01.jpg

作者: censv    时间: 2022-9-4 11:00
记录当前灯的状态,然后使用逻辑非
作者: 黄廣廣    时间: 2022-9-4 11:04
censv 发表于 2022-9-4 11:00
记录当前灯的状态,然后使用逻辑非

是if(led==0)这样吗
作者: censv    时间: 2022-9-4 11:18
这是一部分,即按键后先判断灯状态执行开启或熄灭,然后控制灯状态的改变,即 ledStatus = !ledStatus;
作者: 黄廣廣    时间: 2022-9-5 00:40
censv 发表于 2022-9-4 11:18
这是一部分,即按键后先判断灯状态执行开启或熄灭,然后控制灯状态的改变,即 ledStatus = !ledStatus;

不是很懂,可以写个详细的程序参考一下吗
作者: cdiyy    时间: 2022-9-5 09:54
switch(IRcord[2])
作者: cdiyy    时间: 2022-9-5 09:57
switch(IRcord[2]){case 0x45:led_js++;if(led_js >= 3){led_js = 0;}else if(led_js==2){js();}else if (led_js ==1){td();}}
作者: 188610329    时间: 2022-9-5 13:24
声明一个  全局标志 比如: bit My_flag;

然后:
case 0x45:
if(My_flag)
{
   js();
   My_flag = 0;
}
else
{
   jd();
   My_flag = 1;
}
break;
作者: haiyang201    时间: 2022-9-12 16:08
弄一个标志位,按一下得1,在按一下得0,循环记录,让后根据标志来使LED等亮灭




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1