密码锁课程设计.docx
- 文档编号:4004817
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:16
- 大小:94.41KB
密码锁课程设计.docx
《密码锁课程设计.docx》由会员分享,可在线阅读,更多相关《密码锁课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
密码锁课程设计
《单片机技术》课程设计说明书
密码锁
系、部:
电气与信息工程系
学生姓名:
指导教师:
职称副教授
专业:
自动化
班级:
0902班
完成时间:
2012年1月1日
摘要
随着科技的日益发展,针对传统机械锁安全性能低,需随身携带且易丢失钥匙和出现故障的缺点,另外随着经济技术的发展和人们对生活水平的提高,电子密码锁控制系统已经越来越符合人们的要求,本文设计了一种使用单片机实现的电子密码锁。
该密码锁采用AT89S52作为主控芯片和数据存储单元,结合外围的矩阵式键盘输入、LCD液晶显示、报警等,用C语言编写主控芯片与EEPROM读写程序相结合,设计了一个可以多次修改密码,并且具有报警功能的电子密码锁控制系统。
关键词:
密码锁;AT89S52;AT24C02
ABSTRACT
Alongwiththedevelopmentofscienceandtechnology,inviewofthetraditionalmechanicallocksecuritylow,needtocarryandeasylostkeyandfailureshortcomings,inadditionwitheconomictechnicaldevelopmentandpeopletotheimprovementoflivingstandardrequirements,electroniccombinationlockcontrolsystemhasbeenmoreandmoreaccordwiththerequirementofpeople,thispaperintroducesadesignusingmicrocomputerelectroniccombinationlock.
ThiselectroniclockadoptsthemonolithicintegratedcircuitAT89S52asthemasterchipanddatastoragelocations,combineswiththematrixkeyboardinput,liquidcrystaldisplay,alarm,writteninCcontrochipwithanEEPROMliteracyprogramscombining,designofapassword,ancanbechangedseveraltimeswithalarmfunctionofelectroniccombinationlockcontrolsystem.
Keywordstricklock;at89s52;at24c02
目录
1系统总体设计方案1
1.1设计课题任务1
1.2功能要求说明1
1.3设计课题总体方案介绍及工作原理说明1
2硬件系统的设计2
2.1硬件系统各模块功能简要介绍2
2.1.1AT89S52控制模块2
2.1.2键盘模块2
2.1.3时钟信号模块2
2.1.4复位模块2
2.1.5掉电存储模块2
2.1.6报警模块2
2.1.7LCD显示模块2
2.1.8下载电路模块3
2.2系统电路原理、PCB图、元器件布局图3
2.3系统元器件清单3
3软件系统的设计4
3.1使用单片机资源的介绍4
3.2软件系统各模块功能简要介绍4
3.2.1液晶显示模块4
3.2.2AT24C02读写模块4
3.3软件系统程序流程框图4
3.4软件系统程序清单5
4系统仿真分析及结论6
4.1系统使用说明6
4.2系统实物仿真结果6
4.3系统误差分析7
4.4设计体会7
结束语8
致谢9
参考文献10
附录A11
附录B12
附录C13
附录D14
1系统总体设计方案
1.1设计课题任务
设计一个具有特定功能的密码锁。
1.2功能要求说明
该密码锁具有上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息,一旦遗忘密码只能通过输入“超级密码”123456才能解锁。
1.3设计课题总体方案介绍及工作原理说明
该课题是以单片机AT89S52作为本次设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码控制功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接FYD12864-0402B液晶显示器用于输出显示。
本设计主要由单片机、矩阵行列式键盘、液晶显示器和密码存储等部分组成。
其中矩阵式键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵式键盘输入密码,然后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确。
系统一共有两部分组成,硬件电路和软件部分。
其中硬件部分由键盘输入部分、复位电路、晶振部分、报警部分组成,软件部分主要有主程序、初始化程序、液晶显示程序、键扫程序、键功能程序、密码设置程序、EEPROM读写程序、延时程序等组成。
其原理框图如图1所示。
图1系统原理框图
2硬件系统的设计
2.1硬件系统各模块功能简要介绍
2.1.1AT89S52控制模块
AT89S52是种低功耗、高性能COMS8位微控制器,具有4K可编程Flash存储器,与工业80C51产品指令和引脚完全兼容。
掉电模式下,RAM内容被保存,单片机停止一切工作,直到下一个中断或硬件复位为止。
2.1.2键盘模块
根据系统的基本要求,密码的输入和修改要求具有修改和设定等功能,所以采用4*4矩阵式键盘接在AT89S52单片机的接口非常方便,同时相对于独立式键盘大大节省了资源,在软件的设计时带来了极大的方便,使程序简化。
2.1.3时钟信号模块
单片机工作所需的同步时钟信号可以有两种方法获得:
由单片机内部时钟电路结合外部晶振、电容产生和直接从单片机外部引入脉冲信号。
我采用的是第一种方法产生时钟信号。
电路用12MHz的石英晶体和两个33pF的微调电容连接起来接到单片机的XTAL1和XTAL2引脚上。
2.1.4复位模块
复位是单片机的硬件初始化操作。
经复位操作后,单片机系统才能开始正常工作。
单片机上有复位引脚RST,用于外接复位电路,这里的复位电路采用按键电平复位。
2.1.5掉电存储模块
此次设计采用的是掉电存储模块AT24C02作为密码存储芯片。
具有工作电压,擦写次数多,写入速度快,抗干扰能力强,数据不易丢失,体积小等优点。
并且采用I²C总线进行数据的读写串行操作,只占用很少的资源和I/0口线。
2.1.6报警模块
电子密码锁的另外一个功能要求是在输入密码错误时要发出报警,利用蜂鸣器来实现,具有电路结构非常简单,控制方便等优点。
2.1.7LCD显示模块
显示模块要具有显示输入密码,修改密码的信息准确性,综合以上要求我选择FYD12864-0402B液晶作为显示的器件。
2.1.8下载电路模块
下载电路用于连接单片机内部电路,将程序下载到硬件电路中实现功能。
2.2系统电路原理、PCB图、元器件布局图
系统电路原理图、PCB图、元器件布局图分别见附录A、B、C。
2.3系统元器件清单
系统中所用到的元器件清单如表1所示。
表1系统元器件清单
器件
型号
数量
单片机
AT89S52
1块
按键
4脚
17个
发光二极管
-
1个
液晶
FYD12864
1块
精密电位器
50K
1个
下载接口
10脚
1个
单排插槽
40p
2个
蜂鸣器
5V
1个
排阻
10k
4个
24c02加底座
DIP(8)
1块
单排插针
40p
5个
瓷片电容
33pF
4个
电解质电容
22uF
1个
晶振
12MHz
1个
三极管
9012
1个
短路帽
2脚
1个
电阻
470Ω
1个
电阻
1k
2个
电阻
10k
1个
3软件系统的设计
3.1使用单片机资源的介绍
此次设计主要使用了单片机的P0口和P1口,以及其他若干口线。
P0口是单片机与液晶通讯的数据口线,P1口主要是用于键盘电路的扩展,P3.3、P3.4分别接24C02的SCL、SDA,P3.7接蜂鸣器。
3.2软件系统各模块功能简要介绍
3.2.1液晶显示模块
液晶显示的程序中,将液晶的系统设置,初始化程序写成子程序,等待50ms,显示开关控制初始化,然后调用voidlcd_set和oidlcd_clear,再调用显示子程序就可以在液晶显示器上显示所需的内容。
3.2.2AT24C02读写模块
AT24C02子程序包括从AT24C02中读取信息和将信息写入AT24C02,当单片机需要从AT24C02中读出数据和写入数据时只需要调用相应的子程序。
3.3软件系统程序流程框图
本系统软件设计有主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、AT24C02读写程序和延时程序等组成。
软件系统的总体流程框图如图2所示,键扫和显示程序流程框图分别如图3、图4所示。
图2总体流程框图
图3键扫流程框图图4显示流程框图
3.4软件系统程序清单
软件系统程序清单见附录D。
4系统仿真分析及结论
4.1系统使用说明
在系统上电后系统显示P.等待系统初始化,然后输入密码,在输入正确的密码后,按下E键确认,密码锁就可以打开了,若是连续三次输入密码错误,在三秒后系统会自动进入超级密码输入模式,通过输入超级密码也可以打开密码锁。
密码锁成功打开后,可以按2键进入密码修改模式,在输入原始密码正确后才可以修改密码,通过两次的密码确认之后,就能产生新的密码了。
4.2系统实物仿真结果
系统最终显示的结果如下列各图所示,其中图5是系统上电后显示的主界面图,图6是密码输入错误三次时的液晶显示图,图7是修改密码时再次输入密码的液晶显示图。
图5主界面显示图图6密码输入错误三次显示图
图7修改密码再次输入显示图
4.3系统误差分析
在调试过程中遇到了AT24C02读取错误,就是不能用初始密码打开密码锁,这主要是没能把初始密码写进AT24C02中或者是没能把AT24C02中的内容初始化即把AT24C02清0,最终导致不能用初始密码解锁。
4.4设计体会
通过本次的程设计,让我了解到智能化技术对当今人们生活的重要性。
同时让我知道做任何事情都应脚踏实地,刻苦努力地去做。
只有这样,才能做好。
在这次课程设计中,我既巩固了专业知识,又学到了在设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。
从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。
此次经历将是我在大学时期很好的一次实践和锻炼机会。
结束语
本次课程设计可以说基本上完成了所要求的功能要求,密码锁的课程设计到此结束,要做好本次课程设计首先就要搞懂密码锁的原理,此外其他每个部分电路也相当重要,首先要构建设计电路的总体框架然后再分细节去解决,明确自己要做什么、怎么做。
怎么才能利用我们设计的电路板,怎么去网上查找自己需要的资料,要学会怎么去学习自己上课没有学过的东西,将理论与实践相结合起来。
在编写程序时要学会怎么去查找错误,其实就是的通过不断的调试,使其最终功能达到我们想要的结果,还有就是编写程序时需要耐心,不要愁程序多长,其实很长的程序也是一个个子程序组成的,把每段程序功能加起来就能达到我们所需要的功能要求。
总而言之,通过本次课程设计,我掌握了密码锁的设计原理,积累了一些宝贵的经验,为以后的深入学习打下了一定的基础。
致谢
非常感谢学校给我们提供这次课程设计的机会,通过这次课程设计,让我意识到理论结合实际的重要性,同时也提升了我各方面的动手能力。
在此首先要感谢的就是我们的王老师,感谢他一个学期以来对我们的悉心教育和教导,不仅让我们学习了课本知识,还让我们学习了除课堂上以外的很多东西,若不是他的这些教导,我们的课程设计也不可能这么顺利的完成。
在此次课程设计的进展中,我也得到了很多同学的帮助,若不是得到他们的帮助,我将难以解决在课程设计过程中所遇到的诸多问题。
所以在此我也要对那些给与我帮助的每一个人表示衷心的感谢!
参考文献
[1]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2007
LiGuangdi.microcontrollerbased[M].Beijing:
BeijingAerospaceUniversitypress,2007
[2]马忠梅.单片机的C语言应用程序设计[M],北京:
北京航空航天大学出版社2007.219~228
Mazhongmei.SCMClanguageprogramdesign[M],Beijing:
BeijingAerospaceUniversitypress,2007.219~228
[3]张洪润,兰清华.单片机应用技术教程[M].北京:
清华大学出版社,1997
ZhangHongrun,LanQinghua.Microcomputerapplicationtechnologytutorial[M].Beijing:
TsinghuaUniversitypress,1997
[4]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,1993
LiHua.MCS-51seriesMCUinterfacetechnologyandpractical[M].Beijing:
BeijingAerospaceUniversitypress,1993
附录A
图A1系统原理电路图
附录B
图B1PCB顶层图
图B2PCB底层图
附录C
图C1元器件布局图
附录D
/***************************************************************
*项目名称:
密码锁的设计*
*设计者:
何德旅*
*设计日期:
2011年12月22日*
*根据液晶的提示便能进行相应的操作,其中键盘的E键为确认键,*
*输入密码后都要按确认键才能确认,密码长度为6位。
*
*初始密码为888888,超级密码为123456。
*
*P1口作为键盘的输入接口,P3.3﹑P3.4分别接24C02的SCL,SDA引脚。
*
/***************************************************************/
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineTa500//unsignedint
#defineOP_READ0xa1//器件地址以及读取操作
#defineOP_WRITE0xa0//器件地址以及写入操作
#defineMAX_ADDR0x7f//AT24C02最大地址
sbitSDA=P3^4;
sbitSCL=P3^3;
sbitLE=P3^6;
sbitrs=P3^0;
sbitrw=P3^1;
sbiten=P3^5;
ucharcommand0,data0,count=0;
ucharv=0;
bittuichu=0;
bittuichu1=0;
bityy=0;
ucharsavein=0;
voidwrite(ucharcommand0);
ucharkeyscan(void);
/**************************************************/
#definev_th00x3c
#definev_tl00xb0
#definev_tmod0x01
ucharclick_0=0;//定时器1定时中断次数
ucharclick_1=0;//1秒是否到了
bittime=0;
/*******************定时器的初始化*******************/
voidinit_sys(void)
{//定义定时器TO时间常数和方式控制字
TMOD=v_tmod;TH0=v_th0;TL0=v_tl0;//设置时间计数初值
TR0=0;EA=1;ET0=1;TR1=0;//开定时器0中断
}
/****************延时子程序***************************/
voiddelay(uintm)
{
while(--m);
}
voiddelayms(ucharms)
{
uchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
/*******************************************************/
ucharcodeTable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodedis_code[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};////0-9写入24C02中
ucharcodedis_code1[]={0x31,0x32,0x33,0x34,0x35,0x36,};//超级密码123456
ucharyuanshimima[]={0x38,0x38,0x38,0x38,0x38,0x38,};//系统原始密码88888
ucharshuzu0[6];
ucharshuzu1[6];
ucharxiugai0[6];
ucharxiugai1[6];
/********************************************************/
voidstart()//开始位
{SDA=1;SCL=1;
_nop_();_nop_();
SDA=0;
_nop_();
_nop_();
SCL=0;
}
/************************************************/
voidstop()//停止位
{
SDA=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码锁 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)