1602液晶的使用文档格式.docx
《1602液晶的使用文档格式.docx》由会员分享,可在线阅读,更多相关《1602液晶的使用文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![1602液晶的使用文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/7/235187f0-8791-4f44-ad16-6020a6ca3b6b/235187f0-8791-4f44-ad16-6020a6ca3b6b1.gif)
4.1.2.4单片机的晶振连接电路4
4.1.2.5以下是单片机的最小系统4
4.2软件设计5
五.焊接与调试6
5.1硬件的焊接与调试6
5.2软件的调试7
附录17
附录28
如今液晶显示已经遍布全球,我们的生活上的各种电器产品都有液晶的显示这个部件;
然而液晶的显示这么的流行,它到底是通过怎样的控制来实现要求的内容的现实呢?
我们又怎样通过控制其来驱动液晶屏呢?
不同的液晶屏的复杂度不一样,但是原理不离不开其中的基本操作的。
本次的课程设计主要是通过对1602液晶屏的操作达到管中窥豹的目的,了解液晶的操作原理。
设计的目的与要求
了解单片机的基本机结构,熟悉1602液晶的基本写操作;
熟悉单片机的最小系统的电路和1602液晶显示的电路设计,学会选择适当的器件;
学会调试电路和编写单片机的驱动程序。
利用单片机控制1602液晶,让液晶显示姓名月号。
由于1602液晶是字符型的,所以姓名的显示只支持显示姓名的拼音。
二.所需器件
本次设计的期间的清单:
STC89C52单片机一块,1602液晶显示屏一块,排针和针座各一个,10k的排阻一个,30pF瓷片电容两个,12M晶振一个,微动开关和自锁开关各一个,发光二极管(红色)一个,1k电阻两个,10k电阻一个,40脚底座一个,10uF极性电容一个,10k的滑动变阻器一个。
三.设计的原理
本次的设计主要是通过单片机来对1602液晶的寄存器的写操作,首先是选通1602液晶的写命令引脚,这通过对1602液晶的第4引脚写入低电平来选择命令信号,由于本次的设计主要是对1602液晶的写操作,没有需要对1602内部的RAM的读操作,所以本次设计的第5管脚只需要接地,不需要用程序控制;
通过单片机对1602液晶写入不同的命令后,实现对1602的初始化了;
初始化1602完成后,需要对1602液晶选通写命令信号线,然后单片机对1602写入当前液晶显示的指针(地址),写入地址之后,通过单片机置1602的第4管脚为高电平后,这时1602选择的是数据的操作了,之后通过单片机对1602写入不同的数据。
其中1602的第5管脚是操作的选通信号,每次的操作都需要通过单片机的I/O对其置高电平才有效。
四.设计步骤
4.1硬件设计
4.1.1系统总框图
4.1.2电路图设计
4.1.2.1电源部分的电路图:
由总开关控制整个系统的供电,发光二极管作为指示的灯,1k的电阻式限流电阻。
4.1.2.21602液晶显示部分:
主要是1602的16个管脚的电路,第1和第2管脚分别是背光地与电源端,第3管脚是背光的调节端,第4是选通命令和数据的管脚,第6管脚是选通1602液晶的管脚,7~14管脚是8位并行数据传输端,第15和16管脚是液晶屏的电源和地端。
4.1.2.3单片机的复位电路:
当没有按下按键的时候,电源对电容充电;
当按键按下的时候,电容放电,由于按键的闭合时间很短,所以电容放电的时候会产生一个脉冲以达到使单片机复位。
4.1.2.4单片机的晶振连接电路:
因为12个震荡周期就是一个始终周期,所以选用12M的晶振,使到单片机的始终周期理论上式1us。
4.1.2.5以下是单片机的最小系统:
由排阻,单片机,复位电路和晶振电路组成。
4.2软件设计
代码的编写和编译的软件:
keil
在线下载软件:
STC-ISPV481
五.焊接与调试
5.1硬件的焊接与调试
首先,在焊接的过程中,要不断地检查是否有没有焊接的,或者有短路的。
当焊接好一个模块要仔细检查一下该模块的焊接是否正确再通电。
今次的焊接过程中,我首先是将电源的部分焊接,因为一个系统的正常工作不能缺少电源的。
当我焊接好了电源之后,我检查一下是否有焊接错误的,之后没有错误了,接通电源,闭合开关,发现灯没亮;
这样一来,我就首先判断开关和地是否有5伏的电压?
用万用表一测,果真有5伏的电压;
这下好了,证明有电通过,我当时想了:
那这样的话是发光二极管的虚焊或者发光二极管坏了。
我就用万用表的二极管那个档位去测发光二极管,发现二极管不亮,这就证明我的二极管是坏的。
这次的调试的教训是:
有些器件在焊接前最好先用万用表检测一下它是否好的,这样就省去调试的很多功夫了。
当我焊接好了电源后,经调试后,电源没有问题后,我就要焊接单片机的底座了。
我首先在大脑里面有个整体的器件布局,以便更好的焊接。
当我焊接好单片机的底座后,我就要焊接上排阻,这个事必须有的,因为单片机的P0口是漏极开路的,需要接上上拉电阻。
焊接好了上拉电阻之后,我就去焊接晶振电路了。
晶振电路的要点是线路要尽量短而且是要直,以避免其他信号的干扰。
这之后就到了复位电路的焊接,复位电路的焊接是在单片机的第9管脚,这个在焊接的时候要注意看清楚管脚的位置。
然后就是微动开关的脚的连接情况,因为微动开关是有两个腿内部是连在一起的。
注意电容的正负,不要把极性电容搞反了焊接。
最后,就是到了1602液晶的焊接了,由于考虑到1602液晶的循环利用,我采用的是用排针和排针座的组合来使用1602的液晶屏。
这个液晶屏的焊接要注意的是安排位置,因为液晶屏焊接好了后,它会盖住了部分的期间,这个要考虑它的布局了。
注意焊接的时候要小心,每个的管脚很容易搞错的。
经过一番焊接后,就要先插上液晶屏看看有没有虚焊先。
接上液晶屏,通电后,液晶屏发光了,然后根据个人的爱好,调节适合自己观看的背光亮度,之后就基本确定电路是良好的了。
5.2软件的调试
软件是在硬件没有问题的基础上才有意义的,所以保证硬件电路没错之后才能够编写代码。
如果硬件出问题,没检查出硬件的错误并且修改的话,编写好的即使正确的代码都不会让系统有正确的结果的。
本次的软件的设计要基于1602液晶屏的资料来编写代码。
通过资料,知道液晶屏的寄存器的控制,和液晶屏的工作的时间等级。
软件的编写时根据1602的命令和数据区分的写入,通过选通命令,写入显示的指针之后,然后再写入要显示的内容。
这里写入命令和数据的时候要注意一个问题:
不论命令还是数据,都要有延时程序等待数据和命令稳定后再选通1602的允许信号(第6管脚),不然会造成数据或命令写不进去。
当然,本次设计可以不用延时程序,因为单片机工作的时间等级是us级,而1602液晶工作的时间等级是ns级的,比单片机高一个等级,所以这样的话就可以省去延时程序。
不过为了培养良好的程序习惯,我还是加上了一个简短的延时程序。
经过程序的编写,然后编译后,有错误的改错误,当没有错误之后,生成的HEX文件就可以通过在线下载软件下载到单片机去了。
最后看到液晶屏显示了要求的字符后,这样,本次的设计都完成了。
附录1:
本次设计的原理图
附录2:
源程序:
#include<
reg52.h>
typedefunsignedcharuchar;
//类型定义
typedefunsignedintuint;
ucharcodebody[]="
LanQianqian"
;
//要显示的姓名
ucharcodebody1[]="
num:
09211043"
//要显示的学号
sbitlcdrs=P1^0;
//数据和命令的选通引脚的位定义
sbitlcden=P1^1;
//1602选通引脚的位定义
uchari;
voiddelay(intz)//延时程序
{
uinti,j;
for(j=z;
j>
0;
j--)
for(i=110;
i>
i--);
}
voidw_com(ucharcom)//写命令函数
lcdrs=0;
P0=com;
delay(3);
lcden=1;
lcden=0;
voidw_data(uchardatt)//写数据函数
lcdrs=1;
P0=datt;
}
voidinit()//液晶屏初始化
w_com(0x38);
w_com(0x0c);
w_com(0x06);
w_com(0x01);
voidmain()//主函数
init();
w_com(0x80);
//写入显示的指针在第一行
for(i=0;
i<
16;
i++)//显示第一行的内容
{
w_data(body[i]);
delay(10);
}
w_com(0x80+0x40);
//写入显示的指针在第一行for(i=0;
i++)//显示第二行的内容
w_data(body1[i]);
while
(1);
//程序停止在这里