剛加入貴站,參考許多資料,非常感謝。
前幾天在此下載了bme280 pdf,
得知濕度的讀出方法。
bme280與bmp280的差別僅在於多了濕度資料可以讀出,
所以用bmp280程式小改一下就完成。
以下是我購買的C51練習模組,
他帶有繼電器,接腳在p1_7
繼電器的三個引出點從左至右:
b接,com , a接
我用外接電源透過繼電器a接點接風扇,
超過25度C時轉
低於25度C時停
----------------------
LCD1602 用p0
RS P2_4
RW P2_5
EN P2_6
----------------------
bme280
SCL P3_0
SDA P3_1
----------------------
由於模組買來時並未附硬體電路圖,
所以僅寫出IO供參考。
---------------------
RUN
T:攝氏溫度
P:壓力(hpa)
H:海拔 (以1013.25hpa 為基點計算)
HU:濕度(%)
-----------------------
風扇轉
---------------------
濕度讀取的部份,
註測位址 0xF2
讀出位址0xFD,0xFE
---------------------
程式碼壓縮打包.
---------------------
新手,請多多指教。
单片机源程序如下:
- #include <reg52.h>
- #include "common.h"
- #include "Lcd.h"
- #include "bmp280.h"
- sbit Relay = P1^7 ;
- unsigned char abc[16];
- void main()
- {
- uint i,j;
- //int j = 0;
- //uart_init();
- Init_BMP280();//﹍てBMP180
- LCD_Init();
- LCD_Clear();//睲
- Delay_1ms(50);
- //EA = 1;
- while(1)
- {
-
- bmp280Convert();
- if (temperature >= 2500 ){
- Relay=0; //Fan on
- }
- else {
- Relay=1; //Fan off
- }
- if (j==0){
-
- abc[0]='T';
- abc[1]=':';
- abc[2]='0'+ temperature/1000;
- abc[3]='0'+ temperature%1000/100;
- abc[4]='.'; //计翴
- abc[5]='0'+ temperature%100/10;
- abc[6]='0'+ temperature%10/1;
- abc[7]=' ';
- abc[8]='P';
- abc[9]=':';
- abc[10]='0'+pressure/100000;
- abc[11]='0'+pressure%100000/10000;
- abc[12]='0'+pressure%10000/1000;
- abc[13]='0'+pressure%1000/100;
- abc[14]='.';
- abc[15]='0'+pressure%100/10;
-
- }
-
- if (j==1){
-
- abc[0]='H';
- abc[1]=':';
- abc[2]='0'+height/100000;
- abc[3]='0'+height%100000/10000;
- abc[4]='0'+height%10000/1000;
- abc[5]='0'+height%1000/100;
- abc[6]='.';
- abc[7]='0'+height%100/10;
- /*
- abc[2]='0'+humidity/10;
- abc[3]='0'+humidity%10;
- abc[4]=' ';
- abc[5]=' ';
- abc[6]=' ';
- abc[7]=' '; */
- abc[8]=' ';
- abc[9]='H';
- abc[10]='U';
- abc[11]=':';
- abc[12]='0'+humidity/10;
- abc[13]='0'+humidity%10;
- abc[14]=' ';
- abc[15]=' ';
- }
-
-
- for(i=0;i<16;i++)
- {
- LCD_Write_Char(i,j,abc[i]);
- }
- //j++;
- Delay_1ms(50);
- j=!j;
- }
- }
复制代码
所有资料51hei提供下载:
BMP280-LCD.rar
(10.9 KB, 下载次数: 118)
|