郭能强
摘要:文章讨论了如何用AT89S52单片机来设计电子保险箱。利用矩阵键盘输入密码,与初始密码进行比较,如密码正确则从外部模式进入到内部模式(用电子音乐提示);如密码错误,则停留在外部模式且发光二极管发出闪亮提示。当密码连续出现三次错误时,系统则启动报警功能,同时不能继续输入密码。本设计利用电子密码锁来实现对电子信息(音乐)的加密。
关键词:单片机;电子信息;矩阵键盘;密码
中图分类号:G712 文献标志码:A 文章编号:1674-9324(2015)40-0257-03
安全话题永远都在渗透我们的生活,信息安全更是尤为重要。电子密码锁的出现解决了信息安全隐患的一大难题。电子保险箱由于其保密性能高,使用起来灵活性好,安全系数高,因此受到广大用户的青睐。电子保险箱在日常的生活和现代化办公中的应用极其广泛,办公室的文件档案、财务报表以及许多重要资料的保存都或多或少与电子保险箱联系在一起。该文从经济实用性的角度出发,采用AT89S52单片机,设计出了一款具备了自动报警功能的电子保险箱。
一、电子保险箱系统总构思
本设计的主要控制芯片是AT89S52单片机,保险箱系统由AT89S52单片机、矩阵键盘、数码管、开锁电路以及一些报警信息读取装置组成。
二、硬件组成部分
(一)最小系统电路
首先形成单片机最小系统(如图1所示),在89S52单片机芯片XTAL1(19引脚)、XTAL2(18引脚)中加入时钟电路,RST(9引脚)中加入复位电路。
89S52的复位是由外部的复位电路来实现的,复位电路分为上电复位和按键复位。本设计采用的是按键复位,正常工作时按下复位键,单片机第9引脚变为高电平。单片机复位按键松开,通过电容放电,第9引脚回到低电平。采用的是12MHZ晶振,所以C3=1μF,R1=70Ω,R4=70Ω。
(二)矩阵键盘电路
矩阵键盘(如图1所示)通常被称之为行列式键盘,它主要是用四条I/0线作为列线组成矩阵键盘。在每条行线和每条列线的交叉点上,分别设置了一个按键。整个键盘由16个键组成,这种键盘结构的特点是能够有效提高单片机系统中I/0口的利用率,在本设计中它使P1口原本的6个整合成16个。在设计中行线接的是P1.0-P1.3,列线接的是P1.4-P1.7。每一个按键代表一位密码,一共有15位数,第16个键用做确认密码。
(三)密码显示电路
密码显示电路(如图1所示)采用的是共阳极数码管显示密码,共阳极的数码管7个发光二极管的阳极都连接在一起。把公共的阳极接在高电平上,把其他管脚接在段驱动电路输出端。当段驱动电路的输出端为低电平时,这个端口所连接的字段导通并且发光二极管点亮。
(四)密码提示电路
1.如果用户输入的密码正确,发光二极管D1(如图2所示)将发光,提示用户密码输入正确,可以进入后面的操作。
2.如果用户输入的密码错误,发光二极管D2(如图2所示)将发光,提示用户密码输入错误,必须返回重新输入密码。
3.如果用户输入的密码错误三次,报警系统将开始运行,LS1蜂鸣器接通开始报警。
(五)总硬件图
I/O分配表:(1)矩阵键盘P1口;(2)数码管显示P0口;(3)正确指示灯接P2.1口;(4)错误指示灯接P2.2口;(5)报警蜂鸣器接P2.7口;(6)两个内选按钮分别接在P3.2,P3.3口;(7)退出按钮接P3.7口;(8)播报音乐蜂鸣器接P2.3口。
三、系统软件的设计
1.设计语言。C语言是一种中级语言,这种语言不仅具备了高级语言所便于学习与开发、接近人类自然语言的特点,而且还具有低级语言直接操作计算机的特点。这两大特点使它成为开发系统软件和应用软件的强有力的一种工具。
2.主程序。当用户输入密码后,系统将对密码进行判断。如果密码错误,系统将还停留在密码输入界面,并且密码错误指示灯亮。当密码错误三次时系统的报警功能打开,开始报警。如果输入密码正确,密码正确指示灯亮,并且系统将进入内部模式。在内部模式中用户可以手动切换自己想要的信息(电子音乐),也可以退出此模式。(流程如图2所示)
3.键盘扫描子程序。如果矩阵键盘有按键按下,则单片机系统首先将矩阵键盘第一列所对应的I/O口归零,然后从第一行开始逐个用系统内部所设定的键盘值的数组与P1口现在的值进行比较,如果数值相同则把这个数值在数组中所对应序号返回给调用函数。如果没有与此数值相同,则单片机内部再把第二列所对应的I/O口归零,再继续从第一行开始比较,就此类推,直到把所按的按键对应系统的数组序号值找出来,返回给调用函数为止。如果一直没有按键按下,则把“66”这个数返回给调用函数。