您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 任务八 LCD12864液晶显示
任务八LCD12864液晶显示知识背景1.12864液晶显示简介12864液晶显示是分辨率为128(列)×64(行)点阵型液晶显示器。显示模块如图7-1所示。LCD12864模块包含带字库的不不带字库的,这里介绍的为不带字库的12864液晶显示。点阵式液晶模块LCD,不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,其原理是控制LCD12864点阵中的点的亮暗,亮和暗的点阵按一定规律可以组成汉字,组成一幅图形和曲线等。(对编程者来说,LCD屏幕上的点阵是按字节方式8个点一组来控制的)图8-1LCD12864实物图在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。•那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的•‘A’在字模(纵向取模,高位在下。数据格式:从左到右,从上到下)的记载方式如图7-2所示:图8-2“A”字模图8-3“你”字模图而中文的“你”在字模(横向取模,左高位。数据安排:从左到右,从上到下)中的记载却如图8-3所示.2、模块接口说明LCD12864采用标准的16脚接口,各引脚功能如下表7-1所示:表8-1LCD12864引脚功能图RST管脚号管脚名称电平管脚功能描述1VSS0V逻辑电源地2VCC+5V逻辑电源正3V0-LCD驱动负载,对比度(亮度)调整4RSH/LRS=“H”,表示将DB0——DB7送入显示数据RAM;RS=“L”,表示将DB0——DB7送入指令指令寄存器5R/WH/LR/W=“H”,E=“H”,数据被读到DB0——DB7R/W=“L”,E=“H→L”,DB0——DB7的数据被写到IR或DR6E(SCLK)H/L使能信号端:H读有效;下降沿锁定数据7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15cs1H/LH:选择芯片(左半屏)有效,L:片选无效(见注释1)16cs2H/LH:选择芯片(右半屏)有效,L:片选无效(见注释1)17H/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19LED+VDD背光源正端(+5V)(见注释3)20LED-VSS背光源负端(见注释3)*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。*注释1:ISIS仿真中LCD12864的片选为低电平有效,与实物相反。(说明H:为高电平;L:低电平)3、指令说明在使用12864LCD前先必须了解以下功能器件才能进行编程。12864内部功能器件及相关功能如下:(1)指令寄存器(IR)IR是用于寄存指令码,与数据寄存器数据相对应。当RS=0时,在E信号下降沿的作用下,指令码写入IR。(2)数据寄存器(DR)DR是用于寄存数据的,与指令寄存器寄存指令相对应。当RS=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7∽DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。(3)忙标志:BFBF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUSREAD指令,可以将BF读到DB7总线,从检验模块知工作状态。(4)显示控制触发器DFF•此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAYOFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAYOFF)。•DDF的状态是指令DISPLAYON/OFF和RST信号控制的。•(5)XY地址计数器•XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。•X地址计数器是没有记数功能的,只能用指令设置。•Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。•(6)显示数据RAM(DDRAM)•DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表7-3。•(7)Z地址计数器•Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAYSTARTLINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。•4.LCD12864的指令系统及时序•该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。其指令表如表7-2所示:指令名称控制信号控制代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0显示开关0000111111/0显示起始行设置0011XXXXXX页设置0010111XXX列地址设置0001XXXXXX读状态10BUSY0ON/OFFRST0000写数据01写数据读数据11读数据表8-2LCD12864指令表(1).各功能指令分别介绍如下:①显示开/关指令code:R/WRSDB7DB6DB5DB4DB3DB2DB1DB00000111111/0功能:当DB0=1时,LCD显示RAM中的内容,即指令0X3F,开显示;DB0=0时,关闭显示[不影响显示RAM(DDRAM)中的内容],即指令‘‘0x3E”。②显示起始行(ROW)设置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(0~63)功能:该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律地改变显示起始行,可以使LCD实现显示滚屏的效果,用指令“0xc0+add”表示。add=0,则第一行字符显示在最上面,add=1,则第一行字符显示在第二行。③页(PAGE)设置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00010111页号(0~7)功能:显示RAM共64行,分8页,每页8行。从DB3到DB7的值可以看出,用指令“0xb8+add”表示,该指令设置后面续写得页地址,LCD12864一个字节数据对应纵向8个点,因此页号(add)为0~7。④列地址(YAddress)设置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00001显示列地址(0~63)功能:设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,用指令“0xb8+add”表示,add取值范围是0~63。这样MPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。下面图7-4画出了LCD12864点阵结构图,其中左半屏和右半屏都有64列,64行分为8页,显示缓冲页地址、列地址与点阵位置对应,单片机只需把字摸数据送到DDRAM中,就可显示所需出字符。图8-4LCD12864点阵图为了使得概念更清晰,对上面的图7-4进行详细讲解,即下面的表格表7-3RAM地址映像表,其中x=0到x=7表示第1页到第8页,用CS1=1,表示选中左半屏,CS2=1表示选中右半屏,y表示列,左半屏和右半屏都有64列,共计128列,表7-3的RAM地址映像表只表示了半屏的结构。只要看懂地址映像表,那么显示的位置应该就很久很简单。表8-3RAM地址映像表⑤读状态指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB010BUSY0ON/OFFREST0000功能:该指令用来查询液晶显示模块内部控制器的状态,各参量含义如下:BUSY:1-内部在工作0-正常状态ON/OFF:1-显示关闭0-显示打开RESET:1-复位状态0-正常状态在BUSY和RESET状态时,除读状态指令外,其它指令均不对液晶显示模块产生作用。在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。⑥写数据指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB001D7D6D5D4D3D2D1D0功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DDRAM前,要先执行“设置页地址”及“设置列地址”命令。⑦读数据指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB011读显示数据功能:读、写数据指令每执行完一次读、写操作,列地址就自动增一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。(2).12864LCD的时序①写操作时序12864LCD写时序如图7-5所示,首先给出DATA、RS、WR数据,然后CPU的R/W信号给出一个下降沿,也就是E的下降沿。由图中可以看出,写时序在R/W的上升沿,给出E的下降沿,将数据写入。图8-5LCD列驱动接口写时序②读操作时序如图7-6所示是LCD列驱动接口读时序,R/W为高电平时,当给出E的高电平时读出数据。图8-6LCD列驱动接口读时序二、任务分析在点阵图形液晶模块上显示以下内容:在第一行居中显示数字“欢迎使用”,第二行居中显示“系统初始化……”,第三行显示“重庆欢迎你的到来”。第四行显示“”。具体如图7-7。图8-7模拟显示效果图三、任务实施1.12864点阵LCD软硬件设计通过以上学习,分析该任务,可设计出LCD12864的软硬件如图7-8。在调试前先将显示切换开关切换到LCD显示状态。I/O设备访问形式控制该液晶显示模块,只要采用单片机的输入输出口模拟12864的读写时序,发送相应的控制指令和数据等,具体I/O设备访问形式接线电路图如图7-8。图8-8单片机与12864硬件接线图2.流程图和编程思想通过分析和接线,12864液晶模块的驱动软件流程图如图7-9.图8-9软件流程图通过以上流程图,具体的思想,首先初始化,主要完成TG12864的复位,清屏等。然后复位操作(RST=0),其主要状态有设置显示状态为关显示状态,显示起始寄存器清零,显示RAM第一行对应显示屏上的第一行,在复位期间状态字中RESET位置“1”。最后是清屏操作,主要完成对12864内部的数据存储器清零。3.程序代码如下:#includereg52.h//包含reg52.h头文件,说明了AT89S52芯片中所拥有的特殊功能、寄存器和可寻址标志位#defineuintunsignedint//定义无符号整型#defineucharunsignedchar//定义无符号字符型#defineDataport/*数据端口*/P0//定义P0端口为LCD数据总线,用于传输指令\命令和显示数据//12864引脚定义以下程序见课本4.实验效果经过程序的调试,编译,并下载到单片机,可以在设备上显示如图7-10,然后用仿真软件可以仿真得出仿真效果图7-11。图8-1012864实物实验结果图8-1112864仿真实验结果备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受
本文标题:任务八 LCD12864液晶显示
链接地址:https://www.777doc.com/doc-3313966 .html