-
大小: 46KB文件類型: .zip金幣: 2下載: 0 次發布日期: 2021-05-10
- 語言: 其他
- 標簽: STC15F2K60S2??DHT11??
資源簡介
STC15F2K60S2讀取DHT11溫濕度數據串口輸出代碼實例工程,解壓即用,完美運行

代碼片段和文件信息
//**************************
//程序說明:stc15f2k60s2采集dht11溫濕度傳感器數據,并從串口輸出
//采用的是22.1184M晶振
//**************************
#include //調用stc15f系列頭文件下載地址:??http://pan.baidu.com/s/1eRUbjLS
//IO口聲明
#define?dht11_io?P20???//P2.0口作為數據讀取接口
//常量聲明
#define?MAIN_Fosc 22118400L //主時鐘
#define?baud_rate 115200L //波特率
#define Timer1_Reload (65536UL?-(MAIN_Fosc?/?4?/?baud_rate)) //Timer1重裝值
//變量定義
u16?U8FLAG;
u8??U8temp;
u8??U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
u8??U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
u8??U8comdata;
u8 datas=0;
//函數聲明
void??Delay30us(); //22.1184M晶振精確延時30微秒
void??Delay40us(); //22.1184M晶振精確延時40微秒
void??Delay18ms(); //22.1184M晶振精確延時30毫秒
void? Delay1000ms(); //22.1184M晶振精確延時1000毫秒
void??read_byte(); //讀取一字節的數據并賦值給U8comdata
u8? ??read_temp(); //讀取溫度,返回溫度值
u8? ??read_humi(); //讀取濕度,返回濕度值
void? serial_init(); //串口初始化
void? serial_send_byte(u8?dat); //串口發送一個字節的數據
void? serial_send_string(u8?*dat);//串口發送字符串
void?main()
{
Delay1000ms();
serial_init();//串口初始化
dht11_io?=?1;
while(1)
{
datas=read_temp();
serial_send_string(“溫度:“);
serial_send_byte(datas%100/10+‘0‘);//十位
serial_send_byte(datas%10+‘0‘); ?//個位
serial_send_byte(‘?‘);
datas=read_humi();
serial_send_string(“濕度:“);
serial_send_byte(datas%100/10+‘0‘);//十位
serial_send_byte(datas%10+‘0‘); ?//個位
serial_send_string(“\r\n“);
Delay1000ms();
}
}
void?read_byte()
{
u8?i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超時3毫秒跳出
Delay30us();
U8temp=0;
if(dht11_io)U8temp=1;
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超時3毫秒跳出
if(U8FLAG==1)break;
U8comdata<<=1;
??U8comdata|=U8temp;
}
}
u8?read_temp()
{
dht11_io=0;
Delay18ms();
dht11_io=1;
Delay40us();
dht11_io=1;
if(!dht11_io)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超時3毫秒跳出
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超時3毫秒跳出
read_byte();
??U8RH_data_H_temp=U8comdata;
??read_byte();
??U8RH_data_L_temp=U8comdata;
??read_byte();
??U8T_data_H_temp=U8comdata;
??read_byte();
??U8T_data_L_temp=U8comdata;
??read_byte();
??U8checkdata_temp=U8comdata;
??dht11_io=1;
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
??if(U8temp==U8checkdata_temp)
??{
??? U8RH_data_H=U8RH_data_H_temp;
??? U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
??? U8T_data_L=U8T_data_L_temp;
??? U8checkdata=U8checkdata_temp;
??}
}
return?U8T_data_H;
}
u8?read_humi()
{
dht11_io=0;
Delay18ms();
dht11_io=1;
Delay40us();
dht11_io=1;
if(!dht11_io)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超時3毫秒跳出
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超時3毫秒跳出
read_byte();
??U8RH_data_H_temp=U8comdata;
??read_byte();
??U8RH_data_L_temp=U8comdata;
??read_byte();
??U8
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-17?15:47??DHT11\
?????文件???????31158??2017-06-17?15:41??DHT11\dht11
?????文件????????2353??2017-06-17?15:41??DHT11\dht11.hex
?????文件??????????41??2017-06-17?15:41??DHT11\dht11.lnp
?????文件???????15572??2017-06-17?15:41??DHT11\dht11.M51
?????文件????????2264??2017-06-17?15:41??DHT11\dht11.plg
?????文件???????71319??2017-06-17?15:47??DHT11\dht11.uvgui.Administrator
?????文件????????5371??2017-06-17?15:47??DHT11\dht11.uvopt
?????文件???????13413??2017-06-17?15:47??DHT11\dht11.uvproj
?????文件????????5149??2017-06-17?15:41??DHT11\main.c
?????文件???????10428??2017-06-17?15:41??DHT11\main.LST
?????文件???????33522??2017-06-17?15:41??DHT11\main.OBJ
?????文件???????32846??2017-06-17?14:59??DHT11\STC15Fxxxx.H
- 上一篇:OpenGL繪制圖形包含20多個基本
- 下一篇:STC15F2K60S2串口通信程序
評論
共有 條評論