单片机的门禁系统的设计与制作

目 录
引言 1
一、系统硬件设计 1
(一) 系统方案的确定 1
(二) 单片机最小系统 2
(二) 矩阵按键电路 4
(三) 内部按键开门电路 4
(四) 继电器门禁电路 5
(五) LCD1602液晶显示电路 5
(六) 蜂鸣器报警电路 6
(七) MAX232串口通信电路 7
(八) 电源电路 7
二、系统软件设计 8
(一) 系统主程序流程图 8
(二) 按键扫描函数流程图 9
(三) 系统状态转换图 10
(四) 按键改变系统状态函数流程图 11
(五) 时间改变系统状态函数流程图 12
(六) 显示函数流程图 12
(七) 蜂鸣器、继电器控制函数流程图 13
三、系统调试 14
(一) 软件调试 14
(二) 软件仿真 16
(三) 硬件调试 18
总结 21
附录一:系统整体原理图 22
附录二:系统PCB布局图 23
附录三:系统PCB顶层布线图 24
附录四:系统PCB底层布线图 25
附录五:实物正面图 26
附录六:实物背面图 27
附录七:元件清单 28
附录八:系统源程序 29
参 考 文 献 48
致 谢 49
引言
单片机是将中央处理器(CPU)、只读存储器(ROM)、随机存取存储器(RAM)、定时/计数器以及输入/输出端口(I/0)等部件集 *好棒文|www.hbsrm.com +Q: ^3^5^1^9^1^6^0^7^2^* 
成到一起的芯片。单片机从其诞生至今,以其卓越的性能、较高的性价比越来越受到人们的关注和重视。随着社会科技的进步,带密码功能的门禁系统由于其保密性高,使用灵活性好,安全系数高等优势,已经广泛应用于在日常生活小区进出、楼宇安全、办公室等重要场所,大大提高了人员和物资的安全性。本设计采用STC89C52单片机,研制了一款带有密码功能的门禁系统。该门禁系统设计方法合理,简单易行,成本低,具有一定的推广价值。此门禁系统实现的具体功能如下:
(1)系统设置4位密码,用户通过3*4矩阵键盘输入密码,若输入密码正确,门禁系统自动开启。
(2)系统设置内部开启按键,当此按键按下,不论系统处于何种状态,门禁系统立即开启。
(3)具有自动报警功能。当用户连续输入3次错误密码,门禁系统控制蜂鸣器报警。
(4)具有自动计时功能。门禁系统开启后,自动计时满20秒,门禁系统自动关闭;当系统处于用户输入按键状态时,若用户长时间(30秒)无动作,系统自动返回待机状态;门禁系统报警1分钟后,系统自动跳转到待机状态。
一、系统硬件设计
(一) 系统方案的确定
单片机的门禁系统硬件总体框图如图1所示,本系统主要由单片机最小系统电路、3*4矩阵按键电路、串口通信电路、内部开门按键电路、LCD1602液晶显示电路、继电器门控电路、蜂鸣器报警电路等六个功能模块电路构成。主控芯片STC89C52单片机、12MHz的时钟电路和按键控制的复位电路组成了单片机最小系统,确保单片机获得稳定的系统时钟和复位信号。3*4矩阵按键电路由12个轻触按键构成,分别定义了十个数字按键和确认、取消两个功能按键。矩阵按键电路配合LCD1602液晶显示电路,方便简洁的实现了人机交换功能。MAX232串口通信电路可以实现为STC单片机下载程序。本设计将内部开门按键电路链接到单片机的外部中断接口,确保当此按键按下,系统马上会响应开门按键。继电器门禁电路、蜂鸣器报警电路分别实现了单片机控制门禁的开启和是否报警的功能。
图1硬件原理框图
本设计实现了用户输入正确密码或按下内部开门按键来开启门禁系统等功能,极大的方便了用户日常生活。本系统平时处于待机界面,用户需要开启门禁系统时,可以根据系统待机界面的提示,按下“确认”按键,跳转到输入密码界面,此时用户可以输入由数字0-9组成的四位密码,每输入一位密码,系统界面显示一个“*”标记。当用户输入密码完成后,再次按下“确认”按键,系统自动核对用户当前输入的密码是否正确:密码正确,系统自动控制门禁开启20秒钟;密码错误,则提示用户输入密码错误,跳转到第二次输入密码状态。当用户连续三次输入密码错误,系统进入报警状态:蜂鸣器报警1分后,自动退回到待机状态;在任何时刻下,内部人员可以通过使用内部开门按键打开门禁或退出报警状态。在用户输入密码的状态中,系统会自动计时,若用户长时间没有继续输入按键,也会自动退回待机状态。
(二) 单片机最小系统
1、 STC89C52单片机
本设计采用STC89C52单片机,该单片机有8K字节的可编程的Flash存储器、512字节RAM。片上Flash存储器允许十万次编程烧写,在系统设计时方便的地进行程序修改和下载工作。此单片机集成电路上包括8位CPU架构和Flash存储器,32个并行I/O接口,以及定时器等部件,它为很多单片机控制系统提供一种高效灵活的解决方案。另外STC89C52单片机出厂时已经完全加密,无法解密。并且利用内部集成ISP功能,外接一个MAX232芯片,通过串口可以方便下载程序。鉴于STC89C52单片机的杰出性能,最终选择STC89C52单片机为主控芯片。
2、 单片机最小系统
STC89C52单片机为40引脚的双列直插DIP封装。其中40个引脚中,正电源和地线两根,4组8位共32个I/O口,中断口线与P3口线复用。STC89C52单片机由于拥有达到8K字节的Flash存储器和512字节的RAM已经满足了一般的设计需求,所以只需要建立单片机最小系统,即可满足本设计的控制部分的要求。单片机的最小系统硬件原理图如图2所示。
图2 单片机最小系统电路
当刚刚接通单片机电源时,由于电源的冲击,将通过电容流过一定的电流,在电阻上产生一定的正电压,RST引脚保持2个机器周期以上的高电平,使得单片机复位,待电源稳定了,电容相当于断路,使得RST引脚接地,为低电平,单片机进入正常工作。RST引脚的外部复位电路有两种工作方式:上电自动复位和手动按键复位。本系统采用手动按键复位方式,当复位按键S2按下时,VCC绕过电容流过10K电阻,向地拉电流,RST引脚处于高电平,单片机复位,PC寄存器指向0000H地址。
STC单片机片内有一个高增益反相放大器,其输入端(XTAL1)和输出端(XTAL2)用于外接定时组件构成自激振荡电路。定时组件是由石英晶体和微调电容组成的并联谐振电路。电容C1和C2对频率有微调作用,电容容量的选择范围为5pF~30pF.振荡频率的选择范围为1.2MHz~12MHz。在本方案选择12MHZ石英晶体和20pF电容组成的并联谐振电路作为单片机的时钟电路。根据该电路可以知道单片机的指令周期为1微秒。
图11矩阵按键函数流程图
按键扫描函数流程图如图11所示。本设计按键函数采用扫描的方法实现。扫描法是在程序中逐行或逐列扫描查询键盘接口,根据端口的的输入情况,判断是哪一个按键按下,然后返回按下按键的键值。具体实现过程:1、判断按键是否按下。在程序汇总将列线全部输出为“0”,此时读行线的状态,如果行线的状态权威“1”,则表示此时没有任何按键按下;如果行线不全为“1”,表示有按键按下。2、按键去抖动。当判断有按键按下之后,程序中延时10ms左右的时间,然后再次判断键盘的状态。如果仍然处于按键按下的状态,则便肯定有按键按下,否则将当作按键的机械抖动。3、扫描按键的键值。首先令一根列线输出“0”,其余三根列线输出“1”。然后独缺行线的状态,如果行线不全为高电平,则表示其中为低电平的行线与输出“0”的列线相交的按键被按下。如果此列没有按键按下,则按照相同的方法依次检查其他列线有没有按键按下。通过逐列扫描,便可以找到按键的坐标位置,也就是键值。4、返回按下按键的键值。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/1863.html

好棒文