1、电子密码锁报告基于单片机控制的电子密码锁基于单片机的电子密码锁一 设计任务 设计一个利用AT89S52单片机控制的电子密码锁,该电子密码功能包括16个密码输入,密码输入过程中清除输入,密码正确和错误分别用蜂鸣器提示,输入错误密码超次锁定,密码修改,12864LCD显示菜单实现多功能等等。 二 总体方案设计与实现 电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入,外加独立按键实现清除,确定和液晶反白控制。密码存储电路利用AT24C02芯片,该芯片可以实现掉电存储,而且数据可保留时间长,与单片机连接简单。报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂
2、鸣器送不同频率的电平信号实现不同声音报警。LCD用12864字符型液晶实现,通过单行反白实现菜单,加强液晶显示内容及添加系统功能。另外,电磁锁电路暂时利用发光二极管代替,用发光二极管的亮灭和蜂鸣器的响声来指示电磁锁的开关。 图1单片机最小系统三 硬件电路的功能单元设计(一) 单片机最小系统 其原理图如图1所示图2系统总体原理图单片机采用AT89S52单片机, AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。在此,我们采用按键手动复位,相对来讲,
3、这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。(二) 开锁电路 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图2 所示。 图3 开锁电路原理当用户输入的密码正确单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。 在此为节省成本考虑,我们用二极管代替电磁锁,将一切在LCD上面显示,并且利用蜂鸣器和二极管声光指示。(三)密码存储电路设计密码存储采用AT24C02存储,它能都掉电存储数据。掉电存储单元的作用是在系统电源断开的时候,存储当前设定的密码数据。AT24C02是ATMEL公司的2KB字节的电可擦除是模拟的IIC总线式EEP
4、ROM,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10a(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。本实验中,AT24C02的SCLK和SDA引脚(SDA为数据线,SCLK为时钟信号线)接上拉电阻后与单片机的P2.6和P2.7脚相连,其电路图如图5所示图4 AT24C02掉电存储电路图(四) 按键电路设计1 按键密码输入电路设计 由于本设计中要求使用0-F 16个密码数值按键输入,数目较多,故使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时
5、候,通常采用这样方法。本设计中采用矩阵键盘行线和单片机P1.0P1.3相连,列线与单片机P1.4P1.7相连,其电路图如图6所示 键盘扫描采用行扫描法,即依次置行线中的每一行为低电平,其余均为高电平,扫描列线电平状态,为低电平即表示该键按下。键盘消抖采用软件延时消抖,可以减小硬件电路复杂程度,控制简单。图5 矩阵键盘模块电路图2 独立按键电路设计 本设计除矩阵键盘的0-F 16个密码按键之外,还需要有另外独立按键作为控制。本次设计一共设计了4个独立按键,利用单片机I/O口直接连接,电路简单。其中两个按键用来作为密码输入时的确定和清除键,使系统做到更加人性化。另外两个按键用于LCD12864的菜
6、单选择按键,是LCD显示更多的内容,同样,这个设计也是为了使系统功能更加强大,系统更加贴近人们日常使用,同样是系统更加人性化。由于本设计的软件设计中不会用到单片机P3口第二功能,因此独立按键一端与单片机P3.23.7相连,另一端接地,其电路图如图7所示图6:独立按键模块电路(五) 声音提示电路设计声音提示电路采用小蜂鸣器提示。蜂鸣器能够根据脉冲信号,以及信号的频率发出各种不同的声音,这样我们就可以更具系统要求发出密码出入正确和密码输入错误是发出不同的声音提示,已达到报警的要求。蜂鸣器电路如图8所示图7 蜂鸣器模块电路(六)显示模块设计显示电路采用12864 字符型LCD显示。中文字符型1286
7、4中文液晶显示模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2M-位中文字型ROM (CGROM) 总共提供8192 个中文字型(16x16 点阵),16K-位半宽字型ROM (HCGROM) 总共提供126 个符号字型(16x8 点阵),64 x 16-位字型产生RAM (CGRAM),另外绘图显示画面提供一个64x256点的绘图区域(GDRAM),可以和文字画面混和显示,使显示功能
8、更加强大。本设计中我们采用的字符型12864LCD,自带中文字库,使我们的程序控制显示更加简单,设计的时候能够灵活按照我们的要求显示汉字,简单明了,而且利用该LCD如单片机控制器的串行接口模式,LCD显示模块与单片机的连接仅仅只需要5根线,比图像型LCD显示模块要少了7根线,大大节约了单片机的I/O口!另外该类液晶还支持反白显示,这样我们可以利用该功能将显示做成单行反白式菜单,可以让液晶现实更多的内容使设计更加贴近人们的生活使用习惯,使设计更加人性化!在设计中,我们将密码修改,恢复初始密码等等做成二级菜单选项,通过按键操作,功能更强大,操作简单方便明了。此外根据功能扩展需要,我们甚至可以添加多
9、级菜单,是电子密码锁功能更加强大!本设计中液晶串口一共用到5根线与单片机相连其中CS引脚, R/W引脚,SCLK引脚,PSB引脚,RESET引脚分别对应与单片机的P2.0,P2.1,P2.2,P2.3,P2.5相连接。四 软件程序设计及流图模块介绍与硬件电路相关联,本电子密码锁系统的软件设计分为以下几个模块:主程序模块,键盘扫描及识别模块,AT24C02密码读写存储模块,12864LCD显示模块,蜂鸣器模块等等。下面分别介绍各个模块的程序设计(1)主程序模块 在主程序模块中要完成系统初始化,检测按键,调用存储以及调用显示等功能。(2) 键盘扫描及识别子程序模块密码输入矩阵键盘采用行扫描法,扫描
10、方式为查询的方式,在主程序中调用,无键按下的时候,程序一直在子程序中间循环当有键按下时,及识别按键以及送到LCD显示。密码设置为6位,密码输入过程中可以实现密码清除,通过查询方式检测独立按键的清除键,调用清除程序实现。矩阵键盘扫描及识别用在密码输入和密码修改程序中间!独立按键也采用查询方式,放在各程序中,无键按下的时候继续循环程序,有键按下的时候即跳转到相应的程序执行。独立按键模块主要在LCD反白菜单的时候调用。 (3)调电存储服务程序模块当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02
11、中 (4) 显示子程序模块显示子程序包括LCD12864串口驱动程序,液晶反白程序等等。利用写好串口驱动程序,我们只要在要显示的时候,只要写好要显示的字符,然后直接调用驱动程序就可以,方便使用液晶。液晶反白菜单程序的的完成,是利用字符型LCD12864的绘图显示功能。首先,我们将液晶显示中文字符,然后利用绘图指令将我们要反白的地方送上FFH即可以是几个中文字反白显示,反之,要清除法反白的时候,我们只要往反白的地址送00H即可正常显示!利用按键控制反白行的选择,我们在设计中制作了四个子菜单,分别是:修改密码 ,恢复初始密码,制作者信息以及上锁。液晶单行反白控制菜单,液晶显示内容多,加强系统功能,
12、简单实用。五 调试与总结本系统由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、错误报警,超次锁定、修改用户密码,恢复初始密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统利用单片机控制,LCD菜单显示,配合蜂鸣器和发光二极管的声光指示,再加上AT24C02的密码存储功能,系统成本低廉,功能强大实用。但是在系统调试过程中,还是发现一些问题,系统不稳定情况时有发生,经过反复调试发现下列问题: 按键效果不好,产生较大状况的抖动,使软件消抖不完全;另外一个就是单片机本身不问题,引起系统跑飞或者卡死;还有就是由于电路板制作的原因,线路之间产生干扰,系统发生错误,比如液晶显示错误等等。经过反复调试和修改,最好终于达到一个比较满意的水平。本系统设计还做的不是太人性化,比如说能够加上语音提示和遥控开锁功能,将可能会更加有生命力!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1