你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

240*128液晶屏幕显示的驱动程序在STM32F103的移植

[复制链接]
mengyu139 发布时间:2015-1-5 19:28
240*128液晶屏幕显示的驱动程序在STM32F103的移植
首先,发此贴的原因是,这个液晶屏幕我花了3天的时间才算是完成简单的功能要求(实际上,我做的东西也只需要相对简单的显示,相信多数人也是这样),没有GUI,没有图片显示,只有文字和符号的显示,文字是16*16的,符号就是西文字符。把这个过程记录总结一下,相信自己以后还会用的到。
1. 移植准备
1.1看数据手册
我的屏幕是240*1285V版本的显示屏幕,控制芯片是T6963,了解屏幕控制芯片的型号很重要,因为对屏幕的操作实际就是单片机与这个控制芯片的通信,对其进行读写,为不同的控制芯片读写时序,和功能都可能不一样。所以我们需要看一看6963的手册,下载连接下面会跟上,手册里主要看以下几点内容:读写时序要求,指令和数据的含义,操作方法,注意问题。
下面以读写时序的了解为例:
读写时序.JPG

时序即控制引脚高低电平的顺序以及维持时间,以上图标,图形里,确定的几个控制引脚的变化顺序,表格里要求了每种变化需要维持的时间,主要是为了让单片机或者屏幕控制芯片反应过来。
首先,应了解C\D 是指令数据控制引脚, 置0,表示接下来的D0~D7是命令,置1,表示接下来的D0~D7是数据;
WRRD是读写控制引脚,WR0,表示接下来要写,RD0,表示接下来要读取6963的内容,实际上,我只用到了写功能,那么应置WR0RD一直为1
CE 表示片选引脚,为0,表示允许对屏幕进行操作,我一直使其为0,表示一直使能;
D0~D7 即为数据\指令总线,要发送的指令或者数据都通过这个传输过去。
下面挨个解释表格里的时间的含义:
(1)Tcds        CD引脚和CE引脚的关系,即CD变化后,CE0变为1(由使能到不使能)的时间,要求最小100ns,注意,由于我一直使CE0,所以CE再也没有为1,那么这个Tcds即为无穷大;
(2)同理,Tcdh 也可以这样看,由于我把CE设为0不变,就不需要考虑这个时间,大于要求的最小时间。
(3)Tce,trd,twr  即为WR或者RD引脚由1变为0(使能读或者写操作)后,要维持的时间,这个时间要大于80ns,才能让6963反应过来。
(4)Tds        如果是对6963写数据,那么在WR引脚置0并维持大于80ns后,开始送数据,同样,这个数据也要维持一定时间不变,才能让6963真正识别出送过来的数据,大于80ns
(5)Tdh   即为写操作完成后,WR重新拉高,数据总线状态不能立即改变,可以理解为,写过一次数据后,不能立马写下一个数据,应该延迟一会,大于40ns
(6)Tacc        如果读取6963的数据,那么应该把RD线拉低,表示读使能,然后保持一段时间,6963识别出单片机要读6963的操作后,接着会把数据送到总线上让单片机读取,当然,这个识别出和送出数据之间会有延时,最大为150ns,即如果我们发送读操作后,最多等150ns后就可以把总线的数据读取进内存,也可以多延时一会,这样数据会稳定,再读取。
1.2这里只说了时序应该怎么理解,但是想要真正读写6963,还得满足读写格式要求,手册里面都有详细解释,下载附件后仔细阅读就可以明白。这里提供几个偷懒的方法
(1)直接找一个确定可用的程序,看他的底层驱动函数,写数据,写指令,读数据函数是如何操作的,虽然不同单片机所需要的延时函数不一样,但是对引脚的操作顺序是一样的
找一个显示屏的用户手册阅读。        6963只是个驱动芯片,最终面向用户的是整个显示屏,所以阅读显示屏的用户手册,能更快地了解如果操作,下面会提供一个下载连接。



收藏 评论13 发布时间:2015-1-5 19:28

举报

13个回答
mengyu139 回答时间:2015-1-5 19:28:47
2.有了以上准备,就可以开始移植程序了
这里说移植,是因为有个同学以前用430写过相关程序,当然他是移植51的,现在我来把430的移植成STM32的,感觉好乱啊!
移植注意问题:
(1)上面说了,如果一个驱动程序可用,那么不管是什么单片机下的程序,对引脚的控制顺序是一定的,关键是看操作是否满足以上时序要求。
举个例子:51单片机下,把WR置0,然后送数据,那么这两个操作之间不需要额外的延时,因为51运行一个指令是1us,远大于要求的150ns;而换成430单片机后,时钟快了,可能需要加一些延时,满足时序要求,而换成了STM32这样72MHZ时钟的单片机,一条指令只需要1/72 us,不能满足150n的要求,所以需要额外插入一个延时函数,满足延时时间大于150ns,这是移植的关键所在。
总体来说,把握好延时满足时序,移植的难度应该不大

(2)下面是一个写一个字节的函数,可以发现,我加了2us的延时,这里要说明,时序图里面只是给了最小要求时间,就是说延时要大于要求的延时,至于大多少,由实际情况而定,我开始只是延时1us,发现屏幕不稳定,换成2us后,就稳定了,所以测试的时候,可以一开始加大延时

void LCD_Writedata(uint8_t dat)
{
  LCD_TestStaBit01();
  REST_CD;
  REST_WR;
       
//设置数据口为输出方向
//读取数据( 假设这里用PB0 - PB7 )
  Dirout;
  Dataout(dat);
       
  delay_us(2);
       
  SET_WR;
  SET_CD;
  delay_us(2);
}

3.下面,我会把我的整个工程发上来,这里稍微解释一下里面几个我认为有必要的函数
(1)位带操作,对6963的操作实际上需要5个单独的引脚负责控制时序,和8个一组引脚负责读写数据总线,由于需要对单独的位进行操作,所以希望能有51里面的操作方式:P1^0=1;                P1^0=0;
在STM32里面可以通过位带操作实现,原子STM32里面讲解地很详细,这里不再叙述,有兴趣的去看一下就行。

(2)对GPIO口读写数据
库函数提供了读写端口的函数,但是这个数据端口一会要做输出,给6963数据,一会又要做输入,从6963读取数据,如果用库函数来配置,效率会很低,这里可以直接控制寄存器,具体见工程文件里面的实现





4.用CGRAM实现文字输出
240*128的显示屏很大,足以显示很多16*16的文字,对于西文字符,如同1602一样,可以直接调用内部字符库,显示,对于汉字,就得把汉字通过取模软件编程编码,再进行输出显示。
显示汉字有两种方式,图片形式显示,或者文本形式显示
图片显示形式,网上有很多教程,取模后送入显示程序,采用这种方式,显示的区域就得设置成图片显示形式

我采用CGRAM文本显示文字的形式,这样显示的汉字是文本形式,可以和内部的西文字符在同一个区域显示,更方便。
CGRAM即分配6963内部RAM的一部分作为字符存储区,需要显示的时候读取相应的RAM,进行显示,具体的操作方法和理论计算下面会放出我查阅的资料,很有用。

5.后记
我也只是简单地使用了这个显示屏,还有更多的功能没有开发,不过,显示汉字和字符是最关键的功能,至于其他的,只能有时间再探讨了。
mengyu139 回答时间:2015-1-5 19:29:31
T6963C中文数据手册完整版(免费共享).pdf (1.37 MB, 下载次数: 46)
mengyu139 回答时间:2015-1-5 19:29:50
240128液晶显示模块使用手册[1].pdf.pdf (377.05 KB, 下载次数: 21)
mengyu139 回答时间:2015-1-5 19:30:26
PCtoLCD2002完美版_汉字字模生成软件.rar (702.54 KB, 下载次数: 18)
mengyu139 回答时间:2015-1-5 19:32:08
程序参考了很多人的,野火的,原子的。。。谢谢他们的帮助

自己写6963.rar

下载

1.45 MB, 下载次数: 76

mengyu139 回答时间:2015-1-5 19:32:55
基于T6963C的LCD实时数据显示系统设计与仿真.pdf (400.2 KB, 下载次数: 25)
mengyu139 回答时间:2015-1-5 19:34:33
一些参考资料,看起来可能方便一些。

关于LCD控制器T6963C应用的几个问题.rar

下载

24.18 KB, 下载次数: 14

mengyu139 回答时间:2015-1-5 19:35:09
t6963c液晶显示驱动控制器.pdf (550.01 KB, 下载次数: 14)
mengyu139 回答时间:2015-1-5 20:12:41
1.jpg
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版