基于单片机的1602液晶显示电路设计Word文档下载推荐.docx
- 文档编号:21010202
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:20
- 大小:968.60KB
基于单片机的1602液晶显示电路设计Word文档下载推荐.docx
《基于单片机的1602液晶显示电路设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的1602液晶显示电路设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
单片机液晶显示主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统。
作为信息传递的一种方式,液晶显示在我们日常生活中也随处可见,电子仪表,计算器上面都有显示器的身影。
LCD是典型的发光器件,它一材料科学为根底,综合利用了精密机械,光电及计算机技术,并正在微机械,微光学,纤维光学等前沿领域研究根底上,向高集成化,智能化方向开展。
本文主要研究以AT89S52单片机驱动LCD1602液晶显示器,使LCD1602液晶显示屏上显示出作者的学号与。
1.2研究意义
当下社会,由于单片机的快速开展,单片机在以后的应用中将会更加广泛,对于单片机的应用也将更加普遍。
本次的研究使读者了解AT89S52单片机和LCD1602液晶显示器的根本工作原理与特点,并且懂得两者接口的应用等。
为以后对单片机和液晶显示器的深入研究打下坚实的根底!
第二章系统硬件电路设计
本研究的硬件电路主要包括AT89S52单片机最小系统,LCD1602液晶显示电路,复位电路和晶振电路。
具体内容如下:
2.1AT89S52单片机最小系统
AT89S52单片机是ATMEL公司新近推出的高档型AT89S系列单片机中的增强型产品,是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
2.1.1主要性能
1、与MCS-51单片机产品兼容;
2、8K字节在系统可编程Flash存储器;
3、1000次擦写周期;
4、全静态操作:
0Hz-33MHz;
5、三级加密程序存储器;
6、32个可编程I/O口线;
7、三个16位定时器/计数器;
8、8个中断源;
9、全双工UART串行通道;
10、低功耗空闲和掉电模式;
11、掉电后中断可唤醒;
12、看门狗定时器;
13、双数据指针;
14、掉电标识符。
2.1.2功能
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.1.3引脚说明及实物图
AT89S52单片机共有40个引脚,如图2-1:
图2-1AT89S52单片机引脚图
VCC:
电源电压
P0:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1〞时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入〔P1.0/T2〕和定时器/计数器2的触发输入〔P1.1/T2EX〕。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0T2〔定时器/计数器T2的外部计数输入〕,时钟输出
P1.1T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制〕
P1.5MOSI〔在系统编程用〕
P1.6MISO〔在系统编程用〕
P1.7SCK〔在系统编程用〕
P2:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。
在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVX@DPTR〕时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址〔如MOVX@RI〕访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
P3口亦作为AT89S52特殊功能〔第二功能〕使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
PST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲〔PROG〕。
如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许〔PSEN〕输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令〔或数据〕时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器〔地址为0000H-FFFFH〕,EA端必须保持低电平〔接地〕。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平〔接Vcc端〕,CPU那么执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器以及内部时钟电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
GND:
地
AT89S52单片机实物图如图2-2,2-3:
图2-2AT89S52反面
图2-3AT89S52正面
AT89S52单片机最小系统尺寸:
长85mm*宽55mm*高18mm
2.2LCD1602液晶显示器
LCD1602,工业字符型液晶,指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块〔显示字符和数字〕。
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
2.2.1功能
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线15脚的Vcc和16脚的GND,本次研究采用16引脚的LCD。
专门用来显示字母、数字、符号等的点阵型液晶模块,通过驱动模块与显示器的有效连接,能直观的显示出程序中要求的内容。
2.2.2特点
显示质量高:
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器〔CRT〕那样需要不断刷新新亮点。
因此,液晶显示器画质高且不会闪烁。
数字式接口:
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
体积小、重量轻:
液晶显示器通过显示屏上的电极控制液晶分子状态来到达显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
功耗低:
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
2.2.3引脚
本次研究采用16引脚LCD1602液晶显示器。
引脚图如图2-4:
图2-4LCD1602液晶显示器引脚图
1602LCD主要技术参数:
显示容量:
16×
2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最正确工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
引脚功能:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器比照度调整端,接正电源时比照度最弱,接地时比照度最高,比照度过高时会产生“鬼影〞,使用时可以通过一个10K的电位器调整比照度。
第4脚:
RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。
即电平=0为输入指令;
电平=1为输入数据。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,1时读取信息,当E端由高电平跳变成低电平时,即当1→0〔下降沿)液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
7号引脚为最低位,14号引脚为最高位。
第15脚:
背光源正极。
第16脚:
背光源负极。
下面是LCD1602液晶显示器实物图正面图2-5,反面图2-6:
图2-5LCD1602正面
图2-6LCD1602反面
2.3复位电路
单片机复位电路就好比电脑的重启局部,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。
单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
本次研究所采用的复位电路如图2-7所示,其中C3=10μF,目的就是防抖,此复位电路高电平有效,低电平复位。
图2-7复位电路
2.4时钟电路
时钟电路是用来配合外部晶体实现震荡的电路,这样可以为单片机提供运行时钟,如果运行时钟为0,单片机就不工作,超出单片机的工作频率也会导致单片机不工作。
单片机的时钟连接方式一般分为两种:
内部时钟方式和外部时钟方式。
如图2-8,图2-9所示。
图2-8内部时钟方式
图2-9外部时钟电路
本次研究采用的是内部时钟方式,晶振采用12M晶振,电容为30ƤF,电路图如图2-8。
第三章软件设计
本次研究设计主要涉及到电路图的设计,程序的编写,程序的烧录,分别用到AltiumDesigner,keil,AVR_fighter。
下面将对这三个软件一一进行简单的介绍。
3.1软件设计思路
通过对AT89S52单片机和LCD1602的根本了解,利用Altiumdesigner软件绘制出电路图进行仿真,根据电路图焊接出电路板,并进行测试。
利用keil软件编写c程序,程序编写无误后,将程序生成.hex文件,利用AVR_fighter烧录软件将程序烧录到单片机,得到设计结果,即LCD1602液晶显示屏上显示出字符。
3-1原理框图
3.1.1AltiumDesigner
AltiumDesigner是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。
这套软件通过把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
主要功能有:
1原理图设计
2印刷电路板设计
3FPGA的开发
4嵌入式开发
53DPCB设计
3.1.2keil
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔μVision〕将这些局部组合在一起。
优点:
⒈KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能表达高级语言的优势。
⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
3.1.3AVR_fighter
AVR_fighter是AVR单片机ISP下载编程软件,此软件必须将编写的c程序利用keil软件生成.hex文件才能烧录到单片机,操作界面如图3-2所示:
图3-2AVR_fighter
3.2程序设计
利用keil软件编写程序,程序如下:
#include<
at89s52.h>
//52存放器文件
intrins.h>
typedefunsignedcharBYTE;
//用BYTE代替unsignedchar
typedefunsignedintWORD;
//WORD代替unsignedint
typedefbitBOOL;
//用BOOL代替bit
sbitrs=P2^6;
//复位端
sbitrw=P2^5;
//写数据端
sbitep=P2^7;
//使能端
BYTEcodedis1[]={"
NieShuai"
};
BYTEcodedis2[]={"
24124021"
/*******************延时函数********************/
delay(BYTEms)
{
BYTEi;
while(ms--)
{
for(i=0;
i<
250;
i++)
{
_nop_();
//空执行消耗CPU时间到达等待的效果
}
}
}
/*******************LCD侧忙函数********************/
BOOLlcd_bz()
{
BOOLresult;
rs=0;
rw=1;
ep=1;
_nop_();
result=(BOOL)(P0&
0x08);
//检测P0最高位是否为1
ep=0;
returnresult;
//返回侧忙结果
lcd_wcmd(BYTEcmd)
{//写入指令数据到LCD
while(lcd_bz());
rw=0;
P0=((cmd<
<
4)|(cmd>
>
4));
//将8位指令通过P0口传给1602
//用于产生一个脉冲宽度
lcd_pos(BYTEpos)
{//设定显示位置
lcd_wcmd(pos|0x80);
lcd_wdat(BYTEdat)
{//写入字符显示数据到LCD
rs=1;
P0=((dat<
4)|(dat>
//将8位数据通过P0口传给1602
//用于产生一个脉冲宽度
lcd_init()
{//LCD初始化设定
lcd_wcmd(0x38);
////16*2显示,5*7点阵,8位数据
delay
(1);
lcd_wcmd(0x0c);
//显示开,关光标
lcd_wcmd(0x06);
//移动光标
lcd_wcmd(0x01);
//去除LCD的显示内容
main()
{
lcd_init();
//初始化LCD
delay(10);
lcd_pos(4);
//设置显示位置为第一行的第5个字符
i=0;
while(dis1[i]!
='
\0'
)
{//显示字符"
lcd_wdat(dis1[i]);
i++;
lcd_pos(0x41);
//设置显示位置为第二行第二个字符
while(dis2[i]!
lcd_wdat(dis2[i]);
//显示字符"
24124021"
while
(1);
//
程序编写无误后,生成.hex文件,即如图3-3:
图3-3程序生成hex文件
利用烧录软件AVR_fighter将程序烧录到单片机。
第四章仿真及硬件电路
利用AltiumDesigner软件绘制设计电路,研究电路图如图4-1所示:
图4-1电路图
元器件清单:
AT89S52单片机1个
LCD1602液晶显示器1个
洞洞板〔万能板〕1个
电阻R1=R4=10KΩ2个
R2=1KΩ1个
R3=10K3296精密电位器1个
电容C1=10μF1个
C2=C3=30ƤF2个
开关自锁开关1个
复位开关1个
晶振12M1个
LED灯红色1个
杜邦线假设干
排针排母假设干
下载器1个
焊接电路板,设计硬件电路。
如图4-2所示:
图4-2硬件实物图
第五章总结与展望
本次研究介绍了AT89S52单片机和LCD1602液晶显示器的根本特性和功能,从本次的设计研究中发现,对于AT89S52单片机的程序烧录必须使用专用的下载器即USBASP下载器。
从选题到现在,这个设计主要经历了以下几个过程:
广泛查阅资料、文献综述、总体思路确实定、方案的具体化及论证、方案确实定、设计制板及硬件电路的完成、软件的调试、系统的调试,还包括论文的定稿,我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了根底。
本次设计虽然不是特别的复杂,但是由于初次涉及这样的设计,没有任何的经验,过程还是倍感吃力的。
首先就是AT89S52单片机的选择,因为之前没有学习过这样的器件,算是一个新的概念,所以认识不全,有些不知所措。
然后研究如何获取正确的参数,其中图片的取模就很令我苦恼,最后在老师的辅导下才得以提取正确。
程序有了之后,再进行相关的变换,最终得到新颖的效果。
在这次的设计过程中虽然尝到了设计的困难,但是更重要的是让我感受到了它的魅力,不知不觉的就想要做出更多的把戏,特别是成功仿真后,着实有一种成就感。
在此次过程中不仅稳固了我对Word及单片机的使用,同时也让我对LCD1602显示有了一个较为清晰的了解,弥补了我的一个盲区,让我对专业知识有脸很大的提升,使我有了知识和精神双方面的收获。
本系统的设计与制作工作已经全部完成,根本到达了预期的目的与要求。
但是在系统的调试方面还不够健全。
但是由于时间仓促、条件有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 1602 液晶显示 电路设计