搜索
bottom↓
回复: 6

51单片机求助

[复制链接]

出0入0汤圆

发表于 2012-4-17 21:20:27 | 显示全部楼层 |阅读模式
字符串的结束标志位'\0',
我以'\0'判断字符串的结束,
无法正确判断,代码如下:
uchar code tempstr[]="You are welcome.";

void display()
{
        for(i=0;;i++)
        {
                 if(tempstr[i]!='\0')
                 {
                        SBUF=tempstr[i];
                        write_com(0x80+i);
                        delay(2);
                        write_date(tempstr[i]);
                }
                       
        }
}

而如下代码测试没有问题,

void display()
{
        for(i=0;i<16;i++)
        {

                        SBUF=tempstr[i];
                        write_com(0x80+i);
                        delay(2);
                        write_date(tempstr[i]);
                       
        }
}

请各位高手帮忙看看。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入17汤圆

发表于 2012-4-17 21:27:15 | 显示全部楼层
for(i=0;;i++)这里没有上限,程序会一直执行下去可能已经跑飞了。

出0入0汤圆

发表于 2012-4-17 21:30:43 | 显示全部楼层
你改成:
        for(i=0;;i++)
        {
                 if(tempstr[i]!='\0')
                 {
                        SBUF=tempstr[i];
                        write_com(0x80+i);
                        delay(2);
                        write_date(tempstr[i]);
                }
                else
                  break;
                        
        }
可以运行正确,不过这么做程序结构还是不太好

出0入0汤圆

发表于 2012-4-17 21:33:42 来自手机 | 显示全部楼层
程序要是沒死的话,它一直在发送着非零的字符。

出0入0汤圆

 楼主| 发表于 2012-4-17 22:25:22 | 显示全部楼层
两位:
一语点醒梦中人啊,代码改动如下:
void display()
{
        i=0;
        while(tempstr[i]!='\0')
        {
                SBUF=tempstr[i];
                write_com(0x80+i);
                delay(2);
                write_date(tempstr[i]);
                i++;
        }                       
}
调试成功!万分谢谢!

出0入0汤圆

发表于 2012-4-20 16:39:56 | 显示全部楼层
ksks,改成了就是爽是吧?

出0入0汤圆

 楼主| 发表于 2012-4-30 08:31:46 | 显示全部楼层
这几天忙,呵呵。
改完了很爽。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表