基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx

上传人:b****5 文档编号:8465142 上传时间:2023-05-11 格式:DOCX 页数:11 大小:609.08KB
下载 相关 举报
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第1页
第1页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第2页
第2页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第3页
第3页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第4页
第4页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第5页
第5页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第6页
第6页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第7页
第7页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第8页
第8页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第9页
第9页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第10页
第10页 / 共11页
基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx

《基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx(11页珍藏版)》请在冰点文库上搜索。

基于AT89S52单片机实现12864液晶屏显示Word文档格式.docx

学年设计任务要求

实现基于单片机对于128*64液晶屏的控制,以及文字显示

学年设计工作进度计划

序号

起止日期

工作内容

分工情况

1

2010-7-2

~

2010-7-5

商讨问题的解决路径和初步实施方案。

本小组组员根据个人所学情况,对问题认真分析,想出自己特色的实施方案,为下次会议的方案选择做准备

2

2010-7-6

2010-9-5

暑期时间个成员在家对课程设计进行分析。

小组人员对课程设计进行具体的分析

3

2010-12

对个人工作进行分析并对最后的进行检验

小组成员对最后程序进行研究、检验并发表自己的见解

4

2010-9-12

对已经完成的实验在实验室中老师进行知道分析

小组成员根据老师的指导,进行实验报告的完成。

教研室审核意见:

教研室主任签字:

年月日

摘要:

本文介绍以AT89S52单片机为控制核心,利用四位按键输入,以128*64液晶作为屏幕的显示模块。

该模块硬件结构结单、功能齐全,工作稳定,可完成目前绝大部分设备的显示。

关键词:

AT89S52单片机;

液晶;

中文显示

1绪论

1.1研究背景

液晶是现在电子产品中使用越来越多的一种显示器件。

我们经常会在各种各样的电子产品和仪器上看到液晶显示器的存在。

这些液晶品种繁多,功能不一。

有的是字符型,有的是点阵型。

常常用来显示各种参数。

包括电压、电流、温度及各种电气参数和一些特定信息。

液晶不但用来显示各种文字还可以被设计成各种图案、通过改变里面特定显示RAM的内容。

还还可以动态的显示各种图案及画面。

液晶的使用打破了以往单一的声光显示功能,为人们提供了更多丰富多彩的显示信息。

许多学校研究了基于128×

64点阵液晶显示的智能温度控制器的设计与实现及相关研究。

本次设计就是基于AT89S52单片机实现128*64液晶屏显示。

1.2主要工作

首先是每个成员通过看书和上网找资料以便对AT89S52单片机有所了解,然后再开始进行设计。

在用AT89S52单片机实现128*64液晶屏菜单显示时主要用的方法是C语言单片机原理,及数字逻辑的相关知识。

进行实验时先进行平台搭建,之后在电脑上先仿真设计,成功后再实际进行电路的连接。

1.3本文结构

本文的第一部分主要是对题目和该实现目标的分析,以及本文的主要大意,第二部分是对设计步骤的描述和有关的需求分析,第三部分则是对该程序的详细设计。

该系统在认真分析可行性的基础上,提出了功能模块的构想,通过各个功能模块的有机结合,在单片机的有效调用下,实现128*64液晶屏的显示。

2硬件的设计

2.1要求

深入理解液晶屏显示原理及字符显示原理实现基于AT89S52的单片机对于128*64液晶屏的控制,实现中文显示。

2.2电路的设计

2.2.1平台搭建

整个设计首先是在protues软件中进行硬件的搭建及仿真的。

因为通过protues软件能仿真模拟电路、数字电路、数模混合电路;

能绘制原理图、PCB图;

几乎包括实际中所有使用的仪器等。

而其最大的优点在还是于能够对单片机进行实物级的仿真,可自行设计电路从程序的编写,编译到调试,目标版的仿真一应俱全。

支持汇编语言和C语言的编程。

还可配合KeilC实现程序的联合调试,将Proteus中绘制的原理图作为实际中的目标板,而用KeilC集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试,即Proteus运行在一台计算机上,而KeilC运行在另一台计算机上,通过网络连接实现远程的调试。

因此,本次设计选择在protues软件中进行仿真设计。

2.2.2模块设计

整个设计的核心部件是AT89S52单片机、128*64的液晶屏及周边的晶振和按键等原件。

2.3单片机的选择

本设计选用AT89S52系列单片机是因为其管脚排列如图1。

AT89S52,8位单片机是MSC-51系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。

与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产[1]。

AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。

根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。

片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式和断电保护。

可以在4V到5.5V宽电压范围内正常工作。

不断发展的半导体工艺也让该单片机的功耗不断降低。

同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。

根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。

图1AT89S52引脚排列图

2.4LCD模块的结构

通常所见的LCD模块分为:

LCM(玻璃)、背光、PCB板;

而背光和PCB板部分其实是可有可无的,视具体的LCD模块而定。

点阵的LCD模块按照驱动控制器的集成方式,大可分为两种:

COB和COG.。

MzL02-12864为一块128*64点阵的LCD显示模块,模块上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,[2]接口简单、操作方便;

为方便用户的使用,在LCM的基础上设计了MzL02-12864模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。

MzL02-12864模块与各种MCU均可进行方便简单的接口操作。

2.4.1模块接口引脚

图2.1LCD接口引脚

其具体功能如下

表2.1

接口引脚名

说明

LEDK

背光负极输入

NC

C86

并行接口选择:

高电平:

6800总线低电平:

8080总线

PS

串行/并行接口选择,高电平:

并行总线接口低电平:

串行接口

5

EP

6800系列MPU的时钟信号使能脚(EP),当选择总线接口为8080时,该线为RD信号

6

WR

6800系列MPU的读/写控制信号(R/W);

8080系列MPU总线的写使能信号

7

A0

数据命令选择脚

8

Reset(RST)

复位脚(低电平复位)

9

CS

片选(低电平有效)

10

LEDA

背光正极输入

11

GND

12-19

DB7~DB

8位数据总线

2.5连接方式

在实际应用中,液晶模块与单片机的连接方式很多,从占用I/O口线的多少来分有串行方式和并行方式,其中串行方式速度较慢,占用的口较少,并行方式分为4线和8线,速度较快,占用的I/O口多,实际应用中以并行方式居多。

LCD12864的管脚共有20个之多,但是连接的电路并不复杂。

但是需要注意的是LCD的电源共有2组,一组是用于驱动LCD显示,另一组用于背光显示。

可将这两组连再一起或者背光电源省略。

[3]另外有个输入管脚V0需要接入LCD调整电压来调节对比度。

通常刚使用液晶时的问题是由此引起的,对比度过高于或过低均会使屏幕无法正常显示。

它可接至10K-20K电位器的调整端,电位器两端分别接至VDD与VEE。

目前市场上某些LCD12864的对比度可由单片机操作其寄存器调节,可根据不同的条件进行选择。

其余的端口均连接至单片机。

本文将IO口DB0-DB7连接至P2口,RS、RW、E、CS1、CS2、RET分别连接至P1.0至P1.5。

[4]其他硬件部分,四位按键分别连接P3.2-P3.5,由于四位按键已能完成基本功能,操作简单,使用方便,分别设置为左右选择键,上下选择键,且节省单片机IO口,因此不采用矩阵键盘目前51系列单片机是国内外应用最广泛的一类单片机的P0口和P3口的部份引脚与DMC20261型液晶显示连接电路如图2.2所示[5]

图2.2单片机与液晶屏的连接

3软件设计

3.1字符的显示

在数字电路中,所有数据都是由0和1保存的,同样LCD也利用了这一方法。

在点阵LCD上显示的只有两种颜色,因此可利用0和1来表示这两种颜色。

假设空格是由16*16个0组成的,再显示16*16的字体时,将其中某些点置为1便可再视觉上形成一个汉字,这些二进制数称为代位码。

而这些由0和1转换而成的16进制数据便是字模。

不同的汉字有不同的字模,相同的汉字不同的字体也有不同的字模。

而将字模设为16*16像素是因为这样基本可以将汉字显示清楚准确,更高像素则更为清楚准确,但是却更多地占用了LCD的面积。

与汉字不同的是,一个字符只需要16*8的像素便即可。

假设要在LCD12864屏幕上准确正确的显示出汉字,则需要将16*16的汉字分为两行,每行由16列组成,这16列每列存再8个点,用2位16进制数(8位二进制数)表示这8个点,16个16进制数可表示1行,32个16进制数则能表示整个汉字。

通过LCD12864,则可将这些字模信息还原成汉字或图像。

[6]

MzL02-12864液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;

驱动控制芯片当中共有65(8Pagex8bit+1)X132个位的显示RAM区。

而显示器的显示点阵大小为64X128点,所以实际上在液晶显示模块中有用的显示RAM区为128*64个位;

按byte为单位划分,共分为8个Page,每个Page为8行,而每一行为128个位(即128列)驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:

纵向排列,低位在上高位在下。

3.2显示模块函数的设计

3.2.1LCD底层接口驱动程序

首先是LCD的初始化,包含对LCD的复位与关开显示。

利用LCD的初始化函数voidLCD_Init(void),其中对液晶操作的延时为两个_nop_();

语句以确保时序的正确性。

初始化完毕后执行写命令函数voidLCD_WriteCmd(ucharCmdCode)和写数据函数voidLCD_WriteData(ucharData)。

空闲状态检测时利用读状态函数ucharLCD_ReadStatus(void)读入的状态BUSY与RST位均为0时即检测到LCD空闲,跳出while循环,将E置0后跳出函数。

对于液晶的读写均用到空闲状态检测以保证液晶的正常显示[7]。

3.2.2用户接口驱动程序

为了方便对LCD的使用,本设计提供了多个对LCD操作的子函数。

使模块功能提升,方便屏幕显示界面的美化。

清屏函数voidLCD_Clear(void),其原理为将DDRAM中所有数据置0,则屏幕上所有显示内容被清除。

图像显示函数voidLCD_Writeimage(ucharx,uchary,ucharm,ucharn,ucharcode*image)。

该函数的功能为在第x行第y列为起始位置显示一张m*n的图片(x范围0-3,y范围0-7,m、n要求为16的整数倍)[8]。

显示汉字函数voidLCD_Writehz(ucharx,uchary,ucharn,ucharcode*hanzi,ucharstate)。

该函数功能为在指定的屏幕位置显示hanzi数组存放的汉字。

其中参数表示第x行第y列显示n个汉字(x范围0-3,y范围0-7,屏幕显示4行8列汉字)。

state参数为表示汉字的是否反色显示。

由于该LCD分为左右两屏,因而该函数主要使文字能在两屏上正常显示。

该函数可正确显示16*8的字符型数据。

其中x,y代表字符显示位置(x范围0-3,y范围0-15,屏幕显示4行16列字符)。

参数m为需要显示的数字或字母。

该函数与显示汉字函数类似,内部运用Case语句对m进行判断并选择不同的字模写入到LCD的DDRAM中。

设置图形显示模式函数voidLCD_SetPaintMode(uintModeCode)。

参数ModeCode可以是下列几种情况:

为0时,覆盖显示,图形所在位置的原有显示内容将被覆盖掉;

为1时,叠加显示,图形所在位置中原有的黑色点将被保留;

为2时,擦除显示,图形反色显示,但图形所在位置中原有的白色点将被保留;

为3时,异或显示,图形中每一个点与原有的点做异或,即如果图形中某点的颜色与其所在位置原有的颜色相同,则该点显示白色,如果新颜色与原来颜色不同,则该点显示黑色。

ModeCode的值保存在全局变量CurPaintMode中[9]。

显示点函数voidLCD_PutPixel(uintx,uinty)。

该函数功能为在屏幕坐标为x,y的地方放置一点(x范围0-127,y范围0-63[10])

具体工作的流程图如下:

4.系统测试与调试

在keilC中编写程序并调试成功,调试结果如图4.1:

图4.1程序调试

先在在protues软件中连接好电路如图4.2所示:

图4.2电路连接图

把程序调试成功后生成的hex文件输入仿真软件后调试结果如图4.2所示:

图4.3显示结果

5.致谢

在学年设计结束的时候,向帮助我们分析和指导的赵亮老师致谢。

本次实验中组员们都在尽自己的全力去查阅资料积极地讨论,都提出了自己的独特观点,使这次的设计能够顺利的完成,再次的向帮助过我们的人致谢!

6.学年设计总结与体会

通过这次实验我们自己选择芯片连接电路,以及编写程序。

其中遇到许多困难,在老师的帮助和不懈鼓励下我们终于顺利完成这个实验

7.结束语

本文介绍液晶显示屏与AT89S52单片机接口的设计方法,硬件电路与软件实现简单易行。

基于AT89S52单片机实现128*64液晶屏菜单显示。

及液晶显示的工作原理

参考文献

[1]何立民.单片机高级教程——应用与设计[M].北京:

北京航空航天大学出版社,1999.

[2]刘大茂.智能仪器(单片机应用系统设计)[M].北京:

机械工业出版社,1998.

[3]李维缇,郭强.液晶显示器件应用技术[M].北京:

电子工业出版社,2000.

[4]曾兴雯,刘乃安,陈键.高频电路原理与分析[M].3版.西安:

西安电子科技大学出版社,2001.

[5]]刘波.单片机与液晶控制器的接口设计[J].机械工程与自动化,2006(4):

63—64

[6]林秋华,王兢,刘志远.字符显示原理[J].计算机应用2001

(1):

31—33.

[7]谭浩强.C语言程序设计[M].2版.北京:

清华大学出版社,1999.

[8]呼克佑,师智斌,刘爽英.c语言程序设计[M].北京:

中国宇航出版社,2002.

[9]王建校,杨建国.宁改娣,等.51系列单片机及C51程序设计[M].北京:

科学出版社,2002.

[10]徐均,张银玲.基于虚拟仪器技术的LCR测试仪的设计[J].广西轻工业,2008

(1):

59—60

指导教师评语:

指导教师签名:

成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2