基于单片机的IC卡门禁系统的设计毕业设计_第1页
基于单片机的IC卡门禁系统的设计毕业设计_第2页
基于单片机的IC卡门禁系统的设计毕业设计_第3页
基于单片机的IC卡门禁系统的设计毕业设计_第4页
基于单片机的IC卡门禁系统的设计毕业设计_第5页
免费预览已结束,剩余76页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.WORD.WORD版本..WORD.WORD版本.基于单片机的IC卡门禁系统的设计毕业设计目录TOC\o"1-5"\h\z摘要 III\o"CurrentDocument"Abstract IV\o"CurrentDocument"绪论 1\o"CurrentDocument"选题论证 1\o"CurrentDocument"门禁系统概括 1\o"CurrentDocument"门禁系统组成 1\o"CurrentDocument"门禁系统功能 1\o"CurrentDocument"门禁系统的发展过程 1门禁系统的优越性 2门禁系统的国外现状 2课题背景及意义 2\o"CurrentDocument"本论文拟解决的关键问题与解决方法 3\o"CurrentDocument"2系统结构与设计原则 42.1门禁读卡器 4\o"CurrentDocument"2.2非接触式IC卡 4\o"CurrentDocument"2.3智能门禁系统的设计原则 4\o"CurrentDocument"2.4门禁模块图 5\o"CurrentDocument"3系统硬件电路图设计 7\o"CurrentDocument"各模块选用的硬件介绍 7\o"CurrentDocument"STC89c52单片机介绍 7\o"CurrentDocument"2FM1702高频读卡器模块介绍 10\o"CurrentDocument"Mifare射频卡介绍 10\o"CurrentDocument"STC89c52的电路连接 11\o"CurrentDocument"LCD12864液晶显示屏的介绍 12\o"CurrentDocument"AT24co2介绍 14\o"CurrentDocument"AT24co2存储模块模块连接电路图 14\o"CurrentDocument"主要特性: 14\o"CurrentDocument"4.2.2引脚描述: 15\o"CurrentDocument"电子锁控制 15\o"CurrentDocument"3.6报警电路 16\o"CurrentDocument"3.7射频卡读卡器块的复位电路 16\o"CurrentDocument"3.8按键模块 17\o"CurrentDocument"9LED显示模块 17\o"CurrentDocument"4射频卡读卡器的软件设计 19\o"CurrentDocument"系统流程及主程序介绍 19\o"CurrentDocument"读卡器 19\o"CurrentDocument"3读卡过程及程序设计介绍 20\o"CurrentDocument"4.3.1寻卡图 21\o"CurrentDocument"4.3.2防冲突 214.3.3选择卡片 22\o"CurrentDocument"4.3.4读取卡片 22\o"CurrentDocument"4.3.5卡挂起 22\o"CurrentDocument"5读卡器的调试 24\o"CurrentDocument"各模块硬件调试 24单片机的调试 24\o"CurrentDocument"串口通信模块的调试 24本章小结 24硬件实物图 25\o"CurrentDocument"参考文献 30\o"CurrentDocument"致谢 31附录1系统原理图 32附录2程序 33基于单片机的IC卡门禁系统的设计才商要本论文介绍了可加强安全的智能门禁系统。论文具体的介绍了门禁系统的组成、读卡器的硬件设计以及系统的软件开发容。提供了门禁读卡器的电路原理图,和主要程序设计的流程图和程序。重点分析了单片机与FM1702高频读卡器频模块的接口电路、报警电路、门锁继电器电路、液晶12864电路以及单片机最小系统。读卡器主要有读卡模块、单片机控制模块、射频天线以及智能IC卡组成。读卡器能读写荷兰Philips公司的Mifare非接触式射频卡。当有卡进入时则读卡数据后通过单片机进行欠理后程序自动判断是不是合法IC卡,并且将卡号传送到液晶12864上显示。读卡器的软件部分重点介绍了读卡过程的程序设计,包括询卡、选取卡片、读取卡片、判别IC卡是否合法等。读卡器选用部集成有8K字节Flash程序存贮器的STC89c52单片机作控制器,系统采用SPI通信,其接口管脚少、连线简易,便于缩小读卡器的体积。关键词:门禁系统;STC89C52;读卡器.WORD版本..WORD.WORD版本..WORD.WORD版本.ThedesignofICcardentranceguardsystembasedon

singlechipmicrocomputerAbstractThispaperintroducestheintelligententranceguardsystemsecuritycanbestrengthened.Thisthesisintroducesthesoftwaredevelopmentcontent,accesscontrolsystem,thehardwaredesignofcardreaderandsystem.Providesaccesstoreadcircuitdiagramthecardreader,andthemainflowchartandprogram.FocusontheanalysisofthesinglechipcomputerandFM1702interfacecircuit,thehigh-frequencyreadcardreadermoduleandalarmcircuit,frequencylockrelaycircuit,LCD12864circuitandMCUininiinuiiisystem.Thereaderhasreadcardmodule,MCUcontrolmodule,RFantennaandintelligentICcard.ThecardreadercanreadandwritePhilipsHolland*sMifareofcontactlessRFcard.WhenthecardenteredwillreadthecarddataprocessingprogramtoautomaticallydetermineIsitright?LegitimateICcardthroughthemicrocontroller,andthenumberistransmittedtotheliquidcrystaldisplay12864.Thecardreadersoftwarepartemphaticallyintroducestheprogramdesigncardprocess,includinginquiringcard,selectcardreadcard,ICcard,judgingthelegalityof.Cardreaderwithintegratedwithinternal8KbytesofFlashprogrammemoryofSTC89C52singlechipniicrocoinputerascontroller,thesystemusestheSPIcommunicationinterface,theconnectionpinisless,simple,easytoreducethevolumeofthecardreaderKeywords:entranceguardsystem;AT98S52;devices,cardreader1绪论选题论证当今社会,时代变化着人们对门禁系统的要求也越来越高,门禁系统得以广泛的应用,所以门禁系统的开发已成为现代科技领域的一个火热课题。现在,安全防系统中,门禁系统是一个极其重要的一部分,在许多发达国家中,门禁系统正以远高于其它品种的安防产品的进度迅猛发展,门禁系统能在众多安防产品中脱颖而出。主要原因是因为其从根本改变了以往安防产品,类如闭路监控,防盗报警等安防方式都十分的被动,以主动的控制替代了被动监视的方式,进过控制主要通道,极大的防止了非法者从正常通道的入侵,并且可以通过对通道门的控制限制非法者的活动困,制止犯罪或减少损失。门禁系统概括门禁安全管理系统是一种新型现代化的安全管理系统,它包括微机自动识别技术和现代安全管理措施。它包含电子,机械,光学,计算机技术,通讯技术,生物技术等许多新技术。它极大的保护了出入口的安全。适用于各种机要部门,如银行、监狱、宾馆、机房、军械库、机要室、办公间,智能化小区,工厂等。智能门禁系统是保护出入口安全的系统,该系统控制人员的出入以及他们的活动区域。门禁系统控制的基本原理是:按照每个人的活动困,提前制作出各种层次的卡或预定密码。在相关出入口等欠安装读卡器,持卡人把自己的卡片放到读卡器上进行识别,读卡器把读到的卡号等信息发送到计算机,通过计算机判断,当身份符合,门锁就开启,否则就将报警。门禁系统组成门禁系统由控制器,读卡器,电控锁,识别卡和存储器、报警器等部分组成。门禁系统的核心是控制器,打个比方读卡器是系统的眼睹,电控锁是系统的手,那么控制器就是系统的大脑。门禁系统功能限制人员的进出区域,拒绝非法进入者,保护财产不受任何非法者侵犯。当请求进入的人员身份合法便可经过控制中心认证,电子锁将打开否则电锁将不会开启。门禁系统的发展过程出入口门禁系统望文生义就是对出入口通道进行管理的系统,它是以传统的门锁为基础上发展而来的传统的机械门锁只是一种单纯的的机械装置,不管其结构设计多么完美,使用的材料多么坚固,非法者总是不折手段的将其打开。在出入频繁的通道,钥匙的管理实在麻烦,当钥匙的丢失或是人员的更改往往都要换掉所有的钥匙和机械锁。为了解决这之客进入。同时极大地保护人们的财产不受到侵犯。门禁管理系统已经是安全防系统中极为重要的一个组成部分,在许多发达国家中,它正以远高于其它类安防产品的进度高速的发展着,在各个场所中都得以广泛的应用。如今的现代都市对美观要求极高,公司形象体现了其所追求的时尚和品味,也是给顾客良好的印象。很难想象,在追求智能化无纸办公的今天,在华丽高档的玻璃大门装上一把丑陌的机械锁将会是一件令人多么尴尬和寒谈的事情啊!但是,当能用手中的卡片使大门就应声而开,那将是多么的高端、大气、上档次。此外,如今人们十分注重商业情报和安全,以往的个人身份鉴别手段己不能完全满足现代社会经济活动和社会安全防的需要。只有不易被他人代替、仿制、甚至本人也无法转让的身份识别凭证才能得到人们的认可。因此,从易用性、安全性、成熟性、造价性等方面综合比较,IC卡门禁技术正在以惊人的速度迅猛发展。这正是我们研究IC门禁管理系统的意义所在。4本论文拟解决的关键问题与解决方法(1)关键问题①怎样采集合法开锁人的信息②怎样实现IC卡是否合法③怎样控制门的开关以及报警⑵解决方法①用STC89C52单片机控制FMI702高频读卡器实现对学生犯人信息的采集②采用事先将IC卡号保持到存储器中进行保存,刷卡时查找存储器的卡号是否存在。③采用单片机控制继电器电子锁与蜂鸣器来控制门开关和报警。2系统结构与设计原则门禁系统的核心部分是门禁读卡器,他可以读取非接触式ic卡,本设计的主要任务就是对读卡器的设计。由于门禁系统都应用于重要场所,所以其设计要符合一定标准。2.1门禁读卡器门禁系统的关键部件是读卡器,他是有控制单片机及外围扩展器件、读卡模块、射频天线、电源接口、串行通信接口等几部分组成,接上+5V电源就可以读卡,接上串行口可以与PC机通信。读卡器在门禁系统中是主要的工作机,它是射频卡与PC机和开关门设备之间的桥梁,其数量较多,根据需要安装在方便的地方。他可以联网工作,通过RS-232串行口与PC机相连。读卡器是主动操作的,只有非接触式IC卡进入读卡器天线射频能量围,读卡器便通过射频信号与智能卡通信,在联网的情况下,读卡器能将采集的数据直接传给PC管理机。2非接触式IC卡非接触式IC卡又叫射频卡,是90年代初发展起来的新技术.射频卡由感应天线、控制芯片、存储单元组成,并完全密封在一个标准PVC卡片中,无外露部分。射频卡本身是无源体,当读写器对射频卡进行读写操作时,读写器发出的射频信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与其本身的LC产生谐振,产生一个瞬间能量来供给芯片工作,另一部分则经解调后,控制芯片完成密码验证、数据的读取、修改、存储等,并返回给读写器。射频卡成功地将射频识别技术和IC卡技术结合起来,解决了无源和免接触的难题:射频卡无需专门的供电电源,它与读写器间无机械接触,避免了接触故障;它表面无裸露芯片,可防水,且不易产生静电击穿及弯曲损坏等问题:射频卡使用时没有正反面,而且射频卡具有可靠性高、使用方便、操作速度快等特点,由射频卡所形成的读写系统,无论是硬件结构,还是软件控制的操作过程较之接触式卡都得到了很大的简化,同时借助于先进的管理软件和网络支持可在很多领域得到应用。智能门禁系统的设计原则智能门禁系统作为一项先进的高科技技术防手段,在经济发达国家的智能大厦及宾馆等得到了广泛应用,由于系统具有隐蔽性、及时性等特点,其在许多领域得以运用。智能门禁系统具有智能性、高可靠性、实时性,。系统的设计应当做到以下原则:(1)实用性。智能门禁系统要从实际情况来制定具体用。仅仅简单的去最求超前,只会使金钱白白的流失,功能用不到的情况。所以实用性是智能门禁系统必须注重的原则。(2)实时性。智能门禁系统不可应为一个子系统使得整个系统瘫痪,必须有效的保证系统时刻处于运行状态。(3)完整性。智能门禁系统必须功能齐全,管理方便。所以保证智能门禁系统的完整性是必须要考虑的原则。(4)系统的安全性。智能门禁系统必须保证系统和设备的完美运行,保证所有系统设备不能被复制、篡改,并且绝对不能使任何信息泄露。(5)可扩展性。科技在不断的发展,智能门禁系统也在不断的改善,门禁系统还在不断发展,所以我们系统设计时,对需要实现的功能进行了合理配置,并且这种配置是可以改变的,设置甚至在工程完成后,这种配置的改变也是可能的和方便的。系统软件根据需求进行相应的升级和完善。(6)易维护性。智能门禁系统在工作中要做到易维修。极大方便人们的使用,做到插电可用的效果。门禁模块图设计框图:继电器模块(模拟门开)和蜂鸣器模块注销ic卡继电器模块(模拟门开)和蜂鸣器模块注销ic卡液晶led12864显示图2.1设计框架图2.4.2本课题研究门禁系统,其运行模块图如下

图2.2运行模块图读卡器:读射频卡信息。按键模块:注册通行卡。按下设置键,把工作模式切换到注册模式后,刷卡并显示卡号自动注册。注册完成后液晶显示注册完成。再次刷这IC卡时,就能开门。注销通行卡(清除存储器的卡号数据)按下设置键,把工作模式切换到注销模式后,刷卡并显示自动注销,就把存储里保存的卡号数据清除。清除数据后,IC卡已经处于注销状态。3系统硬件电路图设计各模块选用的硬件介绍读卡器主要有刷卡模块、单片机模块、继电器模块、按键模块以及蜂鸣器模块组成。其用高频读卡器模块FM1702,能读写荷兰Philips公司的Mifare非接触式射频卡,读卡距离约10cm。控制模块采用STC89C52单片机,它具有8K可编程Flash存储器。单片机与读卡器通信是采用SPI通信。STC89c52单片机介绍控制的核心选用STC89C52。其主要性能如下:.STC89C52单片机与MCS-51单片机产品能够兼容.在系统可编程Flash存储器8K字节.擦写周期可达到100000次.程序存储器可做到三级加密.可编程I/O口线数量达到32个.总共有三个16位计数器.中断源的数目达到了8个.单片机具有全双工UART串行通道.不启动是能耗低.停电以后中断可复位(1)功能特性描述该STC89C52单片机作为低功耗、高性能CMOS的8位微控制器,系统可编程Flash存储器拥有8K运用Atmel公司独特的高密度难丢失存储器技术制造,与工业上的80c51产品说明可以和引脚完全的兼容。单片机上Flash做到程序存储器在系统中可以编程,大众化编程器也可进行编程。在单片机的芯片上,有8位CPU和在系统可编程Flash,做到了STC89C52为众多嵌入式控制应用系统提供高灵活、极为有效的的解决方案。(2)引脚图如下:(T2>P1.OC(T2EX>R1.1CJ1-40□voo23©□F-OO(Ag)pi.2r33g□PC1(AD1)尸1.3匚737JRO2(AON)ri.-»cno□LO.n(APQ).&匚SB□ -4(AO-»)(MlBO>PI.6C7□RO6(AD=S)<SCK>P1.7CR&tCa33□PO.C(AOO)e32口口。7(ACT7)□^s>vppCQXO)P3.0C1031<TXO>PS.1Cri30nALEhRCTSCINTO>P3.2匚12NB□RSEMCTFm>P3.3IZ1328Z1F»27(AID)(TO>P3.4C<T1>P3:.5C1<427□P2e(AIR□0JR2.C(A13)R3.OC1GZ) (A12)P3.7匚17d□P23<A11)XTAUC:IB23HR25(A1O)XTAL.1匚1022□F>21(A9)lG2D匚2021ZlPNC(2,图3.1STC89C52引脚图(3)引脚介绍:VCC:接电源GND:接地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有部上拉电阻的8位双向I/O口*pl输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(PL0/T2)和时器/计数器2的触发输入(Pl.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表3.1P0口第二功能引脚第2功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出Pl.1Pl.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时少2口送出高八位地址。在这种应用中,P2口使用很强的部上拉发送1。在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。P3口亦作为AT89s52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表3.2P3口第二功能引脚第2功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INTO(外部中断。请求输入端,低电平有效)P3.31NT\(外部中断1请求输入端,低电平有效)表3.3P3口第二功柜引脚第2功能P3.4TO(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6WR(外部数据存储器写选通信号揄出端,低电平有效)P3.7RD(外部数据存储器读选通信号输出端,低电平有效)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89s52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。FM1702高频读卡器模块介绍管脚定义:(从上到下)1、GND2、VCC(5V)'RST'CS5、SI'SCK7、SO性能参数:1'输入电压:5〜5.5V2、输入电流:刷卡电流<25mA3、通讯方式:SPI4、有效刷卡高度:3Toem(视天线、卡和周围环境而不同)5、使用环境:-25~70摄氏度6'尺寸:95.8*54.3(单位:mm)3.1.3Mifare射频卡介绍本设计中采用的射频卡为Mifare射频卡,其核心是PHILIPS公司的MifarelICS50系列微芯片。卡片上无源,工作时的电源能量由卡片读写器天线发送无线电载波信号祸合到卡片上天线而产生电能,一般可达2V以上,供卡片上IC工作。工作频率13.56MHZ。Mifare的主要指标容量为8K位EEPROM分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位每个扇区有独立的一组密码及访问控制每卡有唯一序列号,为32位具有防冲突机制,支持多卡操作无电源,自带天线,含加密控制逻辑和通讯逻辑电路数据保存期为10年,可改写10万次,读无限次工作频率:13.56MHZ通信速率:106KBPS读写距离:10mm以(与读写器有关)(1)卡与读写器的通讯①复位应答Mifare卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作国时,读写器以特定的协议与它通讯,从而确定该卡是否为Ml射频卡,即验证卡片的卡.WORD版本..WORD.WORD版本..WORD.WORD版本.②防冲突机制当有多卡进入读写器操作围时,防冲突机制会从其中选择一进行操作,未选中的则欠于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。③选择卡片选择被选中的卡的序列号,并同时返回卡的容量代码。④三次互相确认选定要欠理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验。)(2)系统的工作方式为:STC89C52控制FM1702,驱动天线对Mifare卡进行读写操作;然后根据所得的数据对其他接口器件,如和上位PC机之间进行通信,把数据传给上位机。与上位机的通信采用RS485通信模块,通信距离能够达到1200米左右。整个系统由5V电源供电。(3)工作原理:系统数据存储在无源Mifare中。读写器的主要任务是传输能量给Mifare卡,并建立与之的通信。单片机控制MFRC500,将其接收到的信号通过RS485传送给上位PC机。然后等待上位机传回的信号,确定是否控制执行器开门,迁是报警。STC89c52的电路连接本系统中,STC89C52电路连接图如下图3.2所示,采用SPI通信方式进行连接,与FM1702模块芯片的数据总线相连中0口的一部分端口线与FM1702sl芯片的控制总线相连,在电源和地之间加上一个排阻»上电如果初始化成功,则提示可以刷卡,如初始化失败,则一直停留在初始化界面。图3.2刷卡模块接口原理图

UIalarm1?1141UIalarm1?1141LED3-45678R&T9・1・14,■」・SDAzrj10mlIrl12?SB13C2心14_LJuE一—RW15IIEX1630pFID17nY1ISl|—L-L 19C320IL.IL1_30pFPl.O?1.1Pl.2?1.3Pl.4?1.5?MOSIPl6MlsOP1.7.SCKRESETRXDP3.0TXDP3.1R?TC?3.2mTLP3.3T0.P3.4T1/P3.5瓯P3.6RDP3.7XTAL2XTAL1GNDAT89S52vccPO.O.ADOP0.1,AD1P0.2.AD2P0.3.AD3P0.4.AD4PO.5.AD5P0.6.AD6P0J/AD7五VPPALEPROGP2.7/A25P2.6/A14P2.5.-A13P2.4/A12P2.3/A11P2.2A10P2.1/A9P2.O.AS-5V40丁39383736 S0-SCK34SE才CS32RST3130~而"?2727 ?2626 P252524 P2323 B2222 ?2T21P2C图3.3STC89c52接线图LCD12864液晶显示屏的介绍LCD12864液晶显示屏是带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128x64,置8192个16米16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8x4行16x16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。3.3.1显示屏模块模块连接电路图

图3.4显示屏模块连接图单片机与显示屏的接口电路部分:液晶显示屏的数据接口线与单片机的P1口相连,PO.0,P0.LP0.2用于使能和控制对液晶屏的读写等操作。3.3.2天线设计射频卡读写器采用电感藕合式天线,主要用于产生磁通量,而磁通量用于向射频卡提供电源并在读卡器与射频卡之间传输信息。因此,对读卡器天线的构造就有三个基本要求:①使天线线圈的电流最大,用于产生最大的磁通量②功率要匹配,以最大程度地利用产生磁通量的可用能量③要有足够的带宽,以无失真传送用数据调制的载波信号。另夕卜,由于Mifare卡是无源射频卡,其能量是通过天线感应来的,而且由于受到卡形状的限制,卡中不可能封装很大的天线,使得接收的能量较小,从而决定了读卡器天线读写距离较短,一般在以10cm-天线部分主要包括低通滤波器,接收电路,天线匹配电路和天线线圈,其工作过程为:天线拾取的信号经过天线匹配电路送到RX脚。FM1702的部接收器对信号进行检测和解调并根据寄存器的设定进行义理。然后数据发送到并行接口。由微控制器进行读取。FM1702对驱动部分使用单独电源供电。电路设计天线直接连接的匹配电路如图3.5所示。

J.aRext人加图3.5天线设计原理图AT24C02介绍AT24co2是低电压工作的2K位串行电可擦除制度存储器,部组织为256个字节,每个字节8位,该芯片被广泛应用于低电压及低消耗的工商业领域。3.4.1AT24co2存储模块模块连接电路图图3.7存储器模块接口原理图3.4.2主要特性:.工作电压:1.8V〜5.5V 2.输入/输出引脚兼容5V3.应用在部结构:128x8(IK),256x8(2K),512x8(4K),1024x8(8K),2048x8(16K)4.二线串行接口5.输入引脚经施密特触发器滤波抑制噪声6.双向数据传输协议 7.兼容400KHz(1.8V,2.5V,2.7V,3.6V) 8.支持硬件写保护 9.高可靠性:读写次数:1,000,000次极限额定参数:引脚定义:表3.4引脚定义引脚名称引脚功能A0-A2器件地址输入SDA串行数据输入输出SCL串行时钟输入WP写保护VCC电源GND地.2.2引脚描述:串行时钟信号引脚(SCL):在SCL输入时钟信号的上升沿将数据送入EEPROM器件,并在时钟的下降沿将数据读出。串行数据输入/输出引脚(SDA):引脚可实现双向串行数据传输。该引脚为开漏输出,可与其他多个开漏输出器件或开集电极器件线或。器件/页地址脚(A2,Al,AO):A2,A1和A0引脚为AT24co2的硬件地址输入引脚,在一个总线上最一个总线上最多可寻址八个2K器件,A2,A1和A0必须部。写保护(WP)引脚:AT24C02具有用于硬件数据写保护功能的引脚。当该引脚接GND时,允许正常的读写操作,当该引脚接VCC时,芯片启动写保护功能。电子锁控制电子锁控制采用9012三极管驱动5V继电器,单片机的输出OUT通过9012三极管驱动继电器,继电器的输出直接接纳电器线圈的一端,线圈的另一端接GND。继电器的公共点和长开点分别接电子锁的两跟控制线由于电子锁的开关是靠两根控制线是否连通来控制的,当两根控制线接在一起时就开门,反之如果两根控制线断开就锁门。因此当单片机的输出端输出高电平时三极管倒通,9012的输入端为低电平,由于9012在这电路中起到开关作用,因此9012输出为高电平。此时继电器线圈上有电流流过,继电器吸合,电子锁的两根控制线接通,电子锁开门。反之,如果单片机输出高电平三极管不倒通,9012三极管的输出为低电平,因此继电器线圈没电路,继电器不动作,电子锁的控制线保持断开,电子锁锁门。电路图如下:

图3.8维电器模块电路3.6报警电路报警电路有一个直流蜂鸣器和9012三极管构成,电路图如图所示。图中Alarm为单片机的F2.4脚,当需要蜂鸣器报警时只需要将单片机的P2.4管脚置为高电平,三极管倒通,电流从+5V电源经过蜂鸣器和三极管的CE极流向地,蜂鸣器有电流流过则发声报警。当单片机P2.4管脚为低电平时,三极管截止,没有电流从蜂鸣器流过,蜂鸣器停止发声,因此通过控制单片机P2.4管脚的高电平时间就可以控制缝鸣器的报警时间。S3.9蜂鸣器模块3.7射频卡读卡器块的复位电路射频卡读卡器块的采用了按键复位电路,当系统发生故障,可通过按下复位按键,系统将复位,让系统重新初始化运行。

8按键模块射频卡读卡器在系统初始化后进入工作模式,通过按键来切换各种模式。工作模式按下K1即进入注册模式,再次按下K1进入注册模式,接着按K1循环到工作模式。9LED显示模块图3.12LCD显示模块射频卡读卡器工作模式下刷卡,当PowerLed为低电平1)1亮,则表示刷卡成功此卡为合法卡允许进入。当LED为低电平时1)2亮,说明此是所刷的卡编号并未存储在存储器中进入报警状态。4射频卡读卡器的软件设计现在单片机编程使用的语言大多为汇编语言和c语言。运用汇编语言编程的好欠是代码生成效率高,程序运行速度快;不足是程序的可读性和可移植性比较差,用汇编语言编写单片机应用系统程序的周期长,调试和排错相当困难。(;语言是一种通用的计算机程序设计语言,它既可用来编写计算机的系统程序,也可用来编写一般的应用程序,用它编写的程序,具有较好的可读性和可移植性。所以在本设计中运用c语言进行射频卡读卡器程序设计。系统流程及主程序介绍系统工作是按固定顺序执行的,主要流程如图读卡器读卡器主程序用要完成系统初始化,读卡器和高频频FM1702模块的中断处理程序,以及与PC机通信中断处理程序等操作,流程图如图所示。

图4.2读卡器主流程图3读卡过程及程序设计介绍读卡器软件编程来进行对射频卡的一系列操作,主要有:防冲突程序、卡片的读写程序以及对卡片数据块的操作等。读卡程序的设计思路是在系统初始化后,射频场检测有Mifarel卡进入射频天线的有效围,读卡程序按顷序启动防冲突程序和认证程序,验证成功后最后操作卡片读写程序。程序流程图见图所示,下面介绍其中的几个主要过程。

图4.3读卡过程显示图3.1寻卡图Mifarel卡是一种以被动方式工作的卡,进入射频区的Mifarel卡上电后进入IDLE状态,它通过吸收感应区的磁场能量进行工作,不会主动发出信号。读卡器必须不间断地向外发出请求信号,符合条件的卡只有在接收到请求信号之后才会进行响,。程序中用Mf500ComReq()函数不断向外循环发请求信号,检查感应区是否有符合条件的卡,一旦有符合条件的卡进入并被选中,程序退出循环请求过程,进入防冲突过程。Requeststd指令分为和Requestal1两个指令eRequestal指令的功能是在天线围检查所有符合条件的卡,无论是处于IDLE状态还HALT状态的卡,都会响应°Requeststd指令只对天线围外于IDLE状态的卡有效,对HALT状态的卡无效。考虑到至少有两卡同时进入感应区的可能,设计中采用Requestal1指令,Mf500ComReq()函数主要代码及相关注释见附录。4.3.2防冲突所谓防冲突又叫防碰撞、防重叠,就是从多进入感应区的卡中选出一来进行操作。如果只有一进入感应区,并且已经知道了卡的序列号(SN),则可跳过此步,直接进入选卡命令,若不知道卡的序列号,则必须调用防冲突函数mF500CascAnticoll(),以得到感应区卡的序列号。若同时有多卡在感应区,防冲突函数能够选择其中的一卡并得到其序列号。防冲突指令只是获得一Mifare1卡的序列号,并没有真正选中这卡。选中卡应由Select(见下一步)指令完成。SN为40位长5个字节,实际有意义的只有前4个字节,最后一个字节是SN的异或校验的校验码,在获得SN之后,一般应在程序中对所接收到的SN进行校验,以确保数据的正确性。niF500CascAnticoll()函数主要代码及相关注释见附录。4.3.3选择卡片选择卡片就是根据已知的序列号读出卡的容量编码(一字节)。只有经过这一步骤后才算真正选中了一卡,以后的操作都对这卡进行。选择卡片指令是很重要的,而且必须首先被使用,因为卡片只有先被选中了,然后才能进行读、写等操作。选择卡片过程是通过Mf500CascSelect()函数实现的,其主要程序代码及相关注释见附录。3.4读取卡片如果完成了前面几个步骤,说明所选卡是本系统的卡,就可以对Mifare卡正常进行读、写了。读卡函数Mf500Read()从已通过密码验证的扇区中读取一个数据块,共16个字节,其中前面几个字节即为卡号(1个字节表示2位卡号,本系统卡号长度为10,所以需要前面5个字节。)Mf500Read()函数主要代码及相关注释见附录。3.5卡挂起当对卡中的数据欠理完后,程序应使卡欠于挂起状态,此时即使卡在感应区域,读卡器也不会再对该卡进行任何操作。Mf500Halt()函数用来实现卡挂起功能,其主要代码及相关注释见附录。图4.4驷动电子锁流程图5读卡器的调试各模块硬件调试系统包含软件和硬件,调试是比较重要的,综合实际情况,可将调试分为几步。毕竟硬件是软件存在的基础,保证硬件正常后才能检测软件的缺陷和漏洞;那么第一是硬件电路的调试,硬件电路正确无误后,第二进入软件的调试。开始检查硬件电路,当中主要包含电源是否连接正常、单片机是否正常工作、最主要的是射频基站模块能否正常工作等等。然后再通过串口调试助手,观察单片机与射频基站模块通讯时,两者所传送的数据,观察数据是否正确,这部分的调试起初只写简单程序,检测能否与RF卡确立连接,接着添加程序将卡中序列号读出,最后增加的是卡中的信息读写程序。然后是无线通信的检测,看发送和接收的数据正确与否。最后就是单片机通过串口将数据发送给计算机的调试。1单片机的调试最先检测STC89c52单片机芯片能否正常工作,首先检测单片机的电源压是否是5V,若是,在检测单片机的EA端,是否为5V,如果是就再检测单片机的复位电路是否能够复位成功,若成功,就再检测第18脚和第19脚接的晶振,能否起振,起振的正常对地电压是2V上下,如果没有电压单片机必定不可正常工作。1.2串口通信模块的调试MAX232是串口通信的核心,首先检测MAX232的电源脚与地脚之间的电压是否正常,而后看外接的四个电容有没有接反,所有检测没有问题后再用万用表检测输出端和输入端的电压是否正常。5.1.3本章小结本门禁监控系统主要应用于门禁监控和管理。系统由读卡器、PC机、控制器等组成。读卡方式为非接触式读卡方式,只要将射频卡在读卡器附近几厘米之快速晃动一次,读卡器就能感应到有射频卡并将射频卡中的信息卡号发送到主机,主机检查射频卡的合法性,决定是否开门,并且将结果反馈给读卡器,由读卡器通过控制器完成开门动作。系统具有实时、安全、可靠、易维护、易扩展等优点。(1)存在的问题:由于时间的限制,为了能实现最基本的功能,我将设计简化了许多,一些辅助性质的功能给去掉了如显示功能。但在做硬件期间,很多功能不能完成。希望在以后可以完成。(2)展望:随着社会的发展门禁技术会越来越成熟,智能门禁系统的应用图也将越来越广泛,不仅可用于监狱银行等重要场所,还可用于智能大厦或智能小区以及用于企.WORD版本..WORD.WORD版本..WORD.WORD版本.业的考勤管理、安防报警、停车场控制等领域。5.1.4硬件实物图Ye-PNOS--抖242参半。-抬复基带•: O.—图5.1射频读卡器和IC卡图5.2实物图背面图5.3射频读卡器的工作模式。图5,4射频读卡器刷卡状态当合法IC卡放在刷卡模块上时,蜂鸣器会“滴”的一声,显示屏上就会显示是合法卡。图5.7IC卡注册成功图5.8射频读卡器的IC卡注销模块

图5.9IC卡注销成功参考文献[1]王毅.单片机应用手册[M].科学技术,1997.[2]黄亮.校园一卡通系统中非接触式IC卡读卡器的设计[D].中国地质大学,2007.[3]吴启满.基于MFRC500的RFID读卡器的设计[D].交通大学,2008.[4]文珊.智能建筑建].电子科技大学,1999.[5]毅刚.MCS-51单片机应用设计[M].工业大学,1997.[6]依军.单片机原理及系统设计技术[M].华中理工大学,1990.[7]常峥斌.高校图书馆智能门禁系统的设计与实现[M].电子科技大学,2001.[8]忠胜.门禁市场发展现状及竞争分析[J].中国安防2011.[9]何永祥.安防监控于智能建筑[J].智能建筑于城市信息.2014.[10]谦珀.MCS-51单片机多串口通讯技术应用分析[J].科技致富向导.2013.[11]建波,延平.STC89c52单片机实现多路无线防盗报警系统[J].硅谷.2011.[12]刑海霞,索明何.基于FM1702射频识别读写器的设计与实现[J].科技广场.2007.[13]万国帅,宝赢,祁建广.小区门禁控制系统的设计与实现[J].工业大学学报.2013.[14]荣峰,厉颜峰.基于网络的门禁系统的设计[J].天津工业大学学报.2008.[15]高璇.单片机C语言的编程探析[J].硅谷.2013.致谢一个学期的毕业设计很快就要结束了,在此期间,我学到了一些更为实际的技巧和如何将理论运用到实际中的技巧。多谢王欢老师在此期间对我的悉心指导和教诲。在此,我表示衷心地感谢。三个多月的毕业设计使我感触很深,从对毕业课题的懵懂无知到整个毕业设计的完成,我翻阅了大量的资料,几乎把四年来的专业课本都翻遍了,从而不知不觉间也就将四年来学的知识重新学了一遍,同时也将这些知识系统条理化了。在此期间,我遇到了很多的难题,比如单片机使用,protle软件的使用等等,感谢老师的耐心地指导才将其解决。再次感谢老师不辞辛劳地在我设计期间在理论和实践各个方面对我的有益的建议和具体指导,他们诲人不倦的精神、严谨的治学态度、平易近人的工作作风、渊博的学识,使我钦佩不已,终生难忘。同时,感谢在做毕业设计期间,给予我帮助的同学和朋友致以谢意。因为我个人知识面的局限性,经验的缺乏,设计中某些细节难免有错误,文中难免有不当和疏漏之父。感谢百忙之中抽出宝贵时间为本文审阅的各位老师,望各位老师批评指正。附录附录1系统原理图.WORD.WORD版本.附录附录1系统原理图.WORD.WORD版本.附录附录2程序.WORD.WORD版本.附录附录2程序.WORD.WORD版本.12864程序#include<rcg52.h>#dcfineucharunsignedchar#dcfineuintunsignedintsbitRS=P3-7;sbitRW=P3'6;sbitE=P35sbitPSB=P01; //硬件上的串口,并口选择位,此开发板用的是井口,此位置1为井口ucharcodetable_7[]=]”("};ucharcodetable_8[]={n)n};ucharcodetable_9[]={nucharcodetable-b[]={n请刷卡”};ucharcodetable_c[卜{"密码错!”};ucharcodetab1e_d[卜{"请接射频卡模块!"};///〃延时函数〃////〃〃////〃///〃//〃〃///////voidde1ay1(unsignedintz)unsignedintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/////////////////////////////////////////////////////写命令/〃〃〃//〃〃//〃/〃〃//〃〃〃/〃〃/voidWritcCommand(uchara)(E=0;//I读取信息;1-0下降沿执行指令RS=0;〃0=写指令;1=写数据R30;〃0=写指令或数据;1=读LCD信息E=1;//读信息.WORD.WORD版本.voiddis-RcqucstlOvoiddis-RcqucstlO.WORD版本.P2=a;//写指令delayl(5);〃延时E=0; 〃执行指令delay1(5); 〃延时}//////////////////////////////////////////////////〃〃//写数据/〃〃〃〃/〃〃〃〃/〃〃〃/〃〃〃/〃〃/voidWriteData(ucharb)E=0; 〃执行指令RS=1;〃写数据RgO; //写数据E=l; 〃读取信息P2=b;〃写数据delayl(5); 〃延时E=0;〃执行指令dclayl(5); 〃延时}voidinitiaLLCDOPSB=1;〃选择为井口WritcCanmand(OxO1);WritcCanmand(OxO1);〃清屏Writc€ommand(0x30);〃功能设置。8字节界面,基本指令集。(0011xOxx)Writc€ommand(0x30);WritcCommand(OxOc);〃显示设置。整体显示,光标不显示,光标不反向°(00001110)WritcCaninand(0x06); //输入方式设置。光标右移,地址位加1;整体右移°(00000110)//WriteConimand(0xl4); 〃光标右移。voidLCD-Data(ucharLCDbytc)unsignedcharcount;count=(LCDbytc&Oxf0)»4;if(count>0x9)WriteData(count%9+0x40);elseWriteData(count-l-0x30);count=LCDbytc&Ox0f;if(count>9)WriteData(count%9+0x40);elseWriteData(count+0x30);/*株*******举例:LCD』utString(l,1,”设置湿度上限.);********♦**/voidLCD_PutString(unsignedcharx,unsignedchary,uchar*s)(switch(y)(ease1:WriteCommandC0x80+x):break;ease2:WriteCommandC0x90+x);break;ease3:WriteCommandC0x88+x);break;ease4:WriteCommandC0x98+x);break;default:break;}while(*s>0)(WritcData(*s);s++;dclayl(lO);uchari;WriteConiniand(0x9b);for(i=l;i<=l;i++)WritcData(tabie_7[i-1])WriteConmiand(0x9c);for(i=l;i<=l;i++)WritcData(tabie_8[i-1])}voiddis_Rcqucst2()(uchari;WriteConmiand(0x9a);for(i=l;i<=l;i++)WritcData(tabie_7[i-1])WriteCommand(0x9d);for(i=l;i<=l;i++)WritcData(tabie_8[i-1]))voiddis_Rcquest3()(uchari;WriteConiniand(0x99);for(i=l;i<=l;i++)WritcData(tabie_7[i-1])WriteConmiand(0x9e);for(i=l;i<=l;i++)sbitsi=P0-5;sbitsi=P0-5;.WORD版本.sbitsi=P0-5;sbitsi=P0-5;.WORD版本..word.word版本.WriteData(table_8[i-l])voidDispalyLcdlO(unsignedchari;WriteCommand(0x98);for(i=l;i<=16;i++)WritcData(table_9[i-1]);voidDispalyLcd_honie()〃工作模式{LCD一Putstring(1,1J门禁卡系统");LCD_PutString(2,2,"工作模式");LCD_PutString(2,3,”请刷卡");)voidDispalyLcd_homel()〃注册模式(LCD_PutString(1,1「门禁卡系统");LCD_PutString(2,2,"注册模式”);LCD_PutString(2,3,"请刷卡");}voidDispa1yLcd_honic2()〃清除模式(LCD_PutString(1,1J门禁卡系统");LCD一PutString(2,2,"注销模式");LCD_PutString(2,3,"请刷卡");}voiddis_passerror()unsignedchari;WritcCommand(0x88);for(i=l;i<=16;i++)WriteData(table_9[i-l]);DispalyLcdK);WritcCominand(0x9a);for(i=l;i<=7;i++)WriteData(table.c[i-1]);FM1702程序include<reg51.h>include<intrins.h>include<FM1702.h>include <STDI0.H>dcfinePAUSE」NTEA=0;dcfineSTART.INTEA=1;dcfineucharunsigncdchardcfineuintunsignedint#dcfineTRUE1#defineFALSE0sbitrst=P(T7;sbitcs=P06;.WORD.WORD版本..WORD.WORD版本.sbitsck=P0"4;sbitso=P03;sbitJD=P34;sbitbeep=PrO;sbitKl=Pr3;ucharflag=0;unsignedchardate;unsignedcharTxData[5];voidUART.InitO;ucharRcceivcO;voidSend(unsignedcharback);voidsend^char_(ucharch);void send^string_(uchar*str,ucharstrlcn);///〃变量定义〃////〃〃//////*FM1702命令发送接收缓冲区/*FM1702命令发送接收缓冲区*//*序列号*//*块号*/〃要操作的扇区号〃刷卡扣取的金额,2个字节,65535ucharUID[5J;ucharSccnr;#dcfine mlerca0x01uint pay=l;〃刷卡充值的金额,〃刷卡充值的金额,每刷一次充值100元uint ctimc,cctimc;ucharctimeH,ctimeL;ucharlcd[5];bitICValucFlag=l; //IC卡分值为0标志位bitpayflag=O;/////变量定义〃/////〃////////////////////////////子函声明////〃//////〃//////〃〃///〃ucharSPIRead(charrcg_ad);voidSPIWrite(charrcg-ad,charrcg_data);voidWrite_FIFO(ucharcount,uchar*buff);ucharClearJ^IFOCvoid);ucharJudge„Rcq(uchar*buff);ucharConiiiiand_Send(ucharcount,uchar*buff,ucharComm_Sct);ucharRequcst(ucharmode);voiddelayCuintx);ucharRead_FIFO(uchar*buff);//voidSave_UID(ucharrow,ucharcohucharlength);ucharAntiCol1();ucharChcck_UID();//voidSct_BitFraming(ucharrow,ucharcol);ucharSelcct.CardO;charM500HostCodcKcy(uchar*uncodcd,uchar米coded);ucharLoad_key.CPY(uchar*buff);voidkeytoO;ucharb1ock_numset(ucharblock-nuin);ucharMIF__Write(uchar*buff,ucharBlock-Adr);ucharRea(l_E2(ucharIsb,ucharmsb,ucharcount,uchar*buff);ucharCRCrdadandset(uchar*buff,ucharRW);voidinitial_LCD();voidDispalyLcdO;voidLCD_Data(ucharLCDbyte);.WORD版本..WORD.WORD版本..WORD.WORD版本.voidWritcCommandCuchara);voiddisplayUidO;buffi,ucharvoiddisplaymunCuchartempi,uchartcmp2,uchartcmp3,uchartcmp5,ucharbuff2,ucharbuff3);buffi,ucharvoiddis_Rcqucstl();voiddis_Rcquest2();voiddis_Rcqucst3();voidLCD_PutString(unsignedcharx,unsignedchary,uchar*s);////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////voidInit_FM1702()(uchartemp;uinti;sck=1;so=1;si=1;rst=1; /*FM1702复位*/forCi=0;i<Oxff;i++){_nop_(); /*等待约140ms,11.0592*/}rst=0;for(i=0;i<Oxff;i++)(_nop_();}///////////init.spi///////////////////////////////////////////////while(tcmp=SPIRead(Command)!=0)/♦等待Command=0,FM1702复位成功*/////////////////////////////////////////////////////////////////////////////SPIWrite(Page_ScL0x80);〃往SPIWrite(Page_ScL0x80);〃往PAG里面写0X80初始化SPI接口for(i=0;i<Oxff;i++)/*延时*/if(tcmp=SPIRcad(Command)==0x00)〃如果Canmand为if(tcmp=SPIRcad(Command)==0x00)〃如果Canmand为0表示初始化SP1接口成功SPIWrite(Page_ScL0x00);〃往PAG里面写0开使用SPI接口//////////iniW1702///////////////////////////////////////SPIWritc(IriterruptEn,0x7f);//address06H/*中断使能/禁止寄存器*/offSPIWritednt.Rcq,0x7f);//address07H/*中断请求标识寄存器*/清0SPIWriteCTxControL0x5b);//address11H/*发送控制寄存器*/SPIWritc(IriterruptEn,0x7f);//address06H/*中断使能/禁止寄存器*/offSPIWritednt.Rcq,0x7f);//address07H/*中断请求标识寄存器*/清0SPIWriteCTxControL0x5b);//address11H/*发送控制寄存器*/SPIWritc(RxContro12,0x01);//address1EH设置接收控制寄存器SPIWrite(RxWait,0x07);//address21H设置接收和发送之间的时间间隔SPIWriteCTypcSH,0x00);〃。:TYPEA模式*〃*LTYPEB模式切/*2:模式*/SPIWriteCTypcSH,0x00);//////////////////////////////////////////////////////////////////////////////名称:spi.byte.transceivc////功能:该函数实现SPI通讯的数据收发////输入://名称:spi.byte.transceivc////功能:该函数实现SPI通讯的数据收发////输入:发送数据//输出://接收数据 〃// //charspi_byte_transceive(charsendbyte)(chari,temp;for(i=0;i<8;i++)(sck=O;if(sendbyte&0x80) 〃位运算,判断最高位是否为1(si=l;Ielse(si=0;}sendbyte«=1;sck=l;temp«=1;if(so)temp|=0x01;}sck=0;.nopj);_nop_();si=0;return(temp);//- ////名称:rc531_rcgister^write //.WORD版本.

//功能:该函数实现通过SPI接口对RC531中一个寄存器写入值//////////// RC531目标寄存器地址和写入值//TOC\o"1-5"\h\z//输出: ////N/A //// //voidSPIWrite(charrcg^ad,charreg_data)(sck=0; 〃时钟reg_ad«=1;cs=0; 〃接口选通rcg_ad&=0x7F; 〃最高位为0表示写spi_byte_transccive(reg_ad); 〃写地址spi.byte.transccive(rcg_data);〃写数据cs=l;return;TOC\o"1-5"\h\z〃名称:rc531.register_rcad ////功能:该函数实现通过SPI接口读取RC531中一个寄存器的值 //// //〃输入: 〃// RC531目标寄存器地址 〃// ////输出: ////目标寄存器的值 //ucharSPIRead(charrcg_ad){chartemp;.WORD版本..WORD.WORD版本..WORD.WORD版本.sck=O;〃时钟sck=O;〃时钟jnopJ);』op_();cs=0;〃接口选通开rcg.ad«=1; 〃rcg_ad左移一位付值给rcg.adrcg_ad1=0x80; 〃rcg_ad跟“0X80”或运算后付值给rcg_ad最高位为1表示读spi-byte.transccive(reg_ad);tcmp=spi_byte_transccive(0x00);cs=l;return(temp);/*****米米******米米*************米米米******米米**************米******米米米*//*名称:Request*//*功能:该函数实现对放入FM1702操作困之的卡片的Request操作*//*输入:mode:ALL(监测所以FM1702操作国之的卡片)*//*STD(监测在FM1702操作国之处于HALT状态的卡片)*//*输出:FM1702.NOTAGERR:无卡*//*FM1702.OK:应答正确*//*FM1702.REQERR:应答错误*//*****米米******米米*************米米米******米米**************米******米米米*/ucharRequcst(ucharmode)unsignedchartemp;RevBuffer[0]=mode;SPIWrite(0xlL0x58);〃关发射控制SPIWrite(0xlL0x5b)"/开发射控制SPIWriteCOxOt0x07);//addressOFH调整位的帧格式temp=SPIRcad(0x09);tcmp&=0xf7;SPIWrite(0x09,temp);SPIWrite(0x22,0x03);temp=Command.SendChRevBuffcr,Transccive);if(temp==FALS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论