《基于51单片机和gps接收机资料简介--大学毕业论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机和gps接收机资料简介--大学毕业论文.doc(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、51单片机的GPS接收机GPS主系统是美国发射运行的卫星系统,包含了27 颗能持续发送地理位置海拔高度和时间信号的卫星,24 个正常使用,3 个备用,这些卫星平均分布运行在六个轨道上。一般来说,在地面上的GPS 接收器能接收512 个卫星信号,而为了获得地面上的定位坐标,GPS 导航至少需要4 个卫星信号,三个用来确定GPS 接收器的纬度、经度和海拔高度,第四个则提供同步校正时间1。全球定位系统由三部分构成:太空卫星部份:由 24 颗绕极使用卫星所组成,分成六个轨道,运行于约 20200 公里的高空,绕行地球一周约12 小时。每个卫星均持续着发射载有卫星轨道数据及时间的无线电波,提供地球上的各
2、种接收机来应用。地面管制部份:这是为了追踪及控制上述卫星运转,所设置的地面管制站,主要工作为负责修正与维护每个卫星能保持正常运转的各项参数数据,以确保每个卫星都能提供正确的讯息给使用者接收机来接收。使用者接收机:追踪所有的 GPS 卫星,并实时地计算出接收机所在 位置的坐标、移动速度及时间,各种蓝牙GPS 即属于此部份。我们通常所说的GPS, 就是第3 部分。它可以实时提供全天候、全球性的三维定位、测速与授时功能的卫星系统 ,具有测量精度高、速度快、用户数量不限、抗干扰能力强等一系列优点 ,除了可用于军事领域外 ,还可以广泛用于工农业生产、交通运输、野外探险等领域。自 20世纪90年代 GPS
3、系统向全世界免费开放以来 , GPS系统已广泛应用在导航、大地测量、精确授时、线路巡检及车辆防盗等领域。接收机是获得 GPS系统服务的关键设备 ,目前已有从手持式到台式数百种型号的接收机可供用户选择。通用接收机功能齐全 ,除了信号接收单元外,往往还配置有显示单元和人机对话设备。这一方面为用户提供了极大的方便但 GPS定位接收机价格比较昂贵而且使用灵活性低 ,难以满足特定条件下的应用需求 ,造成了资金浪费。因此 ,众多用户期望按照自己的使用环境和性能要求设计和使用个性化的GPS定位接收机。 本文首先介绍了GPS系统由来及其发展、基本概念、GPS接收机的工作原理及接收机定位流程。然后对单片机及其串
4、口通信、GR-87 及其NMEA-0183语句的数据格、液晶显示器进行了详细论述。并且设置了所需的外围电路。接着详细地介绍了该GPS接收机的软件设计过程。通过C语言实现了 GPS 信号的提取、显示及基本的键盘控制操作等。经过实践测试,这种接收机可以达到基本 GPS信息接收以及显示,可以做到方便灵活、优质价廉、精度高、连续导航、抗干扰能力强,并可广泛应用于个人野外旅游探险、出租汽车定位及海上作业等领域。第1章 GPS系统简介及设计方案选择1.1 GPS系统简介1.1.1 GPS由来及发展导航卫星定时测距全球定位系统(Navigation Satellite Timing and Ranging
5、Global Position System GPS)是美国第二代卫星导航系统。它在 1973 年底由美国陆海空三军等单位协调分工提出的能取代旧式的导航设备 ,为军用舰船、飞机车辆等用户提供全球全天候、连续实时服务的高精度三维导航系统。系统由空间部分、地面监控部分和地面接收机部分组成。定位服务包括精密定位服务( PPS)和标准定位服务(SPS) 。PPS授权的精密定位系统用户需要密码设备和特殊的接收机。SPS对于普通民用用户 ,供全世界用户免费、无限制地使用2。由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到广泛的应用 ,在各个领域发挥了极大的作用
6、 ,已成为信时代不可缺少的一部分。各种 GPS民用产品的开发 ,已是经济和社会发展的必然要求 ,其前景将会非常广阔和光明 ,尤其是在我国 ,通过这些年来对它认识不断加深 ,我国的GPS开发应用也一定会以科技力量推动经济和社会发展的一颗巨星 ,对我国的经济和社会的发展产生重大的影响。1.1.2 GPS定位基本原理GPS定位技术的基本原理是采用测量学中通用的测距交会方法GPS接收机在某一时刻接收到4 颗以上的GPS卫星信号导航电文, 通过变频、放大、 滤波等一系列处理过程,实现对GPS卫星号的跟踪、锁定、测量,从而产生计算位置的数据信息(包括:纬度、经度、高度、速度、日期、时间、航向、卫星状况等)
7、,经由I/O口输出串行数据1.1.3 GPS接收机定位流程1搜索可用卫星,接收卫星信号,与卫星信号同步,提取导航电文信息;2从导航电文中获取计算位置所需的信息,这些信息应该包括时钟信息和星历等数据;3计算卫星的准确位置,这包括计算卫星的高度和方位角,从而进行必要的对流层校正;4计算伪距,并进行电离层校正等;5重复上述过程,对所有可用卫星进行相应的计算;6进行其他必要的校正,例如根据卫星信号到达GPS接收机的时间,校正地球旋转所造成的卫星位置的偏差;7根据定位原理,计算出GPS接收机的初始位置,并将其转换成所需的坐标格式进行显示或输出;8加入闰秒和UTC(标准世界时)时间补偿计算当前精确的时间;
8、9分析可用卫星的信息,计算最好的DOP(Dilution of Precision),进行选星,并计算和修正GPS接收机的位置,给出GPS接收机的三维坐标和准确的时间信息。1.1.4 任务的描述我们针对全球定位系统GPS,自行研制了一套GPS接收机,具有接收、处理、显示信息能力并能进行键盘操作。本设计着重对NMEA-0183语句的数据格式、单片机串行通信、液晶显示格式进行了详细论述,同时给出了硬件电路和软件设计。工作要求:准确地进行定位,显示出纬度、经度、速度、时间、方位角、天空中的卫星总数以及使用的卫星数。通过按键可以进行复位与页面切换功能。1.2 设计方案选择1.2.1 方案一系统由GPS
9、-OEM板、电平转换电路(MAX232)、控制电路(8051单片机) 、显示部分(SED1335 彩色液晶显示器)组成。但在和单片机进行串行通信时由于电平不同,必须附加电平转换电路(MAX232) 而且价格比较昂贵。单片机采用8051功能全面,但其内部ROM一般是掩膜ROM,不可更新改写。SED1335 彩色液晶显示器其有效显示点阵为320 240 ,显示颜色为 4 色,但根据我们设计要求,单色显示完全可以。故不采用。1.2.2方案二系统由GPS模块(GR-87)、控制电路(89C51单片机) 、显示部分(SMC1602液晶显示器)组成。HOLUX GR-87是一个高性能,低功耗,小型的并且很
10、容易联合的GPS模块。该芯片每次将跟踪12枚卫星,应用广泛。而且不用附加电平转换电路,可以直接与单片机进行串行通信。单片机采用89C51,其功能完全可以满足设计要求,而且相对于8051,其内部ROM是FLASH-ROM,可多次更新改写,价格也便宜。1602字符型液晶模块是一种用5x7位图形来显示字符的单色液晶显示器,显示2行16个字,可以满足设计要求而且经济实惠。可以看出方案二更加实用,根据现实生活的需要,设计采用此方案。第2章 系统硬件设计课题要求研制的GPS接收机要具有接收、处理、显示信息、键盘操作,硬件上必须有相应的接收处理部分、显示部分和配置输入部分。同时需要处理器实现各部分功能的联结
11、。由于单片机集成度高,系统结构简单,价格低廉,同时技术成熟,处理器部分使用单片机实现。本课题设计的硬件系统主要由:单片机、 GPS模块、显示部分等组成。如图2-1所示: 图2-1 系统框图2.1单片机硬件核心控制任务是由单片机来完成的,单片机的采用使硬件电路设计大大简化,而性能更加可靠。目前,可采用的微处理器有很多种,如:MCS-51、Me6sol、280、eopsoo、等8位单片机,虽然16位单片机在1982年已经问世,但其发展并不象人们想象的那样快,尽管在某些性能指标方面超过了8位单片机,但从性能价格比及开发周期等综合效益上不如8位单片机,因此应用并不普及。在本次设计中,采用MCS-51系
12、列单片机,虽然信号处理和计算的功能相对差些,但其结构简单、体积小、性价比高、可靠性高、功耗小及应用范围广,适合于小型化作业。因此,笔者选择了AT89C51单片机作为微控制器。它具有全双工异步通信口 ,可与GR-87接口进行数据读取 ,处理和输出。GPS信号接收和处理部分与单片机进行串口通信时,由于都采用 TTL电平 ,故两者之间不需进行电平转换就可直接通信。2.2 GPS模块2.2.1 概述根据设计需要,GPS模块选用GR-87。HOLUX GR-87是一个高性能,低功耗,小型的并且很容易联合的GPS模块,它每次将跟踪12枚卫星,应用广泛。当GR-87系统最初的自检完成后,它开始处理卫星所获得
13、的数并自动跟踪。在正常情况下,它需要大约45秒达到位置进行定位,但如果ephemeris数据知道,只用38秒即可。在被计算了之后,合法的位置、速度和时间等信息被传送到输出通道,通过串口传送到单片机设备。GR-87运用最初的数据,例如前被存放的位置、日期和卫星轨道数据,完成最大获取。2.2.2 主要技术参数1输入电压:3.3-5.5 VDC输入。输入电流 ;少于80 mA (没有天线);2 RF接口:天线连接器类型:MMCX,2.8 VDC产品 (任意产品VCC_IN);3极小的信号跟踪:-159 dBm;4连续端口: 二个全双工串行通信CMOS 3V接口,可选择的波特速率(4800默认, 96
14、00, 19200, 38400)本设计选用4800;NMEA 0183版本2.2 ASCII 输出(GGA, GSA, GSV, RMC (VTG,任意的GLL和ZDA); DGPS协议RTCM SC-104消息类型1,2和9;SiRF二进制位置,速度,高度,状态输出。2.2.3 管脚介绍表2-1 管脚管脚管脚名称功能描述1VCC-5V+3.55.5Vdc电量输入2TXA串行数据输出端口A (CMOS 3V:Voh 2.4V Vol 0.4V Ioh=Iol=2mA)3RXA串行数据输入端A (CMOS 3V: Vih0.7*VCC Vil0.3*VCC)4RXB串行数据输入端B (CMOS
15、 3V: Vih0.7*VCC Vil0.3*VCC)5GND接地6时钟/复位时钟 :1PPS时钟信号输出(Vil0.2V脉冲宽度10ms)。 复位: 复位输入 2.3 显示部分液晶显示LCD(Liquid Crystal Display),是利用液晶材料在电场作用下发生位置变化,而遮蔽/通透光线的性能制作成为一种重要平板显示器件。通常使用的LCD器件有TN型(Twist Nematic,扭曲向列型液晶)、STN型(Super TN,超扭曲向列型液晶)和TFT型(Thin Film Transistor,薄膜晶体管型液晶)。TN、STN、TFT型液晶,性能依次增强,制作成本也随之增加。TN和S
16、TN型常用作单色LCD。STN型可以设计成单色多级灰度LCD和伪彩色LCD,TFT型常用作真彩色LCD。采用 LCM 液晶显示模块作为人机交互界面。液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB 线路板、背光源、结构件装配在一起的组件。字符型液晶显示模块目前在国际上已经规范化,无论显示屏规格如何变化,其电特性和接口形式都是统一的。从性价比等方面考虑,这里选用长沙太阳人电子有限公司生产的字符型液晶显示模块SMC1602,它是一种用5x7位图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。本设计以常用的2行16个字的1602液晶屏来构成整个
17、系统的显示模块。SMC1602采用标准的16脚接口,具体定义如下:表2-2 16脚接口引 线 号符 号名 称功 能1Vss接地0V2VDD电路电源5V10%3VL液晶显示偏压信号调节对比度4RS寄存器选择信号H:数据寄存器 L:指令寄存器5R/W读/写信号H:读 L:写6E片选信号下降沿触发,锁存数据7|14DB0|DB7数据线数据传输15BLA背光源正极提供背光16BLK背光源负极提供背光主要技术参数:表2-3 技术参数显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WXH)mm2.4 电源部分本电路使用集成稳压芯
18、片7805,它可以把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把单相交流经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。2.5 晶体振荡器石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于单片机、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特定系统提供基准信号。如图2-2所示。图2-2 石英晶体振荡器2.6 键盘部分切换按键由单片机的P2.0控制,接上拉电阻,未按时P2.0为高电平。切换键盘输入信息的过程是:首先,单片机判断是否有键按下;然后,单片机把该键代表的信息转换成相应的代
19、码,如图2-3所示。复位按键由单片机RST控制,如图2-2所示。 图2-3 页面切换按键 第3章 系统相关协议介绍3.1 GR-87协议3.1.1 协议简介GR-87接口协议是以美国国家海洋电子协会(NMEA-The National Marine Electronics Association)制定的NMEA-0183 2.0版协议为依据的。NMEA-0183数据格式设置为 1个起始位,8个数据位 ,1个停止位,无奇偶校验,波特率默认为4800。NMEA-0183输出数据为 ASCII码,常用语句包括 GPGG A、GPGLL、GPGSA、GPRMC等 ,其内容主要有经度、纬度、高度、速度、
20、时间等4。3.1.2 数据格式根据所需数据的需要 ,只选用GPGGA、GPGSV、GPRMC语句。1$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=未定位,1=非差分定位,2=差分定位,3=无效PPS,6
21、=正在估算字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)字段9:海拔高度(-9999.9 - 99999.9)2GPGSV可见卫星信息例:$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,150706,A*50 它的起始引导符
22、及语句格式说明(只列出了系统关心的一些参数):字段1:UTC时间,hhmmss.sss格式字段7:速度,节,Knots或Km/h字段8:方位角,度3.2串行通信串行通信指数据是一位一位按顺序传送的通信方式。同步和异步都属于串行数据传送方式。由于本设计只涉及异步通信,所以重点介绍异步通信(以AT89C51为例)。3.2.1 异步通信特点一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-8位数据位组成(本设计中为8位,规定低位在前,高位在后),接
23、着字符后面是一位校验位(本设计中无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位(可有可无)。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。3.2.2 异步通信协议1起始位通信上没有数据被传送时,处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑 0信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接受数据位信号。起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。2数据位当接收设备收到起始位后,紧接着就会接收数据位。89C51采用的是9或8位数据传送,这些
24、数据被接收到移位寄存器中,构成传送数据字符。在传送过程中,数据位从最低有效位开始发送,依次顺序在接受设备中被转换为并行数据。3停止位 停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的高电平。接收设备收到停止位后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。4波特率通信线上传送的所有位信号都保持一致的信号持续时间,每一位的信号持续时间都由数据传送速度确定,这个传送速度即波特率。波特率的设置方式见3.2.33.2.3 中断 中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;
25、5个中断源有两级中断优先级,可形成中断嵌套。中断系统的结构:5个中断源的符号、名称及产生的条件如下:INT0:外部中断0,由P32端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P33端口线引入,低电平或下跳沿引起。T0:定时器计数器0中断,由T0计满回零引起。T1:定时器计数器l中断,由T1计满回零引起。TIRI:串行IO中断,串行端口完成一帧字符发送接收后引起。根据需要,本设计只应用了TI/RI一个中断源。串行中断有发送(TI)和接收(R1)的区别;其打开与否,受中断自身的允许位和全局允许位的控制。89C51有4个用于中断控制的寄存器IE、IP、TCON(用6位)、SCON(用2位
26、)。下面分别对它们进行介绍:中断允许寄存器IE:表3-1中断允许寄存器EAESET1EX1ET0EX0EA:全局中断允许位。EA0,关闭全部中断;EA1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。ES:串行IO中断允许位。ES1,打开串行IO中断;ES0,关闭串行IO中断。中断优先寄存器IP:由于本设计只应用一个中断源,不用优先级设置,在此不予介绍。T0/T1中断控制寄存器TCON:表3-2中断控制寄存器TF1TR1TF0TR0IE1IT1IE0IT0除了TR1和TR0,其余6个用于中断控制,由于本设计中未使用定时器做中断,在此不予详细介绍。因为在设计中使用定时器
27、来设置串行通信的波特率,在此对定时器予以介绍:以上的TR1和TR0用于定时器的启动;TMOD则用于控制定时器的工作模式,如3-3表所示:表3-3 定时器控制寄存器GATEC/TM1M0GATEC/TM1M0由表可见,TMOD的高4位用于T1,低4使用于T0,4种符号的含义如下:GATE:门控制位。GATE和软件控制位TR、外部引脚信号INT的状态,共同控制定时器计数器的打开或关闭。CT:定时器计数器选择位。C/T1,为计数器方式;CT0,为定时器方式。当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定
28、时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率f=1/12fosc。如果晶振为12MHz,则计数周期为:T=1/(12106)Hz1/12=1s;当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电 平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳 变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外
29、部输入信号 的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上5。M1M0:工作方式选择位,定时器计数器的4种工作方式由M1M0设定。如表3-4所示:表3-4 工作方式选择M1M0工作方式功能描述00工作方式013位计数器01工作方式116位计数器10工作方式2自动再装入8位计数器11工作方式3定时器0:分成两个8位计数器;定时器1:停止计数定时器/计数器方式控制寄存器TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器0,高半字节定义为定时器1。复位时,TMOD所有位均为0。串行中断 单片机
30、串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接。通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。串行口的控制与状态寄存器为SCON和PCON。1SCON用于定义串行口的工作方式及实施中断接收和发送控制。字节地址为98H,其各位定义如表3-5所示:表3-5 串行控制寄存器D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8
31、RB8TIRISM0、SM1:串行口工作方式选择位,其定义如表3-6所示: 表3-6 串行口工作方式选择SM0、SM1工作方式功能描述波特率0 0方式08位移位寄存器Fosc/120 1方式110位UART可变1 0方式211位UARTFosc/或fosc/321 1方式311位UART可变其中fosc为晶体震荡器频率。根据NMEA - 0183数据格式及设计要求,选用工作方式1REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断
32、,可根据需要,用软件查询的办法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的办法获知或者用中断的办法获知。RI也必须用软件清0。以上只列出了本设计所关心的说明。2PCON是为了在单片机上实现电源控制而附加的。其中最高位是SMOD。SMOD=1时,方式1、方式2和方式3的波特率加倍。本设计SMOD设置为0。波特率设置:波特率,即数据传送速率,表示每秒传送二进制代码的位数,它的单位是b
33、/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基本操作时序1.读状态:输入:RS=L,RW=H,E=H 输
34、出:D0_D7=状态字2.写指令:输入:RS=L,RW=L,D0_D7=指令码,高脉冲 输出:无3.读数据:输入:RS=H,RW=H,E=H 输出:D0_D7=数据4.写数据:输入:RS=H,RW=L,D0_D7=数据,E=高脉冲 输出:无3.3.2显示与控制命令模块内部的字符发生内存(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。11602液晶模块内部的控制器共有11条控制指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实现。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H
35、,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有游标,低电平表示无游标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位元 S/C:高电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x
36、7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据2液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,如表3-8所示:表3-8 1602的内部显示地址显 示 位 序 号1 2 3 4 5 40DD RAM地 址(HEX)第 一 行00 01 02 03 04 . 27第 二 行4
37、0 41 42 43 44 . 67第4章 系统软件设计4.1系统软件概述系统的软件流程是:开机上电后初始化,然后单片机开始接收GPS模块发送的数据,并判断数据是否有效,若数据有效则显示所需的信息,数据无效则等待直至收到有效数据。在等待过程中,单片机响应键盘输入的信息,但键盘输入不是必须的。系统图如图5.1所示: 图5-1系统总流程图 系统软件由以下模块组成:初始化模块、数据处理模块和人机对话模块。初始化模块完成开机上电后对单片机和液晶显示器初始化。对单片机设置串口工作模式和中断工作模式;对液晶显示器设置开机画面和显示模式。数据处理模块主要是从GPS模块接收数据,判断数据的有效性,对有效数据进
38、行相应的格式处理,然后等待送液晶显示器显示。数据处理模块的工作从开机上电开始一直连续不断的进行,直到关机为止。人机对话模块主要是相应的显示器显示。该部分完成从单片机读数据到液晶显示器和从液晶显示器读数据到单片机的双向传输工作。4.2软件程序的编写4.2.1 初始化模块1单片机根据3.2对单片机串行通信的详细介绍可知:本设计选择串行通信工作方式1并允许接收;选择定时器1,模式2;根据波特率为4800b/s,计算出定时器计数初值;启动定时器1;开总中断、串口中断。2液晶显示通过初始化函数LCMInit()进行初始化,然后又调用显示字符串函数以便让屏幕显示GPS Monitor V1.2字样,表示准
39、备工作,接着延时400Ms然后调用清屏函数进行一次清屏。4.2.2 数据处理模块数据处理模块负责处理从GPS模块接收到的数据。由于这些数据格式符合NMEA 0183 ASCII码接口协议,所以接收到的数据会转换为需要的信息。1接收总流程图 图5-2 接收总流程图2命令类型判断流程图(以 GPGGA为例) 图5-3 命令类型判断流程图 当类型数据接收完毕,先判断类型。本设计中有3种类型数据,即GPGGA、GPGSV、GPRMC。如果接收到的是GPGGA,则将命令类型置1,接收命令模式赋为2,逗号和位数均清空。 3GPGGA数据存储流程图图5-4 GPGGA数据存储流程图 开始接收类型数据。此时,当逗号计数为2且位计数小于9,就将纬度数据一位一位存储起来(存储一位后RI便置0以接收下一位)。当接收数据为“,”时,则逗号计数加1为3同时位计数清空,如果位计数小于1,则将纬度方向数据一位一位存储起来(同上)。当逗号计数再加1为4时同时位计数清空,这时位计数只要小于10,就将经度数据一位一位存储起来(同上)。依次类推,会顺次将经度方向、定位判断、定位使用的卫星数、高度处理存储起来。然后会接收到“*”,说明整句接收完成并将其置为结束模式。 同理可知,GPGSV、GPRMC语句的接收过程。4.2.3 人机对话模块人机对话模块主要是显示器工作。显示器经过初始化、设置才能正确显示信息,才能
限制150内