资源简介
下载程序,画个图就能用.之前在网上下载的程序啥的都跑不起来,这个真的能用,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
相关资源
- 基于AT89C51单片机的温度控制系统
- tdc-gp2的测试程序
- 51单片机上实现对短信猫控制的程序
- 51单片机读电池电量
- 51单片机最小系统Protel99SE原文件
- 51单片机汇编语言音乐程序
- 51单片机迷宫小车
- 基于51单片机的记分器
- 单片机温度测量,与protues仿真
- 基于51单片机的比赛用记分器
- 用DS1302与LCD12864设计的可调电子钟及仿
- 51单片机nrf24L01遥控小车
- 51单片机的数字温度,使用DS18B20,数
- 51单片机的步进电机控制,lcd1602显示
- stc 51单片机实现的交通灯包括keil程序
- 51单片机光敏电阻寻光程序
- 基于51单片机的遥控小车设计小车和遥
- 基于51单片机的DDS函数信号发生器的设
- 51单片机定时器初值计算器
- 单片机光敏电阻源码
- 基于51单片机的自感应风扇系统prote
- 电子万年历毕业设计基于AT89C51单片机
- 51单片机封装库
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于51单片机的万年历程序
- 基于51单片机的lcd篮球计分器程序
- 51单片机 等精度测频率 LCD显示 C程序
- 基于51单片机的锯齿波&正弦波发生器
- 利用51单片机实现了红外发射以及接受
- 51单片机LED16X16点阵滚动显示
评论
共有 条评论