-基于单片机电子密码锁设计毕业论文内容摘要:

图 21 矩阵键盘 本次设计需要 0~9 十个数字按键、一个清零键、一个确认键和一个重置密码键共 13 个按键,所以选用 4X4 的矩阵按键。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段,还要对按键进行消抖处理。 当确认有按键按下后,就要识别是哪一个按键被按下。 本次设计使用的是线反转法。 给 行线置为 0x0f,给列线置为 0xf0,再将行列进行逻辑或结果为 0xff,当有按键按下时相应的按键位行列均为 0,行列逻辑或不为 0xff,由此可利用行列逻辑或后的值是否为 0xff来判断是否有按键按下。 再根据扫描结果判断按下键的位置。 给相应的按键赋值即可实现数字键和功能键。 对功能键进行相应的软件编程即可实现按键功能。 使用矩阵键盘能减少键盘和单片机接口所占用的 I/O 线数目,当按键较多的时候通常采用这种方法。 开锁电路 在本次设计中用发光二极管代替电磁锁,二极管亮表示锁开,二极管灭表示没有开锁。 如图 22所示,当输入密码与内置密码相配合时将 置 0,二极管第二章 电子密码锁硬件电路设计 5 亮。 否则二极管不亮 图 22 发光二级管电路 报警电路 报警电路由单片机和蜂鸣器组成,如图 23所示,当 为高电平时蜂鸣器发出声音报警。 每次输入的密码与正确密码进行比较,如果相同,锁开灯亮。 如果输入错误则用一个变量来记录输入错误的次数,当输入密码错误达到三次时,蜂鸣器工作发出报警声音,本次设计使用的是声音间断蜂鸣器声音报警来报警,即声音持续时间 20ms 后又将 置 0 时间为 20ms,如此循环,即可听到“嘟嘟嘟”的间断响声。 设置报警 总时间为 10S。 图 23 报警电路 淮安信息职业技术学院毕业设计论文 6 数码管显示电路 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个 “8” 可分为 1 位、 2 位、 4 位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 (COM)的数码管。 共阳数码管在应用时应将公共极 COM接到 +5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。 当某一字段的阴极为高电平时,相应字段就不亮。 共阴数码 管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM)的数码管。 共阴数码管在应用时应将公共极COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。 当某一字段的阳极为低电平时,相应字段就不亮。 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ① 静态显示驱动:静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二十进制译 码器译码进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,如驱动 5个数码管静态显示则需要 58 = 40 根 I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 ② 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8个显示笔划的同名端 “ a,b, c, d, e, f, g, dp “ 连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形 码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。 通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点亮时间为 1~ 2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O端口,而且功耗更低。 密码显示电路由单片机、电阻排和 6 位数码管组成。 显示电路如图 24 所示。 P0口控制段选, P2 口控制位选。 第二章 电子密码锁硬件电路设计 7 为保证密码的保密性,本设计采用“ — ”显示所有输入密码,如图 24所示。 当重设密码时,为了防止手动错误,数码管显示数字,如图 25 所示。 数码管显示原理: “ — ”显示原理:在选择位选的情况下,段选仅点亮“ g”管即可显示当位为“ — ”; 实现左移逐渐点亮原理: 当输入一个数字时,第五位(从右往左数)赋值给第六位,第四位的值赋给第五位,第三位的值赋给第四位,第二位的值赋给第三位,第一位的 值赋给第二位,输入的值赋给第一位,同时点亮第一位数码管。 当输入第二个数字时,每一位与输入第一位时相同均向左移一位,将输入的值赋给第一位,同时点亮第一位和第二位数码管。 如此每输入一个数字数码管就向左移动了一位,输入的数字赋值给第一位数码管,并相应点亮右边的数码管。 当按下功能键时,相应的功能键实现相应的功能,而数码管全部回零熄灭。 直到再一次输入数字。 图 24 数码管显示电路 图 25 重设密码数码管显示数字 淮安信息职业技术学院毕业设计论文 8 复位电路 单片机的第 9 脚 RST 为硬件复位端,只要将该端持续 4 个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,电路图如图 26 所示 图 26 复位电路 图中由按键以及电解电容、电阻构成按键及上电复位电路。 由于单片机是高电平复位,所以当按键按下的时候,单片机的 9 脚 RESET 管脚处于高电平,此时单片机处于复位状态。 当上电后,由于电容的缓慢充电,单片机的 9脚电压逐步由高向低转化,经过一段时间后,单片机的 9 脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从 0000H 开始执行。 密码存储电路设计 本设计中,智能密码锁工作时分为两 种工作状态,分别是正常状态和锁定状态。 锁定状态时,输出锁定信号,实现上锁功能;正常状态时,锁定信号消失实现开锁功能。 本设计采用 AT24C01 存储密码。 AT24C01 是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM,它内含 1288 位存储空间,具有工作电压宽( ~ )、擦写次数多(大于 10000 次)、写入速度快(小于 10ms)等特点。 具有 PDIP、 MSOP/TSSOP 及 SOIC 等三种封装形式,以适应不同产品的需求。 将密码存入 AT24C01 中, 开锁时,将从面板上的微键盘输入的数字序与 AT24C01中存储的密码相比较,如果位数及每一位上的数都相吻合,则进行开锁 第二章 电子密码锁硬件电路设计 9 程序复位后,先将 AT24C01 中保存的密码取出,放入 RAM 缓冲区 1中暂存,将定时器、堆栈等进行初始化,为报警系统作好准备,将 RAM 缓冲区 2中的密码初值设置为和 RAM 缓冲区 1 中的密码不同,保证程序复位后比较密码不会相同,这时,进入 RAM 缓冲区 1和 RAM 缓冲区 2的密码比较程序,只有当两者位数相同而且每一位数字都相同时,执行开锁动作、输出开锁信号、进入正常状态,否则执行上锁动作、输出上锁信号、进入锁定状态。 在正常状态时,可以进行重新设置密码、上锁等 操作,重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至 AT24C01 中,同时更新 RAM 缓冲区 1。 在锁定状态时,系统启动报警功能,同时等待用户开锁,如发现用户按下 “ 开锁 ” 键,则读入从微键盘输入的数字序列,用其更新 RAM 缓冲区 2,转入密码比较程序,如密码相同则开锁,否则继续等待用户开锁,为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警,直至开锁后解除。 如图 27所示 : 图 27 密码锁存储电路 淮安信息职业技术学院毕业设计论文 10 第三章 软件设计 11 第三章 软件设计 软件设计 思路 电子密码锁工作的主要过程是 LED 数码管提示开始输入密码,通过键盘输入密码,同时 LED 显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。 当输入密码连续输入错误 3次时,系统报警。 密码的设定,在此程序中密码是固定 40H—。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。