亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
單片機BMP180無線胎壓監測tpms系統設計源碼
[打印本頁]
作者:
heitian
時間:
2017-7-30 02:12
標題:
單片機BMP180無線胎壓監測tpms系統設計源碼
我現在在做一個基于51單片機的TPMS,傳感器用BMP180,射頻用NRF24K01,顯示屏用1602,現在我已經可以顯示壓強了,現在分享給大家不過溫度不知道怎么弄了,不懂怎么改程序了.
0.png
(42.58 KB, 下載次數: 80)
下載附件
2017-7-30 02:11 上傳
單片機源程序如下:
#include"reg52.h" //頭文件
#include"Allhead.h"
#include <intrins.h>
#include "eeprom52.h"
sbit K1 = P3^2; //菜單
sbit K2 = P3^3; //加
sbit K3 = P3^4; //減
sbit Buzzer= P1^7; //控制端
unchar yemian=0;
unchar num=0;
unchar flag=0,a,b,c; //報警伐值
unchar SJqiya1,SJqiya2;//實際中所測的氣壓
unchar gaoya,diya; //gaoya代表氣壓上限,diya代表氣壓下限。
unchar lcdgaoya[5],lcddiya[5];
/******************把數據保存到單片機內部eeprom中******************/
void write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2001, gaoya);
byte_write(0x2002, diya);
byte_write(0x2060, a_a);
}
/******************把數據從單片機內部eeprom中讀出來*****************/
void read_eeprom()
{
gaoya = byte_read(0x2001);
diya = byte_read(0x2002);
a_a = byte_read(0x2060);
}
/**************開機自檢eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先讀
if(a_a != 2) //新的單片機初始單片機內問eeprom
{
gaoya = 98;
diya= 90;
a_a = 2;
write_eeprom();
}
}
void gaoyachuli() //氣壓顯示 上限
{
lcdgaoya[0]=gaoya/100+'0';
lcdgaoya[1]=gaoya%100/10+'0';
lcdgaoya[2]=gaoya%100%10+'0';
}
void diyachuli() //氣壓顯示 下限
{
lcddiya[0]=diya/100+'0';
lcddiya[1]=diya%100/10+'0';
lcddiya[2]=diya%100%10+'0';
}
void baojin() //報警裝置
{
a=RevTempDate0[3]-48;
b=RevTempDate0[4]-48;
c=RevTempDate0[5]-48;
SJqiya1=a*100+b*10+c; //所測的實際氣壓1
a=RevTempDate1[3]-48;
b=RevTempDate1[4]-48;
c=RevTempDate1[5]-48;
SJqiya2=a*100+b*10+c; //所測的實際氣壓2
if( SJqiya1>=gaoya || SJqiya1<diya || SJqiya2>=gaoya || SJqiya2<diya )
{
Buzzer=0; // 報警
}
if( SJqiya1>=diya && SJqiya1<gaoya && SJqiya2>=diya && SJqiya2<gaoya)
{
Buzzer=1; //停止報警
}
}
void key() //按鍵程序 選擇菜單模式
{
if(!K1)
{
LCDDelay(20);
if(!K1)
{
while(!K1)
;
yemian++;
if(yemian>=3) { yemian=0; }
}
}
}
shezhi() //對里面的數值進行修改
{
if(!K2)
{
NRFDelay(120);
if(!K2)
{
// while(!K2)
;
if(yemian==1)
{
gaoya+=1;
if(gaoya>250) { gaoya=250; }
write_eeprom(); //保存數據
gaoyachuli(); //
LcdShow(1,4,lcdgaoya);
}
if(yemian==2)
{
diya+=1;
if(diya>250) { diya=250; }
write_eeprom(); //保存數據
diyachuli(); //顯示
LcdShow(1,4,lcddiya);
}
}
}
if(!K3)
{
NRFDelay(120);
if(!K3)
{
// while(!K3)
;
if(yemian==1)
{
gaoya-=1;
if(gaoya<=1) { gaoya=1; }
write_eeprom(); //保存數據
gaoyachuli(); //
LcdShow(1,4,lcdgaoya);
}
if(yemian==2)
{
diya-=1;
if(diya<=1) { diya=1; }
write_eeprom(); //保存數據
diyachuli(); //顯示
LcdShow(1,4,lcddiya);
}
}
}
}
/************************主函數********************/
void main()
{
LCDInt();
LcdShow(0,2," Welcome ");
NRFDelay(1000);//短暫延時
LcdShow(1,2," (Kpa) ");
NRFDelay(2000);//短暫延時
LCDInt(); //初始化
init_eeprom(); //讀eeprom數據
NRF24L01Int(); //初始化
while(1)
{
key(); //按鍵掃描
//==================//進入工作狀態=====================
if(yemian==0)
{
if(flag==0)
{
flag=1;
LCDInt();
LcdShow(0,0," Left Right ");
}
NRFSetRXMode();//設置為接收模式
num++;
if(num>=20) { num=0; GetDate(); } //開始接受數
baojin();
}
//==================//進入氣壓上限設置狀態=====================
if(yemian==1) //進入設置模式
{
if(flag==1)
{
flag=2;
Buzzer=1;
LCDInt();
LcdShow(0,3," Pressure_H ");
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
基于51單片機的TPMS.zip
(400.91 KB, 下載次數: 140)
2017-7-30 02:10 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
danpianji80c51
時間:
2017-7-30 11:01
謝謝樓主分享
作者:
ttrroo
時間:
2017-8-22 13:32
謝謝樓主分享 我來看看
作者:
村風
時間:
2017-10-1 12:33
輪胎胎壓多少?傳感器量程多少?那個是大氣壓傳感器,傳感器不防水不防塵也不抗震,做胎壓監測,原理可行實際應用真心不行
作者:
112014
時間:
2018-8-11 21:50
能否顯示實時檢測到的氣壓大小呢?
作者:
wangjian123
時間:
2019-4-19 13:58
仿真圖怎么沒有
作者:
wangjian123
時間:
2019-4-19 14:02
仿真或者原理圖沒有
作者:
ax6808
時間:
2021-11-21 22:32
關鍵是省電、可靠性。謝謝分享。!剛搞清楚,我用的是STC8 硬件I2C+BMP280方案,暫時只需要氣壓讀數。不知道你具體用的什么MCU? 軟硬件I2C又不同,具體細節太多。。。。
testBMP280ID:
bmp280 id is right...
0101 1000
temp press
0000 0000 0000 0001 1000 1011 1000 1111
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1