液晶显示屏论文Word格式.docx
《液晶显示屏论文Word格式.docx》由会员分享,可在线阅读,更多相关《液晶显示屏论文Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
摘要
本设计基于液晶显示技术,以单片机AT89c51为控制核心,并通过驱动电路驱动液晶显示屏,实现对液晶屏显示数字、字母和信息的闪动显示操作。
选用1602类型的字符型液晶显示器,并根据不同的按键在字符型液晶上显示不同的端子数,实现数据和指令传输的简单高效;
依据C语言,建立数字、字母语句程序模块,闪屏模块和延时循环模块,实现特定数字或字母语句的按键切换显示,以及信息的上下闪屏系统调试通过仿真器在Keil调试,依步测试各项功能。
一、绪论
1、单片机的概述
本次设计主要是利用单片机制作一个液晶显示屏并由此加深我们对单片机的各种模块的理解和应用能力。
比如这次设计就用到了AT89c51单片机。
而要想灵活的应用这些这些功能,不仅要对软件要有一定的理解能力,还有对硬件有一定的了解。
首先说说单片机
随着微处器和微型计算机的问世,加之超大规模集成电路的发展以及军事、通信、工业自动化、机电一体化技术的需求,使微型机向两个方向发展:
一个是向高速、性能优异的的高档微型机方向发展;
另一个是向简单可靠、小巧方便的单片机方向发展。
单片机是将中央处理器、随机存储器、只读存储器、定时器/计数器芯片和一些输入/输出端口电路集成在一个芯片上的微型计算机,又称为微控制器。
它是专为工业控制和智能仪器设计的一种集成度很高的微型计算机。
单片机实际上是微型计算机的一种,自从它问世以来,人们对它不断地改进,应用在现代化社会的各个方面。
单片机有体积小.价格低廉,开发较为容易,可根据需要制作成各种智能控制器以代替人工操作,实现自动化和智能化。
单片机实际上是小型简单化的个人计算机(Pc),它由这样几个部分构成:
CPU(进行运算和控制)、RAM(进行数据存储)、ROM(进行程序存储)、输入/输出设备(例如串行口、并行口等)。
在个人计算机上,这些部分被分成若干块芯片,安装在一个称之为主板的印刷线路板上。
而在单片机,这边部分(甚至还有A/D利D/A等),全部被集成到一块电路芯片中了所以就称为为单片机。
现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
尽管目前单片机品种众多,但在我国典型的应用产品中,当属Intel公司的MCS-51系列产品。
它是双列直插封装形式的集成器件,内部采用模块式的结构,包含了一个独立的微机硬件系统所应具有的各个功能部件和一些重要的功能扩展部件。
液显示屏就利用了51系列单片机的这些特性。
2、液晶显示屏的背景及意义
液晶显示屏(LCD)是用于数字型钟表和许多便携式计算机的一种显示器类型。
目前科技信息产品都朝着轻、薄、短、小的目标发展,在计算机周边中拥有悠久历史的显示器产品当然也不例外。
在便于携带与搬运为前提之下,传统的显示方式接受置于体积过大或耗电量甚巨等因素,无法达到使用者的实际需求。
而液晶显示技术的发展正好切合目前信息产品的潮流,无论是直角显示、低耗电量、体积小、还是零辐射等优点都能让使用者享受到最好的视觉环境。
3、液晶显示器的发展及应用领域
随着信息时代的进步,信息技术的发展作为信息显示的液晶显示的应用领域,也在不断扩展。
十几年前,液晶显示开始大规模从“笔段型显示”转向“点阵型显示”仪器,仪表产品中也只有那些号称智能仪表的产品才能使用。
而最令人向往的液晶平板电视,也仅有日本能够生产。
时至今日,液晶显示已经深入到了人类生存的各个领域。
凡是需要使用显示的地方或产品,几乎没有不使用液晶显示的。
虽然有些产品可能以前就使用液晶显示,但是今天使用的液晶显示产品无论从技术上还是从质量上或功能上都有了质的提高和飞跃。
液晶显示应用技术的发展是和液晶显示应用领域的扩大密不可分。
液晶显示应用领域扩大的潜力所在是一个已被证明具有广泛前景的成熟的产品,特别是像液晶显示这样的多学科,多技术门类的高新技术产品,必然具有强大的发展潜力。
其发展潜力来源于两大方面。
一方面是液晶显示产品本身的技术发展潜力,作为液晶显示技术基础的几大学科,如光学、电子学、化学、材料学等几大基本学科都是当今发展最快的学科。
他们的迅速发展必然会推动液晶显示技术的发展。
另一方面是广泛的新兴的市场需求,数字化、信息化的发展,使信息显示市场的需求更加迫切和广泛。
过去PC机仅仅作为生活的点缀,而今已经成为人们的必需,人们对PC机的显示器提出了更高的要求。
要求薄型、便携、节能、彩色、高分辨......这些都是液晶显示的优势,又是液晶显示发展的动力。
此外智能化电器的出现,使液晶显示的应用更加广泛。
4、控制任务与要求
(1)通过字符型液晶显示器接口电路的设计与编程,掌握字符型液晶显示器的原理,学会使用字符型液晶显示器,并能应用到实际的产品开发中。
(2)学习使用Proteus、KeilC软件,掌握绘制原理。
(3)理解字符型液晶显示器的工作模式,完成其余单片机系统的接口。
(4)理解字符型液晶显示器的工作模式,完成对其编程。
(5)在Proteus中绘制电气原理图。
(6)在Keil中输入参考程序,并编译通过。
(7)在Proteus中加载程序,观察仿真结果。
(8)用硬件模块搭建实际系统,并比较实例结果。
二、系统总体方案设计
1、方案的选择与实现
采用LCD显示屏的方案:
该方案主要由单片机,驱动电路、锁存器、与非门电路和液晶显示屏构成。
单片机现实的数据串入移位寄存器,移位寄存器,移位寄存器在移位脉冲的作用下将显示数据移位传输在锁寸脉冲作用下按键的通断以控制驱动电路的“开关状态”。
方案论证:
鉴于题目要求,所选的液晶模块必须支持字符显示功能。
1602字符型液晶显示屏,是目前技术发展的比较成熟,应用比较广泛的一组支持数字字母的液晶显示模块。
软件上,分静态数文显示模块、动态显示模块和动态定时数文显示模块。
此外,增加按键控制字符显示和清屏功能,进一步完善系统功能。
2、液晶显示屏的控制原理
液晶显示器(lcd)是现在非常普遍的显示器。
它具有体积小、重量轻、省电、辐射低、易于携带等优点。
液晶显示器(lcd)的原理与阴极射线管显示器(crt)大不相同。
lcd是基于液晶电光效应的显示器件。
包括段显示方式的字符段显示器件;
矩阵显示方式的字符、图形、图像显示器件;
矩阵显示方式的大屏幕液晶投影电视液晶屏等。
液晶显示器的工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;
不通电时,排列则变得混乱,阻止光线通过。
3、系统的总体方案图
单片机控制液晶显示屏系统总共可分为四个环节,分别是单片机控制系统、字符显示模块、控制开关模块和液晶显示屏模块。
通过这四个模块的协调工作就可以完成相应的液晶屏控制和显示功能。
这四个模块的相互连接如下图:
图一
三、系统硬件设计
1、液晶显示模块
图二
2、单片机控制模块
图三
U1扫描P1口的输入,并根据不同的按键在字符型液晶上显示不同的字符。
四、软件设计
1、模块的编程
系统的软件设计采用C语言,对单片机进行编程实现各项功能。
程序是采用Keil软件编写的,可以使液晶显示屏对特定数字、英文字母组成的句子进行显示,并通过按键对显示内容实现控制、转换、闪屏、清屏等功能。
主程序主要起到一个导向和决策功能,决定液晶显示屏该显示什么内容,该如何显示。
液晶显示屏各种功能的实现主要通过调用具体的子程序。
2、仿真图及说明
1).使用软件proteus软件进行仿真,将keil生成的hex文件拷贝到单片机中,然后按play进行仿真,可以看到显示屏上逐个字符显示,最终形成一句ThisprogramismadebyLiJing.
2).当按下按键1时,如图四显示ThisprogramismadebyLiJing.
之后“madebyLiJing”不断闪烁,再次按下按键1时,液晶显示屏清屏。
图四
3).当按下按键2时,如图五显示,I’mfromHeBi!
lijing@!
且lijing@!
逐个字符出现,之后有闪屏功能,再次按下按键2时,液晶显示屏清屏。
图五
4).当按下按键3时,如图六显示,“WelcometoBeautifulHeBi”且不断的闪烁,再次按下按键3时,液晶显示屏清屏。
图6
五.总结与展望
本系统以单片机AT89C51和液晶显示模块LMO16L为核心部件,利用液晶显示技术,并配合软件算法实现了字母、数字的显示。
在设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,来满足系统实际要求。
因为时间有限,该系统还有很多值得改进的地方:
液晶显示屏的输出不够稳定,由于时间因素,定时循环显示问题还未解决。
在本次设计制作过程中,我们一开始在题目理解上出现偏差,致使我们在设计初期遇到了很大的困难,但通过自我状态调整和永不放弃的精神最终基本解决了问题。
在这个过程中,我们深切体会到共同协作和团队精神的重要性,提高了自己的动手能力。
参考文献
[1]张旭涛 曾现峰主编.单片机原理与应用【M】.北京理工大学出版社,2009.
[2]李学礼主编.基于Proteus的8051单片机实例教程【J】.北京:
电子工业出版社,2008.
[3]林晶 赵杰 李军编著.ProtelDXP设计与实践【M】.北京:
电子工业出版社,2009.
[4]陈孟建 邹玉金 熊传光编著.C语言程序设计【M】北京:
电子工业出版社2008.
附一:
附二:
程序源代码
#include<
reg51.h>
#include<
absacc.h>
#defineREG0XBYTE[0x0000]
#defineREG1XBYTE[0x0001]
#defineREG2XBYTE[0x0002]
#defineREG3XBYTE[0x0003]
unsignedcharbdatabusyflag;
unsignedchardat,datn;
unsignedcharword1[16]={"
Thisprogramis"
};
unsignedcharword2[16]={"
madebyLiJing!
"
codeunsignedcharword3[16]={"
I'
mfromHeBi!
codeunsignedcharword4[16]={"
lijing@!
codeunsignedcharword5[16]={"
WelcomeTo"
codeunsignedcharword6[16]={"
BeautifulHeBi!
};
sbitbusyflag_7=busyflag^7;
sbitp10=P1^0;
sbitp11=P1^1;
sbitp12=P1^2;
voidbusy()
{
do
busyflag=REG1;
}while(busyflag_7);
}
voidwrc(unsignedcharwcon)
busy();
REG0=wcon;
voidwrd(unsignedcharwdat)
busy();
REG2=wdat;
voidrdd()
dat=REG3;
voidlcdint()
wrc(0x38);
wrc(0x01);
wrc(0x06);
wrc(0x0c);
intk;
voiddelay(intt)
while(--t)
for(k=0;
k<
200;
k++);
voidwrn(unsignedcharword[])
unsignedchari;
for(i=0;
i<
16;
i++)
wrd(word[i]);
voidwrnt(unsignedcharword[])
delay(50);
voidmain()
lcdint();
wrc(0x80);
wrnt(word1);
delay(200);
wrc(0xc0);
wrnt(word2);
while
(1)
{
if(p10==0)
{
wrn(word1);
delay(200);
wrn(word2);
delay(100);
lcdint();
}
if(p11==0)
wrn(word3);
delay(200);
wrnt(word4);
if(p12==0)
wrn(word5);
wrn(word6);
}