




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州大学本科生毕业论文(设计) 目 录摘 要1Abstract2前 言3第一章 绪 论41.1 开发背景41.2 关于国内外同类系统的分析4第二章 系统的总体方案与设计62.1 基本要求62.2 硬件系统设计方案62.3 软件系统设计方案8第三章 系统硬件设计103.1 单片机系统设计103.2 传感器模块设计113.3 显示屏的选取123.4 模块的组成13第四章 系统软件设计144.1 系统软件总体流程144.2 软件程序14第五章 系统的调试与分析195.1 硬件系统调试195.2 软件系统调试195.3 坏境模拟及系统调试195.4 调试故障及原因分析195.5 测试结果及分析20附件:24部分源程序:24参考文献致谢摘 要随着世界发展的快速进步,人在高楼林立的世界中需要一种简便的导航工具,现在的电子罗盘能集成于手机或者电子手表中而不给人增加够多的其他负担。本文介绍了如何运用简单的电子元件(AT89C51单片机,HMC5833L磁传感器,显示器 )制作一个电子罗盘,具备基本的指南功能。本设计的设计思路就是利用磁阻传感器对地磁的感应得到的信号,导入单片机中,经过单片机里的算法我们把得到的信号转换成显示信号,并在显示屏LCD1602中显示出来,显示的内容为南方与X轴的夹角。由于我们使用了HMC5883L的芯片,所以我们的硬件部分就相对简单了,功能的实现在于我们在软件上下的功夫,我们既要设置振荡的时钟,也要研究算法。该制作简单方便,可集成与手机或手边等电子用品之中利于生活。关键词:电子罗盘,HMC5883L,AT89C51 作 者:何嘉俊 指导教师:吴文明AbstractWith the rapid progress of development in the world, people in tall buildings in the world need a simple navigation tools, and now can be integrated electronic compass to a cell phone or electronic watch without giving other burdens increased more than enough.This article describes how to use a simple electronic components (AT89C51 microcontroller, HMC5833L magnetic sensors, monitors) make an electronic compass, a guide with basic functionality. This design idea is to use the design of the magnetoresistive sensor signal obtained by the geomagnetism sensor, introduced into the microcontroller through the microcontroller in the algorithm we obtain signals into display signals, and show up in the display LCD1602, the content displayed is the angle between the South and the X-axis. Because we use a HMC5883L chips, so our hardware part is relatively simple to achieve functionality that our effort in the software up and down, we need to set the clock oscillation, but also research algorithms. The production is simple and convenient, can be integrated with a cell phone or other electronic items being hand in favor of life.Keywords: Electronic compass,HMC5883L,AT89C51Written by He jiajunSupervised by Wu wenming前 言罗盘早在中国古代就已经被发明出来,这是古老的中国留给世界伟大的智慧遗产,由此传入欧洲,进而为在大航海时代发现新大陆做了铺垫,在大海一望无际的汪洋中给人指明了方向,开启了环球旅行的波澜壮阔的史诗,古老的罗盘很不稳定,而且精度低,不方便携带。在现代电子科技发展的今天,集成电路的飞速发展,人们利用对地磁敏感的磁阻传感器制作出了电子罗盘,使得罗盘的发展跨越了一个新的篇章。本设计是利用Honeywell公司生产的HMC5883磁阻传感器来制作的,通过磁阻传感器的对地磁强度的感应形成的电子信号传给了AT89C51单片机,单片机进行数据处理后把它显示到LCD1602液晶显示屏上面。电子罗盘精度达到小数点后一位,同时人们可以根据显示的X轴与南方的夹角判断出自己的方位。第一章 绪 论1.1 开发背景罗盘是一种重要的导航工具,在现代人们的生产生活中起到了不可或缺的作用。罗盘的前身是指南针。主要组成部分是由一根指向南方的磁针与必要的基座。地球磁场的作用下磁针可保持在磁子午线的切线方向。针指向地理北极北极,因此可以引导人们的方向。在生活中可以用于野外勘探,航海,以及有极高的军事价值。随着电子技术的发展,电子罗盘的优势逐步体现,固定电子罗盘的内部结构,可以使它与其他一些电子所共存,因此可以代替旧的老式罗盘。并具有高的精度,稳定性好,已被广泛使用。通过收集的磁场强度在一定的方向上不同状态的电子信号,通过单片机对输出进行处理并显示在液晶屏幕上。通过使用磁阻传感器捕捉到地球上的磁场强度,并通过处理了后显示在液晶屏上,有利于学习的先进传感器的工作机制,打好基础,为将来做更复杂的系统。指南针始祖大约出现在战国时期。它是由一个磁石。看起来像一个勺子,在古代指南针被称为司南,圆形,可放置在光滑“草皮”,并保持平衡,并能自由转动。当它静止时,勺柄将指向南方。后来随着人们对罗盘的深刻认识,制作的罗盘也更复杂,但基本原理依旧要依靠一些机械对地磁感应,很容易受到外界因素的影响,从而使得到的结果不够精确,随着现代电子技术的飞速发展,人们能够利用磁阻传感器来判断自己所处的位子,使导航领域的发展更加系统化,在移动电话等电子设备中,人们通常会用一块小小的集成芯片来实现电子罗盘的内部结构,能与许多电子元件所共存,因此可以代替旧的磁罗盘,并具有高的精度,稳定性好,已被广泛使用,以使罗盘的定性的发展而发展。1.2 关于国内外同类系统的分析在国外有许多家公司都在研究和生产电子罗盘,尤其是Honeywell公司的磁阻式电子罗盘和KVH公司生产的磁通门电子罗盘最为人所知。 在我国国内对电子罗盘的研究和发展起步还是比较晚的,一些国内的电子生产商基本都是以代理国外的品牌为主,自我的研究还不够深入细致。在九十年代末我国才真正开始对电子罗盘的研究。电子技术的发展是要有一定时间积累的。大连海事大学关政军教授利用磁阻传感器研制了水平状态下的磁罗经;西北工业大学刘诗斌教授在他的博士学位论文中把磁通门技术应用于无人机中并研制了原理样机,能够智能的对实际中出现的误差进行补偿;可以说在我国电子罗盘的发展空间还是很大的。第二章 系统的总体方案与设计2.1 基本要求此种方案整个系统由AT89C51单片机,磁阻传感器HMC5883L,显示屏LCD1602组成。系统启动后,单片机先对显示屏LCD1602进行操作,显示屏进入初始状态,然后对HMC5883L进行操作,51单片机连续读取其X轴,Y轴,Z轴的数据,通过公式运算,算出X轴与正南之间的夹角,通过对夹角进行数据处理,最终展现给人们的是精确到小数点后一位的角度数据。设计思路是把磁阻传感器HMC5883测得的地磁数据传送至AT89C51单片机上,数据通过公式计算后再将其位置信息显示在LCD1602上面,使用的集成的磁阻传感器模块,我们避免的了放大电路以及A/D转化等复杂的硬件,可以集中精力在软件的实现上下功夫。这个方案所用的硬件不多,而且成本较低,可实现程度高,所以最终选择了这个方案作为了最终设计。2.2 硬件系统设计方案2.2.1 硬件电路组成及工作原理硬件电路组要由磁阻传感器,A/D转化器,电源电路,信号放大器,51单片机及其LCD1602组成,实现效果如图2-1电子罗盘的工作原理。地磁磁阻传感器信号放大器A/D转化器51单片机显示屏图2-1电子罗盘工作原理其工作原理是:电磁信号被磁阻传感器感应通过信号放大并在A/D转化成数字信号,信号通过51单片机内的处理在显示屏上显示出X轴与南的夹角度数。2.2.2 硬件的选取2.2.3 单片机的选取 51系列单片机最早是由Intel公司设计的的MCS-51系列,后来在Intle 公司将MCS-51系列单片机实行技术向大家开放之后,Atmel,STC,Dallas,华邦,LG,Siemens等公司都在MCS-51中推出各种型号的兼容型单片机统称为51系列单片机,这些兼容型单片机都是以8051为基础的。在我们的生活中51单片机运用的最为广泛,它是由Intel公司研发的,它因它合理的结构和严谨的指令格式而被广泛认可,当今世界由51单片机延伸出来系列形成了以个体系,广泛的研究和开发也使得这一系列功能更加优化。51系列优点之一是它的位处理器,由于51单片机的研发比较完善,从内部来说有一套完整的软硬件按位处理系统,位处理器它的处理对象就是位。它能对片内某些特殊功能寄存器的某位进行处理,如置位,传送,测试,清零等,还能进行位的逻辑运算,可谓是功能强大,所以可以运用的十分广泛。像一些清零,置位,或者是检测等作用,只需要一个位处理就可以解决以上可能出现的问题。乘法和除法指令是51单片机的另外一个优点,8除以8除法指令,八乘八乘法指令,十六值,这样可以满足大多数的精度要求。考虑到开放的大学课程,一旦系统研究51单片机原理,以及它的成本低,电子罗盘处理速度的要求设计,所以我选择了来做主51 MCU控制器。在市场上选择做主流STC89S52开发公司。 2.2.4 磁阻传感器的选择2.2.4.1 Honeywell 三轴磁阻传感器HMC5883L特点:(1)数字量输出:输出数字量不需要进行A/D转化。(2)尺寸小: 3x3x0.9mm LCC封装。(3)双线串行数据接口适用于大多的消费型电子产品(4)符合RoHS标准(5)罗盘航向、硬磁、软磁以及制自动校准库都是可以自动获得的(6)精度高:12度,内置12位A/D,OFFSET, SET/RESET 电路,误差较小。(7)自动校准程序能实现,简化步骤,方便终端产品的使用,有相应软件及算法支持。(8)最大输出频率可达160Hz(9)有自己的自检电路,可以实行自检,无需外部添加。(10)带有设置/复位和偏置驱动器用于消磁、自测和偏移补偿。(11)功耗低:供电电压1.8V, 功耗睡眠模式-2.5微安 测量模式-0.1mA。(12)价格在7到10元之间。2.2.4.2 Honeywell 磁阻传感器HMC1501(1)价格较为便宜(2)量程角度较宽(45),最小分辨率位0.07。(3)8mm的有效线性区,多个器件时可以增加区间。绝对灵敏,不用于增量“编码”器件,HMC1501走位精确,无需遍索引。机体在无触碰的情况下损耗较小。小包装,8脚表面贴装,尺寸541.2mm,可以在小于6mm的空间工作。大讯号输出:在5伏电源时有120mV的满量程输出。价格在30元左右2.2.4.3 Honeywell HMC1001/1002 单、双轴磁阻传感器(1)磁场范围高至 6高斯(地磁场=0.5高斯)。(2)设计成单轴和双轴可组合在一起工作从而提供3轴(xyz)传感。(3)单轴传感器封装在8针SIP或8针SOIC, 或陶瓷8针DIP内。(4)双轴传感器封装在16针或20针SOIC封装内。(5)节约了成本又大大提高了实用性和可靠性。2.3 软件系统设计方案本设计的放大电路与A/D转化以及信号采集都是由硬件电路来完成的所以只需要51单片机对信号的处理与LCD显示,方案框图如图2-2所示。开始初始化系统写入信号发设备地址发读取单元地址读信号连续读取信号显示返回 图2-2 软件流程图第三章 系统硬件设计3.1 单片机系统设计3.1.1 AT89C51单片机AT89C51是我们学习中接触到最多的单片机,内部有一个八位的CPU,一个片内振荡器及时钟电路,4K字节的程序存储器,一个可编程全双工串行口,八个可编程的I/O端口等等。如图3-1图3-1 AT89C51单片机VCC:供电电压。GND:接地。P0口:双向信号的多功能端口,8位漏极开路,在此我们用于控制显示器的输出信号。P1口:具有内部上拉电路的8位准双向I/O端口,一般用于单片机内部的程序写入。P2口:具有内部上拉电路的8位准双向I/O端口,在本设计中不作要求。P3口:双向的多功能端口,一般作控制引脚使用,在本设计中也不作要求。RST:复位输入。 ALE/PROG:控制访问外部存储器的信号。PSEN:外部程序存储器的选通信号。EA/VPP:输入信号,控制访问外部程序存储器。XTAL1:内部晶片反向振荡放大器的输入端。XTAL2:内部晶片反向振荡器的输出端。3.1.2 单片机外围电路时钟电路的设计,石英晶体可在1.2KM12KM之间选择,本设计采用的是11KM的外部晶振。外接电容虽然没有要求,但我们采用稳定性更好的NPO高频电容,电容值我们选取22pF。时钟电路如图3-2时钟电路。图3-2 时钟电路3.2 传感器模块设计本设计采用的是HMC5883L的高度集成模块,它可以减少我设计的硬件设备,它将三轴磁阻传感器,放大电路以及A/D转化模块都集成在一块芯片上,使我们在硬件的设计上省下了很大的空间。HMC5883L 是一块高度集成的芯片,弱磁传感器芯片带有数字端口,因此不需要我们再设计A/D转化模块了,它适用于低成本电子罗盘和磁场检测等方面。HMC5883L芯片他集成了包括磁阻传感器在内的放大电路,自动消磁驱动器,自动校准偏差,精确控制允许在12位模拟指南针12设备的数字化转换。简单的I2C总线接口HMC5883L系列是采用无铅表面贴装技术,具有16引脚,大小3.0X3.0X0.9mm。的申请HMC5883L有笔记本电脑,手机,个人导航,消费电子产品和汽车导航系统系统。霍尼韦尔HMC5883L是三轴磁阻传感器,它测量三个方向的地磁强度来得到我们想要的结果。给予一个供电电源,磁阻传感器可以将我们所在的地磁感应信号转化成一种差分电压输出。电压跟随着磁场的强度变化而变化,这些磁阻元件两两对齐,形成一个共同的感应轴体系,如果磁场越强则该方向上的感应电压也越强。因为输出只与沿轴方向上的磁阻元件成比例,我们这样就能测量出X,Y,Z轴上的磁场强度了,他们又相互垂直在这个三维立体中通过算法实现我们测量的方向。HMC5883L能测量X,Y,Z三个方向的数据,这三个方向相互垂直,对着三个方向的地磁进行测量可以得到磁感应的夹角,X,Y,Z轴分别有两个八位的数据寄存器A和B,寄存器A中储存高八位数据,寄存器B中储存低八位数据,总的来说数据是二进制的16位补码的形式,其范围是0XF800到0X07FF。因为Z轴垂直于磁场,所里理论上等于零,所以主要是测量出X,Y轴的数据,其计算公式为angle=arctan(X/Y)。3.3 显示屏的选取本设计选取的显示屏为LCD1602,它能直观的显示出X轴与南的夹角。LCD1602是字符型液晶显示模块,目前常用的是16*1,16*2,20*2和40*2行等的模块。 LCD1602的主要参数为: 显示的容量:行16列2个字符 芯片的工作电压:4.5-5.5V 工作电流为:2.0mA 模块的最佳工作电压为:5v 我们使用的LCD1602一共有16个引脚,各个引脚功能如下: VSS 电源地 编号1 VDD 电源正极 编号2 VL 液晶显示偏压 编号3 RS 数据/命令选择 编号4 R/W 读写选择 编号5 E 使能信号 编号6 D0到D7是8位双向数据线 编号7到14 BLA 背光源正 编号15 BLK 背光源负 编号 16 本设计采用的是无背光模块。 LCD1602的指令模式:1602液晶模块内部的控制器共有11条控制指令,指令如下:指令1为0000000001,清除显示,指令码01H,也就是清屏。指令2为0000000010,光标返回。指令3为0000000100,置输入模式。指令4为0000001000,显示开关控制。 指令5为0000010000,控制光标或字符的移动。指令6为0000100000,设置功能。指令7为0001,设置字符发生存储器的地址,后六位为地址。指令8为001,设置数据存储器的地址,最后七位为地址。指令9为01,读忙信号和光标地址,最后七位为计数器的地址。指令10为10,写数据。指令11为11,读数据。3.4 模块的组成 各个模块的组成电路,如图3-3硬件总图。图3-3 硬件总图如图3-3硬件总图所示,磁阻传感器1号接口接地,2、3号接口连接单片机1、2号接口并连接直流电源5V,AT89C51单片机的XTAL1、XTAL2外接时钟电路,单片机P0.0P0.7八位数据端口连接LCD1602D0D7。第四章 系统软件设计4.1 系统软件总体流程流程图如图4-1。开始初始化系统写入信号发设备地址发读取单元地址读信号连续读取信号返回显示图4-1 软件流程图4.2 软件程序4.2.1 主程序主程序主要是循环读取HMC5883数据储存在BUF中,通过计算使数据在LCD1602上显示出来,主程序的计算公式为:angle=arctan(X/Y)。void main() / bit sign_bit; unsigned int i; int x,y,z; double angle; delay(500); InitLcd(); Init_HMC5883(); while(1) /循环 Multiple_Read_HMC5883(); /连续读出数据,存储在BUF中/-显示X轴 x=BUF0 8 | BUF1; /Combine MSB and LSB of X Data output register z=BUF2 8 | BUF3; /Combine MSB and LSB of Z Data output register y=BUF4 8 | BUF5; /Combine MSB and LSB of Y Data output register angle= atan2(double)y,(double)x) * (180 / 3.14159265) + 180; / angle in degrees angle*=10; conversion(angle); /计算数据和显示DisplayOneChar(3,0,X);DisplayOneChar(4,0,-);DisplayOneChar(5,0,N); DisplayOneChar(6,0,:); DisplayOneChar(7,0,qian); DisplayOneChar(0,1,bai); DisplayOneChar(1,1,shi); DisplayOneChar(2,1,.); DisplayOneChar(3,1,ge); for (i=0;i10000;i+); /延时 4.2.2 子程序起始信号设置的是信号的开始设置:起始信号void HMC5883_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 0; /产生下降沿 Delay5us(); /延时 SCL = 0; /拉低时钟线停止信号void HMC5883_Stop() SDA = 0; /拉低数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 1; /产生上升沿 Delay5us(); /延时发送应答信号入口参数:ack (0:ACK 1:NAK)void HMC5883_SendACK(bit ack) SDA = ack; /写应答信号 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时接收应答信号bit HMC5883_RecvACK() SCL = 1; /拉高时钟线 Delay5us(); /延时 CY = SDA; /读应答信号 SCL = 0; /拉低时钟线 Delay5us(); /延时 return CY;向IIC总线发送一个字节数据void HMC5883_SendByte(BYTE dat) BYTE i; for (i=0; i8; i+) /8位计数器 dat = 1; /移出数据的最高位 SDA = CY; /送数据口 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时 HMC5883_RecvACK();从IIC总线接收一个字节数据BYTE HMC5883_RecvByte() BYTE i; BYTE dat = 0; SDA = 1; /使能内部上拉,准备读取数据, for (i=0; i8; i+) /8位计数器 dat = 1; SCL = 1; /拉高时钟线 Delay5us(); /延时 dat |= SDA; /读数据 SCL = 0; /拉低时钟线 Delay5us(); /延时 return dat;void Single_Write_HMC5883(uchar REG_Address,uchar REG_data) HMC5883_Start(); /起始信号 HMC5883_SendByte(SlaveAddress); /发送设备地址+写信号 HMC5883_SendByte(REG_Address); /内部寄存器地址,请参考中文pdf HMC5883_SendByte(REG_data); /内部寄存器数据,请参考中文pdf HMC5883_Stop(); /发送停止信号第5章 系统的调试与分析5.1 硬件系统调试此课题硬件部分占了相当大的比重,由于硬件中用到了HMC5883L高度集成的芯片所以硬件部分就显得不那么复杂,组要分为传感器模块、单片机外接时钟电路模块、51单片机模块、显示模块,我们可以分部来检查各个模块的运行是否正常。硬件的调试主要是检查电路焊接中可能出现的虚焊、漏焊等问题。首先先用万用电表测量个点的电压,以此来判断那边的焊接出现问题。用万用电表测量单片机与磁阻传感器连接部分看电压是否稳定在5V左右,电压正常,需要进一步排查错误。检查时钟电路发现时钟电路无电压,检查各个连接点发现虚焊,改正后发现电路正常运转。显示模块有显示表明显示模块电路正常。5.2 软件系统调试软件的调试主要是利用信号发生器、单片机开发板和Keil联调,通过观察显示屏上的分贝值是否随信号发生器输出信号的频率变化而变化,具体的调试步骤如下:1. 将信号发生器的输出端接到单片机的P3.5口,并将单片机开发板与计算机连接好;2. 在Keil平台上运行需要调试的程序,改变信号发生器输出信号的频率,观察显示屏上的dB值是否随着一起变化;3.如调试结果正确则进一步优化程序并结合硬件调试。5.3 坏境模拟及系统调试1.先将硬件电路各模块连接好,并接好电源和接地线;2.将调试好的程序下载到单片机内,置硬件于一模拟环境中,开始系统调试;3.模拟出不同的方向,看显示的夹角变化是否能精确到小数点后一位。5.4 调试故障及原因分析1 硬件调试问题 焊接单片机时由于电路分部较为密集出现虚焊等情况。2 软件调试的问题 在软件调试时,发现LCD屏上显示的dB值末尾值总是没变化,经思考后发现没有写入清屏程序。在加入清屏程序后,LCD屏正常显示。5.5 测试结果及分析 使磁阻传感器水平与地面,根据X轴的指向,显示出的角度为与南方的夹角,方向夹角显示,正南为0度或360度,正西为90度,正北为180度,正东为270度。当X轴与南夹角为0度时可以确定X轴指向为南,可以精确到小数点后一位,如图5-2实物图,5-3数据为零时X轴指向南方图。图5-1实物图其中X-N表示的是X轴与南(N)的夹角,图中显示数据027.3表示的是南偏西27.3度,如图可以看出度数可以精确到小数点后一位。图5-2 数据为零时X轴指向南方图结果显示改变X轴方向就能不断的跟新X轴与南的夹角度数,功能较强,实时跟新,受坏境影响较小,具有一定意义。在手机上查看的同类型软件,如表5-4 电子罗盘数据误差所示,在与实物进行数据对比,以图5-4的粗白色线为X轴,与本设计的电子罗盘进行对比后,发现数据有所偏差,当手机指南时为0度,而在X轴同方向上电子罗盘为正3到6度左右,当手机指西为90度时,同X轴方向,电子罗盘显示为94到97度左右。经过以上检测,基本可以确定电子罗盘具有指南功能,偏差为左偏5度左右,满足设计的基本要求。出现的偏差为设计本身带有误差,也是硬件设计固有误差,在可接受范围内。方向手机罗盘电子罗盘误差正南006+6正西909095+5正北180180183+3正东2702702564西南454548+3西3 电子罗盘数据误差参考文献1 陈伟涛.基于MEMS传感器的电子罗盘设计D.广东工业大学.20132 张贤海,钱正洪,白茹,朱礼尧,李栋亮.基于ARM9平台的电子指南针的设计J.现代电子技术.20133 李淑婷.基于磁阻传感器的三维电子罗盘的设计与研究D.长安大学.20134 王勇军.基于磁阻的加速传感器的三轴电子罗盘研制D.桂林科技大学.20105 秦涛,马建仓,王彤,朱彦朋,柏会宁.电子罗盘最佳椭圆误差补偿方法J.仪器仪表学报.20116 杨玉含,黄先祥,周召发,孙立江.基于电子罗盘的快速粗定向方法研究J.计算机测量与控制.20127 吴建平.传感器原理及应用M.机械工业出版社.20128 谭浩强.C程序设计第三版M.清华大学出版社.20059 胡宁博,李剑.基于HMC5883的电子罗盘设计J.201110 蒋东方,文彩虹.磁罗盘误差分析与校准J.传感技术报.201011 杜英.电子罗盘测量误差分析和补偿技术研究D.中北大学.201112 黄文涛.新型电子罗盘设计及误差补偿研究D.广东工业大学.201313 韩峰.基于磁传感器的电子罗盘研究D.吉林大学.201314 李智,李翔.基于椭球假设的三轴电子罗盘罗差补偿研究J.仪器仪表学报.201115 蒋贤智.数字电子罗盘误差分析及校正技术研究J.现代雷达.2005致 谢首先感谢我的指导老师吴文明对我的悉心指导,由于我基础薄弱,很多东西要边做边学,进度一直较慢。吴老师的在选题、电路设计、错误排查、论文撰写等各方面都对我进行了耐心的指导和帮助。在文章的撰写方面,老师也给了我一些指导性的意见。基于单片机的电子罗盘设计是现阶段比较热门的课题,也是一个创新性比较强的课题,锻炼了我充分的自我思考能力和动手能力,给了我一个很好的体验研究过程的机会。还要感谢同学们,在我身边的同学给了我很大的帮助,在做这个课题之前我对C语言应用不是很熟练,由于同学C语言基础扎实,在软件方面都有很多实际操作经验,身边的同学给我推荐了一些相关的书籍,还抽出时间给我解释C语言方面的基本知识,帮助我学习相关知识,完成毕业设计进度,同时也加速了我对这个领域的了解。最后感谢学校为我提供实验室让我得以完成实物的装配,有了多方的帮助我的毕业设计才能够最终顺利完成。最后感谢所有关心和帮助过我的老师与同学们。附件:部分源程序:#include #include /Keil library #include /Keil library#include #define uchar unsigned char#define uint unsigned int/使用的端口,请按照以下接线#define DataPort P2/LCD1602数据端口sbitSCL=P10; /IIC时钟引脚定义sbitSDA=P11; /IIC数据引脚定义sbit LCM_RS=P37; /LCD1602命令端口sbit LCM_RW=P36; /LCD1602命令端口sbit LCM_EN=P35; /LCD1602命令端口 #defineSlaveAddress 0x3C /定义器件在IIC总线中的从地址typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区 uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量void delay(unsigned int k);void InitLcd();void Init_HMC5883(void); /初始化5883void WriteDataLCM(uchar dataW);void WriteCommandLCM(uchar CMD,uchar Attribc);void DisplayOneChar(uchar X,uchar Y,uchar DData);void conversion(uint temp_data);void Single_Write_HMC5883(uchar REG_Address,uchar REG_data); /单个写入数据uchar Single_Read_HMC5883(uchar REG_Address); /单个读取内部寄存器数据void Multiple_Read_HMC5883(); /连续的读取内部寄存器数据/以下是模拟iic使用函数-void Delay5us();void Delay5ms();void HMC5883_Start();void HMC5883_Stop();void HMC5883_SendACK(bit ack);bit HMC5883_RecvACK();void HMC5883_SendByte(BYTE dat);BYTE HMC5883_RecvByte();void HMC5883_ReadPage();void HMC5883_WritePage();void conversion(uint temp_data) wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余运算 shi=temp_data/10+0x30 ; temp_data=temp_data%10; /取余运算 ge=temp_data+0x30; void delay(unsigned int k)unsigned int i,j;for(i=0;ik;i+)for(j=0;j121;j+);void WaitForEnable(void)DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80);LCM_EN=0;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 InitLcd()WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0x0c,1);void DisplayOneChar(uchar X,uchar Y,uchar DData)/Y&=1;/X&=15;if(Y=1)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);延时5微秒(STC90C52RC12M)不同的工作环境,需要调整此函数,注意时钟过快时需要修改当改用1T的MCU时,请调整此延时函数void Delay5us() _nop_();_nop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五四制 统编版 语文 四年级 上册 7 呼风唤雨的世纪课件
- 电石厂特种设备知识培训课件
- 高级摄影基础知识培训课件
- 电焊经验知识培训总结课件
- 高空坠落应急知识培训课件
- 北京邮电大学考试题库及答案
- 5T4-0108-MEDI0641-antibody-生命科学试剂-MCE
- 新解读《GB-T 26548.6-2018手持便携式动力工具 振动试验方法 第6部分:夯实机》
- 社区戒毒考试题目及答案
- 内保考试题及答案
- 食堂工人培训课件
- 扣件式钢管脚手架培训课件
- 部编版三年级语文上册说课标说教材
- 2025至2030中国美容祛斑仪行业发展趋势分析与未来投资战略咨询研究报告
- 医德医风课件培训宣传
- 【艾瑞咨询】2024年中国健康管理行业研究报告494mb
- 2025-2030年中国连续性肾脏替代治疗(CRRT)行业市场现状供需分析及投资评估规划分析研究报告
- 现场员工计件管理制度
- 健康养老课件模板
- 2025java中高级面试题及答案
- 偷盗自愿赔偿协议书
评论
0/150
提交评论