封面目录.doc

DZ042基于单片机电子密码锁

收藏

压缩包内文档预览:
预览图 预览图
编号:512357    类型:共享资源    大小:269.87KB    格式:RAR    上传时间:2015-11-11 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
毕业设计
资源描述:
DZ042基于单片机电子密码锁,毕业设计
内容简介:
浙 江 工 业 大 学 浙 西 分 校 单 片 机 课 程 设 计 设计题目: 电 子 密 码 锁 系 别: 信 电 系 班 级: 05 电自( 1)班 姓 名: 沈 金 彪 指导老师: 廖 东 进 叶 文 通 nts基于单片机控制的电子密码锁 摘 要 本系统由单片机系统、矩阵键盘、 LED 显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用 。 关键词: AT89S51, AT24C02, 电子密码锁,矩阵键盘 一、 引言 随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。 设计本课题时构思了两种方案:一种是用以 AT89s51 为核心的单片机控制方案;另一种是用以 74LS112 双 JK 触发器构成的数字逻辑电路控制方案。考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。 二、方案论证 采用 一种是用以 AT89S51 为核心的单片机控制方案。 利用单片机灵活的编程设计和丰富的 IO 端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制 功能。其原理如图 2 1 所示。 图 2 1 单片机控制方案 该 方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进 行升级。 三、电路的功能单元设计 开锁控制电路 89S51 单片机 AT24C02 掉电存储 串口显示电路 矩阵 键盘 控制 指示电路 输入错误锁定键盘 延时报警控制电路 nts1开锁机构 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原 理如图 3 1 所示。 图 3 1 密码锁开锁机构示意图 当用户输入的密码正确而且是在规定的时间(普通用户要求在 12s 内输入正确的密码,管理员要求在 5s 输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图 3 2 所示。 电路驱动和开锁两级组成。由 D5、 R1、 T10 组成驱动电路,其中 T10 可以选择普通的小功率三极管如 9014、 9018 都可以满足要求。 D5 作为开锁的提示;由 D6、C24、 T11 组成。 其中 D6、 C24 是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。 T11 可选用中功率的三极管如 8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。 T 1 0T 1 1D5G N DR13. 3 K电磁锁C 2 4V C C来自微控制器信号D6图 3 2 密码锁开锁机构电路图 单片机微控制器 开锁驱动电路 电磁锁 密码正确? Y 返回 N nts 2按键电路设计 由于设计要求使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少 键盘与单片机接口时所占用的 I/O 线的数目,在按键比较多的时候,通常采用这样方法。其原理如图 3-3 所示。 图 3 3 行列式键盘原理电路图 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M 条列线,即可组成具有 N M个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。 对照图 3 3 所示的 4*4 键盘,说 明线反转个工作原理。 首先辨别键盘中有无键按下,有单片机 I/O 口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为 1。 判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。 按键的操 作面板如图图 3 4 所示。共计数字键 10 个,功能键 6 个。键盘上还有 3 个指示灯和一个蜂鸣器。 89s51 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 5.1K X 4 5.1K X 4 VCC nts 图 3 4 按键操作面板示意图 10 个数字键用来输入密码,另外 6 个功能键分别是: CLR、 EN、 F1、 F2、 F3、F4。其中 CLR 键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。 EN 键的功能是确认输入的密码。 F1 是管理模式切换键,当用户不小心三次输入密码都没有正确,键盘被锁定,这个时候就可以启动管理模式,使用管理员的密码来开门。 F2 是用来进入修 改密码的状态。 F3 用来关闭显示器, 一来可以节省电量,另外也可以防止不法分子偷窥密码。 F4 用来作电铃。 上面的 3 个指示灯 L1、 L2、 L3 是用来指示操作的状态: L1 锁定及输入指示状态灯,正常的情况下显示红色,当键盘动作的时候, L1 灯开始闪动,当键盘处于锁定状态时,指示灯也显示红色。 L2 开门指示灯,当用户在规定的时间内正确的输入了密码,此灯转变为绿色,表示开门,否则不显示。 L3 是管理员状态指示灯,当按下 F1 后,指示灯自动点亮。 面板上还有一个蜂鸣器,其中一个功能是用来指示操作的按键是否在成功的按下;另外一个 功能是当用户输入密码错误的次数超过了 3 次,鸣笛以示报警。 3显示电路设计 本系统设计的显示电路是为了给使用者以提示而设置的。考虑到为了节约单片机的口资源,本系统的显示采用串行显示的方式,只使用单片机的两个串行口,就可以完成单片机的显示功能,显示电路的电路原理图如图 3 5 所示。 电路设定:当程序检测在 5 分钟内没有按键操作的时候,就关闭显示。这个功能使用程序来实现的,一旦没有按键动作就启动一个定时器,检测在 5 分钟内没有按键动作的时候,启动一个程序,关闭显示,这样可以达到节省电能的目的。 从单片机串口输出的信 号先送到左边的移位寄存器( 74HC164) ,由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器 74HC164 还兼作数码管的驱动,插头 1( header1)接电源,插头 2( header2)接数据和脉冲输出端。电路中的三个整流管 D1D3 的作用是降低数码管的工作电压,增加其使用寿命。 CLR 0 1 EN 6 9 F4 4 8 F3 3 7 F2 2 6 F1 L1 L2 L3 ntsA1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 1A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 2A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 3A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 4A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 5A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 612H E A D E R 21 2H E A D E R 1vc cabfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 0abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 1abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 2abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 3abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 4abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 5Cd1d2d3图 3 5 显示器原理图 显示器主显示几个字符,给用户提供指示见图 2 6 所示。 图 3 6 a 关闭状态 图 3 6 b 开锁状态 图 3 6 c 密码输 入及修改状态 图 3 6 d 密码输入错误后的提示 图 3 6 e 密码在规定的时间内输入错误次数超过 3 次后的锁定状态 O F F - - 2 8 8 8 - - 1 - - - - - - E R R O R S - L O C K - nts图 3 6 e 密码在规定的时间内输入错误次数超过 3 次后的锁定状态 4 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。 AT24C02是 ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断 电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。其电路如图 3 7 所示。 NC1NC2NC3GND4S D A5S C L6WP7V C C8U4A T 2 4 C 0 2 AGNDV C C串行存储模块R85.1kR 1 05.1k接 P 2 .5接 P 2 .6图 3 7 掉电存储电路原理图 图中 R8、 R10 是上拉电阻,其作用是减少 AT24C02 的静态功耗,由于 AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线 SCL(移位脉冲)和 SDA(数据 /地址)与单片机传送数据。 每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。 5密码锁 的电源电路设计 为了防止停电情况的发生,本电路后备了 UPS 电源,它包括 市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池 组成。电源电路图如图 3 8 所示。 12J P 112J P 2D1D2D3D4 D5R11KC133 00C20.1C333 001 2 378 05图 3 8 市电供电电路 nts 220V 市电通过变压器降压成 12V 的交流电 ,再经过整流桥整流 ,7805 稳压到 5V送往电子切换电路,由于本电路功耗较少,所以选用 10W 的小型变压器。 由 R8, R9, R6, R7 及 IC14 构成电压比较器,正常情况下, V+V- IC14 输出高 电平,由 T3,T4 构成的达林顿管使继电器 J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下图 3 9 所示: R850KR940KR730KR620KT39018R 105.1KT49014123I C 1 4741继电器蓄电池供电5V 直流电源 A 1蓄电池 A 25V直流电源 A1蓄电池 A2VCC常闭常开图 3 9 停电检测及电子开关切换电路 T1, T2 构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1亮为正在充电, D2 为工作指示。由 R4, R5, T1 构成电压检测电路,蓄电池电压低,则 T1, T2 导通,实现对其充电;充满后, T1, T2 截止,停止充电,同时 D1 熄灭,电路中 C4 的作用是滤除干扰信号。其电路图如图 3 10 所示: R5470R23KR13KT19014D2D1C40.1U3C G 21R43K6V 蓄 电池电源 A26V 充 电电源蓄电池图 3 10 蓄电池自动充电电路 6设计总框图 nts 图 3 11 总体设计框图 7设计总体电路图 P 0 .732P 0 .633P 0 .534P 0 .435P 0 .336P 0 .237P 0 .138P 0 .039V C C40P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728A L E /P R O G30P S E N29E A /V P P31P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .5/ M O S I6P 1 .6/ M I S O7P 1 .7/ S C K8R E S T9P 3 .0/ R X D10P 3 .1/ T X D11P 3 .2/ I N T 012P 3 .3/ I N T 113P 3 .4/ T 014P 3 .5/ T 115P 3 .6/ W R16P 3 .7/ R D17X T A L 218X T A L 119G N D20U1 A T 89 S 51C122 uFR11KCRY6M H zC233 P FC333 P FS P E A KD L Q I 1R E S E TR E S E TG N DS5E A /V PA L E /PP S E NG N DC51000uF/25VC40. 1 uFV C CG N D123E A /V PNC1NC2NC3G N D4S D A5S C L6WP7V C C8U4A T 24 C 02 AS C LG N DS D A12V C CD A T AS C LWR1234R /T /L E DS D AV C CD A T AWRG N DV C CV C CV C CV C CG N D电源接口数码管接口存储器选择接口D L Q I 2DSR720 0复位电路M C U 模块CSE A /V P串行存储模块R85. 1 kR 1 05. 1 k矩阵键盘电源电路及其 U PS 电路图 3 12 总体电路图 开锁控制电路 89S51 单片机 AT24C02 掉电存储 串口显示电路 矩阵 键盘 控制 指示电路 输入错误锁定键盘 延时报警控制电路 电源电路及 UPS 电路 nts 四、程序设计 1模块介绍 该计程计价系统的软件设计分为以下几个模块: ( 1) 主程序模块 主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。 ( 2) 键盘扫描及识别子程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦 有按键按下,便转向相应的子程序处理,处理结束再返回。 其程序流程如图 所示 . ( 3) 调电存储服务程序 当比较密码的时候,需要读 AT24C02 程序,将存储在芯片内的数据读到 RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02 中, 其程序流程如图 所示 . ( 4) 显示子程序 由于是分屏显示数据,所以就要用到 5 个显示子程序,分别是:关闭状态显示子程序( DIS_A)、开锁状态显示子程序( DIS_B)、密码输入及修改状态显示子程序(DIS_C)、密码输入错误后的提示子程序 (DIS_D)。 密码在规定的时间内输入错误次数超过 3 次后的锁定状态显示子程序 (DIS_E). 2.程序流程图 ( 1) 主程序流程图如图 4 1 所示。 nts ( 2) 修改密码流程图 如图 4 2 所示。 五、总结 这个学期就快结束了,课程设计也接近了尾声。在没有做课程设计以前觉得课程设计只是对今年所学知识的总结,但是通过这次做课程设计发现自己的看法有点片面。课程设计不仅是对自己所学知识的一种检验,而且也是对自己能力的一种提高。通过这次课程设计使我明白了自己还有很多欠缺,自己 要学习的东西还太多。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己,充实自己。 在这次课程设计中,虽然是一个人一组,但同学之间还是互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,有利于我们做课程设计。 我觉得每次设计都这样,刚开始都不知道怎么弄,真是万事开头难。最后终于做完了有种如释重负的感觉。还有就是知识必须通过应用才能体现其价值!有些东西以为学会了,没用到实际中,相当与白学,所以我认为只有到真正会用的时候才是真的开始 初始化 有键按下? 调用显示 启动定时 识别按键 全部按完 ? 超时 ? 比较密码 开门 开始 自动清除 3 次 ? 锁定 N N Y Y Y Y N N 按下 F2 启动定时 输入密码 存入缓冲 再输入一次 比较密码 调用 24C02 调用显示 按 F2 退出 Y 重新输入 N 图 4 1 主程序流程图 图 4 2 修改密码流程图 nts学会了。 在设计过程中,我通过查阅有关资料,与同学交流,使自己学到了不少知识,也经历了不少艰辛,但还是有收获的。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的帮助。而且提高了自己的动手能力。一份耕耘,一份收获。还是快乐的。 参考文献 1、 单片 微机应用系统设计 及实用技术 机械工业 出版社 高锋 编著 2004 年 4 月 2、 单片机应用系统设计实例与分析 北京航空航天大学 出版社 沈红卫 编著 2003 年 1 月 3、 AT89 系列单片机原理与接口技术 北京航空航天大学出版社 王幸之编 4、 单片机应用系统的功率接口技术 北京航空航天大学出版社 余永权编 5、 单片微型计算机原理与接口技术 华中理工大学出版社 陈光东编 6、单片机原理及接口技术 清华大学出版社 梅丽凤等编 7、单片微型计算机与机电接口技术 国防工业出版社 房小翠等编 8、基于单片机的智能系统设计与实现 电子工业出版社 沈红卫著 9、单片机原理与应用 科学出版社 朱月秀编 程序编码 电子密码锁 ;显示缓冲区 ;LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;输入回车的次数 TIMERS2 EQU 6CH ;报警的次数 TIMERS EQU 6BH ;输入数字的位数 ;LED6 EQU 6AH nts ;密码缓冲区 PS1 EQU 69H PS2 EQU 68H PS3 EQU 67H PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H ;AT24C02 读取缓冲区 AT1 EQU 63H AT2 EQU 62H AT3 EQU 61H AT4 EQU 60H AT5 EQU 5FH AT6 EQU 5EH ;按键标志位 F_1 BIT 20H F_2 BIT 21H F_3 BIT 22H F_4 BIT 23H BUF_FULL BIT 24H ;密码已经够六位的标志位,为 1 表示满 CH_STATE BIT 25H ;系统更改的状态标志位,为 1 表示 busy FLAG1 BIT 26H ;功能键标志位,为 1 表示功能按键。 F_F1 BIT 27H F_F2 BIT 28H PSW_F BIT 29H ;密码是否正确的标志位 ;口资源定义 SPK BIT P2.1 JDQ BIT P2.3 SDA BIT P2.4 ;定义串口数据端 SCL BIT P2.5 ;发光二极管灯 L1 BIT P1.0 L2 BIT P1.1 L3 BIT P1.2 ; ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030H MAIN:MOV SP, #70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH nts MOV TL1, #0B0H CLR F_1 ;清除标志位 CLR F_2 CLR F_3 CLR F_4 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITAT LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密码 830620 MOV PS2, #0AH MOV PS3, #02H MOV PS4, #13H MOV PS5, #0BH MOV PS6, #02H START:NOP ;程序开始 LCALL CH_KEY ;检查键盘 AJMP START ;返回 CH_KEY:LCALL KS ;检查有没有按键按下 JNZ LK1 AJMP CH_KEY LK1: LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP LCALL SBIE ;按键识别子程序 MOV BUFF, A ;送缓冲区以识别是数字键还是功能键? LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN ;标志为 1,则为功能键 数字按键输入并且存放到缓冲区内等待比较 KEY_DIG:NOP ;设一标志,辨别输入是否满 ;SETB TR0 INC TIMERS ;输入数字的位数 MOV A, TIMERS CLR C nts SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;依照顺序存放密码 AJMP NEXT PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFF AJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03H JNZ PS_4 MOV PS3, BUFF AJMP NEXT PS_4:MOV A, TIMERS CLR C SUBB A, #04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5:MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6 MOV PS5, BUFF AJMP NEXT PS_6:MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T100MSD SETB P2.1 NOP AJMP CH_KEY NEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。 nts CLR L3 LCALL T100MSD ;延时 100ms SETB L3 SETB P2.1 AJMP CH_KEY 功能按键比较并且跳转 KEY_FUN: CLR FLAG1 CLR C MOV A, BUFF SUBB A, #03H ;按键 CL 跳转 JNZ EN_C AJMP CL EN_C:CLR C MOV A, BUFF ;按键 EN 跳转 SUBB A, #00H JNZ F1_C AJMP EN F1_C:CLR C MOV A, BUFF SUBB A, #1BH JNZ F2_C AJMP FU1 F2_C:CLR C MOV A, BUFF SUBB A, #1AH JNZ F3_C AJMP FU2 F3_C:CLR C MOV A, BUFF SUBB A, #19H JNZ F4_C AJMP FU3 F4_C:CLR C MOV A, BUFF SUBB A, #18H JZ FU4 EXIT8:NOP LJMP CH_KEY 开门子程序 CL:NOP SETB L3 MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H LCALL INITPS ;消除 AT 缓冲,加调电存储后一定要加上 LCALL XSC LCALL BP nts LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;关闭显示 CLR FLAG1 AJMP CH_KEY 按键的功能描述 FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEY NEXT_F1:SETB L1 LCALL BP CLR F_F1 ;LCALL CH_STATE ;查看现 在的状态以防误按 ;SETB TR1 ;报警限制暂时不开 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEY NEXT_F2:SETB L2 nts LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY EN:NOP JB BUF_FULL, GOON AJMP EXIT GOON:CLR BUF_FULL JB F_F2, AT_WRON ;F2 按键标志 ,若为 1,则调用修改密码子程序。 LCALL AT_RADE LCALL C_PSW ;比较密码子程序 JB PSW_F,OPEN ;密码比较正确,则调用开锁子程序 LCALL XSD INC TIMERS2 MOV R7,TIMERS2 ;密码错误,调入输入密码输入次数,准备锁定键盘 CJNE R7,#03H,D0 D0:JC NEXT1 ;错误次数小 3 次 LCALL XSE ;锁定 5 分钟 LCALL WARN2S LCALL LOCK_1M NEXT1:LCALL WARN2S ;报警 2 分钟 LCALL XSA EXIT:LCALL INITPS MOV BUFF, #00H CLR FLAG1 MOV TIMERS, #00H AJMP CH_KEY ;跳出 AT_WRON:LCALL AT_WR LCALL XSF LCALL BP LCALL T100MSD LCALL BP LCALL T500MSD LCALL KILLXS LCALL T500MSD LCALL XSF LCALL T500MSD LCALL KILLXS LCALL T500MSD LCALL XSF LCALL T500MSD NOP NOP LCALL XSA AJMP EXIT OPEN:MOV A, TIMERS1 nts CJNE A, #09H,CLT1 CLT1:JC GOON1 MOV TIMERS1,#00H GOON1:INC TIMERS1 ;输入回车的次数 MOV TIMERS2,#00H SETB L3 CLR PSW_F LCALL XSB CLR JDQ ;开门 LCALL BP LCALL BP LCALL BP LCALL BP LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC LCALL SEC SETB JDQ LCALL XSA NOP AJMP EXIT ntsP1.01P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PRQG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40P1.12P1.23P1.34P1.45P1.56P1.67P1.7/SCK8REST9P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7RD17XTAL218XTAL119GND20U1 AT89S51矩阵键盘4321DATAWRR/T/LED321EA/VPEA/VPNCNCNCGNDVCCWPSCLSDAR105.1KR85.1KVCCVCCVCCC333PFC233PF12Y6MHZS5R7200kR11k12C122uFVCC12C51PFC620PFVCC211VCCnts 1 单片机原理及应用课程设计报告 题目: 电子密码锁 班级: 05 电自( 1) 学号: 23 专业: 电气自动化 姓名: 张宇 指导教师: 叶文通、廖东进 日期: 2008 年 1 月 17 日 nts 2 基于单片机 控制 的 电子 密码锁 摘要: 本系统由单片机系统、 矩阵 键盘、 LED 显示和报警系统 组成。系统能完成开 锁、 超时报警、超次锁定、管理员解密、修改用户密码 基本的密码锁 的功能。除上述基本的密码锁功能外,还具有调电存储、 声光提示 等功能 ,依据实际的情况还可以添加遥控功能 。 本系统成本低廉,功能实用 关键词: AT89S51, AT24C02, 电子密码锁,矩阵键盘 一、 引言 随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。 设计本课题时构思了两种方案:一种是用以 AT89s51 为核心的 单片机控制方案;另一种是用以74LS112 双 JK 触发器构成的数字逻辑电路控制方案。考虑到 数字电路方案原理过于简单 , 而且不能满足现在的安全需求 ,所以本文采用前一种方案。 二 、方案论证与比较 方案一:采用数字电路控制。其原理方框图如图 1 1 所示。 图 2 1 数字 密码锁 电路方案 采用数字密码锁电路的好处就是 设计简单。 用以 74LS112 双 JK 触发器构成的数字逻辑电路作为密码锁的核心控制 ,共设了 9 个用户输入键,其中只有 4 个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘 输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过 40 秒(一般情况下,用户不会超过 40 秒,若用户觉得不便,还可以修改)电路将报警 80 秒,若电路连续报警三次,电路将锁定键盘 5 分钟,防止他人的非法操作。 电路由两大部分组成:密码锁电路和备用电源 (UPS),其中设置 UPS 电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。 密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输nts 3 入次数锁定电路。 方案二:采用 一种是用以 AT89S51 为核心的单片机控制方 案。 利用单片机 灵活的编程设计和 丰富的IO 端口,及其控制的准确性 , 不但能实现基本的密码锁功能,还能添加 调电存储、声光提示 甚至添加遥控控制 功能。其原理如图 1 2 所示。 图 2 2 单片机控制方案 通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。 三 、电路的功能单元设计 1开锁机构 通过单片机送给开锁执行机构, 电路驱动电磁锁吸合,从而达到开 锁的目的。 其原理如图 2 1所示。 图 3 1 密码锁开锁机构 示意图 当用户输入的密码正确而且是在规定的时间 (普通用户要求在 12s 内输入正确的密码,管理员要求在 5s 输入正确的密码) 输入的话,单片机便输出开门信号, 送到开锁驱动电路,然后驱动电磁锁, 达到开门的目的。 其实际电路如图 2 2 所示。 电路驱动和开锁两级组成。 由 D5、 R1、 T10 组成 驱动电路,其中 T10 可以选择普通的小功率三极管如 9014、 9018 都可以满足要求。 D5 作为开锁的提示 ;由 D6、 C24、 T11 组成 。其中 D6、 C24是为了消除 电磁锁可能产生的 反向高电压以及可能产生的电磁干扰。 T11 可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。 单片机微控制器 开锁驱动电路 电磁锁 密码正确? Y 返回 N 开锁控制电路 89S51 单片机 AT24C02 掉电存储 串口显示电路 矩阵 键盘 控制 指示电路 输入错误锁定键盘 延时报警控制电路 nts 4 在本次设计中,基于节省材料的原则,暂时用发光二极管代替 电磁锁,发光管亮,表示开锁;灭,表示 没有开锁。 T 1 0T 1 1D5G N DR13. 3 K电磁锁C 2 4V C C来自微控制器信号D6图 3 2 密码锁开锁机构 电路图 2按键电路 设计 由于设计要求 使用矩阵键盘,所以本设计就采用 行列式键盘,同时也能减少键盘与单片机接口时所占用的 I/O 线的数目,在按键比较多的时候,通常采用这样方法 。 其原理如图 2 3 所示 。 图 3 3 行列式键盘原理电路图 每一条水平 (行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M 条列线,即可组成具有 N M 个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 当确认有按键按下后,下一步就要识别哪一个 按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。 对照图 2 3 所示的 44 键盘,说 明线反转个工作原理。 首先 辨别键盘中有无键按下,有单片机 I/O 口向键盘送全扫描字,然后 读入行线状态来判断。方法是: 向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按下,总会有一根行线电平被拉至低电平 从而使行线不全为 1。 判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。 89s51 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 5.1K X 4 5.1K X 4 VCC nts 5 按键的操 作面板如图 图 2 3 所示 。 共计数字键 10 个,功能键 6 个。 键盘上还有 3 个指示灯 和一个蜂鸣器 。 图 3 4 按键操作面板示意图 10 个数字键用来输入密码,另外 6 个功能键分别是: CLR、 EN、 F1、 F2、 F3、 F4。其中 CLR键的功能是当输入密码错误的时候,清除前面已经输入的数据, 重新输入。 EN 键的功能是确认输入的密码。 F1 是管理模式切换键,当用户不小心三次输入密码都没有正确,键盘被锁定,这个时候就可以启动管理模式,使用管理员的密码来开门。 F2 是用来进入修改密 码的状态。 F3 用来关闭显示器,一来可以节省电量,另外也可以防止不法分子偷窥 密码。 F4 用来作电铃。 上面的 3 个指示灯 L1、 L2、 L3 是用来 指示操作的状态: L1 锁定及输入指示状态灯,正常的情况下显示红色,当键盘动作的时候, L1 灯开始闪动,当键盘处于锁定状态时,指示灯也显示红色。L2 开门指示灯,当用户在规定的时间内正确的输入了密码 ,此灯转变为绿色,表示开门,否则 不显示。 L3 是管理员状态指示灯, 当按下 F1 后,指示灯自动点亮。 面板上还有一个蜂鸣器,其中一个功能是用来指示操作的按键是否在成功的按下 ;另外一个功能是当用 户输入密码错误的次数超过了 3 次,鸣笛以示报警。 3显示电路设计 本系统设计的显示电路是为了 给使用者以 提示而设置的。 考虑到 为了节约单片机的口资源, 本系统的显示采用串行显示的方式,只使用单片机的两个串行口,就可以完成单片机的显示功能, 显示电路的电路原理图如图 2 5 所示。 电路设定:当 程序检测在 5 分钟内没有按键操作的时候,就关闭显示。这个功能使用程序来实现的, 一旦没有按键动作就启动一个定时器,检测在 5 分钟内没有按键动作的时候,启动一个程序,关闭显示,这样可以达到节省电能的目的。 从单片机串口输出的信号先送到左边 的移位寄存器( 74HC164) ,由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器 74HC164 还兼作数码管的驱动,插头 1( header1)接电源,插头 2( header2)接数据和脉冲输出端。电路中的三个整流管 D1D3 的作用是降低数码管的工作电压,增加其使用寿命。 CLR 0 1 EN 6 9 F4 4 8 F3 3 7 F2 2 6 F1 L1 L2 L3 nts 6 A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 1A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 2A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 3A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 4A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 5A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9I C 612H E A D E R 21 2H E A D E R 1vc cabfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 0abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 1abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 2abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 3abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 4abfcgdeDPY1 2 3 4 5 6 7a b c d e f g8dpdp9L E D 5Cd1d2d3图 3 5 显示器原理图 显示器 主 显示几个字符, 给用户提供 指示 见图 2 6 所示。 图 3 6 a 关闭状态 图 3 6 b 开锁状态 图 3 6 c 密码输入及修改状态 图 3 6 d 密码输入错误后的提示 图 3 6 e 密码在规定的时间内输入错误次数超过 3 次后的锁定状态 O F F - - 2 8 8 8 - - 1 - - - - - - E R R O R S - L O C K - nts 7 4 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。 AT24C02 是 ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。其电路如图 2 5 所示。 NC1NC2NC3GND4S D A5S C L6WP7V C C8U4A T 2 4 C 0 2 AGNDV C C串行存储模块R85.1kR 1 05.1k接 P 2 .5接 P 2 .6图 3 7 掉电存储电路原理图 图中 R8、 R10 是上拉电阻,其作用是减少 AT24C02 的静态功耗,由于 AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线 SCL(移位脉冲)和 SDA(数据 /地址)与单片机传送数据。 每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。 5 密码锁 的 电源电路 设计 为了防止停电情况的发生,本电路后备了 UPS 电源,它包括市电供电电路 ,停 电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。电源电路图如 图 2 8 所示。 12J P 112J P 2D1D2D3D4 D5R11KC133 00C20.1C333 001 2 378 05图 3 8 市电供电电路 220V 市电通过变压器降压成 12V 的交流电 ,再经过整流桥整流 ,7805 稳压到 5V 送往电子切换电路,由于本电路功耗较少,所以选用 10W 的小型变压器。 由 R8, R9, R6, R7 及 IC14 构成电压比较器,正常情况下, V+V- IC14 输出高电平,由 T3, T4 构成的达林顿管使继电器 J 开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下图 6 所示: nts 8 R850KR940KR730KR620KT39018R 105.1KT49014123I C 1 4741继电器蓄电池供电5V 直流电源 A 1蓄电池 A 25V直流电源 A1蓄电池 A2VCC常闭常开图 3 9 停电检测及电子开关切换电路 T1, T2 构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中 D1 亮为正在充电,D2 为工作指示。由 R4, R5, T1 构成电压检测电路,蓄电池电压低,则 T1, T2 导通,实现对其充电;充满后, T1, T2 截止,停止充电,同时 D1 熄灭,电路中 C4 的作用是滤除干扰信号。其电路图如图 7 所示: R5470R23KR13KT19014D2D1C40.1U3C G 21R43K6V 蓄 电池电源 A26V 充 电电源蓄电池图 3 10 蓄电池自动充电电路 6设计总框图 图 3 11 总体设计框图 7设计总体电路图 开锁控制电路 89S51 单片机 AT24C02 掉电存储 串口显示电路 矩阵 键盘 控制 指示电路 输入错误锁定键盘 延时报警控制电路 电源电路及 UPS 电路 nts 9 P 0 .732P 0 .633P 0 .534P 0 .435P 0 .336P 0 .237P 0 .138P 0 .039V C C40P 2 .021P 2 .122P 2 .223P 2 .324P 2 .425P 2 .526P 2 .627P 2 .728A L E /P R O G30P S E N29E A /V P P31P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .5/ M O S I6P 1 .6/ M I S O7P 1 .7/ S C K8R E S T9P 3 .0/ R X D10P 3 .1/ T X D11P 3 .2/ I N T 012P 3 .3/ I N T 113P 3 .4/ T 014P 3 .5/ T 115P 3 .6/ W R16P 3 .7/ R D17X T A L 218X T A L 119G N D20U1 A T 89 S 51C122 uFR11KCRY6M H zC233 P FC333 P FS P E A KD L Q I 1R E S E TR E S E TG N DS5E A /V PA L E /PP S E NG N DC51000uF/25VC40. 1 uFV C CG N D123E A /V PNC1NC2NC3G N D4S D A5S C L6WP7V C C8U4A T 24 C 02 AS C LG N DS D A12V C CD A T AS C LWR1234R /T /L E DS D AV C CD A T AWRG N DV C CV C CV C CV C CG N D电源接口数码管接口存储器选择接口D L Q I 2DSR720 0复位电路M C U 模块CSE A /V P串行存储模块R85. 1 kR 1 05. 1 k矩阵键盘电源电路及其 U PS 电路图 3 12 总体电路图 四 、程序设计 1模块介绍 该计程计价系统的软件设计分为以下几个模块: (1)主程序模块 主程序主要完成初始化、设置中断向量、检查有无按键按下、 以及调用显示等等。 主程序的流程图如下所示。 (2)键盘 扫描及识别子 程序 键盘采用查询的方 式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按 下,便转向相应的子程序处理,处理结束再返回。 其程序流程如图 所示 . (3)调电存储服务程序 当比较密码的时候,需要读 AT24C02 程序,将存储在芯片内的数据读到 RAM 中,然后和输入的密码相比较 。 当修改密码的时候,需要把输入的密码保存到 AT24C02 中, 其程序流程如图 所示 . (4)显示子程序 由于是分屏显示数据,所以就要用到 5 个显示子程序,分别是: 关闭状态 显示子程序( DIS_A)、开锁状态 显示子程序( DIS_B)、 密码输入及修改状态 显示子程序 (DIS_C)、 密码输入错误后的提示子程序 (DIS_D)。 密码在规 定的时间内输入错误次数超过 3 次后的锁定状态显示子程序 (DIS_E). 2.程序流程图 ( 1)主程序流程图如图 3 1 所示。 nts 10 3. 源程序 (1)源程序如下 : #include unsigned char code ps=1,2,3,4,5; unsigned char code dispcode=0x3f,0x06,0x5b
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:DZ042基于单片机电子密码锁
链接地址:https://www.renrendoc.com/p-512357.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!