1、目录摘要1第一章 51单片机概述11.1 51单片机系统的结构组成11.2 51单片机系统的功能特性21.2.1 51单片机系统的结构21.2.2 功能特性:31.3 8255芯片原理及其功能31.4 液晶显示模块原理5第二章 GPS定位系统简介52.2 GPS定位系统的基本原理62.3 GPS模块定位流程62.4 NMEA-0183数据格式7第三章 硬件连接电路73.1单片机73.2 GPS模块83.2.1 概述83.2.3 管脚介绍93.3 显示部分9第四章 软件设计114.1系统软件概述114.2软件程序的编写114.2.1 初始化模块114.2.2 数据处理模块114.2.3 人机对话
2、模块144.3 代码实现15第五章 实验总结16参考文献16摘要GPS是英文Global Positioning System(全球定位系统)的简称。GPS起始于1958年美国军方的一个项目,1964年投入使用。20世纪70年代,美国陆海空三军联合研制了新一代卫星定位系统GPS 。主要目的是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,经过20余年的研究实验,耗资300亿美元,到1994年,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。在机械领域GPS则有另外一种含义:产品几何技术规范(Geometrical Product Sp
3、ecifications)-简称GPS。第一章 51单片机概述1.1 51单片机系统的结构组成51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。当前常用的51系列单片机主要产品有:*I
4、ntel的:80C31、80C51、87C51,80C32、80C52、87C52等;*ATMEL的:89C51、89C52、89C2051等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。 基础51单片机。11.2 51单片机系统的功能特性1.2.1 51单片机系统的结构 8位CPU4kbytes程序存储器(ROM) (52为8K)128bytes的数据存储器(RAM) (52有256bytes的RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器2个可
5、编程定时/计数器5个中断源,2个优先级(52有6个)一个全双工串行通信口外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O
6、口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。1.2.2 功能特性:1),可以仿真63K程序空间,接近64K 的16位地址空间;2),可以仿真64Kxdata 空间,全部64K 的16位地址空间;3),可以真实仿真全部32 条IO脚;4),完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;5),可以使用C51语言或者ASM汇编语言进行调试 ;6),可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;7),可选 使用用户晶振,支持0
7、40MHZ晶振频率;8),片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;9),可以仿真双DPTR 指针;10),可以仿真去除ALE 信号输出. ;11),自适应300-38400bps 的所有波特率通讯;12),体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;13),仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;14),仿真时监控和用户代码分离,不可能产生不能仿真的软故障;15),RS-232接口不计成
8、本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。1.3 8255芯片原理及其功能8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控
9、制部分。1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0D7,用于8255与CPU传送8位数据。(2)地址总线AB:编号为A0A1,用于选择A、B、C口与控制寄存器。(3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读
10、信号或写信号对8255进行读或写数据的操作。2)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0PA7,用于8255向外设输入输出8位并行数据。(2)B口:编号为PB0PB7,用于8255向外设输入输出8位并行数据。(3)C口:编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3)控制器8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组
11、,PB0PB7与PC0PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。1.4 液晶显示模块原理液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件英文名称叫“LCD Module”,简称“LCM”,中文一般称为“液晶显示模块”。实际上它是一种商品化的部件根据我国有关国家标准的规定:只有不可拆分的一体化部件才称为“模块”,可拆分的叫作“组件”。所以规范的叫法应称为“液晶显示组件”。但是由于长期以来人们都已习惯称
12、其为“模块”。 液晶显示器件是一种高新技术的基础元器件,虽然其应用巳很广泛,但对很多人来说,使用、装配时仍感到困难。特别是点阵型液晶显示器件,使用者更是会感到无从下手特殊的连接方式和所需的专用设备也非人人了解和具备,故此液晶显示器件的用户希望有人代劳,将液晶显示器件与控制、驱动集成电路装在一起,形成一个功能部件,用户只需用传统工艺即可将其装配成一个整机系统。从广义上说,凡是由液晶显示器件和集成电路装配在一起的部件都属于“模块”,但实际上我们通常所说的“模块”主要是指点阵液晶显示器件装配的点阵液晶显示模块,特别因为是点阵液晶显示器件产品除某些专用大批量的一些品种(如翻译机、通讯用),生产厂家是直
13、接向用户供应液晶显示器件外,几乎所有通用型点阵液晶显示器件都是加工成模块后才供给用户的,所以很容易形成“液晶模块”就是“点阵液晶模块”的误解。第二章 GPS定位系统简介2.1 GPS简介 导航卫星定时测距全球定位系统(Navigation Satellite Timing and Ranging Global Position System GPS)是美国第二代卫星导航系统。它在 1973 年底由美国陆海空三军等单位协调分工提出的能取代旧式的导航设备 ,为军用舰船、飞机车辆等用户提供全球全天候、连续实时服务的高精度三维导航系统。系统由空间部分、地面监控部分和地面接收机部分组成。定位服务包括精密
14、定位服务( PPS)和标准定位服务(SPS) 。PPS授权的精密定位系统用户需要密码设备和特殊的接收机。SPS对于普通民用用户 ,供全世界用户免费、无限制地使用2。由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到广泛的应用 ,在各个领域发挥了极大的作用 ,已成为信时代不可缺少的一部分。各种 GPS民用产品的开发 ,已是经济和社会发展的必然要求 ,其前景将会非常广阔和光明 ,尤其是在我国 ,通过这些年来对它认识不断加深 ,我国的GPS开发应用也一定会以科技力量推动经济和社会发展的一颗巨星 ,对我国的经济和社会的发展产生重大的影响。2.2 GPS定位系
15、统的基本原理 GPS定位原理GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间t,再加上接收机所接收到的卫星星历等其它数据可以确定以下四个方程式。2.3 GPS模块定位流程1搜索可用卫星,接收卫星信号,与卫星信号同步,提取导航电文信息;2从导航电文中获取计算位置所需的信息,这些信息应该包括时钟信息和星历等数据;3计算卫星的准确位置,这包括计算卫星的高度和方位角,从而进行必要的对流层校正;4计算伪距,并进行电离层校正等;5重复上述过程,对所有可用卫
16、星进行相应的计算;6进行其他必要的校正,例如根据卫星信号到达GPS接收机的时间,校正地球旋转所造成的卫星位置的偏差;7根据定位原理,计算出GPS接收机的初始位置,并将其转换成所需的坐标格式进行显示或输出;8加入闰秒和UTC(标准世界时)时间补偿计算当前精确的时间;9分析可用卫星的信息,计算最好的DOP(Dilution of Precision),进行选星,并计算和修正GPS接收机的位置,给出GPS接收机的三维坐标和准确的时间信息。2.4 NMEA-0183数据格式序号命令说明最大帧长1$GPGGA全球定位数据722$GPGSA卫星PRN数据653$GPGSV卫星状态信息2104$GPRMC运
17、输定位数据705$GPVTG地面速度信息346$GPGLL大地坐标信息7$GPZDAUTC时间和日期第三章 硬件连接电路3.1单片机硬件核心控制任务是由单片机来完成的,单片机的采用使硬件电路设计大大简化,而性能更加可靠。目前,可采用的微处理器有很多种,如:MCS-51、Me6sol、280、eopsoo、等8位单片机,虽然16位单片机在1982年已经问世,但其发展并不象人们想象的那样快,尽管在某些性能指标方面超过了8位单片机,但从性能价格比及开发周期等综合效益上不如8位单片机,因此应用并不普及。在本次设计中,采用MCS-51系列单片机,虽然信号处理和计算的功能相对差些,但其结构简单、体积小、性
18、价比高、可靠性高、功耗小及应用范围广,适合于小型化作业。因此,笔者选择了AT89C51单片机作为微控制器。它具有全双工异步通信口 ,可与GR-87接口进行数据读取 ,处理和输出。GPS信号接收和处理部分与单片机进行串口通信时,由于都采用 TTL电平 ,故两者之间不需进行电平转换就可直接通信。3.2 GPS模块3.2.1 概述根据设计需要,GPS模块选用GR-87。HOLUX GR-87是一个高性能,低功耗,小型的并且很容易联合的GPS模块,它每次将跟踪12枚卫星,应用广泛。当GR-87系统最初的自检完成后,它开始处理卫星所获得的数并自动跟踪。在正常情况下,它需要大约45秒达到位置进行定位,但如
19、果ephemeris数据知道,只用38秒即可。在被计算了之后,合法的位置、速度和时间等信息被传送到输出通道,通过串口传送到单片机设备。GR-87运用最初的数据,例如前被存放的位置、日期和卫星轨道数据,完成最大获取。3.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默认, 9600, 19200, 38400)本设计选用4800;NMEA 0
20、183版本2.2 ASCII 输出(GGA, GSA, GSV, RMC (VTG,任意的GLL和ZDA); DGPS协议RTCM SC-104消息类型1,2和9;SiRF二进制位置,速度,高度,状态输出。3.2.3 管脚介绍管脚管脚名称功能描述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 3V: Vih0.7*VCC Vil0.3*VCC)5GND接地6时钟/复位时
21、钟 :1PPS时钟信号输出(Vil0.2V脉冲宽度10ms)。 复位: 复位输入3.3 显示部分液晶显示LCD(Liquid Crystal Display),是利用液晶材料在电场作用下发生位置变化,而遮蔽/通透光线的性能制作成为一种重要平板显示器件。通常使用的LCD器件有TN型(Twist Nematic,扭曲向列型液晶)、STN型(Super TN,超扭曲向列型液晶)和TFT型(Thin Film Transistor,薄膜晶体管型液晶)。TN、STN、TFT型液晶,性能依次增强,制作成本也随之增加。TN和STN型常用作单色LCD。STN型可以设计成单色多级灰度LCD和伪彩色LCD,TFT
22、型常用作真彩色LCD。采用 LCM 液晶显示模块作为人机交互界面。液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB 线路板、背光源、结构件装配在一起的组件。字符型液晶显示模块目前在国际上已经规范化,无论显示屏规格如何变化,其电特性和接口形式都是统一的。从性价比等方面考虑,这里选用长沙太阳人电子有限公司生产的字符型液晶显示模块SMC1602,它是一种用5x7位图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。本设计以常用的2行16个字的1602液晶屏来构成整个系统的显示模块。SMC1602采用标准的16脚接口,具体定义如下:16脚接口引 线
23、 号符 号名 称功 能1Vss接地0V2VDD电路电源5V10%3VL液晶显示偏压信号调节对比度4RS寄存器选择信号H:数据寄存器 L:指令寄存器5R/W读/写信号H:读 L:写6E片选信号下降沿触发,锁存数据7|14DB0|DB7数据线数据传输15BLA背光源正极提供背光16BLK背光源负极提供背光主要技术参数:技术参数显示容量162个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.954.35(WXH)mm第四章 软件设计4.1系统软件概述系统的软件流程是:开机上电后初始化,然后单片机开始接收GPS模块发送的数据,并判断数据是否有效,若数据有
24、效则显示所需的信息,数据无效则等待直至收到有效数据。在等待过程中,单片机响应键盘输入的信息,但键盘输入不是必须的。系统图如图所示:系统软件由以下模块组成:初始化模块、数据处理模块和人机对话模块。初始化模块完成开机上电后对单片机和液晶显示器初始化。对单片机设置串口工作模式和中断工作模式;对液晶显示器设置开机画面和显示模式。数据处理模块主要是从GPS模块接收数据,判断数据的有效性,对有效数据进行相应的格式处理,然后等待送液晶显示器显示。数据处理模块的工作从开机上电开始一直连续不断的进行,直到关机为止。人机对话模块主要是相应的显示器显示。该部分完成从单片机读数据到液晶显示器和从液晶显示器读数据到单片
25、机的双向传输工作。4.2软件程序的编写4.2.1 初始化模块1单片机 根据3.2对单片机串行通信的详细介绍可知: 本设计选择串行通信工作方式1并允许接收;选择定时器1,模式2;根据波特率为4800b/s,计算出定时器计数初值;启动定时器1;开总中断、串口中断。2液晶显示通过初始化函数LCMInit()进行初始化,然后又调用显示字符串函数以便让屏幕显示GPS Monitor V1.2字样,表示准备工作,接着延时400Ms然后调用清屏函数进行一次清屏。4.2.2 数据处理模块数据处理模块负责处理从GPS模块接收到的数据。由于这些数据格式符合NMEA 0183 ASCII码接口协议,所以接收到的数据
26、会转换为需要的信息。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,则将纬度方向数据一位一位存储起来(
27、同上)。当逗号计数再加1为4时同时位计数清空,这时位计数只要小于10,就将经度数据一位一位存储起来(同上)。依次类推,会顺次将经度方向、定位判断、定位使用的卫星数、高度处理存储起来。然后会接收到“*”,说明整句接收完成并将其置为结束模式。 同理可知,GPGSV、GPRMC语句的接收过程。4.2.3 人机对话模块人机对话模块主要是显示器工作。显示器经过初始化、设置才能正确显示信息,才能够对输入的信息显示出来。这个要点在前面已有描述.1显示总流程图 图5-5 显示流程图2GPRSM信息显示流程图图 GPRSM信息显示流程图 图5-7页面切换流程图GPS接收机打开后,如果有GPS信号,首先检测是否有
28、按键切换显示。如果没有,则屏幕显示第一页,反之显示第二页(这里只介绍第二页显示)。当接收有效数据为GPRMC,其数据均在第二业显示,先显示时间,然后如果GPS未定位,则屏幕第一行首末均显示-.-;如果已定位,则显示速度,接着显示方位角,然后刷新计数器清空。同理可知,另外两种命令显示(均显示在第二页)。3页面切换流程图4.3 代码实现单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着
29、单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。所以本设计使用C语言编程第五章 实验总结参考文献【1】张迎新编著.单片机原理及应用.北京:电子工业出版社,2012【2】何立民编著.单片机高级教程.北京:航空航天大学出版社,2000【3】李华主编.MCS-51系列单片机实用接口技术.北京:航空航天大学出版社,199816