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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

12864液晶图形滚动显示仿真论文.docx

1、12864液晶图形滚动显示仿真论文2.5 AMPIRE128*64与单片机接口 11 附录 21 12864液晶图形滚动显示仿真学生姓名:张家义 学号:*学 院:物理电子工程学院 专业:电子科学与技术指导教师:马占卿 职称:副教授摘 要:12864液晶具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。本论文以Proteus软件中自带的AMPIRE 12864液晶(基于KS0108控制器)为研究对象,重点分析了其工作原理和编程方法。通过对AT89C51单片机的编程实现了12864液晶的图形滚动显示仿真。关键词:单片机;

2、AMPIRE128*64LCD显示;Proteus Abstract:12864 liquid crystal display (LCD) with low power consumption, small volume, light weight, ultra-thin, etc many other monitors the incomparable advantages, in recent years,it is widely used in single chip microcomputer control of intelligent instruments, meters and

3、 low power consumption electronic products. In this paper by Proteus software built-in AMPIRE 128 x 64 LCD (based on KS0108 controller) as the research object, analyzed its working principle and programming method. Based on AT89C51 single chip microcomputer programming realized the simulation of 128

4、64 LCD graphics scroll.Key words:MCU;AMPIRE128*64LCD display;Proteus1 绪论1.1 论文背景介绍 随着国内外工业的日益发展,目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。LCD 低压微功耗平板型结构,被动显示(无眩光,不刺激人眼,不会引起眼睛疲劳),显示信息量大

5、(因为像素可以做得很小),易于彩色化(在色谱上可以非常准确的复现),无电磁辐射(对人体安全,利于信息保密),长寿命。广泛应用于可视化,人机交互界面。从世界范围来看,液晶显示产业方兴未艾,发展势头正旺。预计今后十年、二十年液晶显示器都将是平板显示的主流产品。我国液晶显示行业尽管也走过了二十多个年头,有了一定的基础。但与先进国家与地区相比差距还很大,要迎头赶上,还只能算刚刚开始。俗话说:兵马未动,粮草先行。液晶显示相关材料对于器件产业的发展至关重要。我们在这方面总体讲,还很落后,还有许多薄弱环节,应当引起各方重视。液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点,

6、近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD 可分为段位式LCD、字符式LCD 和点阵式LCD。其中,段位式LCD 和字符式LCD 只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD 不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,用途十分广泛。LCD 产品制造涉及光学、半导体、电机、化工、材料等各项领域,上下游所需VI技术层面极广,极少有单一厂商能从材料到成品全部都做,因此各领域分工明显。LCD 产业上游材料包括玻璃基板、ITO 导电玻璃、偏光板、彩色滤光片、背

7、光模块、液晶、半导体制造工序所需光罩,液晶驱动IC、印刷电路板(PCB)等。1.2 研究现状综述如何开发智能型的图形液晶控制系统已成为人们研究的当务之急。我们知道,一个较好的系统既要有较强的适应性和通用性,还要有较强的功能性,较高的性价比,很高的实用价值。图形液晶控制技术也有了不断的进步。图形液晶显示已成为大多数仪器正常工作的前提,而且对显示的要求也越来越严格。因此,液晶显示与控制方法的研究越来越受到人们的重视。图形液晶控制系统能很好解决显示控制中的各种问题,所以图形液晶显示控制系统的研究具有很大的市场潜力。随着国内外工业的日益发展,图形液晶显示技术也有了不断的进步。图形液晶显示作为显示终端,

8、图形液晶显示器主要用来显示图形、汉字和字符。KSO1O8是一种常用的功能较强的一种图形液晶显示控制器,而C语言作为单片机编程语言具有通用性和移植性强的等特点。开发基于C语言的KS0108显示驱动程序,可被其他应用系统直接嵌入和移植使用,节约了使用者单独编程和开发的时间和效率,对简化工业控制设计过程和缩短设计周期有着非常积极和促进作用。1.3 论文的主要任务本论文的主要任务是实现12864液晶的图形显示及滚动仿真。我选用的是Proteus软件中自带的AMPIRE 12864液晶(基于KS0108控制器),重点分析了KS0108的指令系统以及编程方法。以AT89C51为核心控制器,通过程序设计,实

9、现汉字和图形的显示。然后通过按键控制汉字和图形的滚动显示。论文前期主要任务为搜集12864液晶资料,重点掌握其工作原理;论文中期任务主要为通过对12864液晶的指令系统的掌握,编写程序代码,在Proteus软件中进行仿真调试,同时开始论文的写作。论文后期主要任务为完善程序的设计,仿真的结果以及论文的写作。2 硬件电路设计2.1 硬件系统结构图此设计控制系统由AT89C51单片机芯片、LCD显示电路、复位电路、晶体振荡电路和按键组成,如图1所示: 图1 总设计框图2.2 AT89C51单片机最小系统设计单片机最小系统主要由单片机AT89C51、电源电路、复位电路、时钟电路组成。2.2.1 AT8

10、9C51单片机AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C51单片机在电子行业中有着广泛的应用。其主要功能特性有以下几点:(1)与MCS-51产品指令系统完全兼容(2)4k字节可反复擦写(大于1000次)Flash ROM;(3)32个可编程I/O口线;(4)128x8bit内部RAM;(5)2个16位可编程定时/计数器中断;(6)时

11、钟频率0-24MHz;(7)可编程UART串行通道;(8)6个中断源;(9)三级加密程序存储器;(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;(11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。AT89C51为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc51 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。其引脚图如图2所示。 图2 AT89C51引脚图2.2.2 时钟电路设

12、计单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得到的时钟信号比较稳定,实际使用中常采用这种方式。图3 振荡电路图2.2.3 复位电路设计单片机在启动运行时,都需要先复位,它的作用是使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51系列单片机本身,一般不能自动进行复位,必须配合相应的外部电路才能实现。复位电路的作用就是使单片机在上电时能够复位或运行出错时进行复位状态。图4 按键与上电复位电路2.3 AMPIRE128*64简介本系统采用液晶显示模块AMPIRE12

13、8X64,为单色LCD,其外形如图5所示。屏幕分为两半控制,控制引脚为CS1和CS2,数据通过移位寄存器输入。图5 AMPIRE128*64外形图管脚一共18个。CS1左半屏片选端,CS2右半屏片选端;VCC、GND就是VCC、GND,没啥好说的;V0液晶显示驱动电压,在网上找的仿真实例中有的这个脚就悬空,我是通过一个电位器接到VCC;RS数据指令选择信号,H为数据,L为指令,有的资料上也叫D/I,我估计是DATA和INSTRUCTIONS这两个单词的缩写;R/W读写选择信号,H为读,L为写,这肯定是READ和WRITE的缩写。E为LCD使能端,R/W为L时,E信号下降沿锁存DB7-DB0;R

14、/W为H时,E为H,DDRAM数据读到DB7-DB0,如果只写不读的话可以接地处理。DB0-DB7数据传输端口。RST复位信号,不过还没弄明白是怎么回事,参考一些资料后接VCC处理。-VOUT估计和V0差不多,液晶显示驱动电压。2.3.1 点阵LCD的显示原理在数字电路中,所有的数据都是以0 和1 保存的,对LCD 控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8 位(一字节)即可。而对于中文,常用却有6000 以上,于是我们的DOS 前辈想了一个办法,就是将ASCII 表的高128 个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低

15、128 位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的A在字模的记载方式如图6 所示:图6 “A”字模图而中文的“你”在字模中的记载却如图7 所示:图7 “A”字模图2.3.2 读操作时序读操作时序如图8所示:图8 读操作时序图2.3.3 写操作时序写操作时序如图9所示:图9 写操作时序图2.4 AMPIRE128*64的指令系统此类液晶显示模块的指令系统比较简单,共有七种。其指令如表2所示。1.显示开

16、/关指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式000011111DD=1:开显示(DISPLAY ON)意即显示器可以进行各种显示操作D=0:关显示(DISPLAY OFF)意即不能对显示器可以进行各种显示操作2.显示起始行设置指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0011A5A4A3A2A1A0前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的。A5A0的6位地址自动送入Z地址计数器,起始行的地址可以是0 63的任意一行。例如: 选择A5A0是62,则起始行与DDRAM行的对应关系如下: DDRAM 行:62 63

17、 0 1 2 328 29 屏幕显示行:1 2 3 4 5 631 323.页设置指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0010111A2A1A0所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页, A2A0表示07页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。页地址与DDRAM的对应关系见DDRAM地址表。4.列地址设置指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0001A5A4A3A2A1A0此指令的作用是将A5A0送入列地址计数器,作为DDRAM的列地址指针。在对DDRAM进行读写操

18、作后,列地址指针自动加1,指向下一个DDRAM单元。DDRAM地址表如表1所示:CS1=1CS2=1Y=016263016263行号X=0DB0DB7DB0DB7DB0DB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB707DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7855X=7DB0DB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB7DBODB75663表1 DDRAM的地址与显示位置关系对照图5.读状态指令代码R/WD/IDB7

19、DB6DB5DB4DB3DB2DB1DB0形式01BUSY0ON/OFFRET0000当R/W=1 D/I=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7DB0)的相应位。ON/OFF:表示DFF触发器的状态(见DFF触发器一节)。RST:RST=1表示内部正在初始化,此时组件不接受任何指令和数据。6.写数据指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式01D7D6D5D4D3D2D1D0D7D0为显示数据,此指令把D7D0写入相应的DDRAM单元,Y地指针自动加1。7.读数据指令代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式11

20、D7D6D5D4D3D2D1D0此指令把DDRAM的内容D7D0读到数据总线DB7DB0,Y地址指针自动加1。由RAM 地址映射表可知LCD 显示屏由两片控制器控制,分别用CS1和CS2控制。每个内部带有64X64 位(512字节)的RAM 缓冲区,对应关系如图3所示。 图3 LCD地址映射图整个屏幕分左、右两个屏,每个半屏右8页,每页有8行,注意数据是竖行排列。显示一个字要16*16点,全屏有128*64个点,故可显示32个中文汉字。每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。而显示数据需要16*8个点,可显示数据是汉字的两陪。屏幕是通过CS1、CS2两信号来控制的,不同

21、的组合方式所选的屏幕是不同的,对应关系如表6所示。 CS1 CS2 选屏 0 0 全屏 0 1 左屏 1 0 右屏 1 1 不选表6 屏幕选择表2.5 LCD与单片机接口AMPIRE128*64液晶的引脚如表2所示:管脚号管脚名称LEVER管脚功能描述1CS1H/LH:选择芯片(右半屏)信号2CS2H/LH:选择芯片(左半屏)信号3GND0电源地4VCC+5.0V电源电压5V0-液晶显示器驱动电压6RSH/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据7R/WH/LR/W=“H”,E=“H”数据被读到DB7DB0R/W=“L”,E=“HL”数据被写到IR

22、或DR8EH/LR/W=“L”,E信号下降沿锁存DB7DB0R/W=“H”,E=“H”DDRAM数据读到DB7DB09DB0H/L数据线10DB1H/L数据线11DB2H/L数据线12DB3H/L数据线13DB4H/L数据线14DB5H/L数据线15DB6H/L数据线16DB7H/L数据线17RSTH/L复位信号,低电平复位18VOUT-10VLCD驱动负电压表2 AMPIRE128*64的引脚在使用12864LCD 前先必须了解以下功能器件才能进行编程。12864 内部功能器件及相关功能如下:1. 指令寄存器(IR)IR 是用于寄存指令码,与数据寄存器数据相对应。当D/I=0 时,在E 信号

23、下降沿的作用下,指令码写入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 为开

24、显示(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)DDR

25、AM 是存储图形显示数据的。数据为1 表示显示选择,数据为0 表示显示非选择。DDRAM 与地址和显示位置的关系见DDRAM 地址表。7Z 地址计数器Z 地址计数器是一个6 位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST 复位后Z 地址计数器为0。Z 地址计数器可以用指令DISPLAY START LINE 预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM 的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM 共64 行,屏幕可以循环滚动显示64 行。2.6 电路设计图电路设计图如图10所示:图10 电路

26、设计图3 程序设计3.1 keil简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3.2 程序流程图基于单片机的12864液晶显示软件设计主要由显示子程序、读出并处理12864LCD显

27、示程序等组成。为了充分发挥AT89C51优越的性能价格比,系统软件采用C语言编写以增强系统的实时性。在设计上尽量做到硬件“软化”,使系统硬件设计得到简化。程序流程图如图11所示。图11 程序流程图3.3 12864LCD主程序3.3.1 引脚定义sbit RS=P10; /RS为0-命令;1-数据 sbit RW=P11; /RW为1-写;0-读 sbit EN=P12; /使能端 sbit CS1=P21; /片选1低电平有效,控制左半屏 sbit CS2=P20; /片选1低电平有效,控制右半屏 sbit KEY1=P30;sbit KEY2=P31;sbit KEY3=P32;sbit

28、KEY4=P33; /四个按键控制口3.3.2读写操作uchar Read_LCD(void) /读数据函数 uchar value; Read_busy(); LCD_databus=0xFF; /先进行一次空读操作 RS=1; RW=1; EN=1; _nop_(); _nop_(); EN=0; LCD_databus=0xFF; /读取真正的数据 RS=1; RW=1; EN=1; value=LCD_databus; _nop_(); _nop_(); EN=0; return value; void write_LCD_data(uchar dat)/写数据函数 Read_busy(); RS=1; /选择数据 RW=0; LCD_databus=dat; EN=1; /EN由1-0锁存有效数据 _nop_(); _nop_(); EN=0;3.3.3 设置指令void Set_pag

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

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