|
單片機選用103系列,顯示器用OLED
主程序程序:DHT11驅(qū)動程序在附件里
#include "stm32f10x.h" //STM32頭文件
#include "sys.h"
#include "delay.h"
#include "relay.h"
#include "oled0561.h"
#include "dht11.h"
int main (void){//主程序
u8 b[2];
delay_ms(1000); //上電時等待其他器件就緒
RCC_Configuration(); //系統(tǒng)時鐘初始化
RELAY_Init();//繼電器初始化
I2C_Configuration();//I2C初始化
OLED0561_Init(); //OLED初始化
OLED_DISPLAY_8x16_BUFFER(0," YoungTalk "); //顯示字符串
OLED_DISPLAY_8x16_BUFFER(2," DHT11 TEST "); //顯示字符串
if(DHT11_Init()==0){ //DHT11初始化 返回0成功,1失敗
OLED_DISPLAY_8x16_BUFFER(4,"Humidity: % "); //顯示字符串
OLED_DISPLAY_8x16_BUFFER(6,"Temperature: C"); //顯示字符串
}else{
OLED_DISPLAY_8x16_BUFFER(4,"DHT11INIT ERROR!"); //顯示字符串
}
delay_ms(1000);//DHT11初始化后必要的延時(不得小于1秒)
while(1){
if(DHT11_ReadData(b)==0){//讀出溫濕度值 指針1是濕度 20~90%,指針2是溫度 0~50C,數(shù)據(jù)為十進(jìn)制
OLED_DISPLAY_8x16(4,9*8,b[0]/10 +0x30);//顯示濕度值
OLED_DISPLAY_8x16(4,10*8,b[0]%10 +0x30);//
OLED_DISPLAY_8x16(6,12*8,b[1]/10 +0x30);//顯示溫度值
OLED_DISPLAY_8x16(6,13*8,b[1]%10 +0x30);//
}else{
OLED_DISPLAY_8x16_BUFFER(6,"DHT11READ ERROR!"); //顯示字符串
}
delay_ms(1000); //延時,刷新數(shù)據(jù)的頻率(不得小于1秒)
}
全部資料51hei下載地址:
1-2-39-DHT11溫濕度顯示程序.7z
(222.17 KB, 下載次數(shù): 107)
2019-4-8 14:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|