**
51单片机按键灯实验
**
要完成的效果是第一次按键灯快闪3次,第二次按键灯慢闪3次
定义了flag变量来标志第一二次按键,这里先给flag赋值1,用flag=-flag来表示一二次按键的变化
结果可行。然而用flag=~flag却实现不了,按一次直接慢闪3次,按第二下没有反应,再按一下又慢闪,求解
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit in=P3^0;
sbit out=P1^0;
void delayms(uint j)
{
uint i;
for(;j>0;j--)
{
i=250;
while(--i){}
i=249;
while(--i){}
}
}
void main(void) {
uint k=0;
uint flag=1;
in=1;
out=1;
while(1) {
if(in==0){ //按键按下
uint k=0;
flag=-flag;
if(flag==-1){
for(;k<3;k++){
out=0;
delayms(100);
out=1;
delayms(100);}
}else{
for(k;k<3;k++){