资源简介
基于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个文件信息
相关资源
- libcoap-4.0.1
- IDW反距离加权插值法,源代码
- 微信小程序_模仿面包旅行APP源代码
- 微信小程序_火车票查询源代码
- 微信小程序_HiApp聊天工具源代码
- 微信小程序_模仿共享单车ofo源代码
- 音乐空间Music(微信小程序源代码)
- zw_linux0.11带注解源代码.zip
- GPS导航系统仿真源代码+仿真文件+虚拟
- 蚁群算法源代码
- 神经网络GRNN预测程序源代码
- NI USB-6001电压/阻测试项目源代码labv
- keil步进电机程序代码
- 教师档案管理系统源代码+配套论文
- 源代码教育经典的ExtJS全套教学视频
- 商城前端源代码
- 坦克大战游戏源代码
- STM32多路数据采集源代码
- openCL编程指导随书源代码
- 树莓派控制RGB LED源代码softPwm
- Cef3博文配套源代码
- TS解析源代码
- 智能交通灯 系统 源代码
- 《OSPF协议完全实现》随书源代码官方
- linux上实现多进程和多线程实现同步互
- Linux系统下基于Qt的局域网即时通信系
- 《数据结构及算法经典》源代码.
- 水晶报表pull和push方法实现源代码
- 一个Iphone网页浏览器源代码
- 仿京东首页_静态网页源代码.zip
评论
共有 条评论