1.概述
本实验利用单片机的定时器/计数器定时和记数的原理,结合DVCC实验箱上的集成电路芯片AT89C51、LED数码管以及实验箱上的按键来设计密码锁。将软、硬件有机地结合起来,使得系统能够正确地开启密码锁和更改密码,数码管能够正确地显示输入密码。本实验设计了16个开关按键,每次按下键需要检验是否确实按下,若是则输入密码;否则,反之。
2.设计要求
2.1设计流程:查阅有关文献资料→拟定电路原型→依据题目功能要求,进行电路元件选择→画出原理电路→系统硬件电路图→完成课题的程序设计→程序设计清单→写出设计报告。
2.2密码锁具体设计要求:利用单片机设计一个密码锁,要求可设定从1位到8位的密码,从键盘键入正确密码才可更改密码或开锁;输入三次错误密码电路就不断报警;开锁信号输出口用发光二极管表示。同时输入密码后要按确认键才有效。
1).可设置密码,掉电密码能保存;2).按键确实被按下时发出一下提示音;
3).设置新密码前需校验旧密码;
2.3可选器件:
51系列单片机、24C01、7段LED数码管、74LS244或74LS240、与非门等
3.设计方案
采用一种是用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图3-1所示。
企鹅1。16-5。86-4.375
3.1 键盘功能及工作原理我国四大名著
PC键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘有编码键盘和非编码键盘。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘。PC键盘多采用18行×8列的二维矩阵行列结构。采用行扫描法识别按下的按键。
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3-2所示。
游子吟孟郊图3-2 行列式键盘原理电路图
企鹅1。16-5。86-4.375
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图3-3所示的44键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
按键的操作面板如图图3-3所示。共计数字键10个,功能键6个。键盘上还有3个指示灯和一个蜂鸣器。
学前教育专业是幼师吗企鹅1。16-5。86-4.375
图3-3 按键操作面板示意图
按键包括有数字键和功能键。数字键包括0-9键,用于密码的输入。功能键有密码修改键和确认键。具体的功能定义如下表。
企鹅1。16-5。86-4.375 | ||
硬件设计
由实验要求采用4行×4列的矩阵行列结构。89c51单片机有4个8位I/O端口,采用P1口低四位作为行扫描线,高四位作为列扫描线。
软件设计
① 消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。
② 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、、主程序等。键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;主程序用于系统初始化,子程序调度,锁定状态的显示等。
3.2开锁及密码修改单元
通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图3-5所示。
好听的狗名字图3-5密码锁开锁机构示意图
当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图2-5所示。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
在按下密码修改键后,系统会要求输入原始密码,正确后再输入新密码,密码修改成功则单片机P3.1所接的发光二极管会亮3秒。
3.3 AT24C02掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如图3游戏手柄怎么设置-6所示。
图3-6 掉电存储电路原理图
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。由于实验室没有这类器件,因此在实际制作过程中这项功能省略。
3.4系统原理框图
图3-7 系统原理框图
3.5 C51电路图
企鹅1。16-5。86-4.375
图3-8 c51电路图
3.6总电路连线图
企鹅1。16-5。86-4.375
图3-9总连线图
4.设计程序
4.1模块介绍
该计程计价系统的软件设计分为以下几个模块:
(1)主程序模块
主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。
(2)键盘扫描及识别子程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
(3)调电存储服务程序
当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02中。
(4)显示子程序
(5)延时模块
4.2.程序流程图
主程序流程图及密码修改程序流程图如图4-1、4—2所示。
企鹅1。16-5。86-4.375
4.3程序
使用汇编编程如下:
;*******************************************************
; NLW 电子密码锁程序
;*******************************************************
企鹅1。16-5。86-4.375
收获与体会
这次设计课程,巩固了以前单片机的知识,同时我学到了很多书本上没有的知识,通过软件的使用,得到了很多的实践经验,并且上升到理论高度。
首先我学会了使用proteus这样的单片机专业软件,对以后单片机这门课程可能在工作上或者学习上的应用起到了很多帮助。
一个课题并不仅仅是实现要求的功能这么简单,它包含很多理论基础,如ATC51的灵活使用各个片脚的功能。如显示驱动部分怎么设计,晶振电路.复位电路的应用。24C01锁存器的应用。
还有应用汇编语言的能力得到了大大提升,学习了如何为配合硬件设计思路来编写程序,如何实现软件部分对硬件部分的控制。
这次课程设计顺利完成了,在设计中遇到了很多编程问题,最后在同学的帮助下,终于全部解决了。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
农业银行卡余额查询参 考 文 献
[1] 李朝青,单片机原理及接口技术,北京航空航天超大型出版社。
[2] 王贤勇,赵传申,单片机原理与接口技术应用教程,清华大学出版社
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论