{$cfg_webname}
主页 > 电子信息 > 论文 >

毕业设计论文范文(液晶显示的乘法口诀测试仪)(5)

来源:56doc.com  资料编号:5D4689 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D4689
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

3.2.5 键盘的防抖动技术在设计里的应用
一般情况下,键盘采用机械弹力开关来反映一个电压信号的开、断。由于机械触点的弹性作用,在闭合和断开会发生有抖动现象。抖动时间的长短由按键的机械特性决定,一般在5-10ms之间。为保证按键不发生误动作,在编写按键处理程序中必须有防抖动措施。防抖动措施有软件和硬件两种方法。
硬件防抖动电路的典型办法是采用RS触发器,构成双稳态消抖电路,一般在用对按键的操作过程中要求比较严格。
对于初学者而言,采用上面那个方法去抖动的技术难度较大,因此使用软件消抖的办法是很简单的。
它的工作原理是:当软件检测到第一次按钮按下时,执行一个10-20ms的软件延时程序,之后再检测该键电平是否仍然维持在闭合状态,若仍然保持,则确认此按键真正按下,从而消去了抖动的影响。
根据如小程序,就可以算出键盘抖动的时间:
DELAY:                                                              
         MOV R7,#240                                                 
DEL4:    
         MOV R6,#250                                                  
DEL5:   
         DJNZ R6,DEL5                                                  
         DJNZ R7,DEL4                                                  
结合设计要求,使矩阵键盘的抖动时间成为了120ms,当晶体的频率为12MHz时,其计算值为:250×240×2=120000us=120ms。
3.3 单片机复位电路
复位是单片机的初始化操作,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。当MCS-5l系列单片机的复位引脚 RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位,单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。当单片机已在运行当中时,按下复位键S1后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。其电路图3-5如示:
 
图3-5 开关复位与上电复位
其中VCC接+5v电压,RST接单片机的复位端口RST,具体参数见总原理图。
在这种复位电路中,干扰容易串入复位端,在大多数情况下不会造成单片机错误复位,但是会引起内部某些寄存器错误复位,这时可在复位引脚上一个去耦合电容。如果应用到现场抗干扰严重,或整个系统干扰严重,引起单片机复位,可采用屏蔽的办法解决,如加屏蔽网或移动位置等。
3.4 LCD1602液晶模块功能
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、文字、图形等 [4]。
1602可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。 缺点:不能使用中文,不能显示图形。PCB尺寸:81*37mm 液晶尺寸:69*26mm。
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
3.4.1 LCD1602主要参数介绍
表3-1 LCD1602主要技术参数
显示容量    16X2个字符
芯片工作电压    4.5~5.5V
工作电流    2.0mA(5.0V)
模块最佳工作电压    5.0V
字符尺寸    2.95X4.35(WXH)mm
3.4.2 LCD1602基本操作程序
读状态:此时输入端RS=L,RW=H,E=H,输出端D0~D7=状态字。
读数据:此时输入端RS=H,RW=H,E=H 输出端:无。
写指令:此时输入端RS=L,RW=L,D0~D7=指令码,E=高脉冲 输出:D0~D7=数据输入[12]。
表3-2  寄存器选择功能
RS    R/W    操作
0    0    指令寄存器(IR)写入
0    1    忙标志和地址计数器读出
1    0    数据寄存器(DR)写入
1    1    数据寄存器读出
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” [13]。
3.4.3 LCD1602引脚在设计中如何应用
VSS为地电源。
VDD接5V正电源;为LCD1602提供驱动。
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;按编程原理接到AT89S52的P2.0脚。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;按编程原理接到AT89S52的P2.1脚。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;按编程原理接到AT89S52的P2.2脚。
D0~D7为8位双向数据线;依次接到AT89S52的P0口,作为输入和输出使用,三态双向。
BLA:LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右。
3.4.4 LCD1602指令系统
 1602液晶模块内部的控制器共有11条控制指令。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的[10]。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置;
指令2:光标复位,光标返回到地址00H;
指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效;
指令4:显示开关控制D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;
指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标;
指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符;(有些模块是DL:高电平时为8位总线,低电平时为4位总线)
指令7:字符发生器RAM地址设置;
指令8:DDRAM地址设置;
指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙;
指令10:写数据;
指令11:读数据;
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符[8]。
3.4.5 LCD1602液晶显示特性
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新亮点。因此,液晶显示器画质高且不会闪烁。
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多[7]。
假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
3.4.6 1602LCD的RAM地址映射和复位(初始化)过程
 
图3-6 1602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7 恒定为高电平1所以实际写入的数据应该:01000000B(40H)+10000000B(80H)=11000000B(C0H)。
第一次延时15ms时,等待LCD电源稳定,前几次延时,读写数据之前不需要忙检测,以后每次读写数据之前都必须要进行LCD忙检测。
3.4.7 LCD1602液晶显示器与AT89S52接线分析
 
图3-7 LCD1602液晶显示器与AT89S52接线图
其中的D0---D7标注全写应该是DB0---DB7,这样的简洁写法为了芯片的版面视觉好看,D0---D7与P1.0---P1.7一一对应连接,P2.0---P2.1分别接RS、RW、E引脚。VLCD接10K可调电阻到GND。AT89S52的晶振频率为12MHz。
3.4.8 如何在LCD1602上显示显示数字
  从D0-D7的8位数据接口知道使用了8位的指令。开始为初始态,屏幕即以及光标被打开,但是没有显示数字符号,如下表示;
 当进入模式设定时候变为:
 当写入数字“8”到显示储存器‘‘DD-RAM”中,数字“8”写到屏幕上,并且光标地址加1,因此被移到右边,其意图就成为:
 同样的原理,如果键入需要是“81”的话,那么示意图会变成:
 光标地址加1,又被移动到右边。
在使用1602液晶显示的时候,第一行和第二行只显示最大的16数字符号,由于用到了程序自定义,随机能产生乘法口诀题目,出现在第一行:
 键入的数值会使光标自动右移动。
3.4.9 对测试者输入的结果判断
整个系统完成的核心部分是要对测试者给出的结果的判断,并且能对错误的结果给出正确的值。
 测试者做好题目后,按“确认”键即可知道对错了,如果结果与保存的“64”一致,则蜂鸣器会发出响声,开关复位后,随机又能出题;如果结果与“64”不一致的,则蜂鸣器不会发声,测试者如果想知道正确结果,按下“C”键,隐藏不显示的正确答案“64”会在屏幕上显示出来。按“F”键又可以产生新的随机题目。
3.5 蜂鸣器
设计的乘法口诀测试仪在测试者答对了随机给定的题目以后会自动报警蜂鸣,给测试者提醒作用,为了使蜂鸣器能够正常工作,必须用一个三级管放大电路来实现。
连接三级管放大电路的时候注意基极、集电极、发射极端接线,因为其R3端要靠低电平才有效果,而P3口功能一些用于编程和程序校验的控制信号,所以选择了P3.7口。
软件对蜂鸣器的控制主要是控制了蜂鸣器的响声次数,每次答对一个题目,确认后会自动响三声,用以来告诉测试人该结果和正确答案一致,是对的,如果没有响的话,就告诉测试者该题目答错。
3.6 本章设计总结
本章硬件设计是为了能更好的让设计的思路清晰明白,对各个部分都要求很慎重,比如先是单片机任何选择问题,考虑到了很多因数:抗干扰、节约性、方便、速度快等方面,而且从实际的使用仿真角度去发,由于一些老的芯片已经完全停产了,所以不利于购买,因此放弃了一些芯片的选择,最后选择功能比较全面的 AT89S52,有看门狗定时,低功耗空闲和掉电模式、掉电后中断可唤醒、双数据指针等比较全面的功能,适合该设计的需要。液晶显示器从实用的角度出发,因为本次设计是乘法口诀,就可以用个两行的显示器,而LCD1602正是16字2行,就满足了需要。
键盘因为需要用0-9之间的数字来计算乘法所以用了4×4矩阵键盘,能安排16个功能键盘,8个数据输出,节约来芯片的利用资源。
基本完成选择后,就是进一部来考察各器件的使用和性质、接线,难度比较大的是如何来实现设计要求的各个功能,除了认真的去研究各个元器件的功能和作用之外,就很难完成要求的内容。
完成了硬件设计之后就对整个设计有了一个很仔细的认知,对学习专业和掌握专业知识是有莫大的帮助的。
完成的下一个阶段就是把软件和硬件的双向作用有效的结合到一快来,使设计完善。
 
推荐资料