各位大侠,来看看

[复制链接]
2693|5
 楼主| mochou 发表于 2010-11-27 18:57 | 显示全部楼层 |阅读模式
有一小问题请教下各位大侠,想在ST7920控制的lCD(带字库)的第一行做一向左循环显示10几个汉字,麻烦指点下,给个参考什么的,谢谢了。
mohanwei 发表于 2010-11-27 19:09 | 显示全部楼层
用一个数组存放汉字内码,定期对数组进行移位,然后刷新一下LCD
 楼主| mochou 发表于 2010-11-27 20:12 | 显示全部楼层
2# mohanwei
这位大侠,恕我愚钝,给段c语言参考程序,好吗?谢谢了。
mohanwei 发表于 2010-11-27 20:43 | 显示全部楼层
void main(void)
{
        int i,len;
        char ch;
        char str[]="asdfghjkl1234567890";
        init();
        .....
        while(1)
        {
                if(flag_1s)//假设1秒钟移位1次,在定时器里每隔1秒钟就把这个标记置1
                {
                        flag_1s=0;
                        len = strlen(str);
                        //字符串循环移位开始
                        ch=str[0];
                        for(i=0;i<len-1;i++)
                        {
                                str[i] = str[i+1];
                        }
                        str[i]=ch;
                        //字符串循环移位结束
                        disp(ROW0,str,16);//刷新显示
                }
        }
}
实际中往往是用指针的方式,而不是循环移位。因为指针只需要改1个变量就行了,效率要高得多。
mohanwei 发表于 2010-11-27 20:45 | 显示全部楼层
对于汉字或者混编的情况,还要改改代码才行
 楼主| mochou 发表于 2010-11-27 21:10 | 显示全部楼层
谢谢,参考了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

1446

帖子

8

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