电子指南针设计.doc
S.K东莞理工学院城市学院本 科 毕 业 论 文毕业论文题目: 电子指南针设计 学 生 姓 名: 学 号: 系 别: 计算机与信息科学系 专 业 班 级: 指导教师姓名及职称: 起 止 时 间: 2012 年 2 月 2012 年 5 月 摘 要随着科技发展,现代人愈发追求高效、快捷。传统的指南针所采用的是磁化指针和方位盘的组合方式,整个指南针系统从现实使用的角度上看,在指示灵敏度、便携性上都存在着一定的不足。而本次的设计采用专用的磁场传感器结合高速微控制器(MCU)的电子指南针能有效解决这些问题。本文所设计的系统,通过采用磁阻(GMR)传感器采集某一方向磁场强度后,传送至MCU控制器对其数据进行处理并判断对应角度的结果,最后通过LCD显示屏显示出来。该系统通过实际测试,指南针模块精度达到1°,能够在LCD上显示当前方位角度。关键词: 电子指南针 单片机 磁场传感器ABSTRACTWith the development of science and technology, modern people are chasing the convenience and efficiency. The traditional compass is the combination of the magnetized pointer and orientation, in terms of the practical use of the compass system, there are certain disadvantages in the instructions sensitivity and convenience. And this decide can solve these problems by the using the special design magnetic field sensor combined with high speed micro controller (MCU) electronic compass. The design of the system, will collect a certain direction of the magnetic intensity by using the magnetic resistance (GMR) sensors, transmit to the MCU controller which can deal with the data processing and judge the results of the corresponding Angle, and finally display it through the LCD screen. After the practical test, a compass module accuracy can reach 1 °, and display on the current position of the LCD screen. Keywords: Electronic compass MCU Magnetic sensors目 录BACK PLACE1. 课题绪论11.1. 课题背景11.2. 课题目的11.3. 课题的意义21.4. 设计内容22. 模块方案的选择42.1. 方案一:PLC控制42.2. 方案二:51系列单片机43. 系统硬件设计63.1. 系统设计原理63.2. 系统总体结构63.3. 模块电路设计74. 系统软件设计164.1. 系统主程序164.2. 信号采集程序164.3. 信号显示程序184.4. 越境提示程序195. 数据测试与结果分析206. 总结21致谢23参考文献24附录25系统总电路25系统程序26实物图37电子指南针设计1. 课题绪论1.1. 课题背景作为我国四大发明之一的指南针,古称“司南”。它代表着我国劳动人民在长期生活实践中对物体磁性认识的结果,更象征着我国劳动人民的智慧。由于生产劳动,人们发现了磁矿石,并开始了对磁性质的了解。人们首先发现了磁石引铁的性质。后来又发现了磁石的指向性。经过多方的实验和研究,终于发明了可以实用的指南针1。追溯指南针的始祖,它大约出现在战国时期。其样子像只水勺,用天然磁石磨制面成,勺底为球面体,勺呈椭圆状,勺柄通体渐渐缩成柱状。为了确定方向,还配有一个“地盘”,它是铜质或涂漆木制盘,中央是平滑圆槽。当它静止的时候,勺柄就会指向南方,故古人称它为“司南”。司南,整个系统由青铜盘和天然磁体制成的磁勺组成,青铜盘上刻有二十四向。指南针作为四大发明之一,无疑让我们国人引以为傲,但随社会的发展与进步,司南的许多缺陷也越来越明显,如,天然磁体资源有限并不易找到,在后期加工时又容易因为打击、受热等工序而失磁。也是因为这样,司南的磁性比较弱,而通过接触旋转而指明方向,需要它与地盘接触处要非常光滑,否则会因转动摩擦阻力过大,而难于旋转,影响指南效果。再者,司南有一定的体积和重量,携带很不方便,使得司南长期未得到广泛应用。到近代,因工艺技术的发展,指南针体积逐渐减小,使得指南针的应用范围更是越来越广,军事、生产、日常生活、地形测量等方面,特别是航海上。但是,磁石式的指南针仍存在不足,如,易失磁性、制作工程繁琐、精确度不高等问题。1.2. 课题目的随着人们对指南针原理认识的不断深入,指南针也由先前笨重的“司南”发展到现在的便携式的指南针。但其基本构造是没有改变的,都是属于机械的指针式,其指示的机械结构基本上没有改变,都是利用某种支撑使得磁针能够受到地磁场的影响而自由的旋转。由于机械的先天因素导致了指针式指南针在便携性、灵敏度、精度以及使用寿命上都有一定的限制。由于国内外电子技术的飞速发展,特别是在磁传感器和专用芯片上的发展使能指南针的基本实现机理有了质的改变,不再是机械结构而采用了磁场传感器和专用处理器对磁场进行测量和处理后指示方向,这就是当前应用较为广泛的电子式指南针。电子指南针将替代旧的针式指南针或罗盘指南针,因为电子指南针全采用固态的元件,还可以简单地和其他电子系统接口。本次课题的电子指南针大部分功能是由单片机处理实现的。由于单片机具有体积小,控制功能灵活,造价低等优点,因此,迎合当今时代对指南针的迫切应用需求,设计出基于单片机的电子指南针系统就具有很强的实用性。1.3. 课题的意义本次毕业设计选择“基于单片机的电子指南针的设计”是为了更好地学习和研究51系列单片机电路系统设计的相关知识,掌握基本应用电路设计的方法和技巧。如今,电子指南针已经受到普及运用,其功能也越来越多。而本设计针对电子指南针的各个功能部件对电子指南针的关键部分做了详细的研究。电子指南针系统是一个典型的单片机系统,了解其工作原理及其信号处理流程有利于研究更加复杂的嵌入式系统,特别是系统中来自国外的磁传感器及其信号的采集芯片更是有利于研究磁场传感器的实现机理,以便将此技术应用于其他领域。同时为能将课堂与书本中学习到的理论知识运用到实践中,设计出以系统简洁为目标的电子指南针系统方案,并能深入了解各种电子元器件的使用方法和基本用途,能够灵活迅速地判断电路中出现的故障;学会独立设计电路,积累更多的设计经验,并加强训练焊接的能力和技巧,同时在实践过程中锻炼查阅、归纳和整理各种参考资料的能力,提高理论联系实际的能力。通过亲自设计课题来训练我们大学生应用所学专业知识解决实际工程和实践问题的技能,巩固所学专业知识,拓宽知识面;激发我们大学生的创新意识,培养大学生实践动手能力和综合科研开发能力。1.4. 设计内容本文(设计)是“基于单片机的电子指南针的设计”,系统以STC89C52单片机为控制核心,操纵磁场传感器检测所处环境的磁场。系统核心技术是由单片机通过HMC5883磁场传感器(3轴罗盘)检测环境中得磁场强度的数据对身处磁场进行判断,与程序设定的数据进行角度换算,通过磁场变化来测量所处方向的偏差,实现对指南针的判别方向功能,达到简化电子指南针系统的目的。2. 模块方案的选择2.1. 方案一:PLC控制采用可编程逻辑系统PLC控制。PLC是一种数字式运算操作的电子系统,集成度高,工作稳定可靠,且外围接口多,编程方便,用户在硬件方面的设计工作只是确定PLC的硬件配置和I/O的外部接线即可,是专为工业环境下的系统应用而设计的。它采用可编程序的存储器,用来在其内部存贮执行逻辑运算、顺序控制、定时、计数和算术等操作指令,并通过数字式、模拟式的输入输出,控制各种类型的机械或生产过程2。但其造价昂贵,大批量生产费用很高,不适用于本设计电子指南针。故不选用此方案。2.2. 方案二:51系列单片机51系列单片机的优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器,它能进行位操作。它不仅能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H2FH,它既可作字节处理,也可作位处理,使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理,只需用一条位操作指令即可。51系列的I/O脚的设置和使用也非常简单,当引脚为低电平时,吸入电流可达20mA,具有一定的驱动能力。BACK本次设计的电子指南针,出于实用角度,设计目的在于要求体积小,并且功能完备,因此要求控制器体积小,以便能够在运用过程中实现便携性。51系列单片机具有体积小、编程灵活、外设多样、易于扩展等优点,可以实现多种控制功能,广泛地应用于各种电路控制系统中。由于51系列单片机技术成熟,加上其多功能,低功耗等特点,能满足不同系统的应用需要。相比之下,51系列单片机最大的优点就是生产成本低,市售价格便宜,操作简单,适用于小型电路产品开发,方便大批量生产以其为核心的设备,且都能满足电路系统的要求3。综上所述,本次设计采用51系列的STC89C52单片机作为主控芯片。3. 系统硬件设计3.1. 系统设计原理地球的磁场强度大约为0.5-0.6高斯,并且具有一个平行于地球表面的成份,它始终指向磁北。这是信号采集模块的基础,地球磁场可用图3.1中所示的双极模型来模拟表示。图3.1 地球磁场与真北模拟图北半球中地球磁场向下指向北方,在赤道处它水平指向北方,并且在南半球中向上指向北方。在任何情况下,地球磁场的方向始终指向磁北。而我们要应用的,正是这磁场中平行于地球表面的分量4。在本设计的信号采集中,我们关键完成两个步骤:1)确定地球磁场的水平分量;2)纠正磁偏角。在本设计中,我们采用磁阻传感器来完成设计系统。磁罗盘通过测量地磁场水平方向分量确定磁北极方向并推算出其他方向。当罗盘水平放置时,传感器坐标系的X、Y轴在水平面内,X轴为前进方向,Y轴垂直于X轴向右,Z轴沿重力方向向下,从磁北方向顺时针到X轴的夹角即为方位角。地球磁场分量见下图3.2。图3.2 X、Y、Z坐标中的地球磁场分量3.2. 系统总体结构本系统为电子指南针的控制设计。电子指南针系统由主控制器、按键、磁场传感器、方位显示等几大模块组成,由程序控制实现方位测量的磁场感应与角度换算。系统组成结构如图3.3所示。BACKMCULCD显示屏开关控制三轴磁阻输入控制越境提示图3.3 电子指南针系统组成本系统实现了对身处方位的方向的测量。系统可分为四个模块:电源模块、主控芯片模块、信号采集模块、数据输出模块。整个系统中前端的磁阻传感器负责测量地磁场的大小并将磁场的变化转化为微弱的电流的变化,专用的磁场测量芯片负责把磁阻传感器变化的电流(模拟量)转换成微控制器可以识别的数字量然后通过芯片内部的I2C总线上传给微控制器。微控制器将表征当前磁场大小的数字量按照方位进行归一化等处理后通过直观的LCD进行方位显示5。整个系统中只使用小部分I/O口,预留了部分I/O接口,使整个系统功能得到进一步的扩展(如,添置GPS全球定位功能等)。3.3. 模块电路设计3.3.1. 电源设计方案一:电源模块是为整个电路系统提供能源和动力的重要保证。一般的直流稳压电源由整流电路,滤波电路和稳压电路等几部分组成。整流电路采用4007二极管整流桥对正弦波进行全波整流。滤波电路为滤除高次谐波,让电流波形基本平稳。稳压电路采用78系列的三端稳压管以保证输出更加稳定的直流波形。稳压电源工作原理图如图3.4所示。图3.4 稳压电源工作原理示意图用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜6。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。而本设计所使用的7805即输出电压为正5V。图3.5 7805引脚图本机电源采用输出+5V和+3.3V,分别用于提供电子电路工作电源和磁感电阻芯片驱动电源。先使用交流变压器将220V市电降压至15V,经过二极管整流桥整流、电容滤波和稳压管稳压,能输出稳定的直流5V和3.3V电压。驱动单相交流电机的电源是从220V电源线引入控制电机的电磁继电器结点,以实现电机动作的控制。电源模块的电路原理图如图3.6所示。图3.6 稳压电源模块方案二:鉴于本设计电子指南针主要应用于户外,故补充设计携带性较强的电源系统,基于携带方便,方案二电源选用干电池,生活中最为常见的1.5V干电池,通过串联4节干电池获得6V直流电源,然后使用电阻串联分压,分别产生5V及3.3V电源。电源控制:本设计系统基于实际实用考虑,电子指南针工作不为24小时,故加入电源控制系统,使用开关串联在5V电压输入与系统VCC线路中,在开关闭合时,系统正常工作并有发光二极管LED点亮提示。图3.7 电源控制电路3.3.2. 主控芯片电路设计本设计使用STC89C52作为主控芯片,它是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口为8位(8根引脚),共32根。芯片的封装与引脚排列如图3.8所示。STC89C52主要功能如表3.1所示。表3.1 STC89C52主要功能兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能图3.8 STC89C52引脚排列与引脚功能系统控制使用的STC89C52单片机,时钟晶振使用12MHz,并设计有上电自动复位和按键手动复位电路。RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期,即二个机器周期以上。若使用频率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。上电自动复位是通过外部复位电路的电容充电来实现的。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即单片机接通电源就成了系统的复位初始化7。STC89C52在系统中的工作电路如图3.9所示。图3.9 STC89C52电路原理图单片机的按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。由于电平复位电路简单易于实现且能满足系统工作要求,本次设计采用按键电平复位电路。单片机的P0口用于LCD数据的输出;P1.0,P1.1口为控制磁场采集模块的SCL(IIC时钟)、SDA(IIC数据)的控制信号;P2.0、P2.1、P2.2口作为LCD显示屏的读写使能控制;P3口以及其余搁置,用于补充设计系统的功能拓展。3.3.3. 信号采集模块磁场感应模块,根据查阅书籍与网络,目前应用最为广泛的有KMZ52以及HMC5833L两款磁感。根据对两款模块的学习,发现KMZ52实际应用外围应用电路比较复杂,不利于本次设计目的,故放弃。信号采集模块采用HMC5883(三轴数字罗盘),能够为整个设计系统节省体积,有效提高系统的便携性8。霍尼韦尔HMC5883L是一种表面贴装的高集成模块,并带有数字接口的弱磁场传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L包括最先进的高分辨率HMC118X系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在1°2°的12位模数转换器,简易的IIC系列总线接口9。其内部原理如下:图3.10 STC89C52电路原理图通过三个磁阻(AMR)分别测得环境磁场X、Y、Z轴数据后,经过多路复用器(MUX)及模拟信号处理(ANALOG模块)进行AD转换,最后将数据较由CONTROL模块结合OFF SET(补偿电路)进行数据处理并最后使用IIC协议输出测量数据9。HMC5883L采用霍尼韦尔各向异性磁阻(AMR)技术,具有在轴向高灵敏度的线性高精度的特点。传感器带有的对于正交轴低敏感行得固相结构能用于测量地球磁场的方向和大小,起测量范围从毫高斯到8高斯。带有16引脚,功能和特性均合适用于本次设计并有利于设计目的的达成。其引脚图及功能如下表3.2。表3.2 HMC5883L引脚功能图3.10 HMC5883L引脚图及实物图 信号采集模块HMC5883的电路电路图如图3.11所示。R1、R2为IIC总线上拉电阻,DRDY为数据准备好中断,可接控制器中断输入口。电容C3、C4加上传感器片上ASIC电路中得H-电桥驱动电路可以产生电流脉冲,使偏上的置位/复位电流带产生磁场给传感器去磁和极性翻转。图3.11 信号采集模块HMC5883电路图3.3.4. LCD显示模块LCD 液晶显示器是Liquid Crystal Display 的简称。本次设计是用1602LCD,16*2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。该LCD体积小、工作电压低,非常适合于电池供电的便携式设备。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶10。其引脚功能如下表3.3:表3.3 LCD1602引脚功能引脚名称描述1VSS为电源地2VDD接5V电源正极3V0液晶显示器对比度调整端4RS寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器5RW为读写信号线,高电平进行读操作,低电平进行写操作 6E(或EN)使能(enable)端714D0D78位双向数据端15A脚背光正极16K脚背光负极图3.12 LCD1602实物图(引脚由左至右为1-16)RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器,与P2.0对接。 RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作,与P2.1对接。E(或EN)端为使能(enable)端,与P2.2对接。V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(通过一个10K的电位器调整对比度)。 D0D7为8位双向数据端,与P0口对接。图3.13 LCD显示模块电路3.3.5. 越境提示模块本设计预留I/O口较多,可用于不同功能的设计,如,GPS全球定位、前进方向锁定等。本设计加入前进方向锁定功能(越境提示),其用途在于户外实用指南针时,能够定位锁定前进方向,对当下前进方向与设定方向进行比较,出现一定偏差(本系统采用±10°)时,通过蜂鸣器及显示屏提醒。该功能模块主要由两大部分组成:一、按键输入,共计2个按键,分别作为模式转换按钮及方向设置按钮。二、蜂鸣器输出,用于提示前进方向超过设定范围。本模块主要使用元件为蜂鸣器。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。图3.14 蜂鸣器(右端为正、左端为负)蜂鸣器的驱动需要较大的电流,本系统使用的51单片机STC89C52的I/O口高电平时,电流不足驱动蜂鸣器,故需要用到三极管进行信号放大,进而正常驱动蜂鸣器。其设计电路如下图3.15。图3.15 功能拓展模块电路4. 系统软件设计4.1. 系统主程序根据硬件设计要求,控制主程序流程如图4.1所示。系统开始运作后,单片机上电进行程序的初始化操作,对输入设备(HMC5883L)及输出设备(LCD1602)进行数据初始化。初始化完成后,启动磁场检测模块,并开始读取数据,通过主芯片进行数据计算,计算出当前方位的角度并发送角度到LCD1602显示,然后判别工作模式,分别对不同工作模式,执行对应动作。模式一,计算后输出身处方位方向;模式二,实时读取身处角度与设定范围的是否出现偏差,并发送警告信号。最后实现本系统“指南针”的功能。开始初始化发送读取信号角度换算发送显示信号判别模式设置前进角度计算角度范围发送警号变量发送显示信号读取角度数据计算角度方位发送显示信号模式二模式一图4.1 主程序流程图4.2. 信号采集程序信号采集模块由HMC5883L负责,模块通过初始化后,进入待命状态,当获取读取信号后,调用HMC5883_SendByte(SlaveAddress)(发送设备地址+写信号)以及HMC5883_SendByte(0x03)(发送存储单元地址,从0x32开始)两个函数,开始对磁阻所采集的信号对应的地址进行采集并存储到BUF上,进而发送到主控芯片上。具体流程及核心程序如下: HMC5883_SendByte(SlaveAddress); /发送设备地址+写信号 HMC5883_SendByte(0x03); /发送存储单元地址,从0x32开始HMC5883_Start(); /起始信号 HMC5883_SendByte(SlaveAddress+1); /发送设备地址+读信号 for (i=0; i<6; i+) /连续读取6个地址数据,存储中BUF BUFi = HMC5883_RecvByte(); /BUF0存储0x32地址中的数据 if (i = 5) HMC5883_SendACK(1); /最后一个数据需要回NOACK else HMC5883_SendACK(0); /回应ACK HMC5883_Stop(); /停止信号等待读取信号发送地址与读信号存储地址数据至BUF开始初始化读取地址数据图4.2 信号采集流程图4.3. 信号显示程序信号显示程序由LCD1602负责,模块通过初始化后,进入待命状态,当获取显示信号后,根据内设驱动程序开始对主控芯片所发送的数据进行判别,进而显示我们需要的数据到屏幕上。显示屏驱动及核心程序,如下:void WriteCommandLCM(uchar CMD,uchar Attribc)if(Attribc) WaitForEnable();LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;void WriteDataLCM(uchar dataW)WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;void DisplayOneChar(uchar X,uchar Y,uchar DData)Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);开始初始化等待显示信号辨别显示命令显示数据图4.3 数据显示流程图4.4. 越境提示程序越境提示模块,主要用于判别前进方向是否在设定范围之内。本功能的运作,设计3个变量,2个控制量(工作模式选取及设置前进范围),1个输出量(蜂鸣器驱动信号)。该功能主要由主控芯片完成。系统在获取设定值后,将在LCD1602上显示,并将对目前身处角度与设定值对比,当超出设定值±10°时,驱动蜂鸣器,作出警告,并在屏幕右下方提示!。开始初始化等待工作信号设置判断角度发送显示信号是否超范围警告变量置低驱动蜂鸣电路发送显示信号警告变量置高发送显示信号是否图4.3 功能拓展(前进方向锁定)流程图5. 数据测试与结果分析本设计为测量方位工具,为验证本设计系统的测量精度,在设计调试完成后,对本设计进行了精度测试。具体方法为:使用另一指南针测得角度作为参照值。记录如下数据:表5.1 测量数据表测量角度参照角度误差测量角度参照角度误差0.400.4179.9180-0.130.2300.2210.12100.160.7600.7240.72400.790.8900.8270.62700.6119.2120-0.8300.33000.3150.51500.5330.83300.8通过以上数据记录,我们可以获得,本设计系统在实际运用中,仍会出现测量角度误差,但是误差数据明显较小,计算得:平均误差为0.5,最大误差为0.8,故本系统测量精度在1°内。误差的存在主要因为本系统设计中未能成功设计抗干扰功能,系统工作中,因为磁阻周边的器件在工作过程中难免产生一些磁场干扰,而误差主要就是由此产生的。测量方法截图如下:图5.1 数据测量过程(左为设计系统读数、右为Iphone指南针软件示数)6. 总结本课题采用STC89C52单片机对电子指南针的设计系统进行整体统筹,基于电子指南针的实际应用,本系统并不存在过多的控制功能以及人机对话功能,本系统顺利完成测量角度功能,在使用者正面北方时,系统角度显示为0并能够本显示身处方位,如0度对应“north”,本设计系统的特点有:1. 整体系统结构简洁,模块精简,本次系统设计不考虑电源系统的情况下,使用的模块仅有3块,HMC5883L的磁场信号采集、STC89C52的数据处理、LCD1602的信息显示。这使得电子指南针能在户外使用,达到本次设计目的的要求。2. 功能完善,测量准确度高,本次系统所采用的磁阻为HMC118X系列磁阻传感器,具有较高水平的测量精度并自带有自动消磁、偏差校准等功能,提高精确度的同时,也大幅度减少设计系统的外围电路与整体体积。3. 系统开放性强,信号采集模块因使用IIC协议的缘故,只使用STC89C52的2个I/O口与显示系统7个数据I/O与3个功能I/O,使得系统有较充足的I/O用于功能的拓展,使用者可根据自身使用需要加入功能(如,GPS,时间显示等)。4. 功能拓展实用性强,本系统所拓展的功能为前进方向锁定功能。能够为使用者使用时,提供大大的便捷性,减少旧时指南针在使用时,不能兼顾前进视野的弊端。5. 系统硬件采用单片机STC89C52进行控制,工作模块只需添加HM5833L与LCD1602模块,使系统的搭建既经济又实用。在本课题的设计过程中,也出现了不少问题。如刚开始确定题目后,在查阅电子指南针资料时,逐渐了解到指南针的原理,开拓了自身不少课外知识。联系到课程上学习过的传感器,我确定了要使用磁阻感应器来搭建系统。但是目前市场上存在的AMR款式实在有限,我第一个选取的方案是采用KMZ52,但是其外围电路需要比较庞大,这样一来,就让精简系统,提高设计实用性的意义变得难以实现,同时磁阻感应器应受磁场变化的影响,学习过物理的我们都知道电会生磁,我们必须要考虑消磁如何实现。种种的问题,让设计一度停滞不前。功夫不负有心人,在四方求教的时候,获知一种新型芯片,也就是本设计所采用的HMC5883L非常适用于本次设计,价格也比较低廉。但是伴随问题还是存在的,该芯片使用的是IIC协议传输数据,对于陌生的我,实在是一种考验,经过理论分析与学习,终于摸索出使用思路,并成功编程让芯片工作起来,HMC5883L的使用给设计和实物调试带来极大方便。理论上,我们制作设计系统实物前,应使用软件仿真,但是鉴于信号采集模块是使用IIC协议传输,让我的软件仿真无法实现。所以致使我只能通过实物来调试。跳过软件仿真,进而直接制作实物需要非常大的勇气,所以我购买了许多元件回来,只为保证硬件所产生的问题,能够及时发现,避免重复用功。接着是在焊接第一块通用板时,由于太久没有接触焊接工作,误接线的同时,烧坏了一块电容。除了焊接的硬功夫外,硬件也给我们带来了不少的问题,如HMC5883L不能承受高温,否则容易损坏,一开始本着速焊速决,可以避免高温损坏的思想去焊接电路,结果报废了2块HMC5883L。最后在同学的启发下,使用插排来替代HMC5883L的电路位置,然后在焊接完成后,再将HMC5883L插入插排中使用,进而完美的解决了这个问题。单片机的核心,除了外围电路,系统模块的搭建要无误之外,系统程序的编写更是一个重要步骤。它体现了我们对电路原理的了解,更直接决定了我们的系统能否正常运作,达到预期效果。整个设计过程,编程无疑消耗了我最多的时间,从算法的设置,到程序的推敲,每一步都考验着我们的耐心。中间出现过一个比较大失误的问题,LCD1602不能显示中文符号,所以最后只能将中文字符转为英文字符输出。这也是本次设计中,比较遗憾的地方。致 谢本次毕业设计课题经历了两个月的时间,通过自身的努力与坚持,在在指导老师张黎红老师的亲切关怀和悉心指导下,终于要步入尾声了。作为一名本科生,我们所能在书本上学习到的专业知识确实不多,能接触到的现代技术更是少之又少,而毕业设计的开展,无疑帮助我们将要步入社会的同学们开拓自身视野,发掘自身兴趣与潜力,令我们明白到,一个课题或者一个事情,从零开始,我们应该如何去部署、如何去完成。而作为一个本科生的毕业论文,由于我们经验的匮乏,避免不了有许多地方考虑不全,也是因为这点我们在进步着,在导师的督促指导、在同学们的支持和帮助下,我们共同进步着。回忆起毕业设计的每个阶段,从一开始懵懂地选题到鉴定地查阅资料,以至中期的论文提纲确立、硬件电路设计以及后期论文格式的调整等各个环节里面,张黎红老师都给予了悉心指导与帮助。她为我们制定了进度时间表,让我们明确什么时候该做什么,她总是谦逊地说许多知识她也掌握不够全面,却能在我们需要帮助的时候及时给予引导,尽管有时候那是一本书、有时候那只是一句话。我们承受着毕业设计带来的巨大压力,而她却总笑着对我们说“其实那个很简单的”。在此,我谨向张黎红老师致以诚挚的谢意。本次毕业设计,在老师的指导下,我不仅更深入地学习了有关51单片机的知识,还对地球磁场、指南针有了更深入的了解。更重要的是我还学会了一种系统学习与工作的方法,学会了如何发现问题,解决问题,如何统筹安排、项目细化,我会将此收获运用以后的学习生活中。同时,我还要感谢计算机与信息科学系电子教研组的各位老师,是他们在我遇到困难时付出的耐心和给予的指导使我从解决问题的过程中学到更多的知识,以及同学们在这期间给我的各方面帮助。最后,我要感谢院系的老师们,感谢学院四年来的栽培,让我们每一个学生获取专业知识的同时,学会了如何立足社会。感谢学院图书馆及其网络丰富的资源,使我们能查阅一些非常重要的参考资料,让我们的毕业设计能更好地进展。我要再次感谢辅导我的张黎红老师,老师您辛苦了。谢谢!参考文献1关增建,指南针理论在中国历史上的演变,自然科学史研究,, 24(2),10-15,20052郭艳萍,电气控制与PLC应用,人民邮电出版社,2010。3魏伟,胡玮,王永清,51单片机C语言开发与应用技术,化学工业出版社,2010。4管志宁,地磁场与磁力勘探,地质出版社,2005。5郭检柟,基于磁阻芯片和MPS430的单片机的电子罗盘设计J,信息与电子工程,8(1),12-14,2010。6江世明,基于Prouteus的单片机应用技术,电子工业出版社,2009。7兰吉昌