目 录
摘 要 I
Abstract II
引 言 1
1 系统方案设计 3
1.1 总体设计要求 3
1.2 总体设计方案选择 3
1.3 总体控制方案选择 4
1.4 系统总体设计 5
2 项目硬件设计 7
2.1 单片机控制设计 7
2.2 按键电路设计 10
2.3 蜂鸣器报警电路设计 10
2.4 液晶显示电路设计 11
2.5 射频识别电路设计 11
2.6 电源电路设计 12
3 项目软件设计 14
3.1 软件开发环境 14
3.2 系统总体工作流程 14
3.3 射频识别系统子程序工作流程 16
3.4 显示系统子程序工作流程 16
4 项目焊接与调试 18
4.1 电路焊接 18
4.2 系统调试 19
4.3 实物测试 20
结 论 22
参考文献 23
附录1原理图 25
附录2源程序代码 26
致 谢 30
摘 要
随着现代化经济建设和管理的发展,人民的生活水平不断提高,商场能够为我们提供我们所需要的生活用品,使我们的生活十分便利。现如今,大部分商场都是可以自由购买的,但是由于人员流动比较频繁,工作人员不能百分之百的保证商品的安全性[1],
为了探索商品防盗的最佳方案,降低制作成本,解决现如今商品的安全性的问题。本文设计了一个基于单片机的商品RFID射频安全防盗报警系统,选用STC89C52单片机作为设计核心,主要包括电源模块、单片机控制模块、按键模块、蜂鸣器报警模块、LCD1602液晶显示模块、RFID射频识别模块。将有效卡信息写入单片机中,RFID只会识别有效卡的信息。电源通电后,如果按下按键,即可以将有效卡设置成设防状态。通过RFID射频模块识别有效卡,如果有人携带未结账的物品出入商场时,RFID能够识别,并且蜂鸣器会发生报警,这样能有效的保证商品的安全性,同时也可以将商品的基础信息以及设防状态信息显示在LCD1602液晶显示屏上。
本设计制造成本低、结构简单、性能优良。通过软件与硬件方面的调试并进行仿真实验,结果表明本设计在技术上完全可行,预期功能可以全部实现,是用于保障商品安全的理想系统,它能够解决商品防盗的问题,在保证安全的同时又能方便工作人员工作。对于商品安全的保护势必成为每一个人都要思考的问题,在这样的背景下,本设计将会在未来的发展中得到良好推广。
关键词:单片机; 射频识别技术; 液晶显示; 蜂鸣器报警
Abstract
With the development of modern economic construction and management, people’s living standard is constantly improving. The market can provide us with the daily necessities we need and make our life very convenient. Nowadays, most shopping malls are free to purchase goods. However, due to the frequent turnover of people, the staff cannot guarantee the safety of the goods 100%.
In order to explore the best scheme of commodity anti-theft, reduce the production cost and solve the problem of commodity security. In this paper, a RFID Security Alarm System Based on single chip microcomputer is designed. STC89C52 MCU as the core of the design, mainly includes power module, MCU control module, key module, buzzer alarm module, LCD1602 module, RFID module. When the valid card information is written into the single chip microcomputer, RFID can only recognize the valid card information. Through RFID module to identify the effective card, if someone carries the unclosed items into and out of the shopping mall, RFID can identify them, and the buzzer will give an alarm, which can effectively ensure the safety of the goods, and also can display the basic information and fortification status of the goods on the LCD1602 screen.
The design has the advantages of low cost, simple structure and excellent performance. Through software and hardware debugging and simulation experiments, The results show that the design is feasible in technology, The expected functions can all be realized, It is an ideal system for commodity security, Can not only solve the problem of goods security, At the same time, it can ensure the safety and facilitate the work of the staff. The protection of the safety of the goods is bound to be a question for everyone to think about. In this context, The design will be well promoted in the future development.
Keywords: single chip microcomputer; radio frequency identification technology; liquid crystal display; buzzer alarm
引 言
随着我国经济的发展以及人民生活的需要,千家万户对琳琅满目的商品的需求正在不断的增加,同时随着一种自由选购的销售模式的出现,一个基于单片机的商品RFID射频安全防盗报警系统对卖家来说无疑是一个“救心丸”,它能够为商品的安全性提供可靠的保障。
RFID射频技术是一种新型的能够自己识别的技术,它在不接触的情况下,可以实现频率卡和读卡器之间进行通信,读写卡器也可以通过射频信号来识别特定目标信号,并读写相关数据,这种方式读取数据十分的方便。RFID射频技术还有很多其他的优势,比如,RFID射频技术可以实现不接触就能读取到信息,这样信息读取的也十分方便快捷,而且对信息量大小限制也很宽松。RFID标签也能够重复使用,而且它能够适应各种复杂的环境,不会因环境的变化而受影响[2]。
近年来,物联网计算机是信息产业的第一次革命,在此之后,互联网移动通信成为信息产业的又一次革命,在这次革命当中RFID射频识别技术有了进一步的发展。RFID技术在安全领域能够迅速普及与其众多的性能特点密不可分,如快速扫描、小型化、形式多样化、可扩展性、可重用性、屏障穿透性和自由读取性、持续时间长等优势,使RFID能够实现大容量存储信息、数据可以随时更新、数据可读写的功能,并且能够在此基础上,让我们可以应对各种复杂的使用环境,以确保数据的安全性,基于RFID防盗系统的普及程度正在不断的提高,开发一款功能齐全的基于RFID防盗系统已经成为国内外研究的热门话题。
在国内,虽然基于RFID射频技术的应用还仅仅只是低频率和高频率,但在商业物流等方面,我国的技术已经日益成熟。但是也随之出现一些问题,随着科技的迅速发展以及产品的多样化,对防盗技术的要求水准也随之增高,在此之前我国在安全方面、监控方面、出入口控制等方面,防盗技术都不是很成熟,不能够完全达到期望效果,目前基于RFID射频防盗技术完全可以解决这个问题,而且已经入选到各家的防盗方案当中。各国的企业、研究机构已经了解到这项技术所能带来的经济效益以及社会效益,正在全力发展这项技术。在未来,基于RFID的技术将会越来越新颖潮流,将会逐渐发展成为环境、城市、地理、交通等信息的网络“标签”,包括CPU在内的各种传感器、GPS定位器等部件的小型智能装置,甚至有可能是一个微型电脑[3]。
在国外,电子标签发展十分迅速,美国国防部和欧美大公司齐心合力推广这项技术,并共同建立了一项关于自动识别电子标签的国际标准。它的应用领域从车辆相关领域以及安防领域转向了现代电子产品领域,随之,也将超高频电子标签技术推上了高潮,超高频已经到了高速发展的时期。在一些发达国家,政府、零售企业以及RFID的著名制作商对RFID电子标签都提供了高度的重视,与此同时,他们也在资金方面提供了大量的支持。在这种环境下,RFID射频技术得以高效迅速的发展,它的标准、技术、应用以及其他方面都是十分先进并且完整的。随着RFID射频识别技术应用逐渐广泛,在工业自动化、商业自动化、交通管理等诸多领域都占有了自己的一席之地[4]。预计在未来的几年里,RFID射频技术一定会发展的越来越好,越来越广泛,而且在技术方面也一定会有质的飞跃。
由于RFID在防盗技术方面有很大的成就,所以本文提出了基于单片机的商品RFID射频安全防盗报警系统,本篇论文将从以下四个方面进行设计,主要内容如下:
第一章:系统方案设计。着重讲解自己的方案要求、总体设计方案的选择、总体控制方案的选择以及系统总体设计四个方面,提出自己的方案并进行分析选择,选择合适的处理器以及其他模块。
第二章:项目硬件设计。根据拟定好的系统设计方案,系统分别有电源电路模块、STC89C52单片机控制电路模块、按键电路模块、蜂鸣器报警电路模块、LCD1602液晶显示电路模块以及RFID射频识别电路模块,并对各个模块做了详细的介绍。
第三章:项目软件设计。根据项目设计说明程序软件的设计原理以及总体介绍。介绍了如何用Keil4开发项目的流程以及项目的总体工作流程、射频识别系统子程序以及显示系统子程序的工作流程。
第四章:项目焊接与调试。根据设计好的原理图进行项目焊接,焊接完成之后进行硬件调试以及软件调试,最后进行实物测试,测试当中记录问题并分析解决。最终完成本设计的预期功能。
1 系统方案设计
1.1 总体设计要求
(1)采用一个低功耗、高性能的核心控制器为基础,录入有效卡信息,包括商品的名称价格信息,对采集感应到的RFID射频模块信息以及按键信息的数据进行处理;
(2)需要一个液晶显示屏,采用液晶显示技术来显示商品的名称信息、价格信息以及对设防状态的显示;
(3)需要一个按键,通过按键可以设置RFID的设防状态,从而控制蜂鸣器是否报警;
(4)需要一个RFID射频模块,通过RFID可以识别有效卡并且判断是否是设防状态并且对有效卡信息进行设置处理;
(5)需要一个蜂鸣器,RFID识别到设防状态的有效卡能够进行报警,来提示工作人员有情况发生。
1.2 总体设计方案选择
随着人民生活质量的提高,越来越多的商品出现在人们的视野当中,与传统的销售方式相比,自由选购能带来更好的经济效益,但是也随之出现商品安全性的问题,一款具有防盗的RFID商品标签[5]可以有效的保证商品的安全性,基于以上的分 析,做出了以下两种设计方案进行对比。
(1)方案一
顾客可以自由选购商品,特定的射频识别防盗卡将会被固定在商品上,前台结账时,工作人员取下特定的防盗卡。顾客就可以结账正常出门,一旦有人携带未结账的商品带离商场时,RFID射频模块检测到,蜂鸣器会发生报警,提醒工作人员有情况发生。
(2)方案二
顾客可以自由选购商品,商品上会固定一个特定的RFID防盗卡,在前台结账时工作人员会将特定的防盗卡取下,顾客就可以结账正常出门,一旦有人携带未结账的商品带离商场时,RFID射频模块检测到,蜂鸣器会发生报警,提醒工作人员有情况发生。增加了一个查看商品基本信息的功能,在顾客到前台结账,前台工作人员取下RFID标签卡的同时也可以通过RFID标签查看商品基本信息,包括商品名称以及价格,方便了工作人员的工作。
方案一中可以自由选购商品,方便了顾客消费,同时也方便了在安全岗位的工作人员。而方案二中集合了方案一中的所有功能,同时增加了一个功能,前台工作人员能够通过RFID标签查看商品的基本信息,方便了查找商品信息以及结账操作,给前台工作人员减轻负担,实用性功能更加齐全。
对比之下,方案二更具有易操作性、维护性、安全性和实用性,更符合我们的实际需求。因此,本设计的总体设计方案选择方案二。
1.3 总体控制方案选择
本设计适合应用在各种各样的大型商场,所以用到的接口以及编程算法会比较多,实现单片机进行控制。目前符合要求并常用的解决方案有以下几种。
(1)方案一
采用CPLD作为本设计的主控制器,它可以完成各种复杂的功能,是大型集成电路的一部分,具有高密度、低体积、高稳定性等优点,具有丰富的I/O资源,同时也在扩展功能方面有很大的优势。比较适合做大规模的控制系统的核心,因为其运用的是并行的输入输出方式,系统进行处理的速度得到大幅度提升。但本设计功能的实现并不是十分复杂,但是它的成本要求比较高,所以放弃了方案一。
(2)方案二
采用单片机STC89C52作为主控芯片。本设计可选取的单片机STC89C51与STC89C52两种,结合设计要求需要该单片机具有数据处理功能的CPU、随机存储器RAM、只读存储器ROM、多个I/O口和中断系统、定时器/计数器等功能,STC89C52与STC89C51相比,更具有优势。而且STC89C52多了一个定时器2,在串行通信中可以设置更高的波特率[6]。可以说STC89C52是STC89C51的增强型,综合考虑本设计的实际需求,由此可以选择STC89C52作为主控芯片。
(3)方案三
采用MSP430单片机进行控制。从美国市场推出之后,这才被慢慢应用。它是一个16位寄存器,相当于一个信号处理器,它可以通过将模拟电路、数字电路集成在一个芯片来解决混合信号处理的问题,而且还有其他优点,比如它的可靠性比较高,功率的损耗比较低,扩展多样灵活等等优势,但是其价格比较昂贵,成本比较高[7],所以舍弃了这一方案。
综上所述进行对比,采用STC89C52单片机作为主控制器,它不仅是一种可靠并且耗能较低的单片机芯片,同时成本也比其它方案更低,所以最后选择方案二。
1.4 系统总体设计
通过对总体设计中方案二的进一步研究,确定本设计具备以下功能:
(1)商品在实际出售的时候会给商品佩戴RFID防盗标签,此项目是通过两个RFID钥匙扣来进行实验[8];
(2)顾客结账时,前台扫描RFID来获取商品的价格信息,将信息显示在LCD1602液晶显示屏上,然后将信号传输到单片机,与写入单片机的有效卡进行比对,第一行显示商品的名称信息,第二行显示商品的价格信息;
(3)如果顾客没有结账就将商品带出商场,若匹配到处于设防状态的有效卡则蜂鸣器报警,说明安全出口有未进行结账的物品,保证了商品的安全性;
(4)只有写入单片机系统的卡才有效,其他卡单片机系统不会识别。
为了实现上述功能,设定本设计共由六部分组成,分别为电源电路、STC89C52单片机核心电路、RFID射频模块电路、LCD1602液晶显示电路、蜂鸣器报警电路和按键电路。
(1)STC89 C52单片机核心电路:通过程序的编写实现有效卡的设置,设防状态的设置、液晶显示屏对商品信息和设防状态的显示以及RFID对有效卡的识别。
(2)电源电路:用5V电压供给用电设备提供电力供应;
(3)RFID射频模块电路:进行读取操作,识别有效卡,读取对应商品信息以及状态;
(4) LCD1602液晶显示电路:当RFID卡刷到有效卡时,会在液晶显示屏上显示对应的商品名称以及价格信息;
(5)蜂鸣器报警电路:当有顾客将未结账的商品带离商场时起到报警提示作用;
(6)按键 电路:当按键按下,液晶显示屏出现“SF”字样时,代表开启设防模式,否则反之。
本系统结构框图如图1.1所示。
图1.1系统结构框图
电源通电后,STC89C52单片机通过采集感应到的RFID射频模块信息以及按键信息的数据进行处理,经转换后输出给LCD1602液晶显示电路和蜂鸣器报警电路,从而完成该系统的运行[9]。
2 项目硬件设计
2.1 单片机控制设计
2.1.1 主控芯片
本设计使用STC89C52单片机作为主控芯片,该单片机的CPU处理器十分的高效,随机存储器RAM、只读存储器ROM容量大,而且具有多个I/O口供使用,同时内部包含了中断系统、定时器/计数器等功能[10]。主要参数表2.1所示。
表2.1 STC89C52单片机主要参数表
参数名称 参数说明
工作电压 5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)
工作频率 0~40MHz,实际工作 频率可达48MHz
工作温度 -40~+85℃(工业级)/0~75℃(商业级)
定时器/计数器 共3个16 位,即定时器T0、T1、T2
应用程序空间 8K字节
数据存储空间 512 字节RAM
EEPROM存储空间 内带4K字节
STC89C52单片机外部有32个I/O端口可供用户使用,在本设计当中使用了11个引脚来连接LCD1602液晶显示屏模块,需要1个引脚来连接蜂鸣器模块,需要1个引脚来连接按键模块,需要5个引脚来连接RFID模块。单片机引脚如图2.1所示。
图2.1 STC89C52单片机引脚图
其部分引脚功能如表2.2所示。
表2.2 STC89C52单片机引脚功能表
端口 引脚
位置 第一功能
符号 功能 第二功能
符号 功能
P0 39-32 P0.0-P0.7 通用I/0口 AD0-AD7 地址数据总线
P1 43473 P1.0-P1.7 通用I/0口
P2 21-28 P2.0-P2.7 通用I/0口 A8-A15 地址总线(高位)
P3 10 P3.0 通用I/0口 RXD 串行通信发送口
11 P3.1 通用I/0口 TXD 串行通信接收口
12 P3.2 通用I/0口 INT0 外部中断0
13 P3.3 通用I/0口 INT1 外部中断1
14 P3.4 通用I/0口 T0 计数器0输入端口
15 P3.5 通用I/0口 T1 计数器1输入端口
16 P3.6 通用I/0口 WR 外部存储器写功能
17 P3.7 通用I/0口 RD 外部存储器读功能
STC89C52单片机VCC口接入+5V电压即可正常工作。其中XTAL1脚为反向振荡放大器和内部时钟工作电路的输入,XTAL2引脚为反向振荡器的输出[11]。
2.2.2 时钟电路设计
单片机在处理任何事件都需要时序,时钟晶振电路为系统稳定运行提供保障。时钟电路主要是由两个部分构成,一个晶振以及两个电容,其中晶振11.0592MHz,电容30PF,电容起到了帮助晶振进行起振的作用,满足了数字控制器上电以后可以正常工作。时钟电路原理图如图2.2所示。
图2.2 时钟电路原理图
2.2.3 复位电路设计
当单片机系统运行时,如果因为环境问题导致程序运行出错了,那么按下复位按钮则可以解决该问题,内部的程序会自动从头开始执行。系统的第一次复位是在单片机系统通电并且启动的时候,当按下键时,是系统的第二次复位,如果该键被释放并再次按下,系统将会被重置。在本设计中,RST引脚是复位输入脚,STC89C52的复位是由外部的复位电路来实现的。复位电路如图2.3所示。
图2.3 复位电路原理图
2.2.4 单片机控制电路整体设计
STC89C52单片机最小系统由STC89C52芯片、时钟晶振电路、复位电路组成。这三部分电路缺一不可,只有都具备单片机才可以正常工作[12]。单片机最小系统原理图如图2.4所示。
图2.4 单片机最小系统原理图
2.2 按键电路设计
本设计方案采用了一枚按键用于实现商品的设防状态的设置。通过按键控制单片机引脚的高低电平从而对设防状态的控制。按键的一端接GND,一端与单片机引脚相连。在本设计当中,按键与单片机引脚P1.1相连,与按键相连的单片机控制引脚默认为高电平,按键按下时,信号传送到单片机的I/O口相当于接地,检测到低电平。在单片机检测到管脚为低电平后,调用执行相应的程序流程,作为系统的输入,起到了控制开关的作用。其电路原理图如图2.5所示。
图2.5 按键电路原理图
其中按键S2代表对设防模式的设置,当按下按键,即开启设防模式,如果RFID模块识别到有效卡,就会引起蜂鸣器报警。
2.3 蜂鸣器报警电路设计
本次设计需要一款能够提醒工作人员检测顾客是否带有未结账的商品出门的模块,所以需要一个蜂鸣器来做报警提示作用的。
本系统选择有源蜂鸣器来做报警模块,采用三极管9012来驱动电路,它的额定电压为5V,三极管按极性划分为两种:NPN型三极管和PNP型三极管,该三极管为PNP型,起到一个开关的作用[13],只要单片机控制引脚为低电平,蜂鸣器就会报警,反之则不报警。三极管的基极电阻通常选择在1K到10K之间。为了保证三极管处于饱和状态而不烧毁,为了保证有足够的电流来驱动蜂鸣器,选择了1K电阻。本设计中与单片机引脚P1.0相连。原理图如图2.6所示。
图2.6 蜂鸣器报警电路原理图
2.4 液晶显示电路设计
本设计具有可以通过显示屏知道商品是否设置了设防状态功能,并且也可以显示商品名称以及价格信息,所以需要一个显示屏显示提示信息。
本设计采用LCD1602液晶显示屏,该液晶显示屏是由单片机进行驱动,其显示功能强大,可以显示多量的数字和文字、图形等,显示清晰且美观,价格也十分便宜,最佳工作电压为5V。显示器的命令操作插脚为RS、RW和EN,分别连接到单片机的P2.4、P2.5和P2.6引脚。数据插脚D0-D7分别与单片机的P0.0-P0.7引脚相连。在本电路中电位器可以调节液晶显示的对比度即清晰度。其具体电路原理图如图2.7所示。
图2.7 LCD1602液晶显示电路原理图
本设计中主要用于显示商品的名和价格信息,当前台工作人员刷到对应的RFID卡,其中“WP”后边的信息代表商品的名称,“DJ”代表商品的价格信息,当我们将RFID设置为设防状态时,LCD1602液晶显示屏上会显示“SF”,当出现了“SF”字样时,代表开启设防模式,否则反之。
2.5 射频识别电路设计
本系统选择MFRC522射频模块进行刷卡操作。MFRC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,本模块可直接装入各种读卡器模具[14]。该模块的工作电压为3.3V,和单片机的通信方式极其简单,只需要通过几条线将SPI接口与单片机引脚相连即可,可以保证模块稳定可靠的工作、读卡距离远。其中RST脚与单片机引脚P3.3相连;MISO脚与单片机引脚P3.4相连;MOSI脚与单片机引脚P3.5相连;SCK脚与单片机引脚P3.6相连;SDA脚与单片机引脚P3.7相连[15]。模块接口原理图如图2.8所示。
图2.8 射频模块接口电路原理图
2.6 电源电路设计
2.6.1 总电源电路设计
这本次设计中,由于STC89C52单片机主控芯片、按键电路模块、蜂鸣器电路模块、液晶显示屏电路模块的最佳工作电压均为5V[16],所以本设计选用5V电源作为整个系统的主电源,电路简单稳定。电源的直流插座直接连接到USB电源线就可以通电。电源插座口称作DC插座,一端接在5V电源上,如2.1图中所示的端口1引脚,接在正极上,来提供电源。另一端如2.1图中的端口2、3引脚 ,连接在一起接在GND上。电源模块还需要有一个LED灯来显示是否通电成功,起提示作用,同时也需要一个1K电阻,起限流作用,来保护LED灯以防被烧坏。当SW自锁开关按下后,整个电路接通,系统电源输出5V直流电压,红灯亮,再次按下开关后,系统停止工作,红灯灭,没有电源输出[17]。电源电路原理图如2.9所示。
图2.9 5V电源电路原理图
2.6.2 5V转3.3V电源电路设计
因为射频模块的额定电压为3.3V,而系统中提供的电源电压为5V,所以需要通过AMS1117-3.3芯片进行降压处理,它是一种正向低压降稳压器,输出的电压为3.3V,适用于高效率的线性开关。其输出电流为1A,系统电路简单,工作稳定。本电路中,通过AMS1117-3.3芯片2引脚与射频识别模块1引脚连接,将5V直流电压降为3.3V给系统的射频识别模块电路供电[18]。
其电路原理图如图2.10所示。电容为电解电容,起到滤波作用,滤除电源中的低频参量,让电压输出更加平稳。
图2.10 5V转3.3V电源电路原理图
3 项目软件设计
3.1 软件开发环境
本设计中单片机开发环境是Keil4,它能够处理单片机的编译、调试等其他集成环境。它的优点有很多,它的内置环境对数据的处理编译机制十分的高效,所以这样不仅节省了开发的时间,还提高了开发效率。Keil4的开发界面也是十分的简洁,很容易上手,选择的编程语言是C语言,而且C语言开发效率很高,这样对于使用C语言来编程开发的使用者都是十分友好的[19]。
Keil4软件开发流程:首先需要建立一个新的项目,选择使用的单片机类型,可以编写一个新的文件,当工程建立完毕后,可以往里面添加.c文件,点击Add就可以将该文件添加到项目当中了,接下来就可以编译程序了。编写完程序后进行编译,编译就是检测程序是否有错误和警告,警告不会影响程序的运行。在编译程序之后,生成.HEX文件。将十六进制文件刻录并写入到单片机当中。具体开发流程如图3.1所示。
图3.1 Keil4软件开发流程图
3.2 系统总体工作流程
首先,要先考虑识别的RFID卡是无效卡还是有效卡,无效卡RFID不会识别,而有效卡是写入单片机系统的卡,只有有效卡才能做接下来的一系列操作。
当检测到有效卡之后如果想要设置设防状态,按下按键,LCD1602液晶显示屏上出现“SF”字样时,说明开启设防模式,LCD1602液晶显示屏同时显示商品的名称以及价格信息,蜂鸣器报警。如果未设置设防状态,那么LCD1602液晶显示屏只显示商品的名称以及价格信息。系统程序总体流程图如图3.2所示。
图3.2 系统程序总体流程图
3.3 射频识别系统子程序工作流程
本系统选择MFRC522射频模块进行刷卡操作。将有效卡信息写入单片机内,当按下按键时,将卡设置成设防状态,RFID识别到有效卡,蜂鸣器会发生报警,说明设防成功,并且与此同时液晶显示屏显示商品的名称以及价格信息,如果识别到无效卡,则什么也不发生。射频识别系统子程序流程图如图3.3所示。
图3.3 射频识别系统子程序总体流程图
3.4 显示系统子程序工作流程
本设计通过LCD1602液晶显示屏来显示信息,输入信息和数据通过LCD1602型号的液晶装置显示出来。它主要显示对商品查看设防状态以及商品的基本信息的显示。当RFID识别到有效卡,LCD1602液晶会显示对应的信息以及设防状态。显示系统子程序流程图如图3.4所示。
图3.4 显示系统子程序总体流程图
4 项目焊接与调试
4.1 电路焊接
本次设计使用原始的焊接方法,焊接的成功是项目成功的关键因素之一。如果焊接本质上出现问题,则会影响到整个控制系统,所以在焊接的过程中一定要十分的小心。焊接的步骤如下:
(1)检查元器件:元器件不能有一点损坏,不然会影响整个项目进度,所以在开始焊接之前一定要对所有元器件进行仔细的检查,在检查好每个元器件无损坏后才能够进行安装和焊接,以防出现在焊接完成后因某个元件有损坏而使系统无法正常运行。
(2)放置、焊接各元件:检查好元器件没有任何损坏之后,要根据原理图排好各元器件的位置,元器件的放置顺序高低也是很有讲究,首先放置那些焊接位置比较低的元器件,然后是那些焊接位置比较高的元器件,再就是特别注意的一点就是,要最后再焊接那种易损的元器件。焊接后实物图如图4.1所示。
图4.1 焊接实物图
需要注意的是,补焊锡一定要适量,因为在焊接的过程中总会遇到焊锡不足的问题,焊锡过多可能会导致将两个本不应该相连的两个引脚连在一起。如果真的不小心补过多的焊锡,那也是有办法可以解决的,在工具不是十分齐全的情况下,可以选择用电烙铁带走多余的焊锡,如果工具准备的充分,则可以使用吸锡器除掉多余的焊锡。
4.2 系统调试
在整个系统通电之前,观察焊接是否存在问题。如出现明显断裂,正负极连接、器件连接、焊接不实等问题,可以通过重新焊接或者更换元器件来解决。接着用万用表检测电源正负电压,是否出现严重的电源问题,如短路等。最后确认并保证系统没有问题。
在进行程序调试之前,要配置调试环境以及平台,都准备充分之后,要对系统功能进行检测,检测过程中也会遇到很多问题,可能是环境或者平台配置出现问题,那么可能需要重新进行配置。一般情况下,需要反复进行测试,直到没有问题为止。
4.2.1 软件调试
在软件调试的过程中,点击编译按键,文件在系统内正常运行,运行的提示信息会自动输出到编译窗口。如果提示信息中显示“error(s)”字样,说明程序有错误,需要根据提示信息找到错误并及时改正[19],否则说明程序运行成功。无错误信息提示,如图4.2所示。
图4.2 无错误信息提示图
当出现“0 Error(s)”说明程序成功,确保没有任何问题之后,就可以将程序代码烧录到单片机当中。同样也需要继续调试,调试到没有问题为止。但在实际调试过程中,会遇到很多问题。常见的错误有定义多个无效的变量、函数未作宣告或未作外部宣告导致不能被其他函数调用、元器件没有正确设置高低电平等等[20]。
4.2.2 硬件调试
焊接好的电路板在上电之前必须得经过调试,以免发生短路烧毁元器件或者因为断路导致的元器件无法工作的情况。
(1)单片机电路调试
单片机是整个系统核心部件。在最初的调试中,出现了调节按键失灵,经过多次调试实验后发现是由于单片机的P1.1引脚脱焊导致的,经过再次焊接后故障问题便消除了。
(2)系统电源供电路调试
在供电接口VCC与GND两端接上电源后,闭合开关,发现系统无供电,用万用表检测USB供电口的引脚发现无电压。将引脚重新焊接后再检测发现电压正常,可以为系统可以正常供电。
(3)LCD1602液晶显示模块电路的调试
在调试上电后发现LCD1602液晶屏幕虽然亮起来,但是发现没有显示出任何字符,后来用螺丝刀调节电位器,发现电位器旋钮位于最左端,此时灰度值最低因此无法显示字符,经过调试向右旋转后发现屏幕可以清晰地显示出字符来。
4.3 实物测试
根据本设计需求,对实物功能进行逐一测试:
(1)打开电源后,电源指示灯长亮,初始化商品信息;
(2)共计有两个测试卡,一个是写入的单片机的有效卡,一个是没有写入单片机的无效卡,进行刷卡测试;
(3)如果RFID刷到有效卡,会在LCD1602液晶显示屏上显示商品的名称以及价格信息,如果刷到无效卡,则LCD1602液晶显示屏不会显示商品信息;
(4)按下设防按键,开启设防模式,测试设防模式的效果;
(5)当LCD1602液晶显示屏显示了“SF”字样时,代表设防模式已开启,否则反之;
(6)如果RFID识别到的是设防状态的有效卡,则蜂鸣器会报警。
所有预设功能均以实现,实物展示图如图4.3所示。
图4.3 实物展示图
结 论
本系统使用STC89C52单片机作为主控制器,采用射频识别技术,通过MFRC522射频识别模块对RFID卡进行识别,与预存卡号进行对比,判断是否是有效卡,只有有效卡才会识别对应的数据信息,通过对有效卡的设防状态的设置,进而控制蜂鸣器报警,同时采用液晶显示技术,通过该技术将所需的信息显示在液晶显示屏上。
本设计由电源电路、STC89C52单片机核心电路、RFID射频模块电路、LCD1602液晶显示电路、蜂鸣器报警电路和按键电路组成。本文对商品防盗系统做出了详细的报告,其中包括硬件部分与软件部分两大模块,而且对其中各个重要子模块都增加了详细的说明。
本设计的主要实现功能是:本设计共计有两种卡,一种是无效卡,一种是有效卡,有效卡是录入单片机系统内的卡,RFID只会识别有效卡。当RFID识别到无效卡,不会有任何的反应,如果匹配到有效卡,当按下设防按键时,开启了设防模式,单片机接收设置信息,在设防的同时还增加一个显示商品基本信息的功能,在检测商品是否设防状态时,前台工作人员也可以通过有效卡识别商品对应的名称以及价格信息并将其在显示屏上显示出来。液晶屏第一行开头字段“WP”对应显示商品的名称信息,第二行开头字段“DJ”后边对应显示识别到的商品的价格信息。如果没有按下按键,那么说明没有设置设防状态,则LCD1602液晶显示屏只显示商品的名称以及价格信息,蜂鸣器也不会报警。本设计完美的实现了预期的功能,在节约能源的同时大幅度提升了商品的安全性,也减少了工作人员的工作量,提高了商场人员的工作效率。
经实验表明,本系统工作可靠、稳定、实用性强。本设计的系统可以更好的为商品的安全提供可靠的保障,相信在不久的将来,一定会广泛应用于越来越多的社会环境中,因此有着广阔的应用前景。
参考文献
[1] 吕立波. 大型商场超市安防监控防盗技术探讨[J]. 商场现代化, 2007(17) :43-44
[2] 朱炳瑞, 裴焕斗, 刘春力. 基于RFID的单片机系统设计[J]. 电子世界, 2013(1) :129-130
[3] 夏晨冉. 浅谈RFID的应用现状及发展趋势[J]. A&S, 2014 :32-35
[4] 黄浩斐. 基于比色法的蓝宝石泡生晶体炉热场测量技术研究[D]. 南京师范大学, 2015 :85-90
[5] 徐斌. 低频射频识别技术研究[D]. 西安电子科技大学, 2013 :251-253
[6] 杨振兴. 侵彻加速度信号实时仿真系统的设计[D]. 中北大学, 2014 :48-49
[7] 马震. 多功能智能电表设计[D]. 安徽理工大学, 2018 :96-101
[8] 贺宇新. 新兴的超市卫士:射频防盗系统[J]. 信息与电脑, 1996(03) :39-42
[9] 谷秀容. 单片机原理与应用[M]. 北京: 北京交通大学出版社, 2009:152-233
[10] 沈睿谦. 基于单片机及机器学习的电子舌系统设计与研究[D]. 浙江大学, 2012 :56-58
[11] 游策. 安防声像采集装置设计[D]. 北京交通大学, 2018 :59-61
[12] 陈臣. 基于Android的智能照明控制系统设计[D]. 湖南师范大学,2016 :98-99
[13] 徐嘉璐. 自动跟随购物筐[J]. 科学技术创新, 2019(08) :61-62
[14] 李苏. 继电保护自动化技术在电力系统中的应用解析[J]. 科技与创新, 2018(17) :55-56+59
[15] 李飞, 吴丽燕, 陈炜. 51单片机集成FM功能的彩色数码相框[J]. 单片机与嵌入式系统应用, 2015,15(07) :76-79
[16] 王文平. 基于自适应神经网络的智能家居网关的设计[D]. 哈尔滨理工大学, 2016 :59-65
[18] 苗秋华. 单片机原理及接口技术课程的教学研究[J]. 教育教学论坛, 2013(36) :62-63
[19] 郑人杰. 计算机软件测试技术[M]. 北京: 清华大学出版社, 1992.1:123-129
[20] 孙润. 基于WiFi智能家居的网关设计[D]. 陕西: 西安工业大学, 2015:126-128
附录1原理图
附录2源程序代码
(1)main.c文件:
#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include <stdio.h>
#include <intrins.h>
#include “delay.h”
#include “rc522.h”
#include “1602.h”
sbit buzzer =P1^0; //引脚定义
sbit key = P1^1;
//
unsigned char code cardTab[4]={0x07,0xF5,0x60,0x27}; //此处修改有效卡ID号
//
unsigned char UID[5]; //暂存卡号
unsigned char Temp[4] ; //中间变量
unsigned long time_20ms = 0xaaaaaaaa; //定时计数
char dis0[16]; //显示数组变量
bit disFlag; //显示更新标志
bit rekey = 0;//按键防止重复按下标志
bit setSfFlag = 0;//设防状态
bit buzzerFlag = 0;//触发报警标志
void Init_Timer0(void);
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);
void main (void)
{
Init_Timer0(); //定时器0初始化
UART_Init();
buzzer = 0; //报警 开
LCD_Init(); //初始化液晶
DelayMs(100); //延时有助于稳定
LCD_Clear();
buzzer = 1; //报警 关
LCD_Write_String(0,0,"My Designer !");//显示第一行
uartSendStr("ready ok!",9);
PcdReset();//复位RC522
PcdAntennaOn();//开启天线发射
LCD_Write_String(0,0,"WP:xxxxxxx ");//显示
LCD_Write_String(0,1,"DJ:xxx ");//显示
LCD_Write_Char(6,1,0x5c);//显示
while (1) //主循环
{
if(PcdRequest(0x52,Temp)==MI_OK)
{
if(PcdAnticoll(UID)==MI_OK)
{
uartSendByte(0x00);
uartSendStr(UID,4);//上报卡号
uartSendByte(0x00);
if((UID[0]==cardTab[0])&&(UID[1]==cardTab[1])&&(UID[2]==cardTab[2])) //确定卡 通过
{
LCD_Write_String(0,0,"WP:PingGuo ");//显示
LCD_Write_String(0,1,"DJ:5.3 ");//显示
LCD_Write_Char(6,1,0x5c);//显示
if(setSfFlag == 1)//设防状态下
{buzzerFlag = 1;} //触发标志
}
}
}
if(key==0) //检测到按键按下
{
if(rekey == 0)//防止重复按下
{
DelayMs(20);
if(key==0)//确认按键按下
{
rekey =1;
setSfFlag = !setSfFlag;//设防状态
}
}
}
else
{rekey =0 ;} //防止重复按下
if(disFlag == 1) //定时更新显示
{
disFlag = 0; //清除标志
if(setSfFlag == 1)//设防情况下
{
LCD_Write_String(10,1," SF");//显示
}
else
{
LCD_Write_String(10,1," ");//显示
}
if(buzzerFlag == 1)//触发报警标志
{
buzzer = !buzzer; //报警
}
}
}
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
void Timer0_isr(void) interrupt 1
{
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
time_20ms++;
if(time_20ms%10==0) //定时显示
{disFlag =1;}
}
void UART_Init(void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TL1 = TH1;
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
ES = 1; //打开串口中断
}
void uartSendByte(unsigned char dat)
{
unsigned char time_out;
time_out=0x00;
SBUF = dat; //将数据放入SBUF中
while((!TI)&&(time_out<100)) //检测是否发送出去
{time_out++;DelayUs2x(10);} //未发送出去 进行短暂延时
TI = 0; //清除ti标志
}
void uartSendStr(unsigned char *s,unsigned char length)
{
unsigned char NUM;
NUM=0x00;
while(NUM<length) //发送长度对比
{
uartSendByte(*s); //放松单字节数据
s++; //指针++
NUM++; //下一个++
}
}
void UART_SER (void) interrupt 4 //串行中断服务程序
{
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
}
if(TI) //如果是发送标志位,清零
TI=0;
}
致 谢
随着项目与论文的逐渐完成,毕业设计终于到了划句号的时候,心头如释重负,通过本次设计,我不仅提升了自己的理论知识与动手操作能力,更重要的是我获得了信心和温暖。
在本次设计当中,从选题到设计制作的过程当中,得到了许多老师和同学的帮助与鼓励。尤其向我的指导老师谢莹老师和冯雅丽老师表达衷心的感谢和致以崇高的敬意!在整个毕业设计的过程中,从资料的收集、方案的论证、项目调试以及毕业论文的撰写,谢老师和冯老师都做了非常细心的指导。老师们敏锐的洞察力、渊博的知识、严谨的治学态度、精益求精的工作作风和对科学的献身精神给我留下了刻骨铭心的印象,这些使我受益匪浅,将成为我以后工作的榜样。
在这里我还要感谢大学四年里在学业上对我尽心帮助的所有老师们,是你们四年里孜孜不倦,传道受业解惑,成就了今天的我。感谢一路陪伴我走来的同学们,也是你们的帮助与包容,让我倍感温暖。
最后,衷心感谢母校沈阳城市学院,让身在异乡的我感受到了家的温暖,辅导员、班主任、导师、园区老师,在我的思想、学业、生活每个方面都做到了无微不至的关怀,受“三自教育”的鼓舞,让我能够更加优秀、独立。还有母校带给我的自信,作为一名“绿岛”学子,无论走到哪里我都会记住一句话,那就是“我行我能”。
最后向审阅此文的老师们致以崇高的敬意。