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