基于单片机的密码门禁系统设计091027Word下载.docx
- 文档编号:18817007
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:49
- 大小:1.15MB
基于单片机的密码门禁系统设计091027Word下载.docx
《基于单片机的密码门禁系统设计091027Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的密码门禁系统设计091027Word下载.docx(49页珍藏版)》请在冰豆网上搜索。
是一种管理人员进出的数字化管理系统。
随着技术的进步,门禁系统已逐渐由原来的门卫把守和钥匙开门,发展到现在的密码门禁管理系统。
常见的门禁系统有:
密码门禁系统,IC卡门禁系统,指纹识别门禁系统,磁卡门禁等。
随着这些锁的不断应用,它们的缺点就逐渐暴露出来:
磁卡门禁系统的信息容易复制,卡片与读卡机具之间磨损较大、故障率高、安全系数低,而且需要每人配备1张磁卡,不适合在办公场合和出入人较多的场合使用;
IC卡门禁系统同样由于需要每人配备1张IC卡,不适合在办公场合和出入人较多的场合使用;
指纹识别门禁系统安全性高,但由于成本高等问题而没有得到广泛的市场认同;
而密码门禁只需有指定密码就可以开门,如果使用密码开启门,代替传统的出入证和钥匙,就能使管理工作实现自动化、智能化。
不但用者方便,管理者也方便,而且工作效率和安全性都可以大大地提高。
密码门禁系统以其门禁管理的安全、可靠、高效、灵活、方便,已逐步取代其他现有各类门锁,成为目前门禁系统的主流方式之一,适合在办公室(非大门)使用。
门禁系统是现代化办公大楼和家居住房的重要组成部分。
许多生产安
防设备的大厂都有自己品牌的门禁系统,而且其中不乏一些优秀的国内产品。
这些产品拥有我们所需要的稳定性、可靠性,因此具有较大的市场前景。
本文介绍了密码门禁系统的设计与开发,详细分析了系统的硬件设计和软件设计,给出了电路原理图,以及主要程序设计的流程图和程序。
系统硬件由USB供电电路、晶振电路、数码管电路、键盘控制电路、人体红外热释传感器电路、继电器电路和蜂鸣器电路等几部分组成。
系统软件实现主要分为:
AT24C02存储器的读写,数码管显示,键盘扫描,工作模式及密码比较。
第二章设计总体方案
在掌握单片机原理及80C51汇编语言编程技术的基础上,基于89C52型单片机设计门禁系统。
本系统应具有以下功能。
1、系统具有对人体的红外线识别功能。
2、当有用户进入时,系统红外线模块把信息传达给系统,系统通过数码管提示用户选择进入模式和输入开门密码,密码最多可输入两次。
若输入密码正确,则通过继电器闭合,同时绿色发光二极管点亮表示开门,否则红色发光二极管点亮,蜂鸣器报警提示用户密码错误。
3、通过发光二极管和蜂鸣器给出报警信号。
4、其他辅助功能。
一、设计的基本要求
●设计密码数字显示、键盘输入及单片机最小系统。
●使用人体红外热释传感器检测是否有人进入服务区。
●系统具有三个运行模式:
等待模式、用户模式和管理模式。
●在没有输入密码时,关闭继电器,点亮红色LED。
●在用户模式下,输入正确密码,打开继电器点亮绿色LED。
●在管理模式下,输入正确密码,可以进行密码修改。
●输入密码错误达到两次,驱动蜂鸣器报警。
●使用AT24C02存储器保存密码,使得系统在断电情况下还能保存密码。
二、硬件电路的概述
本设计硬件主要可以分为七大部分:
●单片机最小系统
●数码管显示电路
●阵列键盘输入
●人体红外热释传感器驱动电路
●AT24C02存储器
●蜂鸣器驱动电路
●开关演示电路
图2.1系统硬件整体结构图
硬件设计思路是根据设计的基本要求,将电路分成各个模块进行设计,这样有助于设计的高效率进行,而且方便各个模块的检测、调试。
单片机是整个设计的核心处理部分,因此从单片机的最小系统开始着手设计。
接着,对数码管显示电路进行设计,结合单片机最小系统,可以检测这两个部分是否能正常工作。
之后,阵列键盘的设计,同样可以通过测试程序,对其电路进行测试。
开关延时电路、蜂鸣器等容易设计测试的电路设计。
最后,增加人体红外热释传感器的电路。
三、软件程序的概述
程序使用模块化的设计思想,这样便于程序的开发调试。
图2.2程序设计过程图
将程序分成多个模块设计,可提高设计的效率。
程序设计过程脉络清晰,即使某个模块出现错误,也能及时发现并纠正。
首先设计数码管程序,可以用于对单片机最小系统工作情况进行检查。
键盘程序可以借助数码管的实现来观察是否正确。
程序的各个模块逐步建立,最后整合成完整的系统。
第三章系统硬件设计
本系统硬件由USB供电电路、晶振电路、数码管电路、键盘控制电路、人体红外热释传感器电路、继电器电路和蜂鸣器电路等几部分组成。
系统整体电路图见图3.1。
图3.1系统整体电路图
一、STC89C52RC单片机
STC89C52RC是一种低功耗、高性能CMOS8位微控制器,具有8k在系统可编程Flash存储器。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
STC89C52引脚图见图3.2:
图3.2STC89C52引脚图
STC89C52提供了4个8位并行I/O口,其引脚功能如下:
●P0口:
即P0.0~P0.7(Pin39~Pin32),输入输出脚,可用于8位并行I/O口或分时复用为地址和数据总线。
P0口作为输出口时,每个引脚负载8个TTL;
在外扩存储器时,可定义为低8位地址/数据线;
定义为I/O口时,需外接上拉电阻,为准双向I/O,在程序中向该端口写入“1”后,成为高阻抗输入口;
在对片内Flash编程时,P0口可以接受字节代码,在程序校验时输出字节代码,程序校验期间应外接上上拉电阻。
●P1口:
即P1.0~P1.7(pin1~Pin8),输入输出脚,8位准双向并行I/O口。
P1口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL;
在Flash编程和校验时,定义为低8位地址线。
和基本的8051不同的是,其部分引脚具有第二功能。
引脚P1.0是定时/计数器T2的外部计数输入,引脚P1.1表示定时/计数器T2捕获/再装入触发及方向控制,引脚P1.5(MOSI)、P1.6(MISO)和P1.7(SCK)用于系统内部编程。
●P2口:
即P2.0~P2.7(pin21~Pin28),输入输出脚,8位准双向并行I/O口。
P2口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL;
当访问外部存储器时,定义为高8位地址线。
●P3口:
即P3.0~P3.7(pin10~Pin17),输入输出脚,8位准双向并行I/O口。
P3口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL。
引脚P3.0(RXD)和引脚P3.1(TXD)用于串行数据传输,分别为串行数据的接收和发送端口;
引脚P3.2和引脚P3.3位外部中断请求,
●分别用于
和
的中断输入;
引脚P3.4(T0)和引脚P3.5(T1),分别为定时器/计数器0和定时器/计数器1的外部计数输入端;
引脚P3.6(
)和引脚P3.7(
)用于读写单片机外部RAM,分别是外部数据写选通信号和读选通信号。
●RST(Pin9)——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
●ALE/
(Pin30):
ALE为地址锁存使能端和编程脉冲输入端。
二、USB供电电路
本设计中选用USB直接供电,将电脑的USB直接连接为设计的硬件电路提供+5V的稳定电压。
USB的最大额定电流为500mA,足以满足本设计的要求。
在设计的时候,需要注意电路不能出现短路,以免损坏电脑的USB接口。
USB母接口见图3.3:
图3.3USB母接口图
三、晶振电路
本系统采用12M晶振,晶振接到单片机的XTAL1、XTAL2引脚处。
电路上的晶振旁有两个无极性电容,容量为33P。
这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮发,它会影响到晶振的谐振频率和输出幅度。
晶振电路如图3.4所示:
图3.4晶振电路图
四、数码管电路
数码管由7段LED组成,因此可以称为七段数码管。
将这七个LED按一定规律点亮,就能够显示数字0~9,以及英文字母A、B、C、D、E、F。
而现在的数码管都有带有小数点(DP),实际上数码管就变成8段了。
显示二进制、十进制数、十六进制数,小数都不是问题,加上数码管的价格优势以及功耗甚低,深受广大设计者的欢迎。
数码管电路图见图3.5:
图3.5数码管电路图
五、键盘控制电路
键盘作为用户控制系统的重要桥梁。
使用阵列式键盘,可以有效的节约单片机的IO口。
使用8个IO口就可以组成4*4阵列式键盘,这样总共有16个按键。
键盘按键说明:
●0~9数字输入键,用于密码的输入。
●密码输入输入后通过“确认”键加以确认。
●要对输入且在确认前的密码进行修改,可使用“后退”键后退一位,或者“重置键”重新输入。
●模式切换可以用“管理”和“用户”两键。
而“退出”键,则可以从各个状态退到等待模式。
键盘控制电路以及按键说明见图3.6:
图3.6键盘控制电路以及按键说明图
六、人体红外热释传感器电路
图3.7人体红外热释传感器模块
人体红外热释传感器基于红外线技术的自动控制产品,当有人进入开关感应范围时,专用传感器探测到人体红外光谱的变化,自动输出高电平,人不离开感应范围,将持续输出高电平;
人离开后,开关延时自动关闭负载。
灵敏度高,可靠性强,广泛应用于各类自动感应电器设备。
●延时时间:
零点几秒至30分钟
●超低功耗:
开关自身功耗<
0.00005W
●宽电压设计:
4.5V-20VDC
电气参数:
感应方式
被动式
工作电压
感应原理
移动感应
最大功耗
<
感应距离
8米
输出方式
高电平/低电平
感应角度
140度圆锥角
环境温度
-20℃—+50℃
光控感应
5LUX-500LUX(可调)(标准无光控功能)
设计中使用9013(NPN)三极管,集电极通过10K电阻连接到电源正极(VCC),发射极直接接地(GND),基极通过2.2K电阻连接到模块的信号输出端。
三极管的集电极连接到单片机的P3.6口。
当模块输出低电平时,三极管导通,P3.6为低电平。
当模块输出高电平时,三极管截止,P3.6为高电平。
人体红外热释传感器电路见图3.8:
图3.8人体红外热释传感器电路
七、AT24C02存储器电路
本设计有密码掉电保护功能,提供此功能得益于AT24C02这款EEPROM存储器。
AT24C02是由ATMEL公司提供的,I2C总线串行EEPROM,其容量为2KB,工作电压在1.8V~5.5V之间,生产工艺是CMOS工艺。
在掉电的情况下,数据仍然能保存下来,就像我们电脑上的硬盘。
AT24C02引脚见图3.9:
图3.9AT24C02引脚
各引脚功能如下:
●A2~A0:
这3个引脚是器件地址选择引脚。
将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片。
●SDA:
串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可以将多片24系列的SDA引脚直接相连,实际使用时该引脚必须接一个5.1k的上拉电阻。
●SCL:
串行移位时钟控制端。
写入时上升沿起作用,读出时下降沿起作用。
●WAP:
硬件写保护控制引脚。
当其为低电平时,正常写操作,高电平时,对EEPROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。
●GND:
接地。
●VCC:
接+5V电压。
因为单片机里面的P1口内建上拉电阻,为了减少电路设计的成本,将AT24C02的SDA及SCL两个引脚接到单片机的P10和P11引脚。
AT24C02硬件连接见图3.10:
图3.10AT24C02硬件连接图
第四章系统软件设计
本系统采用keiluvision2编写和调试程序和通过EASY51ProV3.0将程序烧录到CPU里面。
Keil软件是目前最流行开发MCS-51系列单片机的软件,绝大部分仿真机都支持Keil。
Keil提供了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等功能,通过一个集成开发环境(uVision)将这些部份组合在一起,通过这些功能,可以很方便的编写调试C程序,多数语句生成的汇编代码很紧凑,容易理解。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
uVision是C51forWindows的集成开发环境,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
通过uVision编辑C文件,然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,然后将89C52CPU与单片机仿真器相连,通过EASY51ProV3.0将程序烧录到CPU里面。
一、程序的整体流程图
图4.1程序控制流程图
程序的各个模块建立后,将其按照整体设计思路的流程整合在一起,通过各个模块的协调工作得到完整的系统功能。
系统上电后,读取AT24C02中的预设密码,随之进入主循环。
主循环中有三种模式的选择,系统默认开始模式为等待模式。
此时,数码管为循环移动。
可以按模式切换键,进入用户模式或管理模式。
在进行相应操作
前,必须输入正确的密码。
否则,超过2次错误输入,系统报警并返回等待模式。
二、数码管驱动程序
系统使用四位数码管作为密码和工作状况的显示。
数码可以分为动态和静态的显示。
如果使用静态显示,四位数码管就需要占用8*4=32个IO口,显然这是不科学的方法。
因此,动态的数码管显示得到很好的使用。
动态显示分为段选和位选的控制,当某位数码管被选中时,段值就为该位需显示数值的字型码,之后为下一位的显示。
这样多位数码管在某一时刻只有一位被点亮,在刷新频率足够高,一般为25HZ以上,人眼就错觉成各位数码管同时被点亮。
由于系统中使用的是共阳数码管,其各个字形码见表4.1:
表4.1数码管字形码
显示字型
h
g
f
e
d
c
b
a
共阳极字形码
1
0xC0
0xF9
2
0xA4
3
0xB0
4
0x99
5
0x92
6
0x82
7
0xF8
8
0x80
9
0x90
A
0x88
0x83
C
0xC6
0xA1
E
0x86
F
0x8E
有了字形码表,我们就可以让数码管显示需要的数字或者字母了。
系统中数码管的段选引脚是接到单片机的P0口,因此将字形码送到单片机的P0口,并且将位选置低电平即可显示。
需要注意的是,当显示某位时,其他位选端应置高电平,并且在位选切换之间加上适当的延时。
三、键盘扫描及功能程序
阵列键盘又可以称为矩阵键盘,因为每个键可以分成行和列两端接入。
P2.0~P2.3为行,P2.4~P2.7为列。
开始将整个P2口电平至高,接着依次对某一行置低电平。
同时,列端口读取按键引脚的电平,如果某位为低电平,则可以判断那个按键被按下。
由于单片机的运行速度很快,人轻轻按一下按键,单片机可能经过多次扫描。
因此,我可以需要加上一个适当的延时作为按键的消抖功能。
四、AT24C02存储器
(一)I2C总线的介绍
AT24C02是一款基于I2C总线数据传输的器件,因此这里有必要对I2C总线的原理进行初步的了解。
I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号
分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;
控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:
开始信号、结束信号和应答信号。
●开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
●结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
●应答信号:
接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。
CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
若未收到应答信号,由判断为受控单元出现故障。
具体程序如下:
//起始条件,存储器的通讯起始
voidStart(void)
{
SDA=1;
SCL=1;
_nop_();
SDA=0;
}
//停止条件,存储器的通讯停止
voidStop(void)
_nop_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 密码 门禁 系统 设计 091027