51单片机,C语言编程请教
如图C语言。开机后。第一次、SW1按住时D1亮,松开时D1灭(如第一次按的不是SW1,是SW2、3、4的话,D5常亮);第二次、SW2按住时D2亮,松开时D2灭(如第二次...
如图 C语言。开机后。 第一次、SW1 按住时 D1 亮,松开时 D1 灭(如第一次按的不是 SW1,是SW2、3、4的话,D5 常亮); 第二次、SW2 按住时 D2 亮,松开时 D2 灭(如第二次按的不是 SW2,是SW1、3、4的话,D5 常亮); 第三次、SW3 按住时 D3 亮,松开时 D3 灭(如第三次按的不是 SW3,是SW1、2、4的话,D5 常亮); 第四次、SW4 按住时 D4 亮,松开时 D4 灭, 当 SW4 松开 D4 灭后 D6 常亮(如第四次按的不是 SW4,是SW1、2、3的话,D5 常亮)。谢谢
展开
3个回答
展开全部
仅此一句与端口无关的,它只是宏定义了一个变量chargecurrent并且确定它的值为0xec,貌似在下面的程序里要用它和P1.4口的采样值进行比对,进而做出判断和控制。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说一下思路:
sw1 = 1;
if(sw1==0 && sw2==1 && sw3==1 && sw4==1)
{
D1 =0 ; //亮
}
else if(sw1==1 && (sw2==0 || sw3==0 || sw4==0))
{
D5=0; //亮
}
else if(sw 1==1)
{
D1 =1; //灭
}
其它的依次类推...
sw1 = 1;
if(sw1==0 && sw2==1 && sw3==1 && sw4==1)
{
D1 =0 ; //亮
}
else if(sw1==1 && (sw2==0 || sw3==0 || sw4==0))
{
D5=0; //亮
}
else if(sw 1==1)
{
D1 =1; //灭
}
其它的依次类推...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一次、SW1 按住时 D1 亮,松开时 D1 灭
(如第一次按的不是 SW1,是SW2、3、4的话,D5 常亮);
第二次、SW2 按住时 D2 亮,松开时 D2 灭
(如第二次按的不是 SW2,是SW1、3、4的话,D5 常亮);
第三次、SW3 按住时 D3 亮,松开时 D3 灭
(如第三次按的不是 SW3,是SW1、2、4的话,D5 常亮);
第四次、SW4 按住时 D4 亮,松开时 D4 灭,当 SW4 松开 D4 灭后 D6 常亮
(如第四次按的不是 SW4,是SW1、2、3的话,D5 常亮)。
main()
{
D1 = D2 = D3 = D4 = D5 = D6 = 1; //关闭
while(1) {
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW1 == 0) { D1 = 0; while (SW1 == 0);} //D1亮、等待释放
else { D5 = 0; while((SW2 == 0)||(SW3 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW2 == 0) { D2 = 0; while (SW2 == 0);} //D2亮、等待释放
else { D5 = 0; while((SW1 == 0)||(SW3 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW3 == 0) { D3 = 0; while (SW3 == 0);} //D3亮、等待释放
else { D5 = 0; while((SW1 == 0)||(SW2 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW4 == 0) { D4 = 0; while (SW4 == 0); D6 = 0;} //D4亮、等待释放、D6亮
else { D5 = 0; while((SW1 == 0)||(SW2 == 0)||(SW3 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
}
}
(如第一次按的不是 SW1,是SW2、3、4的话,D5 常亮);
第二次、SW2 按住时 D2 亮,松开时 D2 灭
(如第二次按的不是 SW2,是SW1、3、4的话,D5 常亮);
第三次、SW3 按住时 D3 亮,松开时 D3 灭
(如第三次按的不是 SW3,是SW1、2、4的话,D5 常亮);
第四次、SW4 按住时 D4 亮,松开时 D4 灭,当 SW4 松开 D4 灭后 D6 常亮
(如第四次按的不是 SW4,是SW1、2、3的话,D5 常亮)。
main()
{
D1 = D2 = D3 = D4 = D5 = D6 = 1; //关闭
while(1) {
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW1 == 0) { D1 = 0; while (SW1 == 0);} //D1亮、等待释放
else { D5 = 0; while((SW2 == 0)||(SW3 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW2 == 0) { D2 = 0; while (SW2 == 0);} //D2亮、等待释放
else { D5 = 0; while((SW1 == 0)||(SW3 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW3 == 0) { D3 = 0; while (SW3 == 0);} //D3亮、等待释放
else { D5 = 0; while((SW1 == 0)||(SW2 == 0)||(SW4 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
D1 = D2 = D3 = D4 = 1; //关闭
while((SW1 == 1) && (SW2 == 1) && (SW3 == 1) && (SW4 == 1)); //等待按键
if (SW4 == 0) { D4 = 0; while (SW4 == 0); D6 = 0;} //D4亮、等待释放、D6亮
else { D5 = 0; while((SW1 == 0)||(SW2 == 0)||(SW3 == 0));}//D5亮、等待释放
//------------------------------------------------------------------------
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询