如何用C语言写交替程序(按一个按钮等亮再按灯灭)

这种控制用PLC很简单,在C语言里有没有类似PLC的语句?越简单越好

你是在为单片机编程吗??
比如这样:
bit a=0; //标志位——用于存放灯状态的位,当a=1是,灯是一个状态,比如亮;当a=0 // 时,灯是另一个状态,比如灭。
unsigned char b; //检测按键是否按下的变量,在单片机中可能就是一个I/O口的一位,比如P1.1
if(b) //检查按键是否按下,这里b不等于0就视为有按键按下,b等于0为无按键按下。
{
a=~a; //每按一次按键,a就会自己求反一次,这样它的状态就在亮与灭之间交替变换。
}
当然,你还可以在这个程序加上去除抖动的程序。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-21
设定一个值,判断按钮点击的次数是奇数还是偶数,奇数把设定值为1,偶数设定值为0,根据这个值判断,就可以了啊

伤不起啊,我的答案先出来,居然没被推荐,那大哥还想是复制我的吧???居然推荐了,看看答案时间再推荐好吧? 有没搞错。伤不起,伤不起啊....

如何用C语言写交替程序(按一个按钮等亮再按灯灭)
a=~a; \/\/每按一次按键,a就会自己求反一次,这样它的状态就在亮与灭之间交替变换。} 当然,你还可以在这个程序加上去除抖动的程序。

...LED灯灭。再按一下,LED亮,用C语言编程该怎么写
{ LED1_01 = 1; \/\/打开LED灯点亮 while(1){ if(KEY0_01 == 0) \/\/检测按键是否按下 { Delay_1ms(10); \/\/延时去抖动 if(KEY0_01 == 0) \/\/确定按键按下 { LED1_01 = ~ LED1_01; \/\/取反LED灯 [ 亮 . 灭 ]} while(KEY0_01 == 0); \/\/检测松手 } ...

51单片机怎么用c语言写一个按钮控制一个led的闪烁,按一下开始闪烁,再按...
P01=1;\/\/行线给1 if(P02)\/\/如果P02也是1则说明接通 { delay(10);\/\/去抖动10MS if(P02)\/\/再次确定按键按下 { while(P02){flash=flash}\/\/按住按键的动作 flash=~flash;\/\/按键按下后执行动作 } } } void ledflash(){ if(flash){ led=1;\/\/点亮 delay(100);\/\/延时100MS led=0;\/\/...

C语言如何编程让一个按键轮流点灯。按一下1灯亮,在按下1灯灭2灯亮,在...
key() \/\/按键判断程序 { if(BY1==0) \/\/判断是否按下键盘,当单片机上电时所有IO口为\/\/高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口\/\/直接接地,此时检测P3.4肯定为低电平。{ delay10ms(); \/\/延时,软件去干扰 if(BY1==0) \/\/确认按键按下 { count++; ...

求一单片机C语言程序:两个按键控制两个LED KEY1按一下LED1亮 再按一...
\/\/KEY1按一下LED1亮 再按一下LED1灭 \/\/KEY2按下LED2亮 LED1灭 main(){ while(1) { if (!key2) { led1 = 1; led2 = 0;} else { if(!key1) { Delay(10);if(!key1) { while(!key1);led1 = ~led1;} } } } } \/\/--- include<reg51.h> sbit key1 = P1^...

汇编语言或C语言编写一个控制灯闪烁的程序
我写的这个程序应该可以,按一下灯亮,再按一下灯灭 include "REG52.H"sbit LED1_01 = P1^1; \/\/LED灯 sbit KEY0_01 = P1^2; \/\/按键 void Delay_1ms(unsigned int Time){ unsigned int x, y;for(x = Time; x > 0; x--)for(y = 120; y > 0; y--);} int ma...

...当按钮按下的时候灯亮,按钮松开的时候灯灭。用C语言编写...
以51为例子,假如低电平灯亮 include<reg51.h> sbit K1=P1^0 \/\/P^0接开关 sbit LED=P1^1;\/\/接LED void main(void){ P1=oxff;\/\/初始化P1 while(1){ LED=~K1;} }

单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED...
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。2、编写相应的代码:#include<reg52.h> \/\/定义单片机的头文件sbit led=P2^0; \/\/定义单片机的管脚,void main(void) \/\/主函数{ while(1) \/\/无限循环 {led=0x1f; \/\/点亮前面三个灯。这里...

AVR 单片机C语言怎样实现按键按一下led灯闪烁 再按一下led灯灭如此反复...
用状态机写:函数1:LED闪烁 main(){ while(1){ if(KEY)State = ~State;if(State)LED闪烁 else LED熄灭 } }

流水灯先依次点亮然后同时闪,同时灭的c语言程序
void delay(uint x){ uint i,j;for(i=0;i<x;i++)for(j=0;j<120;j++);} void main(){ uchar temp;while(1){ temp=0xfe;for(num=0;num<7;num++){ P1=temp;temp=temp<<1;delay(500); \/\/0.5s } for(num=0;num<8;num++){ P1=temp;temp=temp>>1|0x80;delay(500)...

相似回答