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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

液晶显示控制电路与程序.docx

1、液晶显示控制电路与程序 一、 选题分析题目:液晶显示控制电路与程序设计内容:完成单片机液晶接口的电路和程序设计,实现文本显示功能。(1)液晶显示器为图形点阵液晶,型号YM12864R,控制芯片为ST7920(2)正确连接液晶显示器与单片机(3)编写液晶显示控制程序,显示如下内容:分析:随着计算机及相关的微电子光电子技术的迅猛发展,液晶显示模块在各种场合得到了越来越广泛的应用。目前,液晶显示主要有段式和点阵式两种,其中,点阵式更为广泛,其又可分为文本型显示和图形型显示。YM12864R作为汉字图形点阵液晶显示模块,可以显示汉字及图形,内置8192 个中文汉字、128 个字符及64X256点阵显示

2、RAM,另外还提供四组1616 点的自定义图像空间。YM12864R采用的控制芯片为ST7920,它是一种内置12864 汉字图形点阵的液晶显示控制模块, ST7920 系列芯片由于内置了汉字库而无须人工取字模,在程序控制上简洁明。 为完成YM12864R控制和数据传输,单片机最小系统选择AT89S51,因为AT89S51片内ROM全都采用Flash ROM,具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 综上,硬件电路搭建可由YM12864R 液晶显示电路、单片机的最小系统AT89S51、及外围

3、电路构成。二、 液晶显示控制电路与程序方案设计2.1系统设计思路与框图液晶显示器YM12864R 的控制器ST7920 可以显示字母、数字符号、中文字型及自定图形显示,只要一个最小的微处理系统,将液晶显示模块的接口作为I/O 设备直接与之连接,就可以进行控制液晶显示器和数据传输,从而达到理想的显示效果。使用P3 口给液晶显示器提供控制信号,P0 口给液晶显示器传送数据。YM12864R 液晶显示器的控制信号有PSB、RS、R/W、E,其中RS、R/W、E分别对应接在AT89S51 的P3.0、P3.1、P3.2、P2.3 上,在本次设计中采用并行接口,故PSB接高电平,而8位数据口DB0 DB

4、7对应接在P0 口上。背光灯的电源正极、液晶显示器模块的电源正极以及LCD 驱动电压输入端都接在+5V 的稳压电源上。背光灯负极和模块的电源负极统一接地。液晶显示器模块的复位脚连接开关按纽与地相连。即可实现单片机对液晶显示汉字的控制。系统设计图框如下图2.1所示,主要由单片机的最小系统AT89S51、YM12864R 液晶显示电路及外围电路构成。图2.1 系统设计框图2.2框图模块功能描述及技术指标分析时钟振荡器模块: 利用晶体本身的特性,可以利用晶振与电容搭建振荡电路与AT89S51引脚XTAL1及XTAL2相连,向单片机提供一个频率稳定度较高的时钟脉冲,具体连接见原理图。此外,采用24M晶

5、振获得较高的刷新率,可使屏幕显示更稳定。开关复位电路模块: AT89S51 的复位引脚RST 外接开关复位电路,当电路工作后,闭合开关,只要在RST 引脚上出现2 个机器周期以上的高电平,单片机即可复位。若RST始终保持高电平,则可对AT89S51 循环复位。开关复位电路的组成如原理图电阻R2和开关S1串联后与电容C3并联,然后与R1串联对+5V电压进行分压,R1一端接地另一端接复位信号引脚RST。AT89S51模块:作为核心组成部件之一,ATS8951单片机给YM12864R液晶显示提供控制信号和进行数据传输,从整体上实现液晶显示控制。AT89S51片内ROM全都采用Flash ROM,具有

6、在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。AT89S51片内具有计算机正常运行所必需的部件,片外有很多供扩展用的(总线,并行和串行的输入/输出)管脚,便于扩展,很容易组成一定规模的计算机应用系统。具有丰富的控制指令,控制功能强。此外其体积小,功耗低,价格便宜。YM12864R液晶显示模块: YM12864R液晶显示模块,在其控制芯片ST7920调控下用来显示最终结果。除显示液晶块外,还包含两个重要外围电路开关复位电路及电源控制电路,具体如原理图所示。YM12684的复位引脚RET 外接开关复位电路

7、,当开关闭合时,RET引脚接地,模块复位;当开关断开时,复位信号无效。此外,外接电源电路利用滑动变阻器分压分别给YM12864R的电源地引脚VSS和LCD驱动电压输入端引脚V0供电。2.3 电路原理图电路原理图如图2.2所示,其中单片机AT89S51引脚P3.0-P3.2与YM12864R中RS、R/W、E的连接在图中以网络标签的形式给出。此外,相较于系统设计框图在液晶显示模块控制芯片的调控上,对复位引脚处以简单开关复位电路控制,而电压地VSS及LCD的操作电压以变阻器控制。图2.2 电路原理图 2.4 相关芯片介绍AT89S51: AT89S51是一个低功耗,高性能CMOS 8位单片机,片内

8、含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51引脚图如图2.3,其内部I/O部件包括:1、 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2、 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一个串行通信接口;

9、(SCON,SBUF)4、 一个中断控制器;(IE,IP)图2.3 AT89S51引脚图ST7920:【4】 ST7920是台湾矽创电子公司生产的中文图形控制芯片,它是一种内置128*64-12汉字图形点阵的液晶显示控制模块,用于显示汉字及图形。该芯片共内置8192个中文汉字(16*16点阵)、128个字符的ASCII字符库(8*16点阵)及64*256点阵显示RAM(GDRAM)。为了能够简单、有效地显示汉字和图形,该模块内部设计有2MB的中文字型CGROM和64*256点阵的GDRAM绘图区域;同时,该模块还提供有4组可编程控制的16*16点阵造字空间;除此之外,为了适应多种微处理器和单片

10、机接口的需要,该模块还提供了4位并行、8位并行、2线串行以及3线串行等多种接口方式。 利用上述功能可方便地实现汉字、ASCII码、点阵图形、自造字体的同屏显示,所有这些功能(包括显示RAM、字符产生器以及液晶驱动电路和控制器)都包含在集成电路芯片里,因此,只要一个最基本的微处理系统就可以通过ST7920芯片来控制其它的芯片。ST7920的主要技术参数和显示特性如下:电源:VDD (2.75.5V)5V(内置升压电路,一般无需负压);功耗:正常模式:450A,睡眠模式:3A,低功耗模式:30A;显示内容:128列*64行;显示颜色:黄绿;显示角度:6:00钟直视;LCD类型:STN;与MCU接口

11、:8位并行/3位串行;配置有LED背光显示功能;带有自动启动复位按钮(RESET); 在对ST7920读或写时,会用到两个位的寄存器,一个是数据寄存器DR,另一个是指令寄存器IR。通过数据寄存器DR可以存取DDRAM、CGRAM、CGROM及IRAM的值。待存取的目标RAM的地址可通过命令来选择,每次数据寄存器DR的操作应以上次选择的目标RAM为主体来进行读出或写入。通过RS和RW的状态可以选择不同的读写模式,具体配置方法如表1所列。表1 ST7920的寄存器读写状态RSRW功能说明低电平0低电平0MPU 写指令到指令寄存器IR低电平0高电平1读出忙标志及地址计数器的状态高电平1低电平0MPU

12、 写指令到数据寄存器DR高电平1高电平1MPU从数据寄存器DR 读出指令2.5程序主流程图以及子流程图 整个程序除主函数外包含以下几个子函数: ST7920初始化、写指令、写数据、汉字显示、延时、清屏。ST7920初始化子函数用来完成液晶显示模块的初始化操作并设置显示的方式及必要的参数,为显示操作做好必要的准备;写指令函数向指令寄存器写入不同的命令从而控制液晶显示芯片的显示。写数据函数向数据寄存器写入数据从而在液晶显示屏上显示相应的或字符字符或此外写指令操作与写数据操作的过程基本一致,区别在于写状态对RS及RW的状态选择不同;汉字显示函数包含设置所要显示的汉字或字符的显示的地址,向显示RAM(

13、DDRAM)写入所要显示汉字区码的高八位及低八位三个操作,从而实现在液晶屏上显示字符的功能;延时函数进行一定时间的等待,代替判断忙标志函数,使得上一个指令可以执行完毕,液晶屏处于空闲状态,以便于执行下一条指令;清屏函数用来清除屏幕,进行新的显示;汉字显示主程序包含初始化和调用汉字显示函数显示汉字两个操作,其完成整个汉字送液晶显示的调度。汉字显示子函数流程、ST7920初始化、写指令、写数据子函数流程分别如图2.4、图2.5、图2.6及图2.7所示。其中,图2.6流程向ST7920写各种操作指令,图2.6流程向ST7920写各种操作数据,区别在于写状态对RS及RW的状态选择不同。延时子函数流程如

14、图2.8所示,图2.9为汉字显示主流程,其完成整个汉字送液晶显示的调度。 图2.4 汉字显示子函数 图2.5 ST7920初始化 图2.6 写指令子函数图2.7 写数据子函数 图2.8 延时子函数图2.9 汉字显示主流程三、ST7920指令说明 ST7920的指令集包括基本指令和扩充指令,其中基本指令有11条,扩充指令有7条。每一个指令的长度都为8位。168点阵的ASCII字符代码也是8位。但是1616点阵中文字符的代码为16位,必须分为两次传送,先传送高8位,再传送低8位。具体指令如下:1、清除显示CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000000001功能:

15、清除显示屏幕,把DDRAM 位址计数器调整为“00H”。2、位址归位CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0000000001 X功能:把DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM。3、进入设定点CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB000000001I/DS功能:把DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM 功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5 位地址送入Z 地址计数器,起始地址可以是0-63

16、范围内任意一行。Z 地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。4、显示状态 开/关CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB00000001DCB功能: D=1;整体显示ON C=1;游标ON B=1;游标位置ON。5、游标或显示移位控制CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/LXX功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM 的内容。6、功能设定CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00001DLX0REXX功能:DL=1(必须设为1) RE

17、=1;扩充指令集动作 RE=0:基本指令集动作。7、设定CGRAM 位址CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB00001AC5AC4AC3AC2AC1AC0功能:设定CGRAM 位址到位址计数器(AC)。8、设定DDRAM 位址CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0功能:设定DDRAM 位址到位址计数器(AC)。9、读取忙碌状态(BF)和位址。CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB001BFAC6AC5AC4AC3AC2AC1AC0功能:读取忙碌状态(BF)可以确认

18、内部动作是否完成,同时可以读出位址计数器(AC)的值。10、写资料到RAMCODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB010D7D6D5D4D3D2D1D0功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)。11、读出RAM 的值CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB011D7D6D5D4D3D2D1D0功能:从内部RAM 读取资料(DDRAM/CGRAM/TRAM/GDRAM)。12、 待命模式(12H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000000001功能:进入待命模式,执行其他

19、命令都可终止待命模式。13、卷动位址或IRAM 位址选择(13H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0000000001SR功能:SR=1;允许输入卷动位址 SR=0;允许输入IRAM 位址。14、反白选择(14H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB000000001R1R0功能:选择4 行中的任一行作反白显示,并可决定反白的与否。15、睡眠模式(015H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00000001SLXX功能:SL=1;脱离睡眠模式 SL=0;进入睡眠模式。16、扩充功能设定(016H)COD

20、E: RWRSDB7DB6DB5DB4DB3DB2DB1DB0000011X1REG0功能:RE=1;扩充指令集动作 RE=0;基本指令集动作 G=1;绘图显示ON G=0;绘图显示OFF。17、设定IRAM 位址或卷动位址(017H)CODE: RWRSDB7DB6DB5DB4DB3DB2DB1DB00001AC5AC4AC3AC2AC1AC0功能:SR=1;AC5AC0 为垂直卷动位址 SR=0;AC3AC0 写ICONRAM 位。址18、设定绘图RAM 位址(018H)CODE:RWRSDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0功能:

21、设定GDRAM 位址到位址计数器(AC)。 当ST7920在接收指令前,MCU必须先确认ST7920处于空闲状态。即读取BF=0,才能接收新的指令;如果在送出一条指令前不检查BF状态,则需要延时一段时间,确保上一条指令执行完毕。RE是基本指令集与扩充指令集的选择控制位,当更改RE的状态后,后续指令维持在最后状态。除非再次更改RE状态,否则使用相同指令集时,无需要重新设置RE。四、具体功能程序及硬件实现4.1主要功能程序实现 将要显示的汉字及字符在YM12864R数据手册中一一查出,定义于显示数据数组以便用于调用显示。具体如下:unsigned char mx32 2= /定义汉字字符数组0x2

22、0,0x20, /第一行0xb3,0xa3,0xca,0xec,0xc0,0xed,0xb9,0xa4,0xd1,0xa7,0xd4,0xba, /常熟理工学院0x20,0x20, 0x20,0x20,0x20,0x20, /第二行显示数据0xbf,0xce,0xb3,0xcc,0xc9,0xe8,0xbc,0xc6, /课程设计0x20,0x20,0x20,0x20, 0x20,0x20, /第三行显示数据0xd7,0xf7,0xd5,0xdf,0xa1,0xc3,0x20,0x20,0xc5,0xa3,0xcc,0xce, /作者: 牛涛0x20,0x20, 0x20,0x20, /第四行

23、显示数据0xd5,0xc5,0xc6,0xf4,0xcb,0xb3,0x20,0x20,0xd5,0xd4,0xbd,0xa8, /张启顺 赵建0x20,0x20; 通过改变RS和RW的状态选择不同的读写模式,定义写指令及写数据子函数,以便调用来完成数据在液晶显示器上的显示,其中,通过延时调用来避开向液晶送数据的忙状态。子函数定义如下:void wcom(unsigned char d) /写指令子函数 delay(2); RW=0; /写选通 RS=0; /写指令 P0=d; /将要写的数据送给P1口 E=1; /使能有效 E=0; /关闭使能信号 delay(10); void dat(u

24、nsigned char d) /写数据子函数 delay(2); RS=1; /数据操作 RW=0; /写选通 P0=d; /将要写的数据送给P1口 E=1; /使能有效 E=0; /关闭使能信号 delay(10); 清屏以便重新显示: void clearlcd() /清屏 wcom(0x01); /清除显示 对硬件端口及液晶显示器初始化: void init() /初始化子函数 E=0; /关闭使能信号 wcom(0x38); /功能设定 wcom(0x08); /关显示指令 wcom(0x06); /游标右移 wcom(0x0c); /开显示指令 clearlcd(); /清屏 定义

25、汉字显示子程序,以便调用向液晶显示器送显示数据: void hanzi (unsigned char w, unsigned char wb1,unsigned char wb2 ) wcom(w); /设置起始地址 dat(wb1); /数据送液晶显示 dat(wb2); 编写主函数以完成最终整个实现程序过程的调度: void main() int i; init(); /调用初始化函数进行初始化操作 while(1) for(i=0;i32;i+) hanzi(addri,mxi0,mxi1 ); /调用汉字显示,向液晶送数据显示 4.2实验步骤 完成硬件电路的设计及焊接 完成软件的设计并

26、编写具体程序1、新建工程 在菜单Project-New Project中新建工程my1.uv2;2、选择CPU 根据对话框选择CPU类型(公司、型号等)本次课程设计采用 ATMEL公司的AT89S51,点击确定按钮后出现如下对话框,选择“否”。3、新建文件 点击File-New,新建文件,并保存为lcm.c;4、添加源文件 点击Project-Window中Target1文件夹右边的“”号,显示子文件夹Source Group 1,选中Source Group 1文件夹并点击鼠标“右键”,出现快捷菜单。点击Add Files To Group Source Group 1,在对话框中完成源文件向工程的添加。 添加完成后,在Project Workspace窗口的Source Group 1项前多了“”号,点击“”号即可看到所添加的文件“lcm.c”5、编译 用快捷按钮Build target对工程进行编译,在Output Window中有编译提示信息,可根据该信息对源文件进行修改。6、软件仿真 点击Strat/Stop Debug Session,可对程序进行设置断点、单步、连续等执行操作。7、HEX文件设置 选中Target1文件夹并点击鼠标“右键”,选择快捷菜单中的Option for Target Target 1。在“Output”对话框

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

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