摘要: 为了提高个人资料、部门文件档案的保密性和安全性,采用高速、低功
耗且具备ISP、IAP、内部E^2PROM功能的STC89C52单片机,设计了保密性更高的电子密码锁,并详细介绍STC89C52单片机内部E。PROM有关的特殊功能寄存器、读写子程序。该电子密码锁的上锁、开锁、修改密码都在片内进行,不涉及外围芯片,减小了PCB面积,降低故障率和成本,提高了可靠性、保密性,值得推广。
1 课程设计题目:密码锁
利用单片机STC89C52设计一个密码锁,能够使用数码管显示器来显示密码输入的相关信息,通过10位数字按键(0~9)设置4位数字(0~9)密码,2位功能按键A(输入校验密码并验证密码)和B (设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。 具体设计内容:
上电时内定初始密码为“0000”,红色发光二极管点亮,绿色发光二极管熄灭,数码管显示器显示“初始状态”,“初始状态”由设计者自行设计,但不可省略。
功能按键A:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。
功能按键B:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。
? 密码输入正确则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;
? 密码输入错误则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;
? 校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后
1
蜂鸣器停止报警,新密码失效,恢复初始密码使用。
2 设计内容说明:
设计必须实现“主要设计内容”的所有功能,但对于“具体设计内容”可做适当调整,密码输入错误3次环节可自行设计。
此外,为了加强密码锁的严密性,可采取下述方案对“设置新密码功能”环节进行加强,依据设计思路可作适当调整,此部分内容为附加内容。
功能按键A:实现输入校验密码并验证密码功能,显示校验密码并进行密码比较。
? 密码输入正确:
? 则继电器启动,并使红色发光二极管熄灭,绿色发光二极管点亮,数码管显示器提示“密码正确”,“密码正确”状态的显示内容由设计者自行设计,但不可省略,若不设置新密码,则持续5~8S后继电器关闭,绿色发光二极管熄灭,红色发光二极管点亮;
? 若功能按键B按下:实现设置新密码功能,存储新密码并显示,一旦设定新密码,则初始密码失效。但此功能必须以旧密码输入正确为前提。
? 密码输入错误:
? 校验密码连续输入错误小于3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码错误”,“密码错误”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警;
? 校验密码连续输入错误3次,则持续红色发光二极管点亮,绿色发光二极管熄灭状态,蜂鸣器报警,数码管显示器提示“密码连续错误3次”,“密码连续错误3次”状态的显示内容由设计者自行设计,但不可省略,持续2~5S后蜂鸣器停止报警,新密码失效,恢复初始密码使用。
3 系统方案设计及确定
3.1 系统方案的提出
本次课程设计的密码锁电路主要由四个模块组成:键盘输入模块、数据处理模块、显示控制模块,继电器驱动模块和蜂鸣器报警模块。
2
方案一:以单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动4位数码管显示器提示程序运行过程和开锁的步骤,利用继电器及蜂鸣器模拟电子门锁作出是否开门以及报警等反应。图1为单片机控制密码锁的系统原理框图。
图1 单片机控制密码锁的系统原理框图
输入按扭开5秒定时电输入锁存密码存储20秒定时声光指示开锁控制机械动作图2 数字逻辑控制方案电子密码锁
方案二:以74LS112双JK触发器构成的数字逻辑电路控制方案,如图2。 3.2 方案比较及确定
由于利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能,故选用方案一。
CPU的选择
3
STC89C52系列单片机,高速、低功耗、新增在系统/在应用可编程(ISP,IAP)功能,使不具有E2PROM的单片机具有了E2PROM的功能,可以在线对现场历史数据的存储功能,适用于一些需经常改变数据的应用产品(如计费器、门禁系统等)及需远距离改变设备参数的产品(遥控设备等)。采用STC89C52单片机设计的电子密码锁,利用内部E2PROM资源,不需要外接程序存储器就能完成修改密码等多种功能,并且保密性高、成本低、简单易行,符合住宅、部门办公安全要求。
ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离,是一个强大易用的功能。具有双工UART串行通道。内部集成看门狗计时器,不再需要像AT89C51那样外接看门狗计时器单元电路
键盘电路采用矩阵式键盘,显示电路采用四位数码管动态显示方式,动态显示相对于静态显示有占用I/O口资源少的特点,恰好适合于本系统。方案中没有采用键盘、显示接口芯片8279实现键盘、显示接口。由于本次课程设计所使用的键盘数量、显示的方式及单片机的I/O口线使用情况等,采用前一种方式就足以能完成课程设计的要求,不必要多用一个芯片。根据本次课程设计的实际情况,兼顾经济性、使用性、简单易行、操作简单等多方面因素,本次课程设计采用方案一来完成。
4 系统硬件设计
本次课程设计的密码锁电路主要由四个模块组成:键盘输入模块、数据处理模块、显示控制模块,继电器驱动模块和蜂鸣器报警模块。通过单片机送给开锁执行机构,电路驱动继电器吸合,从而达到开锁的目的。如图3所示,为密码锁开锁电路原理图。
当用户输入的密码正确时,单片机便输出开门信号,送到继电器驱动电路,然后驱动继电器常开触点闭合,达到开门的目的。本次设计中,继电器选用固态继电器,信息通过数码管显示,并利用蜂鸣器和发光二极管声光指示。其中,绿发光二极管亮,表示开锁;否则,红发光二极管亮,表示密码输入错误并开启报警电路。
4
锁定 STC89C52 单片机 密码 正确 是 开锁驱动电路
图3 密码锁开锁电路原理图
4.1 STC89C52最小系统设计
单片机最小系统包括CPU、时钟电路和复位电路等三部分。下面则分别介绍这三部分的选取。 4.1.1时钟电路设计
时钟电路用于产生单片机工作时所必需的时钟控制信号,常用的时钟电路有内部时钟方式和外部时钟方式。内部时钟方式电路外接两个电容和一个晶振,根据振荡频率要求的不同选用不同阻值的电容和晶振。时钟电路中的晶振震荡频率范围通常是1.2MHz~12MHz,AT89S51常选择6MHz或12MHz的石英晶体,为消除误差,得到准确的波特率,本设计选择震荡频率为11.0592MHz的石英晶,时钟电
否 开锁 路如图4所示。
图4时钟电路 4.1.2复位电路设计
复位是单片机的初始化操作,只需在单片机的复位引脚加上大于2个机器周
5