基于单片机的LCD显示器控制设计.docx
- 文档编号:26769538
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:21
- 大小:229.69KB
基于单片机的LCD显示器控制设计.docx
《基于单片机的LCD显示器控制设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的LCD显示器控制设计.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的LCD显示器控制设计
基于单片机的LCD显示器控制设计
摘要:
LCD液晶显示已经是人机界面的关键技术。
本文对基于单片机的LCM液晶显示模块控制系统进行了研究。
首先在绪论中介绍了本课题的课题背景、研究意义与完成的功能。
本系统是以单片机C语言来进行软件设计,指令的执行速度快,节省存储空间。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
使硬件在软件的控制下协调运作。
正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的发展史,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能与工作过程,并具体描述了AT89C52:
单片机;LMO16L:
16×2字符LCD显示屏;其次阐述了程序的流程和实现过程。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
关键词:
AT89C52:
单片机;LMO16L:
16×2字符LCD显示屏
LCDdisplaybasedonSCMcontrol
Abstract:
LCDliquidcrystaldisplayisthekeytechniqueoftheman-machineinterface.ThispaperstudiedtheMCUcontrolsystembasedonLCMliquidcrystaldisplaymodule.Thefirstchapterintroducesthesubjectbackgroundofthetopic,researchsignificanceandfunction.ThissystemonsoftwaredesignbasedonClanguage,theinstructioncarriesoutthespeedquick,savestoragespace.Inordertofacilitatetheexpansionandthechange,thesoftwaredesignusesthemodularstructure,makethelogic relationofprogramdesignmoreconcise.Thehardwaretocoordinatetheoperationunderthesoftwarecontrol.Thetextfirstbrieflydescribetheworkingprincipleofthesystem hardware,andattachedtothesystemhardwaredesignblockdiagram,andintroducesthehistoryofthedevelopmentofmicroprocessor,anddiscussesthefunctionandworkingprocessofthegraduationdesign,theapplicationofthehardwareinterfacetechnologyandtheinterfacemodule,andtheconcretedescriptionofAT89C52:
singlechipmicroputer;LMO16L:
16*2characterLCDdisplay;secondlydescribestheprocessflowandimplementationprocess.Themainideaofthiswritingissoft,abinationofhardware,hardwarebased,preparedtocarryouteveryfunctionmodule.Finally,IdevelopedwithMCULCDLCDcontroldesignprincipleandsoft,hardwaredebuggingindetail.
Keywords:
AT89C52:
singlechipmicroputer;LMO16L:
16*2characterLCDdisplay
基于单片机的LCD显示器控制设计
第1章引言
1.1课题背景
随着科学技术的发展,社会不断的进步,人们对公共传媒质量的要求越来越高。
近几年来LCD液晶显示器正走进我们的生活。
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表、液晶彩电、MP3、MP4、手机产品和低功耗应用系统中得到越来越广泛的应用。
近年来随着单片机技术的不断发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异地更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件使用,根据具体硬件结构以与具体应用对象的特点,与软件相结合,加以完善。
其控制系统已能够取代复杂电子线路或数字电路构成的控制系统,单片机以软件编程来实现电子线路的外围控制,并能够实现智能化。
单片机具有集成度高、处理功能强、可靠性高、性能稳定等优点,在工业控制、智能仪器仪表、办公自动化、家用电器等诸多领域得到广泛的普与和应用。
1.2课题的目的和意义
LCD液晶显示已经是人机界面的关键技术。
本文对基于单片机的LCM液晶显示模块控制系统进行了研究。
首先在引言中介绍了本课题的课题背景、研究意义与完成的功能。
本系统是以单片机C语言来进行软件设计,指令的执行速度快,节省存储空间。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。
使硬件在软件的控制下协调运作。
正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的发展史,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能与工作过程,并具体描述了STC89C52、SMC1602A液晶显示的软、硬件调试。
其次阐述了程序的流程和实现过程。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。
1.3实验预想结果与目的
1.掌握单片机AT89C52与LM016L的接口技术。
2.用protues设计、仿真基于AT89C52单片机的LCD显示屏的控制实验。
3.掌握LM016L结构和程序的编写方法。
4.利用字符型液晶显示;
5.分别能显示“dianzi1101banshaowenji〞和“GoodGoodStudyDayDayUp〞证明能对Led的显示进行控制
第2章系统硬件设计
2.1系统流程图
LCD显示屏控制程序流程图如下所示:
LCD显示屏控制程序
2.2使用元件
(1)AT89C52:
单片机;
(2)RES:
电阻;
(3)LMO16L:
16×2字符LCD显示屏;
(4)CAP/CAP-ELEC:
电容、电解电容;
(5)CRYSTAL:
晶振;
2.3电路模块介绍
(1)单片机模块AT89C52:
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出〔I/O〕端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
主要的引脚如下:
VCC:
供电电压
GND:
接地
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P1.0T2〔定时器/计数器T2的外部计数输入〕,时钟输出;P1.1T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制〕;P1.5MOSI〔在系统编程用〕;P1.6MISO〔在系统编程用〕;P1.7SCK〔在系统编程用〕。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流〔ILL〕这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
管脚备选功能
P3.0RXD〔串行输入口〕
P3.1TXD〔串行输出口〕
P3.2INT0〔外部中断0〕
P3.3INT1〔外部中断1〕
P3.4T0〔记时器0外部输入〕
P3.5T1〔记时器1外部输入〕
P3.6WR〔外部数据存储器写选通〕
P3.7RD〔外部数据存储器读选通〕
P3口同时为闪烁编程和编程校验接收一些控制信号
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器〔0000H-FFFFH〕,不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP〕。
XTAL1:
反向振荡放大器的输入与内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能与管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM与外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码与与主板CPU通信等。
主要管脚有:
XTAL1〔19脚〕和XTAL2〔18脚〕为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd〔9脚〕为复位输入端口,外接电阻电容组成的复位电路。
VCC〔40脚〕和VSS〔20脚〕为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口〔32~39脚〕被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS〔18脚〕和SCLS〔19脚〕端口,12脚、27脚与28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测与会聚调整状态进入的控制功能。
如下图为Proteus中的AT89C52的仿真图。
(2)字符液晶显示模块SMC1602A:
外形尺寸见下图所示
接口信号说明见下表
SMC1602A接口信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
V0
LCD偏压输入
11
D4
DataI/O
4
RS
数据/命令选择端〔H/L〕
12
D5
DataI/O
5
R/W
读写控制信号〔H/L〕
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLK
背光源负极
8
D1
DataI/O
16
BLA
背光源正极
第3章实验平台描述
3.1keil2软件介绍
KeiluVision2是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。
C51编译器的功能不断增强,使你可以更加贴近CPU本身,与其它的衍生产品。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keilc51来开发您的单片机应用程序。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
3.2Proteus软件介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件〔该软件中国总代理为##风标电子技术##〕。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机与外围器件。
另外它是目前最好的仿真单片机与外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,20##又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
第4章程序设计
4.1源程序
#include
#include
sbitrs=P3^5;
sbitrw=P3^6;
sbitep=P3^7;
unsignedcharcodedis1[]={"GOODGOODSTUDY"};//LCD第一行显示
unsignedcharcodedis2[]={"shaowenjie"};//LCD第二行显示
voiddelay(unsignedcharms)
{
unsignedchari;
while(ms--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
bitlcd_bz()
{
bitresult;
rs=0;
rw=1;
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(bit)(P1&0x80);
ep=0;
returnresult;
}
voidlcd_wcmd(unsignedcharcmd)
{
while(lcd_bz());//判断LCD是否忙碌
rs=0;
rw=0;
ep=0;
_nop_();
_nop_();
P1=cmd;
_nop_();
_nop_();
//_nop_();
//_nop_();
ep=1;
_nop_();
_nop_();
//_nop_();
//_nop_();
ep=0;
}
voidlcd_pos(unsignedcharpos)
{
lcd_wcmd(pos|0x80);
}
voidlcd_wdat(unsignedchardat)
{
while(lcd_bz());//判断LCD是否忙碌
rs=1;
rw=0;
ep=0;
P1=dat;
_nop_();
_nop_();
//_nop_();
//_nop_();
ep=1;
_nop_();
_nop_();
//_nop_();
//_nop_();
ep=0;
}
voidlcd_init()
{
lcd_wcmd(0x38);
delay
(1);
lcd_wcmd(0x0c);
delay
(1);
lcd_wcmd(0x06);
delay
(1);
lcd_wcmd(0x01);
delay
(1);
}
voidmain(void)
{
unsignedchari;
lcd_init();//初始化LCD
delay(10);
while
(1)
{
lcd_pos(0x01);//设置显示位置
i=0;
while(dis1[i]!
='\0')
{
lcd_wdat(dis1[i]);//显示字符
i++;
}
lcd_pos(0x42);//设置显示位置
i=0;
while(dis2[i]!
='\0')
{
lcd_wdat(dis2[i]);//显示字符
i++;
}
}
}
在keil2中的编译后结果如下图所示:
4.2Proteus仿真
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件〔该软件中国总代理为##风标电子技术##〕。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机与外围器件。
它是目前最好的仿真单片机与外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,20##又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
其中电路由以下结构构成:
(1)时钟电路
通常单片机系统电路的实际有内部时钟和外部时钟两种形式,两种电路都向单片机提供最基本的振荡脉冲信号。
本设计中的晶体振荡电路如下图所示。
i.〔2〕1602LCD显示电路
1602LCD采用标准的14脚〔无背光〕或16脚〔带背光〕接口。
本设计中采用14脚LCD。
VSS和VDD为电源端和接地端,VEE用于调整液晶显示器对比度。
D0~D7为8位双向数据线。
电路连接图如图所示。
Proteus仿真图见附录一
第5章电路仿真
本次仿真的显示分别为“dianzi1101banshaowenji〞见图一和“GoodGoodStudyDayDayUp〞图二
图一
图二
总结
本次课程设计基本完成,各项指标都已基本实现。
16×2点阵字符液晶模块SMC1602A分别第一行分别显示goodgoodstudy和dianzi1101ban,第二行分别显示daydayup和shaowenjie。
从资料的搜集,方案的确立,硬件电路的设计,程序的编写与论文撰写,在这整个过程中,使我学到了很多专业知识,特别是提高了动手能力。
系统地复习了《模拟电子技术》、《STC89C52RC/RD+系列单片机器件手册》、《Protel99SE》、《C语言程序设计基础教程》等课程。
特别是对单片机开发产生了浓厚的兴趣。
本课题的实现有以下两部分:
1.硬件电路
主要由单片机、时钟振荡电路、液晶显示模块组成。
每部分都独立成为一个体系,各功能模块外围电路采用分立元件。
2.软件编程
是利用单片机C编语言编程来实现的。
程序简单易懂,执行速度快,有着高级语言不可替代的用途。
本课题最大的优点是:
(1)设置在线下载端口;
(2)硬件电路设计简单;
(3)软件程序调试/维护方便;
(4)采用万用板工艺;
(5)实用性强。
参考文献:
1.潘永雄.电子线路CAD实用教程.第二版.##电子科技大学,2005
2.张毅刚.单片机原理与应用.高等教育,2004
3.谭浩强.第二版.语言程序设计.清华大学,1999
4.杨素行.模拟电子基础简明教程.第2版.高等教育,1998
5.Baidu
附录一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 LCD 显示器 控制 设计