毕业设计 基于51单片机门禁系统的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机门禁系统的设计

1 项目硬件设计

1.1 单片机控制模块

1.1.1 单片机型号选择 

基于单片机的RFID门禁系统设计,对单片机存储空间的要求是有拥有4K字节EEPROM。其次为了保证系统更好地运行,要选用稳定性高的控制器,还要考虑到价格、编程下载难易程度等方面。基于此有以下两种方案可供选择。

方案一:主控制器选用STC89C52单片机[16]。该单片机可以满足对单片机存储空间的要求拥有4K字节EEPROM。具有低功耗、高性能、可直接使用串口下载的特点。STC89C52单片机具有开发简单[3],可在线编程下载,成本相对较低的优点。

方案二:主控制器选用AT89S52单片机[7]。AT89S52单片机的内部存储器密度高,而且在断电之后,其内部存储的信息会保存起来。该单片机自带2KB的EEPROM存储空间、8K字节程序存储空间[8]。适用于常规编程器。但是AT89S52的价格相对来说比较高,开发方法相对复杂,难度较高。

综上,与AT89S52单片机相比,STC89C52单片机开发难度较低、稳定性高,而且价格在可以接受的范围内,结合本设计预期实现的功能对产品性能的要求,最终决定使用STC89C52单片机作为主控制器。

1.1.2 单片机的引脚说明

STC89C52单片机共有32位I/O口线,引脚图如图1.1所示。本设计刚好需要32个,其中11个I/O口与LCD12864液晶显示模块相连接,使其能显示信息;1个I/O口与蜂鸣器报警模块相连接,使其发出声音;8个I/O口与按键模块相连接,使按键可以使用;RFID模块需要5个,AT24C02存储模块需要1个,复位电路需要1个,时钟电路需要2个,继电器驱动模块需要1个,下载口需要2个。STC89C52单片机的工作电压为5V。

图1.1 STC89C52单片机引脚图

单片机的下载接口如图1.2所示,单片机的P30与P31管脚作用是下载相关的程序[8],与下载接口相连,用来下载程序。

图1.2 下载接口原理图

具体引脚对应功能如表1.3所示。

表1.3 STC89C52单片机引脚功能表

引脚名称

功能

P1.0~P1.7

8位双向I/O口

RST

复位端

RXD

串行口输入端

TXD

串行口l输出端

INT0/INT1

外部中断0/1输入

T0/T1

定时器0/1输入

XTAL2/XTAL1

接晶振

VCC/VSS

电源

P3.0~P3.7

8位双向I/O口

WR/RD

片外数据存储

1.1.3 单片机最小系统

单片机最小系统是指用最少的元件组成的单片机可以工作的系统。单片机最小系统原理图如图1.4所示。对52系列单片机来说,最小系统一般应该包括:电源电路、时钟电路、复位电路[9];功能是对数据进行接收、转换和传输。选用5V电源作为系统的总电源,为单片机最小系统供电。在电源线插入电源接口之后,按下SW1,VCC接通电源线,整个系统通电运行。

图1.4 单片机最小系统原理图

复位电路:当复位后单片机就会从头开始执行程序,如果在单片机的执行程序过程中,触发了复位,则单片机会被强行重新开始执行程序。

本设计的复位有按键手动复位和上电复位两种方式。VCC首先经过一个10μF的电解电容,一方面接到单片机第9脚,另一方面经过一个10KΩ的限流电阻接地,电容的作用是隔绝直流电,通过交流电,VCC给电解电容充电的时间大于两个记忆周期,完成一次复位。按下按键K1,也可以完成一次复位。复位电路如图1.5所示。

图1.5 复位电路原理图

时钟电路:单片机处理任何事件都需要时序,时钟晶振电路为系统稳定运行提供保障。时钟电路原理图如图2.6所示,时钟电路主要是由两个部分构成,一个晶振以及两个电容使数字控制器上电以后可以正常工作。在图2.6中,起到稳定频率和快速起振作用的是电容C6和C7[14],电容值在5~30pF,典型值为30pF[20]。晶振CY1的两个管脚分别接单片机的第18、19脚。

图1.6 时钟电路原理图

1.2 射频识别模块

本设计的射频识别模块采用MFRC522非接触读卡器芯片实现读写卡功能[22]。读卡器的微控制单元选取的是TI单片机MSP430F149,该单片机功率损耗低,模式多种多样,反应速度也很快;它有60KB的闪存,2KB的RAM

由于STC89C52的SPI接口数量有限,所以MFRC522的接口模式选择通过软件模拟SPI模式。

射频识别模块采用SPI总线通信,共有8个管脚,VCC和GND占用了两个管脚,RST为复位,SDA为数据输出,SCK为同步时钟,MOSI为主输出从输入,MISO为主输入从输出[9]。因为这几个管脚与单片机相连时工作电压是3.3V,而单片机的工作电压为5V,所以要分别串联一个330Ω的电阻进行分压。

射频识别模块如图1.7所示。

因为RFID模块为3.3V电压供电,所以需要设计一个5V转3.3V的电路,如图2.8所示。Vin端接5V电源,GND端接地,Vout输出3.3V电压。

图1.8 转换电路

1.3 矩阵键盘模块

4矩阵键盘的作用是完成系统的输入密码与进入选项进行设置等。矩阵键盘电路如图1.9所示。因为如果选用独立式的按键,每一个键均需要使用一根I/O口线,当按键设置为4×4时[9],一共有16个按键,就需要16个I/O口,造成端口浪费的同时使得系统的电路结构趋于复杂,不利于整体的系统设计和具体实现。本设计使用4×4矩阵式键盘相对于独立式键盘来说,避免了按键的重复使用,明确了每个按键的作用,提高了I/O口的利用率,非常适用于本设计的使用。

P13、P12、P11、P10接横向,P14、P15、P16、P17接纵向,这样一个矩阵键盘就连接成功可以正常工作了。

图1.9 矩阵键盘电路原理图

1.4 液晶显示模块

1.4.1 液晶显示模块选择

根据本设计的要求,所选用的显示器要求有多种接口方式,程序编写和调试成功以后,需要在显示界面显示出想要表达的信息和内容。编写显示的程序之后,可以在显示屏上显示出特定的汉字或者图形。同时对工作电压和工作功率也是有要求的,要低于其它的显示器。最重要的一点是,显示器工作的电路设计和软件程序的编程设计要相对容易理解和操作一些。

方案1:使用LCD12864输出显示信息。LCD12864本质上是根据特定的规则排列起来的列阵组成的液晶显示器,分辨率为128×64,该点阵显示成本较低,LCD12864功率的损耗低,体积小,面积小,重量轻,可以显示的信息量大,显示领域广。

方案2:使用LCD1602输出显示信息。LCD1602可以把需要显示的信息输出呈现出来,这些呈现的信息可以供给实时的数据或结果,以便于获得系统的状况信息。但是其显示字体有大小限制,不能显示图形和曲线。

综上,相对于LCD1602来说,LCD12864功率的损耗低,功能多,显示信息量大,结合设计的需求,LCD12864最适合用来输出显示信息。

1.4.2 LCD12864模块设计

LCD12864为本设计的显示部分,12864表示该模块在水平方向和竖直方向上分别显示128和64个点[3],该显示屏用来显示密码正确与否,RFID卡是否为已注册卡,进入设置功能等。LCD12864的一个优点是接口种类比较繁多,加以相关的程序代码,就可以在这块显示屏上描述出用户想要表达的汉字和图形信息。

LCD12864是一个液晶显示屏,它带有20个管脚,有8个管脚是数据管脚,分别是DB0-DB7,DB0-DB7接单片机P0管脚;RS、RW、EN接单片机25、26、27管脚;V0用来调节对比度;液晶显示有两组VCC和GND,因为背景光的电源和液晶的电源是分开的,BLA和BLK是背景光的电源;PSB用来选择并口还是串口。其原理图如图1.10所示。

图1.10 液晶显示模块原理图

1.5 报警模块

1.5.1 蜂鸣器选择

本设计要求,系统统计连续输入错误密码的次数,如果超过三次,蜂鸣器就会发出持续的蜂鸣声,为了实现这一功能,需要选取一种程序控制方便的蜂鸣器。

方案一:有源蜂鸣器。有源蜂鸣器是一种将软件、硬件与通信技术组合在一起的电子蜂鸣器。它是一个有自己的振荡电路的蜂鸣器,只需要通过电平驱动发出鸣响。

方案二:无源蜂鸣器。无源蜂鸣器没有自己的震荡电路,所以不能通过直流信号发声,要想使其发声,需要用一个2K-5K方波来驱动[12]。相对于有源蜂鸣器的使用来说,要比较复杂。

综上,相比于无源蜂鸣器,对有源蜂鸣器进行控制和管理更加简洁方便,功能更多,所以最终选用带有震荡源的5V有源蜂鸣器来实现设计的报警功能。

1.5.2 报警模块设计

报警模块在输入错误密码连续累计达到三次时开始工作,工作原理为,蜂鸣器的A端接VCC,B端接一个PNP型的三极管,PNP三极管基极电平为低电平,三极管会导通,导通之后的三极管可以看成一条线[5],这时蜂鸣器的两端相当于分别接VCC和GND,蜂鸣器开始工作,发出连续的蜂鸣。

报警模块如图1.11所示。

图1.11 报警模块原理图

1.6 AT24C02存储模块

本设计采用AT24C02存储芯片作为存储设备,用来存储从读卡器读取来的RFID卡序列号。

AT24C02存储芯片一共有8个引脚,1、2、3、4管脚接地;表示只有一个AT24C02器件被总线寻找操作数或操作数所在地址,即被总线寻址; AT24C02的5管脚为串行数据输入输出,6管脚为串行时钟输入,这两个管脚与单片机连接,完成通信,在5、6管脚接上拉电阻,用以提高抗干扰能力;第7脚接地,意思是器件可以进行正常的一些操作,如读写操作;第8脚接电源VCC。

AT24C02存储模块原理图如图1.12所示。

图1.12 AT24C02原理图

AT24C02存储模块具体引脚对应功能如表1.13所示。

表1.13 AT24C02引脚功能表

引脚名称

功能

A0-A2

器件地址输入

SDA

串行数据输入输出

SCL

串行时钟输入

WP

写保护

VCC

电源

GND

1.7 继电器驱动模块

继电器驱动模块的作用是完成模拟开锁动作。继电器驱动模块原理图如图1.14所示。

继电器共有5个引脚,一个公共点,一个常开点,一个常闭点,剩下的两个角是线圈。R13为限流电阻,IN4007并联到线圈两端来提高负载能力。当P30为高电平时,三极管不导通,电路不工作,为关门状态,开锁指示灯D3不亮;当P30为低电平时,三极管导通,线圈的两脚分别接VCC和地,线圈导电,电路工作,继电器工作,开锁指示灯D3亮起,为开门状态。此时单片机的吸入电流同样也是很小的。三极管放大电流经过继电器。

图1.14 继电器驱动模块原理图

1.8 总电路图设计

本设计采用STC89C52单片机作为主控制器,包括LCD12864液晶显示电路、射频识别电路、报警电路、按键电路、继电器驱动电路以及电源电路[4]。本系统总电路原理图如附录1所示。

2 项目调试

2.1 电路焊接

(1)清理焊接点:清除电路板上的锈迹,除去附着在表面上的附着物,例如不必要的焊锡,并露出铜箔的颜色。清理掉电源线的外壳,用刀片轻轻刮蹭,直到露出铜色。

(2)电烙铁通电,等到电烙铁达到一个合适的温度,大概是260度左右时,将电烙铁接触焊锡,并在焊料熔化时立即进行焊接。此时,在电路板铜箔表面上的焊锡应该是半球形。

(3)将导线与焊锡一起放置,并迅速将烙铁放置在导线旁边,焊锡熔化附着在导线上,形成类似于火柴头的形状。

(4)这时导线和电路板铜箔上面均带有焊锡,把他们两个放在一起,利用电烙铁的温度,导线和电路板铜箔会连接在一起,这步焊接就完成了。

(5)注意事项:焊锡粗细不一,我们可以根据焊点的大小来选择。另外,电烙铁的温度也要保持不是特别高,不然松香挥发的快,温度过低也不可以,这样会导致焊接的不够牢固。

在焊接的过程中,将电路板对着原理图进行检查,发现出现了元件方向弄错的问题。解决方法是,对照电路图,确定好该元件的方向,使用吸锡器进行吸锡,把焊错的元件拆下来,重新焊接。

焊接完成后,发现LED指示灯不亮,使用万用表检测是否存在短路与断路等情况,在需要检测的元件或导线的两端分别用两支表笔连通,发现当检测到有些地方时表笔不响,说明电路有问题,接下来对有问题的地方重新焊接。

由于本设计的布线比较复杂,在焊接之前要细心地研究电路图,防止焊接位置错误。如果在焊接时焊锡不够用,加焊锡时要格外小心,因为如果加太多的话,用电烙铁继续焊接时就容易因为焊锡过多而不小心牵连到其它器件。如果遇到焊锡过多的问题,可以用电烙铁放在焊接处来回滑动,这样电烙铁就会将多余的焊锡带走,去除焊锡的另外一个方法是吸锡器,使用十分方便。焊接完毕后的实物图如图2.1所示。

图2.1 焊接实物图

2.2 系统程序调试

(1)首先在Keil μVision4软件中创建一个新的工程:单击菜单栏中的“工程”并为新工程命名,命名后进行保存;选择单片机型号为“STC89C52”;

(2)代码编写与保存:然后在新建的文本中编写本设计的源代码,编写完成之后,对文件进行保存,注意命名为“.c”文件[11],这样就完成了本设计代码的编写。在新建的空白文本中编写程序源代码,在编码完成后保存文件,文件拓展名“设计名称.c”,新文件创建完成;

(3)程序编译和调试:点击编译按键,让刚刚编写的代码运行,在下面的结果显示框中,可以看到运行是否正确与出现错误的地方[6],根据错误提示把代码修改成正确的,直到提示没有错误且实物功能均符合要求为止。

在编译程序的过程中,编译结果显示有两处错误,根据错误提示,发现在LCD12864初始化部分,源代码末尾没有加分号,加上分号之后,重新编译,结果没有错误。

还有一处错误是在连续三次输入错误密码,蜂鸣器报警部分,发现没有编写“BeepNum=10”,加上该部分代码后,重新编译,结果没有错误。

最后结果显示界面如图2.2所示。

图2.2 程序无错误显示图

2.3 实物调试

根据本设计预期实现功能,对实物进行调试

(1)LCD12864液晶显示屏显示刷卡是否成功与密码是否正确等状态;

(2)系统集成两种解锁方式:RFID卡解锁、密码解锁,在忘记带RFID卡时可通过密码进行解锁;

(3)刷卡之后,通过MFRC522读卡器可以读取到卡内的信息,信息匹配成功继电器吸合门锁打开,十秒左右会自动关闭门禁;如果匹配失败声光报警提醒;

(4)可以通过管理界面进行RFID卡的注册和注销,同时也可以进入管理界面,把原密码修改为新密码。

(5)4×4矩阵键盘定义,分别为数字键、进入管理键、切换上一项键、切换下一项键、退格键、确定键、返回上一级菜单键。

本设计的所有功能均能实现,实物如图2.3所示。

图2.3 设计实物图

总电路原理图

如果你有任何问题、需要建议或解决疑难,别客气噢,随时找我求助或寻求支持。我专注于单片机相关的知识,可以提供电子设计、嵌入式系统、编程和硬件方面的宝贵帮助。不管你的问题属于哪个领域,都可以向我咨询啦,获取有针对性的建议和指导。祝愿你在单片机设计领域取得巨大成功!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值