资源简介
基于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个文件信息
相关资源
- bp神经网络源代码,可直接运行
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- dotnet 写字板 实验 源代码 不好请要不
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- 网上拍卖系统完整源代码
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- STM32F103 串口程序(完整版)
- VPC3_DPV1源代码,Profibus
- PB做的托盘程序(最小化后在左下角显
- 透明加密源码及说明
- 排队机叫号 源代码
- 五子棋C 源代码
- CAD LISP24个源代码
- 二叉树基本操作源代码
- 推箱子及人工智能寻路C 源代码
- opengl轮廓字体源代码
- 冈萨雷斯 数字图像处理 源代码(m文
- 直流伺服电机电路原理图(内附单片
- 哈哈冒险岛登入器源代码
- midi电子琴简单设计(附源代码).ra
- PESQ C源代码
- 画图程序MFC/VC/VC CRectTracker 串行化
- 莱卡 全站仪数据格式转换程序,有源
- HEX到Bin文件源代码
评论
共有 条评论