陕西理工学院毕业论文
响应中断请求 图3.6 中断响应和处理过程
返回主程序 主 程序 响应中断请求 中断服务程序
3.3 AT24C02存储芯片
AT24C02为美国Atmel公司的小消耗CMOS型E2PROM,包括256×8位储存空间,包含运行电压宽(2.5~5.5 V),擦写数量大(大于10000次),输入速率高(小于10 ms),抗扰乱程度高,资料不易消失,空间小等特征。同时它是采取了I2C总线式开始资料读写的串行元件,占有较小的数据与I/O线,同时支持在线编写程序,进行资料实时的存取特别简单。同时AT24C02中带有的片内地址存储器每存进或取出一个字节后,这个地址寄存器主动加1,从而可以自动对下一个存储单元进行读写,全部字节都以唯一的操控方式进行存取。为了使总的写入时间降低,8个字节的数据可以被一次写入。I2C总线是一种二线制总线用于在IC器件之间进行连接。它用SDA及SCL两根线与连到总线上的器件之间互相联络,同时通过地址来鉴别每个与之相连的器件。AT24C02遵从了I2C这样的章程,通过主/从机互相之间的交流,主机(通常为单片机)和从机(AT24C02)都可以变为接收器和发送器。串行时钟信号由主机产生并发出控制字,并操纵总线的发送的方向,来做出开始和停止的控制要求。不管是主机还是从机,获得一个字节后一定会传送出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号传送出去后,主机便会发
[9]
出控制字,来确定从机并操纵总线传送的方向。
SOIC PDIP 图3.7 常见的24C02的两种引脚图
6 页 共 74 页 第
陕西理工学院毕业论文
R310KR2VCC10KAT24C021234A0A1AN2DGVCCPSWCLSDA8765P34P35 图3.8 AT24C02各管脚的连接图
图中AT24C02的1,2,3脚为三个地址线,作用是确定芯片的硬件地址。第8脚与第4脚为正、负电源。第5脚SDA是串行资料输入/输出,资料经过这条双向I2C总线串行发出,第6脚SCL是串行时钟进入线, SDA与SCL都要求与正电源间分别联结一个10 K的电阻上提。第7脚要求连地。倘若WP管脚联结到Vcc,整体的内容就会被保护仅仅读取。假如WP管脚联结到Vss 或者悬空许可器件开始普通的读/写操控。 3.4 LCD显示模块
LCD1602是一种工业字符型液晶,能够同时显示16x2 即32个字符。从我们平时的生活中来说,液晶显示器已经日渐的深入到我们日常的生活中去。众多的电子类器件都开始选择液晶显示器作为其输出信息的一种器件,比如在日常用到的计算机,电话,手表,检测仪器等产品中都可以看到液晶显示器的身影,从而将数字和图像、字符等显示在用户的面前。在用户和操作的核心器件之间的交流过程中,可以选择的用来输出的显示器件主要是,发光管和LED数码管、液晶显示器等。但是总体来说LED数码管
[10]
和液晶显示器比较常用,操作起来相对都比较简单。
在这次基于单片机的电子密码锁中应用晶液显示器作为输出器件有以下几个原因:
液晶显示器各个点在接收到控制信息后就一直处于同一种水平色彩与亮度,一直发光,不像阴极射线管显示器(CRT)需要随时刷新亮点。所以,液晶显示器画面质量高并且不会闪烁。
液晶显示器全是数字式的,在和单片机系统进行接口时更加简单易行,操控会更便捷。
液晶显示器经过显示屏里的电极来控制液晶分子来实现显示的目标,能够更加清晰的显示目标 比较来说,液晶显示器的消耗重要功耗在它里面的电极与驱动IC里,同时耗电量比另外显示器要
[11]
小的很多。
7 页 共 74 页 第
陕西理工学院毕业论文
1602VCCGNDVCCV0RSR/W10kEND0D1D2D3D4D5D6D712345678910VCC
图3.9 液晶显示模块电路图
(1)重要引脚说明:
RSWREND0D1D2D3D4D5D6D71.5k111213141516AKAK
第3脚:VL为液晶显示器辉度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生无法正常显示的情况,使用时可以通过一个10K的电位器调整对比度。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶显示器开始工作。 第15脚和第16脚分别为背光源的正负极。 (2)1602LCD的RAM地址以及规定的字库表
LCD1602液晶模块里边的的存储器已经存储了160个不同的点阵字符图形,主要有:阿拉伯数字、大小写的英文字母、常用的符号、和日文假名等,每一个字符都有一个相对应的代码,例如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母。
它的读取控制、屏幕和光标控制是在指令编程条件下来实现的(说明: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:读数据。
液晶显示模块作为一个慢显示部分,因此在执行每条命令之前必须要确认模块的忙信号为低电平,表示不忙,否则该指令没有应答。需要显示字符时要先将字符地址输入进去,即说明模块在哪里显示字符。
比如,第二行第一个字符的地址是40H,那么直接写入40H 是不是就可以将光标定位在第二行第一个字符的位置呢?答案是否定的,因为写入显示地址时要求最高位D7一直为高电平1,所以应该修改写入的数据地址是01000000B(40H)+10000000B(80H)=11000000B(C0H) 。对液晶部分的初始化中要先确定其显示方式,在液晶部分显示字符的光标是自动向右移动的,不需要再为其设置。但是每次输
8 页 共 74 页 第
陕西理工学院毕业论文
入指令前都要判断液晶模块是否处于忙的状态。
液晶显示的原理是通过使用液晶的物理特性,利用电压对它的显示部分进行操作,有电就可以显示,这样就可以表示出我们需要的图形。由于液晶显示器现在已经被广泛应用在笔记本电脑、数字摄像机、
[12]
PDA移动通信工具等很多高科技产品中。 (3)显示内容 开锁时:
当在键盘输入密码时,密码在LCD1602上显示出来的字符是“Input :******”,密码总共显示六位。密码输入正确后,则显示器上显示“Open”字符。如下图3.10所示。
当密码输入超过六位时,则不再显示“*”字符,同时再按下其他键时,也将不再显示,直到重新打开密码锁,出现“Input Password”,方可继续输入。如下图3.11所示。
当输入六位错误密码时,LCD1602显示器则会显示“error”字符,之后还可以继续输入密码,当连续输入三次密码都错误的情况下,LCD1602会显示“error”,并无法再输入新字符。
图3.10 密码输入正确
图3.11 密码输入错误
修改密码时:
当密码正确输入两次后,LCD1602将会显示“SetNewWordEnable”,之后输入新密码时,又出现“Input:******”,新密码输入一次后,LCD1602显示器又将显示“input again”,此时继续输入新密码“input:******”,新密码输入两次后,显示器显示“ResetPasswordOk”,直至此时,新密码设置成功。 如下图3.12和3.13所示。
9 页 共 74 页 第
陕西理工学院毕业论文
图3.12 设置新密码
图3.13 新密码设置正确
3.5 键盘设计
这次在密码的输入方面,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,一般可以采用这样方法。
各条水平(行线)和垂直线(列线)的交汇处并不导通,需要经过一个按键来导通,采取这种行列式矩阵构造只要求N条行线与M条列线,就可以构成包括N×M个按键的键盘。
由此次行列式矩阵键盘不是键盘编码的单片机设计中,键盘解决程序第一次执行处于按键等待同时确认
[13]
是否按键压下的程序区间。
4×4矩阵键盘的工作原理
在键盘中按键数值很多,为了方便降低I/O口的使用,一般将按键构成矩阵格式,如图5所示。在矩阵式键盘里面,各个水平线与垂直线在交汇处非直接联结,就是经过一个按键加以联结。所以,一个端口(如P1口)就能够组成4*4=16个按键。 扫描原理
把每个键都分成水平和垂直的两端接入,假设扫描码是从垂直进入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描时是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。
考虑到这种按键是机械式的开关,当按键被按下时,键会震动一段时间才能信号稳定,为了避免让单片机判断为多次输入同一按键,我们可以设计为检测到到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
10 页 共 74 页 第
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库智能密码锁的设计 - 图文(3)在线全文阅读。
相关推荐: