128-64液晶显示器教程.doc_第1页
128-64液晶显示器教程.doc_第2页
128-64液晶显示器教程.doc_第3页
128-64液晶显示器教程.doc_第4页
128-64液晶显示器教程.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

128*64点阵图形液晶显示屏程序设计教程笔者使用PROTEUS仿真软件中的液晶显示屏(型号AMPIRE12864)探索点阵液晶的编程方式;该型号液晶屏内部无字库,只能自建字模进行字符显示(使用方法与图形显示方式一致);字模可通过“字模提取”软件提取,省去手工建模的麻烦。闲话少说,先把电路图附上:整体电路图 功能说明:该电路使用AT89C52作控制器,电路左下方为时钟芯片DS1302;笔者打算用液晶屏显示当前时间、若干汉字、一幅小图等内容;电路连线:(1)液晶模块: E=P20; RW=P21; RS=P22; CS2=P23; CS1=P24; RST=5V; 数据口D0D7接单片机P0口;(2)时钟芯片DS1302: RST = P36 ; CLK = P16 ; SDA = P17 ;电路仿真结果如下:看完结果了,该学习下如何对该类液晶进行程序设计、显示自己喜欢的东东了。首先分析下该液晶模块内部控制器的工作原理:管脚功能:管脚名称LEVER管脚功能描述VSS0电源地VDD+5.0V电源电压V0-液晶显示器驱动电压 (在PROTUES仿真软件中可不接)RSH/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据R/WH/LR/W=“H”,E=“H”数据被读到DB7DB0R/W=“L”,E=“HL”数据被写到IR或DREH/LR/W=“L”,E信号下降沿锁存DB7DB0R/W=“H”,E=“H”DDRAM数据读到DB7DB0DB0DB7H/L数据线CS1H/LH:选择芯片(右半屏)信号CS2H/LH:选择芯片(左半屏)信号RETH/L复位信号,低电平复位VOUT-10VLCD驱动负电压 (在PROTUES仿真软件中可不接)12864内部功能器件及相关功能:1. 指令寄存器(IR)IR是用于寄存指令码,与数据寄存器数据相对应。当D/I=0时,在E信号下降沿的作用下,指令码写入IR。2数据寄存器(DR)DR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。3忙标志:BFBF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。4显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。5XY地址计数器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地址表。7Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。12864LCD的指令系统该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。其指令表如表2所示:指令名称控制信号控制代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0显示开关0000111111/0显示起始行设置0011XXXXXX页设置0010111XXX列地址设置0001XXXXXX读状态10BUSY0ON/OFFRST0000写数据01写数据读数据11读数据1、 显示开/关指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB00000111111/0当DB01时,LCD显示RAM中的内容;DB00时,关闭显示。2、显示起始行(ROW)设置指令R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB00011显示起始行(063)该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律地改变显示起始行,可以使LCD实现显示滚屏的效果。3、页(PAGE)设置指令R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB00010111页号(07)显示RAM共64行,分8页,每页8行。4、列地址(Y Address)设置指令R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB00001显示列地址(063)设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。5、读状态指令R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB010BUSY0ON/OFFREST0000该指令用来查询液晶显示模块内部控制器的状态,各参量含义如下:BUSY:1-内部在工作 0-正常状态ON/OFF:1-显示关闭 0-显示打开RESET:1-复位状态 0-正常状态在BUSY和RESET状态时,除读状态指令外,其它指令均不对液晶显示模块产生作用。在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。6、写数据指令R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB001写数据7、 读数据指令 R/WRSDB7 DB6 DB5 DB4 DB3DB2DB1 DB011读显示数据读、写数据指令每执行完一次读、写操作,列地址就自动增一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。下面对该类液晶显示屏寻址方式进行解析(老规矩,先上图):半个12864液晶“分页”情况如上图所示(12864由两个完全相同的左右半屏拼成,两个半屏的显示通过CS1和CS2来选择,如CS1=0、CS2=1时选择左半屏显示),每页占8行(指令0xb80xbf分别指定页0页7地址);写入液晶的数据在屏上为纵向显示,如在指定位置(页0第一列)显示12H:w_con(0xb8); 指定页0w_con(0x40); 指定列0w_dat(0x12); 送入数据,该数据的最高位对应“该页该列”最下端的点下面以“你”字为例,分析其字模(16*16点阵,占两页位置)上页字模0x80,0x40,0xF0,0x2C,0x43,0x20,0x98,0x0F,0x0A,0xE8,0x08,0x88,0x28,0x1C,0x08,0x00下页字模0x00,0x00,0x7F,0x00,0x10,0x0C,0x03,0x21,0x40,0x3F,0x00,0x00,0x03,0x1C,0x08,0x00每个数据对应纵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论