资源简介

下载程序,画个图就能用.之前在网上下载的程序啥的都跑不起来,这个真的能用,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

评论

共有 条评论