基于单片机的密码锁设计-毕业设计.docx
《基于单片机的密码锁设计-毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码锁设计-毕业设计.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及应用课程设计报告课 题:电子密码锁班 级:学 号:姓 名:指导老师:设计时间: 概 述本实验利用单片机的定时器/计数器定时和记数的原理,结合DVCC实验箱上的集成电路芯片AT89C51、LED数码管以及实验箱上的按键来设计密码锁。将软、硬件有机地结合起来,使得系统能够正确地开启密码锁和更改密码,数码管能够正确地显示输入密码。本实验设计了16个开关按键,每次按下键需要检验是否确实按下,若是则输入密码;否则,反之。关键字:AT89C51、M24C01、7段LED数码管、74LS240、与非门、4*4矩阵键盘等目 录概述.2第一章 设计要求.4第二章 设计方案.5第三章 设计程序.10第
2、四章 Proteus仿真.18第五章 硬件制作.19收获与体会 .20附录 .20参考文献 .20第一章 设计要求题目:电子密码锁选题后先在proteus上进行软件仿真设计,在仿真实现的基础上,要求完成部分硬件模块的制作和系统联调,具体要求见选题。设计流程:查阅有关文献资料拟定电路原型依据题目功能要求,进行电路元件选择画出原理电路软件仿真分析验证设计方案实际部分硬件制作、系统联调写出设计报告。时间安排:选题结束后,自己安排时间进行课题资料查阅、原理方案设计,然后进行软件仿真(可以利用自己的PC机或利用实验室开放时间段预约后到实验室进行仿真实验),完成上述工作后预约第一阶段检查验收,验收合格后,
3、凭指导教师验收签字单到实验中心领取器材进行硬件制作部分,完成调试后,经指导教师验收签字,最后,撰写课程设计总结报告并提交到实验中心。密码锁具体设计要求:利用单片机设计一个密码锁,要求可设定从1位到8位的密码,从键盘键入正确密码才可更改密码或开锁;输入三次错误密码电路就不断报警;开锁信号输出口用发光二极管表示。同时输入密码后要按确认键才有效。1可设置密码,掉电密码能保存;2按键确实被按下时发出一下提示音;3设置新密码前需校验旧密码;发挥部分:密码用密文保存在存储器中(加密方法可采用DES算法)可选器件:51系列单片机、24C01、7段LED数码管、74LS244或74LS240、与非门等第二章
4、设计方案采用一种是用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图12所示。89S51单片机矩阵键盘控制输入错误锁定键盘延时报警控制电路AT24C02掉电存储开锁控制电路指示电路串口显示电路图21单片机控制方案 各个功能单元设计如下: 1 键盘功能及工作原理PC键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘有编码键盘和非编码键盘。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码
5、转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘。PC键盘多采用18行8列的二维矩阵行列结构。采用行扫描法识别按下的按键。本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图所示。89s51D0D1D2D3D4D5D6D7D8D9D105.1K X 45.1K X 4VCC图 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘
6、处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图23所示的44键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如
7、果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。按键的操作面板如图图23所示。共计数字键10个,功能键6个。键盘上还有3个指示灯和一个蜂鸣器。图 按键操作面板示意图按键包括有数字键和功能键。数字键包括09键,用于密码的输入。功能键有密码修改键和确认键。具体的功能定义如下表。按键键名功能说明19键数字键输入密码A键确认键密码输入完成B键密码修改键修改密码硬件设计由实验要求采用4行4列的矩阵行列结构。89c51单片机有4个8位I/O端口,采用P1口低四位作为行扫描线,高四位作为列扫描线。软件设计 消抖及重键处理:通过软件上延时程序来消除
8、抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。 程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、主程序等。键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;主程序用于系统初始化,子程序调度,锁定状态的显示等。2显示电路设计考虑到实验室只能提供四位一体的阴极LED显示管,所以设计时只设计了四位的密码。LED显示管电路连接图如下图所示,图中1234为位选
9、码,低电平有效,在其每一位前加了一个反相器做驱动,再接到单片机的P2口的低四位。其段选码接了两个74LS240做驱动,74LS240也有反相作用,因此在编程时特别做了处理,段选码的8位接到单片机的P1口。图2-4 显示器面板接线图3开锁及密码修改单元通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图25所示。单片机微控制器开锁驱动电路电磁锁密码正确?Y返回N图25密码锁开锁机构示意图当用户输入的密码正确而且是在规定的时间(普通用户要求在12s内输入正确的密码,管理员要求在5s输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的
10、目的。其实际电路如图25所示。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。在按下密码修改键后,系统会要求输入原始密码,正确后再输入新密码,密码修改成功则单片机P3.1所接的发光二极管会亮3秒。4AT24C02掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。其电路如
11、图26所示。图26 掉电存储电路原理图图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。由于实验室没有这类器件,因此在实际制作过程中这项功能省略。5系统原理框图51系列单片机4*4键盘8位LED显示ROM存储器扬声器复位电路晶振电路发光二极管等 图2-7 系统原理框图7 设计总体
12、电路图图2-8 设计总体电路图第三章 设计程序1模块介绍该计程计价系统的软件设计分为以下几个模块:(1)主程序模块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。(2)键盘扫描及识别子程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。(3)调电存储服务程序当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到AT24C02中。(4)显示子程序(5)延时模块2.程序流程图 (1
13、)主程序流程图及密码修改程序流程图如图31、32所示。开始初始化有键按下?调用显示启动定时识别按键全部按完?超时?比较密码开门开始自动清除3次?锁定NNYYYYNN按下F2启动定时输入密码存入缓冲再输入一次比较密码调用24C02调用显示按F2退出Y重新输入N图31 主程序流程图图32 修改密码流程图 3程序使用汇编编程如下:;*; NLW 电子密码锁程序;*;以下8个字节显示存储区LED_BIT_1 EQU 30HLED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33H;以下8个字节存放初始密码WORD_1 EQU 34HWORD_2 EQU 35
14、HWORD_3 EQU 36HWORD_4 EQU 37H;以下8个字节存放键盘输入的8位密码KEY_1 EQU 38HKEY_2 EQU 39HKEY_3 EQU 3AHKEY_4 EQU 3BHVAL EQU 3EH ;键值COUNT_1 EQU 3FH ;密码输入次数;*;以下为初始化程序,包括数据存储空间初始化,设置初始密码 ORG 0000H AJMP START ORG 0100HSTART: MOV VAL,#00H MOV R0,#00H MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R7,#00
15、H MOV R6,#00H MOV A,#00H MOV B,#00H MOV KEY_1,#00H ;输入密码存储区清0 MOV KEY_2,#00H MOV KEY_3,#00H MOV KEY_4,#00H MOV WORD_1,#00H ;设置初始密码为1234 MOV WORD_2,#01H MOV WORD_3,#02H MOV WORD_4,#03H MOV P3,#00H;*; 主程序开始A0: MOV LED_BIT_1,#0F9H ;显示存储区 开始显示1234 MOV LED_BIT_2,#0A4H MOV LED_BIT_3,#0B0H MOV LED_BIT_4,#9
16、9H MOV COUNT_1,#03H ;密码错误次数置三 LCALL DISP ;调用数码显示子程序1234 等待按键 LCALL LSCAN ;调用按键程序 CJNE R3,#0AH,A4 ;是否为ENT键(#号)不相等则跳转*号重设密码键 LCALL LE0 ;检测到“ENT”不显示 等待密码输入 LCALL DISPA00: LCALL INPUT1 ;转入密码输入程序 INPUT1A1: LCALL LSCAN ;密码输入完毕 检测“ENT” LCALL DISP CJNE R3,#0AH,A1 ;检测到“ENT” 则比较 LCALL DISP ;显示 - LCALL LE0 ;显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 密码锁 设计 毕业设计
限制150内