基于AT89S52单片机的电子罗盘系统的设计与实现.docx
《基于AT89S52单片机的电子罗盘系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的电子罗盘系统的设计与实现.docx(31页珍藏版)》请在冰豆网上搜索。
基于AT89S52单片机的电子罗盘系统的设计与实现
本科生毕业论文(设计)
题目:
基于AT89S52单片机的电子罗盘系统的
设计与实现
学生姓名******
学号0804200230
指导教师******
二级学院信息学院
专业名称计算机科学与技术
班级0*计算机*班
20**年4月
声明及论文使用的授权
本人郑重声明所呈交的论文是我个人在导师的指导下独立完成的。
除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果。
论文作者签名:
年月日
本人同意浙江财经学院有关保留使用学位论文的规定,即:
学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以上网公布全部内容,可以采用影印、缩印或其他复制手段保存论文。
论文作者签名:
年月日
基于AT89S52单片机的电子罗盘系统的设计与实现
摘要:
随着汽车进入千家万户,但普通汽车不具备高端汽车内置的电子罗盘定向系统;而导航定向对于行车安全非常重要。
本文将介绍一种用于车载设备精确定向的电子罗盘系统。
首先介绍磁阻传感器测向原理,然后本系统采用三轴磁阻传感器HMC5883作为信号采集装置,实现自动定向的软硬件设计方法,接下来系统采用ATMEL的8位单片机AT89S52单片机为核心控制器,设定以正北为0º的一周。
单片机获取传感器信息,经过分析后通过液晶屏显示行驶方向,并实现了偏离固定方向区间行驶便产生报警的功能,同时分析了系统产生的误差。
关键词:
AT89S52单片机;HMC5883传感器;电子罗盘
electroniccompassorientationsystem basedon AT89S52
Abstract:
Nowadays,asautomobileisownedbynormalhouseholds,thenavigationsystemisaratherimportantpartforthetrafficsafety.However,anormalcardoesnothavethevehicleantennaautomaticorientationsystemasthehigh-endcar.Thisarticlewillintroduceamoreaccurateelectroniccompassorientationsystemwhichcanbeusedinnormalcars.FirstpartofthisarticleisabouttheapplicationofmagnetoresistivesensormeasurementprinciplewithheHMC58833-axismagnetoresistivesensorasasignalacquisitiondevice.Then,itadoptsATMEL8bitmicrocontrollerAT89S52MCUasthecorecontroller.Thiscontrollerissetto0digitsinnorth.Inthisway,thecontrollercanacquireandanalyzeinformationtoshowthedirectiononLCDscreenaswellasalertwhenthevehicleisoutofthedirection.Thisistoavoidsystemincidents.
Keywords:
AT89S52microcontroller;HMC5883sensor;electroniccompassorientationsystem
目录
1绪论1
1.1课题背景1
1.2国内外研究现状及发展趋势1
1.3本文主要研究内容和章节安排2
2系统分析与设计3
2.1电子罗盘测向原理介绍3
2.2系统主控系统的选择4
2.3单片机比较和选型5
2.4传感器的选择6
2.5显示屏的选择8
3硬件系统模块设计与实现9
3.1传感器模块9
3.2控制器模块9
3.3报警控制模块10
3.4显示输出模块11
3.5按键模块11
4软件系统设计与实现12
4.1主程序设计12
4.2传感器模块程序13
4.3报警控制模块程序17
5总结与展望22
致谢24
1绪论
1.1课题背景
电子罗盘系统在交通运输、探险勘测等定向领域有广阔的应用前景。
尽管目前GPS在导航、定位、定向方面有着广泛的应用,但由于其信号常被地形、地物遮挡,导致精度大大降低,甚至不能使用。
据有关资料统计,在高楼林立城区和植被茂密的林区,GPS信号的有效性仅为60%。
并且在静止的情况下,GPS也无法给出航向信息。
而电子罗盘系统则弥补这一不足,它采用地磁场的工作原理,无论何时何地磁场的水平分量永远指向地磁北极,所以环境适应性好,可以对GPS信号进行有效补偿,保证导航定向信息100%有效,即使是在GPS信号失锁后也能正常工作,做到“丢星不丢向”[2]。
同时随着汽车进入千家万户,但普通汽车不具备高端汽车内置的电子罗盘定向系统;而越来越多的人会选择自驾出游,当置于一个陌生的环境中,导航定向对于行车安全非常重要。
因此,开发出一种能低成本低功耗运行、便于携带、而且能完成精确定向的微系统就变得迫切需要,而本设计就是为了解决这个问题而产生的。
本设计系统基于单片机开发平台,选取磁阻传感器作为敏感元件,采用两轴设计和补偿设计方案,使用超低功耗控制器51单片机作为传感器数据计算方向的小型低功耗电子罗盘系统。
1.2国内外研究现状及发展趋势
电子罗盘系统是一种重要的导航工具,能实时提供移动物体的航向和姿态。
在国内外都具有一定的适用性,无论在民用还是军用领域。
随着半导体工艺的进步和手机操作系统的发展,集成了越来越多传感器的智能手机变得功能强大,很多手机上都实现了电子罗盘的功能。
而基于电子罗盘的应用(如Android的Skymap)在各个软件平台上也流行起来。
相对于其他导航手段而言,电子罗盘系统导航起步得比较晚。
在20世纪60年代中期,美国的E2systems公司提出了基于地磁异常场等值线匹配的MAGCOM(MagneticContourMatching)系统。
70年代获得测量数据后,系统进行了离线实验。
20世纪80年代初,瑞典的Lund学院对船只的地磁导航进行了实验验证,实验中将地磁强度的测量数据与地磁图进行人工比对,确定船只的位置,同时根据距离已知的两个磁传感器的输出时差,确定船只的速度。
美国目前已开发出地面和空中定位精度优于30m、水下定位精度优于500m的地磁导航系统,并计划用于提高飞航导弹和巡航鱼雷的命中率。
另外,美国在导弹试验方面已开始应用地磁信息,并利用E22飞机进行高空地磁数据测量。
NASAGod2dard空间中心和有关大学对水下地磁导航进行了研究,并进行了大量的地面试验。
国内有关地磁导航的研究还主要集中在仿真和预研阶段。
航天科工集团三院的李素敏等人运用平均绝对差法对地面所测量的地磁强度数据进行了匹配运算,分辨率能达到50m;西北工业大学的晏登洋等人利用地磁导航校正惯性导航的仿真实验取得了较高的精度。
由于GPS导航定位的不稳定性,而地磁大小和方向随地点(甚至随时间)而异,无论何地磁场的水平分量永远指向磁北,这是所有电子罗盘的制作基础,所以电子罗盘可以用于稳定的精确的汽车导航定向[3],电子罗盘系统的市场需求也在我国日趋明显,而且也初具规模。
其主要发展趋势概括如下:
(1)制定行业规范与产业标准
(2)专业分工和产业化
(3)与GPS技术结合,提高系统性能,实现定位一体化。
(4)以信息技术服务产业为牵动力,引发电子罗盘系统的新浪潮,应用于手机等新兴行业。
随着科技的进步,地磁技术的不断成熟,电子罗盘系统必定能在民用和军事上有更加长远的发展。
1.3本文主要研究内容和章节安排
本文主要是设计解决,如何在低成本条件下,高效、准确地确定行车方向,并且设定固定区间,偏离该区间就发出报警信号。
设计部分内容主要包括:
系统分析与设计,电子罗盘测向原理,对各种模块进行分析并选取;硬件系统模块设计与实现,搭建硬件设备;软件系统模块设计,程序流程原理介绍等。
2系统分析与设计
2
2.1电子罗盘测向原理介绍
磁场是一种看不见,而又摸不着的特殊物质,它具有波粒的辐射特性。
磁体周围存在磁场,磁体间的相互作用就是以磁场作为媒介的。
电流、运动电荷、磁体或变化电场周围空间存在的一种特殊形态的物质。
由于磁体的磁性来源于电流,电流是电荷的运动,因而概括地说,磁场是由运动电荷或电场的变化而产生的。
而地球本身及其周围空间存在着磁场,其主要部分是一个偶极场.地心磁偶极子轴线与地球表面的2个交点叫地磁极,地磁的南(北)极实际上是地心磁偶极子的北(南)极。
地磁极与地理极相近但不重合,二者夹角约为11.5º。
地磁场的强度为0.5至0.6高斯,其大小和方向随地点(甚至随时间)而异,无论何地磁场的水平分量永远指向磁北,这是所有电子罗盘的制作基础。
通过测量物体相对于地磁北的方位实现定向。
早期利用地磁北定向的是机械式指南针,随着数字技术的发展和磁传感器研制水平的提高,电子罗盘获得了较快发展。
电子罗盘通过测量地磁场矢量的3个分量,同时配合姿态角测量传感器测量自身的姿态,然后通过坐标变换计算出在大地坐标系下的方位,此大地坐标系以地磁北为参考,如果利用磁偏角进行修正,即可计算出以地理北为参考的方位[1]。
在电子罗盘导航定位中,Hx、Hy、Hz为地平坐标系下3个磁场强度,载体坐标系与水平坐标系两者关系如图2.1所示。
其中:
N~S表示地球南北极轴线;N′~S′表示磁南北极轴线;磁南北极与地球南北极两轴线的夹角称为磁偏角β;angle为载体前进方向和当地磁子午线的夹角[16]。
图2.1.罗盘系统任意姿态示意图
根据坐标投影关系以及测得的Hx,Hy,Hz,φ,θ,在没有罗差的情况下,折算到地球平面磁场强度Hx、Hy的计算公式为:
Hx=Hxcosφ+Hysinθsinφ-Hzcosθsinφ
(1)
Hy=Hycosθ+Hzsinθ
(2)
一旦求出Hx和Hy分量,就可计算罗盘系统前进方向与当地磁子午线的夹角angle:
angle=arctan(Hy/Hx)(3)
当考虑当地磁偏角时,航向角为:
α=angle+β(4)
每个地区的磁偏角β是一个固定值,以列表形式存入Flash中,根据GPS的信息选择,按式(4)补偿即可。
通过软件设置可使angle在0º~360º之间显示。
2.2系统主控系统的选择
在系统总体结构设计中,如何选取性价比最高的控制体系至关重要。
控制系统的种类很多,根据不同的应用场所和采用芯片的不同可以分为工控机控制、可编程控制器(PLC)控制、单片机控制等。
由于各种控制方案各有所长,现在有如下方案:
方案一:
工控机。
工控机[3]一方面继承了个人计算机丰富的软件资源,使其软件开发更加方便,可以采用高级语言编程,设计友好的工作界面,利用计算机强大的计算功能,编制复杂的软件;另外,其接口都是标准接口,易于与各系统之间进行通讯与连接。
另一方面又具有可靠性高、抗干扰能力强等优点,但其价格偏高。
对于中等规模的控制系统,为了加快系统的开发速度,可尽量选用现成的工控机。
方案二:
可编程控制逻辑器(PLC)。
可编程控制逻辑器[4]是早期的继电器逻辑控制系统与微型计算机技术相结合的产物。
具有可靠性高,编程容易,组合灵活,输入/输出功能模块齐全等优点,一般用于对可靠性要求高的场合。
对于有模拟量输入输出的场合,其价格比单片机明显偏高。
方案三:
单片机。
单片机[5]是把微型计算机主要部件都集成在一块芯片上,故可以把单片机看成是一个不带外部设备的微计算机。
由于单片机具有功能强、体积小、可靠性高、面向控制和价格低廉等优点,因而在工业、农业、国防、交通、民用消费品等各个领域得到了广泛的应用,有力地推动了各行业的技术改造和产品的更新换代。
随着微电子技术的不断发展,新型的单片机不断的出现,功能也越来越丰富。
尤其是新型的8位、16位单片机具有模数和数模转换、PCA等功能,就更有利于在控制系统中得到应用。
针对全方位跟踪传感器的控制系统,利用单片机具有如下特点:
[6]
(1)可靠性好。
芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于一般通用CPU,程序指令及常数、表格固化在ROM中不易破坏;多信号通道均在一个芯片内,故可靠性高。
(2)易扩展。
片内具有计算机正常运行所必须的部件。
芯片外部有许多供扩展用三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。
(3)控制功能强。
为了满足工业控制要求,一般单片机的指今系统中均有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。
且内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。
(4)成本低,易开发,随着其技术含量却不断提高,这为开发廉价的控制系统提供了可能;另外,单片机的应用已相当广泛,有许多可以借鉴的成功应用范例与大量的公用程序。
它适于构建简单、体积小的测控系统。
综上所述,单片机介于工业控制计算机和可编程控制器之间,它有较强的控制能力、低廉的成本。
在大范围跟踪传感器的控制系统中采用单片机方案既满足控制系统的工作需求,又可以节省成本。
因此单片机成为首选。
2.3单片机比较和选型
方案一:
采用MSP430作为系统控制器的CPU方案。
MSP430系列单片机[10]是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度。
方案二:
采用FPGA(现场可编程门列阵)[7]作为系统的控制器。
FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一快芯片上,减小了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展。
FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
但由于本设计对数据处理的速度要求不高,FPGA的高速处理优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作[4]。
方案三:
采用ATMEL公司的AT89S52作为系统控制器的CPU方案。
AT89S52是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,基于单片机对6个单元模块进行监测和控制实行环环想连,系统更加紧密且容易控制[8]。
同时还可提供以下标准功能:
128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
该单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制[5],并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
基于AT89S52功能完善,易于控制,技术新颖,本人拟定以AT89S52单片机作为系统控制器。
2.4传感器的选择
传感器是本系统信号采集的关键部件,因此传感器的选择变的尤为重要。
目前的电子罗盘传感器主要分为磁通门、磁阻式和霍尔元件三种。
磁通门传感器是由一套环绕磁芯的线圈组成,该磁芯配有励磁电路,能够提供低成本的磁场探测方法,但它们体积偏大、易碎、响应时间慢。
霍尔效应磁传感器的优点是体积小,重量轻,功耗小,价格便宜,接口电路简单,特别适用于强磁场的测量。
但是,它又有灵敏度低、噪声大、温度性能差等缺点。
虽然有些高灵敏度或采取了聚磁措施霍尔器件也能用于测量地磁场,但一般都是用于要求不高的场合。
磁阻传感器现在已经可以做成标准的集成芯片,并且产品也形成了系列。
而使用磁阻传感器的电子罗盘克服了磁通门罗盘的不足,具有体积小、重量轻、精度高、可靠性强、响应速度快等优点,是未来电子罗盘的发展方向。
所以选择磁阻传感器。
然而,磁阻传感器的类型多种多样,这里我根据需求,设计了如下三种方案:
方案一:
采用HMC1022作为本系统的传感器。
磁阻传感器HMC1022是Honeywell公司基于磁阻现象生产的高可靠性、高灵敏度的固态芯片。
由长而薄的镀膜合金(一种铁镍合金)薄膜制成磁阻敏感元件,采用标准的半导体工艺,将薄膜附着在硅片上,内部集成了2个惠斯通电桥,这2个电桥相互垂直,如图2.2所示。
同时在硅平面上制作了2个电流带,一个用来置位或复位输出的极性,另一个用来产生偏置磁场以补偿环境磁场。
它的测量范围为±600µT(地磁场通常为50µT~60µT,在其测量范围之内),可单电源工作,输出信号为弱电压值,在桥压为5V时,灵敏度和分辨力分别为0.01mV/V/µT和0.85µT。
图2.2.惠斯通电桥
方案二:
采用霍尼韦尔HMR3300作为本系统的传感器。
霍尼韦尔HMR3300拥有三轴磁场测量,两轴加速度传感器进行倾斜角补偿,通过中央处理器实时解算航向,可以在任何方向上提供精确的航向信息,具有补偿硬磁干扰,铁磁物体干扰和离散磁场的功能,输出校准后的高精度测量值,使得在极其恶劣的环境下也能提供准确的航向数据[7]。
另外其具有体积小、功耗低,可以将其安装固定在多种方向和位置以及其相对于TCM等系列罗盘较高的性价比的特点。
其组成框图如图2.3所示。
HMR3300工作电压范围大,能符合系统的初级电源+5V要求,其它各项参数能很好地符合例如无人机飞控系统等小型化及精度要求。
同时它的输出方式为串行输出,可选UART或者SPI串行总线通讯方式。
图2.3HMR3300电子罗盘的组成与测量
方案三:
采用HMC5883作为本系统的传感器HMC5883是霍尼韦尔公司最新推出的三轴数字罗盘传感器,专门为带有一个数字接口的低场磁传感器而设计,应用于诸如低成本罗盘和测磁学领域。
HMC5883的电路图如图2.4,传感器内置ASIC放大器,同时R5、R6为10C总线上拉电阻,DRDY为数据准备好中断,接控制器中断输入口。
电容C12、C14加上传感器片上ASIC电路中的H.电桥驱动电路可以产生电流脉冲,使片上的置位/复位电流带产生磁场给传感器去磁和极性翻转。
图2.4HMC5883传感器电路图
总的归纳HMC5883传感器与其他传感器相比较有以下优点:
1)数字量输出:
I2C数字量输出接口,设计使用方便。
2)尺寸小:
3x3x0.9mmLCC封装,适合大规模量产使用。
3)精度高:
1-2度,内置12位A/D,OFFSET,SET/RESET电路,不会出现磁饱和现象,不会有累加误差。
4)支持自动校准程序,简化使用步骤,终端产品使用非常方便。
5)内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。
6)功耗低:
供电电压1.8V,功耗睡眠模式--2.5微测量模式--0.6mA。
综上所述,上述的几种方案都可以满足系统设计的需求。
但是根据系统设计HMC5883更加符合条件。
因为它内置的测试电路,简单的数字输出,较高的效率,避免累加误差,而且成本相对较低。
2.5显示屏的选择
方案一:
采用7段数码管作为系统的输出显示。
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管模块化设计,安装维护方便,显示稳定,成本低,但是存在亮度一致性的问题。
方案二:
采用LCD液晶显示屏作为系统的输出显示。
LCD液晶显示主要特点有显示质量高、功率小、数字式接口等。
因此在本系统中,我选择了LCD1602A作为系统显示屏。
3硬件系统模块设计与实现
3.1传感器模块
HMC5883磁阻传感器电路如图3.1所示,图中HMC5883为数字接口三轴磁阻传感器,内置ASIC放大器,12位A/D转换器,12C总线输出。
采用4x4x1.3mm的LCC封装。
R5、R6为I2C总线上拉电阻,DRDY为数据准备好中断,接控制器中断输入口。
电容C12、C14加上传感器片上ASIC电路中的H-电桥驱动电路可以产生电流脉冲,使片上的置位/复位电流带产生磁场给传感器去磁和极性翻转。
图3.1HMC5883传感器电路
3.2控制器模块
该系统是由ATMEL89S52芯片构成单片机最小系统,(具体电路见图3.2)是帆板控制系统的核心部分,主要对各种信号及信息进行处理,并对电路进行控制。
单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成121。
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态。
我们采用按键复位电路。
按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平。
而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
单片机系统里都有晶振,全称叫晶体振荡器。
它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
ATMEL89S52使用11.0592MHz的晶体振荡器作为振荡源。
由于单片机内部带有振荡电路,所以外部只
要连接一个晶振和两个电容即可,电容容量一般在15pF至5opt之间。
电路中采用30Df的瓷片电容。
图3.2AT89S52处理器电路图
3.3报警控制模块
报警电路是本系统电路的核心部分之一。
若行车过程中偏离设定方向区间,侦测电路将得到的低电平有效的信号传给单片机(AT89S52),单片机即刻分析该报警信号的信号电平,按照指定的报警模式将报警信息传至声音报警电路。
详细电路图可参考图3.3。
图3.3报警控制模块电路图
3.4显示输出模块
电路中我们采用可以显示汉字字符的12864液晶屏,在电子罗盘系统中,由处理器处理数据后在液晶屏显示行驶方向,具体的电路可见图3.4.
图3.4显示输出模块电路图
3.5按键模块
总体按键设置比较简单,设计的四个按键的各自功能为:
第一个键实现复位功能,第二个是设置行驶方向区间,第三四键分别实现上翻和下翻,以及确定区间大小。
详细设计如图3.5。
图3.5按键模块电路图
4软件系统设计与实现
4.1主程序设计
软件设计流程图如下:
4.2传感器模块程序
voiddelay(unsignedintk);
voidInitLcd();
voidInit_HMC5883(void);//初始化5883
voidWriteDataLCM(uchardataW);
voidWriteCommandLCM(ucharCMD,ucharAttribc);
voidDisplayOneChar(ucharX,ucharY,ucharDData);
voidconversion(uinttemp_data);
voidSingle_Write_HMC5883(uchar