智能门禁系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.题目与主要功能要求及设计思路
2.方案选择、总体方案组成和说明
3.各硬件单元电路的设计、参数分析及原理说明
4.软件流程图及流程说明
5.Protues 仿真
6.总结设计及调试的体会
附录
1.实物图
2.元器件清单列表
3.部分程序源码
1.题目与主要功能要求及设计思路
题目:智能门禁系统
1.课程设计的目的和意义
课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用课程中的理论知识解决实际问题的能力,让我们对电子电路,元器件,印制电路板方面的知识进一步加深,同时在软件编程、排错调试、焊接技术、相关仪器的使用说明技能方面得到全面的发展与提高,为今后独立完成单片机应用系统的开发和设计奠定良好的基础。
2.题目的理解
门禁系统采用89C52单片机作为控制核心,外加键盘输入,LED灯显示开关门,1602液晶屏显示,以及DS1302时钟芯片等来实现密码开锁及自定义开关门等功能。
关键词:52单片机门禁系统液晶显示实时时钟
3.预期功能的实现:
1、密码开锁功能可设置修改密码
2、实现万年历功能
3、自定义开关(23:00 ~6:00 Ps:周六24:00 ~5:00)
4、分别统计出入人数
5、密码实现掉电储存功能
6、具有三次输错闭锁及错键消除功能
4.设计思路
先确定设计目标,进行总体设计思路的设计,
1、硬件设计,确定实现功能,然后确定所需元件,最后布线,画出电路图
2、软件设计确定总体思路然后模块化设计,分别实现密码开关锁和万年历的功能,最后实现自定义开关及其他综合性功能
3、protues仿真根据电路图画出protues图,然后进行仿真模拟,调试软件4焊电路板
7.方案选择、总体方案组成和说明
方案选择
方案一:门禁系统采用89C52单片机作为控制核心,外加键盘输入,LED 灯显示开关门,1602液晶屏显示等,门禁系统主要由CPU,工作指示电路,振荡电路,门控锁电路,时钟电路,键盘输入电路,显示电路等构成。其工作原理为:选择时间显示或进出;当选择时间显示时,显示时间,当选择进出时,提示输入密码,密码输入后按确定键,显示密码密码正确开门或者密码错误不开门,密码正确后选择确定退回输入密码界面,选择设置更改密码,新密码需要输入两遍,按确定提示密码成功返回输入密码界面,或者提示修改密码不成功,返回输入密码界面。当输入密码三次错误时,密码锁关闭。
方案二:门禁系统采用89C52单片机作为控制核心,外加键盘输入,LED 灯显示开关门,1602液晶屏显示蜂鸣器电路,读卡模块等。其工作原理为:当刷卡时,蜂鸣器响,如卡权限获得允许,显示模块显示卡号同时继电器将门锁打开,指示灯点亮,延时一会,继电器再次将门锁关闭,指示灯灭。
因为继电器的熟悉程度不够,对门卡的工作原理也不太清楚,所以最终选择了方案一。
总体方案的组成和说明
方案包括:
1、键盘模块
2、1602显示模块1
3、DS1302时钟控制模块
4、24C02密码储存模块
5、LED显示开关门模块
6、蜂鸣器报警模块
3.各硬件单元电路的设计、参数分析及原理说明
1、门控锁电路
2、蜂鸣器电路
3、时钟电路
4、LED开关门电路
4.软件流程图及流程说明1.总体设计
2.进出程序流程图
3.时间程序结构图
5.Protues 仿真及结果
protues仿真
仿真结果
6.总结设计及调试的体会
在这次的单片机设计中,在我们团队的默契配合,和老师同学的帮助下,顺利的完成了预期目标。在设计工程中,从仿真图的设计,到源程序的书写与修改以及实物图的焊接中,我们都遇到了很多问题,但在我们的共同努力下解决了,并且从中学到了不少知识。我们在设计过程中不断提出自己的疑点以及新的想法,联系实际应用,将课本上的知识运用到了实际中,使我们受益匪浅。
设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验。在设计中,我们遇到问题不是急躁,而是冷静下来思考,耐心寻找解决的办法,与同学讨论,争取找到最优的解决方法。
附录:
1.实物图
2.
2.元器件清单列表
DS1302,LCD1602,16个按键,蜂鸣器,1K欧电位器,电容,LED灯(红绿各两个),3V电池
3.程序源码(程序可以使用但存在问题)
#include
#include"include.h"
sbit dula=P2^6;
sbit wela=P2^7;
uchar i=0,j=0;
uchar chr;
uchar bj,bjc;//报警
uchar t;//中断
uchar k,g; //
uchar jin,chu;//进出标志位
uchar enter=0,out=0;//进出统计
uchar str0[6]={0};
uchar str2[6]={0};
uchar str1[6]={1,2,3,4,5,6}; //初始密码unsigned char TempData1[8];
unsigned char TempData2[8];
unsigned char code dofly_code[]={'0','1','2','3','4','5','6','7','8','9'};//转换成液晶显示的字符
bit ReadTimeFlag;//定义读时间标志
bit SetFlag; //更新时间标志位
unsigned char time_buf2[16];
void Init_Timer0(void);//定时器初始化