简易车载GPS的设计【毕业设计+开题报告+文献综述】

简易车载GPS的设计【毕业设计+开题报告+文献综述】

ID:437921

大小:1.89 MB

页数:63页

时间:2017-08-02

上传者:U-944
简易车载GPS的设计【毕业设计+开题报告+文献综述】_第1页
简易车载GPS的设计【毕业设计+开题报告+文献综述】_第2页
简易车载GPS的设计【毕业设计+开题报告+文献综述】_第3页
简易车载GPS的设计【毕业设计+开题报告+文献综述】_第4页
简易车载GPS的设计【毕业设计+开题报告+文献综述】_第5页
资源描述:

《简易车载GPS的设计【毕业设计+开题报告+文献综述】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业设计开题报告电子信息工程简易车载GPS的设计一、综述本课题国内外研究动态,说明选题的依据和意义:GPS全球定位系统又称卫星测时测距导航系统,整个系统分为卫星星座,地面控制和监控站,用户设备三大部分。该系统是以卫星为基础的无线电导航定位系统,具有全能性,全球性,连续性的导航,定位和定时功能,能为各类用户提供精密的三维坐标,速度和时间。用GPS信号可以进行海,空和陆地的导航,及导弹的制导,大地测量和工程测量的精密定位,时间的传递和速度的测量等。随着我国GPS技术的发展在大地测量方面,建立了各级测量控制网,提供了高精度的平面和高程三维基准[1,2]。我国完成西沙,南沙群岛个岛屿与大陆的GPS联测,使海域与全国大地网联结一整体。经近10年来我国测绘等部门的使用表明,GPS以全天候、高精度、自动化、高效益等显著特点,广大测绘工作者的信赖,并成功地应用于大地测量、工程测量、航空摄影测量、运载工具导航和管制、地壳运动监测、工程变形监测、资源勘察、地球动力学等多种学科,从而给测绘领域卷起一场具有深远意义的技术风暴[3,4,]。GPS系统的特点:(1)定位精度高。应用实践已经证明,GPS相对定位精度在50KM以内可达10-6,100~500KM可达10-6,1000KM可达10-6(2)观测时间短。目前,20KM以内相对静态定位,仅需15~20分钟(3)测站间无需通视,只需测站上空开阔即可(4)可提供三维坐标(5)操作简便(6)全天候作业。目前,GPS观测可在一天24小时内的任何时间进行,不受白天黑夜,起雾刮风,下雨下雪等气候的影响(7)功能多,应用广[5,6,7,]。由于GPS卫星由星载高精度原子钟产生基准信号并提供精确的时间。另外,能够为用户提供精密的三维坐标和速度,可为许多的工程服务,同时也为某些实验及设计开发等所用。52 本设计主要利用单片机,液晶显示器和GPS的OEM设计开发出能用于汽车位置定位的简易GPS定位器。所选器件是MCS-51系列单片机,液晶显示器模块,GPSOEM板来接受GPS信号。将定位信息由串行口送出,单片机串行接受定位信息,经处理后送显示模块。进行GPS定位信息要求显示经纬度,运动速度,北京时间。本次设计主要包括三方面:方案的设计,硬件的设计,软件的设计。硬件设计中,主要是各个功能模块的确定。在软件设计中主要是先对各个硬件模块的初始化,然后是对各个的基硬件础上编写软件程序来完善整个功能。通过本次设计进一步掌握了单片机综合应用系统的应用设计方法,对单片机硬件的制作以及程序的设计及调试的能力得到了很大的提高。在整个设计过程中能独立完成从方案认证、电路设计、程序编写与调试等全过程,在软件程序设计时采用C语言编写,为单片机的应用打下了的基础!把平时所学的单片机和C语言编程等知识合理的运用到研究当中,为以后能够设计单片机系统打好基础。同时,也锻炼了自己的能力,为以后工作打下了铺垫。二、研究的基本内容,拟解决的主要问题:研究的基本内容:利用单片机MSC-51设计出能显示出经纬度的位置坐标,运动速度和北京时间,用LCD液晶显示器显示。拟解决的主要问题:1、LCD液晶显示器的控制,应用2、GPSOEM板传送的信息的接受,处理,利用。3、怎样调试软件及编译实现单片机程序三、研究步骤、方法及措施:1.查找相关参考资料,初步构思及方案论证,写好开题报告2.根据方案,设计电路原理图,设计线路图,制作电路模板3.编译原程序与调试,论证正确性4.进行性能测试,完成设计报告四、参考文献:[1]楼然苗,李光飞.51系列单片机设计实例.北京:北航出版社,2003.03[2]徐绍全,张华海,杨志强,王泽民著.GPS测量原理及应用,2003.1[3]高禹,冯相忠编C语言程序设计,2007.12[4]先锋工作室编著.单片机程序设计实例,200252 [5]沈红卫著.单片机应用系统设计实例与分析,2003.1[6]中国人民解放军总装备部军事训练教材编辑工作委员会编.GPS技术与应用,2004.6[7]李光飞,楼然苗.单片机课程设计实例指导.北京:北航出版社,2004.09[8]余永权.ATMEL89系列单片机应用技术.北京:北航出版社,2001.10[9]张伟等编著.Protel99SE实用教程[M].人民邮电出版社[10]浙江海洋学院图书馆中国学术期刊数据库http://172.16.99.198/kns50/[11]李光飞,楼然苗.单片机课程设计实例指导.北京:北航出版社,2004.09[12]李光飞,李良儿,楼然苗.单片机C程序设计实例指导[M].北京:北航出版社,2005.09.52 毕业设计文献综述电子信息工程简易车载GPS设计前言随着科技的日新月异,GPS的应用也越来越广泛涉及到生活中的各个领域,这次设计的是一个GPS汽车导航仪是用MSC-51单片机芯片为系统的控制芯片,液晶显示器模块LCD做为时间信息的显示,GPS信息接收采用GARMIN公司的GARMINGPS25LP型GPSOEM板,与单片机的信息传送采用RS-232标准。将定位信息由串行口送出,单片机串行接受定位信息,经处理后送显示模块。进行GPS定位信息要求显示经纬度,运动速度,北京时间。下面介绍与本课题相关的参考文献信息,以便使读者能够更清楚地了解与该课题相关的技术要求及发展动态等信息。主题当前,GPS定位在经济、军事、科研和社会生活等各个领域得到广泛应用,日益显示了其优越性如市场上手机有GPS定位功能,汽车上的GPS定位仪等,在生活上给人们带来了很多方便。具有全球、全天候、连续实时的三维定位、测速和定时能力。它不仅可以为各种运动载体,如车辆、船舰、航天器等提供实时导航定位,为各种非直接火力武器系统提供制导,还可以运用于高精度定位和高精度时间传递等方面。本设计主要从GPS处理模块选择,显示器选择,微处理器选择三方面考虑利用单片机来实现对GPS的控制。随着科技的不断提高,GPS功能的越来越完善会有更多的领域用到GPS系统。这次设计的核心是单片机技术,系统电路的主芯片采用美国ATMEL公司的AT89C51FLASH单片机,它与MCS-51系统产品兼容,具有4K字节可重编程Flash存储器,5V±20%电源电压、128×52 8位的内部RAM,两个16位定时器/计数器,6个中断源,以及低功耗空闲和掉电方式等一系列的功能。通过单片机对GPS发送的信号进行处理所以要熟悉单片机原理及相关方面的知识,熟悉单片机设计的整个思路。故我参考了楼然苗老师的《51系列单片机设计实例》、李光飞老师《单片机课程设计实例指导》等书,使我对这方面的知识进行了巩固及加深,熟悉单片机内部硬件结构,CPU系统,CPU外围电路,基本单元功能,I/O端口,存储器、显示器等。在次本课程设计中所使用的单片机为89C51系列单片机,我们的教科书为我们提供了正确的使用方法及相关原理。LCD液晶显示器是利用光的偏振现象来显示。一般也分为数字型LCD(同LED数码管显示器,只能显示数字和极少数几个英文字符),和点阵型LCD。在LCD显示器方面选择了自带汉字库的LCD显示器本身不发光,靠反射或者透射其他光源;功耗很小;可靠型高;寿命长(工业级>100000小时,民用级>50000小时);体积小;电源简单等特点非常适合于嵌入式系统、移动设备、掌上设备等使程序设计变得更加方便。对于GPS定位系统相关方面的原理及国内外相关动态我参考了徐绍全,张华海,张志强,王译民共同编写的《GPS测量原理及运用》等。GPS定位系统由硬件系统和软件系统组成。硬件系统主要有OEM板,单片机,显示器组成。软件系统由各种子程序组成如初始化子程序、GPS接受子程序、LCD液晶显示器程序、显示子程序。完成这项设计要有较强的单片机编程能力,为此,我参考了李光飞等老师共同编写的《单片机C程序设计实例指导》等。对于本次课程设计中的硬件设计必须熟练使用Protel,设计并绘制电路的PCB图和原理图,对于这些的掌握对完成这次课程设计是非常重要的故我选择了张伟等老师编著的《Protel99SE实用教程》。总结通过这次对GPS汽车定位仪的毕业设计我学到了很多,这次设计历时4个多月,从一开始的选定课题到后然的资料查找,然后再根据自己某些方面不足参考一些资料进行学习及巩固。以前我对查找一些资料的能力比较弱,通过这次设计我学会了怎样正确查找自己所需要的东西,在对资料的查找中也增长了很多见识使自己在资料搜集与分析中对资料的归纳、分析、综合运用能力得到了很大提高。这次设计主要包括以下几个部分:单片机的控制技术,LCD液晶显示器的控制技术,GPS控制处理模块对卫星信息的接收,在设计过程中碰到了许多困难,在一开始的选题中我就困惑了在经过几天的思考后根据自己的强项及喜好选定了课题。在整个过程中,一次次失败,一次次从新开始。52 在整个设计中我懂得了许多东西,培养了我独立工作的能力,树立了对自己工作能力的信心,同时也是对自己的进一步肯定。相信会对今后的学习工作生活有非常重要的影响。这次毕业设计使我充分体会到了在创造过程中探索时的艰难和成功时的喜悦。参考文献:[1]楼然苗,李光飞.51系列单片机设计实例.北京:北航出版社,2003.03[2]徐绍全,张华海,杨志强,王泽民著.GPS测量原理及应用,2003.1[3]高禹,冯相忠编C语言程序设计,2007.12[4]先锋工作室编著.单片机程序设计实例,2002[5]沈红卫著.单片机应用系统设计实例与分析,2003.1[6]中国人民解放军总装备部军事训练教材编辑工作委员会编.GPS技术与应用,2004.6[7]李光飞,楼然苗.单片机课程设计实例指导.北京:北航出版社,2004.09[8]余永权.ATMEL89系列单片机应用技术.北京:北航出版社,2001.10[9]张伟等编著.Protel99SE实用教程[M].人民邮电出版社[10]浙江海洋学院图书馆中国学术期刊数据库http://172.16.99.198/kns50/[11]李光飞,楼然苗.单片机课程设计实例指导.北京:北航出版社,2004.09[12]李光飞,李良儿,楼然苗.单片机C程序设计实例指导[M].北京:北航出版社,2005.09.[13]康华光.电子技术基础(模拟部分)[M].高等教育出版社,1998.2.[14]ChristopherJ.Hegarty,UnderstandingGPSprinciplesandapplications,2007[15]KenMaskrey,HardwareDesign,2010[16]余永权.89系列FLASH单片机原理及应用.北京:电子工业出版社,2000.09[17]]张旭涛、曾现锋、王爱军.单片机原理与应用[M]北京理工大学出版社52 本科毕业设计简易车载GPS的设计52 摘要GPS全球定位系统又称为卫星测时测距导航系统,整个系统分为卫星星座、地面控制和监控站、用户设备三大部分。该系统是以卫星为基础的无线电导航定位系统,具有全能性、全球性、连续性的导航、定位和定时功能,能为各类用户提供精密的三维坐标、速度和时间。GPS系统的空间部分是由21颗卫星构成,均匀的分布在6个轨道上,地面高度是2千多公里,轨道倾斜角是55度,周期约为12小时,卫星向地面发送两个波段的载波信号,载波信号频率分别为1575.442兆赫兹和1227.6兆赫兹,在卫星上安装了精度很高的原子钟,具有稳定频率的作用,在载波上调制有表示卫星位置的广播星历,用于测距的C/A码和P码,以及其它相关信息,能够在全球范围内,向任意多的用户提供高精度、连续、全天候、实时的三维测速、三维定位和授时。用GPS信号可以进行海洋、高空和陆地的导航、导弹的制导、大地测量和工程测量的精密定位、时间的传递和速度的测量等。随着我国GPS技术的发展,在大地测量方面,建立了各级测量控制网,提供了高精度的平面和高程三维基准。我国已完成西沙,南沙群岛各个岛屿与大陆的GPS联测,使海域与全国大地网联结为一整体。本设计主要利用单片机、液晶显示器和GPS的OEM板设计开发出能用于汽车位置定位的简易GPS定位器。所选器件是MCS-51系列单片机,液晶显示器模块。GPSOEM板来接受GPS信号,将定位信息由串行口送出,单片机串行接受定位信息,经过处理后送显示模块,显示经纬度、运动速度及北京时间。关键字:单片机;GPS;设计52 AbstractAlsocalledglobalpositioningsystem(GPS)satellitenavigationsystem,testrangingthewholesystemintosatelliteconstellation,groundcontrolandmonitor,theuserequipmentthreesections.Thesystemisbasedonsatelliteradionavigationandpositioningsystem,hastheversatilityofsex,continuity,celestialnavigation,locationandtimingfunctionforallkindsofuserswithprecision,thethree-dimensionalcoordinatesofspeedandtime.GPSsystemspacecomposedpartlyby21satellite,evenlydistributedinsixrailsurface,groundheightis20,000kilometers,railobliquityis55degrees,flatheartrateisabout0,isabout12hours,periodicsatellitetothegroundtolaunchtwobandscarriersignal,carriersignalfrequency1575.442trillionrespectivelyHertz(L1band)and1227.6MHZ(L2band),satelliteinstallprecisionishigh,theclockstoensurethestabilityofthecarrierfrequencymodulation,ontheradiohassaidsatellitelocationforthestarcalendar,rangefinderC/AcodeandPyards,andothersysteminformation,canintheglobalscope,anyamountofuserstoprovidehighprecision,all-weatherreal-timethree-dimensional,continuousandspeed,three-dimensionallocalizationandGPSclock.UseGPSsignalscanundertakesea,airandlandnavigation,missileguidance,geodesyandengineeringmeasurementprecisionpositioning,timerelayandvelocitymeasurement,etc.WithChina'sGPStechnologydevelopmentongeodesy,establishedvariousmeasurementcontrolnetwork,provideshigh-precisionplaneandelevation3dbenchmark.Chinahascompletedwestham,nanshaislandsaoftheislandtomainlandGPSleaguetomeasure,maketheconnectionwiththesea.AwholenetworkThisdesignmainUSESsinglechip,LCDmonitorsandGPSOEMdesigndevelopedcanbeusedinautomobilepositioningsimpleGPSlocator.TheselecteddeviceisMCS-51seriesmicrocontroller,LCDmodule,GPSOEMboardtoaccepttheGPSsignal.Willlocateinformationsentoutbyaserialport,microcontrollerserialacceptpositioninginformation,theprocessedsenddisplaymodule.FortheGPSpositioninginformationrequiredtodisplaylongitudeandlatitude,movementspeed,Beijingtime.Keyword:SCM;GPS;design52 目录第1章绪论11.1GPS系统的构成11.2GPS系统基本定位原理2第2章系统总方案设计42.1GPS-OEM接收板42.2LCD液晶显示器42.3MCU的选择5第3章系统硬件设计63.1电源电路的设计63.251单片机系统63.3GPS-OEM接受电路。73.4液晶显示器接收口设计11第4章系统软件设计144.1系统软件设计原理144.2LCD液晶显示器程序144.3显示控制程序194.4GPS接收子程序214.5初始化程序22小结24致谢25[参考文献]26附录1电路原理图27附录2程序清单28附录3液晶字模文件4752 第1章绪论GPS即全球定位系统(GlobalPositioningSystem)是美国从本世纪70年代开始研制的,在1994年建成的,历时20年,耗资200亿美元,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星定位与导航系统。最近10年的我国测绘等部门的使用统计表明,GPS以全天候、自动化、高精度、高效益等特点,取得广大测绘工作者的信赖,并且成功地应用到了工程测量、运载工具管制和导航、工程变形监测、地壳运动监测、资源勘察、地球动力学、大地测量等多个领域,从而给测绘领域带来一场深刻的技术风暴。全球定位系统的主要用途:(1)航空航天应用,包括飞机导航、卫星定轨、导弹制导、航空救援和载人航天器防护探测(2)海洋应用,包括海洋救援、最佳航程航线制定、水文地质测量、船只实时调度、海洋平台定位、海平面升降测量等。(3)陆地应用,主要包括车辆导航、地球物理资源探测、工程测量、地壳运动监测、大气物理测量、市政规划控制等。GPS系统的特点:(1)观测时间短。目前,20KM以内相对静态定位,仅需15~20分钟(2)定位精度高。应用实践已经证明,GPS相对定位精度在50KM以内可达10-6,100~500KM可达10-6,1000KM可达10-6(3)测站之间无需通视,只需测站上空开阔即可(4)操作简便(5)可提供三维坐标(6)全天候作业。目前,GPS观测可在一天24小时内的任何时间进行,不受白天黑夜,狂风暴雨等气候的影响。1.1GPS系统的构成GPS系统包括三大部分:GPS信号接收机、GPS卫星星座、地面监控系统。1、GPS工作卫星及其星座GPS由3颗在轨备用卫星和21颗工作卫星构成。24颗卫星均匀分布在6个轨道平面内,轨道倾斜角度为55度,各个轨道平面之间的距离为60度。每个轨道平面内各颗卫星之间的升交角距相差90度。在GPS系统中,GPS卫星的作用为:(1)用L波段的两个无线载波(19cm和24cm)向广大用户持续的发送导航定位信号。(2)接收和储存来自地面监控站的导航信息,接收并执行监控站的控制指令。(3)卫星计算机进行数据处理。52 (4)接收地面主控站发送卫星的调整命令,及时的调整运行偏差或启动备用卫星等。2、地面监控系统GPS工作卫星的地面监控系统包括一个主控站、三个注入站和五个检测站。主控站的主要任务是处理、收集本站和监控站收集到的全部信息,编算出每颗卫星的GPS时间系统,再将预测的卫星星历、状态数据以及大气传播编制成导航电文,并送入到注入站。主控站还负责纠正卫星的轨道偏离度,调整卫星的运行方向,启动备用卫星用来取代出问题的工作卫星。另外还负责监控整个地面监测系统的工作情况,检验导航电文,监测卫星是否已将导航电文传送到用户端。1.2GPS系统基本定位原理GPS定位的基本原理是把高速运动卫星的瞬间位置作为起算数据,然后采用空间距离后方交会的方法,确定待测点的位置。GPS定位实际上就是通过四颗已知位置的卫星来确定GPS接收器的位置,其中3颗卫星是测量在用WGS-84作为标准的三维坐标,本来3维数据已足够定位,但是卫星传播的工具是电磁波,而电磁波经过传播会产生误差,从而导致传播时间有偏差,为了使这传播的数据同步,引入第四颗卫星来提供时间数据。如图1.1所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间为△t,再加上接收机所接收到的卫星信号等其它数据可以确定双模式定位(GPS卫星信号定位再加上无线网络定位相结合的方式定位)。图1.1GPS定位原理图52 如图1.1中的GPS接收器是当前要确定位置的设备,卫星1、2、3、4是本次定位设计要用到的四颗卫星:d1、d2、d3、d4分别是四颗卫星到GPS接收器的距离。我们已经知道每一个GPS卫星都在不停的工作散播着自己的位置,那么在发送位置信息的同时,也会附加上该数据包扩发出时的时间戳。当GPS接收器收到数据后,用当前时间(当前时间只能由GPS接收器自己来确定)减去时间戳上的时间,就是数据包在空中传输所用的时间。知道了数据包在空中的传输时间然后乘上他的传输速度,也就是数据包在空中传输的距离了,就是该卫星到GPS接收器的距离了。数据包是通过无线电波传送的,那么理想速度就是光速c,把传播时间记为Ti的话,用公式表示就是:  di=c*Ti(i=1,2,3,4)这就是di(i=1,2,3,4)的来源了。GPS定位是目前最为精确、应用最为广泛的定位导航技术,以后将会成为每一个移动设备的标配之一。52 第2章系统总方案设计2.1GPS-OEM接收板GPS模块性能的选择如下:1、时间定位:52 这是指重启GPS接收器时,用来确定现在位置所需要的时间。对于2通道接收器,冷启动时间大多要超过15分钟,而热启动时时间一般低于5分钟。而对于12通道接收器,如果你在最后一次定位位置的附近,冷启动时的定位时间一般为3~5分钟,热启动时为15~30秒。因为最多可能有12颗卫星是可见的,GPS接收器必须按顺序访问每一颗卫星以获取每颗卫星的信息。大多数的GPS接收器是12并行通道型的,这使得他们可以追踪每颗卫星的信息,12通道接收器的优点包括快速冷启动和对卫星的信息快速初始化,而在森林地区的接收效果更好.一般12通道接收器不需要天线,除非你是在封闭的空间中,如船舱、车厢中。2、信号干扰:如果在很好的位置上,GPS接收器至少可以接收3~5颗卫星。如果在峡谷中或者两边高楼耸立的街道上或者在茂密的树林里,可能不能够接收到足够多的卫星,从而导致无法定位或者只能得到一个二维坐标。同样,如果呆在一个建筑里面,可能无法接收或传送一些信息,一些GPS接收器有单独的天线可以贴在玻璃上,或者一个外置天线可以放在车顶上,这样有助于你的接收器接收到更多的信号。3、定位经度:大多数GPS接收器的水平位置定位精度在5m~10m左右,但这只是在SA没有开启的情况下。这次采用的是GARMIN公司所制造的GPS25LP型GPSOEM接收板。GARMIN公司作为全球最大的GPSOEM板的供应商,他们生产的GPS25LP型GPSOEM板具有四个特点:1、重捕时间小于2S,热启动时间为15S,冷启动时间为45S,自动搜索时间为90S;2、并行12通道接收;3、定位精度高4、提供外接天线以帮助接收。GARMINGPS25LP接收板完全能满足这次设计的需要。2.2LCD液晶显示器一般嵌入式系统可供选择的显示器有:1、LED显示器:LED显示器是由LED发光二极管发展而来的一种显示器。一般分为LED点阵显示器和LED数码管显示器。它具有亮度高、反应速度快、视角宽、可靠性高、使用寿命长等特点。由于LED数码管只能显示数字和极少数英文字符,显示很单调。而LED点阵虽然能显示各种信息,但它的体积很大,不适合用于移动设备。2、VFD显示器:VFD显示器是由电子管发展而来的一种显示器。它是真空二极管或三极管的一种改造型。VFD显示器具有高清晰度、高亮度、宽视角、反应速度快、色彩多,显示效果好、使用寿命长等特点。但它需要5.5-6.3V的灯丝电压、150-450mA的灯丝电流、12-36V的阳极加速电压、15-36V的栅极电压。如果不考虑阳极和栅极电流,就灯丝功耗就达825mW,功耗较大,不适合在移动设备上使用。而且它需要多组不同的供电电压供电,使用不方便。52 3、LCD液晶显示器:LCD液晶显示器是利用光的偏振现象来显示的。一般也分为数字型LCD和点阵型LCD。前者用于只需显示简单字符的地方,如时钟等。后者能显示各种复杂的图形和自定义的字符。因此应用比较广泛。LCD液晶器具有本身不发光、靠反射或者透射其他光源、功耗小、可靠性高、寿命长、体积小、电源简单等特点,非常适合于嵌入式系统、移动设备等。此次设计采用点阵型LCD液晶显示器CGM-12232。具有122*32点阵,不仅可以显示数字,还可以显示中文、英文甚至图片,体积很小,功率损耗低于12.5mW。2.3MCU的选择一般GPS导航器都是GPSOEM配合矢量电子地图来进行导航和航线记录的。这些设备CPU的运算量和需要储存的数据量都很大,一般都使用X86、ARM等32位CPU。考虑到本设计只需要显示定位和时间等简单的信息,因此在单片机方面我们选择Atmel的AT89C51单片机来作为处理器。第3章系统硬件设计3.1电源电路的设计电源电路的作用是给各个硬件供电,本次设计有两种形式的电源电路即机内变压器供电电路和机外外接电源供电电路如图3.1所示。将220V的交流电通过电源电路转换变成稳定的5V直流电源,以便单片机可以稳定工作。主要流程为降压、整流、滤波、稳压。220V的交流电进来后先经过变压器降压,然后经过由四个二极管组成的全桥整流电路进行整流,接着再经过电容滤波形成比较稳定的直流电,最后由7805进行稳压,输出稳定的5V电源供单片机工作。52 图3.1电源电路原理图3.251单片机系统系统电路的主芯片采用的是AT89C51FLASH单片机,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4kbytes的只读程序存储器(ROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的密度很高、非易失性存储技术生产,兼容标准MCS-51指令系统,片内安置通用8位中央处理器(CPU),功能强大,具有4K字节可重编程Flash存储器、电源电压5V±20%、内部RAM128×8位,两个16位定时器/计数器、6个中断源。AT89C51单片机的电源、复位、晶振振荡电路如图3.2所示。52 图3.2AT89C51单片机的电源、复位、晶振振荡电路图晶体振荡电路。XTAL1脚和XTAL2脚分别构成片内振荡器的反相放大器的输入和输出端,外接振荡器以及补偿电容C1、C2构成并联谐振电路。AT89C051系统中晶振可在0-24MHZ选择。外接电容C1、C2的大小会影响振荡器频率的高低和稳定度、起振速度以及温度稳定性。在设计电路板时,晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠工作。在本次设计中为了使误差趋于零故选择了11MHZ的标准石英晶体,电容C1、C2为20PF。复位电路是单片机初上电时将PC指针指向0x0000的操作。当上电时振荡器运行,此时只要给出RST引脚两个机器周期的高电平便可以完成系统复位。本次设计采用的是上电自动复位,由于上电后电容器上的电压不会产生突变,因而上电初期RST的电压基本上与VCC的电压相同,为高电平,随着充电的进行RST上的电压值会下降,实际上只要在RST引脚上保持10ms以上的高电平系统就可以复位。电容C可取10-33uF,电阻R可取1.2-10kΩ。本次设计中C取10uF,电阻R取10kΩ,充电时间常数为100ms(τ=R×C=10×10-6×10×103=100ms)。3.3GPS-OEM接受电路。GPS信息接受采用的OEM板是GARMIN公司的GARMINGPS25LP型与单片机的信息传送采用RS-232标准。引脚功能如图3.3所示52 图3.3GPS-OEM板输出引脚图各个管脚的功能说明如下:Pin1:串行口2的数据输出端。Pin2:串行口2的数据输入端。Pin3:秒脉冲输出端,经度uS。Pin4:串行口1的数据输出端。Pin5:串行口1的数据输入端。Pin6:掉电模式控制端。Pin7:外部备用电源输入端。Pin8:GND接地端。Pin9:Vin电源输入端。Pin10:同Pin9,电源输入端,内部同Pin9相连。Pin11:空脚NC。Pin12:NMEA(美国海洋电子协会)0183,Ver1.5格式输出端。由于本次设计使用的是LVS版本GPS25LP型GPSOEM板,所以串行口1、串行口2和NMEA口使用的都是RS-232电平。如果使用的是LVC版本的GPS25LP型GPSOEM板这些端口使用的是CMOS/TTL电平。在本次设计中将串行口2连至计算机用作对GPSOEM板设置用,本机显示GPS信息从NMEA口送出。具体如图3.4。52 图3.4GPS-OEM板接口电路由于GPSOEM板送出的是RS-232电平,计算机串行通信用的也是RS-232电平,单片机使用的是COMS/TTL电平,包括串行通信。因此GPSOEM板和计算机通信无需多余的电路可以直接相连接,而和单片机接口必须进行RS-232电平和COMS/TTL电平的相互转换后才能通信。以前RS-232和COMS/TTL电平转换常用MC1488和MC1489。由于MC1488和MC1489是单一功能的发送/接收器,所以在双向数据传输中各端都需要同时使用这两个器件,此外还要同时使用正负两组电源,在很多场合使用很不方便,所以逐渐被淘汰了。后来推出了只用单一电压且具有发送/接收双重功能的电路。这种器件内部集成一个电荷泵和一个电压变换器,它能将+5V或者更低的电压变换成RS-232所需的电压。这类芯片最典型的就是MAXIM的MAX232芯片(如图3.5),它内部电荷泵电路先将+5V提升到+10V,然后在利用电压反转的方法将+10V变成-10V,这样就得到了RS-232所需的V的电压了。52 图3.5MAX232接线图设计中单片机只需要接收从GPSOEM板发送过来的数据,而不需要向GPSOEM板发送数据。也就是只需将RS-232电平转换为COMS/TTL电平,而不需要将COMS/TTL电平转换为RS-232电平。在对RS-232电平和COMS/TTL电平作出分析后我们采用单个三极管来进行转换,而不用MAX232等专用RS-232-COMS/TTL电平转换器。具体接线如图3.652 图3.6RS-232电平COMS/TTL电平转换图当RS-232IN端输入RS-232逻辑电平“0”,也就是输入+3~+25V时,三极管正向导通。此时TTLOUT端输出的是三极管的饱和压降。此电压约0.1-0.2V,符合COMS/TTL电平<0.7V的要求。当RS-232IN端输入RS-232逻辑电平“1”,也就是输入-3~-25V时,三极管截至。此时TTLOUT端输出的是电源电压+5V。符合COMS/TTL电平>3.2V要求。测试证明此电路完全可行,经过几次的连续开机试验,未出现任何异常,符合设计要求。3.4液晶显示器接收口设计1、液晶驱动IC(SED1520F0A)基本特性:(1)具有低损耗、供应电压范围宽。(2)具有16common和61segment输出,并可外接驱动IC扩展驱动。(3)具有2560位显示RAM,即80×8×4位(4)具有与68系列或80系列相适配的MPU接口功能,并有专用的指令集,可完成文本显示或图形显示的功能设置2、工作参数:(1)逻辑工作电压(VDD-VSS):2.4~6.0V(2)LCD驱动电压(Vdd-Vlcd):3.0~13.5V(3)工作温度(Ta):0~55℃(常温)/-20~70℃(宽温)3、电气特性(测试条件Ta=25,Vdd=5.0±0.25V):(1)输入高电平(Vih):3.5V(min)(2)输入低电平(Vil):0.55V(max)(3)输出高电平(Voh):3.75V(min)(4)输出低电平(Vol):1.0V(max)(5)工作电流:2.0mA(max)液晶显示器CGM-12232的引脚功能如图3.7所示。52 图3.7液晶显示器CGM-12232的引脚功能图Pin1:电源输入。Pin2:接地。Pin3:LCD驱动电压,调准对比度。Pin4:接口时序选择。Pin5:芯片1使能信号高电平有效。Pin6:芯片2使能信号高电平有效。Pin7:读/写控制端,高电平读,低电平写。Pin8:数据/指令选择端,高电平数据,低电平指令。Pin9-Pin16:液晶并行数据。Pin17:LED阳极。Pin18:LED阴极。52 图3.8单片机和液晶显示器接口电路图单片机和液晶显示器接口电路图见图3.8。CGM-12232的Pin5-Pin83根控制线接P0口,Pin9-Pin16接单片机P2口来进行数据传输。由于P0口内部没有上拉电阻不能输出高电平因,此在P0口上接了一个10K电阻RP9作为P0口的上拉电阻。P0口是单片机I/O口中能承受8个TTL负载的口,但相对于LCD液晶显示器的背光电流来说还是不够的。在这里我们采用三极管扩流的方法来驱动LCD液晶显示器的背光灯。在CGM-12232的说明文档里面将Pin3脚通过电阻在VDD和GND之间分压得到,而实验中发现通过分压后液晶显示很暗,直接将其接地相对于通过分压使用液晶显示器明显好转。因此这里将其直接接地。52 第4章系统软件设计4.1系统软件设计原理系统软件设计总体思路如下:系统初始化,显示开机LOGO画面,串行中断接收GPSOEM的“$GPGGA”语句,每正确收到“$GPGGA”语句一次更新显示一次,键盘可以选择显示的GPS信息。流程图如图4.1。图4.1系统软件设计原理图4.2LCD液晶显示器程序CGM-12232型LCD液晶显示器软件设计从底层写起,逐步提高,最后完成显示一个code区域的数据功能。即先往LCD液晶显示器发送一个字节的数据或指令,再逐步上升,最后画一个图指定开始列,上下层,图形的宽度,图形指针固定高度为16的图。数字字符和汉字都是通过画这种图来得到的。1、往LCD液晶显示器发送一个字节的数据主或指令子程序。程序原型:调用方式:voidsend_mi(ucharinstuction)函数说明:发指令instruction到主窗口(内函数,私有,用户不能直接调用)调用方式:voidsend_si(ucharinstruction)52 函数说明:发指令instruction到从窗口(内函数,私有,用户不能直接调用)调用方式:voidOutMD(uchari)函数说明:发数据data到主窗口(内函数,私有,用户不能直接调用)调用方式:voidsend_sd(uchardata)函数说明:发数据data到从窗口(内函数,私有,用户不直接调用)首先是确定要往主芯片,还是从芯片发,然后判断芯片是否忙,忙则等待,不忙则可以发数据或者指令了。流程图如4.2图4.2LCD液晶指令(左)、数据(右)发送流程图开始关从(主)芯片开主(从)芯片等待,直到不忙A=1(发送数据)发送显示数据关主(从)芯片返回开始关从(主)芯片开主(从)芯片等待,直到不忙A=0(发送指令)发送指令数据关主(从)芯片返回RW=0写数据RW=0写数据1、芯片判忙子程序。函数原型:调用方式:voidwait_ready(void)函数说明:等到LCD内部操作完成后,判断是否忙。芯片判忙是本系统唯一读取LCD液晶显示器的一个子程序。读取当前LCD的状态,以判断LCD是否忙绿,用的是读状态这条指令。芯片判忙流程如图4.3。52 开始A=0(指令)RW=1(读)读出数据&0x80直到结果为0为止(不忙)返回图4.3芯片判忙流程图读出数据和0x80相与,直到结果为0为止,也就是等待读状态指令里面读出的BUSY位(D7)为0为止,说明芯片目前不忙。1、LCD液晶屏初始化子程序。程序原型:调用方式:voidlcd_init(void)函数说明:12232LCD液晶屏初始化,开机后仅调用一次仅开机的时候调用一次,主要负责设置LCD液晶屏的一些状态。它包括:主(从)芯片复位、关主(从)芯片显示、设置主(从)芯片动态显示、主(从)芯片1/32占空比的设置、主(从)芯片时总线模式的设置、主9从)芯片改写指令的结束、主(从)芯片起始行0行起始列0列的设置、液晶初始化结束返回。具体流程如图4.4。52 开始主(从)芯片复位主(从)芯片动态显示主(从)芯片1/32占空比主(从)芯片时钟线模式主(从)芯片更改指令结束设置主(从)芯片起始行0行起始列0列结束返回图4.4LCD液晶屏初始化子程序流程图LCD液晶屏初始化完成后就可以显示各种图形和字符了。也就是进入正常工作状态了。在显示图形和字符的时候还要注意及时切换页和列。1、页切换子程序、列切换子程序。程序原型:调用方式:voidset_page(ucharpage)函数说明:同时设置主从显示页为0-3页调用方式:voidSetAddress(ucharaddress)函数说明:同时设置主从列地址为0-61列页切换子程序主要是在4个页面之间的切换,列切换子程序主要是设置起始列。它们两个都是发送一个特定数据的指令给LCD液晶屏。页切换发送的是1011,10XX,后两位XX表示的就是页地址。列切换子程序发送的是0XXX,XXXX后XXX,XXXX,表示的就是起始列的地址。5、清屏子程序。程序原型:调用方式:voidlcd_clr(void)函数说明:清屏起始清屏子程序是在整个画面上画一个空白的图片。由于SED1520F0A有点类似于FlashROM芯片,但刚好和FlashROM相反。FlashROM是置0只要把0写进去,置1则需要擦除。可以在原来“1”的基础上把“1”变成“0”52 ,而不可以把原来“0”变成“1”。而SED1520F0A就是可以把原来为“0”的变成“1”,而不可以把原来“1”的变成“0”,也就是刚好和FlashROM相反。因此在每一次要重新显示画面的时候必须调用清屏程序。清屏程序的流程如图4.5。YNYN开始0页开始,第4页?结束返回设置主从芯片的页地址设置主从芯片的列地址为0到61列?发送0x00到主从芯片图4.5清屏程序流程图6、画图子程序。程序原型:调用方式:voiddraw_bmp(ucharcol,ucharlayer,ucharwidth,uchar*bmp)函数说明:画一个图,横坐标是col,layer表示上下层,width是图形的宽,高固定16,bmp是图形指针,使用Zimo3Pro软件,采用纵向取模,字节倒序得到数据。col图型的起始位置0~121width图形宽度要求col+width<121bmp图形数据指针画图子程序是LCD初始化完成后,对LCD液晶显示器的操作函数,是操作LCD液晶显示器的基础。具体程序流程如图4.6。52 NYNYNYNYYNY 开始Layr=1?从col画起画到col+width还完?Col>60?画右边窗口,起始列=col%61起始列=col画左窗?画左上窗画右上窗设置画下半窗画左窗?画右下窗画左下窗第2页返回Col>121?图4.6画图程序流程图4.3显示控制程序显示子程序就是根据键盘值将经纬度、北京时间这两个信息选择一个显示到LCD液晶显示器。由于GPS52 OEM板发送的是ASCII码数据,在进行显示前必须先将ASCII码转成BCD码。而对于“0-9”以外的字符则根据需要转到特定值,然后则根据键盘值显示所要显示的内容。1、显示经纬度。对应经度的格式为“度度分分.分分分分,E(W)”。对应纬度格式为“度度分分.分分分分,N(S)。东经:XXX°XX′XX″北纬:XX°XX′XX″显示的信息为:其中GPSOEM板发送的信息和什么要显示的信息有2点不同:1、必须将GPSOEM板发送“E,S,W,N”对应成“东,南,西,北”4个字符。2、GPSOEM板发送的是“度度分分.分分分分”格式,而显示器显示的是“度度°分分′秒妙″”的格式,因此必须进行转换。转换方法是*100/60即可得。另外考虑到GPSOEM板最后的两位“分分”即使在完全不动的情况下也会没有规律的变化,因此把这两位舍去。具体见流程图4.7。开始将经度和纬度的.分分转换为秒根据收到的“E(W)”判断东西经并显示“东(西)经:”根据格式显示经度数据根据收到的“S(N)”判断南北纬并显示“南(北):”根据格式显示经度数据返回图4.7经纬度显示程序流程图其中,经度先显示三位数字,然后显示单位“°”再显示两位数字,再显示“′”,再显示两位数字,再显示“″”,纬度也是一样,只不过刚开始显示的是两位数字,并且显示在LCD液晶显示器的下半部。52 1、显示北京时间对应时间格式为:时时分分秒妙。北京时间XX:XX:XX显示的信息为:初看起来好像GPSOEM板传过来的时间格式和要显示的时间格式是一致,不用转换。而实际上GPSOEM板传过来的是格林尼治时间,也就是东一区的时间。北京时间和格林尼治时间相差8个小时。北京时间=格林尼治时间+8。但当格林尼治时间16点以后,北京时间已经是第二天的凌晨了。也就是当算出来的北京时间大于24时必须减去24才是正确的北京时间。具体流程如图4.8。NY开始小时+8超过24?上层显示“北京时间“小时-24下层显示“XX:XX:XX”返回图4.8北京时间显示流程图4.4GPS接收子程序GPS接收子程序主要接收的是GPS25-LVS板发送的串行数据。这个程序在串行中断里面完成。GPS25-LVS的通信波特率默认值为4800,1个起始位,8个数据位,1个停止位。通常使用NMEA-0183格式输出,数据代码为ASCII码字符。由于该格式为ASCII码字符串,比较直观和易于处理,在许多高级语言中都可以直接进行判断、分离,用来提取用户所需要的数据。单片机接收数据时,先判断是否是起始标志符“$”,当接收到“$”后,才开始接收数据,并对接收到的数据进行处理和存储。最后,判断接收字符是否是以确定接收子程序是否结束。单片机接收程序流程如图4.9。52 4.9接收子程序流程图4.5初始化程序系统初始化包括特殊功能寄存器初始化、RAM初始化、外围设备初始化。RAM初始化主要是将RAM进行清零处理,本系统只用到内部的RAM即只需要对内部的RAM进行清零处理即可;特殊功能寄存器的初始化包括定时器的初始值的装入、中断的开放等;外围设备初始化主要是对外围设备的初始化,例如本系统就是在上电时必须对LCD液晶显示器进行初始化操作。一般在51编译器里面RAM的初始化由“STARTUP.A51”52 文件来完成,它其实是一个带有条件编译和宏定义的汇编语言文件。开机先执行这个文件产生的代码,然后再执行main()主函数。特殊功能寄存器初始化和外围设备初始化在main()函数中开始,再进入功能函数循环前完成初始化。本系统主要完成端口复位、开机延时、LCD液晶屏初始化、LCD液晶屏清屏、调用开机LOGO画面、定时器0(T0)初始化、串行口波特率发生器(T1)初始化、开定时器0和串行口中断。具体流程如图4.10。P0,P1,P2,P3置1开机延时液晶屏初始化液晶清屏显示开机LOGO画面定时器0初始化(50mS)串行口初始化(包括方式,波特率发生器)开定时器0和串行口中断开串行口接收允许进入功能函数循环体开始图4.10开机初始化流程图定时器0(T0)主要是背光显示延时10S熄灭用。当按键按下时,将背光打开,然后将定时器0(T0)打开,定时器0(T0)定时为50mS,再配合一个软件计数器,在10S后将背光关掉,同时也将关闭停止计时。52 小结本次设计主要包括三方面:方案的设计、硬件的设计、软件的设计。把平时所学的单片机,C语言编程等知识,合理的运用到设计当中。对于硬件设计主要是各个功能模块的选取及介绍。在软件设计中主要是对各个硬件模块的初始化,再编写软件程序来完善整个功能。通过设计进一步掌握了单片机的综合应用设计方法,在整个设计过程中能够独立完成方案认证、电路设计、程序编写等全过程,在软件程序设计时采用C语言编写,为单片机的应用打下了的基础!通过这次对GPS汽车定位仪的毕业设计,我学到了很多这次设计历时4个多月,从一开始的选定课题到后然的资料查找,然后再根据自己某些方面不足参考一些资料进行学习及巩固。以前我对查找一些资料的能力比较弱,通过这次设计我学会了怎样正确查找自己所需要的东西,在对资料的查找中也增长了很多见识使自己在资料搜集与分析中对资料的归纳、分析、综合运用能力得到了很大提高。这次设计主要包括以下几个部分:单片机的控制技术,LCD液晶显示器的控制技术,GPS控制处理模块对卫星信息的接收,在设计过程中碰到了许多困难,在一开始的选题中我就困惑了在经过几天的思考后根据自己的强项及喜好选定了课题。在整个过程中,一次次失败,一次次从新开始。在整个设计中我懂得了许多东西,培养了我独立工作的能力,树立了对自己工作能力的信心,同时也是对自己的进一步肯定。相信会对今后的学习工作生活有非常重要的影响。这次毕业设计使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。52 [参考文献][1]楼然苗,李光飞.51系列单片机设计实例[M].北京:北航出版社,2003.03[2]徐绍全,张华海,杨志强,王泽民著.GPS测量原理及应用[M],2003.1[3]高禹,冯相忠编C语言程序设计[M],2007.12[4]先锋工作室编著.单片机程序设计实例[M],2002[5]沈红卫著.单片机应用系统设计实例与分析[M],2003.1[6]中国人民解放军总装备部军事训练教材编辑工作委员会编.GPS技术与应用[M],2004.6[7]李光飞,楼然苗.单片机课程设计实例指导[M].北京:北航出版社,2004.09[8]余永权.ATMEL89系列单片机应用技术[M].北京:北航出版社,2001.10[9]张伟等编著.Protel99SE实用教程[M].人民邮电出版社[10]浙江海洋学院图书馆中国学术期刊数据库http://172.16.99.198/kns50/[11]李光飞,楼然苗.单片机课程设计实例指导[M].北京:北航出版社,2004.09[12]李光飞,李良儿,楼然苗.单片机C程序设计实例指导[M].北京:北航出版社,2005.09.[13]康华光.电子技术基础(模拟部分)[M].高等教育出版社,1998.2.[14]ChristopherJ.Hegarty,UnderstandingGPSprinciplesandapplications,2007[15]KenMaskrey,HardwareDesign,2010[16]余永权.89系列FLASH单片机原理及应用[M].北京:电子工业出版社,2000.09[17]]张旭涛、曾现锋、王爱军.单片机原理与应用[M]北京理工大学出版社[18]袁敏捷.GPS和RFID互补型智能导游系统的研究与设计,2008[19]何香玲.GPS定位信息的采集和显示,200752 附录1电路原理图52 附录2程序清单#include//89C52单片机头文件#include//液晶LCD的字模文件#include//功能引脚定义sbitA=P0^7;//数据1/命令0选择sbitRW=P0^6;//读1/写0sbitE1=P0^4;//片选1(Master)sbitE2=P0^5;//片选2(slave)sbitLED=P0^3;//背光sbitup=P0^0;//向上翻页键sbitdown=P0^1;//向下翻页键#definedataP2//液晶并行数据//液晶显示控制命令表#definedisp_on0xAf//显示关闭#definedisp_off0xAe//显示打开#definedisp_start_line0xC0//显示起始地址(后5位-表示0-31行)#definepage_addr_set0xB8//页地址设置(0~3)#definecol_addr_set0x00//列地址设置(0~61)#definestatus_busy0x80//0=ready#definemodeRWite0xEE//写模式#definedynamic_driver0xA4//动态驱动#defineadc_select0xA0//clockwise#defineclk320xA9//刷新时钟设置1/32#defineclk160xA8//刷新时钟设置1/16#definereset0xE2//软件复位#defineucharunsignedchar#defineuintunsignedint//全局变量,及标志位定义uchartime_counter=0;//定时器的软件计数器ucharkey=0;//键盘值52 ucharserial_counter;//串行计数器bitdisp_flag=0;//显示更新标志ucharbdataserial_byte=0;//串行口标志位定义字节sbitSflag=serial_byte^0;//串行接收头部标志,一下8个都定义在'serial_byte'内sbitG1flag=serial_byte^1;sbitPflag=serial_byte^2;sbitG2flag=serial_byte^3;sbitG3flag=serial_byte^4;sbitAflag=serial_byte^5;sbitDFflag=serial_byte^6;sbitENflag=serial_byte^7;bitr_flag=0;unsignedcharidataserial_buff[77];//串行接收缓冲voidlcd_init(void);//LCD初始化voidlcd_clr(void);//LCD清屏voidwait_ready(void);//等待readyvoiddraw_bmp(ucharcol,ucharlayer,ucharwidth,uchar*bmp);//点阵码显示输出voidASCII2BCD(void);//ASCII码转换为BCD码voidlogo(void);//开机画面显示/*------------------------------------------------------------------------中断程序------------------------------------------------------------------------*/////////////////////////////////////////////////////////////////////////////定时器0中断函数,用于控制背光灯延时10S熄灭//////////////////////////////////////////////////////////////////////////voidint_t0()interrupt1using1{//定时器0中断函数,用于控制背光灯延时10S熄灭TH0=0x4C;TL0=0x00;//重装定时器0,定时50mStime_counter++;//软件计数器+1;if(time_counter==200)52 //软件计数器定时到10S,关背光,定时器0,清软件计数器{time_counter=0;LED=1;TR0=0;}}////////////////////////////////////////////////////////////////////////////串行口中断函数,用于语句'$GPGGA'判断和此语句的接收//////////////////////////////////////////////////////////////////////////voidserial()interrupt4using2{ucharpp;RI=0;pp=SBUF;if(ENflag==1)//串口接收完毕,可以用来显示,清标志位重新开始{disp_flag=1;serial_byte=0;}elseif(DFflag==1)//'$GPGGA'头判断完毕,开始接收$GPGGA,语句的数据{if(pp==42)ENflag=1;//等待收到'*'结束接收else{serial_buff[serial_counter]=pp;//没收到'*',继续接收,数据放入串口缓冲serial_counter++;}}elseif(Aflag==1)//第六个为'A',判断第七个是不是','{if(pp==44)52 DFflag=1;//第七个个是','开始接收$GPGGA,语句的数据elseserial_byte=0;//不是',',清标志位}elseif(G3flag==1)//第五个为'G',判断第六个是不是'A'{if(pp==65)Aflag=1;//第六个是'A'判断下一个是不是','elseserial_byte=0;//不是'A',清标志位}elseif(G2flag==1)//第四个为'G',判断第五个是不是'G'{if(pp==71)G3flag=1;//第五个是'G'判断下一个是不是'A'elseserial_byte=0;//不是'G',清标志位}elseif(Pflag==1)//第三个为'P',判断第四个是不是'G'{if(pp==71)G2flag=1;//第四个是'G'判断下一个是不是'G'elseserial_byte=0;//不是'G',清标志位}elseif(G1flag==1)//第二个为'G',判断第三个是不是'P'{if(pp==80)Pflag=1;//第三个是'P'判断下一个是不是'G'elseserial_byte=0;//不是'P',清标志位}elseif(Sflag==1)//第一个为'$',判断第二个是不是'G'{if(pp==71)G1flag=1;//第二个是'G'判断下一个是不是'P'52 elseserial_byte=0;//不是'G',清标志位}elseif(pp==0x24)//判断第一个是不是${Sflag=1;//第一个为$,判断下一个是不是Gserial_counter=0;//串行计数器清零}}////////////////////////////////////////////////////////////////////////////调用方式:voidsend_mi(ucharinstuction)//函数说明:发指令instruction到主窗口(内函数,私有,用户不能直接调用)//////////////////////////////////////////////////////////////////////////voidsend_mi(ucharinstruction){E2=0;//关SlaverE1=1;//开Masterwait_ready();//判断忙A=0;//指令RW=0;//写触发data=instruction;//指令码E1=0;//关Master}////////////////////////////////////////////////////////////////////////////调用方式:voidOutMD(uchari)//函数说明:发数据data到主窗口(内函数,私有,用户不能直接调用)//////////////////////////////////////////////////////////////////////////voidsend_md(ucharc){E2=0;//关SlaverE1=1;//开Masterwait_ready();//判断忙52 A=1;//数据RW=0;//写触发data=c;//数据E1=0;//关Master}////////////////////////////////////////////////////////////////////////////调用方式:voidsend_si(ucharinstruction)//函数说明:发指令instruction到从窗口(内函数,私有,用户不能直接调用)//////////////////////////////////////////////////////////////////////////voidsend_si(ucharinstruction){E1=0;//关MasterE2=1;//开Slaverwait_ready();//判断忙A=0;//指令RW=0;//写触发data=instruction;//指令码E2=0;//关Slaver}////////////////////////////////////////////////////////////////////////////调用方式:voidsend_sd(uchardata)//函数说明:发数据data到从窗口(内函数,私有,用户不直接调用)//////////////////////////////////////////////////////////////////////////voidsend_sd(ucharc){E1=0;//关MasterE2=1;//开Slaverwait_ready();//判断忙A=1;//数据RW=0;//写触发data=c;//数据E2=0;//关Slaver}//////////////////////////////////////////////////////////////////////////52 //等待ready:等待LCD内部操作完成,判忙//////////////////////////////////////////////////////////////////////////voidwait_ready(void){A=0;//指令RW=1;//读_nop_();//空操作,产生汇编里面的nopwhile(data&status_busy);//读入LCD状态,1=忙,一直等待LCD内部操作完成}////////////////////////////////////////////////////////////////////////////调用方式:voidlcd_init(void)//函数说明:122x32LCD初始化,开机后仅调用一次//////////////////////////////////////////////////////////////////////////voidlcd_init(void){send_mi(reset);//复位m-left,s-rightsend_si(reset);send_mi(disp_off);//关闭显示send_si(disp_off);send_mi(dynamic_driver);//动态驱动send_si(dynamic_driver);send_mi(clk32);//1/32占空比send_si(clk32);send_mi(adc_select);//clockwisesend_si(adc_select);send_mi(modeRWite);//写模式结束send_si(modeRWite);send_mi(col_addr_set);//归回零列,设定显示起始行首send_mi(disp_start_line);send_si(col_addr_set);52 send_si(disp_start_line);send_mi(disp_on);//开显示send_si(disp_on);}////////////////////////////////////////////////////////////////////////////调用方式:voidlcd_clr(void)//函数说明:清屏//////////////////////////////////////////////////////////////////////////voidlcd_clr(void){uchari,page;for(page=0;page<4;page++){send_mi(page_addr_set|page);//设置页从0-3send_si(page_addr_set|page);send_mi(0);//主窗口设置为0列send_si(0);//从窗口设置为0列for(i=0;i<62;i++)//全部写入0x00{send_md(0x00);send_sd(0x00);}}}////////////////////////////////////////////////////////////////////////////调用方式:voidset_page(ucharpage)//函数说明:同时设置主(右)从(左)显示页为0-3页//////////////////////////////////////////////////////////////////////////voidset_page(ucharpage){send_mi(page_addr_set|page);send_si(page_addr_set|page);}52 ////////////////////////////////////////////////////////////////////////////调用方式:voidSetAddress(ucharaddress)//函数说明:同时设置主(右)从(左)列地址为0-61列//////////////////////////////////////////////////////////////////////////voidset_address(ucharaddress){send_mi(address&0x7F);//&0x7F,考虑到防止越限send_si(address&0x7F);}////////////////////////////////////////////////////////////////////////////调用方式:voidputchar_l(ucharc)//函数说明:在左页(主窗口)当前地址画一个字节(8点)//////////////////////////////////////////////////////////////////////////voidputchar_l(ucharc){send_md(c);}////////////////////////////////////////////////////////////////////////////调用方式:voidputchar_r(ucharc)//函数说明:在右页(从主窗口)当前地址画一个字节(8点)//////////////////////////////////////////////////////////////////////////voidputchar_r(ucharc){send_sd(c);}////////////////////////////////////////////////////////////////////////////调用方式:voiddraw_bmp(ucharcol,ucharlayer,ucharwidth,uchar*bmp)//函数说明:画一个图,横坐标是col,layer表示上下层,width是图形的宽,高固定16//bmp是图形指针//使用Zimo3Pro软件,采用纵向取模,字节倒序得到数据。//col图型的起始位置0~121//layer图形的位置(Y坐标)0-上半部分非0-下半部分//width图形宽度8,16可选//bmp图形数据指针52 //////////////////////////////////////////////////////////////////////////voiddraw_bmp(ucharcol,ucharlayer,ucharwidth,uchar*bmp){ucharx;ucharaddress;//address表示显存的物理地址ucharp=0;ucharpage=0;ucharwindow=0;//page表示上下两页,window表示左右窗口(0左,1右)if(layer)page=2;//左-主窗口,右-从窗口for(x=col;x121)return;//防止显示乱码if(x>60)//左右窗口定位{window=1;//右-从窗口address=x%61;}else{address=x;}//主窗口输出set_page(page);//上层数据输出set_address(address);if(window){putchar_r(bmp[p]);}else{putchar_l(bmp[p]);}set_page(page+1);//下层数据输出set_address(address);//列保持不变52 if(window){putchar_r(bmp[p+width]);}else{putchar_l(bmp[p+width]);}p++;}}/*------------------------------------------------------------------------延时程序:入口unsingedchari,延时i毫秒------------------------------------------------------------------------*/delay(uchari){ucharj;for(i=i<<1;i>0;i--)for(j=0xf3;j>0;j--){}}////////////////////////////////////////////////////////////////////////////键盘扫描程序,有键按下,修改key值//////////////////////////////////////////////////////////////////////////keywork(void){if(!(up&&down))//是否有键按下{delay(20);//延时5MSif(up&&down)//再次判断是否有键按下,没有返回{return;}if(!up)//查up键52 {while(!up);//等待up键释放key++;//key值加1LED=0;//亮背光TR0=1;//开定时器0,背光亮10Stime_counter=0;//清定时器软件计数器,从按键以后亮背光10Sif(key==3)//key值超上限,置下限{key=0;}return;}if(!down)//查down键{while(!down);//等待down键释放key--;//key值减1LED=0;//亮背光TR0=1;//开定时器0,背光亮10Stime_counter=0;//清定时器软件计数器,从按键以后亮背光10Sif(key==255){key=2;////key值超上限,置下限}return;}}}disp_transit(){ucharj,row=0,temp;temp=(serial_buff[25]*10+serial_buff[26])*3/5;//经度最后.XX分转换位秒serial_buff[25]=temp/10;serial_buff[26]=temp%10;temp=(serial_buff[12]*10+serial_buff[13])*3/5;//纬度最后.XX分转换为秒serial_buff[12]=temp/10;52 serial_buff[13]=temp%10;lcd_clr();//清屏draw_bmp(0,0,16,azimuth[serial_buff[30]-20]);//判断东、西,并显示draw_bmp(16,0,16,jing);//显示'经'draw_bmp(32,0,8,num[13]);//显示':'for(j=19;j<28;j++)//显示经度{if(j==22){draw_bmp(40+row*8,0,8,num[11]);//显示数字度符号row++;}if(j==24){draw_bmp(40+row*8,0,8,num[12]);//显示'''(分)row++;j++;}if(j==27)//显示'"'(秒){draw_bmp(40+row*8,0,8,num[14]);row++;break;}draw_bmp(40+row*8,0,8,num[serial_buff[j]]);//显示数字row++;}row=0;draw_bmp(0,1,16,azimuth[serial_buff[17]-20]);//判断南、北,并显示draw_bmp(16,1,16,wei);//显示纬draw_bmp(32,1,8,num[13]);//显示:for(j=7;j<15;j++){52 if(j==9)//显示数字度符号{draw_bmp(40+row*8,1,8,num[11]);row++;}if(j==11){draw_bmp(40+row*8,1,8,num[12]);//显示'''(分)row++;j++;}if(j==14)//显示'"'(秒){draw_bmp(40+row*8,1,8,num[14]);row++;break;}draw_bmp(40+row*8,1,8,num[serial_buff[j]]);//显示数字row++;}}disp_time(){ucharhour,j,row=0;lcd_clr();//清屏draw_bmp(29,0,64,bjsj);//在液晶上部29列开始显示'北京时间'hour=serial_buff[0]*10+serial_buff[1]+8;//格林尼治时间转化为北京时间if(hour>23)//北京时间=格林尼治时间+8{hour=hour-24;}//当大于24时,减去24serial_buff[0]=hour/10;//回存到缓冲区serial_buff[1]=hour%10;for(j=0;j<6;j++)//显示6个数字和2个冒号,格式为XX:XX:XX{draw_bmp(29+row*8,1,8,num[serial_buff[j]]);//显示6个数字52 row++;if((j==1)||(j==3))//第2个和第4个数字后面显示':'{draw_bmp(29+row*8,1,8,num[13]);//显示冒号row++;}}}disp_level(){uchari,j,row=1;lcd_clr();draw_bmp(0,0,120,level);if(serial_buff[32]==0)//无GPS接收信号{draw_bmp(0,1,112,nosignal);}else{//探测水平信号数据存放的位置for(i=35;row;){if(serial_buff[i]=='M'){i=i+2;row=0;//跳出循环}else{i++;}}j=i;row=1;for(;row;){if(serial_buff[j]=='M')52 {row=0;//跳出循环}else{j++;}}for(;i=48)&&(serial_buff[i]<=57)){//接收到的是数字,转换为BCD码。BCD码=ASCII码-48serial_buff[i]=serial_buff[i]-48;}else{switch(serial_buff[i]){//非数字,将它们转换为特定值case'.':{serial_buff[i]=10;break;}case'-':{serial_buff[i]=16;break;}case'E':{serial_buff[i]=20;break;}case'S':{serial_buff[i]=21;break;}case'W':{serial_buff[i]=22;break;}case'N':{serial_buff[i]=23;break;}case',':{serial_buff[i]=0xff;break;}52 default:break;}}}}/*------------------------------------------------------------------------开机LOGO画面,开机时调用一次------------------------------------------------------------------------*/voidlogo(void){uchari,j,h;LED=0;//点亮背光灯TR0=1;//开定时器0,背光灯亮10Slcd_clr();draw_bmp(0,0,112,welcome_1);//在液晶上部第0列开始显示’WelcometoGPS‘draw_bmp(32,1,48,welcome_2);//在液晶下部第32列开始显示显示’System‘for(i=0;i<10;i++)for(j=1;j;j++)for(h=1;h;h++);//延时3Slcd_clr();//清屏for(i=0;i<5;i++)for(j=1;j;j++)for(h=1;h;h++);//延时1.5S}////////////////////////////////////////////////////////////////////////////主程序//////////////////////////////////////////////////////////////////////////voidmain(void){P0=0xff;//端口复位P1=0xff;P2=0xff;P3=0xff;delay(255);lcd_init();//初始化液晶显示器lcd_init();lcd_init();52 lcd_clr();//清屏logo();//显示开机画面//TMOD:GATE|C/!T|M1|M0|GATE|C/!T|M1|M0//00100001TMOD=0x21;//T016位定时器,T1自动重装,方式3TH0=0x4C;TL0=0x00;//定时50mS//SCON:SM0|SM1|SM2|REN|TB8|RB8|TI|RI//01000000SCON=0x40;//串行口8位UTRATH1=0xFA;TL1=0xFA;//波特率发生器,4800bpsET0=1;//开定时器0中断允许ES=1;//开串行口中断EA=1;//开总中断REN=1;//允许串行接收TR1=1;//开串行口波特率发生(T1)while(1)//主程序{up=1;//把键盘位置1,以便进行键盘输入down=1;keywork();//键盘扫描if(disp_flag)//判断是否可以更新显示{disp_flag=0;//清显示更新标志display();//显示程序}}}附录3液晶字模文件unsignedcharcodewelcome_1[]=52 {/*------------------------------------------------------------------------------;源文件/文字:WelcometoGPS;宽×高(像素):112×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/224字节;数据转换日期:2004-5-1620:24:15------------------------------------------------------------------------------*/0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00};unsignedcharcodewelcome_2[]={/*------------------------------------------------------------------------------;源文件/文字:System;宽×高(像素):104×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/208字节;数据转换日期:2004-5-1620:32:3652 ------------------------------------------------------------------------------*/0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F};unsignedcharcodewelcome_3[]={/*------------------------------------------------------------------------------;源文件/文字:经;宽×高(像素):16×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/32字节;数据转换日期:2004-5-1621:09:10------------------------------------------------------------------------------*/0x20,0x30,0xAC,0x63,0x10,0x00,0x40,0x42,0x22,0x22,0x12,0x1A,0x26,0x42,0xC0,0x00,0x22,0x23,0x22,0x12,0x12,0x00,0x20,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x20,0x00};unsignedcharcodewei[]={/*------------------------------------------------------------------------------;源文件/文字:纬;宽×高(像素):16×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/32字节;数据转换日期:2004-5-1621:11:14------------------------------------------------------------------------------*/0x20,0x30,0xAC,0x63,0x20,0x18,0x24,0x24,0x24,0xFF,0x24,0x24,0x24,0x24,0x04,0x00,0x12,0x33,0x12,0x12,0x0A,0x08,0x01,0x01,0x01,0xFF,0x01,0x01,0x11,0x21,0x1F,0x00};unsignedcharcodeazimuth[4][32]=52 {{//东0x00,0x04,0x04,0xC4,0xB4,0x8C,0x87,0x84,0xF4,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x00,0x00,0x20,0x18,0x0E,0x04,0x20,0x40,0xFF,0x00,0x02,0x04,0x18,0x30,0x00,0x00},{//南0x04,0x04,0xE4,0x24,0x24,0x64,0xB4,0x2F,0x24,0xA4,0x64,0x24,0x24,0xE6,0x04,0x00,0x00,0x00,0x7F,0x04,0x05,0x05,0x05,0x7F,0x05,0x05,0x05,0x25,0x44,0x3F,0x00,0x00},{//西0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00,0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00},{//北0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00,0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00},};unsignedcharcodebjsj[]={/*------------------------------------------------------------------------------;源文件/文字:北京时间;宽×高(像素):64×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/128字节52 ;数据转换日期:2004-5-1621:16:11------------------------------------------------------------------------------*/0x00,0x20,0x20,0x20,0x20,0xFF,0x00,0x00,0x00,0xFF,0x40,0x20,0x30,0x18,0x10,0x00,0x00,0x04,0x04,0xE4,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0xE4,0x06,0x04,0x00,0x00,0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0xF8,0x01,0x06,0x00,0xF0,0x92,0x92,0x92,0x92,0xF2,0x02,0x02,0xFE,0x00,0x00,0x10,0x30,0x18,0x08,0x04,0x7F,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,0x00,0x20,0x10,0x19,0x0D,0x41,0x81,0x7F,0x01,0x01,0x05,0x0D,0x38,0x10,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x04,0x07,0x40,0x80,0x7F,0x00,0x00};unsignedcharcodenum[17][16]={//------------------------------------------------------------------------------//源文件/文字:0,1,2,3,4,5,6,7,8,9,.,//宽×高(像素):8×16//字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/128字节//数据转换日期:2004-5-1621:16:11//------------------------------------------------------------------------------{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},//0{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},//1{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},//2{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},//3{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},//452 {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},//5{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},//6{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},//7{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},//8{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},//9{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},//.{0x00,0x00,0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//符号度{0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//'(分){0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},//:{0x10,0x16,0x0E,0x00,0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//''(秒){0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00},//M{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01},//-};unsignedcharcodelevel[]={/*------------------------------------------------------------------------------;源文件/文字:大地水准面高度:;宽×高(像素):120×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/240字节;数据转换日期:2004-5-217:36:49------------------------------------------------------------------------------*/52 0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x10,0x10,0x10,0xFE,0x10,0x50,0x40,0xFE,0x20,0x20,0xFF,0x10,0x10,0xF8,0x10,0x00,0x00,0x10,0x10,0x10,0x90,0x70,0x00,0xFF,0x20,0x60,0x90,0x08,0x04,0x00,0x00,0x00,0x00,0x02,0x1C,0xC8,0x20,0x10,0xFF,0x4A,0x48,0x49,0xFE,0x48,0x68,0x4C,0x08,0x00,0x00,0x02,0xF2,0x12,0x12,0xFA,0x96,0x92,0x92,0xF2,0x12,0x12,0x12,0xF2,0x02,0x00,0x04,0x04,0x04,0x04,0x74,0x54,0x55,0x56,0x54,0x54,0x74,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,0x20,0x20,0x10,0x1F,0x08,0x08,0x00,0x3F,0x40,0x40,0x4F,0x42,0x44,0x43,0x70,0x00,0x10,0x10,0x08,0x06,0x01,0x40,0x80,0x7F,0x00,0x00,0x01,0x06,0x0C,0x18,0x08,0x00,0x02,0x02,0x7E,0x01,0x00,0x00,0x7F,0x22,0x22,0x22,0x3F,0x22,0x23,0x32,0x20,0x00,0x00,0x00,0x7F,0x20,0x20,0x3F,0x24,0x24,0x24,0x3F,0x20,0x20,0x20,0x7F,0x00,0x00,0x00,0xFF,0x01,0x01,0x3D,0x25,0x25,0x25,0x25,0x25,0x3D,0x41,0x81,0x7F,0x00,0x00,0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};unsignedcharcodenosignal[]={/*------------------------------------------------------------------------------;源文件/文字:无GPS接收信号!;宽×高(像素):112×16;字模格式/大小:单色点阵液晶字模,纵向取模,字节倒序/224字节;数据转换日期:2004-5-217:48:48------------------------------------------------------------------------------*/0x00,0x40,0x42,0x42,0x42,0x42,0x42,0xFE,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x00,0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,52 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x08,0x08,0x08,0xFF,0x88,0x68,0x24,0x2C,0xB4,0x25,0x26,0x34,0x2C,0x24,0x20,0x00,0x00,0xF8,0x00,0x00,0xFF,0x00,0x40,0x30,0xDF,0x10,0x10,0x10,0xF0,0x10,0x10,0x00,0x80,0x40,0x30,0xFC,0x07,0x0A,0xA8,0xA8,0xA9,0xAE,0xAA,0xA8,0xA8,0x08,0x08,0x00,0x40,0x40,0x40,0x5F,0xD1,0x51,0x51,0x51,0x51,0x51,0x51,0x5F,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x40,0x40,0x20,0x10,0x08,0x04,0x03,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x70,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,0x02,0x42,0x81,0x7F,0x02,0x82,0x8A,0x4E,0x53,0x32,0x12,0x2E,0x42,0xC2,0x02,0x00,0x00,0x0F,0x04,0x02,0xFF,0x40,0x40,0x20,0x21,0x16,0x08,0x16,0x21,0x60,0x20,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x02,0x02,0x22,0x42,0x82,0x42,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};52

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭