ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:248.32KB ,
资源ID:4143216      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4143216.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AMPIRE128X64显示器中文手册及示例代码.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AMPIRE128X64显示器中文手册及示例代码.docx

1、AMPIRE128X64显示器中文手册及示例代码AMPIRE 128X64 显示器1.LCD 接口液晶显示器件【3】(LCD )独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块 和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛, 因为汉字不能像 西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。本课设所选择的LCD是AMPIRE128 X 64的汉字图形型液晶显示模块,可显 示汉字及图形,图形液晶显示显示器接口如图 3-1所示。LCD2AMPIRE128X64图3-1 LCD电路图表 AMPIRE128 X 64接

2、口说明表管脚 号管脚电平说明1CS1H/L片选择信号,低电平时选择前 64列2CS2H/L片选择信号,低电平时选择后 64列3GND0V逻辑电源地4VCC逻辑电源正5V0LCD驱动电压,应用时在 VEE与V0之间加一 2K可调电阻6RSH/L数据 指令选择:高电平:数据 D0-D7将送入显示RAM 低电平:数据D0-D7将送入指令寄存器执行7R/WH/L读 写选择:高电平:读数据;低电平:写数据8EH/L读写使能,高电平有效,下降沿锁定数据9DB0H/L数据输入输出引脚10DB1H/L数据输入输出引脚11DB2H/L数据输入输出引脚12DB3H/L数据输入输出引脚13DB4H/L数据输入输出引

3、脚14DB5H/L数据输入输出引脚15DB6H/L数据输入输出引脚16DB7H/L数据输入输出引脚17RSTL复位信号,低电平有效18VOUT -10VLCD驱动电源2.指令描述(1)显示开/关设置CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBOLLLLHHHHHh/lH功能:设置屏幕显示开/关DB0=H,开显示;DB0=L,关显示。不影响显示 RAM(DD RAM)中的内容。(2)设置显示起始行CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LL HH行地址(063)功能:执行该命令后,所设置的行将显示在屏幕的第

4、一行。 显示起始行是由 Z地址计数器控制的,该命令自动将 A0-A5位地址送入Z地址计数器,起始地 址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行 扫描同步,当扫描完一行后自动加一。(3)设置页地址CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBOLL HLHHH页地址(o7)n功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。地址就是DD RAM的行地址,页地址存储在 X地址计数器中,A2-A0可表示8页, 读写数据对页地址没有影响,除本指令可改变页地址外,复位信号 (RST)可把页 地址计数器内容清零。DDRAM地

5、址映像表如表所示。表 RAM地址映像表Y地址0 1 261 62 63DBO/PAGEOX=ODB7DBO/PAGE1X=1DB7DBO/PAGE6X=6DB7DBO/PAGE7X=7DB7(4)设置列地址CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBOL1 L L .H列地址(O63)功能:DDRAM的列地址存储在Y地址计数器中,读写数据对列地址有影响在对DDRAM进行读写操作后,丫地址自动加一。(5)状态检测CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DBOHLBFLON/OFFRSTr lLLL功能:读忙信号标

6、志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)BF=H :内部正在执行操作;RST=H:正处于复位初始化状态;(6)写显示数据CODE: R/W RS DB7DB6 DB5 DB4DB3 DB2DB1DBOBF=L :空闲状态。RST=L :正常状态。LHD7D6D5D4D3D2D1D0功能:写数据到DDRAM , DDRAM是存储图形显示数据的,写指令执行后 丫地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写 数据到DD RAM前,要先执行 设置页地址”及 设置列地址”命令。(7)读显示数据CODE:R/W RS DB7DB6DB5DB4DB3 DB

7、2DB1 DB0HHD7:D6D5D4D3D2D1D0基本操作时序:1读状态:输入:RS=L,R/W=H,CS1 或CS2=H,E=H输出:D0D7=状态字2写指令:输入:RS=L,R/W=L,D0D7=指令码,CS1或CS2=H,E=W脉冲输出:无3读数据:输入:RS=H,R/W=H,CS1 或CS2=H,E=H输出:D0D7=数据4写数据:输入:RS=H,R/W=L,D0D7=数据,CS1或CS2=H,E=高脉冲输出:无由RAM地址映射表可知LCD显示屏由两片控制器控制,分别用 CS1和CS2控制。每个内部带有64X64位(512字节)的RAM缓冲区,对应关系如图3-2所示。LCD128*

8、64 点IC1IC28页*64列8页*64列64*64 点64*64 点图3-2 LCD地址映射图整个屏幕分左、右两个屏,每个半屏右8页,每页有8行,注意数据是竖行排 列,如表。显示一个字要16*16点,全屏有128*64个点,故可显示32个中文汉字。 每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。而显示数据 需要16*8个点,可显示数据是汉字的两陪。屏幕是通过CS1、CS2两信号来控制的,不同的组合方式所选的屏幕是不同 的,对应关系如表所示。表屏幕选择表CS1CS2选屏00全屏01左屏10右屏11不选(8)操作1设定开始页地址和列地址;2设定读写模式,进行读写操作。只有理解

9、了液晶显示器各个指令 【4】的功能,再结合单片机的指令系统,就 能编写C语言程序来达到混合显示汉字与数字的目的。通过程序将字的代码写入 相应的DDRAM地址,就可以再相应的位置显示相应的字。3.汉字字模提取液晶显示器件(LCD )独具的低压、微功耗特性使他在单片机系统中特得到 了广泛的应用,常用的液晶显示模块分为数显液晶模块、 点阵字符液晶模块和点 阵图形液晶模块,其中图形液晶模块在我国应用较为广泛, 因为汉字不能象西文 字符那样用字符模块即可显示,要想显示汉字必须用图形模块。液晶模块显示汉字方法:使用图形液晶模块以点阵形式来显示汉字和图形, 每8个点组成1个字节,每个点用一个二进制位表示,存

10、1的点显示时在屏上显示 一个亮点,存0的点则在屏上不显示,最常用的16X16的汉字点阵由32个字节组 成。以在我国应用较为普及的液晶显示驱动控制器 12864为例,在液晶屏上竖向8个点为1个字节数据,通过字模提取软件按照先左后右,先上后下的方式对汉字 进行字模提取。图3-3字提取方格由于D0-D7是从上到下排列的,最上面 8行是上一页,我们先提取上面一 页的数据16个,在按照相同的方法提取下一页的数据 16个,在分别写入对应的 DDRAM地址,就可以显示我们所需要的字。简单的字可手工制作, 也可以用起模软件zimo221【5】提取标准的宋体汉字,不过本文所用的液晶显示屏用这款软件 要设计纵向取

11、模并且要反字节,否则将显示乱码。数字只需起汉字的一半数据就 可以了,如图3-3所示的左边8列或者右边8列。1)AMPIRE12864液晶显示器主要硬件构成AMPIRE12864液晶显示器主要包括以下几个硬件模块:显示数据RAM(DDRAM)DDRAM (64$ bits)是存储图形显示数据的。此 RAM的每一位数据对 应显示面板上一个点的显示(数据为 H )与不显示(数据为L )。DDRAM的地 址与显示位置关系对照如表2-8所示。表2-8 DDRAM的地址与显示位置关系对照图CS2=1CS仁1Y=01630163行号X=0DB0DB0DB0DB0DB0DB0DB0DB00DB7DB7DB7D

12、B7DB7DB7DB7DB77DB0DB0DB0DB0DB0DB0DB0DB08DB7DB7DB7DB7DB7DB7DB7DB756X=7DB0DB0DB0DB0DB0DB0DB0DB057DB7DB7DB7DB7DB7DB7DB7DB763I/O缓冲器(DB0DB7)I/O 缓冲器为双向三态数据缓冲器。是 LCM (液晶显示模块)内部总线与 MPU 总线的结合部。其作用是将两个不同时钟下工作的系统连接起来,实现通 讯。I/O缓冲器在片选信号/CS有效状态下,1/0缓冲器开放,实现LCM (液晶显 示模块)与 MPU 之间的数据传递。当片选信号为无效状态时, I/O 缓冲器将中 断 LCM (

13、液晶显示模块) 内部总线与 MPU 数据总线的联系, 对外总线呈高阻状 态,从而不影响 MPU 的其它数据操作功能。3输入寄存器输入寄存器用于接收在MPU运行速度下传送给LCM (液晶显示模块)的数 据并将其锁存在输入寄存器内,其输出将在 LCM (液晶显示模块)内部工作时 钟的运作下将数据写入指令寄存器或显示存储器内。4输出寄存器输出寄存器用于暂存从显示存储器读出的数据,在 MPU 读操作时,输出寄 存器将当前锁存的数据通过 I/O 缓冲器送入 MPU 数据总线上。5指令寄存器指令寄存器用于接收 MPU 发来的指令代码,通过译码将指令代码置入相关 的寄存器或触发器内。6状态字寄存器状态字寄存

14、器是 LCM (液晶显示模块)与 MPU 通讯时唯一的 “握手”信号。 状态字寄存器向MPU表示了 LCM (液晶显示模块)当前的工作状态。尤其是状 态字中的忙”标志位是MPU在每次对LCM (液晶显示模块)访问时必须要读出 判别的状态位。当处于忙”标志位时,I/O缓冲器被封锁,此时MPU对LCM (液 晶显示模块)的任何操作(除读状态字操作外)都将是无效的。7X 地址寄存器X 地址寄存器是一个三位页地址寄存器,其输出控制着 DDRAM 中 8 个页 面的选择,也是控制着数据传输通道的八选一选择器。 X 地址寄存器可以由 MPU 以指令形式设置。 X 地址寄存器没有自动修改功能, 所以要想转换

15、页面需要重新 设置 X 地址寄存器的内容。8Y 地址计数器Y 地址计数器是一个 6位循环加一计数器。 它管理某一页面上的 64 个单元。 Y 地址计数器可以由 MPU 以指令形式设置,它和页地址指针结合唯一选通显示 存储器的一个单元, Y 地址计数器具有自动加一功能。在显示存储器读 /写操作 后 Y 地址计数将自动加一。当计数器加至 3FH 后循环归零再继续加一。2) AMPIRE12864 液晶显示器控制接口信号说明AMPIRE12864 液晶显示器共有 5 个控制引脚,对应 5 个控制信号。它们分别是寄存器选择信号RS,读写控制信号R/W,使能信号E,左屏片选信号CS1, 右屏片选信号CS

16、2。下面通过几个表格来详细说明这些控制信号的作用。RS, R/W的配合选择决定读写方式的4种模式,如表2-9。表2-9 RS,R/W的配合选择决定读写方式的4种模式RS信号R/W信号功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据使能信号E控制方式见表2-10表2-10使能信号E控制方式E状态执行动作功能高 低I/O缓冲 DDRAM配合R/W写数据或指令高DDRAM1/0缓冲配合RS进行读数据或指令低 高无动作3) AMPIRE12864液晶显示器指令说明AMPIRE128

17、64液晶显示器的寄存器选择信号 RS,读写控制信号R/W与8位三 态数据口输入输出的控制代码的不同组合就组成了不同的控制指令, 这些指令控 制液晶显示器完成各种操作。下面就用一个表格对这些指令做出详细的说明,如 表2-11所示。表2-11 AMPIRE12864液晶显示器指令说明指令指令码功能RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H并且设 定DDRAM的地址计数器AC) 到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到 开头原点位置;这个指令不改变DDRAM的内容显示状 态开/关0000001DC

18、BD=1:整体显示0NC=1:游标ONB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入 时,设定游标的移动方向及 指定显示的移位游标或 显示移 位控制000001S/CR/LXX设定游标的移动与显示的移 位控制位;这个指令不改变DDRAM的内容功能设定00001DLXREXXDL=0/1 : 4/8 位数据RE=1:扩充指令操作RE=0:基本指令操作设定DDRAM列地址0010AC5AC4AC3AC2AC1AC0设定DDRAM列地址(Y地 址)第一行:80H- 87H第二行:90H- 97H设定DDRAM行地址0001111P2P1P0设定DDRAM 页面地址(

19、X 地址)读取忙 标志和 地址01BF .AC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内 部动作是否完成,同时可以 读出地址计数器(AC)的值写数据 至U RAM10数据将数据D7 D0写入到内部的RAM读出RAM值11数据从内部RAM读取数据D7D0二、驱动程序源码分析接口定义:uchar xdata DB _at_ 0x3fff;定义地址为 3fffh的扩展口为 AMPIRE12864的三态数据输入口,当然可根据自己具体情况定义;uchar xdata CS _at_ 0x5fff;/定义地址 5fffh 的扩展口为 AMPIRE12864 的左右 屏选择控制信号输

20、入口;uchar xdata RSRWE _at_ 0x7fff;/定义地址为 7fffh 的扩展口为 AMPIRE12864 的寄存器选择信号,读/写操作选择信号和使能信号的输入口。1)检测忙信号标志BFBF标志提供内部工作情况。BF=1表示模块在进行内部操作,此时模块不接 受外部指令和数据。BF=O时模块为准备状态,随时可接受外部指令和数据。 利用表2-11中的 读取忙标志和地址”指令,可以将BF读到DB7总线,从而检 验模块之工作状态。检测忙信号标志 BF驱动函数代码如下: void Check_busy() uchar a;RW=1;RS=0;E=1;读出忙标志(BF)准备while(

21、1)E=0;读出忙标志(BF)就绪if(!(P0&0xx80) 读取忙信号 break;/不忙跳出E=1;a+;if(a10)防止死循环break;/E=1;/读出忙标志(BF)准备 2)写控制命令在AMPIRE12864的初始化,DDRAM列地址的设定和行地址的设定都是由写控制命令来完成的。当R/W=0,RS=0时在使能信号的配合下就可以把控制命令写入到指令暂存器(IR)。写时序图如图3-5示ER/WRS/CSDBO-7图3-5 AMPIRE12864 写时序图写控制命令驱动函数代码如下:void Write_inst(uchar inst)Check_busy();RS=0;RW=0;E=

22、1;P0=inst;E=0;_nop_();3)写数据当寄存器控选择控制信号RS=O写指令寄存器(IR)即为写控制命令,RS=1 时写数据寄存器即为写数据。写数据驱动函数代码如下:void Write_data(uchar dat) Check_busy();RS=1;RW=O;E=1;PO=dat;E=O;_nop_();1 )设定显示字符行列地址在AMPIRE12864上显示一个字符是必须先设定其行列地址,设定行列地址 的操作指令见表 2-11。设定显示字符行列地址驱动函数代码如下:void set_xy(uchar x,uchar y)/x为行,y为列if(y=64)列地址大于等于64时

23、右屏显示CS=1;y=y-64;else/列地址小于64时左屏显示CS=2;write_cm(0x40|y);写列地址_nop_();write_cm(0xb8|x);写行地址2)AMPIRE12864的初始化在对AMPIRE12864操作前须初始化,对其做一些必要的设置。这些设置包括: 基本指令操作设置;开显示,关光标,不闪烁;清除显示;光标的移动方向, DDRAM 的地址计数器加 1。设置的操作指令详见表 2-11。AMPIRE12864初始化驱动函数代码如下:void LCD_Init()write_cm (0x30);/30H-基本指令操作delayus(4);write_cm (0x

24、0c);/开显示,关光标,不闪烁。delayus(10);write_cm (0x01);/ 清除显示delayms(10);write_cm (0x06);/光标的移动方向左,DDRAM的地址计数器(AC )加1。 delayus(10);3)AMPIRE12864显示功能模块AMPIRE12864显示功能通过函数 void disp(uchar index416)实现。入口参 数uchar index416为字库索引数组,给出在指定位置显示的字符的图形点阵在 uchar code zk16中的索引地址,本系统中所有字符的图形点阵都由字模提取软 件提取并存储在图形点阵数组uchar code

25、 zk16中。在void disp(uchar index416)调用了两个函数:void Disp_hz(uchar R,ucharL,uchar *p)用来显示汉字,其程序代码如下:void Disp_hz(uchar R,uchar L,uchar *p)uchar i; for(i=0;i16;i+) set_xy(2*R,16*L+i);/ 设定显示位置 write_data(pi);/ 写入 DDRAM set_xy(2*R+1,16*L+i);write_data(pi+16); 入口参数uchar R, uchar L分别指明字符或汉字的显示位置的行号和列号, uchar *p

26、为图形点阵数组的首地址指针。void Disp_zf(uchar R,uchar L,uchar *p)用来显示 ASCII字符,其程序代码如下: void Disp_zf(uchar R,uchar L,uchar *p)uchar i; for(i=0;i8;i+) set_xy(2*R,8*L+i);write_data(pi); set_xy(2*R+1,8*L+i);write_data(pi+8); 入口参数uchar R,uchar L分别指明字符或汉字的显示位置的行号和列号, uchar *p为图形点阵数组的首地址指针。AMPIRE12864显示功能模块程序代码如下: void disp(uchar index416)uchar i,j; for(i=0;i4;i+) for(j=0;j14)Disp_hz(i,j/2,&zkindexij0);/ 显示汉字j+;elseDisp_zf(i,j,&zkindexij0); 显示ASCII 字符显示以一整屏为单位,在显示之前应先给 index416 赋值以确定液晶显示器 的显示内容。如给 index416 以下赋值:index02=131;index04=133;index06=135;index08=137;index010=139;index012=139;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1