电子密码锁Word下载.docx
《电子密码锁Word下载.docx》由会员分享,可在线阅读,更多相关《电子密码锁Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
单片机原理及应用课程设计
题目
指导教师评语
指导教师签名:
年月日
答辩评语及成绩
答辩小组教师签名:
浙江海洋学院课程设计任务书
学院船舶与海洋工程学院班级A13电气1、2班专业电气工程及其自动化
学生姓名(学号)
课程
名称
设计
题目
完成
期限
自2015年12月12日至2015年12月24日共1.5周
设
计
依
据
1、A13电气2015-2016学年第一学期开课计划和课程表
2、单片机原理与应用课程设计教学大纲
3、单片机原理及应用课程设计指导书
要
求
及
主
内
容
(一)课程设计题目可以选择以下之一,学生自拟题必须经老师同意。
1、单片机电子定时器设计
2、数字温度计设计
3、低频信号发生器设计(正弦信号)
4、16点阵LED显示器设计
5、单片机直流电压表的设计
6、单片机电子密码锁的设计
7、模数化电压监视模块的设计(专业应用题)
8、单片机在其它领域的综合应用设计(学生自拟题)
(二)具体要求
1、各选题要求参见单片机原理及应用课程设计指导书。
2、完成单片机应用系统控制程序的编制,用Proteus软件仿真的应完成硬件及软件的设计,并能演示系统功能。
利用实验室现成实验板进行程序功能设计的,要能演示程序实现功能。
3、总结并提交设计成果(纸质及电子文档各1份)。
参
考
资
料
1、楼然苗等编著.单片机实验与课程设计(Proteus仿真版)[M],杭州.浙江大学出版社,2010年10月
3、楼然苗等编著.单片机实验与课程设计指导(Proteus仿真版)(第二版)[M],杭州.浙江大学出版社,2013年7月
3、宋雪松等编著.手把手教你学51单片机(C语言版)[M],北京.清华大学出版社,2014年4月
4、王晓明编著.电动机的单片机控制(第3版)[M],北京.北京航空航天大学出版社,2011年3月
5、蓝和慧主编.新版大学生电子设计竞赛单片机应用技能指导[M],北京.电子工业出版社,2013年6月
6、张洪润等编著.单片机应用设计200例[M],北京.北京航天航空大学出版社,2006年7月
指导教
师签字
胡骅
日期
2015.10.25
摘要
本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超次锁定、报警、修改用户密码基本的密码锁的功能。
除上述基本的密码锁功能外,还具有掉电存储、声光提示等功能。
本系统成本低廉,功能实用。
关键词:
AT89C51、AT24C02、电子密码锁
单片机电子密码锁的设计
1.系统功能要求
制作一个单片机电子密码锁,要求能设定一组6位的数字密码,然后进行开启操作,如密码输入错误,则有错误提示,并可再次输入密码;
若输入错误3次及以上时则进行报警呜叫;
如密码输入正确,则进行开启提示(如声光提示)。
2.设计方案分析
2.1方案一
选用单片机作为系统的核心部件,实现控制与处理的功能。
使用内部存储和采用查询式按键电路,其中两个为功能键,十个为0—9数字键。
这种电路设计简单,程序简洁,但端口使用多,添加其他功能时,不够灵活。
掉电后密码丢失。
2.2方案二
依然选用单片机作为系统的核心部件,采用外部存储并采用行列式键盘,仅使用8个端口,就能够实现数字键之外如确认键、取消键、保存键、重置密码键。
节省端口的同时可以实现更多的功能,而且掉电后可保存密码。
但是程序相对复杂。
图1
对比两种方案,最终选用方案二行列式键盘。
以较少的端口实现更多的功能。
总体的电路系统组成框图见图1。
3.系统硬件的设计原理分析
3.1单片机主控制器的设计
单片机端口资源的分配主要有:
P0口负责输出显示段码,端口接上拉电阻;
P2口为LED扫描控制口,对每个数码管进行约1ms的轮流正电压供电;
P1口接行列式键盘,P1.0~P1.3对应行,P1.4~P1.7对应列;
P3.0端口控制一个发光二极管用于锁开启提示,亮时表示开锁成功,实际应用时可接电磁开锁线圈驱动电路;
P3.1端口连接一个扬声器作为密码输入正确及错误的声音提示,密码正确时响三声,前两次频率低,后一次频率高且时间较长。
密码输入错误时响三次低频,可再次输入密码,但总共只有三次机会,三次密码错误后响六次较高频率的声响后自动锁死;
P3.4与P3.5端口分别为存储器AT24C02的时钟信号及数据信号端口。
具体连线见下图2。
3.2键盘电路的设计
由于采用行列式键盘,P1.0~P1.3对应行A、B、C、D,P1.4~P1.7对应列A1、B1、C1、D1。
具体按键分布见上图3。
其中有五个功能键,ESC为取消键,ENTER为确认键,RESET为重置密码键,SAVE为保存密码键,INIT为初始化按钮。
第一次工作时,需按初始按钮进行初始化。
之后可直接按数字键输入六位密码,再按确认键确认输入。
当要更改密码时,先按下重置密码键,输入当前密码,按确认键,确认无误后输入新的密码,按保存键,系统会将新密码存入存储器。
3.3数码显示电路
LED显示器采用共阳八位一体的显示器7SEG-MPX8-CA-BLUE,其中左边的8个引脚分别对应段码输出最低位至最高位,DP为小数点位。
而右边的8条引脚为八位数码管的阳极供电端。
具体见图4。
3.4密码存储电路
AT24C02是容量为2K位串行可擦除只读存储器,内部含有256个8位字节,该芯片支持I2C总线数据传输协议。
图5为AT24C02使用引脚连接图。
3.5声光提示电路
声光提示电路使用小喇叭和绿色发光二极管。
喇叭用单片机输出的方波信号驱动发声,在密码输入错误或正确时用不同频率的声音来区分。
绿色发光二极管亮时表示密码输入正确开锁成功。
图5为喇叭和LED小灯提示电路。
3.6总电路图
4.系统软件的设计
4.1主程序的设计
初始化
键盘扫描
新设密码?
开锁?
N
读开锁密码并比较
Y
密码正确?
开启提示
错三次?
开锁错误
报警并锁死系统
出错提醒
读键码并存入存储器
与原密码比较
是否正确?
图8
主程序控制的主要流程如图8所示。
开机上电后先进行一些初始化工作,第一次使用需按初始按钮进行初始化,向存储器存入初始密码。
之后可直接按数字键输入六位密码,再按确认键确认输入,系统会自动进行密码比较,如正确则声光提醒并开锁,如密码有误则发警报声三响并进入继续输入密码状态,当输入密码的错误次数达到三次,发出警报声并锁住系统,使其不能进行任何操作。
4.2按键扫描程序的设计
按键扫描主要是先对各键进行检查,如有按键按下将其所代表的数暂存。
在主程序中将数写入密码暂存数组或跳入对应子程序。
5.软件调试与运行结果
软件编程调试在Proteus软件中画出仿真电路图,用编译器Keil-C51进行程序的编写,主要编写与调试的模块程序次序如下:
扫描显示程序。
扫描显示程序主要是对显示缓存中的6个数据进行LED段码扫描显示,调试内容包括共阳段码表的段码是否正确,每个LED是否点亮、左边与右边的次序是否正确等内容,图9为检查段码是否能完全点亮的程序仿真运行图。
提示信息显示程序。
提示信息显示方式大致有输入密码显示信息、出错提示信息开启成功提示信息等,图10至图14为各类信息显示图。
提示信息发声程序。
提示信息发声程序的编程原理时产生一定频率的方波信号输出给喇叭,电子密码锁程序中使用了三种方式的提示发声,第一种是输入密码正确,为二低一高共三次的响声;
第二种是输入密码错误,为三次低频响声;
第三种是输入三次错误密码,为六次高频响声。
存储器读写程序。
根据AT24c512存储器手册及通信标准编写存储器读写程序,并将六个数据字节写入并读出进行比较直到正确为止。
读按键程序。
按键程序采用顺序查键的方法,编程中应注意软件消抖以及按键等待释放等功能的使用。
控制主程序。
在以上正确的子程序调试正确的基础上,可以按电子锁控制功能完成主程序的编写与调试,当然编程的方法也不是固定的,模块可以交叉编写或按自己的习惯编写。
6.设计总结
通过调试与运行该电子密码锁已完全符合本次设计要求,可以设定一组6位的数字密码,然后进行开启操作,当密码输入错误,有错误提示,并可再次输入密码;
当密码输入正确,则进行开启提示。
还可以实现重设密码时,需先输入原来的密码才允许修改的功能,使得系统的安全性得到了保障。
通过对该课题的研究,加深对所学知识的理解,提高对课外知识的学习能力,增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。
积累实践经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下基础,并能够在这方面培养自己的兴趣。
通过这次课程设计,无论从选题到定稿,从理论到实践都使我们学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
7.参考文献
1、楼然苗等编著.单片机实验与课程设计(Proteus仿真版)[M],杭州.浙江大学出版社,2010年10月
2、楼然苗等编著.单片机实验与课程设计指导(Proteus仿真版)(第二版)[M],杭州.浙江大学出版社,2013年7月
3、宋雪松等编著.手把手教你学51单片机(C语言版)[M],北京.清华大学出版社,2014年4月
4、王晓明编著.电动机的单片机控制(第3版)[M],北京.北京航空航天大学出版社,2011年3月
5、蓝和慧主编.新版大学生电子设计竞赛单片机应用技能指导[M],北京.电子工业出版社,2013年6月
6、张洪润等编著.单片机应用设计200例[M],北京.北京航天航空大学出版社,2006年7月
附录
主要程序:
#include<
stdio.h>
reg52.h>
intrins.h>
#include"
24c01.h"
sbitLED=P3^0;
sbitSPEAKER=P3^1;
bitoperation=0;
bitpass;
bitreinputen;
charcodedis_7[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xc8,0xff,0xb6,0x86,0x8f};
charcodescan_con[6]={0x01,0x02,0x04,0x08,0x10,0x20};
chardatadia[6]={0x0a,0x0a,0x0a,0x0a,0x0a,0x0a};
unsignedcharInputD