基于mega16智能小车gps导航系统设计_毕业设计(编辑修改稿)内容摘要:

d0。 (4) 晶片内建 200,000个卫星追踪运算器,大幅提高搜寻及运算卫星讯号能力。 (5) 内建 RTCM SC104 DGPS和 WASS/EGNOS解调器。 (6) 低耗电量 , 具备有省电模式( TricklePower)功能,以及在设定的时间才启动的定时定位( PushtoFix)功能。 (7) 支援 NMEA0183。 如图 314所示结构图, GPS模块只有 4个端口与单片机连接,其中 VCC、 GND为供电部分, TXD、 RXD为串行通信部分。 由于 C3470B属于独立模块,所以在系统原理图、 PCB中未加入其封装,而是采用从 PCB中的单片机串行口以及 VCC、 GND分别引出 4条线, 采用引线的方式与 GPS相连接。 GPS VCC C3470B RXD TXD GND VCC TXD AT89S52 RXD GND Mega16 GND图 314 GPS 模块 C3470B与单片机连接图 天线 铜陵学院毕业论文(设计) 9 第四章 软件设计 软件平台 AVR开发环境介绍 AVR的集成开发环境有很多,首当其冲的应该还是 IAR,为什么呢,因为当初 AVR 还在 ATMEL 胎中酝酿的时候, IAR 公司参与了 AVR 的设计,因此可以认为 IAR 有更为正统的血液,它最了解 AVR,它的编译器编出来的代码应该最优秀。 好比你生的孩子还是你最了解 —— 至少相当长一段时间是这样的。 事实上, IARfor AVR 确实展现了这个实力,它的功能确实最为强大,无论是源代码编写还是软件乃至硬件仿 真,编译出来的代码也十分优 秀。 但是事物总是相对存在的,优点有时就意味着缺点。 IAR 功能全面而强悍,代价就是它的软件界面比较复杂,设置选项多,网上的资料也比较少,最要命的是这个软件非常的贵,好吧你说你有破解版,但是破解文件一般并不通用,而且破解方法一般都稍显繁琐。 以上几条,对于新接触 AVR 的人来说,几乎是迈不过的坎。 AVR studio,官方出品,因为它本身不支持 C 语言,一般没有人用这个软件来做开发环境,一般我们只用它的仿真功能搭配其他 C 编译器来用。 WINAVR,又称 GCC AVR。 GCC AVR 应该是目 前使用率最高的 AVR 开发环境了,软件体积小,界面简单易用,教程资料很多,代码效率高,最重要的是,它是完全免费的。 但是它几乎没有仿真调试的功能。 所以使用 GCC AVR+AVR studio 搭建 AVR IDE。 WinAVR20200421 GCCAVR编译器, GCCAVR是一款免费的编译器,编译功能也挺强的。 总得来说还是一款很好的开发软件。 软件总体设计 系统软件设计包括两部分:一是:接收显示及发送命令程序软件设计流程图如图 41所示;二是:接送和发送及避障程序,实现智能小车导航避障功能,软件设 计流程图如图 42 所示。 图 41 显示主机程序框图 接收现在位置信息 显示目标经度、纬度及现在位子信息 输入目标经度、纬度 发送目标位置 初始化程序 肖云峰:基于 mega16 智能小车 GPS导航系统设计 10 N Y 图 42 执行主机程序框图 判断是否到达目标位置 接收现在位置信息 小车避障 初始化程序 发送现在位置信息 发送完成信息 铜陵学院毕业论文(设计) 11 第五章 系统实现及 测试 原理图及 PCB 绘制 该系统原理图设计采用 altium designed 设计原理图及 PCB,本章节叙述该系统怎样设计包括硬件及软件设计。 altium designed 简介 Altium Designer 是 Altium 公司 Protel 系列软件基于 Windows 平台的最新产品,是Altium 公司总结了多年的技术研发成果,是对 Protel 99 SE 以及 Protel DXP 不断修改、扩充新设计模块和多次升级完善后的产物。 Altium Designer 6 是完全一体化的电子产品开发系统下 的一个版本。 Altium Designer 是将设计流程、集体化 PCB 设计、可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起的电路设计系统。 原理图及 PCB 设计 由于本系统所涉及器件太多,原理图在第二章就分别列出在此就不再赘述,下面列出 PCB 图及 3DPCB 图,如图 5 52。 图 51 系统 PCB图 图 52 系统 PCB3D效果图 肖云峰:基于 mega16 智能小车 GPS导航系统设计 12 硬件焊接及组装 根据需要购置了所需材料,如图 5 54 所示。 按照电气要求进行组装完成的效果图如图 55 所示。 图 53 电路板及所需器件 图 54 小车底盘 图 55 完成后效果图 铜陵学院毕业论文(设计) 13 实际测试 该系统实际测试在铜陵学院内进行,测试如图 56,测试范围在图书馆及教学楼。 图 56 测试示意图 测试结果:发送 图书馆 教学楼 肖云峰:基于 mega16 智能小车 GPS导航系统设计 14 第六章 总结及致谢 在撰写本论文过程中遇到了很多困难也得到很多人的帮助,在此给予我帮助的同学老师表示对他们感谢,在撰写论文过程中我做了以下工作: 2020年 3月我选定论文课题为基于 mega16智能小车 GPS导航系统设计,我选定这个题目是因为未来汽车会朝向智能化方向发展,所以我打算用一个简单的模型模拟智能汽车导航系统,由于 AVR单片机我是第一次接触,我买了一块 mega16开发板,学习了 mega16各个模块的操作,深入了解了 mega16这款单片机,还有 GPS技术,也是我比较陌生的一个知识,我阅读了相关文献,为以后论文撰写奠定基础。 4月开始着手系统总体设计,绘制原理图及 PCB图,由于绘制原理图我以前使用过altium designed这款软件所以决定使用这款软件绘制原理图及 PCB图,在这个过程中我遇到的好 多困难,特别是 PCB图绘制,同样这次论文撰写我也学会了好多知识,明白了以前不明白的知识,例如:我在学习 PCB图绘制时老师说要将模拟地和数字地两个分开我一直不明白,这次论文撰写我明白了为什么及怎样分开,这个过程是最辛苦的也是同学老师给我最多的帮助的过程,在此我由衷表示对他们的感谢。 5月是对硬件电路的调试及软件的编写,我将我做好的 PCB板发到工厂做出一块样板,做好之后开始对硬件的安装和调试,焊接 PCB板时我使用到各种封装的电子器件,为此我请教了我们学校实验室丁老师,在她的悉心教导下我很快掌握了各种封装的电子 器件的焊接要领,焊接完毕,就是对 PCB板的测试,首先,使用万用表测试,测试有没有虚焊等问题。 幸运的是焊接很好没有问题,接下来就是软件的编写,我参考了书本及网上资料编写了各个模块的程序,同时学习了 AVR单片机软件开发平台;下面就是测试阶段,我选择的测试地点是图书馆到教学楼,测试很成功这是是我欣慰。 转眼间论文的撰写就要结束,也就意味着大学学习即将结束,感谢四年给我帮助的老师和同学,由于我的学术水平有限,有不妥之处希望指出。 铜陵学院毕业论文(设计) 15 参考文献 [1] 李广弟等 . 单片机基础 [M]. 北京航空航天出版社, 2020. [2] 王东峰等 . 单片机 C 语言应用 100 例 [M]. 电子工业出版社, 2020. [3] 陈海宴 .51 单片机原理及应用 [M]. 北京航空航天大学出版社, 2020. [4] 刘守义等 . 单片机技术基础 [M]. 西安电子科技大学出版社, 2020. [5] 钟富昭等 .8051 单片机典型模块设计与应用 [M]. 人民邮电出版社, 2020. [6] 李平等 . 单片机入门与开发 [M]. 机械工业出版社, 2020. [ 7 ] 朱华统 . 常用大地坐标系及其变换 . 北京 : 解放军出版社 ,1990 [ 8 ] 李英冰 , 徐绍铨 . 利用 RTK 进行数字化测图的经验总结 . 全球定位系统 ,2020[5] [ 9 ] 金继读 , 詹家民 , 吴庆忠 .GPS RTK 配合全站仪联合进行数字化测图 . 全球定位系统 ,2020[6] [ 10 ] 靳海亮,韩奎峰,周兴东 . 矿区地形图测绘中 RTK 技术的应用 . 测绘通报 ,2020[10] [ 11 ] 乔月娥 , 詹家民 .RT K 联合全站仪实现官山镇 1 : 1000 地形图的测绘 . 现代测绘 ,2020[6] [ 12 ] 张书华 , 刘 绍堂 .RTK 技术在郑东新区测图中的应用 . 测绘与空间地理信息 ,2020[5] [1 3 ] 张晓明,高旭光 . 浅谈 GPS RTK 测量技术的应用 . 合肥工业大学学报 ,2020[10] 肖云峰:基于 mega16 智能小车 GPS导航系统设计 16 附录 论文部分程序 /**************************************************************************************** 函数名: void delay(unit i) 函数功能:延时函数 ****************************************************************************************/ void delay(unit i) { while(i)。 } /*************************************************************************************** 函数名: void Read_busy() 函数功能:读忙函数 ****************************************************************************************/ void Read_busy() { uchar temp。 uchar flag=1。 while(flag==1) { DDRA=0X00。 //A 口设为输入,准备读数据 //PINA=0XFF。 //C 口设为输出 delay(10)。 RS_L。 //RS=0 delay(10)。 RW_H。 //RW=1 delay(10)。 EN_H。 //EN=1 delay(100)。 temp = PINA。 //读端口 A delay(100)。 DDRA=0XFF。 //端口 A 改为 delay(10)。 EN_L。 //EN=0 delay(10)。 if(tempamp。 0x80) flag = 0。 } } /*************************************************************************************** 函数名: vo。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。