基于单片机的IC卡读卡器设计本科毕业论文_第1页
基于单片机的IC卡读卡器设计本科毕业论文_第2页
基于单片机的IC卡读卡器设计本科毕业论文_第3页
基于单片机的IC卡读卡器设计本科毕业论文_第4页
基于单片机的IC卡读卡器设计本科毕业论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计)(题目:基于单片机的IC卡读卡器设计)******本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果.据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果.与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意.毕业论文(设计)作者签名:日期:页1绪论1.1非接触式IC卡发展历程非接触式IC卡又称射频卡,由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分.是世界上最近几年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破.卡片在一定距离范围(通常为5—10mm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作.工作原理射频读写器向IC卡发一组固定频率的电磁波,卡片内有一个IC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电荷的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据.发射原理非接触性IC卡与读卡器之间通过无线电波来完成读写操作.二者之间的通讯频率为13.56MHZ.非接触性IC卡本身是无源卡,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与本身的L/C产生一个瞬间能量来供给芯片工作.另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器,完成一次读写操作.读写器则一般由单片机,专用智能模块和天线组成,并配有与PC的通讯接口,打印口,I/O口等,以便应用于不同的领域.1.2非接触式IC卡的主要特点由于IC卡与读卡器间的通信是借助电磁波进行,不存在机械运动和电触点机构.所以在保留了接触式IC卡原有的优点的同时,又有如下诸多优点.操作便利快捷,不需要插拔卡,将卡片置于读卡器表面,即可完成操作,操作极其方便简单.可靠性高,寿命长,卡片与读卡器没有机械接触,故不存在接触式读卡器可能出现的各种故障;卡片与读卡器二者都没有裸电触点,无需担心出现破损和脱落所导致的卡片失效;卡片与读卡器均为全封闭闭水及防尘结构,既避免了静电和尘污等对卡与读卡器的影响,可以防止粗暴插卡.这些都将大大提高了卡片乃至读卡器的可靠性和使用寿命.安全性好,卡片与读卡器采用了3次相互确认的双向验证机制,在读卡器验证卡片的合法性时,卡片也对读卡器的合法性进行了验证.卡内各存储区可拥有自己的操作密码和访问条件,以防止未授权非法访问,并实现芯片传输密码保护.抗干扰能力强,可建立防冲突机制,同一时间同时处理多张卡,且不出现相互间的数据干扰.1.3非接触式IC卡读卡器的国内外现状目前国内非接触式IC卡读卡器按照应用的场所不同出现了全面发展的趋势,有便携式读卡器、读卡器模块、高频读卡器、低频读卡器等各种各样的产品.这些产品有的适合近距离读写,有的则适合远距离读写.因此,出现了同质化很严重的问题,各种产品之间的差别不大,性能也相似,但核心技术并不在自己手上,缺乏成套系统的自主生产权.随着技术的进步,读卡器会随着多功能如条形码识别、以太网传输等方向发展,读卡器的成本也越来越低,同时读卡器将像多制式、多频段兼容且多功能的方向发展.1.4选题背景及课题任务本课题的背景是校园一卡系统收费终端的应用,随着科学技术的迅猛发展,社会的日益信息化,技术的不断革新以及要求的不断提高,需要设计出一个功能丰富,性能更加稳定的,并且具有友好人机界面的嵌入式智能终端,来取代现在市场上的基于单片机的收费终端.该读卡器必须简单,方便快捷.2系统设计的整体规划2.1硬件设计思路:IC卡的应用领域非常广泛.在IC卡的触点和读/写设备的触点良好接触之前,读/写设备不应对IC卡施加有关信号,以免造成不可预料的损坏.IC卡读/写设备作为系统和用户交换的接口,必将面对各种各样复杂的应用环境.因此,在设计阶段应注意IC卡读/写设备环境.作为操作系统,管理IC卡的硬件资源和数据资源是其基本任务.IC卡上的硬件资源包括CPU,ROM,EEPROM和RAM及通讯接口,这些都由IC卡上操作系统统一管理,使外部不能直接控制这些资源,使IC卡对外表现为一个"黑匣子",从而加强了系统的保密性能.智能卡通讯管理主要功能是执行智能IC卡的信息传送协议,接收读写器发出的指令,并对指令传递是否正确进行判断.一般可采用奇偶检,CRC校验等方式判断传输错误.对于采用分组传输协议的系统,还可以通过分组长度变化来检出错误.智能卡操作系统最重要的功能之一就是数据安全管理.这可以具体地分为用户与IC卡的鉴别,核实功能以及对传输数据的加密与解密操作.智能IC卡COS的应用管理功能是对读写器发来的命令进行判断,译码和处理.智能卡的各种应用以专有文件形式存在卡上,各专有文件则是由IC卡的指令系统中指令排列所组成的."鉴别"是指对IC卡本身的合法性进行验证,判定一张IC卡是不是伪造的.如在前两讲中谈到的多采用多种卡上设置的读,写,擦除密码作为防伪的基本手段.而COS由于可以通过内部软件运行来完成密码转换,因此智能IC卡上实际写入的密码无法被读写器直接读取,安全性能更强.IC卡由于其高存储量和高保密性,应用领域十分广泛,除覆盖了传统磁卡的全部功能外,还拓展到许多磁卡不能胜任的领域.2.2硬件论证方案:IC卡是一种集成电路卡,它的读/写设备是每个IC卡应用系统必不可缺的周边设备.该设备通过IC卡的8个触点向IC卡提供电源并与IC卡相互交换信息.虽然IC卡是从磁卡发展而来的.本IC卡读/写器的硬件系统设计主要有:IC卡的插拔检测,IC卡的电源控制,IC卡与CPU的接口以及必要的人机界面.软件系统主要由IC卡数据读/写模块,串行通信模块等组成.2.3系统的方案确定对于本论文的基于单片机的IC卡读卡器系统来说,整个系统由电源模块、时钟电路模块、显示电路、报警系统几个部份组成。整个系统由单片机控制,能够通过借口把数据从PC上显示出来。电源模块负责提供电力;显示电路负责显示实时数据,报警系统负责当数值超过卡内数据时,通过蜂鸣器提示,系统整体结构框图如图2.1所示。图2.1系统结构框图3硬件设计3.1单片机的简介STC12LE5A16S2是16KFlash的宏晶STC12C5A60S2系列单片机,采用宏晶第六代加密技术,STC12C5A60S2系列单片机器件是1个时钟/机器周期8051单片机,低功耗、高速、高可靠、强抗静电、强抗干扰。STC12LE5A16S2特性:(1)高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快6-12倍;(2)宽电压:3.6-2.2V(3V单片机);(3)增加第二复位功能脚/P4.6;(4)增加外部掉电检测电路/P4.6,可在掉电时,及时将数据保存进EEPROM,单片机引脚图如下:图3.1单片机引脚图各个引脚的介绍P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1.0—P1.7(1-8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。P2.0—P2.7(21-28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。P3.0—P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口。3.1.1电源电路电源电路是指提供给用电设备电力供应的电源部分的电路设计,使用的电路形式和特点。有交流电源也有直流电源。常见的电源电路有交流电源电路、直流电源电路等。本系统所用的电源电路电路图如下图3.2电源电路3.1.2蜂鸣器电路蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。本系统中的蜂鸣器系统用于,当该读卡器系统正常运作时,通过蜂鸣器响两声来表示,该蜂鸣器电路如下:图3.3蜂鸣器电路3.1.3天线电路本次设计的系统,系统数据存储在无源Mifare卡中。读写模块的主要任务是将能量传输给Mifare卡。并与之建立通信。天线是非接触式IC卡读写模块的一个重要组成部分,在读写模块和非接触式IC卡通信过程中,天线用于产生能发射和接收射频信号的磁通量.而磁通量用于向卡提供电源并在读写模块和卡片之间传送信息。因此,在设计中要求天线线圈的电流最大,以用于产生最大的磁通量,并要确保有足够的带宽。读写模块的性能与天线的参数有着直接的关系。在对天线的性能进行优化之后。读写模块的读卡距离可以达到10cm。

由于FM1702SL的频率是13.56MHz.属于短波段,因此可以采用小环天线。小环天线有方型、圆形、椭圆型、三角型等,本系统采用的是矩型天线。天线的最大几何尺寸同工作波长之间没有一个严格的界限。一般定义为:

L/λ≤1/(2π)(1)

式中,L是天线的最大尺寸,λ是工作波长。对于13.6MHz的系统来说,天线的最大尺寸在50cm左右。

在天线设计中,品质因数Q是一个非常重要的参数。对于电感耦合式射频识别系统的读写器天线来说。较高的品质因数值会使天线线圈中的电流强度也较大,由此可改善对卡的传送功率。品质因数的计算公式为:

式中,f0是工作频率,Lcoil是天线的尺寸,Rcoil是天线的半径。

通过品质因数可以很容易地计算出天线的带宽:

B=f0/Q(3)

从式中可以看出,天线的传输带宽与品质因数成反比关系。因此。过高的品质因数会导致带宽缩小,从而减弱读写器的调制边带,导致无法与卡通信。一般系统的最佳品质因数为10-30,最大不能超过60。本设计中的天线电路如下:图3.4天线电路3.2I/O口STC12LE5A16S2单片机内部有P0、P1、P2、P3四个8位双向I/O口,外设可直接连接于这几个接口上,而无须另加接口芯片。P0-P3的每个端口可以按字节输入或输出,也可以按位进行输入或输出,共32根口线,用作控制十分方便。P0口为三态双向口,能带8个TTL电路。P1、P2、P3口为准双向口,负载能力为4个TTL电路,如果外设需要的驱动电流大,可加接驱动器。P0口是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1.0—P1.7(1-8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。P2.0—P2.7(21-28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。P3.0—P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口。3.3FM1702芯片简介FM1702SL是复旦微电子股份有限公司基于IS014443标准设计的非接触卡读卡机专用芯片,该芯片采用的是0.6微米CMOSEEPROM工艺制造.可支持ISOl4443typeA协议和MIFARE标准的加密算法。芯片内部集成了模拟调制解调电路。因而只需搭接最少量的外围电路就可以工作。FM1702SL芯片支持SPI接口,其数字电路具有TTL、CMOS两种电压工作模式。特别适用于ISO14443标准下的水、电、煤气表等计费系统的读卡器的应用。该芯片的三路电源都适用于低电压。该芯片电路如图3.5图3.5FM1702芯片电路

功能特点:

高集成度的模拟电路,只需最少量的外围线路;操作距离可达10cm;支ISO14443typeA协议;包含512byte的EEPROM;支持MIFARE标准的加密算法;

包含64byte的FIFO;数字电路具有TTL/CMOS两种电压工作模式;软件控制的powerdown模式;一个可编程计时器;一个中断处理器;启动配置可编程;

数字,模拟和发射模块都有独立的电源供电;采用SOP24封装;支持SPI接口。4软件设计4.1

软件开发工具的选择本设计中采用KeilC51软件进行编程,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。图4.1编程环境在进行系统软件设计时,先要对本课题所选用的硬件有一个熟练的掌握,知道系统的组成、数据的传输、信号是如何被控制的以及信号的显示。搞清楚各个部分的子程序及他们的流程图,然后用KeilC51软件进行编程,最后将它们系统的编程。4.2系统主程序流程图系统软件设计主要包括流程图和系统程序两个部分。根据整个系统设计的要求,完成读取卡必须经过以下几个步骤:读卡器系统首先进行初始化,判断在射频区域内是否有IC卡,接着读取IC卡卡号,若正常,则蜂鸣器响两声,再传给PC机,并显示数据。其流程图如下:开始开始初始化否否有卡?有卡?是是读IC卡卡号读IC卡卡号蜂鸣器响2声蜂鸣器响2声传输给PC机传输给PC机显示数据显示数据图4.2流程图5调试5.1读写器连接1.把通讯线串口232交叉线“DB9”端插到PC机的串口1/2上2.把USB线的T型端插到读写器的T型USB座子上,另一头接电脑的USB口,从电脑取电.3.读写器上电以后可以听到”嘀,嘀”两声蜂鸣器的响声,说明FM1702复位初始化正常.如果没有听到蜂鸣器声,表明读写器没有正常上电或射频模块没有接好.5.2启动软件1.进入功能选项“参数设置”里面,可以设置串口通讯参数:串口号、波特率、校验位、数据位、停止位等等,设置好了以后点击“修改串口”,如果出现“串口参数设置成功”,表明串口设置成功,如果出现异常,请按照提示做出改动。2.设置完毕以后可以点击“测试读卡器”,如果出现“读卡器连接成功”,并且听到读卡器的蜂鸣器响声,证明串口设置正确!如果出现“读卡器连接失败”,表明串口设置有问题;或者没有任何提示时,表明波特率设置错误,请重新设置。3.读写器默认参数:Com1、9600bps、N、8、15.3卡片读写测试1.把一张MifareOne卡片放在天线区域范围内2.进入功能选项“低级操作”里面点击“寻卡”,如果出现“寻卡成功!”表明寻卡正常,如果出现“执行失败!”表明出现异常,请检查卡片是否在寻卡范围内,如果确认卡片没有问题,那读写器有异常。结论在本系统的开发应用过程中,由本人独立完成IC卡读写器的设计,但是,由于本人经验、知识积累的欠缺,本设计还存在很多不足和欠缺.但是,IC卡读卡器还是应用特别的广泛,此次的设计还是比较实用,基本实现了预期目标.本次设计结束了我的大学生涯,它是具有标志性的.它不仅仅是一次毕业论文设计,在设计中我通过实践,掌握了更多的专业知识,由于亲自动手实践,查阅了大量有关于IC卡,单片机的资料,更加深刻的记忆其中的内容.在设计中培养动思维方式、动手能力,这对今后的生活、工作、学习都有很大的帮助.而且,同学的互助,让我更懂得工作需要团体精神!这比设计本身更有意义.参考文献:[1]罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,2005.5

[2]刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,2003.8

[3]薛筠义,张彦斌.凌阳16位单片机原理及应用,2003.2

[4]徐爱卿.Intel16位单片机,2002.7

[5]霍孟友等,单片机原理与应用机械工业出版社,2004.1

[6]王爱英《智能卡技术》清华大学出版社[7]沈红利《单片机应用系统设计实例与分析》北京航空航天大学出版社[8]黄淼云,李也白,王福成.智能卡应用系统[M].北京:清华大学出版社,2001.[9]何立民《单片机应用技术选编》北京航空航天大学出版社2004[10]周立功单片机公司策划的《单片机试验与实践》2004[11]居水荣《单片机开发系统综述》半导体情报2001[12]于宏军,赵冬艳《智能(IC)卡技术全书》北京:电子工业出版社1996谢辞通过这段时间的不懈努力,我的毕业设计终于完成了.同时也意味着自己的大学生活即将结束.回首大学的四年时光,有喜有忧,有进取也有彷徨,但这所有的一切都将是我人生道路上的巨大收获.所以我首先感谢我的母校-安徽新华学院,正是在这里,让我学到了很多很多,让我不仅在专业技能方面得到了提升,而且也学到了许多为人处事方面的道理,使我在学习上和思想上都受益匪浅,当然,这除了自身努力之外,与各位老师、同学的关心、支持和鼓励是分不开的.在本论文的写作过程中,我的指导老师涂德凤老师给予了我细心的指导.在论文写作之初,由于我们都是第一次做自己的毕业设计,所以说我对毕业设计的概念很模糊,没有很好的理解设计这一概念,使自己从写作论文开始就走了很多的弯路,导致我对自己的毕业设计感到很迷茫,在这种情况下,我的指导老师老师给与了我耐心细致的指导和帮助,他首先从设计这一概念上着手,让我充分理解毕业设计是一种自己的设计这一概念,使我把握住毕业设计的这一主方向,然后从这一方向着手,逐步进行各方面的设计,包括软、硬件的设计,各硬件设备的选择等,使我慢慢的对毕业设计有了自己清晰的设计思路和想法,到最终顺利完成自己毕业设计论文,在此我对我的指导老师表示衷心的感谢,同时我还要感谢在我学习期间给我极大关心和支持的各位老师、同学.通过这次毕业设计,也为我以后步入社会,从事各方面的工作积累了一定的经验.在此,我再次向我的指导老师涂德凤老师表示衷心的感谢!谢谢您不厌其烦的对我进行指导和帮助.附录附录一硬件原理图附录二系统主程序附录一硬件原理图附录二系统主程序#include"STC12C56A.h"#include<string.h>#include<intrins.h>#include"main.h"#include"slrc1702.h"#include"iso14443a.h"bitg_bReceOk;//正确接收到上位机指令标志bitg_bRc1702Ok;//RC1702复位正常标志unsignedintg_cReceNum;//接收到上位机的字节数unsignedintxdatag_cCommand;//接收到的命令码unsignedcharxdatag_cSNR[4];//M1卡序列号unsignedcharg_cIcdevH;//设备标记unsignedcharg_cIcdevL;//设备标记unsignedcharg_cFWI;//unsignedcharg_cCidNad;//unsignedcharxdatag_cReceBuf[64];//和上位机通讯时的缓冲区structTranSciveBuffer{unsignedcharMfCommand;unsignedintMfLength;unsignedcharMfData[64];};unsignedcharxdataScanTimes=0;unsignedcharxdataCardIDbuf[8]={0x55,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};unsignedcharxdata SendBuf[8];voidUartSendByte(unsignedchar*buf,unsignedcharlen){ unsignedchari; ES=0; TI=0; for(i=0;i<len;i++) { SBUF=buf[i]; while(!TI); TI=0; } TI=0; ES=1;}//P13-P17开漏输出配置P1M0=0xF8 P1M1=0xF8voidmain(){ charidatastatus; //P13-P17开漏输出配置 P1M0=0xF8; P1M1=0xF8;InitializeSystem();Rc1702Ready();PcdConfigISOType('A'); WDT_CONTR=0x3c;//1.13s UartSendByte(CardIDbuf,4); while(1){ WDT_CONTR=0x3c;//1.13sif(g_bReceOk){g_bReceOk=0; g_cCommand=g_cReceBuf[0];switch(g_cCommand){case0x01:ComHlta();break;//响应上位机发送的A卡休眠命令case0x02:ComRequestA();break;//响应上位机发送的寻A卡命令case0x03:ComAnticoll();break;//响应上位机发送的A卡防冲撞命令case0x04:ComSelect();break;//响应上位机发送的A卡锁定命令 case0x05:ComM500PiccAuthE2();break;///校验密码 case0x06:ComM500PcdLoadKeyE2();break;///下载密码case0x07:ComAuthentication();break;//响应上位机发送的A卡验证密钥命令case0x08:ComM1Read();break;//响应上位机读M1卡命令case0x09:ComM1Write();break;//响应上位机写M1卡命令case0x0A:ComM1Decrement();break;//响应上位机扣款命令 case0x0B:Comsond();break; case0x0C://参数设置 g_cReceBuf[0]=1; //contact g_cReceBuf[1]=0; break; } } if(ScanTimes)//询卡时间到 { ScanTimes=0; //加入异常处理 status=PcdRequest(0x26,CardIDbuf);// if(status!=MI_OK) { status=PcdRequest(0x26,CardIDbuf);// } if(status==MI_OK) { status=PcdAnticoll(&CardIDbuf);//CardIDbuf低位在前 A卡防冲撞命令 if(status==MI_OK) { status=PcdSelect(CardIDbuf,&g_cReceBuf[2]);//A卡锁定命令 PcdHalt();//A卡休眠命令 if(status==MI_OK) { SendBuf[0]=0xAA;SendBuf[1]=0xFF;//帧头 SendBuf[2]=CardIDbuf[3];//卡号1 SendBuf[3]=CardIDbuf[2];//卡号2 SendBuf[4]=CardIDbuf[1];//卡号3 SendBuf[5]=CardIDbuf[0];//卡号4 SendBuf[6]=CardIDbuf[0]+CardIDbuf[1]+CardIDbuf[2]+CardIDbuf[3];//卡号校验和 UartSendByte(SendBuf,7);//发送卡号 } } } } }}ES=1; //ET1=1; EA=1; }///////////////////////////////////////////////////////////////////////初始化fm1702/////////////////////////////////////////////////////////////////////voidRc1702Ready(){ charstatus; DelayMs(100); DelayMs(100); DelayMs(100); DelayMs(100); DelayMs(100); DelayMs(100); DelayMs(100); status=PcdReset(); if(status!=MI_OK) { DelayMs(10); status=PcdReset(); } if(status!=MI_OK) { DelayMs(10); status=PcdReset(); } if(status==MI_OK) { g_bRc1702Ok=1; BELL=0;//蜂鸣器响二声,表示fm1702复位成功 DelayMs(100); BELL=1; DelayMs(200); BELL=0; DelayMs(100); BELL=1; }} ///////////////////////////////////////////////////////////////////////响应上位机发送的寻A卡命令/////////////////////////////////////////////////////////////////////voidComRequestA(){ charstatus; status=PcdRequest(g_cReceBuf[1],&g_cReceBuf[2]); if(status!=MI_OK) { status=PcdRequest(g_cReceBuf[1],&g_cReceBuf[2]); } if(status!=MI_OK) { g_cReceBuf[0]=1; g_cReceBuf[1]=status; AnswerOk(); return; } if(g_cReceBuf[2]==2) g_cCidNad=mifarepro;//MifarePro卡 elseif(g_cReceBuf[2]==4) g_cCidNad=mifare1;//MifareOne卡 elseif(g_cReceBuf[2]==16) g_cCidNad=mifarelight;//MifareLight卡 else g_cCidNad=unknowncard; g_cReceBuf[0]=3; g_cReceBuf[1]=status; AnswerOk();}///////////////////////////////////////////////////////////////////////响应上位机发送的A卡防冲撞命令/////////////////////////////////////////////////////////////////////voidComAnticoll(){ charstatus; status=PcdAnticoll(&g_cSNR); if(status!=MI_OK) { g_cReceBuf[0]=1; g_cReceBuf[1]=status; AnswerOk(); return; } g_cReceBuf[2]=g_cSNR[0]; g_cReceBuf[3]=g_cSNR[1]; g_cReceBuf[4]=g_cSNR[2]; g_cReceBuf[5]=g_cSNR[3]; g_cReceBuf[0]=5; g_cReceBuf[1]=status; AnswerOk(); }///////////////////////////////////////////////////////////////////////响应上位机发送的A卡锁定命令/////////////////////////////////////////////////////////////////////voidComSelect(){ charstatus; g_cReceBuf[1]=status; AnswerOk(); }}///////////////////////////////////////////////////////////////////////响应上位机读M1卡命令/////////////////////////////////////////////////////////////////////voidComM1Read(){ charstatus; status=PcdRead(g_cReceBuf[1],&g_cReceBuf[2]); if(status==MI_OK) { if(g_cCidNad==mifare1||g_cCidNad==mifarepro) g_cReceBuf[0]=17; else if(g_cCidNad==1) g_cReceBuf[0]=9; else g_cReceBuf[0]=16; g_cReceBuf[1]=status; AnswerOk(); return; } else { g_cReceBuf[0]=1; } g_cReceBuf[1]=status; AnswerOk();}///////////////////////////////////////////////////////////////////////响应上位机写M1卡命令/////////////////////////////////////////////////////////////////////voidComM1Write(){ charstatus; status=PcdWrite(g_cReceBuf[1],&g_cReceBuf[2]); g_cReceBuf[0]=1; g_cReceBuf[1]=status; AnswerOk();}///////////////////////////////////////////////////////////////////////响应上位机扣款命令/////////////////////////////////////////////////////////////////////voidComM1Decrement(){ charstatus; status=PcdValue(g_cReceBuf[1],g_cReceBuf[2],&g_cReceBuf[3]); if(status==MI_OK) { g_cReceBuf[0]=1; g_cReceBuf[1]=status; AnswerOk(); return; } g_cReceBuf[0]=1; g_cReceBuf[1]=status; AnswerOk(); return;}///////////////////////////////////////////////////////////////////////正确执行完上位机指令,应答(有返回数据)//input:answerdata=应答数据//answernum=数据长度///////////////////////////////////////////////////////////////////// TI=0; ES=1;}///////////////////////////////////////////////////////////////////////串行中断,接收上位机数据using1/////////////////////////////////////////////////////////////////////seri_int()interrupt4{unsignedcharlen,i;unsignedintj=0; if(RI) { ES=0; len=SBUF; RI=0; for(i=0;i<len;i++) { while(!RI) { j++; if(j>1000) { ES=1; break; } } if(j<1000) { g_cReceBuf[i]=SBUF; RI=0; j=0; } else { ES=1; break; } } if(i==len) { ES=1; g_bReceOk=1; } }}///////////////////////////////////////////////////////////////////////用T2做延时子程序/////////////////////////////////////////////////////////////////////voidDelayMs(unsignedint_MS){/* RCAP2LH=RCAP2_1ms;T2LH=RCAP2_1ms;ET2=0; //Disabletimer2interruptT2CON=0x04;//16-bitauto-reload,clearTF2,starttimerTR2=1;while(_MS--){while(!TF2);TF2=0;}TR2=0;*/ unsignedinti=0; while(_MS--) for(i=0;i<120;i++);}voidDelay_50us(unsignedchar_50us){/*RCAP2LH=RCAP2_50us;T2LH=RCAP2_50us;ET2=0; //Disabletimer2interruptT2CON=0x04; //16-bitauto-reload,clearTF2,starttimerwhile(_50us--){while(!TF2);TF2=0;}TR2=0;*/ unsignedchari=0; while(_50us--) for(i=0;i<20;i++);}

毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:

学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日

注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F

温馨提示

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

评论

0/150

提交评论