第十二章LCD显示硅谷芯微运用应用技术奉献_第1页
第十二章LCD显示硅谷芯微运用应用技术奉献_第2页
第十二章LCD显示硅谷芯微运用应用技术奉献_第3页
第十二章LCD显示硅谷芯微运用应用技术奉献_第4页
第十二章LCD显示硅谷芯微运用应用技术奉献_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、第十二章LCD显示硅谷芯微运用应用技术奉献 现在市面上常用的显示器有CRT、LCD、LED、等离子显示器几种。根据应用领域分类一般分为: TN-LCD,主要用于钟表、计算器、仪表、家电、数字小型点矩阵、通信及办公设备。 STN-LCD,以黑白色为主,应用集中在PDA、游戏机、翻译机、 机、 、摄影机、POS收款机、医疗器材、工业仪器显示屏等领域。 TFT-LCD,以彩色为主,应用集中在电视、TV 、计算机、导航仪等为主流,将来会渐渐取代传统之CRT显示器。根据液晶显示像素大小可分为:64*32、128*64、320*640等。根据其显示颜色有单色(黑白)、4灰阶、16灰阶、256色、4096色

2、、16位真彩色、32位真彩色等。根据控制方式可分为: 段式液晶 字符图形式液晶。 掌握12864串行和并行模式读写时序 掌握串行和并行模式的数据传输方法 理解12864显示汉字原理 理解12864显示图片原理 本章重点:本章重点:12.1 12864概述概述 我们学习是采用的LCD为STN类,像素为128*64黑白字符图形式12864液晶屏。买LCD的时候会配带相应的驱动控制器,虽然对应的驱动控制其型号很多,不过使用方法大同小异。12864有带字库的和不带字库两种,不带字库的需要自己用专用软件取模,现在市面上常用的驱动控制器都带字库。JHD529M1是一个128*64的LCD驱动控制器,可显示

3、汉字及图形。内置8192个中文汉字CGROM(16*16)、128个字符(ASCII码)HCGROM(8*16)及128*64点阵显示RAM(GDRAM)。12.1.1基本特征基本特征 低电源电压4.5-5.5V,2MHZ时钟频率,通讯方式为串并行可选,工作温度为0-55度。12.1.2显示内容显示内容 可以构成全中文人机互交图形界面。可以显示8*4行16*16点阵汉字,也可以完成图形显示。并且可以实现光标显示,画面移动,自定义字符、睡眠模式。12.1.3通信接口通信接口 并行:8位数据线DB0-DB7、3位控制线RS,R/W,E 串行:I2C接口CS,SCLK,SDA12.1.4管脚定义:管

4、脚定义:引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20

5、LED_K-背光源负极(LED-OV)12.2 传输方式传输方式 向驱动控制器发送命令分为串行和并行传输,无论何种传输,他们的控制字格式都是一样的:格式11111ABC,A为读写控制,H_读,L_写;B为类型控制,H_数据,L_指令;C为0。以及指令集是相同的。指令指令指令码说明说明执行时间执行时间RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除显示清除显示0000000001将将DDRAM填满填满“20H”,并且设定,并且设定DDRAM的地址计数器(的地址计数器(AC)到)到“00H”4.6ms地址归位地址归位000000001X设定设定DDRAM的地址计数器(的地址计数器(AC

6、)到)到“00H”,并且将游标移到开头原点位置;这个指令,并且将游标移到开头原点位置;这个指令并不改变并不改变DDRAM的内容的内容4.6ms进入点设定进入点设定00000001I/DS指定在资料的读取与写入时,设定游标移动方向及指定显示的移位指定在资料的读取与写入时,设定游标移动方向及指定显示的移位72us显示状态开显示状态开/关关0000001DCBD=1:整体显示:整体显示ON C=1:游标:游标ON B=1:游标位置:游标位置ON72us游标或显示游标或显示移位控制移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位元;这个指令并不改变设定游标的移动与显示的移位控制位元

7、;这个指令并不改变DDRAM的内容的内容72us功能设定功能设定00001DLXREXXDL=1(必须设为必须设为1) RE=1:扩充指令集动作扩充指令集动作 RE=0:基本指令集动作基本指令集动作72us设定设定CGRAM地地 址址0001AC5AC4AC3AC2AC1AC0设定设定CGRAM地址到地址计数器(地址到地址计数器(AC)72us设定设定DDRAM地地址址001AC6AC5AC4AC3AC2AC1AC0设定设定DDRAM地址到地址计数器(地址到地址计数器(AC)72us读取忙碌标读取忙碌标志(志(BF)和)和地址地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志(

8、读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器()可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值)的值0us写资料到写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us读出读出RAM的的值值11D7D6D5D4D3D2D1D0从内部从内部RAM读取资料(读取资料(DDRAM/CGRAM/IRAM/GDRAM)72us基本指令集:指令指令码说明执行时间RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001将DDRAM填满“20H”,并且设定

9、DDRAM的地址计数器(AC)到“00H”72us卷动地址或IRAM地址选择000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM地址72us反白选择00000001R1R0选择4行中的任一行作反白显示,并可决定反白与否72us睡眠模式0000001SLXXSL=1:脱离睡眠模式SL=0:进入睡眠模式72us扩充功能设定000011XREG0RE=1: 扩充指令集动作RE=0: 基本指令集动作G=1 :绘图显示ONG=0 :绘图显示OFF72us设定IRAM地址或卷动地址0001AC5AC4AC3AC2AC1SR=1:AC5AC0为垂直卷动地址SR=0:AC3AC0为I

10、CON IRAM地址72us设定绘图RAM地址001AC6AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器(AC)72us 扩充指令集扩充指令集: 12.3 并行方式传输并行方式传输 LCD12864和单片机并口连接图 12.3.1 并行时序(将并行时序(将PSB接接H为并行模式)为并行模式) 1.写时序 写时序流程如图所示: RS为命令/数据选择信号,R/W为读写选择信号,E微操作驱动信号,DB0-DB7为数据总线。上图为写操作,所以R/W则表明当前进行的是写操作。DB0-DB7为单片机向JHD529M1写数据。 写时序部分程序代码:写时序部分程序代码:写指令:并口写指令时

11、注意时序,RS拉低。注意写指令时不同指令的延时时间不同。 写数据: LCDWC: ;并口写指令子程序LCALLCHK_BUSY ;以确保上一指令/数据模块已经接收处理完NOPCLRRSCLRRWSETBEMOVP2,A ;将要操作的指令通过数据口发送NOPCLRENOPRETLCDWD:;并口写数据子程序LCALLCHK_BUSY;判忙子程序NOPSETBRSCLRRWSETBEMOV P2,A ;将要写入的数据通过数据口发送CLRENOPRET读忙状态子程序:读忙状态子程序: 并行模式判忙:当R/W为H,RS为L时,驱动控制器会输出它的状态和当前地址计数器AC的值。最高位为状态位,低六位为地

12、址。CHK_BUSY:CLRRSSETBRWSETBECHK_B:NOPJBP2.7,CHK_B ;读出的AC值存放在P2口,判断最高位,为1则忙,为0则空闲。CLRE RET2.读时序读时序 读时序流程如图所示: RS为命令/数据选择信号,R/W为读写选择信号,E为操作驱动信号,DB0-DB7为数据总线。当写入命令11111100B时,R/W为H,RS为L,不需要延时,控制器会马上读出当前的AC值。然后进行判忙等操作。当发送11111110B时,R/W为H,RS为H,驱动控制器会把当前地址计数器的数据发送出来。读数据要延时72us。 读子程序:读子程序:READ:MOVP2,#1111110

13、0B;写入读命令指令NOPCLRRSSETBRWSETBEMOVA,P2;P2读出计数器AC值NOPCLRERETR12.4串行模式串行模式 LCD12864和单片机串行模式连接图(将PSB接L为串行模式,串行模式只需三根线) 串行模式写时序和读时序是一样的流程,串行口时序图如下图: 串行模式下输入11111100后,驱动控制器会输出两个字节的数据,分别为DDDD0000和0000DDDD,最高位为判忙状态位。 写指令或数据子程序:写指令或数据子程序:F_WRITE: ;按照时序写入第二个拆分的字节MOVR6,A;A为要写入的命令或者操作ANLA,#0F0H;取要发送指令或数据的高四位LCAL

14、LF_WRITEBETY;发送高四位MOVA,R6ANLA,#0FH;去要发送指令或数据的第四位SWAPALCALLF_WRITEBETY;发送低四位RETF_WRITEBETY: ; 按位发送8次,发送所要操作的指令或者数据MOVR7,#08L_WRITENEXTBIT:RLCAMOVB_SDA,CNOPNOPNOPNOPSETBB_CLKNOPNOPNOPNOPCLRB_CLKDJNZ R7,L_WRITENEXTBITRET注意注意:当模块在接受指令前,微处理必须先确认模块内部处于非忙碌状态,即读取AC最高位状态标志时,状态位需为0,方可接受新的指令;如果在送出一个指令前并不检查状态标志

15、,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的指令说明。当有多个数据或指令要传送时,必须要等到一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。这是因为液晶模块内部没有发送/接收缓冲区。 12.5 显示字符或者汉字显示字符或者汉字 显示资料RAM提供642个位元组的空间,最多可以控制4行16字(64个字)的中文字型显示,当写入显示资料RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;JHD529M1可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型,

16、三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中将自动的结合下一个位元组,组成两个位元组的编码达成中文字型的编码(A140D75F),各种字型详细编码如下: 1.显示半宽字型:将8位元资料写入DDRAM中,范围为02H7FH的编码。 2.显示CGRAM字型:将16位元资料写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码。 3.显示中文字形:将16位元资料写入DDRAM,范围为A1A1HF7FEH的编码作为字符显示,在控制器内有个供写入字符代码的缓存器DDRAM,你只要将要显示的中文字符代码或西文字符代码写入DDRAM,硬件将依照编码自

17、动从CGROM中选择将要显示的字型显示再屏幕上。至于是显示西文字符还是中文字符,它会自动辨别的,这和我们PC上是一样的,字符代码也完全一样。 ASCII码如表所示:字符显示时,DDRAM地址与液晶屏的位置关系见下表: 这个表上可以看出,它的地址编排很奇特,第一行到87H完了以后就跳到了第三行接着88H了,每二行也是一样的,很明显,有下面两行接在上面两行后面的迹像。例例: 要在第一行开始写个心,则应先设置DDRAM地址为80H,然后向其写入数据03H 要在第二行”单片机”三个字只需将要写入的字放入表中,通过查表写入即可。写入数据之前先写入地址,注意地址为指令操作。表中的数据写入后DDRAM会自动

18、匹配汉字。 Line1 (X坐标)80H81H82H83H84H85H86H87HLine2 (X坐标)90H91H92H93H94H95H96H97HLine3 (X坐标)88H89H8AH8BH8CH8DH8EH8FHLine4 (X坐标)98H99H9AH9BH9CH9DH9EH9FH12.6 绘图显示绘图显示绘图显示RAM地址分布如图所示: 上图我们可以看出JHD529M1的LCD12864在地址的排列上是分为上、下半屏来显示的,上半屏横向的列地址(X)是07(00H-07H),下半屏的列地址是815(08H-0fH)。而每个一地址都可写入两个字节的内容,它们是按高位在前低位在后排列的

19、。垂直方向上的地址(Y)上半屏是031(00H-1fH),下半屏的Y地址仍是031(00H-1fH),可以看出,它的地址排列方式还是将下半屏接在上半屏后面的,因此这块LCD12864,虽然在点阵的物理排列上是12864,但在地址排列上,它却是块25632。12.6.1绘图绘图RAM(GDRAM) 绘图显示RAM提供6432个位元组的记忆空间,最多可以控制25664点的二维也纳绘图缓冲空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个8位元的资料到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下: 1 关闭绘图显示

20、功能。 2 先将水平的位元组坐标(X)写入绘图RAM地址; 3 再将垂直的坐标(Y)写入绘图RAM地址; 4 将D15D8写入到RAM中; 5 将D7D0写入到RAM中; 6 打开绘图显示功能。 11.6.2图像数据处理方法图像数据处理方法 使用Image2Lcd工具可以将图像处理为对应的显示数据。1.输出数据类型应设置为C语言数组,这样可以直接得到十六进制的字节型数据。2.扫描模式可设为水平扫描模式,这样便于软件设计。3.输出灰度应该设为单色模式,因为128*64只能显示单色的图像4.最大宽度和高度应该为128*64,如果图像本身为100*50。,则无法处理成128*64的,所以在使用Image2Lcd工具之前,应该用专业的软件将图像处理成128*64大小的。5.高位在前,因为128*64驱动控制器将会显示最高位在前面。(先写入D8-D15)6.设置完了之后点击保存,即可获得图像数据。 12.7 下面程序为写字符和绘图的主程序代码:下面程序为写字符和绘图的主程序代码:R_KZZEQU50H;控制字缓冲区C_QPEQU00000001B;清除屏幕C_XSEQU00001100B;字符显示设置开C_ZLEQU00110000

温馨提示

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

评论

0/150

提交评论