1、中国高校自动化网 河南科技学院单片机课程设计1基于单片机控制的电子密码锁摘要:本系统由单片机系统、矩阵键盘、LED 显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用关键词:AT89S51,AT24C02, 电子密码锁,矩阵键盘一、 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。设计本课
2、题时构思了两种方案:一种是用以 AT89s51 为核心的单片机控制方案;另一种是用以 74LS112 双 JK 触发器构成的数字逻辑电路控制方案。考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。二、方案论证与比较方案一:采用数字电路控制。其原理方框图如图 11 所示。图 21 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。用以 74LS112 双 JK 触发器构成的数字逻辑电路作为密码锁的核心控制,共设了 9 个用户输入键,其中只有 4 个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如
3、果用户输入密码的时间超过 40 秒(一般情况下,用户不会超过 40 秒,若用户觉得不便,还可以修改)电路将报警 80 秒,若电路连续报警三次,电路将锁定键盘 5 分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置 UPS 电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输中国高校自动化网 河南科技学院单片机课程设计2入次数锁定电路。方案二:采用一种是用以 AT89S51 为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的 IO 端口,及其控制的准确性,不但能实
4、现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图 12 所示。图 22 单片机控制方案通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。三、电路的功能单元设计1开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图21 所示。单片机微控制器开锁驱动电路电磁锁密码正确?Y返回N图 31 密码锁开锁机构示意图当用户输入的密码正确而且是在规定的时间(普通用户要求在 12s 内输入正确的密码,管理员要求在 5s 输入正确的密码)输入的
5、话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图 22 所示。电路驱动和开锁两级组成。由 D5、R1、T10 组成驱动电路,其中 T10 可以选择普通的小功率三极管如 9014、9018 都可以满足要求。D5 作为开锁的提示;由 D6、C24 、T11 组成。其中D6、C24 是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11 可选用中功率的三极管如 8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。开锁控制电路89S51单片机AT24C02 掉电存储串口显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路中国
6、高校自动化网 河南科技学院单片机课程设计3在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。T10T11D5GNDR13.3K 电 磁 锁C24VCC串串串串串串串串D6图 32 密码锁开锁机构电路图按键电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的 I/O 线的数目,在按键比较多的时候,通常采用这样方法。其原理如图 3。89s51D0D1D2D3D4D5D6D7D8D9D105.1K X 45.1K X 4VCC图 33 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过
7、一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M 条列线,即可组成具有 NM 个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图 23 所示的 44 键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按下,总
8、会有一根行线电平被拉至低电平从而使行线不全为 1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。按键的操作面板如图图 23 所示。共计数字键 10 个,功能键 6 个。键盘上还有 3 个指示灯和中国高校自动化网 河南科技学院单片机课程设计4一个蜂鸣器。CLR 0 1 EN69F448F337F226F1L1 L2 L3图 34 按键操作面板示意图10 个数字键用来输入密码,另外 6 个功能键分别是:CL
9、R、EN、F1、F2、F3、F4 。其中 CLR键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。EN 键的功能是确认输入的密码。F1 是管理模式切换键,当用户不小心三次输入密码都没有正确,键盘被锁定,这个时候就可以启动管理模式,使用管理员的密码来开门。F2 是用来进入修改密码的状态。F3 用来关闭显示器,一来可以节省电量,另外也可以防止不法分子偷窥密码。F4 用来作电铃。上面的 3 个指示灯 L1、L2、L3 是用来指示操作的状态:L1 锁定及输入指示状态灯,正常的情况下显示红色,当键盘动作的时候,L1 灯开始闪动,当键盘处于锁定状态时,指示灯也显示红色。L2 开门指示灯,当
10、用户在规定的时间内正确的输入了密码,此灯转变为绿色,表示开门,否则不显示。L3 是管理员状态指示灯,当按下 F1 后,指示灯自动点亮。面板上还有一个蜂鸣器,其中一个功能是用来指示操作的按键是否在成功的按下;另外一个功能是当用户输入密码错误的次数超过了 3 次,鸣笛以示报警。3显示电路设计本系统设计的显示电路是为了给使用者以提示而设置的。考虑到为了节约单片机的口资源,本系统的显示采用串行显示的方式,只使用单片机的两个串行口,就可以完成单片机的显示功能,显示电路的电路原理图如图 25 所示。电路设定:当程序检测在 5 分钟内没有按键操作的时候,就关闭显示。这个功能使用程序来实现的,一旦没有按键动作
11、就启动一个定时器,检测在 5 分钟内没有按键动作的时候,启动一个程序,关闭显示,这样可以达到节省电能的目的。从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器 74HC164 还兼作数码管的驱动,插头 1(header1)接电源,插头 2(header2 )接数据和脉冲输出端。电路中的三个整流管 D1D3 的作用是降低数码管的工作电压,增加其使用寿命。中国高校自动化网 河南科技学院单片机课程设计5A1 B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8 MR9IC1A1 B2Q03Q14Q25Q36Q
12、410Q511Q612Q713CLK8 MR9IC2A1 B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8 MR9IC3A1 B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8 MR9IC4A1 B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8 MR9IC5A1 B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8 MR9IC612HEADER212HEADER1vcca bfcgdeDPY1234567abcde f g8dpdp9 LED0a bfcgdeDPY1234567abcde f g8dpdp9 LED1a
13、 bfcgdeDPY1234567abcde f g8dpdp9 LED2a bfcgdeDPY1234567abcde f g8dpdp9 LED3a bfcgdeDPY1234567abcde f g8dpdp9 LED4a bfcgdeDPY1234567abcde f g8dpdp9 LED5Cd1d2d3图 35 显示器原理图显示器主显示几个字符,给用户提供指示见图 26 所示。图 36 a 关闭状态图 36 b 开锁状态图 36 c 密码输入及修改状态图 36 d 密码输入错误后的提示图 36 e 密码在规定的时间内输入错误次数超过 3 次后的锁定状态O F F - - 28 8
14、8 - - 1- - - - - -E R R O R S- L O C K -中国高校自动化网 河南科技学院单片机课程设计64AT24C02 掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是 ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。其电路如图 25 所示。NC1NC2NC3GND4 SDA 5SCL 6WP 7VCC 8U4AT
15、2 4C02AGNDVCC串串串串串串R85.1kR105.1k串P2.5串P2.6图 37 掉电存储电路原理图图中 R8、R10 是上拉电阻,其作用是减少 AT24C02 的静态功耗,由于 AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线 SCL(移位脉冲)和 SDA(数据/地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。5密码锁的电源电路设计为了防止停电情况的发生,本电路后备了 UPS 电源,它包括市电供电电路,停电检测
16、电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。电源电路图如图 28 所示。12JP112JP2D1D2D3D4 D5R11KC13300C20.1 C333001 2 37805图 38 市电供电电路220V 市电通过变压器降压成 12V 的交流电,再经过整流桥整流 ,7805 稳压到 5V 送往电子切换电路,由于本电路功耗较少,所以选用 10W 的小型变压器。由 R8,R9 ,R6,R7 及 IC14 构成电压比较器,正常情况下,V+V- IC14 输出高电平,由 T3,T4 构成的达林顿管使继电器 J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的
17、正常工作(视电池容量而定持续时间) 。其电路图如下图 6 所示:中国高校自动化网 河南科技学院单片机课程设计7R850KR940K R730KR620KT39018R105.1KT4901412 3IC147415V A1 A2 5V A1A2VCC图 39 停电检测及电子开关切换电路T1,T2 构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1 亮为正在充电,D2 为工作指示。由 R4,R5, T1 构成电压检测电路,蓄电池电压低,则 T1,T2 导通,实现对其充电;充满后,T1,T2 截止,停止充电,同时 D1 熄灭,电路中 C4 的作用是滤除干扰信号。其电路图如图 7 所
18、示:R5470R23KR13KT19014D2D1C40.1U3CG21R43K6V A26V 图 310 蓄电池自动充电电路6设计总框图图 311 总体设计框图7设计总体电路图开锁控制电路89S51单片机AT24C02 掉电存储串口显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路电源电路及 UPS 电路中国高校自动化网 河南科技学院单片机课程设计8P0.7 32P0.633P0.5 34P0.4 35P0.336P0.2 37P0.1 38P0.039VCC 40P2.0 21P2.122P2.2 23P2.3 24P2.425P2.5 26P2.6 27P2.728ALE/P
19、ROG 30PSEN 29EA/VPP31P1.01 P1.12P1.23 P1.34P1.45 P1.5/MOSI6P1.6/MISO7 P1.7/SCK8REST9 P3.0/RXD10P3.1/TXD11 P3.2/INT012P3.3/INT113 P3.4/T014P3.5/T115 P3.6/WR16P3.7/RD17 XTAL218XTAL119 GND20U1 AT89S51C122uFR11KCRY6MHzC233PF C333PFSPEAKDLQI1RESETRESETGNDS5EA/VPALE/PPSENGNDC51000uF/25VC40.1uFVCCGND123EA/
20、VPNC1 NC2NC3 GND4 SDA 5SCL 6WP7VCC 8U4AT24C02ASCLGNDSDA12VCCDATASCLWR1234R/T/LEDSDAVCCDATAWRGNDVCCVCCVCCVCCGND串串串串串串串串串串串串串串串串DLQI2DSR7200串串串串MCU串串CS EA/VP串串串串串串R85.1k R105.1k串串串串串串串串串串UPS串串图 312 总体电路图四、程序设计1模块介绍该计程计价系统的软件设计分为以下几个模块:(1)主程序模块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。(2)键盘扫描及识别子
21、程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如图 所示.(3)调电存储服务程序当比较密码的时候,需要读 AT24C02 程序,将存储在芯片内的数据读到 RAM 中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到 AT24C02 中,其程序流程如图 所示.(4)显示子程序由于是分屏显示数据,所以就要用到 5 个显示子程序,分别是:关闭状态显示子程序(DIS_A) 、开锁状态显示子程序(DIS_B) 、密码输入及修改状态显示子程序(DIS_C)、密码输入错误后的提示子程序(DIS_
22、D) 。密码在规定的时间内输入错误次数超过 3 次后的锁定状态显示子程序(DIS_E) .2.程序流程图中国高校自动化网 河南科技学院单片机课程设计9(1)主程序流程图如图 31 所示。开始初始化有键按下?调用显示启动定时识别按键全部按完?超时?比较密码开门开始自动清除3 次?锁定NNYY YYNN按下 F2启动定时输入密码存入缓冲再输入一次比较密码调用 24C02调用显示按 F2 退出Y重新输入N图 41 主程序流程图 图 42 修改密码流程图五、总结由于使用的是单片机作为核心的控制元件,以及灵敏的霍尔开关型器件,是本出租车计价器具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的
23、程序,使其有很高的智能化水平。但是在我们设计和调试的过程中,也发现了一些问题,譬如计价的金额位数有限,实际的里程可能会很远,会超出我们的显示范围。计价器的设计还不够人性化,比如加上语音的提示功能,可能会更有生命力。AbstractA new intelligent milometer base on a microcontroller can count the sum. By taking full use of the processor 89s51 and EPROM (AT24C02) and sensor of magnetism, it can count the sum of fully distance and the course of development.