完整版基于单片机的门禁系统的毕业设计论文.docx
- 文档编号:10430979
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:39
- 大小:578.41KB
完整版基于单片机的门禁系统的毕业设计论文.docx
《完整版基于单片机的门禁系统的毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版基于单片机的门禁系统的毕业设计论文.docx(39页珍藏版)》请在冰点文库上搜索。
完整版基于单片机的门禁系统的毕业设计论文
基于单片机门禁系统的设计
学号:
B
姓名:
宁志杰
日期:
2014.12.31
基于单片机的门禁系统的设计
摘要
门禁系统采用89C52单片机作为控制核心,外围加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及LCD液晶显示电路等。
门禁系统主要由CPU、工作指示电路、振荡电路、蜂鸣器电路、门控锁电路、矩阵键盘、读卡模块、显示模块等组成。
该门禁系统采用射频卡完成刷卡进门,按刷卡出门等功能。
其工作原理为:
当刷卡时,蜂鸣器响一下,如卡权限获得允许,显示模块显示卡号,同时继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。
当按下出门按钮时,继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭,指示灯熄灭。
当输入初始密码时,若输入正确,继电器动作将门锁打开,指示灯点亮,延时一段时间后继电器再次动作将门锁锁闭。
此外,程序中还增加了射频卡权限判断的功能,当遇到合法卡时显示卡号,门锁打开,延时10s自动关闭,当遇到非法卡时不显示卡号门锁不开。
本系统设计简单、性能优良,具有一定的实用性。
关键词:
门禁,射频卡,电控锁,液晶显示,单片机控制
AccessControlSystemDesign
ABSTRACT
Entranceguardsystemuses89C52singlechipmicrocomputerascontrolcoreandperipheryaddabuzzercontrolcircuit,openthedoorindicatorlightcircuit,controlcircuitandcontrollockLCDdisplaycircuit,etc.EntranceguardsystemmainlybytheCPUandresetcircuit,thepowerindicativecircuit,workinstructionscircuit,oscillatingcircuit,abuzzercircuit,doorcontrolcircuit,gooutandlockbuttonreadingcardmodule,displaymodule.Theentranceguardsystemusesrfcardcompletechargetakethedoor,accordingtocredittogoout,andotherfunctions.Itsworkingprincipleis:
whencredit,abuzzerrang,suchascardtobeallowedtoaccess,displaymoduledisplaycardnumber,andatthesametimerelayactionwillopenthedoorlock,indicatorlight,delayafterperiodoftimerelayactionwillagainonlydoorlock,lightsgoout.Whenthepressoutbutton,therelayactionwillopenthedoorlock,indicatorlight,delayafterperiodoftimerelayactionwillagainonlydoorlock,lightsgoout.Whentheinputpassword,ifyouinputthecorrect,relayactionwillopenthedoorlock,indicatorlight,delayafterperiodoftimerelayactionwilllockdoorlockagain.Inaddition,theprogramwillalsoincreasetherfcardauthorityjudgmentfunction,whenfacinglegalcardshowedthecardnumber,dooropen,delay10sautomaticallyshutoff,whenmeetingtheillegalCARDSdon'tshowthecardnumberlocksdon'topen.Thesystemissimpleindesign,goodperformance,and)和PLCC(44pin)两种封装形式。
89C52引脚图如图2-2示:
图2-289C52的引脚图
89C52单片机外部有32个端口可供用户使用,其功能如表2-3示:
表2-389C52外部端口功能表
端口
引脚位置
第一功能区
第二功能区
符号
功能
符号
功能
P0
39~32
P0.0~P0.7
通用IO口
AD0AD7
地址数据总线(低位)
P1
1~8
P1.0P1.7
通用IO口
P2
21~28
P2.0P2.7
通用IO口
A8A15
地址总线(高位)
P3
10
P3.0
通用IO口
RXD
串行通信发送口
11
P3.1
TX0
串行通信接收口
12
P3.2
INT0
外部中断0
13
P3.3
INT1
外部中断1
14
P3.4
T0
计数器0输入端口
15
P3.5
T1
计数器1输入端口
16
P3.6
WR
外部储存器写使能
17
P3.7
RD
外部储存器读使能
门禁系统数控部分采用89C52单片机作为控制核心,其内部组成包括:
一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器8KBRAM低128字节,存放读写数据;高128字节被特殊功能寄存器占用;片内程序存储器ROM;四个8位并行IO(输入输出)接口P3-P0,每个口可以用作输入,也可以用作输出;两个定时计数器,每个定时计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行IO口。
在89C52单片机的基础上,外围增加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及1602显示电路等,构成了门禁系统的控制电路。
2.4最小系统的设计
门禁系统数控部分采用89C52单片机作为控制核心,其内部组成包括:
一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器8KBRAM低128字节,存放读写数据;高128字节被特殊功能寄存器占用;片内程序存储器ROM;四个8位并行IO(输入输出)接口P3—P0,每个口可以用作输入,也可以用作输出;两个定时计数器,每个定时计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行IO口。
在89C52单片机的基础上,外围增加蜂鸣器控制电路、开门指示灯电路、电控锁控制电路以及1602显示电路等,构成了门禁系统的控制电路。
其原理图如图2-3示:
图2-3门禁系统控制原理图
第3章硬件电路原理
3.1门控锁电路
工作原理:
当P2.3口输出高电平时Q2导通,Q3截止,此时继电器的控制线圈为开路,继电器不动作。
门锁接于继电器常闭端,门锁闭合,门处于锁死状态。
当P2.3口输出低电平时Q2截止,Q3导通,此时继电器的控制线圈闭合,继电器动作。
继电器常闭端断开,门锁打开,门处于打开状态。
门控锁电路如图3-1示:
图3-1控制锁电路图
3.2蜂鸣器电路
工作原理:
当P2.4输出高电平时,Q4导通,Q5截止,蜂鸣器回路开路,蜂鸣器不响。
当P2.4输出高电平时,Q4截止,Q5导通,蜂鸣器回路闭合,蜂鸣器发出响声。
电路组成如图3-2示:
图3-2蜂鸣器电路图
3.3控制指示灯
工作原理:
当P2.5口输出高电平时,Q1截止,发光二极管熄灭。
当P2.5口输出低电平时,Q1导通,发光二极管点亮。
电路组成如图3-3示:
图3-3工作指示灯电路图
3.44×4矩阵键盘
工作原理:
P1口高四位为低电平,低四位为高电平。
当有键按下时,P1.0-P1.3给P3.2口输入低电平,触发INT0中断,程序作出相应处理,如3-4示:
图3-44×4矩阵键盘电路图
3.5读卡模块
设计上我们采用ID射频卡读卡器。
EM9913BF125KHz感应式读卡模组是针对125KHz非接触式RFID晶片而设计的读卡模组,它能针对目前市面上125KHz非接触式RFID晶片如凌航科技GK4001晶片或其它规格现相近产品进行资料读取与资料判断,使用者可以一次开发感应式读卡及相关应用系统,该模块主要范围为互动式玩具、门禁管制系统、人员考勤管理、动物或物品辨识及产品管理,此读卡模组主要优缺点叙述如下:
优点:
(1)独立性高,
(2)二次开发容易,安装简单资料读取稳定性高
(3)统安全性高,RFID资料不重复且难以复制
(4)可选择数据输出格式
缺点:
电脑必须24小时开机,便于数据传送。
硬件软件功能:
125KHz感应式读卡机系统如图3-5示:
图3-5读卡器示意图
读卡器引脚连接图如3-6示:
图3-6读卡器引脚连接示意图
使用EM9913BF模块,在5-15cm距离内读取GK4001的时间不超过70ms。
感应式读卡系统电源DC5V,感应线圈(Antenna)为系统必需,感应线圈可以与系统分开放置,亦可设计与系统中,为防止感应电磁场干扰,请勿将金属板置于感应线圈前后。
每个卡片内部有一个小芯片和感应线圈,价格低廉,国内最普及的EMID卡,大多为瑞士nEM或台湾GK公司的4100、4102系列芯片+线圈+卡基封装而成。
每张卡有且只有一个唯一的,不可更改和复制的ID内码(64位2进制机密的永不重复的卡号),因其安全可靠,价格低廉而大量应用于身份识别、产品防伪等领域。
读卡器卡号输出格式的说明:
由于历史的原因,或者不同领域习惯的原因,最常见到的有五种读卡方式,我们采用的读卡格式为:
将10位十六进制的ASCⅡ字符串,即10Hex格式的倒数第5、第6位,转换为3位十进制卡号,在将后4位,转换为5位十进制卡号,中间用“,”分开,即“2H+4H”,即将2H“6F”转换为“111”,4H“6c3a”转换为“27706”,最终将2段连在一起输出为“111,27706”。
3.6显示模块
LCD1602是指显示的内容为16×2,即可以显示两行,每行16个字符液晶模块。
它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
3.6.1LCD1602主要技术参数
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
3.6.2引脚功能说明
1602引脚如图3-8示:
图3-71602引脚示意图
1602引脚功能如表3-2示:
表3-21602引脚功能表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据命令选择
12
D5
数据
5
RM
读写选择
13
D6
数据
6
E
使能信号
14
D9
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VDD接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极
3.6.31602指令集
1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的(说明1为高电平,0为低电平)。
如表3-3示:
表3-31602指令集
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光3标和显示位置设置ID,光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。
指令4:
显示开关控制。
D:
控制整体的显示开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位SC:
高电平时显示移动的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时为双行显示,F:
低电平时显示5X7的点阵字符,高电平时显示5X10的显示字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。
3.6.4与HD44780相兼容的芯片时序表
基本操作时序表如表3-5示:
表3-5基本操作时序表
读状态
输入
RS=L,RW=H,E=H
输出
D0-D7=状态字
写指令
输入
RS=L,RW=H,D0-D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,RW=H,E=H
输出
D0-D7=数据
写数据
输入
RS=H,RW=L,D0-D7=数据,E=高脉冲
输出
无
读操作时序如图3-8示:
图3-8读操作时序图
写操作时序如图3-9示:
图3-9写操作时序图
第4章软件设计
4.1Keil简介
4.1.1KeilC51系统概述
单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
C51工具包的整体结构,其中uVision是C51forWindows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用Keil的软件工具时,项目的开发流程基本上与使用其他软件开发项目一样。
(1)打开Keil软件,如图4-1示:
图4-1初始界面
(2)创建一个项目。
点击Project菜单,选择弹出的下拉式菜单中的NewProject,如图4-2示:
图4-2新建工程
(3)在“文件名”中输入C程序项目名称“电子门禁”,“保存”后的文件扩展名为uvproj,这是KEILuVision4项目文件扩展名
(4)从器件数据库中选择目标芯片,这里选择要用的Ateml公司的AT89C52。
如图4-3示:
图4-3选择芯片
(5)配置工具软件的设置,如图4-4
图4-4软件设置
(6)完成上面步骤后,可以进行程序的编写了。
(7)点击新建文件的快捷按钮,在开发环境下出现一个新的文字编辑窗口。
用C创建源程序。
(8)编辑完成后,保存新建的程序,也可以用菜单File-Save或快捷键Ctrl+S进行保存。
(9)鼠标在屏幕左边的SourceGroup1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。
点击"AddFiletoGroup'SourceGroup1'"弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。
这时在SourceGroup1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
如图4-5示:
图4-5添加文件
(10)C程序文件已加到了项目中,下面开始编译运行。
图中第1、2、3都是编译按钮,1是用于编译单个文件;2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的;3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。
在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。
如图4-6示:
图4-6编译运行
下图中有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\StopDebugSession,快捷键为Ctrl+F5。
进入调试模式,软件窗口样式大致如图4-7示:
图4-7调试按钮
(11)进入调试模式,软件窗口样式如图4-8示:
图4-8调试
(12)图中按钮1为运行,当程序处于停止状态时才有效。
2为停止,程序处于运行状态时才有效。
3是复位,模拟芯片的复位,程序回到最开头处执行。
如图4-9示:
图4-9运行按钮
4.1系统主程序分析
1.主程序流程图
主程序流程图如图4-10示:
图4-10主程序流程图
2.主程序清单:
#include { LED=0;LED亮 BUZZER=0;蜂鸣器响 EA=1;开所有中断 INT0_init(); T1_init(); lcd_init(); P1=0x0f;键盘初始化 delay(100); LED=1;熄灭LED BUZZER=1;关蜂鸣器 while (1) { display(); delay(50); } } 4.2子程序分析 4.2.1显示程序 1.显示程序流程图如图4-11示: 图4-11显示程序流程图 2.显示程序清单: *************************************************************** 函数功能: 与最近一次lcd显示界面比较,以此作是否清屏处理 入口参数: 出口参数: *************************************************************** voidjudge_clear_lcd() { if(N_DISPLAY! =N_DISPLAY_HISTORY) { lcd_wcmd(0x01);清屏 } } *************************************************************** 函数功能: lcd显示第0幕 入口参数: 出口参数: *************************************************************** voiddisplay0() { uchari; judge_clear_lcd();是否清屏处理 lcd_pos(0x00);设置显示位置 delay1 (1); for(i=0;wel[i]! ='\0';i++) { lcd_wdat(wel[i]); } N_DISPLAY_HISTORY=0;记录历史显示界面编号 } *************************************************************** 函数功能: lcd显示第1幕 入口参数: 出口参数: *************************************************************** voiddisplay1() { uchari; judge_clear_lcd();是否清屏处理 lcd_pos(0x00);设置显示位置 delay1 (1); for(i=0;com_in[i]! ='\0';i++)显示"Comeinplease! " { lcd_wdat(com_in[i]); } lcd_pos(0x40);设置显示位置 delay1 (1); for(i=0;push[i]! ='\0';i++)显示"Pushthedoor! " { lcd_wdat(push[i]); } N_DISPLAY_HISTORY=1;记录历史显示界面编号 } *************************************************************** 函数功能: lcd显示第2幕 入口参数: 出口参数: *************************************************************** voiddisplay2() { uchari; judge_clear_lcd();是否清屏处理 lc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 单片机 门禁 系统 毕业设计 论文