请看一段单片机控制程序,关于轻触开关的(while语句)
while(1)语句只能用在主程序,而且只要用一次。如果子程序也用,必须有条件判断语句,跟一个return语句返回。
再说你的三个子程序,既然用for控制了循环次数了,为什么要用while(1)呢?而且明明知道是死循环还用?三个子程序都把那个while(1)删掉就行了!
while(!key1)一般是要放在if(!key1)的花括号内的,也就是:
if(!key1) //如果key1被按下
{
DelayMs(5); // 软件延时进行按键消抖
while(!key1); // 等待按键释放
fun(); // 要执行的函数
}
分析一下,单片机C语言和软件C,C++不是完全一样的,单片机C要结合硬件电路看的。
你的叙述不太清晰,这里我把软硬件分开表述:用button1表示硬件按键,button1一端接单片机IO,另一端接地,button1所连接到的IO被定义为key1。button1不工作时IO为高电平,一旦button1被按下,对应的IO就被拉低,所以key1取非代表的是按键被按下。当按键松开了key1就恢复高电平了,所以不会一直执行while(!key1),除非你一直按着它。就这么着了。
这句话是对的。
无论按键如何操作,灯始终处于点亮状态。这句话有问题。
你的按键能有什么操作,不过就是按下去吗,松开吗,还有吗?
按下去,K=0,执行led=0; 灯亮啊。
你想要灯灭吗?那得有一行是:led=1; 那灯才能灭的,可程序中并没有这一行啊。
所以,灯就一直亮的,只要按过一次,led=0; 以后将永远为0,灯永远亮的。
你提问的标题有(while语句),可程序中并没有用的,这标题不符啊。
求单片机点动开关控制LED灯的程序
sbit led =P1.1;if(key==1)delay10ms();{if(keyi==1){ a++;while(!key);}} if(a%3==0){ led =~led ;}
典型的51单片机的复位电路中,电容和轻触开关的连接关系是?
电阻器的作用不是限制电流,而是控制复位时间。电容器充电时间与 rc 值成正比。复位电路中的电容器只有在电源打开时才能工作。电流在充电时流过电容器,所以第一次充电电平很高,在充电结束时没有电流,然后第一次终端变成低电平。晶体振荡器电路在单片机中有相应的电路,电路中一定会有电源。使复位电平的...
轻触开关应该按下时通电,松开后断电的,电磁炉的开关为什么松开后怎么还 ...
按键知道单片机,让单片机使一些电路通电。
2023年最新单片机毕业设计选题参考
智能窗帘控制系统,轻触开启舒适。职场清洁机器人,效率与环保并重。开路清障车控制系统,提高道路安全。电梯控制系统设计,提升运行效率。车辆光电传感管理系统,提升通行安全。仓库管理系统设计,优化存储与管理。物流分拣控制系统,提升分拣效率。智能学习桌,个性化学习体验。可移动抓取机械手,科技改变生活。驿...
请问单项可控硅如何制作开关电路
给你这个开关灯并且亮暗可调电路。你把那个双向可控硅换成单相的即可
单片机 外部中断(下降沿触发)从掉电唤醒使用轻触按钮效果非常不灵敏,并...
你并电容是什么意思,并电容,电容增大,反而更加延迟;上啦干嘛?(只要不是老式单片机)你把引脚设置为中断功能,就已经默认为输入,是漏极开路,你上啦是什么意思?对于这种情况,终端是不容 怀疑有问题的。问题在于你输入芯片钱的电压变化过程;...
让单片机LED灯按一下键保持一种状态
include<reg51.h> sbit key=P1^0; \/\/P1.0接按键,P1.1接LED灯高电瓶电亮,按键为低电瓶有效 sbit LED=P1^1;void delay(unsigned long w){ while(w--);} void main(){ while(1){ while(key==0){ if(LED&(1<<1)) LED=0;else LED=1;delay(20); \/\/去抖动 } } }...
单片机引脚检测按键的问题?
保护作用,限流电阻,防止IO设置为0,按键按下大电流灌入IO口造成IO损坏,还有在外部特殊情况下,上电到程序IO初始化这段时间的IO的不确定性,如这个时候外部因素造成按键时被按下的,也会有大电流灌入。
...轻触按键开关IC,工业级一键开关机芯片,单片机方案开发-丽晶微电子...
创新设计:丽晶微电子9C51-528E单按键ON\/OFF电子开关<\/ 丽晶微电子推出的这款超低功耗开关芯片,专为工业级应用设计,提供了一键开关机的便捷功能。其独特的单按键控制设计,实现了简单易用的电平转换,上电时OUT1输出高电平,OUT2输出低电平,只需轻轻一触,即可完成状态切换。卓越性能与极限参数<\/ ...
用555定时器设计一个周期T=1S的矩形脉冲信号源。要求:占空比为2\/3,电 ...
这个设计是比较简单的,在数电模电的课本里都有专门讲555定时器的,555定时器的各种使用方法也都有介绍。下面我简单讲一下设计矩形脉产生电路(只是理论设计不考虑实际情况),由:T=T1+T2=0.7(R1+2R2)C=1S;T1\/(T1+T2)=2\/3这两个公式,可解得R1+R2=952KΩ,R2=476KΩ,按照这个数值去...