毕 业 论 文
学生姓名 学
院
盛伟斌
学 号
171207024
物理与电子电气工程学院
电子信息工程
基于单片机的门禁系统的设计
专 业 题 目
指导教师 葛恒清 副教授/硕士
2012 年 5 月
摘要: 智能门禁系统是一种现代化的控制人员的出入以及控制人员在楼内及敏感区域的行为并准确记录和统计管理数据的数字化出入控制系统。它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。本文完整的描述了以AT89C52为核心的单片机控制方案来实现智能门禁系统的设计与实现,通过软件与硬件的结合,使智能门禁系统完成开锁、修改密码、报警等等一系列的功能。
关键词:智能门禁、A T89C52
Abstract: Intelligent entrance guard system is a kind of modern control access and control personnel and the behavior of the sensitive area inside the building management and accurate records and statistics of the digital access control system. It combines the microcomputer automatic identification technology and modern safety management measures, it involves the electronic, mechanical, optical, computer technology, communication technology, biotechnology, and many other new technologies. It is solve important gateway to realize the effective safety management measures. In this paper, a complete description of the AT89C52 as the core of single chip computer control scheme to realize the intelligent entrance guard system design and implementation, through the combination of software and hardware, the intelligent entrance guard system to complete the unlock, change passwords, and so on a series of alarm function.
Key words: Intelligence、AT89C52
目录
第一章 绪论......................................................................................... 4 1.1 课题背景................................................................................. 4 1.2 最新发展................................................................................. 4 1.3 国内外的研究现状................................................................. 5 第二章 系统总体设计和主要芯片介绍............................................. 5
2.1 系统总体设计......................................................................... 5 2.2 主要芯片介绍......................................................................... 6 第三章 系统硬件电路构成 ............................................................... 7 3.1 最小系统设计……………………………………………… 7 3.2 各单元电路原理 ………………………………………...... 8 第四章 软件的设计与实现 ………………………………………... 12 4.1 软件设计思路 …………………………………………….. 12 4.2 射频模块软件体系结构 ………………………………….. 12 4.3 子程序分析 ……………………………………………….. 13 第五章 结束语 ................................................... ………………... …. 17
致 谢 ........................................................................................ 18
1绪论
门禁系统是时代快速发展的产物,是信息领域中的新兴产业。最早的传统门锁只是简
单的机械原理的运用,是纯粹的机械装置。虽然在数代人的努力下不断的改良,其安全性不断提高,但还是可以通过暴力等非正常手段拆除,安全性较低。随着时代的进步,人们对安全性的要求不度提高,简单的机械锁已经满足不了人们的需求,门禁系统便应运而生。 智能门禁系统如今被广泛的应用,每一个人的生活都或多或少离不开它。作为一个新型智能的安全控制系统,它融合了机械电子、计算机软件编程、无线通信技术等诸多技术,已经能很好地解决重要区域出入口通道在安全上的问题。智能门禁系统被应用在各种对安全要求较高的区域,如酒店房间、公司数据库中心机房、各大银行、国家军火库、数据库中心、居民小区、工厂等等。在科技与网络快速发展的今天,新型智能门禁技术也应运而生,得到了人们的青睐。现在,门禁系统的概念也发生了变化,早已不是简单的门锁和钥匙,在人们不断地补充和完善下,它已经逐渐发展成熟,成为一套稳定性和安全性较高的控制管理系统。如今只要在对工作生活的环境安全有要求和公司需要人事考勤管理等这些地方,智能门禁系统就发挥着不容忽视的作用。
智能门禁系统应用比较广泛,只要在此基础上添加一些相应的其他设备,就可以达到对电梯出入控制、停车场车辆进出控制、图书馆书籍借阅管理等,真正的实现便捷的智能管理。
门禁系统又称出入管理控制系统(ACCESS CONTROL SYSTEM) ,它是用来管理重要出入口通道人员出入控制的系统。也就是说:我们可以控制人员什么时候允许进出那些门或者场所,同时如果需要,也可以提供进出的查询记录等等。目前市面上常见的门禁系统有很多:非接触感应卡式系统,指纹识别系统,虹膜扫描系统,面部识别系统,语音识别系统等各种技术的系统。它们有各自的特长,门禁系统的应用领域也越来越广。感应卡式门禁系统使用场合比较多,但是安全性相对其他门禁系统要低很多。
小区智能门禁系统是用来管理住宅小区出入通道保证居民正常生活的系统。如今的开发商为了更好的吸引买房者,也越来越重视小区的管理,为了防止不是小区的人员闯入,保证小区居民生命财产安全,于是在小区的入口就会设置一个门禁系统,要想进入小区就必须刷卡。而在这之前我们大多都是使用一般传统的门锁,也就是一把钥匙一把锁,然而传统的门锁结构相对比较简单,无论门锁结构多么复杂,使用的材料多么坚固,一些人总能通过各种方法把它打开。而且在一些出入口人员流量比较大的通道如小区门口、酒店客房。如果使用传统的门锁,应用起来会特别麻烦。俗话说一把钥匙开一把锁,一旦钥匙丢失,为了保证安全,原来的锁和钥匙就就需要更换,并且传统的门锁在安全系数上比较低。随
着人们对安全需求方面越来越关心,为了解决这些问题、开发市场,于是各种磁卡锁、密码锁等电子锁就应运而生。也正是由于这些电子锁的出现,在那些重要出入口通道上的管理上人们又有了进一步的提高和加强,因此也使智能门禁控制管理进入了新的时代。但是凡事有好的一面也有它不好的一面,随着这两种电子锁的在各个领域应用的越来越多,它的问题也逐渐显现出来,这种电子磁卡锁的信息不是很安全,容易被其他人复制,同时随着使用的时间的不断增长,这必将导致卡片与读卡器具之间磨损也会随着逐渐变大,仪器的故障率也会增高。而电子密码锁同样存在信息泄露上的问题,一旦密码泄露,那么追查起来不容易,也没那么安全。尽管有很多缺点,但是我们相信在不远的将来,在人类的努力和拼搏下,门禁系统将会越来越智能化,以前的种种缺点将会被解决,取而代之是更便捷、更安全、更人性化的特点,因此我们的生活环境也将变得更加的安全。让我们期待美好的明天。
1.1课题背景
社会的发展,生产力的提高,使人们有了富余的资产。为了防止钱财被他人盗窃,为了维护自己的安全,人们开始用锁来保护自身的生命与财产。而随着科技的日益进步,城市面貌出现的巨大的改变,各种高科技犯罪也随之出现,仅靠传统的门锁已无法满足人们的需求了,智能门禁系统便在这种情况下诞生。
从古至今,人们都养成使用简单的门锁来防止他们的财产被盗,同时也是防止一些人员在不被允许的情况下进出房间等私密场所,这种简单的方法一直延续了上千年。然而普通的门锁却始终离不开钥匙,一把钥匙开一把锁的定理持续了很久,但是现如今人们生活中需要加锁的地方变得越来越多,使用传统的门锁就会导致自己需要随身携带很多把钥匙,但是钥匙一旦多了就会带来很多不便。如果我们每天都需要携带很多钥匙,就会很容易弄混、丢失或者被盗,所以安全性和便捷性很差。如今,伴随着科技高速发展,传统的门锁早已经不能满足现在人们对生命财产安全方面的需求,为了从根本上改变这种局面,于是智能门禁系统就孕育,它集成了机械、电子、光学、生物识别技术、计算机技术和通信技术等多种新技术,它也是新时代很优秀的产物。
1.2最新发展
近年来,随着智能卡、生物识别、无线门禁等技术的发展,门禁系统发展迅猛,进入了成熟期,手机一卡通、指纹门禁、人脸门禁、无线门禁等产品开始走进大众,它们在安全性、便捷性等方面都各有特长,门禁系统的应用领域也越来越广,技术发展也越来越全
面。
无线门禁产品从诞生到现在,经过技术的不断演化已经出现了通过FSK 、GPRS 、蓝牙等方式传输的产品。而随着物联网技术的兴起,物联网门禁产品受到了安防行业内的普遍关注,无线物联网门禁系统可以直接替换现有的有线联网或非联网门禁系统。对于办公楼宇系统,应用无线物联网门禁能明显降低施工工作量,降低使用成本;对于宾馆系统,无线物联网门禁能提升门禁的智能化水平。
随着生物识别产品的不断问世,其在门禁系统的应用也必将会越来越多,生物识别产品的高安全性和非易失等特性正在被越来越多的用户所认同。在不久的将来,生物识别产品必将会成为门禁系统前端识别设备的强大力量,在安防领域也必将会发挥越来越大的作用。
1.3国内外的研究现状
现如今科技飞速发展进步,智能门禁系统已进化为一套较为安全、功能性完善的控制管理系统。它对通道和出入口的管理已经不是以前简单的钥匙和锁的管理,它能够对内部进行有效的智能化管理。它不仅能够时时刻刻记录人员的进出时间与进出情况,限制人员的出入范围,而且也可以很好的拒绝非法人物进入。同时,它也能够有效的保护人们的生命财产不受到他人的侵犯。门禁管理系统在安全防范系统中扮演着很重要的角色,在当今社会下,门禁系统发展的很迅速,已经被广泛的应用在了办公室,智能大厦,宾馆,智能小区等各种大门、房间、通道的管理。如今社会,房地产发展如日中天,小区门禁系统也随之成为小区住宅楼不可缺少的安全配套设施,它很好的保护住户的人身和财产安全。目前,现在对智能门禁系统的研究从开始的认知教育和试用阶段,进入到了研发阶段。但仍然在智能门禁系统的设计和研发上发现一些问题,比如说:对国外已有的门禁系统进行仿造;普遍采用国外现有的集成模块,如门禁控制器,识别和读卡模块等;产品的形式较为单一,而且消耗了大量的资金。
在技术层面,当前中国有很多企业模仿国外的门禁系统,目前的做法主要有两种,一种是采购国外厂家生产的系统零部件,比如读写器、门控器等,然后对这些芯片进行二次软硬件的设计。这种系列的系统性能相对较好,满足那种对安全要求较高的场所也是完全可以应付的,因此这种系统价格也相对比较昂贵。另外一种是只是购买国外的核心芯片,对国外一些其它优良部件进行研究和仿制。这种方法依据不同情况,可以作非原则性的变动,能够随时满足人们对门禁系统上的一些合理性要求,并且费用比较少。从门禁系统的内部结构出发就容易看出,国内大多数的系统是以控制器为核心研制的,而门控器部分则
是由国外厂家进行开发。目前国内先进的智能门禁系统的研发正处于滞后状态,不过我们相信在未来,我国科技人才一定能够研发出完全属于我们自己的智能门禁系统. 。
2 系统总体设计和主要芯片介绍 2.1 系统总体设计
本课题设计采用AT89C51微控制器作为系统的核心,在外围增加按键电路、蜂鸣器电路、开锁指示灯电路、电机驱动电路以及1602LCD 显示电路等。门禁系统主要由CPU 、电源指示、开锁指示电路、振荡电路、蜂鸣器电路、设置按键电路、电机驱动模块、24C02存储模块、RC522读卡模块、LCD 显示模块等组成。此智能门禁系统能实现当射频卡刷卡时,显示模块显示卡号信息,如此卡为合法卡,指示灯点亮,蜂鸣器响起,同时驱动电路将电机转动表示门锁打开。程序中还增加了射频卡权限的赋予,遇到合法卡时,电机转动,门锁打开,如果想收回权限,只要在刷卡的时候按下取消按钮,那么这张卡就变成非法卡,无法打开驱动电机转动将门锁打开。而当非法卡刷卡时,显示卡号但电机不转动门锁不打开,如果赋予这张卡权限,只要在刷卡的时候,按下存储按钮,这张卡就会变成合法卡,就能是电机转动,打开门锁。
2.2 主要芯片介绍
RFID (射频识别)技术:是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。无线电的信号是通过调成无线电频率的电磁场,把数据从附着在物品上的标签上传送出去,以自动辨识与追踪该物品。某些标签在识别时从识别器发出的电磁场中就可以得到能量,并不需要电池;也有标签本身拥有电源,并可以主动发出无线电波(调成无线电频率的电磁场)。标签包含了电子存储的信息,数米之内都可以识别。与条形码不同的是,射频标签不需要处在识别器视线之内,也可以嵌入被追踪物体之内。
CPU 的选择:在这个课题的设计上,选择了51单片机系统,因为单片机发展成熟且完善,此次设计功能上不是特别复杂,也没有复杂的运算,只有几个外接电路,况且单片机的成本较低,而且功能也完全可以满足此次课题设计。虽然DSP 和ARM 系统在功能和拓展上都比51单片机系统要高,但是它们价格都相对昂贵,而且对于本次课题设计而言,性能也有过剩。因此,结合自己所学的知识和性价比,经过比较最终选择了技术成熟、价格便宜、设计简单、使用方便的单片机平台。
射频卡的选择:非接触式IC 卡又称射频卡,由IC 芯片、感应天线组成,封装在一个标准的PVC 卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技
术, 它成功的将射频识别技术和IC 卡技术结合起来, 结束了无源(卡中无电源) 和免接触这一难题, 是电子器件领域的一大突破. 卡片在一定距离范围(通常为5—10mm )靠近读写器表面,通过无线电波的传递来完成数据的读写操作。条码和磁卡,我们见的比较多,现如今超市和银行使用的都是这种卡,个人的银行卡都是磁卡。接触式IC 卡,大家过去见的比较多,就是要用公共电话拨电话时使用的卡片(然而随着手机的普及,公共电话也早已退出人们的视野),但接触式IC 卡,芯片外露易坏、易折。而非接触式IC 卡也就是无线射频卡,由于它的芯片和线圈都设计在卡片内,和接触式IC 卡相比,前者比较牢固不易被损坏、能适应恶劣的环境,可靠性很高,所以市面上普遍使用这种卡。根据上面的分析,最终选择目前被广泛应用的,而且成本不高可靠性好的IC 卡,也就是市面上较多的MIFARE S50卡。
3 系统硬件电路构成 3.1 最小系统设计
智能门禁系统采用的是STC89C52 微控制器作为控制核心,这款单片机是由STC 公司研发的,是一种低功耗、高性能CMOS8位微控制器。内部含有8K 字节的Flash ,512字节的RAM , 32 位的I/O口线,看门狗定时器,4KB EEPROM和MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级
中断结构),全双工串行口。可以看出89C52单片机功能还是很强大的,完成此次课题设计也是措措有余。根据这款单片机的特点,然后结合本次课题设计的要求,控制核心需要实现下面的几个功能:
(1) 接收读卡模块发送过来的数据,并进行处理。 (2) 控制电机转动和蜂鸣器。 (3) 控制1602LCD 输出显示。 (4) 处理键盘反馈的数据。
VCC P0.1/AD0 P0.2/AD1 P0.3/AD2
89C52 单片机引脚,如图3-1:
P0.4/AD3 P0.5/AD4 P0.6/AD5 P0.7/AD6 P0.8/AD7 EA
ALE/PROG PSEN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8
在89C52单片机的基础上,STC89C52微控制器作为系统的核心,在外围增加按键电路、蜂鸣器电路、开锁指示灯电路、电机驱动电路以及1602LCD 显示电路等。构成了智能门禁系统的控制电路。 如图3-2,P0.0到P0.7连接上拉排阻,同时接1602数据总线,1脚接VCC ,加上拉电阻增加电流。9管脚接复位电路;X
1和X2接晶振电路。P22管脚接蜂鸣器电路;与P31和P32连接的分别为取消和存储按钮;P13、14、15、16连接RC522读卡模组;P23管脚接电机驱动模组。
3.2 各单元电路原理 3.2.1 蜂鸣器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H ”或“HA ”(旧标准用“FM ”、“ZZG ”、“LB ”、“JD ”等)表示。
单片机通过P2.2来控制蜂鸣器的工作与关闭,通过三极管放大电流使蜂鸣器发出响声。 当P2.2=1时,PNP 三极管关闭,蜂鸣器停止工作。 当P2.2=0时,PNP 三级管导通,蜂鸣器开始工作。 从而单片机只需要P2.2输出0或者1开关控制蜂鸣器即可。 功能说明: (1) 刷卡时,蜂鸣器响起,二极管被点亮说明此卡为有效卡。 (2) 刷卡时,蜂鸣器没有响应,二极管也没反应,说明此卡为无效卡。 (3) 没有卡时,蜂鸣器没有响应,二极管也不会点亮。
3.2.2 显示模块
课题的显示部分选择采用1602LCD 液晶显示,该方案具有低压、功耗低,平板型结构、所能显示的信息比较多、没有电磁辐射、而且使用寿命长等优点。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD 是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。这些字符包括常见的阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符对都应着一个唯一的编号,也就是一个特定的代码。
3.2.3 读卡模块
此次课题设计上采用了市面上比较普遍的RC522读卡模组。RC522感应式读卡器主要是非接触式晶片的读卡模组,市面上使用的125KHz 非接触式RFID 晶片或者与其它规格较为类似的产品,它都可以进行信息的读取与数据的判断,开发者可以一次性开发感应
式读卡以及相关应用系统,RC522模块主要应用有:公交一卡通、智能门禁管理系统、人员签到管理、动物或物品辨识及产品管理。 此读卡模组主要具有如下优点:
(1) 系统有较高的独立性,二次开发比较容易,安装较为简单 (2) 对卡片的信息读取稳定性好
(3) 系统有较高的安全性,RFID 信息不重复,而且难以被复制 (4) 可自主选择数据输出格式
缺点: 主机必须24小时开机,否则数据传送会中断。
使用RC522读卡模块,在5-7cm 距离内读取时间不超过70ms 。非接触式读卡系统电源为5V ,系统中最重要的部分是感应线圈,它既可以与系统分开,也可以囊括在系统中,注意要将金属板放在线圈前面,这是为了防止电磁场造成干扰。
3.2.4 电机驱动模块
工作原理:本次智能门禁系统设计用电机转动来模拟开门效果,当卡片靠近读卡模块时,若识别为有效卡,那么指示灯将会亮起,蜂鸣器发出声音,电机转动。如果此时按下取消按钮,那么这张卡下次刷卡时,系统不做反应,也就是不打开门锁。若为无效卡时系统不做反应,此时按下存储按钮,待这张卡下次刷卡时,系统将会判定为有效卡,指示灯亮起,蜂鸣器发出声音,电机转动。 为了让电机能正常运行,并且系统有两个5V 电源,其中一个为电机驱动模块供电。驱动电路主要采用市场上普遍被应用的驱动芯片L9110H ,有它来驱动电机转动模拟开锁效果,L9110H 为一块集成电路、高电流、高电压、四通道驱动,它的额定工作电流为1A ,最大可达1.5A ,所以采用单独电源供电,VSS 电压最小4.5V ,最大可达36V ,可直接的对电机进行控制,无需隔离电路。L9110H 从主控单片机STC89C52那里接受指令直接控制电机的工作状态。可以对电机进行正反转,停止的操作,非常方便。L9910有8个管脚,2和3号管脚同时接VCC ,5和8号管脚同时接GND 。1号、6号管脚分别为A 路输出管脚和A 路输入管脚,4号、7号管脚分别为B 路输出管脚和B 路输入管脚。 为了达到效果,本次课题设计使用L9110驱动模块来驱动电机转动。
3.2.6 存储模块
为了实现对卡片权限的设置,就需要用一个芯片存储卡片的信息,在本次设计中使用24C02存储芯片,AT24C02是2K 位CMOS E2PROM串行电可擦除只读存储器,内部组织为256个字节,每个字节8位。该器件通过IIC 总线接口进行操作,有一个专门的写保护功能。
管脚配置:24C02与单片机的接口非常简单,如图3-10:
图3-10 24C02管脚图
管脚描述:
SCL 管脚:实现串行时钟的功能,它是一个输入管脚,与单片机的P21号管脚相连。SCL 串行时钟输入管脚实现发送和接收器件产生的数据的时钟的功能。
SDA 串行数据/地址:AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR )。
A0、A1、A2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个
AT24C02
被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss ,如果只有一个AT24C01被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss 。
如图3-11 为存储模块原理图:
4 软件的设计与实现 4.1 软件设计思路
软件设计上,根据功能分了几个模块编程,包括主程序模块、读卡模块、显示模块,存储模块、延时子程序模块和中断子程序模块等。系统工作时当卡片靠近读卡模块时指示灯亮起,屏幕显示卡片信息,然后程序判断权限,若合法,开锁模块程序点亮指示灯,蜂鸣器发出警报,电机转动模拟门锁打开。若非合法卡,是否赋予权限,如果赋予权限电机转动,指示灯亮起,蜂鸣器发出警报,如果不赋予则返回。
4.2 射频模块软件体系结构
#define RF_LPCTL BIT3 P2.3 射频卡休眠控制---RST #define RF_SS #define RF_SCLK
BIT7 p2.7 射频卡从机选择(SS)---SDA BIT6 p2.6 射频卡数据时钟输出(SCLK)
#define RF_DATA_OUT BIT5 p2.5 射频卡数据输出(MOSI) #define RF_DATA_IN
BIT1 p2.1 射频模块输入(MISO)
需要完成4个步骤:寻卡→防冲撞处理→选卡→读卡/写卡,就能完成对模块内部的数据块进行读写。 第一步:寻卡
status2=PcdRequest(0x52,Temp); if(status2== MI_OK)
寻卡 参数Temp 为返回的卡类型
{
tochar(Temp[0]); tochar(Temp[1]); }
比如,当Temp[0]=04,Temp[1]=00时,卡类型为S50。
第二步:防冲撞处理 status2= PcdAnticoll(UID); if(status2==MI_OK) {
PutString0("Card Id is:"); tochar(UID[0]); tochar(UID[1]); tochar(UID[2]); tochar(UID[3]); }
第三步:选卡。
status2= PcdSelect(UID); 选择卡片,输入卡片序列号,4字节 第四步:在读写卡之前需要先进行认证。
status2= PcdAuthState(PICC_AUTHENT1A, 1, Password_Buffer, UID);
其中四个参数分别代表:验证A 密钥+块地址+扇区密码+卡序号。
然后进行写操作:
status2=PcdWrite(1,writeData);
写数据,将数组writeData 中的数写入到卡 中,其中第一个参数1代表写入的地址为块1,或者进行读卡操作:
status2 = PcdRead(1, str);
读卡 其中第一个参数1代表读的地址为块1,读卡后得到的数据存放于数组str 中。
输出卡片序列号
防冲撞处理,输出卡片序列号,4字节
输出卡类型
4.3 子程序分析 4.3.1 RC522读卡程序
定义端口:
sbit MF522_RST = P1^7; sbit MF522_SO = P1^6; sbit MF522_SI = P1^5; sbit MF522_SCK = P1^4; sbit MF522_NSS = P1^3; 参数说明: req_code[IN]: 寻卡方式
0x52 = 寻感应区内所有符合14443A 标准的卡 0x26 = 寻未进入休眠状态的卡 pTagType[OUT]:卡片类型代码 0x4400 = Mifare_UltraLight 0x0400 = Mifare_One(S50) 0x0200 = Mifare_One(S70) 0x0800 = Mifare_Pro(X) 0x4403 = Mifare_DESFire 返 回: 成功返回MI_OK 防冲撞函数:
参数说明: pSnr[OUT]:卡片序列号,4字节 返 回: 成功返回
char PcdAnticoll(unsigned char *pSnr) { char status;
unsigned char i,snr_check=0; unsigned int unLen;
unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08); WriteRawRC(BitFramingReg,0x00); ClearBitMask(CollReg,0x80);
复位信号 SPI 接口主入从出 SPI 接口主出从入 时钟接口
应该是SDA 接口 寻卡函数:
ucComMF522Buf[0] = PICC_ANTICOLL1; ucComMF522Buf[1] = 0x20; status = MI_OK }
4.3.2 24C02存储程序
bit Write_more_byte(uchar add,uchar number,uchar *p)number { bit val; uchar i=0; IIc_init(); IIc_start();
val = IIc_write_byte(Address_24C02);
while(val==0) {
if(i++==10)
return(0); delay(1); IIc_start();
val = IIc_write_byte(Address_24C02);
}
IIc_write_byte(add); for(i=0;number>0;number--)
{ IIc_write_byte(*p++); }
IIc_stop();
return(1);
表示要写入字节的个数.
写器件地址
等待超时(10ms) 等待一会 重新发送 写器件地址
写存储的地址
写存储的数据 如果在发送停止信号之前主器件发送超过P+1个字节, 地址计数器将自动翻转, 先前写入的数据被覆盖.
}
void read_more_byte(uchar add,uchar number,uchar *p)//number
表示要读取的字节个数,读取的数据保存在*p中。
{
bit val=0; IIc_init(); IIc_start();
val = IIc_write_byte(Address_24C02); while(val==0)
写器件地址
器件没有应答 可能是内部编程/擦除周期
{
delay(1); IIc_start(); val=IIc_write_byte(Address_24C02); }
IIc_write_byte(add); IIc_start();
IIc_write_byte(Address_24C02+1); 写器件地址(读) for(;number>1;number--) {
*p++=IIc_read_byte(1); }
*p = IIc_read_byte(0); 读最后一个数据主机不应答 IIc_stop(); }
写存储的地址
等待一会 重新发送 写器件地址
4.3.3 显示程序
定义端口: sbit RW = P1^1;
R /W为读写信号线,与P1.1端口连接,高电平(1)时进行读操作,低电平(0)时进行写操作,
sbit RS = P1^0;
R S 为寄存器选择,与P1.0端口连接,高电平(1)时
选择数据寄存器、低电平(0)时选择指令寄存器。
sbit EN = P1^2;
E N 为使能端,与P1.2连接,写操作时,下降沿使能。读操作时,E 高电平有效。
初始化函数: void LCD_Init(void) {
LCD_Write_Com(0x38); DelayMs(5);
不检测忙信号 延时5毫秒 不检测忙信号 延时5毫秒 不检测忙信号 延时5毫秒
LCD_Write_Com(0x38); DelayMs(5);
LCD_Write_Com(0x38); DelayMs(5);
LCD_Write_Com(0x38); 显示模式设置 LCD_Write_Com(0x08); 显示关闭 LCD_Write_Com(0x01); 显示清屏 LCD_Write_Com(0x06); DelayMs(5);
LCD_Write_Com(0x0C); }
显示开及光标设置
显示光标移动设置
5 结束语
经过这段时期系统的开发,我对基于单片机AT89C52的开发研究有了更深的了解和认识,掌握了单片机使用的一些技巧和引脚的使用方法。本次毕业设计给了我一个独立思考和解决问题的机会,在系统的电路设计、功能模块和各方面的设计开发中,都需要进行细致全面的思考,从中让我学会了以前不曾接触过的知识,并且学会了怎样将书本知识转化到实际应用开发工作中去。毕业设计能够很好地提高我们的综合能力。除了学习到了相关的技术之外,还培养了自学、独立的解决问题的能力。
淮阴师范学院毕业设计
致 谢
在此论文撰写过程中我遇到了很多的困难和障碍,都在同学和老师的帮助下一一解决了,我要感谢我的论文指导老师——葛恒清。在整个论文写作过程中,他对我进行了耐心的指导和帮助,提出严格要求,引导我不断开阔思路,为我答疑解惑,鼓励我大胆创新,这使我在大学最后生活的时光中,既增长了知识、开阔了视野、锻炼了心态,又培养了良好的钻研精神。他那严谨的治学作风,一丝不苟的工作态度将会指导我以后的工作学习,在此,我向俞阿龙教授表示最诚挚的谢意!
同时还要感谢我的同学和朋友,他们在我论文的写作过程中提出了很多有用的意见与建议,还在论文排版过程中提供热情的帮助。
最后还要感谢这篇论文引用所有文献的学者们,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
20
毕 业 论 文
学生姓名 学
院
盛伟斌
学 号
171207024
物理与电子电气工程学院
电子信息工程
基于单片机的门禁系统的设计
专 业 题 目
指导教师 葛恒清 副教授/硕士
2012 年 5 月
摘要: 智能门禁系统是一种现代化的控制人员的出入以及控制人员在楼内及敏感区域的行为并准确记录和统计管理数据的数字化出入控制系统。它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。本文完整的描述了以AT89C52为核心的单片机控制方案来实现智能门禁系统的设计与实现,通过软件与硬件的结合,使智能门禁系统完成开锁、修改密码、报警等等一系列的功能。
关键词:智能门禁、A T89C52
Abstract: Intelligent entrance guard system is a kind of modern control access and control personnel and the behavior of the sensitive area inside the building management and accurate records and statistics of the digital access control system. It combines the microcomputer automatic identification technology and modern safety management measures, it involves the electronic, mechanical, optical, computer technology, communication technology, biotechnology, and many other new technologies. It is solve important gateway to realize the effective safety management measures. In this paper, a complete description of the AT89C52 as the core of single chip computer control scheme to realize the intelligent entrance guard system design and implementation, through the combination of software and hardware, the intelligent entrance guard system to complete the unlock, change passwords, and so on a series of alarm function.
Key words: Intelligence、AT89C52
目录
第一章 绪论......................................................................................... 4 1.1 课题背景................................................................................. 4 1.2 最新发展................................................................................. 4 1.3 国内外的研究现状................................................................. 5 第二章 系统总体设计和主要芯片介绍............................................. 5
2.1 系统总体设计......................................................................... 5 2.2 主要芯片介绍......................................................................... 6 第三章 系统硬件电路构成 ............................................................... 7 3.1 最小系统设计……………………………………………… 7 3.2 各单元电路原理 ………………………………………...... 8 第四章 软件的设计与实现 ………………………………………... 12 4.1 软件设计思路 …………………………………………….. 12 4.2 射频模块软件体系结构 ………………………………….. 12 4.3 子程序分析 ……………………………………………….. 13 第五章 结束语 ................................................... ………………... …. 17
致 谢 ........................................................................................ 18
1绪论
门禁系统是时代快速发展的产物,是信息领域中的新兴产业。最早的传统门锁只是简
单的机械原理的运用,是纯粹的机械装置。虽然在数代人的努力下不断的改良,其安全性不断提高,但还是可以通过暴力等非正常手段拆除,安全性较低。随着时代的进步,人们对安全性的要求不度提高,简单的机械锁已经满足不了人们的需求,门禁系统便应运而生。 智能门禁系统如今被广泛的应用,每一个人的生活都或多或少离不开它。作为一个新型智能的安全控制系统,它融合了机械电子、计算机软件编程、无线通信技术等诸多技术,已经能很好地解决重要区域出入口通道在安全上的问题。智能门禁系统被应用在各种对安全要求较高的区域,如酒店房间、公司数据库中心机房、各大银行、国家军火库、数据库中心、居民小区、工厂等等。在科技与网络快速发展的今天,新型智能门禁技术也应运而生,得到了人们的青睐。现在,门禁系统的概念也发生了变化,早已不是简单的门锁和钥匙,在人们不断地补充和完善下,它已经逐渐发展成熟,成为一套稳定性和安全性较高的控制管理系统。如今只要在对工作生活的环境安全有要求和公司需要人事考勤管理等这些地方,智能门禁系统就发挥着不容忽视的作用。
智能门禁系统应用比较广泛,只要在此基础上添加一些相应的其他设备,就可以达到对电梯出入控制、停车场车辆进出控制、图书馆书籍借阅管理等,真正的实现便捷的智能管理。
门禁系统又称出入管理控制系统(ACCESS CONTROL SYSTEM) ,它是用来管理重要出入口通道人员出入控制的系统。也就是说:我们可以控制人员什么时候允许进出那些门或者场所,同时如果需要,也可以提供进出的查询记录等等。目前市面上常见的门禁系统有很多:非接触感应卡式系统,指纹识别系统,虹膜扫描系统,面部识别系统,语音识别系统等各种技术的系统。它们有各自的特长,门禁系统的应用领域也越来越广。感应卡式门禁系统使用场合比较多,但是安全性相对其他门禁系统要低很多。
小区智能门禁系统是用来管理住宅小区出入通道保证居民正常生活的系统。如今的开发商为了更好的吸引买房者,也越来越重视小区的管理,为了防止不是小区的人员闯入,保证小区居民生命财产安全,于是在小区的入口就会设置一个门禁系统,要想进入小区就必须刷卡。而在这之前我们大多都是使用一般传统的门锁,也就是一把钥匙一把锁,然而传统的门锁结构相对比较简单,无论门锁结构多么复杂,使用的材料多么坚固,一些人总能通过各种方法把它打开。而且在一些出入口人员流量比较大的通道如小区门口、酒店客房。如果使用传统的门锁,应用起来会特别麻烦。俗话说一把钥匙开一把锁,一旦钥匙丢失,为了保证安全,原来的锁和钥匙就就需要更换,并且传统的门锁在安全系数上比较低。随
着人们对安全需求方面越来越关心,为了解决这些问题、开发市场,于是各种磁卡锁、密码锁等电子锁就应运而生。也正是由于这些电子锁的出现,在那些重要出入口通道上的管理上人们又有了进一步的提高和加强,因此也使智能门禁控制管理进入了新的时代。但是凡事有好的一面也有它不好的一面,随着这两种电子锁的在各个领域应用的越来越多,它的问题也逐渐显现出来,这种电子磁卡锁的信息不是很安全,容易被其他人复制,同时随着使用的时间的不断增长,这必将导致卡片与读卡器具之间磨损也会随着逐渐变大,仪器的故障率也会增高。而电子密码锁同样存在信息泄露上的问题,一旦密码泄露,那么追查起来不容易,也没那么安全。尽管有很多缺点,但是我们相信在不远的将来,在人类的努力和拼搏下,门禁系统将会越来越智能化,以前的种种缺点将会被解决,取而代之是更便捷、更安全、更人性化的特点,因此我们的生活环境也将变得更加的安全。让我们期待美好的明天。
1.1课题背景
社会的发展,生产力的提高,使人们有了富余的资产。为了防止钱财被他人盗窃,为了维护自己的安全,人们开始用锁来保护自身的生命与财产。而随着科技的日益进步,城市面貌出现的巨大的改变,各种高科技犯罪也随之出现,仅靠传统的门锁已无法满足人们的需求了,智能门禁系统便在这种情况下诞生。
从古至今,人们都养成使用简单的门锁来防止他们的财产被盗,同时也是防止一些人员在不被允许的情况下进出房间等私密场所,这种简单的方法一直延续了上千年。然而普通的门锁却始终离不开钥匙,一把钥匙开一把锁的定理持续了很久,但是现如今人们生活中需要加锁的地方变得越来越多,使用传统的门锁就会导致自己需要随身携带很多把钥匙,但是钥匙一旦多了就会带来很多不便。如果我们每天都需要携带很多钥匙,就会很容易弄混、丢失或者被盗,所以安全性和便捷性很差。如今,伴随着科技高速发展,传统的门锁早已经不能满足现在人们对生命财产安全方面的需求,为了从根本上改变这种局面,于是智能门禁系统就孕育,它集成了机械、电子、光学、生物识别技术、计算机技术和通信技术等多种新技术,它也是新时代很优秀的产物。
1.2最新发展
近年来,随着智能卡、生物识别、无线门禁等技术的发展,门禁系统发展迅猛,进入了成熟期,手机一卡通、指纹门禁、人脸门禁、无线门禁等产品开始走进大众,它们在安全性、便捷性等方面都各有特长,门禁系统的应用领域也越来越广,技术发展也越来越全
面。
无线门禁产品从诞生到现在,经过技术的不断演化已经出现了通过FSK 、GPRS 、蓝牙等方式传输的产品。而随着物联网技术的兴起,物联网门禁产品受到了安防行业内的普遍关注,无线物联网门禁系统可以直接替换现有的有线联网或非联网门禁系统。对于办公楼宇系统,应用无线物联网门禁能明显降低施工工作量,降低使用成本;对于宾馆系统,无线物联网门禁能提升门禁的智能化水平。
随着生物识别产品的不断问世,其在门禁系统的应用也必将会越来越多,生物识别产品的高安全性和非易失等特性正在被越来越多的用户所认同。在不久的将来,生物识别产品必将会成为门禁系统前端识别设备的强大力量,在安防领域也必将会发挥越来越大的作用。
1.3国内外的研究现状
现如今科技飞速发展进步,智能门禁系统已进化为一套较为安全、功能性完善的控制管理系统。它对通道和出入口的管理已经不是以前简单的钥匙和锁的管理,它能够对内部进行有效的智能化管理。它不仅能够时时刻刻记录人员的进出时间与进出情况,限制人员的出入范围,而且也可以很好的拒绝非法人物进入。同时,它也能够有效的保护人们的生命财产不受到他人的侵犯。门禁管理系统在安全防范系统中扮演着很重要的角色,在当今社会下,门禁系统发展的很迅速,已经被广泛的应用在了办公室,智能大厦,宾馆,智能小区等各种大门、房间、通道的管理。如今社会,房地产发展如日中天,小区门禁系统也随之成为小区住宅楼不可缺少的安全配套设施,它很好的保护住户的人身和财产安全。目前,现在对智能门禁系统的研究从开始的认知教育和试用阶段,进入到了研发阶段。但仍然在智能门禁系统的设计和研发上发现一些问题,比如说:对国外已有的门禁系统进行仿造;普遍采用国外现有的集成模块,如门禁控制器,识别和读卡模块等;产品的形式较为单一,而且消耗了大量的资金。
在技术层面,当前中国有很多企业模仿国外的门禁系统,目前的做法主要有两种,一种是采购国外厂家生产的系统零部件,比如读写器、门控器等,然后对这些芯片进行二次软硬件的设计。这种系列的系统性能相对较好,满足那种对安全要求较高的场所也是完全可以应付的,因此这种系统价格也相对比较昂贵。另外一种是只是购买国外的核心芯片,对国外一些其它优良部件进行研究和仿制。这种方法依据不同情况,可以作非原则性的变动,能够随时满足人们对门禁系统上的一些合理性要求,并且费用比较少。从门禁系统的内部结构出发就容易看出,国内大多数的系统是以控制器为核心研制的,而门控器部分则
是由国外厂家进行开发。目前国内先进的智能门禁系统的研发正处于滞后状态,不过我们相信在未来,我国科技人才一定能够研发出完全属于我们自己的智能门禁系统. 。
2 系统总体设计和主要芯片介绍 2.1 系统总体设计
本课题设计采用AT89C51微控制器作为系统的核心,在外围增加按键电路、蜂鸣器电路、开锁指示灯电路、电机驱动电路以及1602LCD 显示电路等。门禁系统主要由CPU 、电源指示、开锁指示电路、振荡电路、蜂鸣器电路、设置按键电路、电机驱动模块、24C02存储模块、RC522读卡模块、LCD 显示模块等组成。此智能门禁系统能实现当射频卡刷卡时,显示模块显示卡号信息,如此卡为合法卡,指示灯点亮,蜂鸣器响起,同时驱动电路将电机转动表示门锁打开。程序中还增加了射频卡权限的赋予,遇到合法卡时,电机转动,门锁打开,如果想收回权限,只要在刷卡的时候按下取消按钮,那么这张卡就变成非法卡,无法打开驱动电机转动将门锁打开。而当非法卡刷卡时,显示卡号但电机不转动门锁不打开,如果赋予这张卡权限,只要在刷卡的时候,按下存储按钮,这张卡就会变成合法卡,就能是电机转动,打开门锁。
2.2 主要芯片介绍
RFID (射频识别)技术:是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。无线电的信号是通过调成无线电频率的电磁场,把数据从附着在物品上的标签上传送出去,以自动辨识与追踪该物品。某些标签在识别时从识别器发出的电磁场中就可以得到能量,并不需要电池;也有标签本身拥有电源,并可以主动发出无线电波(调成无线电频率的电磁场)。标签包含了电子存储的信息,数米之内都可以识别。与条形码不同的是,射频标签不需要处在识别器视线之内,也可以嵌入被追踪物体之内。
CPU 的选择:在这个课题的设计上,选择了51单片机系统,因为单片机发展成熟且完善,此次设计功能上不是特别复杂,也没有复杂的运算,只有几个外接电路,况且单片机的成本较低,而且功能也完全可以满足此次课题设计。虽然DSP 和ARM 系统在功能和拓展上都比51单片机系统要高,但是它们价格都相对昂贵,而且对于本次课题设计而言,性能也有过剩。因此,结合自己所学的知识和性价比,经过比较最终选择了技术成熟、价格便宜、设计简单、使用方便的单片机平台。
射频卡的选择:非接触式IC 卡又称射频卡,由IC 芯片、感应天线组成,封装在一个标准的PVC 卡片内,芯片及天线无任何外露部分。是世界上最近几年发展起来的一项新技
术, 它成功的将射频识别技术和IC 卡技术结合起来, 结束了无源(卡中无电源) 和免接触这一难题, 是电子器件领域的一大突破. 卡片在一定距离范围(通常为5—10mm )靠近读写器表面,通过无线电波的传递来完成数据的读写操作。条码和磁卡,我们见的比较多,现如今超市和银行使用的都是这种卡,个人的银行卡都是磁卡。接触式IC 卡,大家过去见的比较多,就是要用公共电话拨电话时使用的卡片(然而随着手机的普及,公共电话也早已退出人们的视野),但接触式IC 卡,芯片外露易坏、易折。而非接触式IC 卡也就是无线射频卡,由于它的芯片和线圈都设计在卡片内,和接触式IC 卡相比,前者比较牢固不易被损坏、能适应恶劣的环境,可靠性很高,所以市面上普遍使用这种卡。根据上面的分析,最终选择目前被广泛应用的,而且成本不高可靠性好的IC 卡,也就是市面上较多的MIFARE S50卡。
3 系统硬件电路构成 3.1 最小系统设计
智能门禁系统采用的是STC89C52 微控制器作为控制核心,这款单片机是由STC 公司研发的,是一种低功耗、高性能CMOS8位微控制器。内部含有8K 字节的Flash ,512字节的RAM , 32 位的I/O口线,看门狗定时器,4KB EEPROM和MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级
中断结构),全双工串行口。可以看出89C52单片机功能还是很强大的,完成此次课题设计也是措措有余。根据这款单片机的特点,然后结合本次课题设计的要求,控制核心需要实现下面的几个功能:
(1) 接收读卡模块发送过来的数据,并进行处理。 (2) 控制电机转动和蜂鸣器。 (3) 控制1602LCD 输出显示。 (4) 处理键盘反馈的数据。
VCC P0.1/AD0 P0.2/AD1 P0.3/AD2
89C52 单片机引脚,如图3-1:
P0.4/AD3 P0.5/AD4 P0.6/AD5 P0.7/AD6 P0.8/AD7 EA
ALE/PROG PSEN P2.7/A15 P2.6/A14 P2.5/A13 P2.4/A12 P2.3/A11 P2.2/A10 P2.1/A9 P2.0/A8
在89C52单片机的基础上,STC89C52微控制器作为系统的核心,在外围增加按键电路、蜂鸣器电路、开锁指示灯电路、电机驱动电路以及1602LCD 显示电路等。构成了智能门禁系统的控制电路。 如图3-2,P0.0到P0.7连接上拉排阻,同时接1602数据总线,1脚接VCC ,加上拉电阻增加电流。9管脚接复位电路;X
1和X2接晶振电路。P22管脚接蜂鸣器电路;与P31和P32连接的分别为取消和存储按钮;P13、14、15、16连接RC522读卡模组;P23管脚接电机驱动模组。
3.2 各单元电路原理 3.2.1 蜂鸣器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H ”或“HA ”(旧标准用“FM ”、“ZZG ”、“LB ”、“JD ”等)表示。
单片机通过P2.2来控制蜂鸣器的工作与关闭,通过三极管放大电流使蜂鸣器发出响声。 当P2.2=1时,PNP 三极管关闭,蜂鸣器停止工作。 当P2.2=0时,PNP 三级管导通,蜂鸣器开始工作。 从而单片机只需要P2.2输出0或者1开关控制蜂鸣器即可。 功能说明: (1) 刷卡时,蜂鸣器响起,二极管被点亮说明此卡为有效卡。 (2) 刷卡时,蜂鸣器没有响应,二极管也没反应,说明此卡为无效卡。 (3) 没有卡时,蜂鸣器没有响应,二极管也不会点亮。
3.2.2 显示模块
课题的显示部分选择采用1602LCD 液晶显示,该方案具有低压、功耗低,平板型结构、所能显示的信息比较多、没有电磁辐射、而且使用寿命长等优点。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。1602LCD 是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。这些字符包括常见的阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符对都应着一个唯一的编号,也就是一个特定的代码。
3.2.3 读卡模块
此次课题设计上采用了市面上比较普遍的RC522读卡模组。RC522感应式读卡器主要是非接触式晶片的读卡模组,市面上使用的125KHz 非接触式RFID 晶片或者与其它规格较为类似的产品,它都可以进行信息的读取与数据的判断,开发者可以一次性开发感应
式读卡以及相关应用系统,RC522模块主要应用有:公交一卡通、智能门禁管理系统、人员签到管理、动物或物品辨识及产品管理。 此读卡模组主要具有如下优点:
(1) 系统有较高的独立性,二次开发比较容易,安装较为简单 (2) 对卡片的信息读取稳定性好
(3) 系统有较高的安全性,RFID 信息不重复,而且难以被复制 (4) 可自主选择数据输出格式
缺点: 主机必须24小时开机,否则数据传送会中断。
使用RC522读卡模块,在5-7cm 距离内读取时间不超过70ms 。非接触式读卡系统电源为5V ,系统中最重要的部分是感应线圈,它既可以与系统分开,也可以囊括在系统中,注意要将金属板放在线圈前面,这是为了防止电磁场造成干扰。
3.2.4 电机驱动模块
工作原理:本次智能门禁系统设计用电机转动来模拟开门效果,当卡片靠近读卡模块时,若识别为有效卡,那么指示灯将会亮起,蜂鸣器发出声音,电机转动。如果此时按下取消按钮,那么这张卡下次刷卡时,系统不做反应,也就是不打开门锁。若为无效卡时系统不做反应,此时按下存储按钮,待这张卡下次刷卡时,系统将会判定为有效卡,指示灯亮起,蜂鸣器发出声音,电机转动。 为了让电机能正常运行,并且系统有两个5V 电源,其中一个为电机驱动模块供电。驱动电路主要采用市场上普遍被应用的驱动芯片L9110H ,有它来驱动电机转动模拟开锁效果,L9110H 为一块集成电路、高电流、高电压、四通道驱动,它的额定工作电流为1A ,最大可达1.5A ,所以采用单独电源供电,VSS 电压最小4.5V ,最大可达36V ,可直接的对电机进行控制,无需隔离电路。L9110H 从主控单片机STC89C52那里接受指令直接控制电机的工作状态。可以对电机进行正反转,停止的操作,非常方便。L9910有8个管脚,2和3号管脚同时接VCC ,5和8号管脚同时接GND 。1号、6号管脚分别为A 路输出管脚和A 路输入管脚,4号、7号管脚分别为B 路输出管脚和B 路输入管脚。 为了达到效果,本次课题设计使用L9110驱动模块来驱动电机转动。
3.2.6 存储模块
为了实现对卡片权限的设置,就需要用一个芯片存储卡片的信息,在本次设计中使用24C02存储芯片,AT24C02是2K 位CMOS E2PROM串行电可擦除只读存储器,内部组织为256个字节,每个字节8位。该器件通过IIC 总线接口进行操作,有一个专门的写保护功能。
管脚配置:24C02与单片机的接口非常简单,如图3-10:
图3-10 24C02管脚图
管脚描述:
SCL 管脚:实现串行时钟的功能,它是一个输入管脚,与单片机的P21号管脚相连。SCL 串行时钟输入管脚实现发送和接收器件产生的数据的时钟的功能。
SDA 串行数据/地址:AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR )。
A0、A1、A2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个
AT24C02
被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss ,如果只有一个AT24C01被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss 。
如图3-11 为存储模块原理图:
4 软件的设计与实现 4.1 软件设计思路
软件设计上,根据功能分了几个模块编程,包括主程序模块、读卡模块、显示模块,存储模块、延时子程序模块和中断子程序模块等。系统工作时当卡片靠近读卡模块时指示灯亮起,屏幕显示卡片信息,然后程序判断权限,若合法,开锁模块程序点亮指示灯,蜂鸣器发出警报,电机转动模拟门锁打开。若非合法卡,是否赋予权限,如果赋予权限电机转动,指示灯亮起,蜂鸣器发出警报,如果不赋予则返回。
4.2 射频模块软件体系结构
#define RF_LPCTL BIT3 P2.3 射频卡休眠控制---RST #define RF_SS #define RF_SCLK
BIT7 p2.7 射频卡从机选择(SS)---SDA BIT6 p2.6 射频卡数据时钟输出(SCLK)
#define RF_DATA_OUT BIT5 p2.5 射频卡数据输出(MOSI) #define RF_DATA_IN
BIT1 p2.1 射频模块输入(MISO)
需要完成4个步骤:寻卡→防冲撞处理→选卡→读卡/写卡,就能完成对模块内部的数据块进行读写。 第一步:寻卡
status2=PcdRequest(0x52,Temp); if(status2== MI_OK)
寻卡 参数Temp 为返回的卡类型
{
tochar(Temp[0]); tochar(Temp[1]); }
比如,当Temp[0]=04,Temp[1]=00时,卡类型为S50。
第二步:防冲撞处理 status2= PcdAnticoll(UID); if(status2==MI_OK) {
PutString0("Card Id is:"); tochar(UID[0]); tochar(UID[1]); tochar(UID[2]); tochar(UID[3]); }
第三步:选卡。
status2= PcdSelect(UID); 选择卡片,输入卡片序列号,4字节 第四步:在读写卡之前需要先进行认证。
status2= PcdAuthState(PICC_AUTHENT1A, 1, Password_Buffer, UID);
其中四个参数分别代表:验证A 密钥+块地址+扇区密码+卡序号。
然后进行写操作:
status2=PcdWrite(1,writeData);
写数据,将数组writeData 中的数写入到卡 中,其中第一个参数1代表写入的地址为块1,或者进行读卡操作:
status2 = PcdRead(1, str);
读卡 其中第一个参数1代表读的地址为块1,读卡后得到的数据存放于数组str 中。
输出卡片序列号
防冲撞处理,输出卡片序列号,4字节
输出卡类型
4.3 子程序分析 4.3.1 RC522读卡程序
定义端口:
sbit MF522_RST = P1^7; sbit MF522_SO = P1^6; sbit MF522_SI = P1^5; sbit MF522_SCK = P1^4; sbit MF522_NSS = P1^3; 参数说明: req_code[IN]: 寻卡方式
0x52 = 寻感应区内所有符合14443A 标准的卡 0x26 = 寻未进入休眠状态的卡 pTagType[OUT]:卡片类型代码 0x4400 = Mifare_UltraLight 0x0400 = Mifare_One(S50) 0x0200 = Mifare_One(S70) 0x0800 = Mifare_Pro(X) 0x4403 = Mifare_DESFire 返 回: 成功返回MI_OK 防冲撞函数:
参数说明: pSnr[OUT]:卡片序列号,4字节 返 回: 成功返回
char PcdAnticoll(unsigned char *pSnr) { char status;
unsigned char i,snr_check=0; unsigned int unLen;
unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08); WriteRawRC(BitFramingReg,0x00); ClearBitMask(CollReg,0x80);
复位信号 SPI 接口主入从出 SPI 接口主出从入 时钟接口
应该是SDA 接口 寻卡函数:
ucComMF522Buf[0] = PICC_ANTICOLL1; ucComMF522Buf[1] = 0x20; status = MI_OK }
4.3.2 24C02存储程序
bit Write_more_byte(uchar add,uchar number,uchar *p)number { bit val; uchar i=0; IIc_init(); IIc_start();
val = IIc_write_byte(Address_24C02);
while(val==0) {
if(i++==10)
return(0); delay(1); IIc_start();
val = IIc_write_byte(Address_24C02);
}
IIc_write_byte(add); for(i=0;number>0;number--)
{ IIc_write_byte(*p++); }
IIc_stop();
return(1);
表示要写入字节的个数.
写器件地址
等待超时(10ms) 等待一会 重新发送 写器件地址
写存储的地址
写存储的数据 如果在发送停止信号之前主器件发送超过P+1个字节, 地址计数器将自动翻转, 先前写入的数据被覆盖.
}
void read_more_byte(uchar add,uchar number,uchar *p)//number
表示要读取的字节个数,读取的数据保存在*p中。
{
bit val=0; IIc_init(); IIc_start();
val = IIc_write_byte(Address_24C02); while(val==0)
写器件地址
器件没有应答 可能是内部编程/擦除周期
{
delay(1); IIc_start(); val=IIc_write_byte(Address_24C02); }
IIc_write_byte(add); IIc_start();
IIc_write_byte(Address_24C02+1); 写器件地址(读) for(;number>1;number--) {
*p++=IIc_read_byte(1); }
*p = IIc_read_byte(0); 读最后一个数据主机不应答 IIc_stop(); }
写存储的地址
等待一会 重新发送 写器件地址
4.3.3 显示程序
定义端口: sbit RW = P1^1;
R /W为读写信号线,与P1.1端口连接,高电平(1)时进行读操作,低电平(0)时进行写操作,
sbit RS = P1^0;
R S 为寄存器选择,与P1.0端口连接,高电平(1)时
选择数据寄存器、低电平(0)时选择指令寄存器。
sbit EN = P1^2;
E N 为使能端,与P1.2连接,写操作时,下降沿使能。读操作时,E 高电平有效。
初始化函数: void LCD_Init(void) {
LCD_Write_Com(0x38); DelayMs(5);
不检测忙信号 延时5毫秒 不检测忙信号 延时5毫秒 不检测忙信号 延时5毫秒
LCD_Write_Com(0x38); DelayMs(5);
LCD_Write_Com(0x38); DelayMs(5);
LCD_Write_Com(0x38); 显示模式设置 LCD_Write_Com(0x08); 显示关闭 LCD_Write_Com(0x01); 显示清屏 LCD_Write_Com(0x06); DelayMs(5);
LCD_Write_Com(0x0C); }
显示开及光标设置
显示光标移动设置
5 结束语
经过这段时期系统的开发,我对基于单片机AT89C52的开发研究有了更深的了解和认识,掌握了单片机使用的一些技巧和引脚的使用方法。本次毕业设计给了我一个独立思考和解决问题的机会,在系统的电路设计、功能模块和各方面的设计开发中,都需要进行细致全面的思考,从中让我学会了以前不曾接触过的知识,并且学会了怎样将书本知识转化到实际应用开发工作中去。毕业设计能够很好地提高我们的综合能力。除了学习到了相关的技术之外,还培养了自学、独立的解决问题的能力。
淮阴师范学院毕业设计
致 谢
在此论文撰写过程中我遇到了很多的困难和障碍,都在同学和老师的帮助下一一解决了,我要感谢我的论文指导老师——葛恒清。在整个论文写作过程中,他对我进行了耐心的指导和帮助,提出严格要求,引导我不断开阔思路,为我答疑解惑,鼓励我大胆创新,这使我在大学最后生活的时光中,既增长了知识、开阔了视野、锻炼了心态,又培养了良好的钻研精神。他那严谨的治学作风,一丝不苟的工作态度将会指导我以后的工作学习,在此,我向俞阿龙教授表示最诚挚的谢意!
同时还要感谢我的同学和朋友,他们在我论文的写作过程中提出了很多有用的意见与建议,还在论文排版过程中提供热情的帮助。
最后还要感谢这篇论文引用所有文献的学者们,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
20