急求单片机高手指点........如何通过串口接收一组字符串,然后判断这组字符串,来调用相应的函数啊???

voidUART()interrupt4{recive[i]=SBUF;i++;delay(10);//P0=a;RI=0;flag=1;//function();swi... void UART() interrupt 4
{

recive[i]=SBUF;
i++;
delay(10);
// P0=a;
RI=0;
flag=1;
// function();
switch(recive[i])
{
case 'a':
P2=0x01;
P1=0x02;
P0=0x02;
break;
case 'b':
P2=0x01;
P1=0x02;
P0=0x00;
break;
}

}
/*
void function()
{
if(a=="00000001")
{ //一号正转
P2=0x01;
P1=0x02;
P0=0x02;
}
if(a=="00000000")
{
P2=0x01;
P1=0x02;
P0=0x00;
}
if(a==3)
P0=0x03;
if(a==4)
{
P2=0x02;
P1=0x03;
P0=0x06;
}*/
展开
 我来答
做而论道
高能答主

2011-09-29 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
下面提供一个思路,供参考:
void UART() interrupt 4
{
RI = 0;
recive[i] = SBUF;
i++; // i 加到一定数值,就应该从 0 开始了。

//下面,根据字符串的内容,分别进行处理:

if(recive[0] == '0' && recive[1] == '0' && recive[2] == '1') {
P2=0x01;
P1=0x02;
P0=0x02;
}

if(recive[0] == '0' && recive[1] == '0' && recive[2] == '0') {
P2=0x01;
P1=0x02;
P0=0x00;
}
}

判断字符串的首、尾,可以参考我以前的回答:
http://zhidao.baidu.com/question/323067769.html
追问
能不能加个QQ好友啊?帮个忙吧。谢谢。。。。
yyh001123
2011-09-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:8341
采纳率:66%
帮助的人:6334万
展开全部
程序不是已经写出来了吗?
更多追问追答
追问
但是程序无法运行,没调用函数。。
追答
直接判断receive[i]数组中的内容
然后分析,如果符合调用就可以了。
上面不是有输出了吗?在输出那里增加调用函数好了。
如果看不明白,改简单些
if(receive[i]==****)
{
调用函数
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-29
展开全部
建议 去 我的领地 5d6d 的 proteus 论坛看看

那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词
追问
你能不能说说该怎么实现啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式