打印

数字罗盘HMR3000

[复制链接]
1923|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jxmzzr|  楼主 | 2012-5-1 21:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
罗盘是利用地球自身的磁场来确定南北方向的,把罗盘给出的模拟信号数字化以后再输出,那么得到的方位信息便是数字化的,即为数字罗盘。传统的罗盘有一个很重要的应用要求,就是使用时一定要保持罗盘的水平,现代数字罗盘上加入倾斜传感谢器,通过软件进行罗盘的倾斜补偿,这样用户在使用时就不必刻意地保持罗盘的水平了,这就极大地方便了罗盘在定位中的应用。
HRM数字罗盘上自带标准的D型九针串口插头,可以利用插头与单片机串口连接,一般为了满足机载设备或是便携式设备的需要,采用单片机和HRM组成测控系统。单片机基于HRM3000的定位系统电路设计如下图

HMR3000与单片机通信系统设置HMR3000工作于选通模式,如果想获取一组方向俯仰数据,需要首先发停止指令使罗盘停止,然后发询问HPR语句的专用信息,再接收数据并存储。程序流程图如下

程序
***************************************************************************
程序的主要功能是向HRM发出询问指令(以询问 HPR 为例,$PTNT,HPR*78<cr><lf>),读取HRM3000送出的航向、俯仰、横滚状态信息,存储到内存即可
******************************************************************************
#include <reg51.h>       // 引用标准库的头文件
#include <stdio.h>
#include <absacc.h>
#include <math.h>
#define uchar unsigned uchar
#define uint unsigned uint
sbit P10=P1^0
uchar  dbuf[6]
uchar comanum, data1, data2, data3,;
main()
{
TMOD=0x20;             定时器工作模式设定
TH1=0xfd;               定时初值
TL1=0xfd;
PCON=0x00;;
SCON=0x50;
IE=;0x90
TR1=1;
P10=0;
K=2;
P12=1;
while(1){;}
}
//单片机与HRM3000采用串口中断的方式进行串行通信,通信可靠//
void sint() interrupt 4 using  1
{
RI=0;            软件清除中断标志位
If(SBUF=0x24)          //判断是否收到HPR格式语句的第一个字符“$”,其数值为
    {                   //0x24,如果收到就开始记录数据,并设置记录标志
      record=1;
      i=0;
      data1=0;           //航向数据字符数量变量
      data2=0;           //俯仰数据字符数量变量
      data3=0;           //横滚数据字符数量变量
comanum=0;
}
    If(record=1)           //开始处理数据信息
{
If(SBUF=0x2c)            //利用逗号区分收到的字符属于何种数据
    {comanum++;}
If(comanum=1)           //第一个逗号之后的字符数据航向数据
    {
Dbuf[Data1]=SBUF;
Data1++;
}
If(comanum=3)          //第三个逗号之后的数据属于俯仰数据
    {
Dbuf[Data2]=SBUF;
Data2++;
}
If(comanum=5)         //第五个逗号之后的数据属于横滚数据
    {
Dbuf[Data3]=SBUF;
Data3++;
}
         If(SBUF=”*’)         判断收到的数据是否是“*”如果是,结束记录
    {
     Dbuf1[data1]=’\’;      写航向数据字符结束标志“\”
     Dbuf2[data2]= ’\’;
Dbuf[3data3]= ’\’;
Data1=0;             ,所有的控制变量清零
Data2=0;
Data3=0;
Comanum=0;
Data1=0;
Data2=0;
Data3=0;
}
}
}

相关帖子

沙发
zheng522| | 2012-5-2 14:34 | 只看该作者
呵呵,这不就是一个通信嘛,主要是对协议的一个解析。

使用特权

评论回复
板凳
tianli1980| | 2012-5-2 19:56 | 只看该作者
数字罗盘技术主要基于地球磁场的测量,如果在使用的环境中除了地球以外的磁场,且这些磁场无法有效地屏幕时,那么罗盘的觎就有很大问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

460

主题

2188

帖子

12

粉丝