基于单片机的公交车IC卡操作系统的设计

news2024/12/31 4:49:57

目 录

摘 要 III
Abstract IV
前 言 1
第一章 绪论 2
1.1 设计的背景和意义 2
1.2 设计的现状和发展 2
1.3 设计的目的与意义 2
第二章 总体设计 4
2.1 总体方案的设计与实现 4
2.1.1 主要设计的内容 4
2.1.2 系统的总体设计 4
2.2 系统方案论证 5
2.2.1 单片机的选择 6
2.2.2 读卡芯片的选择 6
2.2.3 IC卡的选择 7
第三章 系统硬件电路的设计 8
3.1 单片机最小系统模块 8
3.1.1 主控芯片 8
3.1.2 复位电路 9
3.1.3 晶振电路 10
3.2 MFRC522读写模块 10
3.2.1 MFRC522芯片介绍 10
3.2.2 S50卡功能介绍 13
3.2.3 MFRC522模块工作原理 13
3.2.4 读写模块电路 13
3.3 显示电路模块 14
3.3.1 LCD1602介绍 14
3.3.2 显示模块电路 15
3.4 矩阵键盘电路 15
3.5 报警电路 16
3.6 电源模块 17
3.7 与PC机的通信电路 17
3.7.1 USB接口 18
3.7.2 CH340 USB转串口芯片 18
3.8 存储器电路 19
3.9 整体硬件电路 19
第四章 系统软件功能的设计 21
4.1 主程序的设计 21
4.2 键盘程序的设计 22
4.2.1 按键检测函数 22
4.2.2 按键功能函数 22
4.3 读/写卡程序设计 23
4.3.1 S50卡数据存储结构介绍 23
4.3.2 读卡芯片与S50卡的通讯 24
第五章 系统仿真与调试 25
5.1 仿真软件 25
5.2 软件仿真流程 25
第六章 设计总结 30
参考文献 32
致 谢 33

基于单片机的公交车IC卡操作系统的设计
摘 要
伴着电子科技及通讯学科的高速成长,信息化时代已经到临,海量的智能型产品已经陆续为人们所用。其中公交IC卡越来越成为大众所关注的应用产业。很多公众场所譬如公交系统已经陆续使用了智能IC卡系统作为自己的消费管理系统,这样大大简化了用户的操作流程,同时也提高了其服务质量。因此对公交车IC卡操作系统的研究变得尤为紧要。
本文利用 STC 公司的 STC89C52 型单片机芯片驱动整个系统,将PHILPS公司的S50卡当作其信息的载体,同时以NXP公司的MFRC522芯片作为IC卡读写核心。整个系统能够实现和模拟公交车IC卡刷卡系统的流程和功能,同时了解和学习了射频识别的相关知识。整个系统的电路主要包含单片机的最小系统电路、MFRC522读写模块、与上位机的通讯模块以及一些外围的基本电路。整个设计最终达到预期目标和要求。
关键词: STC89C52,MFRC522,射频识别,公交IC卡

Design of Bus IC Card Operating System Based on
Single Chip Microcomputer
Abstract
With the rapid development of Electronic Science and Communication Disciplines, the information age has arrived and a mass of intelligent products have been used for human beings. The bus IC card application industry is becoming more and more concerned by the public. Many public places such as public transport system have been using the intelligent IC card system as its own consumption management system. This greatly simplifies the user’s operation process, but also improve the quality of its service. Therefore, the research on the bus IC card operating system has become particularly important.
In this paper, the whole system is driven by the STC89C52 MCU of STC Company. Using The PHILPS Company’s S50 card as the carrier of its information. At the same time using NXP Company’s MFRC522 chip as the core of IC card reading and writing system. The whole system can realize and simulate the flow and function of IC card system. At the same time to understand and learn the relevant knowledge of radio frequency identification. The circuit of the whole system mainly includes the minimum system circuit of the single chip microcomputer, MFRC522 reading and writing module, communication module of the host computer and some peripheral circuits. The entire design will eventually achieve the desired objectives and requirements.
Key words: STC89C52, MFRC522, RFID, Bus IC Card

前 言

伴着半导体行业和电子科技、移动通信、计算机网络等技术的高速发展,单片机领域也获得了巨大的发展。自20世纪80年代以来,由那时4bit、8bit的低速单片机,提升到而今三百兆的高速单片机,其成长历程一直受到众多电子爱好者的热切关注,虽然其格越来越低,但是其功能也愈发强大。
近两年,随着Apple公司和Samsung公司相继推出了自己的手机支付品牌Apple Pay和Samsung Pay,各大国产手机厂商也开始相继推出自己的手机支付平台以此抢占移动支付市场份额。于是NFC这个词开始慢慢走向大众的视野。NFC也叫近距离的无线通信,它是在射频识别技术(RFID)的基础上发展起来的。二十世纪中叶,雷达的改良导致了射频识别技术思想的产生,并渐渐地开始推向广大的实用市场。由于其传播信息的特性,射频识别便产生了自己最大的优点:无接触识别。它能透过空气、雨雪、污尘、涂漆等很难应用的极差条件来读取信息,且读取速率非常快,而且读取的时间大都不到一百毫秒。
射频识别技术作为目前的新兴学科,不仅包含了传统的通信理论,它更是结合了电子科学、集成电路、自动化理论、物理电子学等一系列学科。我国目前正在大力普及射频识别技术,比如在城市交通刷卡系统、学校“一卡通”、公司考勤、门禁系统等方面有了一定的发展,但射频识别技术的发展和应用远不止于此。目前在大数据时代和物联网工程的大环境下,射频识别标签技术可以作为其底层技术来加速大数据时代的普及,同时在安防、管理、追踪、物流、移动消费、世界“一卡通”等各个领域将会有长足的发展。因此了解和学习该技术有了越来越多的社会需求和必然趋势。

第一章 绪论

1.1 设计的背景和意义
在单片机技术的应用普及和射频识别技术的飞速发展的大环境下,将射频识别技术和现代制卡工艺相结合,在微处理器单片机的控制下,智能公交IC卡呼之欲出。由于社会壮大的步调急剧加速, 都市的生齿数目也随之增加。在这种情况下,公共交通已然成为了人们出行的首要选择,不但可以节能减排达到保护环境的目的而且不需要等待那拥挤的车流。
1.2 设计的现状和发展
在公交车IC卡操作系统中应用到的一个重要部分就是RFID(射频识别)技术。射频识别技术也叫做电子标签,从别称上我们便可知道它能够实现在不接触的条件下自动辨别,相当于给每个被测物体附上了电子标签。射频识别技术在外国发展地比较领先,在很多发达国家目前都有比较先进且成熟的射频识别系统。目前许多发达国家将射频识别技术应用于物联网产业,并有了很好的发展,Walmart和Metro等商品零售商也早已将射频识别技术应用于自己的货物管理系统中。预计射频识别技术将在以后会呈现不同于现在的多种实用领域。
于此同时,在国内射频识别技术也取得了长足的发展,在超市和公共场所等传统应用领域也取得了很好的使用。同时射频识别读卡器也产生了许许多多的版本,由于各个产品的射频识别能力不同,能够使用的范围大小也不尽相同。但各个国产产品都有其共通的弊端,也是很多国产科技产品的共通弊端,即各个读卡器之间没有很大的差别,只有硬件配置的不同导致的产品性能上的差异,但大致上都是由单片机加上读卡器芯片的结构,然而却没有自己的核心竞争力,创新能力也不够。
1.3 设计的目的与意义
RFID作为一种新兴的技术,也开始很快在全国普及。RFID体系由非接触式的IC卡和IC卡读卡器以及主控模块构成。利用IC卡来对出行及一些公众场所进行消费可以大大简化我们的工作流程,同时自动化消费很大程度上提高了我们的服务质量,也节省了因繁琐流程所浪费的时间。况且由于IC卡的成本很小,也适合大面积的推广和使用。因此,为了大家能更加方便快捷的乘坐公交车,学习并设计出一种公交车IC卡操作系统,对公交车的收费系统进行研究和改进,可以加速公交IC卡消费的普及。通过本次毕业设计能够加深自己在课堂上学习到的电路和通信的相关知识,增强自身理论和实际相结合的能力,同时还能提高对小项目和小工程自主学习设计的过程和经验,使得我在今后的学习生活中拥有更加丰富的经验和核心竞争力。

第二章 总体设计

2.1 总体方案的设计与实现
2.1.1 主要设计的内容
1.乘客可以通过公交车上面的刷卡机器来进行日常乘车的刷卡消费,或者是通过公交充值室里面的刷卡机由专人对其IC卡进行充值;乘客在乘车刷卡的时候,在刷卡的同时自动减去1元钱的车费,同时将余额写入乘客的IC卡中,当IC卡里的余额小于10元钱时,刷卡机能发出声光警报来告诉乘客尽快去充值。并具备自动统计营收功能和与上位机的通讯功能。
2.能够自动连续的对多个IC卡进行刷卡,能够识别非本公交系统中的IC卡,同时发出相应的警报提示。
3.能够对整个系统的各个电路有深刻的理解和认识,自主设计出整个设计的硬件电路图和软件流程图。
2.1.2 系统的总体设计
公交车IC卡操作系统作为一个多模块,多功能的庞大的体系,整个体系须要多个模块电路来支撑。本设计主要能够实现能对IC卡进行消费和充值的功能,支持液晶电路进行实时状态显示和蜂鸣器电路的声光报警,同时还能够与上位机进行通信。基于上述功能的描述和设计内容 设计出了如图2.1的基于单片机的公交车IC卡操作系统的总体设计图。图2.2为整个系统功能实现的流程图设计。
在这里插入图片描述

图2.1总体设计框图

在这里插入图片描述

图2.2 系统整体流程图
2.2 系统方案论证
以下选用这个系统中比较重要的器件进行方案论证,对于其他的外围电路选用比较普及而且成熟的器件。
2.2.1 单片机的选择
本设计利用了单片机当作整个系统的主控中枢,因此在对单片机的抉择上需要尤为的慎重。需要考虑到整个系统电路所需的负载和驱动,还有考虑到整个程序的编写大小是否满足需求,以及对这个设计经济能力的考虑,故有以下两种方案:
第一种方案是使用艾特梅尔公司的MCU:AT89S52。AT89S52单片机拥有强大的计算能力而且能够快捷地进行编程,它有着传统51单片机的小体积和低功耗的优点,而且成本较低但功能也足够强大。但是它须要特地的编译器和仿真器,如此会导致其代码的运行速度变得迟缓而且会大大增加整个系统的研发资本。
第二种方案是采用STC公司的MCU: STC89C52,该单片机是STC公司发行的一款全新的去干扰能力特强、运行速率快而且耗能非常低的单片机,其指令代码全部包含传统51系列的单片机,而且它能够支撑ISP(在系统可编译)和IAP(在应用可编译),并且不须要特地的编译器和仿真器,直接利用单片机的串行口引脚(P3.0、P3.1)就能够下载代码,可以非常方便地用于做各种实验,同时可以省去高昂的仿真器费用。因此,结合以上陈述后选用方案二。
2.2.2 读卡芯片的选择
因为近年来RFID科技的火爆成长,很多的集成电路厂商都投入到读卡器芯片的研究制作的行业之中,因而在读卡器芯片上便有了许多种取舍。在此在很多可供挑选的芯片之中,着重遴选出两种目前来说比较广泛的读卡器芯片进行一一对比:
方案一为TI公司的TRF7960 13.56MHz的读卡器芯片。它能够支撑ISO15693、ISO14443A/B和FeliCa通讯协议,其模拟电源和数字电源之间相互独立,通过调幅信号和模拟信号来输入接收解调,它能够通过并口或者是SPI的方式与微处理器芯片进行通信。
方案二为NXP公司的MFRC522 13.56MHz的读卡器芯片。它具备微小的体积,同时拥有低电压和低功耗的优点,与其低成本相反的是其拥有超高的性能,是目前射频读写器比较主流的读写芯片。它能支撑13.56MHz下的全部的从动式 无接触式的通讯协议,此外它还至此加密算法和差错检查,并且拥有飞快的通讯速率。它能够依据相异的使用者的各种需要从而支撑SPI,IIC总线和UART接口地方式与微处理器直接通讯。对比以上两种芯片的材料,最终选择方案二的MFRC522芯片作为本次设计系统的读卡器芯片。
2.2.3 IC卡的选择
目前应用市场上存在两样类别的智能卡,一种是需要接触的,另一种是无需接触的。当前最常用的需要接触的智能卡能够实现将银行卡和公交卡结合的一卡多用模式。但是这种IC卡虽然拥有很大的存储量但是其读写效率非常低而且安全级别也不高。它不仅操作麻烦,需要将IC卡插入读卡器的卡槽中才能使用,而且由于IC卡的芯片触电和读卡机的读卡触点裸露在空气中,很容易被污染,来自触点之间摩擦产生的静电可能会破坏IC卡触电导致IC卡的数据丢失和损坏。IC卡的触点与读卡器触点之间频繁的摩擦和接触也会造成两者的磨损,而且需要接触工作的IC卡一般只有一面能够工作,另一面不能工作,而且还须要注意正确地插卡方向。这样大大地增加了使用的不方便,同时在读卡速度上,须要接触的IC卡远不如无需接触的IC卡。
与须要接触的IC卡相对比,无需接触的IC卡除了有须要接触的IC卡存在的各个功能之外还存有多种功能,比如安全可靠、使用方便、同时能够防止多卡冲突,在IC卡的保存性方面也有很大的优势。由无须接触的IC卡构成的公交车IC卡的操作系统,在很多方面都有着须要接触的IC卡无法企及的优势,以是在两者相比之下选用无须接触的IC卡。

第三章 系统硬件电路的设计

3.1 单片机最小系统模块
3.1.1 主控芯片
本设计中使用的主控芯为STC89C52,STC89C52是STC公司制造的一类能耗很低但是却具有很高地性能的CMOS8bit的MCU。STC89C52使用51内核,但在其基础上做了很多改进。STC89C52拥有8 位CPU 和SPI Flash。下面是STC89C52的引脚图和实物图。
在这里插入图片描述

图3.1 STC89C52RC引脚图
在这里插入图片描述

图3.2 STC89C52RC实物图
STC89C52单片机芯片有四组通用的八为相互I/O口,其中P0口也当作地址总线和数据总线地复用接口,分时复用为地址总线地低八位和数据总线,一般需要外接上拉电阻;P2口也作为地址总线的高八位;P3口除了作为I/0口之外还有第二功能。
3.1.2 复位电路
单片机CPU上电的一瞬间如果直接工作可能会导致CPU指令执行发生错误,这时便需要单片机的复位电路。单片机的复位电路是为了在单片机CPU通电的一瞬间保持一小段时间的复位状况。STC89C52单片机的复位信息是由单片机的9号管脚(RST)输送给单片机内部的Schmitt trigger当中。只有当整个单片机处于正常的工作时序时,这时如果给RST管脚加上一个维持2个以上的机器周期时长的高电平,单片机的CPU便可以达到复位。
如下图所示为本次设计的单片机的复位电路。当通电的一剎时,由于此时可以看作交变电流,故 C11可以当作导线,此时的电源电压全都负载在R13上,使得RST管脚变为高电平,开始复位。随着时间的推移,C11开始充电,电压开始慢慢的加在C11上,当C11充电完成,其两端的电压可以看作5V,这时,RST管脚的电压便成为低电平,复位完成。通过控制C11和R13的参数,可以控制整个复位持续的时间。添加按键是为了达到手动复位的效果,当按键按下时,由于R60阻值远小于R13,相当于之前的上电时的情景。
在这里插入图片描述

图3.3 单片机复位电路
3.1.3 晶振电路
单片机工作是需要时钟电路提供工作所需的时序,本设计采用的是单片机的内部时钟方式。如下图在MCU的19脚跟20脚之间连上由11.0592MHz的晶体振荡器和20pF的电容构成的电路,这样能够与MCU内部的硬件模块一起形成一个稳固的自发振荡器,达到振荡产生时序的效果。
在这里插入图片描述

图3.4 单片机晶振电路
3.2 MFRC522读写模块
3.2.1 MFRC522芯片介绍
MFRC522读卡器芯片是NXP公司的运用在13.56MHz下的无须接触的通讯中的高度结合的读卡器芯片,它拥有领先的调幅和验波的技术,它能支撑13.56MHz下的全部的从动式无须接触的通讯协议,下图是它的功能结构图。
在这里插入图片描述

图3.5 MFRC522的功能框图
MFRC522芯片可以支撑与微处理器径直地连接的多种插口类别,比如SPI 、IIC总线 和UART ,它可以对微处理器当前的插口类别自动进行检测,从而选择一项合理的插口。这种元件是32管脚的 HVQFN 的PCB,其管脚图和实物图如下两图所示。
在这里插入图片描述

图3.6 MFRC522实物图

在这里插入图片描述

图3.7 MFRC522引脚图

MFRC52芯片利用11脚和13脚加上外接的晶振电路来提供13.56MHz的传输射频波并以此驱动其天线。通过其内部寄存器的功能对传送的指令产生调幅得到最终传输的信号。MFRC522的天线连接管脚和串口描述如下两表:
表3.1天线连接管脚
在这里插入图片描述

表3.2 MFRC522串行接口管脚描述
在这里插入图片描述

每当控制芯片进行复位后,MFRC522芯片也跟着重置它的接口类别同时检查此刻的控制芯片的接口类别,它按照主控芯片的主控管脚的电位来辨别出MCU的接口,它是从MFRC522芯片和MCU联接的管脚配合和一套内部专用的固定程序来达到的。MFRC522接口类型的链接配置如下表:
表3.3 MFRC522接口类型的链接配置

在这里插入图片描述

3.2.2 S50卡功能介绍
下图是S50非接触式 IC卡的功能结果框图, S50卡内部总体分为了两个模块:RF-Interface射频接口电路模块部分和Digital Section 数字电路模块。
在这里插入图片描述

图3.8 S50卡功能组成图
在RF-Interface电路中的波形变换部分,它可将读卡器芯片发送的13.56MHz的电波吸收,一部分送至调制解调模块,另一部分将正弦波信号转换为方波电压, 然后对其整流滤波, 并由压降调整电路对压降进行继续处置, 最后产生电能提供其他的各电路。对于数字电路模块在后面软件设计的时候会讲解,这里便不再复述。
3.2.3 MFRC522模块工作原理
首先, MFRC522芯片利用天线向IC卡发送电磁波, IC卡的天线获得读卡器芯片发送的电磁波之后,便由自身内部的调幅验波电路对电波实施调幅和验波, 被处置过的电波就发送到IC卡的内部的处理器对其进行识别和处置。电波被IC卡处置好之后 便又一次被IC卡利用其自身的天线发送反馈给MFRC522芯片, MFRC522芯片接受到反馈电波后对此类电波识别和判断,若两次电波的频率相同,则MFRC522芯片便能够对目标IC卡的内部的值实施读写处理了。
3.2.4 读写模块电路
本次设计的MFRC522读写模块电路如图3.9所示,本模块的MFRC522芯片与单片机芯片STC89C52 之间利用SPI的方式进行连接。
在这里插入图片描述

图3.9 MFRC522射频模块电路(最右为单片机)
3.3 显示电路模块
3.3.1 LCD1602介绍
本设计采用LCD1602作为系统的显示核心,其中1602是指该液晶能够显示2排,每排能够显示16个字符。LCD1602引脚图和实物图如下:
在这里插入图片描述

图3.10 LCD1602实物图
在这里插入图片描述

图3.11 LCD1602引脚图
3.3.2 显示模块电路
LCD1602的数据端与P0口相接,同时P0口外接上拉电阻,整个显示模块的电路连接图如下图所示:
在这里插入图片描述

图3.12 显示模块电路连接(左下角为单片机)

3.4 矩阵键盘电路
本次设计采用4*4的矩阵按键,其硬件连接图如下:
在这里插入图片描述

图3.13 矩阵键盘电路
其中各个按键的功能如下:
在这里插入图片描述

图3.14 矩阵键盘按键功能

3.5 报警电路
本系统采用蜂鸣器作为声音提示,于此在蜂鸣器发声的时候利用发光二极管的高亮来达到声光报警的效果。其电路图如下,其中BUZZ端连接到单片机的P3.2口上。
在这里插入图片描述

图3.15 声光报警电路
3.6 电源模块
公交车刷卡机是由公交车上的直流稳压电源来供电,公交车直流稳压电源一般输出电压为DC 8-35V。为了满足单片机的5V供电和MFRC522的3.3V供电以及其他一些外接COMS供电的需求,故设计出如图3.16的电源模块:
在这里插入图片描述

图3.16 电源模块电路
其中电源接口为GX16-2的二芯航空插座。LM2575-5.0芯片为开关电源稳压芯片,能将直流电压稳定输出到5V,其最大工作电压是45V,最大的输出电流是1A;ASM1117-3.3芯片为直流稳压芯片,将前段稳压的5V电压稳定到3.3V输出。
3.7 与PC机的通信电路
3.7.1 USB接口
由于笔记本电脑小巧、轻便、易携带的特点,传统台式机的市场份额越来越少,这使得传统COM口远不如USB接口的普及。故本设计抛弃了传统的COM口作为与PC机的通信接口,取而代之的是USB接口。
1994年,USB的最初版诞生,经历了多年的发展,现已经发展为V3.1的版本,成为了21世纪电脑中的标准扩展接口。USB接口由于具有很快的传输速率,而且由于其接口灵活,插拔方便,目前已经支持几乎所有的外设。
3.7.2 CH340 USB转串口芯片
USB口不能直接与单片机通信,需要一个USB转串口芯片,CH340 是一个 USB 转换成串口的芯片。其引脚图如下:
在这里插入图片描述

图3.17 CH340引脚图
通信模块原理图如图3.18,其中DP、DM两引脚为USB接口的信号输出引脚。
在这里插入图片描述

图3.18 USB串口通讯转换电路
3.8 存储器电路
本次设计内容中需要对IC刷卡机整天的营收进行统计,所以在设计中加入了存储器模块对营收数据进行储存。存储器模块中选用了串行的E2PROM芯片24C64,其拥有64KB的存储容量。每天工作后,需要把刷卡机拿到公交车调度管理中心把刷卡机里面的数据放入电脑中保存,以便于调用数据。下图为存储器电路的接线图:
在这里插入图片描述

图3.19 存储电路
3.9 整体硬件电路
下图为本次毕业设计的全部硬件原理图,全部设计包含将STC89C52 型MCU当作控制中枢的最小系统电路、将MFRC522芯片当作中枢的读卡模块、显示电路模块、矩阵键盘模块、报警电路、电源模块、和上位机的通讯模块、存储器模块等。
在这里插入图片描述

图3.20 整体硬件电路
本设计针对上面设计的整体硬件电路图绘制出了其对应的PCB,下图为次本设计填充铜层后的的PCB板子。
在这里插入图片描述

图3.21 整体电路的PCB图

第四章 系统软件功能的设计

4.1 主程序的设计
公交车的IC卡操作系统作为一个繁杂的代码实施过程,不仅需要主函数的实施,同时还需要调用各个子函数来辅助主函数的实施。开机之后,系统进行初始化,在还没有寻到IC卡时显示器上显示开机界面,当寻卡成功后,进行防冲撞处理并选定卡片、验证卡片和密码成功后显示卡号,之后便可以根据按键扫描到的按键进行具体的按键功能处理。主程序流程如图所示。
在这里插入图片描述

图4.1 主函数流程图
4.2 键盘程序的设计
4.2.1 按键检测函数
本系统采用4*4的矩阵按键,其引出的8条导线连在单片机P2口上。按键检测的流程如图所示。
在这里插入图片描述

图4.2 按键检测函数流程图
4.2.2 按键功能函数
当检测到按键后进行按键功能的判断,本系统矩阵按键中主要分为数字键(包括00键,清零键和退格键)、消费键、充值键、确定键。当不一样的键按下后会实现不一样的操作,具体的流程如图所示。
在这里插入图片描述

图4.3 按键功能函数流程图
4.3 读/写卡程序设计
4.3.1 S50卡数据存储结构介绍
S50卡的存储器划分十六块扇区,每块扇区划成4段。其中0号扇区的第0段部分固定存储着产品原始代码,不能够修改。其他各扇区的段0、段1、段2作为数据段,用来存放数据。其中数据段有两种作用:一种是储存一般的数据,并且能够对其进行读写操作;第二种是存放数值,能够对其执行初始化数值、加减数值、读写数值的处理。各扇区的段3是控制块,用于存储密码A、B和读写控制。
4.3.2 读卡芯片与S50卡的通讯
单片机芯片通过对MFRC522芯片发送指令,MFRC522芯片接受到单片机发送的指令后执行相应的程序,以此来实现整个IC卡读写功能的实现。要完成以上操作,单片机需要用到MFRC522驱动的两种指令集:一种是对读卡器芯片操作的PCD 指令,另一种是读卡器用来操纵IC卡的PICC指令。应用以上两种指令的同时还需要遵循读卡器芯片内部执行的过程,其中MFRC522芯片对IC卡的通讯过程如下图,这样一连串的处理必须按照其一定的过程进行下去。
在这里插入图片描述

图4.4 MFRC522与IC卡通信流程

第五章 系统仿真与调试

5.1 仿真软件
本系统在软件上进行仿真时用仿真软件为Proteus,Proteus软件是由Lab Center Electronics公司推出的一个电子设计自动化(EDA)软件。该软件不仅能够像其他仿真软件一样进行仿真,而且它能够对单片机进行很好的软件仿真,同时还能够建立仿真模型并进行PCB的设计。它能够支撑多种单片机的仿真,除了传统的51、52系列的单片机,它还囊括了像HC系列 、PIC系列、AVR、ARM、和MSP430等,2010年又新增了像 Cortex和DSP 系列的单片机。在软件编译器方面,它也能支持 IAR、Keil以及 MPLAB等多种编译软件。
5.2 软件仿真流程
由于读卡芯片MFRC522在Proteus上无法仿真,故在软件仿真时利用一个独立键代替IC卡读取和写入过程,仿真整体电路图如下:
在这里插入图片描述

图5.1 整体电路图
将在Keil上编写的C语言程序生成的Hex文件路径导入到Proteus中的单片机仿真文件中,点击运行,得到如下图,其中LCD1602显示开机画面——“Welcome to the DSH IC Card OS ”。
在这里插入图片描述

图5.2 开机仿真图
先测试消费:按下消费按钮后,液晶显示“wait IC Card:”,当按下IC卡按键后,液晶显示“IC Card money:10”(软件仿真程序设计的卡的初始值为11),同时发出提示音。
在这里插入图片描述

图5.3 按下消费键
在这里插入图片描述

图5.4 消费模式下按下IC卡键
继续仿真,当再次执行上述后,显示“IC Card money:9”,同时声光提示,过0.5秒后液晶显示为“please rechage! 9”(当余额小于10时提示请充值)
在这里插入图片描述

图5.5 提示请充值
继续上述操作,当余额为0元后,继续消费,提示“error!!!”同时发出声光警报三下。
在这里插入图片描述

图5.6 余额不足1元提示错误
测试充值:在上面测试的基础上,按下充值键,显示“Input the money:”按下数字键输入要充值的钱数(本次仿真输入的是12)。
在这里插入图片描述

图5.7 充值12元
然后按下确认键,此时液晶显示为“IC Card money:12”(因为之前仿真消费时将余额扣费至0元,现在充值12元故余额为12元)。
在这里插入图片描述

图5.8 充值结果图
经过调试与仿真,最终成果实现了预想的成效。

第六章 设计总结

不知不觉中整个毕业设计已经到了尽头,这也意味着整个大学生涯也将告此段落。毕业设计是对整个大学所学的检阅,也是对自身能力的审核。刚刚选到这个题目的时候,我还是对整个题目是一无所知的。后来通过资料的搜集,老师的指导和相关材料的学习后,渐渐了解和掌握了课题所蕴涵的知识。
这次毕业设计是我独立完成的最大项目,虽然在大学期间我也做过几次设计,比如模拟电路课程设计的直流稳压电源的设计,数字电路课程设计的“数字骰子”的设计,还有创新性实验做过的“四选一”音视频切换器,还有参加电子设计大赛做过的“数字时钟”的设计等。但此次毕业设计的工作量最大,难度最高,不过也是收获最大的设计。
本次毕业设计的题目为基于单片机的公交车IC卡操作系统的设计,整个设计包括将STC89C52单片机当作主控中枢的最小系统电路、以MFRC522芯片为核心的读写模块、显示电路模块、矩阵键盘电路、报警模块、电源模块、与上位机的通讯模块、存储器模块等。
回顾整个毕业设计的过程,有艰辛也有收获。设计的刚开始阶段,我收集了有关的设计资料,了解了射频识别技术的基础概念。在进行毕业设计开题报告的攥写过程中,我对整个设计各个模块有了基本的规划,同时也发现此次设计不仅需要设计整个系统的硬件还需要编写程序来控制单片机来实现整体的功能。由于我对51单片机系列之前就有一定的了解,对于其基本的外部电路有着一定的涉猎。但是读卡器芯片以及对读卡器芯片的程序编写便出现了很大的困难。我在网上找到了很多MFRC522芯片的驱动程序,将它们打印下来,一句一句的阅读,对于比较难的地方一句一句的注释,对一些函数的用法还经常在网络上搜索解答。这段过程中比较困难而且也比较枯燥繁琐,但是收获却颇多。
在进行完整个设计整体电路的设计和对整个程序的编写后我又遇到了困难那就是调试,调试的过程也很漫长,有时候程序调试通过了但是却实现不了功能,经过了一段时间的调试,最终仿真结果终于出现。仿真成功之后,我需要对之前设计的硬件电路图进行画图。画图使用的是ALTIU公司的Altium Designer 09软件,这个软件功能强大,但是比较复杂。我在网上搜索了相关的视频教程便开始了学习,画完整个硬件电路的原理图之后,我开始利用这个软件绘制其PCB板,PCB版绘制成功后整个设计基本告一段落。
在整个设计流程中我本着独立自主的原则,但在遇到一些麻烦的时候,老师和同学们也给予了我很大的帮助,整个毕业设计是一个非常浩瀚的工程,从这次设计中我学到了很多,能够将大学期间所学习的各种知识应用到本次设计中。全部设计实际上是一个探索发掘解决的流程,这也是全部大学学习甚至是今后的学习生活中需要掌握的基本学习技能。
在对一个项目进行设计研究时需要斟酌方方面面的问题,任何一个失误都会造成整个项目结果的失败。本次设计虽然达到了预期的目标,但是还是有很多的不足。对于目前市面上的各个IC卡刷卡机产品,它们都有着比本次设计更加完善的功能和应用。由于本次设计本着学习知识和经验为主的原则,对IC卡读卡器只是有着初步的了解,在今后的学习生活中将继续了解。同时本次设计所选芯片由于考虑到自身的知识水平,没能选用更高端更实用的芯片。目前我国的IC卡行业还需要放眼更高的市场,应本着自主创新的原则,设计出符合未来多功能的的产品,们还有很远的路要走
通过本次毕业设计我收获颇多,不仅增长了自身的理论知识也获得了做实际项目中的经验。本次设计还有很多缺乏的地方,望诸位老师斧正!

参考文献

[1] 李建忠.单片机原理及应用[M].第三版,西安:西安电子科技大学出版社,2013
[2] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009
[3] 沈庆阳.单片机实践与应用[M].北京:清华大学出版社,2002
[4] 单承赣.射频识别(RFID)原理与应用[M].第2版,北京:电子工业出版社, 2015
[5] 陆永宁.非接触式IC卡原理及应用[M].北京:电子工业出版社,2006
[6] 姚琳.C语言程序设计[M].北京:人民邮电出版社,2010
[7] 杨黎,基于C语言单片机技术应用于proteus仿真[M].湖南:中南大学出版社, 2012
[8] 王爱英.智能卡技术[M].北京:清华大学出版社, 2015
[9] 许维蓥.proteus电子电路设计及仿真[M].北京:电子工业出版社,2014
[10] 陈学平,谢俐. Altium Designer 9.0电路设计与制作[M].北京:电子工业出版社,2013
[11] 张慧媛. 基于 MFRC500的非接触式IC卡读写器的设计与实现[D].包头:内蒙古科技大学,2011
[12] 陆永宁.非接触IC卡原理及应用[M].电子工业出版社,2006
[13] 约翰·克劳斯著,章文勋译.天线[M].电子工业出版社,2004

致 谢

通过这段时间的努力我的毕业论文《基于单片机的公交车IC卡操作系统的设计》终于完成了,大学四年转眼间就要结束。在此,我要向大学期间上学习上和生活上帮助我的各位老师和同学,以及本次毕业设计帮助我的各位老师和同学致以真诚地感谢。
对于本次毕业设计,我最先要道谢的便是我的指导老师。整个设计多亏了尉老师的辛勤的指导和中肯的建议。在设计中遇到麻烦时,老师都会悉心为我们指出问题的所在。在写完论文初稿后,老师仔细负责的审阅了我的论文,并且一一指正了论文中的不足和细节上的错误。在此,谨向老师表示衷心的感谢。其次我还要感谢那些在毕业设计过程中帮助过我的同学和朋友,你们的支持和鼓励也是我论文得以完成的动力。
最后,我还要再一次的对关注和给予我援助的尊师和朋友们至上高尚地尊敬和发至内心地感谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1517796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基于微信小程序的电影推荐系统的实现,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

机器学习 Python库 乱记录

MLFlow—模型实验和跟踪 MLflow是一个平台,帮助你从头到尾管理你的机器学习实验,确保可追溯性和可重复性。它提供了一个集中的存储库,用于存储你的代码、数据和模型工件,以及一个跟踪系统,记录你所有的实验&#xff0c…

【Node.js从基础到高级运用】十一、构建RESTful API

在本篇博客中,我们将综合之前讨论的内容,深入探索如何使用Node.js构建一个RESTful API。我们将重点讨论设计合理的API端点,展示如何通过代码实现这些端点,并指导如何使用Postman测试我们的API,确保其按预期工作。 前提…

Python-sklearn-diabetes项目实战

目录 1 下载数据集和预处理 1.1 加载/下载数据集 1.2 数据可视化 1.3 数据清洗 1.4 特征工程 1.5 构建特征集和标签集 1.6 拆分训练集和测试集 2 训练模型 2.1 选择算法和确定模型 2.2 训练拟合模型 3 评估并优化模型性能 本文以糖尿病数据集diabetes为基础进行线性…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用: 金融市场中的熔断机制:在金融交易系统中,熔断机制(Circuit Breaker)是一种市场保护措施,旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…

【微服务-Nacos】Nacos集群的工作原理及集群间数据同步过程

上篇文章我们介绍了Nacos集群的搭建方法及步骤,下面我们来看一下Nacos集群的工作原理,一共有两部分:Leader节点选举及各节点数据同步。 1、Nacos集群中Leader节点是如何产生的 Nacos集群采用了Raft算法实现。它是一种比较简单的选举算法&am…

【javaWeb】在webapp中手动发布一个应用

标题 🐲一、为什么要在webapp中手动发布一个应用🎉二、手动发布步骤1.下载Tomcat2.解压并安装3.在webapps中创建文档 ✨三、总结 🐲一、为什么要在webapp中手动发布一个应用 好处解释灵活性手动发布应用程序可以根据自己的需求进行自定义配置…

Abaqus三维梯度泰森多边形插件:Voronoi FGM 3D(Mesh)- AbyssFish

插件介绍 Voronoi FGM 3D (Mesh) V1.0 - AbyssFish 插件可在Abaqus软件内生成梯度分布的三维泰森多边形长方体模型。插件可用于梯度功能材料(Functionally Gradient Materials)、梯度纳米金属材料、梯度金属结构等梯度晶体模型的建立。模型基于背景网格实现,通过单…

YOLO_项目环境配置

YOLOv5官方项目地址 https://github.com/ultralytics/yolov5 下载 5.0和1.0源码 5.0 master-Tags-v5.0 Code-Download.ZIP 切换到1.0下载 解压缩提取 打开V5.0 使用Pycharm打开V5.0的文件夹 环境配置 参考 http://t.csdnimg.cn/Zdfh2 http://t.csdnimg.cn/Nqkwr 然后在Pyc…

学习JAVA的二十二天(基础)

目录 网络编程 三要素: IP InetAddress类 端口号 协议 UDP协议 TCP协议 前言:学习JAVA的第二十一天(基础)-CSDN博客 网络编程 在网络通信协议下,不同计算机上运行的程序,进行的数据传输。 三要素:…

Qt篇——QChartView获取鼠标停留位置的数值

需求:鼠标停留在QChartView上时,想要计算停留位置的数值。 一开始的方法是想要通过鼠标移动事件计算鼠标在QChartView上的坐标,在换算成数值,后来发现QChartView中除了图表数据,还有坐标轴与坐标轴数值标签占了高度&a…

Python数据分析-Matplotlib1

一、折线图的绘制 1.数据分析流程 2.运用Matplot绘制折线图 #encodingutf-8 import random from matplotlib import pyplot as plt #绘图工具库 from matplotlib import font_manager #解决中文显示问题 from cProfile import label #设置字体方式 my_font font_manager.Fon…

个人简历主页搭建系列-02:github 仓库作为联系方式

这篇文章暂时没有开始正式搭建网站。首先是最重要的注意事项:隐私。 真实姓名如果大家自己不介意的话其实我觉得还好,现在在互联网上想扒个姓名挺简单的,而且很多人都实名上网hh(比如我的几位田径队学弟笑)。 电话&a…

怎样基于“用户”思维让内容营销更有效

当下互联网流量见顶,内容已经成为互联网竞争新的制高点,可以说在数字化驱动的新时代下,“内容为王”仍然是真理。然后信息泛滥的时代下,如何让内容营销脱颖而出呢?媒介盒子认为“用户思维”是关键,今天就和…

2024.3.14jsp

一、实验目的 1、安装配置JSP运行环境 2、设置web服务目录,修改TomCAT服务器的端口号、访问web服务目录下的jsp页面。 二、实验项目内容(实验题目) 1、编写两个简单的JSP页面;参考第一章上机实验1、2 (1&#xff09…

Spring Cloud Alibaba微服务从入门到进阶(四)(服务发现-Nacos )

Nacos是服务发现组件和配置服务器 作为服务发现注册组件Nacos Server 搭建Nacos Server 下载、启动 访问nacos,默认 用户/密码 nacos/nacos 将应用注册到nacos 加依赖 在SpringCloud子项目中,Feign是属于OpenFeign,Sentinel、Nacos是属于alibaba的&…

搭建个人智能家居 3 -第一个设备“点灯”

搭建个人智能家居 3 -第一个外设“点灯” 前言ESPHome点灯 HomeAssistant 前言 前面我们已经完成了搭建这个智能家居所需要的环境HomeAssistant和ESPHome,今天我们开始在这个智能家居中添加我们的第一个设备(一颗LED灯),如果环境…

Mysql---库表操作

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一.Mysql数据库简介 MySQL是一种关系型数据库管理系统,是最流行的开源数据库之一。它是由瑞典MySQL AB公司开发的,后来被Sun Microsystems收购,之后又被Oracl…

数码管的动态显示(三)

1.原理 data_reg寄存,只寄存符号位和数据位不包含小数点位。 动态数码管每个显示1ms,所以计数到5*10^4-1 为了将sel和seg同步,把sel打了一拍。 6位都使用到了可以这么计算,6位都显示的是数据。或者最高位显示的是小数点&#xff…

微软远程桌面RD Client:连接与管理的新境界

微软远程桌面RD Client:连接与管理的新境界 在数字化日益深入的今天,远程工作与管理已成为许多企业和个人的首选。微软远程桌面RD Client作为一款功能强大的远程连接工具,凭借其出色的性能和便捷的操作,受到了广泛的关注和好评。…