打印

【求助】用pSoc做TS1620 LCD驱动问题-有代码

[复制链接]
2791|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
salore|  楼主 | 2009-11-29 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 salore 于 2009-11-29 20:45 编辑

这是我用pSoc做的LCD显示驱动的测试例子(虽然pSoc提供了LCD模块显示的底层库函数,但为了从原理上弄懂LCD显示,我还是没有用库函数),出现了一些我搞不懂的问题,望高手指点!附件中提供了工程代码,接口定义在程序头文件中有说明。

测试条件:pSoc cy8c24794 start kit board, LCD为TS1620-1
经测试,出现以下问题:
1、字符显示函数LCD_DispChar(uchar row, uchar col, uchar uDispData):
   调用该函数,如LCD_DispChar(1,1,uDispData),本来意图是在LCD板的1行1列——LCD内部RAM数据寄存器地址是0x00,初始光标处在0x00——处显示uDispData指定的一个字符,测试结果却在1行2列处(0x01)显示,同时光标移向1行3列(0x02);同样测试以下代码:
   //注:LCD初始化设置为8位数据接口、2行显示、光标自动加、屏幕不移动、光标显示并闪烁
   LCD_WriteCmd(0x00 | 0x80); //设定LCD中的字符显示地址为0x00,即1行1列
   LCD_WriteData(0x54); //0x54为字符‘T’的LCD字型码
   LCD_WriteData(0x65); //0x65为字符‘e’的LCD字型码
   LCD_WriteData(0x73); //0x73为字符‘s’的LCD字型码
   LCD_WriteData(0x74); //0x74为字符‘t’的LCD字型码
运行结果显示T(1x2),e(1x4),s(1x6),t(1x8),即首字符在1行2列开始显示,各个字符间出现空格,本来期望显示的是连续的"Test"字符串。
2、LCD中的80字节RAM地址和屏幕显示的位置是什么关系?光标对应的RAM是如何确定的?如果在Display shift或cursor move情况下,这种(对应)关系会发生什么样的变化?
3、当LCD显示没有库函数可用的情况下,所有的显示/驱动函数都需要自己编写,那么使用LCD要注意哪些问题?

LcdTest.rar

261.6 KB

工程文档

沙发
午夜粪车| | 2009-11-30 19:15 | 只看该作者
这问题大的,呵呵

使用特权

评论回复
板凳
Apnote| | 2009-12-1 20:12 | 只看该作者
PSoC有LCD 模块现成的API,楼主自己弄就有的麻烦了。
我记得好久以前在CY网上看到过PSoC和HT1621 LCD的例子,你可以去CY网上搜搜。

使用特权

评论回复
地板
Apnote| | 2009-12-1 20:14 | 只看该作者
我看了一下,应该是这个例子“LCD Driver Based on the HT1621 Controller”。
链接:http://www.cypress.com/?rID=35199

使用特权

评论回复
5
god_like| | 2009-12-1 20:28 | 只看该作者
学习了

使用特权

评论回复
6
love_life| | 2009-12-1 21:53 | 只看该作者
学习了

使用特权

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

本版积分规则

4

主题

17

帖子

0

粉丝