诺基亚5510LCD汉字四行显示(另一种思路)MSP430
最近在搞MSP430驱动诺基亚5510LCD,但是通用的字模软件只能取12*16的汉字字模,5510LCD是84*48的,也就是说最多只能显示三行汉字,多余的空间浪费了上网搜了下解决方法,看到了本论坛的原帖,见:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4022179&bbs_page_no=1&search_mode=4&search_text=wnstony&bbs_id=9999
感觉这种方法不够简洁,将简单的问题复杂化了,于是就自己摸索出一种方法,见下图
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_625936XNLK2R.gif
(原文件名:图示.gif)
简单的解析下:
现在有A B C D四行汉字,本例每行一个字,多个字也一样
通过一定的算法(关键是移位)将A B C D的字模转化成CN0 CN1 CN2 三个字模,这样就去掉了ABCD字模中的空格,节省了空间
再按常规方法显示CN0 CN1 CN2,实际显示就是四行字了,比较简洁吧,转换的过程与具体的显示细节无关,更与硬件平台无关。
核心代码如下:
char chinese[];
char chinese1[];
char chinese2[];
char a[];
char b[];
char c[];
char d[];
void transform(void)
{
char i,n; //n为每行字数
for(n=0;n<7;n++)
{
for(i=0;i<=23;i++)
if(i<=11)
chinese=a;
else
chinese=(b<<4)+a;
}
LCD_write_chinese_string(0,0,12,7,0,0);
for(n=0;n<7;n++)
{
for(i=0;i<=23;i++)
if(i<=11)
chinese1=(b>>4)+(b<<4);
else
chinese1=c;
}
LCD_write_chinese_string1(0,2,12,7,0,0);
for(n=0;n<7;n++)
{
for(i=0;i<=23;i++)
if(i<=11)
chinese2=c+(d<<4);
else
chinese2=(d>>4)+(d<<4);
}
LCD_write_chinese_string2(0,4,12,7,0,0);
}
代码需要自己画图列下算法,这样更明了
演示效果如下:
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_625937UPODPY.jpg
(原文件名:图像0066.jpg)
http://cache.amobbs.com/bbs_upload782111/files_37/ourdev_625938TURVFK.jpg
(原文件名:图像0067.jpg)
再附上整个程序的源代码(MCU:MSP430F2274)
点击此处下载 ourdev_625933DKPMH8.rar(文件大小:254K) (原文件名:5110LCD - 2274 - 四行.rar)
第一次发帖,望大家指教
******************************************************************************************************************
附注:本人学化学专业的,找的工作也是化学相关的,但是一直对电子学兴趣浓厚,平时也爱搞个DIY
怎么平衡这两方面?
****************************************************************************************************************** mark 5110吧?NOKIA还有分辨率大点的屏,不用这么折腾。 有12X12的汉字库的。Nokia3210和显示的汉字就是4行 回复【3楼】gdrc古道热肠
-----------------------------------------------------------------------
12X16字库与12X12字库没有本质上的差别,因为下面四行永远是空白
关键是 LCD是以8bit 为一个单位写入数据,单独12位是不实际的 回复【2楼】Rapido
-----------------------------------------------------------------------
有不少东西都是折腾出来的,不是吗? 请问楼主是怎么接线的啊?电源是板上的3.3V还是5V 回复【6楼】yuan90826
-----------------------------------------------------------------------
3.3V 很不错,先收藏了!
顶楼主 其实完全可以去学电吗 如果你喜欢的话 呵呵 支持楼主这种用专业精神对待业余爱好的精神 回复【9楼】afei8856
-----------------------------------------------------------------------
呵呵,没办法,快毕业了,从头来怕是不现实了
多谢 去搞电化学就平衡了<img src=./emotion/em035.gif 你这样的单片机应该学的差不多了
可以多看点模拟电路的东西然后就可以出去找工作了
现在大学出来的电子专业的也没几个懂单片机的了 我们班75个人熟悉单片机的不超过零头 回复【11楼】wangshaosh
-----------------------------------------------------------------------
电化学是我们的一门课,跟电子学不是一个概念 回复【12楼】wangshaosh
-----------------------------------------------------------------------
模拟电路也学过,一般般了 最近也在搞,楼主的思路很好啊。 mark~~~ mark 我就有12*12汉字显示的代码啊,像msp430这样ram大的可以给液晶开一块内存空间啊,这样可以方便显示~ make 就是下载有点小问题,费好大劲才下下来压缩包不给力,损坏了!悲催啊! 本帖最后由 xunke 于 2013-10-2 09:21 编辑
5510屏与3310屏有什么区别?
5510屏的资料吗?不要背灯 屏功耗多大? Rapido 发表于 2011-3-27 21:32 static/image/common/back.gif
5110吧?NOKIA还有分辨率大点的屏,不用这么折腾。
5510 LCD的功耗多大?有资料吗?在那里买的? xunke 发表于 2013-10-2 09:32 static/image/common/back.gif
5510 LCD的功耗多大?有资料吗?在那里买的?
别告诉我你没听说过淘宝。。。 cc1989summer 发表于 2013-10-2 22:37 static/image/common/back.gif
别告诉我你没听说过淘宝。。。
我要求低功耗的,需先屏的参数,但淘宝的卖家一般只管卖的、不管或不懂技术方面的。 yuan90826 发表于 2011-4-21 20:15 static/image/common/back.gif
请问楼主是怎么接线的啊?电源是板上的3.3V还是5V
3V、5V都可以 淘宝有没有资料的屏,超便宜,只需自己找到驱动芯片资料就行。而且很大,不用这么纠结
页:
[1]