IC卡读写器的单片机实现_第1页
IC卡读写器的单片机实现_第2页
IC卡读写器的单片机实现_第3页
IC卡读写器的单片机实现_第4页
IC卡读写器的单片机实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

成都理工大学工程技术学院毕业论文IC卡读写器的单片机实现作者姓名: 专业名称: 指导教师:讲师IC卡读写器的单片机实现摘要随着电子技术行业的快速发展,人们生活的水平也提高了很多,IC卡慢慢的在人们生活中就被广泛的使用了。IC卡不仅将便捷了人们的生活,人们的消费方式也因为IC卡而发生了改变。换一种方式来说,就是IC卡的出现改写了人类传统的现金支付方式,从而实现了轻便式生活方式。从而开启了快捷支付新时代。本文讲述了一种基于51单片机,使用MFRC522 IC卡识别芯片的IC卡读卡器的设计过程和原理。该读卡器是包括上位机与单片机之间的数据交换和控制和单片机与IC卡之间的数据交换过程,具有成本低,稳定性好,设计比较简单等优势,适用于大面积的市场各领域的运用。在目前生活中,IC卡在现代社会中有着相当大的作用,对于我们学习和理解单片机的使用,是一种难得的实践机会,为以后的正式进入后社会奠定基础。设计不仅具有实用价值,更重要的是能够实践和经验积累的内在意义。关键词:读写器 非接触 单片机 IC卡 89C51 AbstractWith the rapid development of electronic technology, peoples living standards continue to improve, the IC card has been widely used in peoples lives. IC card will not only facilitate peoples lives, but also to promote the transformation of peoples consumption patterns. In a sense, the emergence of the IC card to rewrite the traditional way of cash payment, opened a new era of fast payment. In the current society in twenty-first Century, the IC card reader has become very common, such as in the bank, consumer office also can be seen everywhere. Even our campus life with campus card, in supermarkets, schools the school cafeteria and red card center are IC read write device to recharge. This design is on the IC card read write principle and design methods of research and analysis.At the same time, the IC card has become an integral part of most peoples life, it is referred to as the integrated circuit identification card. This paper introduces a based on 89C52 microcontroller series and to MF522 is a highly integrated contactless card reader chip as the core of the IC card read write device, and introduces the implementation of IC card data storage methods and ideas. The IC card reader can access the data, delete data, IC card data and modify the data processing, so as to realize the recharge and consumption function. At the same time, the reader can connect the computer, through the relevant data in computer operation, through the microcontroller to drive the corresponding MF522 IC card chip operation to modify the data in the card. In addition, also can be directly used directly in the input control device is connected only single-chip microcontroller development or input and display equipment directly based on the corresponding operation.The author believes that the contemporary society active in the IC card, learning and understanding of SCM application development, is a rare practice experience. Especially for graduating students, understand the principle of the IC card identification and based on single chip microcomputer, the design of hardware and software, will be able to further study and master the development process of the microcontroller similar platforms and development train of thought and method, for the later formally entered the post design to lay the foundation. The design not only has practical value, but more important is the ability and experience accumulation in the inner meaning.Keywords: Card reader,no contact ,IC card,SCM,89C51-42-目录摘要IAbstractII目录IV前言61 IC卡读写器简单介绍71.1 IC卡的简单介绍71.2 51单片机的简单介绍81.3 MFRC522芯片介绍91.4 IC卡读写器系统介绍102 硬件设计122.1 IC卡读写器硬件开发环境介绍122.2 硬件设计平台的搭建132.3 硬件设计原理和思路分析163 软件设计193.1 软件开发平台介绍193.2 软件设计思路分析203.3程序设计与分析213.3.1 程序流程图213.3.2 程序分析234 IC卡读写器的使用演示274.1 软件安装274.2 软件使用方法介绍304.3 效果展示32总结35参考文献36致谢37附件1 程序部分源代码38前言在现代随着电子技术的飞速发展,IC卡的使用越来越普遍,并与未来的电子交易将更加普遍。如银行、医院、商铺、学校等公共场所,几乎全部进入IC卡支付平台。所以研究与设计一个IC卡读写器,将为人们的交易带来极大的方便,也很大程度上节省了时间。甚至为了防止假冒的流通,造成不必要的财产损失。在我们的日常生活中,IC卡的使用在我们的视线中是随处都能看到的,比如学生食堂饭卡、公交卡、电卡、水卡、公交卡等等也是我们最为常见的。然后设计开发了IC卡读写器,不仅具有很广泛的实用性,而且在市场上海占据很大的潜力。目前,有许多方法来实现IC卡读卡器,这是由STM32控制实现,也实现了单片机控制。但作者必须以单片机为基础,已经能够满足我们基本的需求,而且还是比较实惠的成本。IC卡和磁卡差不多大小,它实际上是安装在一个非常薄的塑料片的集成电路芯片。通常是稳定的数据存储器、逻辑电路保护,或图形处理器(GPU)。IC卡的设计初衷是为了解决金融交易中的安全问题,保障交易的安全性。它也带来了一个新的贸易概念和一个巨大的优势。很快,这种优势也为其他应用价值,是指在电话、医疗保健、道路控制和门锁控制系统等广泛得到了很好的应用。随着社会的不断进步,IC卡的使用也将不断扩大,对IC卡的需求也将成倍增加。同时,根据不同应用的需求,IC卡厂商也会不断向市场推出不同种类的IC卡,IC卡的制造成本也将随着使用量的增加而减少。一般而言,IC卡在各个领域中的应用前景十分巨大。因此,IC卡读卡器的使用和研发必然会出现白热化、低成本、安全、可靠、高效、简单易用的IC卡读卡器,会有潜在的市场价值和意义。1 IC卡读写器简单介绍1.1 IC卡的简单介绍我们通常所说的IC卡也可以说成是集成电路卡,但它还有其他的称呼,又可以叫为智能卡、微芯片卡、微型电路卡等等。这是一种微电子芯片。它植入符合ISO7816的标准制作的一种卡片。IC卡与读写器之间的通信方式。其中一种为接触的方式,另一种是非接触模式。因此,IC卡分为非接触式IC卡、接触式IC卡。都是基于通信接口的双接口卡。所以IC具有很大的优势,比如IC卡具有信息安全、携带方便、标准化等优势,在身份识别、商品交易、数据通讯、教育、医疗、交通等领域被人们已经广泛的使用了,如我们的二代身份证、银行信用卡、智能手机卡、公交卡、收费卡等,它们都逐步成为人们生活的必备工具。IC卡是一种新的信息载体,在磁卡出现后产生的。IC卡是一种集成电路信息存储卡,是目前生活中最常用的IC卡,比如我们生活中用的水电气也都是IC卡的一种。用于支持射频技术和IC卡读写设备的通信。与IC卡相比,磁力差是,IC卡是通过其内部的小集成电路存储信息和数据,但是磁卡是使用磁盘记录信息和数据的。IC卡的成本通常高于磁卡的成本,但其安全性会更高,使用也更方便。IC卡数据存储的原理是:首先,电磁波射频读写器将固有频率发送到IC卡片上面,并提供一个频率,并由读写器的频率和传输的相同频率的LC串联谐振电路,在电磁波激励下的电路立即产生共振。因此电容内就会产生相应的电荷了。而电容器串联的另一端,一个单向导通的电子泵,所以你可以把电荷转移到其他电容里储存起来。当电容电荷增加到2V后,该电容器就可以为其他电路提供可以提供电源啦,该电路将开始工作,完成卡片,读写之间的数据通信。1.2 51单片机的简单介绍51系列单片机最开始于是Intel的8031 这种单片机,后来随着Flash rom技术的发展,而 这种8031单片机也取得了很好的发展,它在工业系统方面运用比较广泛。到目前为止,已经有51系列的兼容机了。在今后的市场上也有了相应的地位。51单片机是基础入门的一个单片机,还是应用最广泛的一种。在我们身边还有一种52单片机,但现在基本上已经落后了。当前我们常用51系列单片机,主要产品的产品如下:*Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; *ATMEL的:89C51、89C52、89C2051等等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品 。国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。如图1.2.1 图1.2.151单片机的结构大致都差不多,基本结构如下:在我们所用的51单片机中,51单片机都有2条I/O口线,一条输入一条输出线。指令大概有111条。大部分的指令都是单字节指令 ,51单片机二十一寄个寄存器存,其中包含2个可编程定时/计数器,和两个优先级。还有五个中断源,一个全双工串行通信口 ,它的外部存储器寻址的空间为64kb,另外外部程序的寻址空间也为64kb,51单片机还具有逻辑操作位寻址的功能,双列直插40PinDIP封装 ,单一+3.3V电源供电,它的CPU是由运算和控制逻辑组成。于此同时,51还包括中断系统和分部外部部分的特殊功能寄存器;它的内存是用来存储数据,可以读取和写入数据。如结果的中间运算和最终结果,并希望最终显示的数据;然而只读存储器一般用于存储过程,用于一些原始数据和表。51单片机包括输入和输出端口,其中还有四个8位并行输入和输出口,可用于输入,当然也可以作为输出。它的计时器(2个定时器/计数器)可以在计时模式下工作,也可以工作于计数模式。五个中断源的中断控制系统一个全双工UART(通用异步接收发送器)串行I/O端口,为单片机的实现或单片机和串口间的通信进行。它的片上振荡器和时钟同时产生了电路,石英晶体和微调电容进行了外部链接。最好的振荡频率为6M -12M。1.3 MFRC522芯片介绍MFRC522是一种读卡器,它主要运用在非接触式通信中的。“三表”是NXP公司推出的非接触式的读卡片,它的特点主要是低电压和体积小还有低成本等优点,小尺寸的非接触式读写卡芯片,智能仪表和便携式手持设备的研究与开发都需要依赖于它们。MF RC522的核心主要是调制和解调。RC522在非接触式方面集成。用于ISO14443A多应用支持。它的内部的发送器部分可以驱动阅读器天线、ISO 14443A/MIFARE 卡和录音机之间的通信,没有任何其他电路相接触。接收器部分在很多方面都提供了很多好的结构等,比如调制和解调。数字部分处理包括ISO14443A帧和错误检测,也就是奇偶校验和循环冗余校验。此外,它对于快速CRYPTO1加密算法也是相当的吻合的。可以用于验证MIFARE系列产品。MFRC522支持MIFARE、更高速的非接触通信,双向数据传输速率高达424kbits。13.56MHz 高集成度读写卡系列的芯片家族们来说对于它也是非常的欢迎。MF RC522 、MF RC520和 RC530也是具有很多相似的地方。但是他们之间也存在着不同的地方。他们之间想通信,就想到了利用串行通信的方式。我们也可以根据不同的用户得要求来作分析,选取SPI或者是I2C, 也有可能是串行UART(类似RS232)模式之一,可以减少冗余,从而达到更好的效果。1.4 IC卡读写器系统介绍IC卡读卡器是用来读写IC卡的,而且非接触式IC卡读卡器是简单和容易使用的M1专用读卡器,可以读写Mifare S50卡,S70卡,是D8的核心技术,主要是通过RS232串口或USB接口实现与PC机及相关设备的连接,USB技术主要采用无驱动技术。它完全具有更简单,稳定,和低成本的特点。随机提供各种平台的驱动开发包,附带的演示程序,可以对射频卡操作的所有功能,并设有自动检测卡操作D3型IC卡读写器是IC卡相关产品及系统集成的前端处理设备,有必要发展其丰富、完善的接口函数,在工商、电信、邮政、税务、银行、保险、医疗和会议签到应用方便、网吧、加油站管理、停车场管理等所有的扣除(如收费停车收费、储值、查询等)智能卡管理应用系统。 另外一般IC卡读写器一般具有以下特点:1、快速和准确定位:IC卡具有快速准确性,可以在设备上检查相应的位置坐标。从而对所查档案做出地理上面的判断,从而实现快速查找以及归档等等操作。2、易库存:采用射频识别设备检查可快速完成库存盘点、错误检查、货架等工作,大大降低了博物馆工作人员的工作量,同时可提高文件管理工作效率,减少误码率。3、档案信息准确的记录:关于档案办理人员借出和归还,借阅人员、归档时间等均是系统来自动登记完成的,这种的效率就比较高些,就是为了防止人工操作出现差错。同时也是保证档案管理信息系统原始数据的准确性,也并可以提供档案状态的及时准备的查询和报表打印。4、批贷档案与档案管理:档案管理工作十分复杂,档案管理,通过文件查找,射频识别技术的应用,从而实现了档案管理的现代化,有利于提高工作人员的工作效率,有利于减少档案管理人员的劳动强度,有助于图书馆员实现批贷档案的自动化、备案登记等等优势。5、档案RFID标签存储信息更改自如:通过电子标签来存取数据的大小,并可以让我们改信息,为文件属性和其他信息管理提供方便。6、安全保障:档案管理人员以身份验证登陆射频识别文件管理系统,以借给文件、文件操作,为非法外轮廓,系统会报警。标签信息可以加密。2 硬件设计2.1 IC卡读写器硬件开发环境介绍在本次毕业设计中,我们采用的开发环境是AD14,也就是Altium Designer 14硬件开发环境。Altium Designer 14是原Protel软件开发者通过Altium公司推出的电子产品开发系统的集成,主要的操作系统上运行的Windows。本软件通过原理图设计、电路仿真、电路板图编辑器、逻辑拓扑自动布线、信号完整性分析和输出与技术的完美融合,为设计师提供了新的设计方案,这个使设计人员能够轻松设计使用,熟练使用本软件将使电路设计质量和效率得到大大提高。最高的Altium Designer 15.0.7是当前版本。电路设计自动化,是指在各种工作的电路设计中,由计算机来协助完成的。如电路原理图、印刷电路板文件制作、电路仿真等设计工作。随着电子技术的飞速发展,有着层出不穷的新元件,电子电路变得越来越复杂,电路设计不能简单地依靠人工来完成,电子电路的计算机辅助设计已成为必然趋势。就会有越来越多的设计人员采用快速、高效的辅助设计软件,辅助电路原理图和印刷电路板图的设计来打印各种报表。Altium Designer 除了继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,AD还增加了很多优势,比如还增加了许多改进和很多高端功能。而该平台还拓宽了板级设计的传统界面,还把FPGA设计功能、SOPC设计实现功能进行了一个全面的组合利用,从而可以让开发设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计进行一个完美的集成。 AD同时也具有了很多的优势,由于Altium Designer 在继承先前Protel软件功能的基础,也进行综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要求适当的要高一些。Altium Designer不仅拥有强大的PCB设计能力,而且它还具有很强大的逻辑仿真分析能力,个人认为是一款特别适合初学者使用的PCB绘制软件。它的主要功能包括:1. 原理图设计;2.印刷电路板设计;3.FPGA的开发;4 .嵌入式开发;5. 3D PCB设计。2.2 硬件设计平台的搭建上一节笔者介绍本次硬件设计的软件为Altium Designe 14.0,下面笔者简单介绍AD14如何建立工程项目工程。 步骤一:启动AD软件,如下图2.2.1: 图2.2.1 AD启动界面 步骤二:在启动后的界面如下图2.2.2所示: 图2.2.2步骤三:如图2.2.3所示,在打开的界面中,打开菜单中选择FileprojectPCB Project,即可创建一个工程项目。图2.2.3步骤四:创建完成后,在窗口的左边会出现如下控制台,如图2.2.4所示:图2.2.4步骤五:如图2.2.5所示,将鼠标移动至项目工程图标处,单机鼠标左键,在弹出下拉菜单中选择“add new to Project”选项,在弹出的菜单中,就可以添加原理图和PCB制作图板了,如图所示:图2.2.5在选择“schematic”,就是添加原理图制作文件,如图2.2.6所示为原理图制作窗口:图2.2.6自此就可以开始设计原理图了。2.3 硬件设计原理和思路分析1.整个硬件系统的结构:这次硬件设计主要分为四个部分,包括51单片机电路、MF522读取电路、供电电路和USB转串口电路。下面笔者分别从这几个电路分析各个电路的设计原理,最后在对整个硬件系统的设计思路和工作原理进行分析和说明。2.如图2.3.1所示,笔者设计的51单片机电路如下,如图2.3.1 51单片机电路本次设计使用P1.0P1.4作为51单片机与MF522芯片的通信,另外Y1、C7和C8构成了一个单片机最小系统,从而确保单片可以正常工作。还有就是,R1和C6构成一个上电复位电路,当上电的那一瞬间,电容里面本来不带电荷,当上电的时候,电源通过电阻向电容充电,电源相当于短路,直接接到了地,所以单片机的复位管脚为低电平。随着电容两极的电荷累计,电容充满电,相当于开路,复位管脚接电源上面,此时是高电平,单片机政策工作。这叫上电复位。是利用了RC电路的越阶响应,关于RC电路的越阶响应可以去看电路分析的书,上面有越阶响应的波形图,这里笔者就不详细介绍了。这样做是因为电路在上电的时候,电源电压可能会不稳定,电源电压时高时低,怕单片机受到干扰而使得程序出现意想不到的后果。所以在上电的这一段时间里,让单片机处于复位状态,等电源电压稳定的时候可以是单片机从正确的地方运行程序。至于这个上电的时间由R和C的大小决定。T约等于RC 。3.如图2.3.2所示。就是MF522非接触式IC卡读写电路,我们可以清楚的看到右边是发射和接受IC卡信号的天线电路。这个电路是MFRC522芯片的一个标准电路,具体的设计原理在该芯片的datasheet中会有详细介绍。下面简单分析一下,这个电路的原理。天线及其匹配电路共有三块:天线线圈、匹配电路(LC谐振电路)和EMC滤波电路。在天线的匹配设计中必须保证产生一个尽可能强的电磁场,以使卡片能够获得足够的能量给自己供电,而且考虑到调谐电路的带通特性,天线的输出能量必须保证足够的通带范围来传送调制后的信号。在发送部分,引脚TX1和TX2上发送的信号是由包络信号调制的13.56 MHz载波能量,经过L1和C11组成的EMC滤波电路以及C14、C12、R3(其中R3只在Q值太高的情况下需要)组成的匹配电路,就可直接用来驱动天线,TX1和TX2上的信号可通过寄存器TxSelReg来设置,系统默认为内部米勒脉冲编码后的调制信号调制系数可以通过调整驱动器的阻抗来设置,同样采用默认值及可。在接收部分,使用R4和C4以保证Rx引脚的直流输入电压保持在VMID,R1和C15的作用是调整Rx引脚的交流输入电压。图2.3.2 IC读写电路4.如图2.3.3所示这是一个USB转串口电路:如上图所示,X1,C1,C2构成一个时钟电路,C1、C2是两个滤波电容。关于USB串口通信协议,本设计用于单片机与上位机的串口通信,其通信协议如下所示:波特率 9600 数据发送格式: S 0 0000 E 其中S代表起始位,0是符号位,0表示+,1表示 -,0000表示数据区 ,E表示结束符。如扫描到IC中数据为50 则上位机发送数据为 S 0 0050 E。图2.3.3 USB转串口电路图上图电路是指CH340R的标准电路,CH340 是一个芯片,主要用于USB 总线的转接,从而实现了USB 转串口,USB 转打印口和USB 转IrDA 红外的链接。在这种串口工作方式下,CH340 提供的是常用的联络信号,用于为计算机扩展异步串口,或者就是将普通的串口设备直接升级到USB的 总线。在红外方式工作下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。该电路的作用主要是为了实现计算机与单片机的通信,从而通过在计算机上操作,对IC卡的修改。5.如图2.3.4为电源电路,该电路就是给整个电路提供稳定的电源。 图2.2.4 电源电路在该电路中,C19,C18为滤波电容,该电路可持续提供3.0V的电压。SP6200是一款微功耗200mA CMOS LDO稳压调节器,其具有低压差160mV100mA,高输出电压精确度(2%),极低的关断电流,它的关断电流最大为1uA,它还要极低的GND电流,它不仅具有极好的负载和线性调节,同时还能够逻辑控制的电子使能。它的输输出电压是可以调节的,它可以输出的电压有:2.5V、2.7V、3.3V、3.0V等等。 3 软件设计3.1 软件开发平台介绍为了开发的简便,笔者选用了比较常用的开发软件keil5.0。对于单片机相关的软件开发,通常情况下可以用的软件的有,keil、IAR等等,keil是一种比较适合初学者的开发软件,它不仅使用简单,而且能够进行软件模拟仿真测试的强大功能。下面笔者简单介绍keil软件。Keil C51的51系列兼容单片机C语言软件开发系统公司生产的keil软件,它是keil software公司出品的。用keil与汇编相比,C语言在具有在多方面的优势,比如在功能,结构,可读性方面都具有很强的优势,维护也是具有明显的优势,使用起来也是相当的方便。Keil提供了包括宏汇编、C编译器、库管理和一个功能强大的仿真调试程序,完整的发展规划,通过一个集成开发环境。运行keil软件可以通过Win98或者是NT、或者是WIN2000、或者是WINXP等等操作系统都是可以的。而是非常强大的C语言的功能性非常强大的,如果你使用C语言来进行编程开发,然后Keil应该就是我们最为好的选择。即使我们不使用C语言,用汇编语言来编程,对于这么大的集成环境和软件仿真对于我们开发者来说也是一件可乐的事情。Keil C51软件提供的功能和功能丰富而强大的集成开发调试工具,主要是Windows界面。另外重要的一点,看看编译后的汇编代码,可以实现keil的优点。下面是关于该系统的功能和各部分使用Keil C51开发细节。下面介绍一下C51工具包的整体结构,Vision主要是针对C51 for Windows,而Ishell是for Dos 的集成开发环境,这个下面就可以完成编辑,编译,连接,调试和仿真等等,在这整个开发流程。开发人员可用IDE或着是其它编辑器编辑C或者是汇编源文件。然后分别由C51和C51的编译器编译生成目标文件(.obj)。然后由目标文件可由LIB -51 创建生成库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件-.abs。而abs文件是由OH51 转换成相当标准的hex 文件,可以使调试器dScope51 或tScope51 在keil上面使用进行源代码级的调试仿真,也可由仿真器使用对目标板来进行调试,当然也可以采用直接写入程序存贮器如EPROM中。3.2 软件设计思路分析该系统主要包括两个方面,首先是基于C语言的程序开发,主要用于单片机的控制。另一个是基于VC的上位机程序开发,主要是用于计算机与单片机之间的通信以及数据交换。下面笔者分别从这两个方面来进行分析1.单片机程序相对于IC卡读写器的软件设计,其中主要是基于单片机的程序设计和基于C+的上位机程序。单片机编程一般基于C语言进行开发。C语言事实上是比较基础的编程语言,因此在编写相对比较容易,而且在逻辑上也比较容易理解。下面笔者使用如图框3.2.1来表示该单片机的设计思路。 单片机 上位机 UI界面显示扫描IC卡 读取数据程序 指令数据处理操作处理数据程序 串口Lcd显示程序 图3.2.1 代码思路图从上面的思路图可以看出,整个程序的设计包括单片机程序和上位机程序。其中单片机程序,主要负责IC卡的扫描,获取卡片的数据并且将数据通过串口发送给上位机处理,上位机在接受到读取到IC卡数据后,将其显示在界面上,同时向单片机发送相关的指令,单片机接受到指令后,对IC卡中的数据进行相关处理,包括充值、消费、注销等等操作。最后,在LCD显示处理前后的数据和操作指令。3.3程序设计与分析在上一节中,作者简单介绍了程序的设计思想,并对作者进行了详细的分析。本文论述了IC卡程序的编写,编写了上位机操作程序。首先,单片机的程序设计主要包括系统功能、处理功能和串口功能。笔者将利用C语言在Keil开发设计开发环境。系统功能,包括时钟配置、中断配置、液晶显示以及串口的配置和初始化。然后,即作者将使用串口中断方式来编写。这是很容易接收和发送的数据和主机的计算机。最后,上位机程序编写,作者会使用C+编写,在编写VC平台,主要用户界面设计和串行程序。事实上,主计算机主要是传输的指令,以及数据的接收和显示。笔者将重点放在以下2个总结分析中的程序,以及作者设计思想和逻辑。3.3.1 程序流程图首先笔者先绘制两个程序的程序流程图,以便更好的分析程序的逻辑和思路。如图3.3.1所示,即为单片机程序的流程图。StartSystem_InitLCD-InitRewrtext 读写测试程序读操作函数永久循环 中断函数写操作函数LCD_Wr_String数据指令收发End图3.3.1 单片机程序流程图上位机部分的代码主要是在于UI设计,以及串口的建立和指令代码,实际上也很简单。其程序逻辑图如下图3.3.2所示,Start 建立UI 绘制界面Creat_uart 建立串口通信 Creat oder 定义指令串口数据、指令收发End 3.3.2 程序分析这一章节笔者将为大家分析一些重点函数的逻辑和编写方法,首先就是系统初始化函数,就是单片机的串口、定时器的配置,如下代码:TMOD=0x21;/初始化串口TH1=0xfd;TL1=0xfd;/设定波特率9600 PCON=0x00;TR1=1;/启动T1SCON=0x50;/串口中断允许接收EA=1; /开启总中断ES=1;上面代码就是对单片机的寄存器进行操作,包括初始化串口,以及装载计数值,开启中断,串口允许等等,这是对单片机的基本操作方式。下面是对数据的处理方法,及其计算公式:Money_num6=(money/10000)%10)+0;Money_num7=(money/1000)%10)+0;Money_num8=(money/100)%10)+0;Money_num9=(money/10)%10)+0;Money_num11=(money%10)+0;LCD_Wr_String(0,0,Card_num);LCD_Wr_String(0,1,Money_num);/在LCD上显示相关数据 这就是对IC卡扫描的数据的计算方法,每一个计算公式就是对卡中数据的某一位进行计算,并转换成ASCII编码,便与LCD上显示。下面我们看看串口中断函数的编写,void rxdata(void) interrupt 4 using 0unsigned char i,j;unsigned char rdbuf20; /读取卡中的数据缓冲unsigned char RxBuf20; /读取串口数据缓冲EA=0;for(i=0;i2;i+) /读取指令 while(!RI);RI=0;RxBufi=SBUF; if(RxBuf1!=0) /如果字节不为0结束符,则继续读取数据for(i=0;iRxBuf1;i+)while(!RI);RI=0;RxBuf2+i=SBUF; 当单片机接收到指令后,就开始判断具体是什么指令,即判断RxBuf0的字符,具体代码如下,if(RxBuf0=COM_ADD_MONEY) /充钱命令 err_flag=0;money=Read_One_Byte(Money_Addr)*256+Read_One_Byte(Money_Addr+1); money += (RxBuf7*256 + RxBuf8);if(Read_One_Byte(Money_Addr)!=(money/256)|Read_One_Byte(Money_Addr+1)!=(money%256)err_flag=1;if(!err_flag) SBUF=COM_ADD_MONEY;while(!TI);TI=0; else SBUF=COM_WR_ERROR;while(!TI);TI=0; 当串口接收到充钱指令COM_ADD_MONEY后,立即获取原来IC卡的数据进行和上位机发给他的数据,最后把两者加起来,在写到IC卡中,完成充值操作。现在我们来分析上位机程序,下面是上位机的充值程序,void CICCardDlg:OnAdd() /充值函数/ TODO: Add your control notification handler code hereCByteArray hexdata;unsigned int uimoney;UpdateData(TRUE);/更新数据if(m_money2=0)hexdata.SetSize(9);hexdata0=0xab;/充钱命令hexdata1=7;uimoney=(unsigned int)(m_money2*10);hexdata7=uimoney8;hexdata8=uimoney&0xff;m_comm.SetOutput(COleVariant(hexdata);/以十六进制格式化发送elseMessageBox(请入一个06553.5的数!);事实上,笔者觉得C+语言上建立串口连接其实和差不多,也就是向相应的数组中添加数据,也就是有一个读数据和写数据的过程。另外消费函数与之类似,先是读取抓取按键事件,后就开始读取相关数据,发送给单片机。下面我们在来分析一下读卡函数的编写思路,void CICCardDlg:OnRd() /读卡函数/ TODO: Add your control notification handler code hereCByteArray hexdata;/int len=String2Hex(m_strsend,hexdata);hexdata.SetSize(9);hexdata0=0x45;hexdata1=7;m_comm.SetOutput(COleVariant(hexdata);/以十六进制格式化发送同样的,我们看到该函数首先直接继承了CByteArray的类hexdata,其实也就是建立一个数组,来存放读取的IC卡的数据,保存好相应格式后,最后在发送给单片机,等待单片机将IC卡中数据返回。最后,笔者认为该设计的所以代码编写其实相对还是比较简单的,对于学校和联系编写程序的人是很有实践意义的。 4 IC卡读写器的使用演示4.1 软件安装笔者再设计设计之初就将上位机软件打包了,因此上位机软件可以直接复制在计算上就可使用了,单片机程序直接可以进行下载到单片机里面就可以了。下面笔者为大家介绍单片机程序的烧写方法。通常情况下,我们采用串口的方式,通过STC-ISP下载工具进行下载。下面笔者简单介绍该工具的使用方法。步骤一,打开STC-ISP下载工具,会马上弹出下载界面如图4.1.1所示,图4.1.1 STC-ISP下载工具步骤二,在界面左上角选择相关的芯片,这里我们选择STC89C51RC,当串口设备接入后,系统会自动识别串口设备,这里我们的设备是串口1,波特率也是在选择芯片后,自动生成的,如图4.1.2所示, 图4.1.2 STC界面图步骤三,在界面窗体的左上角,单击【打开程序文件】,弹出如图4.1.3所示的窗体,找到程序生成的.hex文件,点击确定即可。图4.1.3选择程序文件步骤四,在界面左下角,单击【下载/编程】,即可完成程序烧写,如图4.1.4所示, 图4.1.4 启动下载 另外,关于计算机上位机软件的安装,因为在制作过程中已经打好包了,只需要将文件复制在计算机上,找到相应的.exe文件,打开即可使用了,这里就不在详细介绍了。如图4.1.5所示,图4.1.5 上位机软件安装文件夹4.2 软件使用方法介绍上一章节,我们介绍软件安装及其单片机程序烧写方法,这一章节笔者将介绍上位机软件的使用方法。一、读写器连接1. 把通讯线“DB9”端插到PC 机的串口1/2 上2. 把通讯线“2510端”准确的插到插座上面。使读写器和PC 机的串口能够正常的链接。3.把电源线的“圆柱”端插到读写器的电源座子上4. 上电后,我们将会听到蜂鸣器的叫声,如果我们没有听到声音,表明读写器上电根本就没成功。二、启动Demo 软件如图4.2.1所示,是上位机软件的界面图,如图4.2.1所示,是上位机软件的界面图在该界面中可以选择相应的串口号,当IC卡读写器接入计算机在该界面中可以选择相应的串口号,当IC卡读写器接入计算机后,系统马上会识别到它的串口号,并显示当前使用的串口号。图4.2.1 上位机界面1.双击启动测试软件。三、M1卡片读写测试1.把一张卡片放在有效区域范围内。2.第二步进入功能选项“低级操作”里面点击“寻卡”,如果出现“寻卡成功!”表明寻卡正常,如果出现“执行失败!”表明出现异常,请检查卡片是否在寻卡范围内,如果确认卡片没有问题,那就是读写器有其他的情况需要我们进一步确认。3.点击“防冲突”这个按钮,如果出现“执行成功”表明防冲突正常,如果出现“执行失败”表明读写器出现异常或者卡片没有在天线区域范围内。4.点击选择键,如果出现“执行成功”表明选择正常,如果出现“执行失败” 表明读写器出现了异常情况或者卡片没有在天线区域范围内 。5.进入功能选项“密码下载”里面下载卡片密码,比如需要测试卡片扇区1 数据的读写,那么就在扇区1 后面填上密码A/B(注:卡片的初始密码A/B 均为全F),然后选择“A 组密码”或者“B 组密码”,最后点击下载按钮,如果出现“密码下载成功”表明密码下载成功,如果出现异常请按照错误提示更改后再下载一次,直至“下载成功”为止就可以啦。如图4.2.2所示,如图4.2.2 IC卡读卡操作界面四、修改密码和控制位1、进入功能选项在“修改密码”里面,在“扇区号”下面的可拉选项里面选择第3.5步下载密码的扇区号(比如扇区1)2、在“密码A”和“密码B”后面分别写入你想修改的密码A 和密码B。3、在卡片控制位修改之前请阅读卡片里面的详细资料,因为控制位修改不正确,就会导致卡片。不能再使用,请务必小心使用4、在控制位后面填上该扇区的控制位5、点击“修改密码”,如果出现“修改密码成功”,表示操作正确,如果出现错误,请按照出错提示来作相应的处理。(注:密码修改后请务必记住,密码遗忘卡片就不能再次是使用了)五、参数设置1.进入功能选项“参数设置”里面,可以设置串口通讯参数:串口号、波特率、校验位、数据位、停止位等等,设置玩了以后点击“修改串口”,如果出现“串口参数设置成功”,表明串口设置成功,如果出现异常,请按照提示做出改动。2.设置完毕以后可以点击“测试读卡器”,如果出现“读卡器连接成功”,并且听到读卡器的风鸣器响声,证明串口设置正确,如果出现“读卡器连接失败”,表明串口设置有问题,请重新设置。3.读写器默认参数:Com1、9600bps、N、8。 4.3 效果展示在本文的最后一个章节里,笔者将分享本次设计的IC读卡器的相关效果,展示其工作过程。1. 读卡操作当IC卡扫过读写器时,在计算机上会显示相关IC卡的信息,如图4.3.1所示图4.3.1 IC卡数据读取2.读出数据操作图4.3.2 IC卡读写操作 如图4.3.2所示,这是对IC卡中的数据进行加操作。类似减法操作也是如此操作。最后,用户也可以进入功能选项“调试信息”里面,在“串口信息发送与接受”处

温馨提示

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

评论

0/150

提交评论