基于Linux的液晶显示屏驱动设计

基于Linux的液晶显示屏驱动设计,第1张

    1 Linux关于字符设备的管理

  驱动程序在Linux内核中往往是以模块形式出现的。与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求。模块中包含2个重要的函数init_module和cleanup_module。前者是模块的入口,它为模块调用做好准备工作,而后者是在模块即将卸载时被调用,做一些清扫工作。

  驱动程序模块通过函数int regiSTer_chrdev(unsignedint major,const char*name,struct file_operaTIons*fops)来完成向内核注册。其中unsigned int major为主设备号,const char*name为设备名,struct file_operaTIons*fops为驱动设备管理中重要的结构指针,此结构中每个字段都必须指向驱动程序中实现特定 *** 作的 *** 作函数。

  2 FYD12864-0402B液晶模块简介

  FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,低电压,低功耗。其显示分辨率为128×64,内置8 192个16×16点阵的汉字,以及128个16×8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的 *** 作指令,可构成全中文人机交互图形界面,可以显示8×4行16×16点阵的汉字。也可完成图形显示。FYD12864-0402B液晶模块框图如图1所示,其中ST7920为液晶显示控制芯片,ST7921为液晶显示驱动芯片。

基于Linux的液晶显示屏驱动设计,第2张

  FYD12864-0402B控制器接口信号说明如下:

  ①RS、R/W的配合选择决定控制界面的4种模式,如表1所列。

基于Linux的液晶显示屏驱动设计,第3张

  ②E信号如表2所列。

基于Linux的液晶显示屏驱动设计,第4张

 3 LCD读写原理

  FYD12864-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可显示32个中文字符或64个ASCII码字符。FYD12864-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。3种不同字符/字型的选择编码范围为:0000~0006H(其代码分别是0000、0002、0004、0006,共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8 192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系。

   

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2713265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存