资源简介
下载程序,画个图就能用.之前在网上下载的程序啥的都跑不起来,这个真的能用,proteus仿真也已经放在里面了,连接好bmp180和1602就能用。BMP180作为一个高精度、超小体积的气压传感器,在很多应用场景下都能见到它的身影,比如航模等一些需要高度数据的场合。

代码片段和文件信息
#include //加载头文件
#include
#include
#include
#include
#define uchar unsigned char //加载头文件
#define uint unsigned int
#define ushort unsigned short
#define BMP180_SlaveAddress 0xee //定义器件在IIC总线中的从地址
#define OSS 0
#define Lcd_Data P0 //LCD1602数据端口
sbit BMP180_SCL=P1^0; //IIC时钟引脚定义
sbit BMP180_SDA=P1^1; //IIC数据引脚定义
sbit LCD_RS=P2^0; //LCD1602命令端口
sbit LCD_RW=P2^1; //LCD1602命令端口
sbit LCD_EN=P2^2; //LCD1602命令端口
sbit ADCS =P3^5;
sbit ADDI =P3^7;
sbit ADDO =P3^7;
sbit ADCLK =P3^6;
uchar geshibaiqianwanshiwan; //显示变量
int dis_data; //变量
short ac1;
short ac2;
short ac3;
ushort ac4;
ushort ac5;
ushort ac6;
short b1;
short b2;
short mb;
short mc;
short md;
void conversion(long temp_data)
{
shiwan=temp_data/100000+0x30 ;
temp_data=temp_data%100000; //取余运算
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(uint k) //延时函数
{
uint ij;
for(i=0;i {
for(j=0;j<121;j++)
{;}
}
}
void LCD_W_Com(uchar CMD) //写指令函数
{
LCD_RS=0;
LCD_RW=0;
Lcd_Data=CMD;
Delay(5);
LCD_EN=1;
Delay(5);
LCD_EN=0;
}
void LCD_W_Dat(uchar dataW) //写数据函数
{
LCD_RS=1;
LCD_RW=0;
Lcd_Data=dataW;
Delay(5);
LCD_EN=1;
Delay(5);
LCD_EN=0;
}
void LCD_Init() //液晶初始化函数
{
LCD_W_Com(0x38);
LCD_W_Com(0x08);
LCD_W_Com(0x01);
LCD_W_Com(0x06);
LCD_W_Com(0x0c);
}
void LCD_Show_Onechar(uchar Xuchar Yuchar DData) //液晶显示一个字符
{
char addr;
if (Y == 0) //由输入的屏幕坐标计算显示RAM的地址
addr = 0x00 + X; //第一行字符地址从0x00起始
else
addr = 0x40 + X; //第二行字符地址从0x40起始
LCD_W_Com(addr|0x80);
LCD_W_Dat(DData);
// Y&=1;
// X&=15;
// if(Y)X|=0x40;
// X|=0x80;
// LCD_W_Com(X);
// LCD_W_Dat(DData);
}
void Delay5us() //延时函数
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
void Delay5ms() //延时函数
{
ushort n = 560;
while (n--);
}
void BMP180_Start() //起始信号
{
BMP180_SDA = 1; //拉高数据线
BMP180_SCL = 1; //拉高时钟线
Delay5us(); //延时
BMP180_SDA = 0; //产生下降沿
Delay5us(); //延时
BMP180_SCL = 0; //拉低时钟线
}
void BMP180_Stop() //停止信号
{
BMP180_SDA = 0; //拉低数据线
BMP180_SCL = 1; //拉高时钟线
Delay5us(); //延时
BMP180_SDA = 1; //产生上升沿
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 94874 2020-06-23 21:55 仿真程序\1.png
文件 27532 2020-06-23 21:54 仿真程序\Lcd1602气压温度采集
文件 10175 2020-06-23 21:54 仿真程序\Lcd1602气压温度采集.hex
文件 56 2020-06-23 21:54 仿真程序\Lcd1602气压温度采集.lnp
文件 30445 2020-06-23 21:54 仿真程序\Lcd1602气压温度采集.M51
文件 1029 2019-07-15 11:24 仿真程序\Lcd1602气压温度采集.opt.bak
文件 4949 2020-06-23 21:55 仿真程序\Lcd1602气压温度采集.plg
文件 2181 2019-07-15 11:24 仿真程序\Lcd1602气压温度采集.Uv2.bak
文件 56143 2020-06-23 21:55 仿真程序\Lcd1602气压温度采集.uvopt
文件 13423 2020-06-23 21:55 仿真程序\Lcd1602气压温度采集.uvproj
文件 0 2019-07-15 10:57 仿真程序\Lcd1602气压温度采集_Uv2.Bak
文件 56131 2020-06-23 21:55 仿真程序\Lcd1602气压温度采集_uvopt.bak
文件 34 2020-06-23 21:54 仿真程序\main.__i
文件 10874 2020-06-23 21:54 仿真程序\main.c
文件 20024 2020-06-23 21:54 仿真程序\main.LST
文件 31000 2020-06-23 21:54 仿真程序\main.OBJ
文件 6376 2005-03-22 15:22 仿真程序\STARTUP.A51
文件 14049 2020-06-23 20:11 仿真程序\STARTUP.LST
文件 749 2020-06-23 20:11 仿真程序\STARTUP.OBJ
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
评论
共有 条评论