摘 要
刷卡消费已经是我们消费的一种主流方式,刷卡购物、刷卡乘车……为了使IC卡能更好的服务于大众,给人们的出行带来便捷,我设计了一款基于51单片机的公交IC卡系统。
该系统以STC89C51单片机作为主控系统,硬件设计系统由单片机及其最小系统、LCD1602液晶显示屏、RC522刷卡模块和独立按键系统等来组成[1]。把射频技术作为系统的核心技术,利用无线通信结合数据访问技术,将飞利浦公司的一个分公司恩智浦研发出来的NXP Mifare1芯片作为传输信息的途径,通过连接数据控制中心的系统,以实现在不接触的情况下完成消息的互相传递。
结果表明,通过单片机作为控制器的IC卡读写系统在公交收费领域上的应用有了非常显著的变化。这套系统有着安全系数高、功能多、使用方便的特点,可以独立完成注册、充值和消费等功能,真正解决了公交行业在城市交通方面的一系列复杂、繁琐的问题,有着很大的的市场前景及应用。
关键词:单片机; 射频技术; IC卡; LCD1602
1 总体方案设计
1.1 方案选择
根据公共交通发展的要求不断提升,经过多年的经营管理,城市公交系统已经越来越完善。与传统的手动售票相比,通过使用非接触式IC卡为实现城市公交车的售票系统提供了更加先进的技术。结合计算机、互联网等现代技术,以IC卡做为存储卡片,为用户提供一个更加完善的售票系统。
本设计的控制系统使用单片机。单片机将各种功能集中组合在一个芯片上,功能很多,但是体积依然很小。内部总线结构用于减少芯片之间的连接并使其有耐用性和在恶劣环境工作的能力。由于其体积不大,方便采取屏蔽电磁波或密封措施,因此适合在状况较差的环境下工作[7]。此外,该单片机具有广泛的指令,功率损耗小和所需电压小的特点,适用于可随身携带产品的制造,易于扩展,具有高耐用性、价格便宜和使用价值高的特点,并且可以实现预期的功能。
1.2 硬件选择
1.2.1 IC卡的选择
与传统接触式IC卡相比,非接触式IC卡具有以下优点:
(1)错误率低:卡与刷卡模块之间没有机械接触,可防止在读写接触时出现各种错误。
(2)操作简便,快速:由于非接触式通讯,读卡器可以在1厘米至5厘米的范围内操作卡。
(3)互不干扰:非接触式IC卡中有快速防干扰功能,能够保证卡片之间不存在数据互通。
(4)加密信息完善:每张IC卡在离开生产地前就被商家将IC的编号设置好,他人无法再修改此编号,所以每一张卡的序列号都是只有一个的;并且在刷卡的同时,IC卡和读卡器属于双向验证,互相检测对方的合法性,不会出现错误的情况。
1.2.2 显示电路模块的选择
方案一:使用带有汉字库的LCD液晶显示器完成显示。128×64显示屏是此系统的最佳设计。但是我们考虑到系统的价格方面,带有汉字的LCD液晶显示屏价格偏高。 使用该解决方案不可避免地会增加设计成本。所以此设计当前不使用此方案。
方案二:1602液晶可以显示32个字符,分为两行显示,每行16个字符[8],液晶模块内部的存储器存储了很多的字和字符,这些字和字符足够完成我们的日常使用,使用它时,我们可以直接编译和编写软件程序以在特定时间运行。这种以英语显示相关信息的显示器类型实用且操作简单价格合理,所以非常适合本设计。
1.2.3 按键模块的选择
方案一:矩阵按键,接口适合按键较多且不使用专用键盘芯片的情况[9]。按键成矩状,由行和列组成,这种键盘价格便宜并且使用起来很方便。但是由于一些设计的要求,按键会有一系列问题,需要进行消抖、按键重复等处理。
方案二:独立按键,独立按键的每个按键都需要一个I/O口,并且每个键都是单独工作,不会影响对其他按键的造成影响。独立按键的结构不复杂,电路配置也很灵活,由于我们的设计需要的按键较少,所以该解决方案的使用不仅节省资源、方便,而且可以满足本设计的要求。
1.3 系统工作原理
本课题采用的方案系统原理为:通过MFRC522刷卡模块来识别IC卡完成刷卡,刷卡模块的内部主要安装了一片专门读取和操作IC卡的芯片,它是一个小型的读写设备中的主要元器件。当刷卡模块工作时,不间断的向外发射出13.56MHz的固定频率电磁波,IC卡的内部也有一个谐振电路,谐振电路的频率和刷卡模块发射出来的电磁波相同[10],由于二者频率相同,所以当IC卡靠近刷卡模块时,谐振电路会产生共振现象,这样就使电容里面有了电荷。电容里的电荷被电容另一端单向导电的电子泵送到了其他电容里面储存。等到电容器里够2V后,此电容就充当电源的作用,为卡上的其他电路提供工作电压,将数据传输到单片机中[11],系统处理完后,卡上收到的信息将传输到1602显示屏上,与此同时,LED灯和蜂鸣器也随之工作。系统原理框图如图1.1所示。
图1.1 系统原理框图
2 系统硬件电路设计
2.1 主控模块电路设计
2.1.1 STC89C51单片机
在本次设计中,主控制器应该选用单片机,根据设计系统的要求,其应该具有计算功能的CPU、随机访问内存RAM、只读存储器ROM、多个I/O端口还有中断系统、计时器/计数器等[13]。所以决定选用STC公司研发出的单片机,具有价格划算,功能较多,耐用性强,适用场合多的特点。选取的单片机除了具备兼容性好,编写程序简单,价格适中,稳定性好等优点,还有重要的一点就是芯片资料详备,以便在遇到任何软硬件问题时可以得到解决。因此综合考虑来看,STC89C51单片机更为适合作为本系统的处理核心。其原理图如图2.1所示。
图2.1 单片机原理图
2.1.2 复位电路
复位电路系统是保证单片机设备正常运行的关键,也是单片机设计及制造过程中不能回避的关键。复位电路的主要功能就是满足上电复位要求,单片机的供电电压值误差值不能超过5%,合理的电压值应介于4.5~5.2V范围内。单片机电路本质上为基于时间序列的数字电路,在具体使用中必须结合时钟稳定信号才能正常工作,因此,单片机的电压处于合理范围内,单片机才能正常工作。复位电路原理图如图2.2所示。
图2.2 复位电路原理图
2.7 硬件电路原理图
本系统的主控制器选用STC89C51单片机,和按键操作电路、LED灯电路、RC522刷卡模块电路共同构成设计系统,由于刷卡模块正常所需电压是3.3V,电压低于5V,所以选用LM1117-3.3V型号的芯片来保持电压的稳固,刷卡模块与单片机的通信方式非常简单,只需要通过几条线将接口与单片机引脚相连即可,可以保证模块稳定可靠的工作所以用稳压芯片稳压供电。整个系统使用5V电源,指示灯电路会显示用户的类型,分别于单片机P35、P36、P37管脚相连。当系统连接电源后,按下总开关,系统进入最原始的状态,可以通过按下S1、S2、S3、S4对系统进行控制。系统原理图2.9所示。
图2.9 系统原理图
3 系统软件设计
3.1 系统软件编程环境介绍
本设计选用的编程软件是Keil uVision5。此编程软件是由国外开发的,Keil uVision5可以兼容单片机的C语言[17],使用语言较为广泛,在软件编程时,设计人员可按照自身需求确定编程语言,Keil uVision5的功能具有极强的可扩展性,可以进行下载、编译或者编程等操作。
C语言是国际通行的标准语言,可作为其他编程语言的标准,基于C语言,并充分衡量单片机的具体特性,扩展出Keil C51编程语言,可以有效应用于单片机相关的软件编程。当前,Keil C51编程语言由于其高效简洁的特点,在软件设计中的普及度不断提高。鉴于Keil C51编程语言的实用性较强,Keil C51具备编写、编译、管理、软件仿真等多方面功能,在Keil C51编程环境中的操作具有较高的便捷性。本文设计系统所采用Keil软件的操作界面可参照图3.1。
图3.1 KEIL软件打开界面
程序烧写时需要使用烧录软件stc-isp-15xx-v6.85O。进入软件后首先选择单片机型号,之后选择串行口,最后选择程序文件下载/编程即可。烧写软件界面如下图3.2所示。
图3.2 程序烧录界面
3.2 整体软件设计流程概述
首先对程序进行初始化设置,按下S1键,系统进入等待注册状态,当RC522刷卡模块识别到IC卡时,蜂鸣器工作,LCD1602上可以显示卡片的序列号,注册完成;按下S2、S3键设置充值金额,按下S4键选择IC卡类型,选择完后再次按下S1完成充值。按下S4键,蜂鸣器鸣叫一声,当RC522刷卡模块识别到IC卡时,系统进入IC卡注销状态,再次按下S4键完成注销。系统流程图如图3.3所示。
图3.3 系统流程图
4 系统的焊接与调试
4.1 电路焊接
手动焊接是最常见的焊接方式,目前我国的制造车间在生产制造方面已经不使用手动焊接的方式焊接了,但是对于普通的电子元件维修、对系统的检测维修上依然使用手动焊接。如果焊接本质上有漏洞,则会影响到整个系统设计的完成与实现。手动焊接主要有以下四个步骤构成。
(1)第一步开始焊接
需要把即将要焊接的地方进行清理,主要是清理表面的尘土,然后把需要焊接的电子器件的两个角向一定方向掰一掰,不能让两个的引脚接触在一起,不然会对焊接有影响。接下来让电烙铁的头部触到需要焊接的元器件引脚下方,在此处放上焊锡丝。此处需要注意的是,不能让烙铁头触到其他元件,要不然会把两个元器件焊接在一起。
(2)第二步给焊件加热
当在完成上面的操作后,接下来就应该加热焊锡丝了,主要要做的是将温度达到一定程度的电烙铁放在元器件的引脚一边,渐渐使焊锡丝融化,在这个时候我们需要注意电烙铁的温度是否合适,另外也要根据器件种类做出具体区别。在焊接的时候,如果需要把焊接好的元器件拆卸下来,那也需要对焊接的地方进行加热,主要操作是首先在焊接的地方补好焊锡丝,使焊接的地方是光滑饱满的,然后使用电烙铁在焊接的地方进行加热,在加热的过程中就可以取下元器件了,此操作一定要观察时间,不然会对焊盘造成损坏。
(3)清理焊接面
在进行完上一步骤后,有的时候会观察到焊接的地方有点小问题或者认为焊接的不牢固,这个时候需要对焊接的地方进行修改。通常来说有两种情况,第一种是缺少焊锡,焊接的地方过于粗糙不光滑,这时需要给焊接的地方加一些焊锡,同时也要注意焊锡也不应该补的过多,不然容易不小心连接到其他元器件。另一种是焊锡的量太多,此时可以使用电烙铁放在焊接的地方左右摆动,用电烙铁吸走过量的焊锡,也可以使用吸锡器来进行除焊锡。
(4)检查焊点
当完成上面所有的步骤后,我们需要仔细观察整个焊盘,主要检查焊接连接的地方是否圆润光滑,是否有虚焊的情况,以及是否与其他引脚相连在一起的情况等等。
图4.1 设计实物焊接背面图
4.3设计实物测试
根据本设计要求,对实物设计功能进行整体测试,接通电源后,公交IC卡系统可以正常完成注册充值及消费,显示屏显示数值,按键功能可以实现,LED灯和蜂鸣器接通时开始正常工作。经过测试后系统运行正常,没有出现问题。
图4.2 设计实物图
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。