国外的旅游网站开发,网站部署,住房和城乡建设部网站园林一级,天津建筑工程信息招标网目 录
摘 要 I Abstract II 引 言 3 1 系统总体架构 6 1.1方案设计与选择 6 1.2 系统架构设计 6 1.3 系统器件选择 7 2 系统硬件设计 9 2.1 单片机外围电路设计 9 2.2 LCD1602液晶显示电路设计 12 2.3 短信模块电路设计 14 2.4 GPS模块电路设计 14 2.5 电源与按键控制电路设计…目 录
摘 要 I Abstract II 引 言 3 1 系统总体架构 6 1.1方案设计与选择 6 1.2 系统架构设计 6 1.3 系统器件选择 7 2 系统硬件设计 9 2.1 单片机外围电路设计 9 2.2 LCD1602液晶显示电路设计 12 2.3 短信模块电路设计 14 2.4 GPS模块电路设计 14 2.5 电源与按键控制电路设计 15 3 系统软件流程设计 16 3.1 系统总体流程 16 3.2 GPS模块通信子程序设计 17 3.3 液晶显示子程序设计 17 3.4 按键子程序设计 19 3.5 SIM900A模块通信子程序设计 20 4 系统验证 21 4.1 焊接与调试 21 4.2 程序烧录与调试 22 4.3 系统调试 22 结 论 24 参考文献 26 附录1 元器件清单 28 附录2 源程序清单 29 致 谢 34
摘 要
目前世界上关于老年人的服务还较少老年人服务制度以及职位人才培养并不到位经常会出现老人走丢的情况老年人外出的安全就成了很大的问题。为了解决老年人外出过程的安全问题本论文的设计是一款基于单片机的老人防丢系统首先是通过GPS模块采集老人所在地的经纬度信息由单片机对信息进行收集处理并通过LCD1602液晶进行实时显示当系统按键按下的时候通过短信模块将经纬度信息发送到手机上。 结合系统的功能完成了单片机外围电路的设计LCD1602液晶显示外围电路设计短信模块外围电路设计GPS模块外围电路设计电源与按键控制电路设计。在电路设计的基础上进行了相关程序设计实现单片机与GPS模块之间的数据通信实现了数据与工作状态在液晶显示器上实时显示在按键按下的时候系统能够进行按键识别并通过短信模块发送位置信息。最后进行了电路板的焊接与调试完成了程序的烧录和调试。 经过实践验证结果表明基于单片机的老人防丢系统在遇到老人们记忆力差小孩子没有行动能力故容易迷路和走失时系统会发送位置信息给家属家属收到短信后就可以快速找到老人或小孩。能够有效的保证老人孩子的安全。
关键词定位 单片机 LCD GPS
Abstract
Services for the elderly is seldom in the world. The service system for the elderly and the training of position talents are not in place. The situation of the elderly leaving and losing often occurs. The safety of the elderly going out has become a big problem. In order to solve the safety problem of the elderly in the process of going out, the design of this paper is a kind of anti losing system for the elderly based on single-chip microcomputer. Firstly, the longitude and latitude information of the elderly’s location is collected by GPS module, collected and processed by single-chip microcomputer, and displayed in real time by LCD1602. When the system button is pressed, the longitude and latitude information is sent to hand by SMS module On board. Combined with the function of the system, the peripheral circuit design of single chip microcomputer, LCD1602, SMS module, GPS module, power supply and key control circuit are completed. On the basis of the circuit design, the relevant program design is carried out to realize the data communication between the single chip microcomputer and the GPS module, realize the real-time display of data and working status on the LCD, when the key is pressed, the system can recognize the key and send the position information through the short message module. Finally, the welding and debugging of the circuit board are carried out, and the program burning and debugging are completed. After practice, the result shows that when the old people’s memory is poor and the children have no ability to move, the system will send location information to the family members when they are easily lost and lost, and the family members can quickly find the old people or children after receiving the message. Can effectively ensure the safety of the elderly and children.
Keywords: fixed position; MCU;GPS ; LCD
引 言
目前世界上关于老年人的服务还较少老年人服务制度以及职位人才培养并不到位依据相关数据报告中国现有老年痴呆患者500万人之多,占世界总病例数的四分之一同时该数据还在以每年大概30万的速度增加他们的安全就成了很大的问题。 中国政府依据我们目前的国情对人口老龄化问题高度重视老龄事业也因此得到长足的发展。目前一个政府主导、社会参与、全民关怀的发展老龄事业的工作格局已经形成。国家成立了全国老龄工作委员会,确定了老龄工作的目标、任务和基本政策颁布了《中华人民共和国老年人权益保障法》制定了《中国老龄事业发展十五计划纲要》,把老龄事业明确纳入了经济社会发展的总体规划和可持续发展战略。针对老年人而产生的一些保障产品将会有着巨大的发展空间。 针对防止老年人走丢的问题国内外也进行了一部分研究主要是结合GPS技术GPS是全球定位系统系统,实现了任意观测点在任何时间段都能被4个卫星所检测到,从而采集到该点的经纬度和高度信息,基与GPS强大的定位功能,被广泛的应用导航、定位和授时等方面,用来引导飞机、车辆、行人和船,沿着准确、安全的路线行进最终到达终点。通过此技术最大的功能就是防止老人或走丢走失还可以放在汽车里通过此技术我们可以随时掌握老人所在的地点、时间等信息。 在《位置实时寻踪的防走丢胸牌设计》[1]文中设计的一种能够实时定位的胸牌在胸牌内加入定位芯片可以获取用户位置以及移动轨迹胸牌中还配置了生物、运动等传感器能够对老年人的运动步数身体血压和心率等进行实时监测虽然其便于携带和使用但是还存在一些问题首先是由于胸牌尺寸的限制其使用的电源受到限制所以电量不能够得到保证不能保证在老人外出的时间段中始终有电第二个是其缺少必要的显示及报警功能不能让使用者直观感受到目前所处的位置也不能在使用者出现意外或者走丢的时候实时通知其家人。 《基于STC89C51单片机的智能鞋的设计与开发》[2]本文是在鞋内嵌入硬件系统获取穿戴者的GPS信息将数据定时发送到用户的手机APP。该系统虽然可以定时发送使用者的信息到特定的手机但不能保证在老年人出现情况的第一时间就完成信息的发送同时由于产品是一款智能鞋其不够小巧轻便可能不能适应大部分老年人的喜好不能保证老年人每次外出均能够穿上这种鞋子因此其使用范围和效果有待观察[3]。 本论文的设计是一款基于单片机的老人防丢系统系统以STC89C52单片机作为中央处理器使用GPS模块来采集数据并将数据发送给单片机单片机对所得到的数据信息进行接收并提取然后根据定位计算公式得出当前位置的经纬度信息和时间信息。 计算得到的位置信息送交给LCD液晶进行实时显示。在老人迷路或出现意外的时候为了及时让使用者的亲友可以知道使用者的位置通过SIM900A模块发送短信到设定的手机号上将检测到的经纬度和时间信息展示在短信上。 在对于老年智能走丢防控系统的研究领域中欧美等西方国家一直处于遥遥领先的地位在美国我们可以在商场或者超市买到各种各样的防走丢系统在欧洲许多国家每家用户上也可以去上门订购智能控制产品包括学生的也可以为家里成员订购国外的GPS定位系统也是非常完善的且历史悠久性能可靠产品高档功能齐全也是根据国际标准所制作但是价格会稍微高一些需要专业的技术安装与维护很多普通消费者望而却步。在欧洲美国日本等韩国家对于老人防丢智能控制系统已经在销量上超过中国10年以上且市场率占有非常高并且他们的生产技术比国内大部分的生产控制智能产品公司都要高表现突出的品牌影响和技术能力非常的多[4]。但这些品牌对于普通百姓却是望而却步的他们主要还是针对一些高端的市场综上所述整体的智能技术在许多发达国家已经非常成熟但是价格比较高安装复杂维护起来不太方便因此我们为了解决这些缺点让技术更得到全世界的普及。我国对这项领域的研究虽然起步较晚但整体对于产品的实用性强价格机制的特点做出了具体的把控符合国人现阶段的消费水平产品外观有待提高但是由于各厂家没有统一的生产标准产品的质量难以达标专业服务的能力有限缺乏品牌的影响力[5]。我国的智能控制系统研究水平与欧美日韩等发达国家还有很大的差距现有的产品可靠性不高安装不方便自动化控制水平低根据这些实际情况开发出适合我国使用的智能控制器应成为现代社会发展的当务之急。 本次设计的意义是为了解决当前社会上一些老人和小孩在户外容易迷路和走失这一严重的问题老人们记忆力差小孩子没有行动能力故容易迷路和走失这时候只要发送位置信息给家属家属收到短信后就可以快速找到老人或小孩。通过对单片机和GPS模块的研究可以更好地理解GPS定位装置的工作原理和实现方法改进现有的GPS定位装置的一些问题促进产品更好地发展。
1 系统总体架构
1.1方案设计与选择 基于单片机的老人防走丢系统主要目的是为了告知老人或其家属老人目前所处的位置在老人迷路的时候确保家属在第一时间能找到老人避免意外发生。 针对上述需求初步设计了两种方案方案一是依托GPS模块获取老人的位置再通过配置运动传感器实现对老人的计步监测等功能为了使老人亲友能够知道老人的位置可以通过网络将信息更新到使用者的手机APP上。 第二种方案是以单片机为处理器对GPS定位信息进行接收处理可以在系统液晶显示屏上实时看到自己所处的位置以及当前时间。系统中预留了一个使用者亲友的手机号在使用者需要亲友帮助的时候可以按一下系统上的开关按键即可发送一条包含自己所处位置的经纬度信息给自己的亲友这样亲友就能迅速的得到使用者的位置信息并迅速赶到使用者所处的位置由此避免老人走丢。 对上述两种方案进行对比首先是从系统复杂度上进行考虑方案一中需要添加一些传感器这必然会增加系统硬件的设计复杂度对这些数据进行处理又会增加软件复杂度其次我们从实现及使用上来讲通过短信的形式给亲友发送短信要比通过网络更新数据更为可靠因为按键操作对老人来说相对比较容易。 1.2 系统架构设计 如图1.1所示为基于单片机的老人防丢系统的系统架构框图系统以STC89C52单片机作为中央处理器使用GPS模块来采集数据并将数据发送给单片机单片机对所得到的数据信息进行接收并提取然后根据定位计算公式得出当前位置的经纬度信息和时间信息。计算得到的位置信息送交给LCD液晶进行实时显示。为了让使用者的亲友可以知道使用者的位置通过SIM900A模块发送短信到设定的手机号上将检测到的经纬度和时间信息展示在短信上[6]。 1、电路供电部分整个电路基本工作电压为5V单片机烧写程序可通过TTL线进行串行下载。这一点比AT的单片机要好因为AT单片机是不支持串行下载的需要通过专门的下载器进行下载。 2、人机交互通过SIM900A模块将单片机和手机进行短信通信手机上可以显示采集到的时间和经纬度信息。单片机通过串口发送相应的命令到SIM900A模块SIM900A模块发送短信到代码中设定好的手机号上短信内容为“当前用户所在位置的经度为xxx纬度为xxx时间为xxx”[7]。 3、信号处理以STC89C52单片机为处理器对GPS模块得到的数据进行收集以及分析运算。最后将处理后得到的经纬度和时间信息送交给LCD液晶进行实时显示。 4、数据采集基于单片机的老人防丢系统首先需要得到老人所处的位置信息通过GPS接收模块获取定位信息让后送交给单片机进行数据处理。 5、数据展示为了便于使用者能知道自己的位置和当前时间单片机对数据进行处理以后送交给LCD1602液晶显示屏对得到的当前测试地的经纬度及时间的信息进行显示同时在系统过程中显示“GPS扫描”、“短信发送中”、“发送成功”等状态便于用户使用。如图1.1所示为基于单片机的老人防丢系统架构。
图1.1 基于单片机的老人防丢系统架构 1.3 系统器件选择 结合上文的系统需求分析为了采集GPS定位数据在基于单片机的老人防走丢系统中使用GPS模块来进行位置信息采集并将数据发送给单片机。 整个系统的运行都依靠单片机来进行操控不同的单片机类型功能也不一样经过仔细考虑和结合实际情况采用的是8052内核的STC89C52单片机。因为此程序的代码不是十分的繁多所以为了节约成本没有采用比较复杂成本比较昂贵的STM32或者是MSP430等单片机。而去采用528kb的内存单片机。 显示部分用LCD1602液晶来显示当前的信息相比于传统的数码管显示 LCD1602显示的字符量更多弥补信息量比较少,显示内容有限的缺陷它可以显示文字、数字还可以显示特殊的符号。同时其屏幕亮度也可以适当调节既可以节约资源又适宜老年人使用[8]。 最后单片机需要将采集到观测点的经纬度信息和时间信息通过短信的方式发送给手机这里就需要使用SIM900A模块。
2 系统硬件设计
结合第一章的系统需求分析以及器件选型我们首先需要结合对基于单片机的老人防丢系统中的各个模块的硬件电路完成设计。 2.1 单片机外围电路设计 单片机是一块硅片上集成了微处理器、存储器和输入输出接口的芯片可以通过控制者编程实现很多功能比如对各种传感器和外设进行控制对外部输入的数据和信号进行收集计算并进行相应的操作是工业生产中的大脑。以STC89C52单片机是基于单片机的老人防丢系统中的核心围绕其需要展开很多电路实现系统中的相关功能我们首先需要完成对单片机外围系统的设计。 2.1.1 STC89C52单片机介绍 STC89C52单片机有32个I/O口可以连接更多的外设和传感器8K字节的FLASH存储器可以进行更多的计算缓存521字节的RAM大大提高的反应速度。STC89C52单片机的烧录也非常简单通过TX和RX口采用对应的编译器就可以将程序烧录进去。
图2.1 STC89C52单片机封装引脚 如图2.1所示为STC89C52单片机封装引脚完成设计之前首先需要对管脚进行了解。以下分别作简要介绍 VCC供电电压。 GND接地。 P0、P1、P2、P3I/O引脚可以在本次设计中作为输入输出端口用以接收GPS的位置信息或者向LCD液晶输出信息等。 P3口特殊功能口具体如下表所示 RXD即可在本系统中用以接收GPS传来的位置信息TXD即可在本系统中用向短信模块发送位置信息。
表2-1 P3口的第二功能 P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 /INT0外部中断0 P3.3 /INT1外部中断1 P3.4 T0记时器0外部输入 P3.5 T1记时器1外部输入 P3.6 /WR外部数据存储器写选通 P3.7 /RD外部数据存储器读选通 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST复位输入。 /PSEN外部程序存储器的选通信号。 XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2来自反向振荡器的输出。
2.1.2 STC89C52单片机外围电路设计 根据第一章对基于单片机的老人防丢系统需求分析结合单片机所完成的具体工作以及单片机的管脚介绍最终总结单片机外围电路需要进行几个方面的设计 1单片机供电部分 在设计过程中为保证防丢系统单片机正常运作首先根据芯片数据手册中的管脚定义完成对单片机的供电设计。 2单片机外部晶振 本次设计中单片机需要与GPS模块之间进行串行口通信故需要接入外部晶振。单片机使用外部的12MHz晶振使用外部晶振的时候19号管脚可以悬空本次设计让其接地。 3单片机与短信模块的通信,通知短信模块发送 依据系统设计在外部开关按键按下的时候单片机需要将当前解算好的位置、时间信息送交给短信模块并由其发送给设定好的手机上芯片的10管脚P3.0和11管脚P3.1是标准的I/O 口同时10管脚也可作为串口1数据的接收端11管脚也可作为串口1数据的发送端。将11管脚作为TXD连接到短信模块的3管脚RXD[9]。 4单片机与GPS模块间的串口通讯进行数据的采样以及分析运算 本次设计中利用前文提到的串口来与GPS模块之间实现数据通信将10管脚作为RXD连接到GPS模块的2管脚TXD将已计算好的当前数据信息送交给LCD1602液晶显示屏显示 5对开关进行响应即当开关按下通知发送短信 依据设计需要,系统在外部开关键K1按下的时候将会发送短信到设定的手机号上。在设计中将开关一端接在单片机的P1.0口另外一端接地,这样在通常情况下P1.0不是低电平。通过对单片机的P1.0口的高低电平进行判断即可知道外部开关按键是否按下如果P1.0口为低电平则表示开关按下需要将当前的信息发送给短信模块[10]。 6控制LCD1602进行信息显示 本次设计中需要显示的相关数据由P0.0口~P0.7口这个8个端口送交给LCD液晶显示由于单片机的P0口没有上拉电阻是高阻状态不能正常输出高电平因此我们在设计中将P0口与LCD液晶数据端口相连接时外接一个10k 的排阻同时依据液晶显示的数据手册对液晶显示进行操作还需要涉及三个控制管脚分别是LCD1602的使能、“读写选择和数据/命令选择”因此在单片机需要给出三个控制信号控制信号的端口为P2.5P2.6和P2.7三个端口[11]。 7读取内部存储器 依据芯片的数据手册单片机的31管脚在接高电平时单片机使用内部存储器。结合上一节介绍系统中所使用的STC89C52单片机有内部ROM因此在本次设计中将该管脚一只接高电平。 最终如图2.2即为基于单片机的老人防丢系统中STC89C52单片机外部电路。
图2.2 STC89C52单片机外部电路设计
2.2 LCD1602液晶显示电路设计 2.2.1LCD1602液晶显示器介绍 本次设计采用LCD1602液晶显示器作为输出显示器,LCD1602液晶屏显示利用液晶的特性,通过改变电压达到控制区域显示,最终显示出想要的图形或者数字。显示容量个字符工作电压工作电流字符尺寸[12]。 2.2.2 LCD1602液晶外围电路设计 本次设计LCD1602液晶显示屏上展示系统设备的经纬度和时间上面显示测得的经度和纬度,下面显示该区时间。LCD1602液晶显示外围电路设计分为以下几个部分。 1液晶供电部分: 结合LCD1602液晶显示的数据手册为了在基于单片机的老人防丢系统中使的液晶正常工作需要完成供电设计。 2与单片机之间的通信: 根据图4中的接口定义我们可以知道LCD1602液晶的7到14号管脚是其数据口(),在基于单片机的老人防丢系统中数据口仅需要执行输入功能液晶需要通过这个8个数据口从单片机接收已经解算好的时间、位置信息同时还需要根据单片机指示显示“GPS扫描”、“短信发送中”、“发送成功”等状态。在设计中将这8个数据口和单片机的P0口进行连接结合上文对P0口的介绍这中间要加一个上拉电阻进行连接[13]。 为了保证与单片机的通讯还有三个控制管脚。依据数据手册LCD1602液晶的6管脚为使能端口在数据传输的时候高电平有效,连接单片机的P2.5口5管脚为读写选择端将其连接到单片机的P2.6口接受单片机给出的控制信号4管脚为数据/命令选择端连接单片机的P2.7口。 3液晶显示的对比度调节: 依据数据手册LCD1602液晶的3管脚是调节显示对比度的端口考虑到老人年群体对显示屏亮度比较敏感或者有不同喜好在电路设计中将该端口外接一个10K的电位器,系统的使用者可对显示对比度的调节。 最终如图2.3即为基于单片机的老人防丢系统中LCD液晶外部电路。
图2.3 LCD1602液晶显示电路图
2.3 短信模块电路设计 基于单片机的老人防丢系统中STC89C52单片机将GPS模块采集到的数据进行解算得到老人所处位置以及时间通过SIM800通信模块发送到设定的手机号上发送的内容为当前位置的经度为:xxx;纬度为:xxx ;时间为:xxx 。 本设计采用的通信模块为此模块具有体积小价格便宜发送短信时间快等特点。被广泛的运用在通信设置中。 一般该模块接上电以及串口后即可正常工作故该模块的1口接地5口接电源正极3口接收单片机传出的信息在本次设计的系统中不需要收功能因此只接如图所示三个管脚即可正常工作[14]。最终短信模块电路原理图如图2.4所示。
图2.4短信模块电路图 2.4 GPS模块电路设计 本次基于单片机的老人防丢系统中GPS模块所使用的vkel型可以与外部以串口通信实现数据传输。本次设计中只需要用到三个管脚图2.5为GPS模块的电路图2管脚和5管脚分别接电源正和地3端口通过串口输出采集到的数据信息送交个单片机。
图2.5 GPS模块电路 2.5 电源与按键控制电路设计 对基于单片机的老人防丢系统的供电设计只需要对各个子部分进行供电需求分析结合相关器件的数据手册在子部分中单片机、LCD液晶、GPS模块等其正常工作的电压均为5V。 因此电源模块包括一个3脚的电源座子和6脚的电源开关。电源座子用于连接外部的电源插头电源开关用于控制整个单片机的电路开和关。 1口引脚连接到电源开关的3口引脚电源开关的1、3口引脚和4、6口引脚的作用相同用于电源的正极输出。本次设计的电源电路如图2.6所示。
图2.6 电源电路 依据系统的需求系统在开关按键按下的时候需要对事先预定好的手机号发送短信。在设计中将开关一端接在单片机的P1.0口另外一端接地,这样通过对单片机的P1.0口的高低电平进行判断即可知道外部开关按键是否按下如果P1.0口为低电平则表示开关按下需要将当前的信息发送给短信模块。按键开关由于其拨动时间难免产生误差所以在编写按键函数时要额外写一个去抖函数提高精确性[15]。图2.7为按键控制电路原理图。
图2.7 按键控制电路
3 系统软件流程设计
结合第二章的系统需求分析在完成了系统电路的设计以后系统的主要功能还需要通过软件实现需要进行相关软件流程设计实现基于单片机的老人防丢系统预定的相关功能。 软件流程设计采用模块化设计的方法即在程序编写之前首先结合基于单片机的老人防丢系统硬件电路以及系统需求对程序进行功能模块化再编写各个模块的程序模块之间可以通过软件接口衔接使程序易于编写、调试和修改。程序设计过程中的软件开发环境选用Keil软件。 3.1 系统总体流程 在当整个基于单片机的老人防丢系统运行时首先是各部分的初始化要完成包括单片机的中断设置、串口通信设置、LCD液晶初始化等。 当初始化完成后会各个模块开始工作GPS模块运行采集观察点到卫星之间的距离通过引脚串口将数值发送给单片机单片机根据定位公式计算出该点所在的经纬度和时间等信息[16]。 单片机将解算好的时间、位置信息送交个LCD1602液晶显示屏进行实时显示。与此同时单片机将信息有一个发送数组进行存储并判断系统的开关按键是否按下当检测到按键按下时单片机将发送数组的信息以串口的形式送交给短信模块短信模块将发送给短信到设定的手机号上。
图3.1 系统程序架构
3.2 GPS模块通信子程序设计 在基于单片机的老人防丢系统中GPS模块负责将定位并将采集到的数据送交个单片机进行处理。GPS模块与单片机之间通信的方式是串行口通信当单片机的串行端口完成对GPS一帧数据的接收后单片机将会产生一个中断即串行口中断收到中断后。即需要对接收的GPS数据进行按照定位解算算法进行定位解算得出机器所在位置的经度、纬度、时间和高度等信息[17]。 单片机解算过程主要是依据格式来完成 1 UTC时间 2定位状态 3纬度 4纬度半球N(北半球)或S(南半球) 5经度 6经度半球E(东经)或W(西经) 7地面速率 8地面航向 9 UTC日期 10磁偏角 11磁偏角方向,E(东)或W(西) 12模式指示 按照上述格式将我们所需要的信息存储到可识别的结构体之中。解析完毕以后将解析完成标志位置1作为判断标志即可进行后续的操作。
3.3 液晶显示子程序设计 在基于单片机的老年人防走丢系统中单片机需要对LCD1602液晶写入解析好的经纬度、时间等信息根据单片机指示显示“GPS扫描”、“短信发送中”、“发送成功”等状态。如图3.2为LCD1602子程序流程图
图3.2 LCD1602子程序流程图 根据LCD1602的数据手册在使用LCD1602之前需要进行初始化初始化需要完成2个工作一个是显示模式设置第二个是显示开/关及光标设置。我们需要通过程序为LCD1602写入相关设置指令如配置芯片16×2显示8位数据接口光标设置等完成初始化。 如图所示为LCD1602内部的RAM地址映射图当我们在图中00到0F以及40到4F这个32个地址写入数据时液晶都可以直接显示出来但要写入后面即10到27这些位置的时候通常是显示字符比较长的情况需要通过移屏的方式来实现考虑到系统中需要显示的信息字符数不多因此我们设置芯片16×2显示[18]。
图3.3地址映射图 结合图3.3给出的地址映射图可以知道我们在写入数据的过程中如果需要显示在第一行则其地址是从0X00开始若需要显示在第二行则地址从0X40开始。 如图所示为LCD1602写操作时序。
图3.4LCD1602写操作时序 写入数据需要以下几个步骤首先需要通过RS信号确定是写数据还是写命令因为写数据是指显示什么内容写命令是写入地址这些。 第二步R/W端口输入一个低电平 第三步将数据从单片机的I/O口输送给液晶的数据端口 第四步在E端口给一个持续高电平即可完成写操作。 在工作过程中还需显示系统目前的工作状态如开机以后显示“GPS SCAN”短信发送的时候显示“SMS SEDN”发送成功以后显示“SEND OK”。 3.4 按键子程序设计 依据设计需要系统在外部开关键K1按下的时候将会发送短信到设定的手机号上。在设计中将开关一端接在单片机的P1.0口另外一端接地这样通过对单片机的P1.0口的高低电平进行判断即可知道外部开关按键是否按下。当我们按下按键时P1.0口为低电平需要将当前的信息发送给短信模块。如图为按键子程序流程图
图3.5 按键程序流程图 由于开关按键连接到单片机的P1.0口为了方便操作我们首先对P1.0口进行声明即将P1.0端口定义为Key后续程序中不断的对Key值进行检测判断即可再执行相关的指令。 根据电路设计理论上在Key值为0时表明开关被按下但由于手动按下开关再释放的这个过程有一定的抖动现象因此我们判断Key值为0以后加上一个去抖操作通常加上一个10ms的延时即可延时过后再次对Key值进行判断如果Key值仍为0即表明开关按下单片机需要进行发送短信的相关操作处理。然后判断Key值是否恢复到1如果为1表明按键被释放再次回到程序入口不断检测Key值是否为0判断开关是否按下如果Key为0则继续等待[19]。
3.5 SIM900A模块通信子程序设计 单片机将检测到的经纬度和时间信息通过SIM900A通信模块发送到指定的手机上其工作流程首先开启中断然后判断是否有串行中断1若有则进行PDU编码然后发送对应信息SMS短信到手机上发送成功就结束若是发送失败则重新发送超过3次之后等待一段时间。若没有串行中断1则判断是否有串行中断2若存在读取SIM卡然后数据转码数据发送到串口删除短信结束。
4 系统验证
4.1 焊接与调试 手工焊接是常用的焊接方法目前很多工厂在生产中并没有采用原来的焊接方法但在常见部件的维修和系统测试中往往采用原来的手工焊接。如果焊接本质上存在问题将影响整个控制系统的功能实现。手工焊接主要包括以下四个步骤。 1第一步开始焊接 清理待焊部位主要清除油污和灰尘然后将待焊构件的两角朝一定方向折断。注意不要使部件的引脚相交这会影响焊接。接下来让电烙铁头接触待焊部件的引脚并放上焊锡丝。这里要注意的是烙铁头不能碰到其他部件的引脚否则两个部件将被焊接在一起。 2第二步给焊接升温 第一步完成后下一步是加热焊锡丝。主要工作是将加热后的电烙铁放在器件引脚旁边慢慢熔化焊锡丝。注意电烙铁的温度和加热时间并根据设备类型做出具体的区别。在焊接过程中当需要拆卸焊接部件时也需要对焊接处进行加热。主要操作是先将焊点处的焊锡丝进行修补使焊点呈圆形然后用电烙铁对焊点进行加热。在加热过程中可以直接拆卸部件。此时必须注意焊接时间时间过长会将损坏衬垫。 3清理焊接面 当第二步完成时有时会发现焊接不完美或者担心焊接错误需要修改。主要有两种情况。一是焊料不足焊点不圆。这时焊点需要修理。此时需要注意的是焊料量不能增加否则很容易与其他引脚连接。二是焊锡太多。此时可用电烙铁在焊接处来回滑动用电烙铁将多余的焊锡带走或用吸锡器吸去焊锡。 4检查焊点 当完成以上三步后最后需要进行整体观察主要检查焊接点是否圆满、紧固、亮度好以及有没有与其它管脚相连在一起等等。 最终得到的基于单片机的老年人防丢系统实物图如图4.1所示。
图4.1 系统实物图
4.2 程序烧录与调试 当单片机焊接好之后将STC89C52单片机和各个模块都插上去用6节南孚电池进行供电按下电源开关如果此时LCD1602液晶显示屏亮说明没有短路然后将编写好的程序烧录进单片机如果烧写成功则LED1602液晶显示器上会显示“GPS INIT”表示此时单片机焊接基本没有错误之后进行功能调试。 将烧录好的单片机重新打开首先是有SIM900模块构成的初始化界面此时LCD1602液晶显示器显示“GSM INIT”当通信模块SIM卡调试好之后进入主页面主页面分为两行上面显示测得的经度和纬度下面显示该区时间。GPS模块工作时模块上的LED指示灯亮起同时可以在LCD1602液晶显示屏上看到对应的经度、纬度和时间[20]。按下按键单片机通过SIM900A模块发送短信到手机上可以看到手机接收到短信同时LCD液晶显示“SEND OK”表示发送完成在手机上查看短信内容时此时的经度、纬度和时间。至此所有功能测试完成。
4.3 系统调试 在整体系统上电调试前大概观察下焊接的系统还存在问题例如存在很显眼的断裂正负极接反以及相连、虚焊、等问题然后用万用表检测一下电源正负极之间是否短路等严重的电源问题最终保证系统焊接没有问题。 在搭建调试平台后我们对软件程序进行调试在程序调试通过后开始验证系统功能是否满足要求如果功能没有实现或实现不完全需要继续调试程序反复进行直到所有功能都实现为止。
结 论
随着科学技术的飞速发展GPS将越来越广泛地应用于老年人的防丢系统中。目前人们可以使用的GPS技术已经非常成熟。未来它仍然是一个蓬勃发展、前景无限的技术和产业领域。展望未来作为一种全新的、非常重要的、非常有用的安全工具老年人防丢体系在家庭安全方面将有很大的发展空间。它将朝着高定位、高精度的方向发展以满足日益增长的社会需求。 本设计主要是基于STC89C52芯片为核心的老人防丢系统设计并有GPS处理模块包括单片机系统、短信发射电路、GPS接收电路、单片机复位电路、单片机时钟电路、LED显示电路、按键控制电路。从系统总体架构、方案设计与选择、系统器件选择、系统架构设计、系统硬件设计、单片机外围电路设计、STC89C52单片机介绍、STC89C52单片机外围电路设计、液晶显示电路设计、液晶显示器介绍、LCD1602液晶外围电路设计、短信模块电路设计、GPS模块电路设计、电源与按键控制电路设计、系统软件流程设计、程序架构 、GPS模块通信子程序设计、液晶显示子程序设计、按键子程序设计、SIM900A模块通信子程序设计、系统验证、焊接与调试、系统调试、程序烧录与调试方面分析讲解。设计的最终结果是使老人防丢系统能够实时的为家人提供老人所在位置实现短信的发送以及GPS的接收从而实现利用老人防丢系统找到走势老人。以数字的形式显示具体的经纬度。老人防丢系统的原理是利用短信的发射和GPS接受家人根据所收短信上的给GPS坐标来找到老人。本次设计的意义是为了解决当前社会上一些老人和小孩在户外容易迷路和走失这一严重的问题老人们记忆力差小孩子没有行动能力故容易迷路和走失这时候只要发送位置信息给家属家属收到短信后就可以快速找到老人或小孩。通过对单片机和GPS模块的研究可以更好地理解GPS定位装置的工作原理和实现方法改进现有的GPS定位装置的一些问题促进产品更好地发展。 本文所设计的基于单片机的老人防丢系统设计其结构简单、体积小、抗干扰性能好若要满足更高的精度要求还须进行适当改进。在某些特殊场合的应用中还要考虑短信和GPS的信号强度。本系统不仅适用于老年人的走失问题还适用于儿童在商场等公众场合迷失情况应用范围较广。
参考文献
[1]李佳潞.位置实时寻踪的防走丢胸牌设计[J]. 科技视界, 2017, 000(035):93-94 [2]苏立鑫, 王艺凝, 虞佳敏等.基于STC89C51单片机的智能鞋的设计与开发[J]. 科技风, 2019, 000(005):15 [3]孔德力.基于STC52单片机GSM短信上报GPS经纬度信息的设计[J].南方农机,2019,50(24):130-131 [4]罗晶心.北斗卫星导航系统现状及通信中的应用[C]. 中国卫星导航系统管理办公室学术交流中心.第十一届中国卫星导航年会论文集——S01 卫星导航行业应用.中国卫星导航系统管理办公室学术交流中心:中科北斗汇(北京)科技有限公司,2020:57-61 [5]李振东.GPS Ⅲ发展现状及趋势[C]. 中国卫星导航系统管理办公室学术交流中心.第十一届中国卫星导航年会论文集——S02 导航与位置服务.中国卫星导航系统管理办公室学术交流中心:中科北斗汇(北京)科技有限公司,2020:47-50 [6]冯国良.GSM-R网络在铁路无线通信中的研究[J].自动化技术与应用,2020,39(02):52-54 [7]韩蕾.GSM-R中跨SGSN更新时源SGSN域名解析数据的智能生成方案设计[J].铁路通信信号工程技术,2020,17(02):81-85 [8]蔡聪聪.多系统海上动态精密单点定位性能分析[C]. 中国卫星导航系统管理办公室学术交流中心.第十一届中国卫星导航年会论文集——S05 空间基准与精密定位.中国卫星导航系统管理办公室学术交流中心:中科北斗汇(北京)科技有限公司,2020:87-92 [9]薄亚东.智能手机GNSS原始观测值质量与定位分析[C]. 中国卫星导航系统管理办公室学术交流中心.第十一届中国卫星导航年会论文集——S08 测试评估技术.中国卫星导航系统管理办公室学术交流中心:中科北斗汇(北京)科技有限公司,2020:86-92 [10]黄克亚.高等院校嵌入式系统课程单片机选型比较[J].电子世界.2020(01) [11]张德宁,程曼,张梦,索雪松.基于Proteus的《单片机原理与应用》实验实践[J].科学技术创新,2017(19):107-108 [12]何立民.单片机应用系统设计[J]. 北京航天航空大学出版社 [13]胡学海.单片机原理及应用系统设计[M]. 北京: 电子工业出版社,200766-156 [14]黄河, 郭纪林.单片机原理及应用[M]. 大连: 大连理工大学出版社,2009 [15]廖常初.PLC编程及应用[M].机械工业出版社2005 [16]张万忠.抄可编程控制器应用技术[M].北京化学工业出版度社2001 [17]齐占庆.王振臣道电气控制技术[M].北京:机械工业出版社2002 [18]李道霖.电气控制与PLC原理及应用[M]北京: 电子工业出版社2004 [19]史国生.电气控制与可编程控制器技术[M]北京:化学工业出版社2003 [20]施仁刘文江.自动化仪表与过程控制.北京:电子工业出版社,1991
附录1 元器件清单 规格 名称 标号 数量 10uF 电解电容 C1 1 22pF 陶瓷电容 C2, C3 2 12MHZ 晶振 J1 1 KEY1 按键 K1 1 10K 电阻 R1 1 10K 电位器 RT1 1 ST89C52 单片机 U1 1 LCD1602 液晶 U2 1 4.7K 排组 U3 1 SWITCH 开关 U4 1 POW 电源 U5 1 CON2 排针 U10 1 gsm模块 U14 1 GPS gps模块 U21 1
附录2 源程序清单 #include “common.h”#include “uart.h”#include “gps.h”#include “gsm.h”#include “lcd.h” uchar ess_inc; sbit key P1^0; GPS_INFO GPS; //GPS信息结构体 bit GPS_rx_flag 0; #define SEND_NUMBER “ATCMGS“15754344981”\r\n”//在此修改手机号码 char xdata send_data[37]“N: ,E: ,2000-00-00,00:00\r\n”;//短信内容 unsigned char send_len 0; bit sendflag0;//短信发送标志 void GPS_DispTime(void) 显示时间 { uchar i 0; uchar ch; char time[5]; Int_To_Str(GPS.D.year,time);//年 LCD1602_Set_AC(0, 1);//显示坐标 i 0; send_len 18; while(time[i] ! ‘\0’)//等待字符串处理完 { ch time[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch;//短信内容信息装载 } LCD1602_write_data(‘-’); Int_To_Str(GPS.D.month,time);//月 LCD1602_Set_AC(5, 1);//显示坐标 i 0; send_len 23; while(time[i] ! ‘\0’)//等待字符串处理完 { ch time[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; } LCD1602_write_data(‘-’); Int_To_Str(GPS.D.day,time);//日 LCD1602_Set_AC(8, 1);//显示坐标 i 0; send_len 26; while(time[i] ! ‘\0’)//等待字符串处理完 { ch time[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; } LCD1602_write_data(‘,’); Int_To_Str(GPS.D.hour,time);//时 LCD1602_Set_AC(11, 1); i 0; send_len 29; while(time[i] ! ‘\0’)//等待字符串处理完 { ch time[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch;} LCD1602_write_data(‘:’); Int_To_Str(GPS.D.minute,time);//分 LCD1602_Set_AC(14, 1); i 0; send_len 32; while(time[i] ! ‘\0’)//等待字符串处理完 { ch time[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; } } void GPS_DisplayOne(void) { uchar len,ch, i; char info[10]; ess_inc 0; if (GPS.NS ‘N’) //判断是北纬还是南纬 { LCD1602_DisplayChar(0, 0, ‘N’);//1602显示 N len 0; Int_To_Str(GPS.latitude_Degree,info); //纬度 LCD1602_Set_AC(1, 0);//显示坐标 i 0; send_len 2; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch;//短信内容信息装载 len ; } send_data[send_len] ‘d’; LCD1602_write_data(0xDF);//显示 d len ; Int_To_Str(GPS.latitude_Cent,info); //纬分 i 0; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; len ; } LCD1602_write_data(0x27); Int_To_Str(GPS.latitude_Second,info); //纬秒 i 0; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; } len ; while(7 - len) { len ; LCD1602_write_data(’ ‘); } } ess_inc 1; if (GPS.EW ‘E’) //判断是东经还是西经 { LCD1602_DisplayChar(8, 0, ‘E’);//显示信息 len 0; Int_To_Str(GPS.longitude_Degree,info); //经度 LCD1602_Set_AC(9, 0);//显示坐标 i 0; send_len 11; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; len ; } send_data[send_len] ‘d’; LCD1602_write_data(0xDF); len ; Int_To_Str(GPS.longitude_Cent,info); //经分 i 0; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; LCD1602_write_data(ch);//显示信息 send_data[send_len] ch; len ; } LCD1602_write_data(0x27); Int_To_Str(GPS.longitude_Second,info); //经秒 i 0; while(info[i] ! ‘\0’)//等待字符串处理完 { ch info[i]; } len ; while(7 - len) { len ; LCD1602_write_data(’ ); } } GPS_DispTime(); ess_inc 1; if(sendflag1)//发送短信 { sendflag 0; gsm_send_englishmsg(SEND_NUMBER,send_data);//发送位置短信 delay_ms(1000); delay_ms(1000); LCD1602_DisplayString(0,0, SEND OK “); delay_ms(1000); LCD1602_DisplayString(0,0,” “); } } void main(void) { uchar error_num 0; GPS_rx_flag 0; LCD1602_Initialize();//LCD1602显示屏初始化 uart_init(UART_B9600);//串口初始化 GPS_rx_flag 1; //开机显示扫描信号中 LCD1602_DisplayString_Center(0,“GPS SCAN…”); LCD1602_ClearLine(1); while(1) { if (rev_stop) //如果接收完一行 { if (GPS_RMC_Parse(RX1_Buffer, GPS)) //解析GPRMC { GPS_DisplayOne(); //显示GPS信息 error_num 0;//无效次数计数清零 gps_flag 0; rev_stop 0; } else { error_num; if (error_num 20) //如果数据无效超过20次 { error_num 20; LCD1602_DisplayString_Center(0,“GPS SCAN…”); LCD1602_ClearLine(1); } gps_flag 0; rev_stop 0; } } if(key 0)//短信按键按下 { delay_ms(10); if(key 0) { while(key 0); LCD1602_DisplayString(0,0,” SMS SEND… ); delay_ms(1000); sendflag 1;//开启发送标志 } } }; }
致 谢
这次的毕业论文设计总结是在我的指导老师谢莹老师和冯雅丽老师亲切关怀和悉心指导下完成的。从毕业设计选题到设计完成老师们给予了我耐心指导与细心关怀有了谢老师和冯老师耐心指导与细心关怀我才不会在设计的过程中迷失方向失去前进动力。老师们有严肃的科学态度,严谨的治学精神和精益求精的工作作风这些都是我所需要学习的感谢两位老师给予了我这样一个学习机会, 谢谢! 感谢与我并肩作战的舍友与同学们感谢关心我支持我的朋友们感谢学校领导、老师们感谢你们给予我的帮助与关怀感谢城市学院特别感谢智能工程学院四年来为我提供的良好学习环境谢谢! 文章转载自: http://www.morning.lbrwm.cn.gov.cn.lbrwm.cn http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn http://www.morning.rlqml.cn.gov.cn.rlqml.cn http://www.morning.nchsz.cn.gov.cn.nchsz.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.trplf.cn.gov.cn.trplf.cn http://www.morning.rjcqb.cn.gov.cn.rjcqb.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.xdfkrd.cn.gov.cn.xdfkrd.cn http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn http://www.morning.zyffq.cn.gov.cn.zyffq.cn http://www.morning.npgwb.cn.gov.cn.npgwb.cn http://www.morning.pxbky.cn.gov.cn.pxbky.cn http://www.morning.mxhys.cn.gov.cn.mxhys.cn http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn http://www.morning.ydxwj.cn.gov.cn.ydxwj.cn http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn http://www.morning.mynbc.cn.gov.cn.mynbc.cn http://www.morning.bnpcq.cn.gov.cn.bnpcq.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn http://www.morning.fcwxs.cn.gov.cn.fcwxs.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.snbrs.cn.gov.cn.snbrs.cn http://www.morning.zbmcz.cn.gov.cn.zbmcz.cn http://www.morning.syssdz.cn.gov.cn.syssdz.cn http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn http://www.morning.kdxzy.cn.gov.cn.kdxzy.cn http://www.morning.prjns.cn.gov.cn.prjns.cn http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.gygfx.cn.gov.cn.gygfx.cn http://www.morning.gjqgz.cn.gov.cn.gjqgz.cn http://www.morning.xfxlr.cn.gov.cn.xfxlr.cn http://www.morning.gtbjf.cn.gov.cn.gtbjf.cn http://www.morning.jrtjc.cn.gov.cn.jrtjc.cn http://www.morning.paoers.com.gov.cn.paoers.com http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.dqwykj.com.gov.cn.dqwykj.com http://www.morning.jpzcq.cn.gov.cn.jpzcq.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.crtgd.cn.gov.cn.crtgd.cn http://www.morning.wfttq.cn.gov.cn.wfttq.cn http://www.morning.pgmbl.cn.gov.cn.pgmbl.cn http://www.morning.msmtf.cn.gov.cn.msmtf.cn http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn http://www.morning.ktblf.cn.gov.cn.ktblf.cn http://www.morning.xlmpj.cn.gov.cn.xlmpj.cn http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn http://www.morning.sgfpn.cn.gov.cn.sgfpn.cn http://www.morning.routalr.cn.gov.cn.routalr.cn http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.zbnts.cn.gov.cn.zbnts.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.qctsd.cn.gov.cn.qctsd.cn http://www.morning.lynb.cn.gov.cn.lynb.cn http://www.morning.xjmpg.cn.gov.cn.xjmpg.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.xlbyx.cn.gov.cn.xlbyx.cn http://www.morning.dndjx.cn.gov.cn.dndjx.cn http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn http://www.morning.yuminfo.com.gov.cn.yuminfo.com http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.c-ae.cn.gov.cn.c-ae.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.c7498.cn.gov.cn.c7498.cn http://www.morning.wmfh.cn.gov.cn.wmfh.cn