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 常亮)。谢谢 展开
 我来答
haiskyfly
2013-07-20 · 贡献了超过345个回答
知道答主
回答量:345
采纳率:0%
帮助的人:89.9万
展开全部
仅此一句与端口无关的,它只是宏定义了一个变量chargecurrent并且确定它的值为0xec,貌似在下面的程序里要用它和P1.4口的采样值进行比对,进而做出判断和控制。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一万光年MEGn0
2013-07-20 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1049万
展开全部
说一下思路:
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; //灭
}
其它的依次类推...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2013-07-21 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.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亮、等待释放
//------------------------------------------------------------------------
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式