ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:408.05KB ,
资源ID:5321743      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5321743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的GPS定位系统的设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的GPS定位系统的设计.docx

1、基于51单片机的GPS定位系统的设计目 录第一章 51单片机概述 11.1 单片机结构及原理 11.2 8255芯片的结构及原理 21.3 8250芯片的结构及原理 41.4 液晶显示模块 4第二章 GPS定位系统简介 52.1 GPS定位系统的基本原理 52.2 GPS模块的主要技术参数及其特点 62.3 NMEA-0183数据格式 6第三章 硬件连接电路 83.1 基于51单片机的GPS定位系统设计 83.2 GPS和单片机、LCD的接口连接电路 9第四章 软件设计 104.1 实训框图 104.2 实训步骤 114.3 实训结果: 11第五章 实验总结 12附录 13参考文献 17第一章

2、 51单片机概述1.1 单片机结构及原理图1-1是AT89C51单片机的基本组成功能框图。由图可见,在这一块芯片上,集成了一台微信和计算机的各个主要部分。其中主要有CPU、存储器、可编程I/O口、定时/计数器、串行口等,各部分通过内部总线相连。图中的P0、P1、P2、P3为4个可变长I/O口,TXD、RXD为串行口的输入、输出端,以上各部分通过内部总线相连。图1-1 AT89C51的基本组成功能框图下面介绍几个主要部件:1、中央处理器(CPU)中央处理器是单片机的最核心的部分,主要完成运算和控制功能,这一点与通用微处理器基本相同,只是它控制功能更强。80C51系列的CPU是一个字长为8位的中央

3、处理单元,它对数据的处理是按字节为单位进行的。2、数据存储器(内部RAM)数据存储器用于存放变化的数据。在80C51单片机中通常把控制与管理寄存器在逻辑上划分在内部RAM中,因为其地址与RAM是连续的。AT89C51中数据次年初七的地址空间为256个RAM单元,但其中能作为数据存储器供用户舒勇的仅有钱128个,后128个被阻焊用寄存器占用。3、程序存储器(内部ROM)程序存储器用于存放程序和固定的常数等。通常采用只读存储器,只读存储器有多种类型,在89系列单片机中全部采用闪存。4、定时/计数器定时/计数器用于实现定时和计数功能,AT89C51共有2个16位的定时/计数器。5、并行I/O口并行I

4、/O口主要用于实现与外部设备中数据的并行输入/输出,有些I/O口还具有其他多种功能。6、串行口AT89C51有一个UART全双工异步串行口,用以实现单片机和其他具有相应接口设备之间的异步串行数据传送,还有一个ISP全双工同步串行口,用以实现串行在线下载。7、时钟电路时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。8、中断系统中断系统的主要作用是对外部或内部的中断请求进行管理和处理。1.2 8255芯片的结构及原理目前已生产了多种可编程接口芯片,如,可编程芯片8155、8255、计数/定时器8253、可编程串行接口8250、可编程中断控制器8259等。8255作为主机与外设的连接芯片,必须提

5、供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0D7,用于8255与CPU传送8位数据。 (2

6、)地址总线AB:编号为A0A1,用于选择A、B、C口与控制寄存器。 (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。2)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0PA7,用于8255向外设输入输出8位并行数据。(2)B口:编号为PB0PB7,用于8255向外设输入输

7、出8位并行数据。(3)C口:编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3)控制器8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。8255A共有40个引脚,采用双列直插式封装,引脚分布图如下:图1-2 8255引脚分布图各引脚功能介绍:(1)数据总线:D0D7、PA0PA7、PB0PB7、PC0

8、PC7,此32条数据线均为三态双向数据线。D0D7与单片机数据总线连接,用来传送CPU与8255A之间的命令与数据信息,PA0PA7、PB0PB7、PC0PC7分别与A、B、C三个口相对应,以实现8255A与外设之间的数据传送。(2)控制线:RD、WR、RESET RD:读信号,低电平有效。当这个引脚输入为低电平,CPU对8255A进行读操作。WR:写信号,低电平有效。当这个引脚输入为低电平,CPU对8255A进行写操作。RESET:复位信号,高电平有效。当这个引脚输入为高电平,所有8255A内部寄存器都清零。(3)寻址线:CS、A0、A1CS:芯片选择线,低电平有效。当这个引脚输入为低电平,

9、表示芯片被选中。A1、A0:地址线,用来选择8255内部端口。1.3 8250芯片的结构及原理8250可编程接口芯片内部结构图:图1-3 8250芯片内部结构图1.4 液晶显示模块在单片机中,常用的显示器是LCD液晶显示器。LCD显示器功耗低,显示清晰度高。液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件英文名称叫“LCD Module”,简称“LCM”,中文一般称为“液晶显示模块”。液晶显示器件是一种高新技术的基础元器件,虽然其应用巳很广泛,但对很多人来说,使用、装配时仍感到困难。特别是点阵型液晶显示器件,使用者更是会感到无从下手特殊的连接方式

10、和所需的专用设备也非人人了解和具备,故此液晶显示器件的用户希望有人代劳,将液晶显示器件与控制、驱动集成电路装在一起,形成一个功能部件,用户只需用传统工艺即可将其装配成一个整机系统。第二章 GPS定位系统简介GPS卫星定位系统的前身是美军研制的一种“子午仪”导航卫星系统,GPS全球定位系统是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航GPS定位系统。经过20余年的研究实验,耗资300亿美元,到1994年3月,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到广泛的应用,在各个领域发挥

11、了极大的作用,已成为信时代不可缺少的一部分。各种GPS民用产品的开发,已是经济和社会发展的必然要求,其前景将会非常广阔和光明,尤其是在我国,通过这些年来对它认识不断加深,我国的GPS开发应用也一定会以科技力量推动经济和社会发展的一颗巨星,对我国的经济和社会的发展产生重大的影响。2.1 GPS定位系统的基本原理图2-1 GPS定位原理图GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间t,再加上接收机所接收到的卫星星历等其它数据可以确定以下四个方程

12、式。2.2 GPS模块定位流程1搜索可用卫星,接收卫星信号,与卫星信号同步,提取导航电文信息;2从导航电文中获取计算位置所需的信息,这些信息应该包括时钟信息和星历等数据;3计算卫星的准确位置,这包括计算卫星的高度和方位角,从而进行必要的对流层校正;4计算伪距,并进行电离层校正等;5重复上述过程,对所有可用卫星进行相应的计算;6进行其他必要的校正,例如根据卫星信号到达GPS接收机的时间,校正地球旋转所造成的卫星位置的偏差;7根据定位原理,计算出GPS接收机的初始位置,并将其转换成所需的坐标格式进行显示或输出;8加入闰秒和UTC(标准世界时)时间补偿计算当前精确的时间;9分析可用卫星的信息,计算最

13、好的DOP(Dilution of Precision),进行选星,并计算和修正GPS接收机的位置,给出GPS接收机的三维坐标和准确的时间信息。2.2 GPS模块的主要技术参数及其特点主要技术参数:(1)工作电压:3.55V直流。(2)接收灵敏度:-159dBm。(3)体积大小:25.425.47 mm。(4)模块重量:7克。(5)定位精度:3m (6)系统内存:4MB2.3 NMEA-0183数据格式NMEA-0183数据格式如下图:注意:加电后最长3s有数据输出。设定多个参数时,两个命令的发送时间间隔应在40ms以上。第三章 硬件连接电路3.1 基于51单片机的GPS定位系统设计(1)实训

14、要求此实训的工作要求是:在液晶屏上显示,接收到的GPS定位信息,只显示纬度、经度、高度、时间、定位有效信息。在实训中的核心器件是单片机和GPS器件,二者一起实现了单片机对GPS定位信息的采集。(2)实训原理GPS模块接收卫星的多颗卫星的定位信息,进行处理后按一定的格式输出串行数据,8250实现串并转换,通过总线与单片机通信。GPS接收模块默认设置输出为:(参照GPS接收模块文档)$PFST,NMEA,E003,4800在实验中需设置输出为:$PFST,NMEA,2000,即只输出$GPGGA格式,格式为:$GPGGA,hhmmss.dd,xxmm.dddd,yyymm.ddd,,v,ss,d.

15、d,h,h,M,g,g,M,a.a,xxxx*hhhhmmss.dd 世界协调时(UTC )hh:时;mm:分;ss:秒;dd:秒(小数部分)xxmm.dddd 纬度xx:度;mm:分;dddd:十进制分(小数部分) 北纬N/南纬Syyymm.dddd 经度yyy:度;mm:分;dddd:十进制分(小数部分) 东经E/西经WV 定位指示0:未定位 1:GPS 定位SS 使用到的卫星数量:012 颗d.d HDOP 水平方向定位精度阀值h.h 天线高度(相对于海平面)M NULLg.g NULLM NULLa.a NULLxxxx NULL*hh hh:校验和从GPGGA输出信息中提取实验中的数

16、据,显示在液晶屏上。3.2 GPS和单片机、LCD的接口连接电路1.GPS硬件连接原理图:GPS天线图3-1 GPS硬件连接原理图2.GPS和单片机、LCD的实物连接图:图3-2 GPS和单片机、LCD的实物连接图第四章 软件设计4.1 实训框图N图4-1软件主程序流程图4.2 实训步骤(1)实验连线:8250的片选CS50与CS1相连,或把CS50的跳线帽短接CS1端;8255的片选CS8255与CS0相连;PA0PA7分别与DB0DB7相连;PC0与REQ相连;PC7与BUSY相连。(2)运行实验程序GPS.ASM。(3)观察实验箱上液晶屏上GPS信息显示。4.3 实训结果:液晶屏分四行显

17、示:第一行纬度:LAT(纬度的缩写):+ 纬度值+ N/S 第二行经度:LONG(经度的缩写):+ 经度值+ E/W第三行高度:HIGH:高度值 + 高度单位M+ 定位有效A:0/1(1时有效)第四行时间:TIME:时分秒.秒的小数两位(国际时间)图4-2 GPS定位系统结果图第五章 实验总结时间过的很快,为期3天的单片机实训结束了。每次实训对我们来说都有很大的帮助,因为通过实训,我们自己动手操作,身临其境的对问题进行思考,对程序进行分析。这样更能帮助我们对单片机知识的掌握,和对汇编语言的理解。最近几次的不同科目的实训,我觉得还是单片机实训最有意思,能提起我们的好奇心,而且让我们觉得单片机与G

18、PS进行通信的技术非常神奇。小小GPS却有很强大的功能,再通过LCD液晶显示器,将GPS全球定位的结果显示出来。一开始,我们以为此次单片机实训又是类似之前的中断、定时器、串行口等一些实训那么简单,而且其实过程几乎一样,只不过改变了程序,加深我们对单片机程序的理解,但是这样仍会让我们觉得没有挑战,更激不起我们的好奇心。而此次实训却让我们非常的感叹。在程序中对GPS定位进行设置,一开始时只显示“LAT(纬度)”、“LONG(经度)”、“HIGH(高度)”、“TIME(时间)”,四个具体参数,可是这些词语貌似对GPS来说太简单了,而且对我们来说也有点遥远。通过老师的讲解,我们知道了大致的显示含义,对

19、GPS的工作原理也有了更深刻的了解。所以通过此次基于51单片机的GPS定位系统的设计,让我们更清楚的了解到GSP与单片机之间的通信的基本原理,单片机、GPS全球定位系统、LCD液晶显示器的工作原理及单片机、GPS全球定位系统、LCD液晶显示器这三者之间存在着微妙的通信连接关系。并通过LCD液晶显示器显示GPS接收的数据。实际上单片机CPU是先经过8255可编程芯片,最后再到LCD液晶显示器。此次实训让我们受益匪浅。附录GPS定位系统程序:#include #include #include #include #define uchar unsigned char#define CS0 0xcf

20、a0#define CS1 0xcfa8#define CS2 0xcfb0#define CS3 0xcfb8#define CS8255 CS0#define PORTA XBYTECS8255#define PORTB XBYTECS8255+1#define PORTC XBYTECS8255+2#define CTRL XBYTECS8255+3#define STOBE0 0x70#define STOBE1 0x71#define CS50 CS1#define ADDR1 XBYTECS50#define ADDR2 XBYTECS50+1#define INTR XBYTEC

21、S50+2#define LCR XBYTECS50+3#define MCR XBYTECS50+4#define LSR XBYTECS50+5#define MSR XBYTECS50+6#define LENGTH 100unsigned char xx=0,yy=0; unsigned char xdata gps_dataLENGTH;unsigned char xdata Disp_Data1 = LAT : LONG: HIGH: A: TIME: ;unsigned char xdata *p_gps=(unsigned char *)0x7000;code const uc

22、har Disp_Data0 = LAT : LONG: HIGH: A: TIME: ;code const uchar GPGGA = $GPGGA,;code const uchar GPS_config = $PUNV,CONFIG,00,0000,00,1000,4800,01*37rn;code const uchar Techshine = 欢迎光临北京精仪达盛科技有限公司;code const uchar Disp_Char1 = abcdefghijklmnopqrst-=;?/12345 67890+-*/!#$%&*()_+|?,./;:;void Init_8255()

23、;void Disp_LCD(unsigned char Data);void Word_Disp(unsigned char xx_data, unsigned char yy_data, unsigned char *word);void Byte1_Disp(unsigned char xx_data, unsigned char yy_data, unsigned char AS);void Byte2_Disp(unsigned char xx_data, unsigned char yy_data, unsigned char AS);void Dot_Disp(unsigned

24、char xx_data, unsigned char yy_data);void BDot_Disp(unsigned char xx_data, unsigned char yy_data,unsigned char BT);void CLS_Disp();void Up_Disp();void Down_Disp();void Left_Disp();void Right_Disp();void Delay_ms(unsigned int Data);void Init_8250(void);void Send_8250(unsigned char s_sbuf);unsigned ch

25、ar Rece_8250(void);int strindex(char *str,char *substr);void Init_8255() CTRL = 0x88; CTRL = STOBE0;void Disp_LCD(unsigned char Data) while ( (PORTC & 0x80) = 0x80 ) ; PORTA = Data; CTRL = STOBE1; while ( (PORTC & 0x80) != 0x80 ) ; CTRL = STOBE0;void Word_Disp(uchar xx_data, uchar yy_data, uchar *wo

26、rd) Disp_LCD(0xf0); Disp_LCD(xx_data); Disp_LCD(yy_data); Disp_LCD(*word) - 0xa0); Disp_LCD(*(word+1) - 0xa0);void Byte1_Disp(uchar xx_data, uchar yy_data, uchar AS) Disp_LCD(0xf1); Disp_LCD(xx_data); Disp_LCD(yy_data); Disp_LCD(AS);void Byte2_Disp(uchar xx_data, uchar yy_data, uchar AS) Disp_LCD(0x

27、f9); Disp_LCD(xx_data); Disp_LCD(yy_data); Disp_LCD(AS);void Dot_Disp(uchar xx_data, uchar yy_data) Disp_LCD(0xf2); Disp_LCD(xx_data); Disp_LCD(yy_data);void BDot_Disp(uchar xx_data, uchar yy_data,uchar BT) Disp_LCD(0xf3); Disp_LCD(xx_data); Disp_LCD(yy_data); Disp_LCD(BT);void CLS_Disp() Disp_LCD(0

28、xf4);void Up_Disp() Disp_LCD(0xf5);void Down_Disp() Disp_LCD(0xf6);void Left_Disp() Disp_LCD(0xf7);void Right_Disp() Disp_LCD(0xf8);void Delay_ms(unsigned int Data) uchar i = 248; while(Data-) i = 248; while(-i); void Init_8250(void) uchar i; LCR = 0x80; ADDR1 = 0x18; ADDR2 = 0x00; LCR = 0x03; ADDR2

29、 = 0x01; i = LSR; i = ADDR1; void Send_8250(uchar s_sbuf) while( !(LSR & 0x20) ) ; ADDR1 = s_sbuf;unsigned char Rece_8250(void) while( !(LSR & 0x01) ; return ADDR1;int strindex(char *str,char *substr) int end,i,j; end = strlen(str) - strlen(substr); if ( end 0 ) for ( i = 0; i = end; i+ ) for ( j = i; strj = substrj-i; j+ ) if ( substrj-i+1 = 0 ) return i; return -1;void main() unsigned char i=0,tmp=0; unsigned char *p=NULL; int result=-1; bit flag=0; Init_8255(); Init_8250(); CLS_Disp(); for (i=0; iLENGTH; i+) gps_datai = 0; fo

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1