单片机C语言编程——关于按键改变循环流水灯流向(切换运行状态)

2025-05-29 23:15:23
推荐回答(4个)
回答1:

void smg1()
{
wela=1;
P0=0xfe;
//这中间如果没延时,则后面的状态会没等你看清楚就被后面的状态覆盖了
wela=0;

dula=1;
P0=0x77;
//这中间如果没延时,则后面的状态会没等你看清楚就被后面的状态覆盖了
dula=0;

}

smg2也是相同的道理;

void key()
{
if(s2==0)
delay(10);
if(s2==0)
{
a=~a; //如果a定义为int型,当它为1时,对它取反并不是0,除非定义为位数据.
while(!s2);
}
}

回答2:

我想说的是,你的那一个功能没实现?
这样,你把你以前程序中的while(!s2);删了,再看看

回答3:

q我
uchar num;改成char num,试试
同时key 我有修改
我试过可以了
void key()
{
if(s2==0)
delay(10);
if(s2==0)
{
if (a)
a=0;
else
a=1;
while(!s2);
}
}

回答4:

1. 把a定位为bit类型,a=~a,改为a = !a;if(a=1)改为if(a),if(a==0)改为if(!a);不知道你的编译器,keil4里,不需修改a的类型,只需将a=~a,改为a = !a即可。
2. 把num定义为 signed char;或者把if(num<0)改为if(num==255),不要同时把num改为signed char又把if(num<0)改为if(num==255),只选一个。