基于51单片机的GPS定位系统_第1页
基于51单片机的GPS定位系统_第2页
基于51单片机的GPS定位系统_第3页
基于51单片机的GPS定位系统_第4页
基于51单片机的GPS定位系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 全球定位系统(GPS)是由美国国防部开发的一种先进的无线电导航系统。该系统能够全天候、全方位的为海陆空用户提供连续的、高精度的三维坐标、三维速度和时间等信息。它所具有的诸多优点是其他导航设备所无法比拟地。现在,GPS接收机作为一种先进的导航和定位仪器,已在军事及民用领域得到广泛的应用。本设计详细介绍了一种成本低又能满足性能使用要求的经济型GPS接收机的设计方案。此方案基于单片机、GPS模块和1602液晶显示屏等硬件,并应用C语言实现了GPS信号的提取、显示及基本的键盘控制操作等。经过实践测试,这种接收机可以达到基本GPS信息接收以及显示,可以做到体积小、精度高、连续导航,并可广泛应用于个人野

2、外旅游探险、出租汽车定位及海上作业等领域。关键词:GPS;单片机;上位机;LCD1602ABSTRACTGlobalPositioningSystem(GPS)isthemostadvancedradionavigationsystemwhichwasdevelopedbytheU.SDepartmentofDefence.Thesystemcanbeusedunderanyweatherconditions,alldaylongandanywhereontheearth.Itcanprovideland,marineandairborneuserwithcontinuous,highlyac

3、curatethree-dimensionposition,velocity,timedataetc.Ithasvariousadvantagesthatareunexampledotherkindofnavigationequipment.NowGPSreceivers,asatypeofadvancedequipmentonnavigationandpositioning,havebeenwidelyusedinbothmilitaryandcivilfield.Thisdesignintroducedindetailonekindoflow-costeconomyGPSreceivers

4、designproposalwhichcansatisfytheperformanceoperationrequirements.Thisplanisbasedonsinglechipcomputer、GPSand1602liquidcrystaldisplaymonitors,andhasrealizedtheGPSsignalextraction,thedemonstrationandthebasickeyboardcontroloperationandsoonusingtheClanguage.Bypracticalmeasurement,thereceivercanachieveGPS

5、informationreceiveanddisplay.Ithassmallsizeandlowcost,canbeusedinwildadventuretourism,taxipositioningandoperationsatsea.KEYWORDS:GPS;MCU;PC;LCD1602 TOC o 1-5 h z前言3 HYPERLINK l bookmark4 o Current Document 第1章GPS系统简介及设计方案选择4 HYPERLINK l bookmark6 o Current Document 1.1GPS系统简介41.1.1GPS由来及发展41.1.2GPS定

6、位基本原理TOC o 1-5 h z HYPERLINK l bookmark12 o Current Document 1.1.3GPS接收机定位流程4 HYPERLINK l bookmark14 o Current Document 1.1.4任务的描述51.2设计方案选择1.2.1方案一 HYPERLINK l bookmark20 o Current Document 1.2.2方案二6 HYPERLINK l bookmark26 o Current Document 第2章系统硬件设计72.1单片机7 HYPERLINK l bookmark28 o Current Docume

7、nt 2.2GPS模块72.2.1概述2.2.2主要技术参数2.2.3管脚介绍12错误!未定义书签。错误!未定义书签。 HYPERLINK l bookmark40 o Current Document 2.3显示部分15 HYPERLINK l bookmark44 o Current Document 2.4电源部分21 HYPERLINK l bookmark48 o Current Document 2.5晶体振荡器22 HYPERLINK l bookmark52 o Current Document 2.6键盘部分22第3章系统相关协议介绍24 HYPERLINK l bookma

8、rk56 o Current Document 3.1GR-87协议243.1.1协议简介243.1.2数据格式24 HYPERLINK l bookmark58 o Current Document 3.2串行通信253.2.1异步通信特点253.2.2异步通信协议253.2.3中断26 HYPERLINK l bookmark60 o Current Document 3.3液晶显示协议293.3.1基本操作时序293.3.2显示与控制命令30 HYPERLINK l bookmark62 o Current Document 第4章系统软件设计32 HYPERLINK l bookmar

9、k64 o Current Document 4.1系统软件概述32 HYPERLINK l bookmark66 o Current Document 4.2软件程序的编写334.2.1初始化模块334.2.2数据处理模块334.2.3人机对话模块错误!未定义书签。 HYPERLINK l bookmark68 o Current Document 4.3代码实现36结论37谢辞38 HYPERLINK l bookmark70 o Current Document 参考文献39外文资料翻译错误!未定义书签。-LX.1冃IJ言GPS主系统是美国发射运行的卫星系统,包含了27颗能持续发送地理位

10、置海拔高度和时间信号的卫星,24个正常使用,3个备用,这些卫星平均分布运行在六个轨道上。一般来说,在地面上的GPS接收器能接收512个卫星信号,而为了获得地面上的定位坐标,GPS导航至少需要4个卫星信号,三个用来确定GPS接收器的纬度、经度和海拔高度,第四个则提供同步校正时间1。全球定位系统由三部分构成:太空卫星部份:由24颗绕极使用卫星所组成,分成六个轨道,运行于约20200公里的高空,绕行地球一周约12小时。每个卫星均持续着发射载有卫星轨道数据及时间的无线电波,提供地球上的各种接收机来应用。地面管制部份:这是为了追踪及控制上述卫星运转,所设置的地面管制站,主要工作为负责修正与维护每个卫星能

11、保持正常运转的各项参数数据,以确保每个卫星都能提供正确的讯息给使用者接收机来接收。使用者接收机:追踪所有的GPS卫星,并实时地计算出接收机所在位置的坐标、移动速度及时间,各种蓝牙GPS即属于此部份。我们通常所说的GPS,就是第3部分。它可以实时提供全天候、全球性的三维定位、测速与授时功能的卫星系统,具有测量精度高、速度快、用户数量不限、抗干扰能力强等一系列优点,除了可用于军事领域外,还可以广泛用于工农业生产、交通运输、野外探险等领域。自20世纪90年代GPS系统向全世界免费开放以来,GPS系统已广泛应用在导航、大地测量、精确授时、线路巡检及车辆防盗等领域。接收机是获得GPS系统服务的关键设备,

12、目前已有从手持式到台式数百种型号的接收机可供用户选择。通用接收机功能齐全,除了信号接收单元外,往往还配置有显示单元和人机对话设备。这一方面为用户提供了极大的方便但GPS定位接收机价格比较昂贵而且使用灵活性低,难以满足特定条件下的应用需求,造成了资金浪费。因此,众多用户期望按照自己的使用环境和性能要求设计和使用个性化的GPS定位接收机。1GPS系统简介及设计方案选择GPS系统简介GPS由来及发展导航卫星定时测距全球定位系统(NavigationSatelliteTimingandRangingGlobalPositionSystemGPS)是美国第二代卫星导航系统。它在1973年底由美国陆海空三

13、军等单位协调分工提出的能取代旧式的导航设备,为军用舰船、飞机车辆等用户提供全球全天候、连续实时服务的高精度三维导航系统。系统由空间部分、地面监控部分和地面接收机部分组成。定位服务包括精密定位服务(PPS)和标准定位服务(SPS)。PPS授权的精密定位系统用户需要密码设备和特殊的接收机。SPS对于普通民用用户,供全世界用户免费、无限制地使用2由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到广泛的应用,在各个领域发挥了极大的作用,已成为信时代不可缺少的一部分。各种GPS民用产品的开发,已是经济和社会发展的必然要求,其前景将会非常广阔和光明,尤其是在我国

14、,通过这些年来对它认识不断加深,我国的GPS开发应用也一定会以科技力量推动经济和社会发展的一颗巨星,对我国的经济和社会的发展产生重大的影响。GPS定位基本原理GPS定位技术的基本原理是采用测量学中通用的测距交会方法.GPS接收机在某一时刻接收到4颗以上的GPS卫星信号导航电文,通过变频、放大、滤波等一系列处理过程,实现对GPS卫星号的跟踪、锁定、测量,从而产生计算位置的数据信息(包括:纬度、经度、高度、速度、日期、时间、航向、卫星状况等),经由I/O口输出串行数据.1.1.3GPS接收机定位流程.搜索可用卫星,接收卫星信号,与卫星信号同步,提取导航电文信.从导航电文中获取计算位置所需的信息,这

15、些信息应该包括时钟信息和星历等数据;.计算卫星的准确位置,这包括计算卫星的高度和方位角,从而进行必要的对流层校正;.计算伪距,并进行电离层校正等;.重复上述过程,对所有可用卫星进行相应的计算;进行其他必要的校正,例如根据卫星信号到达GPS接收机的时间,校正地球旋转所造成的卫星位置的偏差;根据定位原理,计算出GPS接收机的初始位置,并将其转换成所需的坐标格式进行显示或输出;加入闰秒和UTC(标准世界时)时间补偿计算当前精确的时间;9分析可用卫星的信息,计算最好的DOP(DilutionofPrecision),进行选星,并计算和修正GPS接收机的位置,给出GPS接收机的三维坐标和准确的时间信息。

16、1.1.4任务的描述我们针对全球定位系统GPS,自行研制了一套GPS接收机,具有接收、处理、显示信息能力并能进行键盘操作。本设计着重对NMEA-0183语句的数据格式、单片机串行通信、液晶显示格式进行了详细论述,同时给出了硬件电路和软件设计。工作要求:准确地进行定位,显示出纬度、经度、速度、时间、方位角、天空中的卫星总数以及使用的卫星数。通过按键可以进行复位与页面切换功能。1.2设计方案选择1.2.1方案一系统由GPS-OEM板、电平转换电路(MAX232)、控制电路(8051单片机)、显示部分(SED1335彩色液晶显示器)组成。但在和单片机进行串行通信时由于电平不同,必须附加电平转换电路(

17、MAX232)而且价格比较昂贵。单片机采用8051功能全面,但其内部ROM一般是掩膜ROM,不可更新改写。SED1335彩色液晶显示器其有效显示点阵为320X240,显示颜色为4色,但根据我们设计要求,单色显示完全可以。故不采用。1.2.2方案二系统由GPS模块(GR-87)、控制电路(89C51单片机)、显示部分(SMC1602液晶显示器)组成。HOLUXGR-87是一个高性能,低功耗,小型的并且很容易联合的GPS模块。该芯片每次将跟踪12枚卫星,应用广泛。而且不用附加电平转换电路,可以直接与单片机进行串行通信。单片机采用89C51,其功能完全可以满足设计要求,而且相对于8051,其内部RO

18、M是FLASH-ROM,可多次更新改写,价格也便宜。1602字符型液晶模块是一种用5x7位图形来显示字符的单色液晶显示器,显示2行16个字,可以满足设计要求而且经济实惠。可以看出方案二更加实用,根据现实生活的需要,设计采用此方案。 2系统硬件设计课题要求研制的GPS接收机要具有接收、处理、显示信息、键盘操作,硬件上必须有相应的接收处理部分、显示部分和配置输入部分。同时需要处理器实现各部分功能的联结。由于单片机集成度高,系统结构简单,价格低廉,同时技术成熟,处理器部分使用单片机实现。本课题设计的硬件系统主要由:单片机、GPS模块、显示部分等组成。如图2-1所示:图2-1系统框图2.1单片机2.1

19、.1单片机概述STC89C52是51系列单片机的一个型号,它是STC公司生产的。STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用STCMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线

20、,STC89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。主要功能特性兼容MCS51指令系统8k可反复擦写(1000次)FlashROM32个双向I/O口?256x8bit内部RAM3个16位可编程定时/计数器中断?时钟频率0-24MHZ2个串行中断可编程UART串行通道2个外部中断源共8个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能805

21、1单片机的引脚功能MCS-51系列单片机一般采用40个引脚,双列直插式封装,用HMOS工艺制造,其外部引脚排列如图所示。其中,各引脚的功能为:1玉卫ToTT亘TsTeTVTsT?20P1.0VccP1.1PO.OPl.2P0.1Pl.3P0.2Pl.4P0.3Pl.5P0.4Pl.63051P0.5Pl.7P0.6RST/VpdP0.7P3.0/RkDEA/VppP3.1/TkDALE/PROGP3.2/INT0PSENP3.3/INT1P2.7P3.4/T0P2.6P3.5/T1P2.5P3.6/WP2.4P3.7/RDP2.3KTAL2P2.2KTAL1P2.1VssP2.04039383

22、736353433323T3029KTAL1KTAL2EA/Vpp*_oPSEN-3ALE/PROG一RST/Vpdfd口(地址/数据总线)210051pi口(I/O线)口P3(I/一三一三P2口(地址总线)(b)逻辑符(a)DIP引脚图号8051单片机的引脚主电源引脚Vcc(40脚):接+5V电源正端Vss(20脚):接+5V电源地端一般Vcc和Vss间应接高频去耦电容和低频滤波电容。外接晶体或外部振荡器引脚XTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器OSC。当采用外部振荡器时,此引脚应接地。XTAL2(18脚):接外部晶振

23、的另一个引脚。在片内接至反相放大器的输出端和内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。控制信号线RST/VPD(9脚):复位信号输入端,复位/掉电时内部RAM的备用电源输入端ALE/(30脚):地址锁存允许/编程脉冲输入。用ALE锁存从P0口输出的低8位地址;在对片内EPROM编程时,编程脉冲由此输入。(29脚):外部程序存储器读选通信号,低电平有效。/VPP(31脚):访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存储器;低电平时,访问外部存储器。对片内EPROM编程时,此脚接21V编程电压。多功能I/O口引脚8051单片机设有4个双向I/O口(PO、P

24、1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中:P0口(3239脚)双向口(三态),可作为输入/输出口,可驱动8个LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。P1口(18脚)准双向口(三态),可驱动4个LSTTL门电路。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。P2口(2128)准双向口(三态),可驱动4个LSTTL门电路。可作为

25、输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。P3口(1017脚)准双向口(三态),可驱动4个LSTTL门电路。双功能口,作为第一功能使用时,与P1口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表所示:端口引脚第二功能注释 P3.0P3.1P3.2RXDTXD/INTO串行口数据接收端串行口数据发送端外中断请求0P3.3P3.4/INT1TO外中断请求1定时/计数器0外部计数信号输入P3.5P3.6T1/WR定时/计数器1外部计数信号输入外部RAM写选通信号输出P3.7/RD外部RAM读选通信号输出2.1.2

26、单片机最小系统所谓单片机的最小系统是指使单片机能运行程序、正常工作的最简单电路系统,是保证单片正常启动、开始工作的必须电路,缺一不可。单片机最小系统一般由单片机、程序存储器、时钟电路和复位电路组成。对于8051单片机,由于片内有4K的程序存储器,所以其最小系统除了单片机本身外,只需外接时钟电路与复位电路即可。复位及复位电路8051单片机的复位复位是使CPU和系统中其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。8051单片机在RST输入端(9脚)出现高电平时实现系统的复位和初始化。在振荡器运行的情况下,要实现复位操作,必须使RST端的高电平至少保持两个机器周期(24个振荡周期)。C

27、PU在第二个机器周期内执行复位操作,以后每一个机器周期重复一次,直到RST降为低电平。复位期间不产生ALE及/PSEN信号。复位的内部操作使SP为07H,各端口(P0P3)都为0FFH,特殊功能寄存器都为0,但不影响RAM的状态。当复位结束(RST变为低电平)后,CPU从0000H开始执行程序。值得注意的是:8051单片机通电后并不运行ROM里的程序,只有正常复位后,才能开始工作。复位电路单片机的复位分为上电自动复位、按键手动复位两种和看门狗强制复位三种等。上电复位通常利用电容的充放电来实现,按键复位则可分为按键脉冲复位和按键电平复位两种,看门狗复位则通过外接看门狗电路或软件看门狗程序实现。常

28、见的上电复位和按键复位电路如图所示。(a)上电复位(b)按键脉冲复位(c)按键电平复位图中,(a)为最简单的单片机复位电路。当系统上电时,由于电容C两端的电压不会瞬间改变,所以8051的第9脚复位端会得到短暂的高电平,随后,电容通过电阻R进行充电,经过一段时间后,RST端变为低电平。当电容的充放电时间常数RC足够大,能保证在RST端得到超过两个机器周期的高电平时,单片机完成复位操作,开始正常运行ROM里的程序。为按键脉冲复位电路。当系统上电时,单片机并不复位,不能运行ROM里的程序,只有当系统上电后,按一下复位按键(图中未画出),反相器输出超过两个机器周期的高电平,才能完成系统复位。为包括上电

29、复位功能的按键电平复位电路,是最常见的单片机复位电路之一。当系统上电时,单片机的RST端得到两个以上机器周期的高电平,随后电容C经电阻R充电,变为低电平,完成单片机的上最复位。在单片机的运行过程中,如果由于外界干扰等因素的影响,使单片机的程序跑飞,则可以通过按下按键K,使单片机完成复位操作。当按下K键时,电容两端短路,RST接到电源VCC变为高电平,同时电容迅速放电,使电容的两个极板电位一致。释放按键K后,电容C通过电阻R充电,经过两个以上机器周期的时间后,RST端变为低电平,完成单片机的复位。时钟电路时钟电路用于产生单片机的基本时钟信号。8051的时钟信号可由内部振荡器产生,也可由外部电路直

30、接提供。内部振荡器的输入和输出脚分别为XTAL1和XSTCL2,由XTAL2给单片机内部电路提供时钟信号。当时钟信号由外部电路提供时,外部时钟引入XTAL2,而XTAL1脚接地。两种时钟信号的连接电路如图所示。Vcc2.2GPS模块221概述根据设计需要,GPS模块选用GR-87。H0LUXGR-87是一个高性能,低功耗,小型的并且很容易联合的GPS模块,它每次将跟踪12枚卫星,应用广泛。当GR-87系统最初的自检完成后,它开始处理卫星所获得的数并自动跟踪。在正常情况下,它需要大约45秒达到位置进行定位,但如果ephemeris数据知道,只用38秒即可。在被计算了之后,合法的位置、速度和时间等

31、信息被传送到输出通道,通过串口传送到单片机设备。GR-87运用最初的数据,例如前被存放的位置、日期和卫星轨道数据,完成最大获取。2.2.2GPS特性.行业标准的25*25*4MM高灵敏度GPS天线.UART/TTL,232电平,USB2.0可选接口.采用KDS0.5PPM高精度TCXO.内建RTC晶体及皮法电容更快的热启动.内置EEPROM,自由丰富配置参数.5Hz定位更新速率.支持AssistNowOnline和AssistNowOffline等A-GPS服务.GPS、GALILEO、SBAS(WAAS、EGNOS、MSAS、GAGAN)混合引擎用户可以自由设置:数据速率:9600bps(默

32、认)可选:1200,2400,4800,19200,38400,57600,115200,230400,460800,921600输出语句:NMEA0183V3.0(GGA,GSA,GSV,RMC,VTG,GLL)协议数据,可任意设置搭配。数据刷新率:1HZ-5HZ的刷新率。PPS指示灯:未定位前常亮或者关闭;定位后闪烁。AGPS:支持自主辅助定位系统。使能控制:支持外部10促发控制模块的开关状态。卫星质量控制:丰富的设置卫星质量控制及防止飘逸软体设置。应用场景:从步行模式-车载模式-静态模式-便携模式-空降模式及2D&3D定位用户可以自由设置。默认如产品图片,为TTL信号输出。VK16U6拆

33、开屏蔽盖图名称描述PPS时间标淮脉冲输出VCC系统主电源,供电电压肯+3.3r+5V?工作时消耗电疣约55mATKDAUAET接口,可选USB_DMEXDAUAKT接口,可选USB_DFGND接地VCC_NC电源使能,高电平/悬空檯组工作,低电平模组关闭2.3显示部分2.3.1LCD12864模块简介液晶显示器件(LCD)独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能像西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。下图为LCD12864接口GND本

34、课设所选择的LCD是lcd12864的汉字图形型液晶显示模块,可显示汉字及图形。 表3.1LGM12641接口说明表管脚号管脚电平说明1CS1H/L片选择信号,高电平时选择前64列2CS2H/L片选择信号,高电平时选择后64列3GND0V逻辑电源地4VCC5.0逻辑电源正5V0VLCD驱动电压,应用时在VEE与V0之间加一2K可调电阻6RSH/L数据指令选择:咼电平:数据D0-D7将送入显示RAM;低电平:数据D0-D7将送入指令寄存器执行7R/WH/L读写选择:咼电平:读数据;低电平:写数据8EH/L读写使能,咼电平有效,下降沿锁定数据9DB0H/L数据输入输出引脚10DB1H/L数据输入输

35、出引脚11DB2H/L数据输入输出引脚12DB3H/L数据输入输出引脚13DB4H/L数据输入输出引脚14DB5H/L数据输入输出引脚15DB6H/L数据输入输出引脚16DB7H/L数据输入输出引脚17RSTL复位信号,低电平有效18VOU-10LCD驱动电源TV232指令描述显示开/关设置CODE:LLLLHHHHHH/LR/WRSDB7DB6DB5DB4DB3DB2DB1DB0功能:设置屏幕显示开/关。DB0=H,开显示;DB0=L,关显示。不影响显示RAM(DDRAM)中的内容。(2)设置显示起始行CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLHH行地址(063

36、)功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。(3)设置页地址CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLHLHHH页地址(07)功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。地址就是DDRAM的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。DDRA

37、M地址映像表如表3.2所示。表3.2RAM地址映像表Y地址fPAGE6X=6DB7DB0fPAGE7X=7DB7设置列地址CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址(063)功能:DDRAM的列地址存储在Y地址计数器中,读写数据对列地址有影响在对DDRAM进行读写操作后,Y地址自动加一。(5)状态检测CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRSTLLLL功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。BF=L:空闲状态。RST=L:正常状态。ON/OFF二L:表示显示开。

38、BF=H:内部正在执行操作;RST=H:正处于复位初始化状态;ON/OFF=H:表示显示关闭;(6)写显示数据CODE:R/WRSDB7DB6DB5DB4DB3LHD7D6D5D4D3D2D1D0DB2DB1DB0功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DDRAM前,要先执行“设置页地址”及“设置列地址”命令。(7)读显示数据CODE:R/WRSDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0基本操作时序:读状态:输入:RS=L,R/W=H,CS1或

39、CS2=H,E=H输出:D0D7=状态字写指令:输入:RS=L,R/W=L,D0D7=指令码,CS1或CS2=H,E=高脉冲输出:无读数据:输入:RS=H,R/W=H,CS1或CS2=H,E=H输出:D0D7=数据写数据:输入:RS=H,R/W=L,D0D7=数据,CS1或CS2=H,E=高脉冲输出:无由RAM地址映射表可知LCD显示屏由两片控制器控制,分别用CS1和CS2控制。每个内部带有64X64位(512字节)的RAM缓冲区,对应关系如图3-2所示。图3-2LCD地址映射图整个屏幕分左、右两个屏,每个半屏右8页,每页有8行,注意数据是竖行排列,如表3.2。显示一个字要16*16点,全屏有

40、128*64个点,故可显示32个中文汉字。每两页显示一行汉字,可显示4行汉字,每行8个汉字,共32个汉字。而显示数据需要16*8个点,可显示数据是汉字的两陪。屏幕是通过CS1、CS2两信号来控制的,不同的组合方式所选的屏幕是不同的,对应关系如表3.3所示。表3.3屏幕选择表CS1CS2选屏00全屏01左屏10右屏11不选(8)操作设定开始页地址和列地址;设定读写模式,进行读写操作。只有理解了液晶显示器各个指令的功能,再结合单片机的指令系统,就能编写C语言程序来达到混合显示汉字与数字的目的。通过程序将字的代码写入相应的DDRAM地址,就可以再相应的位置显示相应的字。2.3.3汉字字模提取液晶显示

41、器件(LCD)独具的低压、微功耗特性使他在单片机系统中特得到了广泛的应用,常用的液晶显示模块分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块,其中图形液晶模块在我国应用较为广泛,因为汉字不能象西文字符那样用字符模块即可显示,要想显示汉字必须用图形模块。液晶模块显示汉字方法:使用图形液晶模块以点阵形式来显示汉字和图形,每8个点组成1个字节,每个点用一个二进制位表示,存1的点显示时在屏上显示一个亮点,存0的点则在屏上不显示,最常用的16X16的汉字点阵由32个字节组成。以在我国应用较为普及的液晶显示驱动控制器12864为例,在液晶屏上竖向8个点为1个字节数据,通过字模提取软件按照先左后右,先上

42、后下的方式对汉字进行字模提取。上下图3-3字提取方格由于D0-D7是从上到下排列的,最上面8行是上一页,我们先提取上面一页的数据16个,在按照相同的方法提取下一页的数据16个,在分别写入对应的DDRAM地址,就可以显示我们所需要的字。简单的字可手工制作,也可以用起模软件zimo221【5】提取标准的宋体汉字,不过本文所用的液晶显示屏用这款软件要设计纵向取模并且要反字节,否则将显示乱码。数字只需起汉字的一半数据就可以了,如图3-3所示的左边8列或者右边8列。2.4电源部分鉴于GPS只能在室外进行测试,在室内是接收不到卫星信号。考虑到本系统的特殊性,为了测试方便及可靠,本系统采用电池槽供电,方便携

43、带,便于野外测试与使用。VCCP311=电源部分GXD2.5晶体振荡器石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于单片机、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。如图2-2所示。C1+P22pF04IIY1C2+-110592MGXD图2-2石英晶体振荡器2.6键盘部分P2.7、然后,RST切换按键由单片机的P2.1、P2.6、P2.7控制,接上拉电阻,未按时P2.1、P2.6为高电平。切换键盘输入信息的过程是:首先,单片机判断是否有键按下;单片机把该键代表的信息转换成相应的代码,如图2-3所示。复位按键由单片

44、机控制,如图2-2所示。S1卜ENDO0SW-PE|-GKDS3GND图2-3页面切换按键2.7总原理图如下P1LCD12E54二0-VCCFL1VCCVCCGNDGND1DKPSEP3.522pF12pFczmDEO1DE12DB23DE3斗DE斗5DE55DE5丁DB7g9RXD10TXD1112I?亘1TTsrTiGND12:11肛仍沁1stcg9c52Pl.OPl1PUP13Pl.4P15Pl.6P1.7RSTP3.0.RXDP3J.TXDP3J.INT0P33.INT1P3AT0P3JT1P二氐亟P3.7.RDXT.4L2XTALVSGNDSIBW-PE|lGKDSI沐-PE|lGK

45、D沐-PEIlGKE-图2-7:系统原理图其中P2为排针,P2为单片机的RXD和TXD可以与GPS模块进行串口通信,本系统使用的GPS模块式默认9600波特率,故在程序的实现上要注意。 3系统相关协议介绍3.1GR-87协议3.1.1协议简介GR-87接口协议是以美国国家海洋电子协会(NMEA-TheNationalMarineElectronicsAssociation)制定的NMEA-01832.0版协议为依据的。NMEA-0183数据格式设置为1个起始位,8个数据位,1个停止位,无奇偶校验,波特率默认为4800。NMEA-0183输出数据为ASCII码,常用语句包括GPGGA、GPGLL

46、、GPGSA、GPRMC等,其内容主要有经度、纬度、高度、速度、时间等43.1.2数据格式根据所需数据的需要,只选用GPGGA、GPGSV、GPRMC语句。$GPGAAGPS定位信息例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,0000*1F它的起始引导符及语句格式说明(只列出了系统关心的一些参数):字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)字段3:纬度N(北纬)或S(南纬)字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)字段5:经度E(东经)或W(西经)字段6:GPS状态,0=未

47、定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算字段7:正在使用的卫星数量(00-12)(前导位数不足则补0)字段9:海拔高度(-9999.9-99999.9)GPGSV可见卫星信息例:$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,13,32,252,45*70它的起始引导符及语句格式说明(只列出了系统关心的一些参数):字段3:当前可见卫星总数(00-12)(前导位数不足则补0)3.$GPRMC推荐定位信息例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,

48、150706,A*50它的起始引导符及语句格式说明(只列出了系统关心的一些参数):字段1:UTC时间,hhmmss.sss格式字段7:速度,节,Knots或Km/h字段8:方位角,度3.2串行通信串行通信指数据是一位一位按顺序传送的通信方式。同步和异步都属于串行数据传送方式。由于本设计只涉及异步通信,所以重点介绍异步通信(以AT89C51为例)。3.2.1异步通信特点一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-8位数据位组成(本设计中为

49、8位,规定低位在前,高位在后),接着字符后面是一位校验位(本设计中无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位(可有可无)。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。3.2.2异步通信协议起始位通信上没有数据被传送时,处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接受数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。.数据位当接收设备收到起始位后,紧接着就会接收数据位。89C51

50、采用的是9或8位数据传送,这些数据被接收到移位寄存器中,构成传送数据字符。在传送过程中,数据位从最低有效位开始发送,依次顺序在接受设备中被转换为并行数据。.停止位停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。接收设备收到停止位后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。.波特率通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,这个传送速度即波特率。波特率的设置方式见.3中断中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址

51、,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套。中断系统的结构:5个中断源的符号、名称及产生的条件如下:INTO:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。TO:定时器/计数器0中断,由TO计满回零引起。T1:定时器/计数器l中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。根据需要,本设计只应用了TI/RI一个中断源。串行中断有发送(TI)和接收(R1)的区别;其打开与否,受中断自身的允许位和全局允许位的控制。89C51有4个用于中断控制的寄存器IE、IP

52、、TCON(用6位)、SCON(用2位)。下面分别对它们进行介绍:中断允许寄存器一IE:表3-1中断允许寄存器EAESET1EX1ETOEXOEA:全局中断允许位。EA=0,关闭全部中断;EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。ES:串行I/O中断允许位。ES=1,打开串行I/O中断;ES=0,关闭串行I/O中断。中断优先寄存器一IP:由于本设计只应用一个中断源,不用优先级设置,在此不予介绍。T0/T1中断控制寄存器一TCON:表3-2中断控制寄存器TF1TR1TF0TR0IE1IT1IE0IT0除了TR1和TR0,其余6个用于中断控制,由于本设计中未

53、使用定时器做中断,在此不予详细介绍。因为在设计中使用定时器来设置串行通信的波特率,在此对定时器予以介绍:以上的TR1和TR0用于定时器的启动;TMOD则用于控制定时器的工作模式,如3-3表所示:表3-3定时器控制寄存器GATEC/TM1M0GATEC/TM1M0由表可见,TMOD的高4位用于T1,低4使用于TO,4种符号的含义如下:GATE:门控制位。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器/计数器的打开或关闭。C/T:定时器/计数器选择位。C/T=1,为计数器方式;C/T=0,为定时器方式。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生

54、,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率f=1/12fosc。如果晶振为12MHz,则计数周期为:T=1/(12X106)HzXl/12=l“s;当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24

55、。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上5M1M0:工作方式选择位,定时器/计数器的4种工作方式由M1M0设定。如表3-4所示:表3-4工作方式选择M1M0工作方式功能描述00工作方式013位计数器01工作方式116位计数器10工作方式2自动再装入8位计数器11工作方式3定时器0:分成两个8位计数器;定时器1:停止计数定时器/计数器方式控制寄存器TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器0,高半

56、字节定义为定时器1。复位时,TMOD所有位均为0。串行中断单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接。通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。串行口的控制与状态寄存器为SCON和PCON。SCON用于定义串行口的工作方式及实施中断接收和发送控制。字节地址为98H,其各位定义如表3-5所示:表3-5串行控制寄存器D

57、7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位,其定义如表3-6所示:表3-6串行口工作方式选择SM0、SM1工作方式功能描述波特率00方式08位移位寄存器Fosc/1201方式110位UART可变10方式211位UARTFosc/或fosc/3211方式311位UART可变其中fosc为晶体震荡器频率。根据NMEA-0183数据格式及设计要求,选用工作方式1REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI

58、置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的办法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的办法获知或者用中断的办法获知。RI也必须用软件清0。以上只列出了本设计所关心的说明。PC0N是为了在单片机上实现电源控制而附加的。其中最高位是SM0D。SM0D=1时,方式1、方式2和方式3的波特率加倍。本设计SMOD设置为0。波特率设置:波特率,即数据传送速率,

59、表示每秒传送二进制代码的位数,它的单位是b/s。异步通信的传送速率为5019200b/s.由于本设计选用工作方式1,这里只介绍方式1的波特率设置规则。单片机的工作方式1一般选择定时器T1作为波特率发生器。当T1作为波特率发生器时,通常选用定时器模式2(能够自动重装初值定时器),比较实用。应设置定时器T1为定时方式(C/T=0),让T1计数内部脉冲,即计数率为fosc/12。先设定TH1和TL1定时计数初值为X,那么每过(256-X)个机器周期,定时器就会产生一次溢出。因此,T1溢出率=T1计数率/产生溢出所需的周期数;波特率=定时器T1溢出率3.3液晶显示协议3.3.1基本操作时序读状态:输入

60、:RS=L,RW=H,E=H输出:D0_D7=状态字写指令:输入:RS=L,RW=L,D0_D7=指令码,高脉冲输出:无读数据:输入:RS=H,RW=H,E=H输出:D0_D7=数据写数据:输入:RS=H,RW=L,D0_D7=数据,E=高脉冲输出:无3.3.2显示与控制命令模块内部的字符发生内存(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。1.1602液晶模块内部的控制器共有11条控制指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实现。(说明:1为高电平、0为低电平)指令1:清显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论