打印

请教个51单片机程序问题

[复制链接]
1952|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
清风致影|  楼主 | 2010-11-22 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 清风致影 于 2010-11-22 19:39 编辑

以下是源程序:

uchar Temp[100]={"123456ABCdddWCT"};
uchar code ta[14][4] ={"ABC","BCC","UQC","WCD","WTO","CLL","OKL",};
mai()
{

uchar (*p)[4],*sp;

RS232_int();//串口初始化
p=ta;
sp = strstr(Temp,*p);
if(sp==NULL)
{
    SBUF='X';
    while(!TI);
    TI=0;//没找到字符串
}
else
{
    SBUF='Y';
    while(!TI);
    TI=0;////找到字符串}
}
}
strstr功能是从字符串Temp中寻找*p第一次出现的位置,并且返回指针给sp
但是单片机发出来的结果老是'X',不知道为什么,
如果在sp = strstr(Temp,*p);之后加个延时,单片机发出来的结果却是'Y'.请教大家这是什么原因?用的是s52单片机

相关帖子

沙发
jt4117| | 2010-11-22 21:12 | 只看该作者
这个你自己用软件仿真一下不就知道了吗!

使用特权

评论回复
板凳
清风致影|  楼主 | 2010-11-23 08:39 | 只看该作者
我也用软件仿真过了,软件仿真是输出Y的

使用特权

评论回复
地板
liuxingyude| | 2010-11-26 21:46 | 只看该作者
你确定程序没点问题么?

使用特权

评论回复
5
必有我师| | 2010-12-6 14:52 | 只看该作者
SP换一个标称吧。

使用特权

评论回复
6
Jerric| | 2010-12-6 15:17 | 只看该作者
太菜了,没看懂……帮你顶一下

使用特权

评论回复
7
liang7143| | 2010-12-6 15:32 | 只看该作者
在VC++ 6.0上测试正常

使用特权

评论回复
8
ayb_ice| | 2010-12-6 16:24 | 只看该作者
试试这个
sp = strstr(Temp,"ABC");

使用特权

评论回复
9
kkidr| | 2010-12-6 16:38 | 只看该作者
不错的**

使用特权

评论回复
10
372194117| | 2010-12-6 17:57 | 只看该作者
不错,看不懂

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我在背后默默的看着你 默默的看着你渐去渐远渐无影

164

主题

1166

帖子

2

粉丝