当前位置:首页 > 单片机 > 单片机
[导读]一般来说,LCD 模块的控制都是通过 MCU 对 LCD 模块的内部寄存器、显存进行操作来最终完成的;在此我们设计了三个基本的时序控制程序,分别是:写寄存器函数(LCD_RegWrite)数据写函数(LCD_DataWrite)数据读函数(LCD_D

一般来说,LCD 模块的控制都是通过 MCU 对 LCD 模块的内部寄存器、显存进行操作来最终完成的;在此我们设计了三个基本的时序控制程序,分别是:

写寄存器函数(LCD_RegWrite)

数据写函数(LCD_DataWrite)

数据读函数(LCD_DataRead)

这三个函数需要严格的按照 LCD 所要求的时序来编写,下面可以看看 MzL02 模块时序图:

 

 

图 3.2 MzL02 模块的 6800 时序示意

注意:上图是该模块的控制 IC 资料中的原版时序图,其实有些示意不是太稳妥(少标出了RW 线信号的要求),或者说是不太严谨,不过这些不作讨论,请看分析即可;而 EP 的有效触发沿在图中很有可能示意有误,实测为上升沿。图中 CS1B(CS2)的信号即为片选 CS,RS 即为数据/寄存器的选择端口 A0 信号,E 为 EP;当作写入寄存器数据操作时,首先要将 A0 置低,以通知 LCD 模块即将进行的是对寄存器的操作;而 RW 线需要置低,以示即将要进行的是写入的操作;然后片选 CS 信号置低,装载数据至总线,然后在 EP 线上产生一个上升沿以触发 LCD 模块将总线上的数据最终载入;在前面的操作完成后一般都会将各个信号线的状态恢复。而数据(显存)写入、数据读出的操作时序也比较类似,这里就不多作介绍,直接参考例程即可。

//=======================================================

// 函数: void LCD_RegWrite(unsigned char Command)

// 描述: 写一个字节的数据至 LCD 中的控制寄存器当中

// 参数: Command 写入的数据,低八位有效(byte)

// 返回: 无

//======================================================

void LCD_RegWrite(unsigned char Command)

{

LCD_A0 = 0; //A0 置低,示意进行寄存器操作

LCD_RW = 0; //RW 置低,示意进行写入操作

LCD_EP = 0; //EP 先置低,以便后面产生跳变沿

LCD_CS = 0; //片选 CS 置低

DAT_PORT = Command; //装载数据置总线

LCD_EP = 1; //产生有效的跳变沿

LCD_CS = 1; //片选置高

}

数据写入以及读出的函数源码如下:

//==========================================================

// 函数: void LCD_DataWrite(unsigned char Dat)

// 描述: 写一个字节的显示数据至 LCD 中的显示缓冲 RAM 当中

// 参数: Data 写入的数据

// 返回: 无

//==========================================================

void LCD_DataWrite(unsigned char Dat)

{

LCD_A0 = 1; //A0 置高,示意进行显存数据操作

LCD_RW = 0; //RW 置低,示意进行写入操作

LCD_EP = 0; //EP 先置低,以便后面产生跳变沿

LCD_CS = 0; //片选 CS 置低

DAT_PORT = Dat; //装载数据置总线

LCD_EP = 1; //产生有效的跳变沿

LCD_CS = 1; //片选置高

}

//=========================================================

// 函数: unsigned char LCD_DataRead(void)

// 描述: 从 LCD 中的显示缓冲 RAM 当中读一个字节的显示数据

// 参数: 无

// 返回: 读出的数据,

//==========================================================

unsigned char LCD_DataRead(void)

{

unsigned char Read_Data;

DAT_PORT = 0xff; //51 的端口想要输入前,要先给端口全置 1

LCD_A0 = 1; //A0 置高,示意进行显存数据操作

LCD_RW = 1; //RW 置高,示意进行读出操作

LCD_EP = 0; //EP 先置低,以便后面产生跳变沿

LCD_CS = 0; //片选 CS 置低

LCD_EP = 1; //产生有效的跳变沿

LCD_EP = 0;

Read_Data = DAT_PORT; //读出数据

LCD_CS = 1; //片选置高

return Read_Data; //返回读到的数据

}

以上便是要介绍的最基本的时序操作程序,它们几乎是整个 LCD 驱动程序当中与底层硬件打交道的代码了,这样的话,当要改变驱动 LCD 的 MCU 端口时或者换用别的 MCU 来驱动 LCD 时,基本上只需要在这些代码里作一下修改即可。

关于读 LCD 状态

而在一般的 LCD 模块当中,还有一个功能同样重要,就是读 LCD 状态;可以通过此操作获取当前 LCD 模块的忙状态以及一些相关的状态信息,当 LCD 模块正处于忙状态时,则不宜对它进行数据的写入或读出操作(有很多较老式的 LCD 控制器规定在忙的状态下时不允许写入或读出数据)。

所以在很多 LCD 的驱动程序当中,会在寄存器写入、数据写入/读出的操作前加入读取 LCD状态并判别忙状态的代码;这点可以参考网上流传的很多 LCD 驱动程序。不过,对于 MzL02这样的较新出的 LCD 控制器来说,已经对忙状态不是很在乎了,或者说影响已经很小甚至没有了;所以我们在前面的代码当中并没有加入这样的代码。至于有没有必要加读状态判忙的代码,要视具体的 LCD 控制器而定。

关于时序的时间要求

时序的一个非常重要的数据就是类似上图中标出的tAS88之类的时间长短要求,只是上图中并没有标出它们的具体最大最小值要求而已;但在编写这类的时序接口程序时它们还是非常重要的,当然还要看 MCU 的端口操作速度以及 MCU 的指令执行速度。打个比方,有的时序里就会有要求某些信号的电平保持最小宽度,而如果 MCU 的指令执行速度以及端口操作速度非常快的话,就需要酌情在连续操作端口的代码之间加入适量的延时(通用用空操作来代替,具体多少个多少时长视具体的 MCU 以及 LCD 控制器而定)以保证该信号的脉冲宽度满足要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭