请教个51单片机程序问题

[复制链接]
2564|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 | 显示全部楼层
你确定程序没点问题么?
必有我师 发表于 2010-12-6 14:52 | 显示全部楼层
SP换一个标称吧。
Jerric 发表于 2010-12-6 15:17 | 显示全部楼层
太菜了,没看懂……帮你顶一下
liang7143 发表于 2010-12-6 15:32 | 显示全部楼层
在VC++ 6.0上测试正常
ayb_ice 发表于 2010-12-6 16:24 | 显示全部楼层
试试这个
sp = strstr(Temp,"ABC");
kkidr 发表于 2010-12-6 16:38 | 显示全部楼层
不错的**
372194117 发表于 2010-12-6 17:57 | 显示全部楼层
不错,看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

165

主题

1168

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部