• 大小: 745KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: bmp085  源代码  

资源简介

基于bmp085气压传感器制作的大气压强、温度、海拔高度测量仪(含详细源代码,部分bmp085相关资料)注释明了,方便阅读,程序模块化,方便移植。stc89c52,lcd12864

资源截图

代码片段和文件信息

/************************************************************************
文件名:BMP085driver.c
函数功能:BMP085的基本操作函数
备 注:
控制流程:
初始化(直接读取内部11位eeprom数据)     (1)
获取大气压强未补偿数据(发送控制指令-读取数据)   (2)
获取当前气温值(发送控制指令-读取数据) (3)
获取海拔高度值(根据(2)(3)两步得到的数据计算出结果) (4)
   获取海拔高度平均值(将(4)得到的数据分别放到10位数组中计算出平均值,
由于采用了1进1出的计算方式,因此该数据具有较好的实时性及线性效果(5)
显示结果(通过lcd12864显示测量结果) (6)
重复执行步骤(2)(3)(4)(5)(6)
************************************************************************/
#include “config.h“    
//定义传感器内部EEPROM存储单元里面11个值
int idata AC1AC2AC3B1B2MCMD; 
unsigned int idata AC4AC5AC6; 
unsigned char idata AltitudeTempFlag;  //计算海拔高度使用到的数据标志
int idata AltitudeTemp[10]={0000000000};  //海拔高度的10个临时值,取平均值
unsigned char code  Pressuretitle[16]={“气压温度测量“};
unsigned char idata ShowPressure[16]={“气压:         pa“};
unsigned char idata ShowTemperature[16]={“温度:       . ℃“};
unsigned char idata ShowAltitude[16]={“海拔:      .  米“};

/****************************************************************
函数名称:BMP085_Read_2Byte
函数功能:从BMP085读出2字节数据
入口参数:add  //寄存器地址
出口参数:读取的数据
备 注:
*****************************************************************/
int BMP085_Read_2Byte(uchar add)
{   
uchar msb lsb;
int dat;
    Start_I2c();                           //起始信号
    Send_Byte(BMP085_ADDWR);     //发送设备地址+写信号
if(ack==0) return(0);
    Send_Byte(add);   //发送存储单元地址
if(ack==0) return(0);
Start_I2c();                           //重复起始信号
    Send_Byte(BMP085_ADDWR+1);          //发送设备地址+读信号
if(ack==0) return(0);
    msb = RcvByte();                 
    Ack_I2c(0);                        //主机发送应答信号
    lsb = RcvByte();     
Ack_I2c(1);                        //主机收到最后一张字节数据后发送非应答信号
    Stop_I2c();                            //停止信号
    DelayMs(5);
    dat = msb << 8;
dat |= lsb;
return dat;    //返回接受到的两字节数据
}

/****************************************************************
函数名称:BMP085_Get_UT
函数功能:读出未补偿的温度值
入口参数:无
出口参数:未补偿的温度值
备 注:
*****************************************************************/
long BMP085_Get_UT(void)
{

    Start_I2c();                   //起始信号
    Send_Byte(BMP085_ADDWR);    //发送设备地址+写信号
    Send_Byte(CTRL_REG_ADD);            // write register address
    Send_Byte(0X2E);        // write register data for temp
    Stop_I2c();                    //发送停止信号
DelayMs(CONVERSION_TIME); //AD转换时间,温度最大转换时间为4.5ms
return (long) BMP085_Read_2Byte(0xF6);
}

/****************************************************************
函数名称:BMP085_Get_UP
函数功能:读出未补偿的气压值
入口参数:无
出口参数:未补偿的气压值
备 注:
*****************************************************************/
long BMP085_Get_UP(void)
{
long pressure = 0;

    Start_I2c();                    //起始信号
    Send_Byte(BMP085_ADDWR);    //发送设备地址+写信号
    Send_Byte(CTRL_REG_ADD);            // write register address
    Send_Byte(0X34);           // 低功耗模式指令
    S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       60392  2012-09-01 19:18  BMP085.uvopt
     文件       15495  2012-09-01 19:18  BMP085.uvproj
     文件       15485  2012-09-01 17:29  BMP085_uvproj.bak
     目录           0  2012-09-01 19:18  doc\
     文件      554716  2012-08-30 17:04  doc\BMP805中文手册.docx
     文件      197012  2012-08-30 16:38  doc\数字气压传感器BMP085应用笔记.pdf
     目录           0  2012-09-01 18:43  list\
     文件       39929  2012-09-01 18:43  list\BMP085.m51
     文件       18733  2012-09-01 18:43  list\bmp085drive.lst
     文件        2699  2012-09-01 18:43  list\components.lst
     文件       10901  2012-09-01 18:43  list\displaydrive.lst
     文件        7339  2012-09-01 18:43  list\i2cdrive.lst
     文件         816  2012-08-31 14:27  list\iicdrive.lst
     文件        6139  2012-09-01 18:43  list\LCD12864drive.lst
     文件        2219  2012-09-01 18:43  list\main.lst
     目录           0  2012-09-01 18:43  output\
     文件       17044  2012-09-01 18:43  output\BMP085
     文件       19406  2012-09-01 18:43  output\BMP085.hex
     文件         231  2012-09-01 18:43  output\BMP085.lnp
     文件         535  2012-09-01 18:43  output\BMP085.plg
     文件       11121  2012-09-01 18:43  output\bmp085drive.obj
     文件        1144  2012-09-01 18:43  output\components.obj
     文件        4192  2012-09-01 18:43  output\displaydrive.obj
     文件        2296  2012-09-01 18:43  output\i2cdrive.obj
     文件        2828  2012-09-01 18:43  output\LCD12864drive.obj
     文件         909  2012-09-01 18:43  output\main.obj
     目录           0  2012-09-01 14:16  src\
     文件       10020  2012-09-01 18:38  src\bmp085drive.c
     文件         818  2012-09-01 18:27  src\bmp085drive.h
     文件        1114  2012-08-31 14:31  src\components.c
     文件         714  2012-08-31 14:31  src\components.h
............此处省略8个文件信息

评论

共有 条评论