单片机C语言编程问题

先看例子程序:whlie(A[2]==A)//此时A[2]是固定值A{if(A[2]==B)//此时A[2]是固定数B.....if(A[2]==C)//此时A[2]是固... 先看例子程序:
whlie(A[2]==A) //此时A[2]是固定值A
{
if(A[2]==B) //此时A[2]是固定数B
.....
if(A[2]==C) //此时A[2]是固定值C
......
if(A[2]==D) //此时A[2]是固定值D
.........
}
那么例子程序中A[2]有无问题?是否会引起程序错误运行?该怎么解决?
注:在整个程序中,数组A[2]是一定要用上的。
顺便问下,Keil 4中,STC89C52RC系列单片机该选哪个模板的芯片来编程?(最好附上清晰图,不要拿其他版本的Keil)
以上A[2]的值是会不断输入的,就像遥控器一样。
A[2]指数组A[N]中的第3个元素。

在以上程序中,向A[2]输入数据时,要不要添加某些语句?
展开
 我来答
匿名用户
推荐于2016-05-30
展开全部

这个程序有问题,这个while程序,只有在A[2]==A的时候,能进入到循环中去,但当A[2]==A了,那么A[2]==B,A[2]==C..,这些if函数就没有意义了

 

第二个问题,你可以选atmel相关系列的

追问
在A[2]等于A的情况下进入循环,。
在循环内部,A[2]的值在不断变化。(A[2]在不断接收并改变存储的数据)
就像电脑界面一样,与在那个界面里执行操作类似。
追答
那你最好引入一个标志位,比如Loop_f
程序改为
if(A[2]==A)Loop_f=1;
else Loop_f=0;
whlie(Loop_f) //此时A[2]是固定值A
{
if(A[2]==B) { //此时A[2]是固定数B
.....
Loop_f=0;//*****************如果你执行完后想退出循环,就把Loop_f=0;
}
if(A[2]==C) //此时A[2]是固定值C
......
if(A[2]==D) //此时A[2]是固定值D
.........
}

如果是遥控器的话,你可以用一个状态序列,来记录遥控器的操作,也就是把我上面的loop_f换成几个字节来表示,你有几级菜单,就做几级循环
做而论道
高能答主

2014-11-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
whlie(A[2]==A) //此时A[2]是固定值A
{

只有当A[2]等于A,才能进入此循环。
此后,如果A[2]永远等于A,下面的条件,就都不会满足。
如果A[2]变化了,下面的条件语句,才有意义。

if(A[2]==B) //此时A[2]是固定数B
.....
if(A[2]==C) //此时A[2]是固定值C
......
if(A[2]==D) //此时A[2]是固定值D
.........
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tony_sgt
2014-11-07 · TA获得超过8423个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1207万
展开全部
如果你的A[ ] 内的值不是固定的就可以,如果是固定的就没办法因为内容固定了,只能满足其中的一个条件

在Keil中没有STC的库,可以去STC原厂下载补丁文件,安装后就可以选用STC的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦舞湖畔
2014-11-07 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:109万
展开全部
whlie(A[2]==A)
A是数组, ‘A[2]==A'明显语法错误。
还有既然‘A[2]==A’才能执行while里的语句
那‘if(A[2]==B) 。。。’又有什么意义?

Keil 4中机型选择是有AT89C52的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式