版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务八 LCD12864液晶显示知识背景知识背景 1. 12864液晶显示简介 12864液晶显示是分辨率为128(列)64(行)点阵型液晶显示器。显示模块如图7-1所示。LCD12864模块包含带字库的不不带字库的,这里介绍的为不带字库的12864液晶显示。点阵式液晶模块LCD,不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,其原理是控制LCD12864点阵中的点的亮暗,亮和暗的点阵按一定规律可以组成汉字,组成一幅图形和曲线等。(对编程者来说,对编程者来说,LCD屏幕上的点阵是按字节方式屏幕上的点阵是按字节方式8个
2、点一组来控制的个点一组来控制的) 图8-1 LCD12864实物图在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各
3、位信息来记载英文或汉字的形状,如英文的A在字模(纵向取模,高位在下。数据格式:从左到右,从上到下)的记载方式如图7-2所示: 图8-2 “A”字模 图8-3 “你”字模图 而中文的“你”在字模(横向取模,左高位。数据安排:从左到右,从上到下)中的记载却如图8-3所示.2、模块接口说明、模块接口说明 LCD12864采用标准的16脚接口,各引脚功能如下表7-1所示: 表8-1 LCD12864引脚功能图 RST管管脚脚号号管脚管脚名称名称电电平平管脚功能描述管脚功能描述1VSS0V逻辑电源地2VCC+5V逻辑电源正3V0-LCD驱动负载,对比度(亮度)调整4RSH/LRS=“H”,表示将DB0D
4、B7送入显示数据RAM;RS=“L”,表示将DB0DB7送入指令指令寄存器5R/WH/LR/W=“H”,E=“H”,数据被读到DB0DB7R/W=“L”,E=“HL”, DB0DB7的数据被写到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)
5、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是用于寄存指令码
6、,与数据寄存器数据相对应。当RS=0时,在E信号下降沿的作用下,指令码写入IR。(2) 数据寄存器数据寄存器(DR) DR是用于寄存数据的,与指令寄存器寄存指令相对应。当RS=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。(3) 忙标志:忙标志:BF BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。 利用STATUS READ指令,可以将BF读到DB7总线,从检验模块知工作状态。(4) 显示控制触发器显
7、示控制触发器DFF 此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。 DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。(5) XY地址计数器地址计数器 XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。 X地址计数器是没有记数功能的,只能用指令设置。 Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地
8、址指针从0到63。(6) 显示数据显示数据RAM(DDRAM) DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表7-3。 (7) Z地址计数器地址计数器 Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显
9、示64行。 4. LCD12864的指令系统及时序的指令系统及时序 该类液晶显示模块(即KS0108B及其兼容控制驱动器)的指令系统比较简单,总共只有七种。其指令表如表7-2所示: 指令名称控制信号控制代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0显示开关0000111111/0显示起始行设置0011XXXXXX页设置0010111XXX列地址设置0001XXXXXX读状态10BUSY0ON/OFFRST0000写数据01写数据读数据11读数据 表8-2 LCD12864指令表 (1).各功能指令分别介绍如下: 显示开/关指令code:R/WRSDB7DB6DB5DB4DB3D
10、B2DB1DB00000111111/0 功能:当DB01时,LCD显示RAM中的内容,即指令0X3F,开显示;DB00时, 关闭显示不影响显示RAM(DD RAM)中的内容,即指令0 x3E”。 显示起始行(ROW)设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00011显示起始行(063) 功能:该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律地改变显示起始行,可以使LCD实现显示滚屏的效果,用指令“0 xc0+add”表示。 add=0,则第一行字符显示在最上面,add=1,则第一行字符显示在第二行。 页(PAGE)设置指令R/W RSDB7 D
11、B6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1页号(07)功能:显示RAM共64行,分8页,每页8行。从DB3到 DB7的值可 以看出,用指令“0 xb8+add”表示,该指令设置后面续写得页地址, LCD12864一个字节数据对应纵向8个点,因此页号(add)为07。 列地址(Y Address)设置指令R/WRSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00001显示列地址(063) 功能:设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,用指令“0 xb8+add”表示,add取值范围是063。 这样MPU就可以用读、写指令读出该单
12、元中的内容或向该单元写进一个字节数据。下面图7-4画出了LCD12864点阵结构图,其中左半屏和右半屏都有64列,64行分为8页,显示缓冲页地址、列地址与点阵位置对应,单片机只需把字摸数据送到DDRAM中,就可显示所需出字符。 图8-4 LCD12864点阵图 为了使得概念更清晰, 对上面的图7-4进行详细讲解,即下面的表格 表7-3 RAM地址映像表,其中x =0到x= 7表示第1页到第8页,用CS1=1,表示选中左半屏,CS2=1表示选中右半屏,y 表示列,左半屏和右半屏都有64列,共计128列,表7-3 的 RAM地址映像表只表示了半屏的结构。只要看懂地址映像表,那么显示的位置应该就很久
13、很简单。 表8-3 RAM地址映像表地址映像表 读状态指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0功能:该指令用来查询液晶显示模块内部控制器的状态,各参量含义如下: BUSY:1-内部在工作0-正常状态 ON/OFF:1-显示关闭0-显示打开 RESET:1-复位状态0-正常状态 在BUSY和RESET状态时,除读状态指令外,其它指令均不对液晶显示模块产生作用。在对液晶显示模块操作之前要查询BUSY状态,以确定是否可以对液晶显示模块进行操作。 写数据指令R/W RSDB7 DB6 DB5 DB4 DB3
14、 DB2 DB1 DB00 1D7 D6 D5 D4 D3 D2 D1 D0功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DDRAM前,要先执行“设置页地址”及“设置列地址”命令。 读数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1读显示数据功能: 读、写数据指令每执行完一次读、写操作,列地址就自动增一。必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。 (2). 12864LCD的时序 写操作时序 12864L
15、CD写时序如图7-5所示,首先给出DATA、RS、WR数据,然后CPU的RW信号给出一个下降沿,也就是E的下降沿。由图中可以看出,写时序在RW的上升沿,给出E的下降沿,将数据写入。图8-5 LCD列驱动接口写时序 读操作时序 如图7-6所示是LCD列驱动接口读时序,RW为高电平时,当给出E的高电平时读出数据。 图8-6 LCD列驱动接口读时序二二 、任务分析、任务分析在点阵图形液晶模块上显示以下内容:在第一行居中显示数字“欢迎使用”,第二行居中显示“系统初始化”,第三行显示“重庆欢迎你的到来”。第四行显示“”。具体如图7-7。图8-7 模拟显示效果图三、任务实施三、任务实施1.12864点阵点
16、阵LCD软硬件设计软硬件设计通过以上学习,分析该任务,可设计出LCD12864的软硬件如图7-8。在调试前先将显示切换开关切换到LCD显示状态。 I/O 设备访问形式控制该液晶显示模块,只要采用单片机的输入输出口模拟12864的读写时序,发送相应的控制指令和数据等,具体I/O 设备访问形式接线电路图如图7-8。 图8-8 单片机与12864硬件接线图 2. 流程图和编程思想流程图和编程思想通过分析和接线, 12864液晶模块的驱动软件流程图如图7-9.图8-9 软件流程图 通过以上流程图,具体的思想,首先初始化,主要完成TG12864的复位,清屏等。然后复位操作(RST=0),其主要状态有设置
17、显示状态为关显示状态,显示起始寄存器清零,显示RAM第一行 对应显示屏上的第一行,在复位期间状态字中RESET位置“1”。最后是清屏操作,主要完成对12864内部的数据存储器清零。 3.程序代码如下:程序代码如下:#include /包含reg52.h头文件,说明了AT89S52芯片中所拥有的特殊功能、 寄存器和可寻址标志位#define uint unsigned int /定义无符号整型 #define uchar unsigned char /定义无符号字符型 #define Dataport/* 数据端口 */ P0 /定义P0端口为LCD数据总线,用于传输指令命令和显示数据 /128
18、64引脚定义以下程序见课本4.实验效果实验效果 经过程序的调试,编译,并下载到单片机,可以在设备上显示如图7-10, 然后用仿真软件可以仿真得出仿真效果图7-11。 图8-10 12864实物实验结果 图8-11 12864仿真实验结果 备注备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。四、任务自评四、任务自评 通过前面的讲解,相信你已经完成了该任务,那么 该任 务你是否完美的完成了?那就通过下面的表格
19、来反映吧!项目内容完成要求 分值完成情况自评分值 LCD12864液晶显示流程设计正确 20程序编写正确 30实物连线正确 20调试结果正确 30五、知识拓五、知识拓展展 上面讲解了在LCD12864液晶上显示文字和字母,下面把知识扩展一下,讲解如何用LCD12864显示直线、绘画、反白、下划线等用法。 绘图画点与擦除点绘图画点与擦除点 下面是画点与擦除点的用法,都是进过测试通过的,前面省略了接线的连接图,连接图和上面的一样,为了使得讲解清楚,并给出了逐行功能,最后付出了实验效果。 /* 将一字节数据dat写到r行,c列 */void wrposnDat(uchar r,uchar c,uch
20、ar dat) /wrpositionDat if(c64)cs1=1,cs2=0; /选择左屏 else cs1=0,cs2=1,c-=64; /选择右屏 wrcdat(0,0 xb8+r); wrcdat(0,0 x40+c); wrcdat(1,dat);/* 读当前显示数据 */uchar ReadDat(uchar r,uchar c) uchar temp;if(c64)cs1=1,cs2=0;/选择左屏else cs1=0,cs2=1,c-=64;/选择右屏wrcdat(0,0 xb8+r);wrcdat(0,0 x40+c);busy12864();Dataport=0 xff
21、;rs=1;rw=1;en=1;en=0;delay(1); /读空操作en=1;temp=Dataport;en=0;/正式读数据return temp; uchar code dotDat8=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; /画点函数,r行号(063),c列号(0127),add=1,画点,add=0删除点, :8个数据对应某页中从上到下8个画点位置。showDot(uchar r,uchar c,bit add) if(add)wrposnDat(r/8,c,ReadDat(r/8,c)|dotDatr%8); /画点。其
22、中,r/8获得“页”号,r%8获得“页内行号”。ReadDat(r/8,c)读原位置数据“|dotDatr%8”从数组中读对应数据,把“点”添加上去(位或),最后再写回液晶模块LCM。 else wrposnDat(r/8,c,ReadDat(r/8,c)&(dotDatr%8); /擦除一个点。“&(dotDatr%8)”数据取反后“位乘”到原数据上。void main() uchar r,c;Init12864(); /初始化for(r=10,c=20;r10;r-,c+=2)showDot(r,c,1); /从(20,40)描点到(40,80),画另一斜线;showDot(25,50,0
23、); /删除两斜线交叉点。while(1);经过实验,效果如图图 8-12 所示,8-12 (a)为画斜线结果。 8-12 (a)画斜线 8-12 (b)画矩形(2)画矩形画矩形 可以利用循环画点得到线,分别画4条线就构成矩形图,得到结果如图7-12 (b)。 /* 画矩形,参数:r1,c1,左上角行列号,r2,c2右下角行列号 */ rect(uchar r1,uchar c1,uchar r2,uchar c2) /画矩形的函数。函数中没有对参数进行“合理性”检测。调用时,参数必须是:r1=r2, c1=c2,同时r1和r2取值063,c1和c2取值0127。 uchar i; for(i=r1;i=r2;i+)showDot(i,c1,1);showDot(i,c2,1); / 画两条。 for(i=c1;i=c2;i+)showDot(r1,i,1);showDot(r2,i,1); void main() Init12864(); /初始化 rect(0,0,63,127);/画第一个矩形 rect(1,1,62,126);/画第二个矩形 rect(5,20,35,95);/画第三个矩形 rect(20,35,58,115);/画第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东外语外贸大学《企业生产物流》2023-2024学年第一学期期末试卷
- 广东松山职业技术学院《项目管理与案例分析》2023-2024学年第一学期期末试卷
- 广东水利电力职业技术学院《书法基础》2023-2024学年第一学期期末试卷
- 七年级上册《5.2.3 解一元一次方程 去括号》课件与作业
- 广东南华工商职业学院《花式跳绳》2023-2024学年第一学期期末试卷
- 广东梅州职业技术学院《创业经营与广告公司管理》2023-2024学年第一学期期末试卷
- 广东岭南职业技术学院《文献检索及研究方法》2023-2024学年第一学期期末试卷
- 八年级上册英语课本
- 从起跑线出发:小学一年级班主任的教学策略分享
- 【KS5u原创】2021年理综生物试题4(解析版)
- 《珍爱生命拒绝毒品》主题班会课件
- 储能锂离子电池 液冷热管理系统运行和维护规范
- GB/T 32399-2024信息技术云计算参考架构
- 2024AI Agent行业研究报告
- 宫腔镜手术并发症及处理
- 安全生产治本攻坚三年行动方案2024~2026(工贸)
- 华为质量回溯(根因分析与纠正预防措施)模板
- 2024版内蒙古自治区劳动合同书(临时工、季节工、农民轮换工)
- GB/T 23587-2024淀粉制品质量通则
- 急性化脓性中耳炎病人的护理课件
- 法人贷款免责说明范文
评论
0/150
提交评论