目 录
摘要: . ............................................................. 1
0 前言 . ............................................................. 1
1系统基本方案选择 .................................................. 2
1.1单片机的选择 . ................................................ 2
1.2磁阻传感器的选择 . ............................................ 3
2 主要元器件介绍 . ................................................... 5
2.1 主控制器STC89C52介绍 ....................................... 5
2.2 磁阻传感器HMC5883L 介绍 ..................................... 6
2.3 1602LCD液晶显示器 . .......................................... 9
3 程序流程图 . ...................................................... 11
4 设计思路 . ........................................................ 12
5 内部主要程序 . .................................................... 12
6实物演示 ......................................................... 15
7 结论 . ............................................................ 16
8 参考文献 . ........................................................ 17
基于单片机的电子指南针设计
(河南大学物理与电子学院,河南 开封,475004)
摘要:
早期的指南针采用了磁化指针和方位盘的组合方式,整个指南针从便携性、指示灵敏度上都有一定不足,极易受到外界因素的干扰。本系统采用专用的磁场传感器结合高速微控制器的电子指南针能有效解决这些问题。
系统采用了磁阻传感器采集某一方向磁场强度后通过控制器对其进行处理并显示上传,通过对电子指南针硬件电路和软件程序的分析,阐述了电子指南针基本的工作原理及实现。实际测试指南针模块精度达到1°,能够在LCD 上显示当前方位。
关键词:
指南针; 磁阻传感器;; 液晶显示屏
0 前言
指南针是一种重要的导航工具,可应用在多种场合中。指南针的前身是中国古代四大发明之一的司南。主要组成部分是一根装在轴上可以自由转动的磁针。磁针在地磁场作用下能保持在磁子午线的切线方向上。磁针的北极指向地理的北极,利用这一性能可以辨别方向。常用于航海、大地测量、旅行及军事等方面。随着电子技术的发展,电子指南针的优势渐渐体现出来,电子指南针内部结构固定,没有移动部分,可以简单地和其它电子系统接口,因此可代替旧的磁指南针。并以精度高、稳定性好等特点得到了广泛运用。通过采集某一方向磁场强度,传至mcu 对其进行处理并输出到液晶屏上显示。通过采用磁阻传感器采集地球上磁场的强度,并通过51单片机处理后显示在液晶显示屏上,有利于研究国外先进传感器工作机理,为以后做更精密的系统打下基础。指南针的始祖大约出现在战国时期。它是用天然磁石制成的。样子象一把汤勺,圆底,可以放在平滑的“地盘”上并保持 平衡,且可以自由旋转。当它静止的时候,勺柄就会指向南方。后来随着人们认识的深入,指南针越来越精巧,但其基本原理还是依靠某种支撑机械式的工作,易受到外界因素的制约影响工作,随着电子技术的不断进步,人们做出了磁阻传感器,应用在导航仪,手机等电子设备中,电子指南针内部结构固定,没有移动部分,可以简单地和其它电子系统接口,因此可代替旧的磁指南针。并以精度高、稳定性好等特点得到了广泛运用, 使指南针的发展有了质的发 1
展。
1系统基本方案选择
1.1单片机的选择
51系列单片机源于Intel 公司的MCS-51系列,在Intle 公司将MCS-51系列单片机实行技术开放政策之后,诸如Atmel,STC,Dallas, 华邦,LG ,Siemens 等都以MCS-51中的基础结构8051为基准推出各种型号的兼容型单片机统称为51系列单片机[1]。
1.1.1A VR 系列简介
AVR 单片机是Atmel 公司推出的较为新颖的单片机,特点是高性能,高速度,低功耗,取消了机器周期,以时钟周期为指令周期,实行流水作业。大部分指令为单周期指令,而单周期的指令既可以执行本指令功能,同时完成下一条指令的读取,时钟频率用4-8MHz, 故最短指令执行时间为250-125ms 。主要类型有以下三种:AT90s2313(简装型),AT90S8515,AT90S8535(带A/D转换) [2]。
在51系列中,所有的逻辑运算都必须在A 中进行,而AVR 却可以在任意两个寄存器中进行,省去了在A 中的反复,这些都比51系列强。
1.1.2 PIC系列简介
PIC 单片机系列是美国微芯公司(Microship)的产品,是当前市场份额增长最快的单片机之一。CPU 采用RISC 结构,分别有33,35,38条指令(视单片机的级别而定),属精简指令集。而51系列有111条指令,AVR 有118条指令,都比前者复杂。采用Harvard 双总线结构,运行速度快,属于指令流水线结构,在一个周期完成执行指令和从程序存储器取出下一条指令。具有低工作电压,低功耗,驱动能力强等特点。在编程过程中,少不了要与专用寄存器打交道,得反复选择对应的存储体,给编程带来了一定的麻烦[3]。
1.1.3 51系列
应用最为广泛的八位单片机当属Intel 的51系列,由于产品硬件结构合理,指令系统规范,世界有许多著名芯片公司购买了51系列芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系。
51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,统称为位处理器,或布尔处理器它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送,置位,清零,测试等,还能进 2
河南大学物理与电子学院开放实验室设计报告
行位的逻辑运算,其功能十分完备。在一个较复杂的程序在运行工程中会遇到许多的分支,因而需要建立许多标志位,在运行过程中,需对有关标志位进行置位,清零,或者检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。
51系列的另一个优点是乘法和除法指令,八位除以八位的除法指令,商为八位,而八位乘八位的乘法指令,其值为十六位,精度可以满足大多数的要求,用的较多。
考虑到大学所开课程,曾系统的学习过51单片机原理,以及其成本低,所设计的电子指南针处理速率的要求,所以选择51单片机来做主控制器。在市场上选择了主流的STC 公司的89C52来做开发。
1.2磁阻传感器的选择
1.2.1 Honeywell 三轴磁阻传感器HMC5883L [4]。如图1.1。
图1.1 HMC5883L实物图
特点: (1)数字量输出:I2C 数字量输出接口,设计使用非常方便。
(2)尺寸小: 3x3x0.9mm LCC封装,适合大规模量产使用。
(3)适用于消费类电子设备应用中通用双线串行数据接口。
(4)符合RoHS 标准。
(5)可获得罗盘航向、硬磁、软磁以及制自动校准库。
(6)精度高:1-2度,内置12位A/D,OFFSET, SET/RESET 电路,不会出现磁
3
河南大学物理与电子学院开放实验室设计报告
饱和现象,不会有累加误差。
(7)支持自动校准程序,简化使用步骤,终端产品使用非常方便,有相应软件及算法支持。
(8)最大输出频率可达160Hz 。
(9)内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。
(10)带有设置/复位和偏置驱动器用于消磁、自测和偏移补偿。
(11)功耗低:供电电压1.8V, 功耗睡眠模式--2.5mA 测量模式--0.1mA 。
(12)价格在7到10元之间。
1.2.2 Honeywell 磁阻传感器HMC1501,如图1.2。
图1.2 HMC1501实物图
特点: (1)永磁产生材料不需稀土磁钢, 只要用铝镍钴或陶瓷型磁钢,价格便宜。
(2)具有宽角度量程(±45°),0.07°的最小分辨率。
(3)8mm的有效线性区,多个器件时可以增加区间。
(4)绝对灵敏,不用于增量“编码”器件,HMC1501可以精确走位,无需遍索引。
(5)非接触,无磨损,不会因转动机械传感器磨损而降低讯号。
(6)小包装,8脚表面贴装,尺寸5×4×1.2mm ,可以在小于6mm 的空间工作。
(7)大讯号输出:在5伏电源时有120mV 的满量程输出。
(8)价格在30元左右。
1.2.3 Honeywell HMC1001/1002 单、双轴磁阻传感器。
如图1.3。
4
河南大学物理与电子学院开放实验室设计报告
图1.3 HMC1501实物图
特点: (1)磁场范围高至 6高斯(地磁场=0.5高斯) 。
(2)封装尺寸小。
(3)设计成单轴和双轴可组合在一起工作从而提供3轴(xyz)传感。
(4)单轴传感器封装在8针SIP 或8针SOIC, 或陶瓷8针DIP 内。
(5)双轴传感器封装在16针或20针SOIC 封装内。
(6)这类小型装置相比于机械磁通门大大降低了装配成本并提高了可靠性和耐用性。
(7)价格便宜, 这类传感器经专门设计对于大批量的OEM 应用价格合适, 市场价格100-500元。
考虑到所选择的单片机为51系列,课程设计所要求的精度及成本问题,所以选择了Honeywell 公司的
HMC5883L 磁阻传感器来做课程设计。
2 主要元器件介绍
2.1 主控制器STC89C52介绍
STC89C52是STC 公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。STC89C52使用经典的MCS-51内核,兼容标准MCS-51指令系统及80C51引脚结构,高性能8位单片机AT89C52 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes的可反复擦写1000次的Flash 只读程序存储器,,做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有系统可编程Flash ,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash ,512字节RAM , 32 位
5
河南大学物理与电子学院开放实验室设计报告
I/O 口线,看门狗定时器,内置4KB EEPROM ,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz ,6T/12T可选。
2.2 磁阻传感器HMC5883L 介绍
霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L 包括最先进的高分辨率HMC118X 系列磁阻传感器,并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在1°~2°的12 位模数转换器. 简易的I2C 系列总线接口。HMC5883L 是采用无铅表面封装技术,带有16 引脚,尺寸为3.0*3.0*0.9mm。HMC5883L 的所应用领域有手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统。
霍尼韦尔HMC5883L 磁阻传感器电路是三轴传感器并应用特殊辅助电路来测量磁场。通过施加供电电源,传感器可以将量测轴方向上的任何入射磁场转变成一种差分电压输出。磁阻传感器是由一个镍铁(坡莫合金) 薄膜放置在硅片上,并构成一个带式电阻元件。在磁场存在的情况下,桥式电阻元件的变化将引起跨电桥输出电压的相应变化。这些磁阻元件两两对齐,形成一个共同的感应轴(如图
2.1所示) ,随着磁场在感应方向上不断增强,电压也会正向增长。因为输出只与沿轴方向上的磁阻元件成比例,其他磁阻电桥也放置在正交方向0上,就能精密测量其他方向的磁场强度。
箭头标明磁场方向,该磁场在正常测量模式下产生正向输出可读。
2.2.1 I2C通信
HMC5883LL 通过两线I2C 总线系统作为一个从机装置进行通信。HMC5883LL 使用是一个I2C 协议所定义的简化后的通信接口协议,通过这一文件,。数据传输速率是标准模式100kbps 或400kbps 速率,如I2C 总线规格中所规定。总线位格式是一个8 位数据/地址传送和1 位应答位。格式的数据字节(有效载荷)应区分HMC5883L 从机上的大小写的ASCII 字符或二进制数据,以及返回的二进制数据。负二进制值将是以二进制的补码形式。默认(出厂) HMC5883LL 7
6
河南大学物理与电子学院开放实验室设计报告
位从机地址为0x3C 的写入操作,或0x3D 的读出操作。
图2.1 HMC5883L-顶视图
HMC5883L 引脚配置表,如表1所示。
表1 HMC5883L引脚配置表
7
河南大学物理与电子学院开放实验室设计报告
图2.2 HMC5883L外围电路
图2.3 实际尺寸的由HMC5883L 构成的传感器模块
HMC5883LL 串行时钟(SCL )和串行数据(SDA )线需要主机(通常是主机微处理器)和HMC588LL 之间装有上拉电阻(Rp )。在标称VDDIO 电压下建议负载电阻值约为10 千欧姆。其他电阻值也可以由I2C 总线规格定义后连接到VDDIO 上。总线规格的SCL 和 SDA 线可以连接到多个装置上 。总线可以是一个单一主机到多个从机,也可以是一个多个主机配置。所有数据传输均由产生时钟信号的主机发起,数据传输是8 位进行。所有装置都由I2C 唯一的7 位地址标注。在每8 位传输之后,主机装置产生一个第9 个时钟脉冲,
并释放
SDA 的线。接收装置(指向的从机)将SDA 线拉至低位确认(ACK )传输成功或使SDA 线处于高位表示否定确认(NACK ) 。
按I2C 规格,所有SDA 线中的传输必须发生在SCL 低时。但当SCL 处于
8
河南大学物理与电子学院开放实验室设计报告
高位时,在总线上与SDA 传送时这一要求会导致两种特别的情况。主机将拉SDA 拉低,而SCL 线是高,表明开始(S)的条件;当 SDA 的线被拉高而SCL 处于高位,这是停止(P)的情况。I2C 总线协议还允许重新启动的条件,这时主机发出第二次启动条件还没有叫停。所有总线传送从主机发出启动序列开始,然后发出从机地址字节。地址字节包含从机地址; 先7 位 和最低有效位。如果指定的运作是一个读出或写入,地址的LSb 字节会标志出来。在第9 个时钟脉冲,接收的从机装置会发出ACK 。这些总线事件以后,主机将发送数据字节以便写入操作,或从机在读出操作时进行时钟输出。所有总线的传送在主机发出停止序列时终止。
2.2.2 连续测量模式
连续测量模式,在客户所选择的速率下进行连续的测量,并所测量的更新数据输出寄存器。如果有必要,数据可以从数据输出寄存器重新读取,但是,如果主机并不能确保在下次测量完成之前可以访问数据寄存器,数据寄存器上的旧的数据会被新的测量数据取代。为了保存测量之间的电流,该装置被放置在一个类似闲置模式的状态,但模式寄存器没有改变成空闲模式。即MD[n]位不变。配置寄存器A 的设置在连续测量模式时会影响数据输出速率(比特DO[n]) ,测量配置(bits MS[n]),和增益(bits GN[n])。所有寄存器在连续测量模式中保留数值。 在连续测量模式下I2C 总线可被网络内的其他装置启用[5]。
2.2.3 数据处理
HMC5883L能测量X,Y,Z 三个方向的数据,这三个方向是正交的,对这三个方向的数据进行处理可以得到磁场的角度,每个方向拥有两个八位的数据寄存器A 和B ,寄存器A 中储存一个测量结果中的高位数据,寄存器B 中储存一个自测量结果的低位数据,这两个寄存器中的值是以二进制补码形式存在的十六位,其范围是0XF800到0X07FF 。因为Z 轴垂直于磁场,所里理论上等于零,只需要X,Y 的值就可以算出角度来,公式为angle=arctan(X/Y)[6]。
2.3 1602LCD液晶显示器 1602LCD工业字符型液晶,能够显示16*2即32个字符。即16列两行。是一种专门用来显示字母,数字,符号等的点阵型液晶。由若干个5*7或者5*11等点阵字符位组成,每个字符位都可以显示一个字符,每位之间有一个点阵的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
9
河南大学物理与电子学院开放实验室设计报告
图2.4 1602LCD实物图 1602LCD 主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35(W×H)mm 引脚功能说明
1602LCD 采用标准的16脚(带背光)接口,各引脚接口说明如表2所示。
表2 1602LCD引脚功能
10
河南大学物理与电子学院开放实验室设计报告
3 程序流程图
11
河南大学物理与电子学院开放实验室设计报告
4 设计思路
角度算法:angle1=arctan(2y/x)*(180/∏)+180 指南针的角度指向正南方时为0度,指针的角度随x 轴顺时针方向进行递增,角度从0度到359度[7,8]。如图4.1所示
正南0度
正东270度 正西90度
正北180度 图4.1 指南针四方位正角
5 内部主要程序
//********************************************************* //主程序********
//********************************************************* void main() {
unsigned int i,j; int x,y,z; double angle; InitLcd();
Init_HMC5883(); while(1) {
Multiple_Read_HMC5883(); //连续读出数据,存储在BUF 中
x=BUF[0] 337.5 )) //South { DisplayOneChar(2,0,'S'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'u'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h');
12
河南大学物理与电子学院开放实验室设计报告
Clear_char(); }
if((angle > 22.5) && (angle
if((angle > 67.5) && (angle
if((angle > 112.5) && (angle
if((angle > 157.5) && (angle
if((angle > 202.5) && (angle
13
河南大学物理与电子学院开放实验室设计报告
DisplayOneChar(2,0,'N'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'r'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); DisplayOneChar(7,0,'-'); DisplayOneChar(8,0,'E'); DisplayOneChar(9,0,'a'); DisplayOneChar(10,0,'s'); DisplayOneChar(11,0,'t'); Clear_char(); }
if((angle > 247.5) && (angle
if((angle > 292.5) && (angle
//计算数据和显示 conversion(angle); DisplayOneChar(2,1,'A'); DisplayOneChar(3,1,'n'); DisplayOneChar(4,1,'g'); DisplayOneChar(5,1,'l'); DisplayOneChar(6,1,'e'); DisplayOneChar(7,1,':'); DisplayOneChar(8,1,qian); DisplayOneChar(9,1,bai); DisplayOneChar(10,1,shi); DisplayOneChar(11,1,'.'); DisplayOneChar(12,1,ge); //延时
14
河南大学物理与电子学院开放实验室设计报告
for (i=0;i
6实物演示
图6.1 实物显示度数56°
指南针以正北方向为准,当显示为0°时即为正北方。如图6.1所示显示为56°,东北方向。即是北偏东56°。
图6.2 实物显示度数3°
如图6.2所示 显示为3°北方。即是正北方向。但实际方向是北偏东3°,在实际使用中3°的偏差不会影响的使用。
15
河南大学物理与电子学院开放实验室设计报告
图6.3 实物显示度数210°
如图6.3所示 显示为201°方向为西南方向。即是南偏西21°。
图6.4 成品图
如图6.4所示 正在工作的完整实物图,液晶显示屏上现实的度数为274°方向为西。即为正西方向。
7 结论
本次毕业设计的电子指南针系统包含了磁场传感器、微控制器、显示部件、输入
16
河南大学物理与电子学院开放实验室设计报告
部件等部分,微控制器通过对磁场传感器进行读取获得当前方向地磁场的强度,通过一定的运算后由直观的液晶界面显示出来,并可通过微控制器的串口和独立按键进行数据的交互。
在整个设计系统中充分掌握各模块电路的工作原理,对硬件电路进行设计,并使用C 语言编写全部的驱动程序。该指南针系统用于方位指示实测精度可以达到1°、功耗小、显示直观、携带方便,可作为出行、旅游、导航的必备之物,具有较高的经济适用价值。
因为个人在知识面和能力方面还有限,再加上条件的限制,电子指南针的采样精度和抗干扰能力等各项技术指标的提高、诸多功能的完善还需要进一步的研究和开发,此外在完成基本功能的基础上,还需要努力提高软件的效率、硬件系统的稳定性、进一步降低系统功耗等。
8 参考文献
[1] 李朝青. 单片机原理及接口技术. 北京. 北京航空航天大学出版社 2006年12月.15
[2] 张毅刚,彭喜元. 单片机原理及接口技术. 北京. 人民邮电出版社.2008年.17 [3] PIC系列单片机简介
http://wenku.baidu.com/view/78116b20af45b307e871977f.html?re=view [4] HMC5883L 中文数据手册
http://wenku.baidu.com/view/91bf2c1d964bcf84b9d57bfd.html?re=view
[5] 樊昌信 曹丽娜. 通信原理--6版. 北京. 国防工业出版社.2010年7月 426~430 [6] 常玉燕, 吕光译. 日本电子电路精选[M].北京:电子工业出版社.1990.
[7] 邵婷婷, 马建仓, 胡士峰, 王超. 电子罗盘的倾斜及罗差补偿算法研究[J]. 传感技术学报.2007.6.
[8] 蒋贤志. 数字电子罗盘误差分析及校正技术研究[J].现代雷达.2005. 6.
17