-
大小: 70KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-05-28
- 語言: 其他
- 標(biāo)簽: STC15F2K60S2??CO2測量??庫函數(shù)??
資源簡介
基于STC15F2K60S2單片機的DHT11+CO2測量系統(tǒng),在LCD1602上顯示。由于是基于庫函數(shù)的,所以方便用戶修改代碼,達(dá)到自己想要的功能。STC15F2K60S2單片機也是51內(nèi)核的,但是功能更加強大。

代碼片段和文件信息
#include
#include?“LCD1602.H“
#define?dht11_io?P20???//P2.0口作為數(shù)據(jù)讀取接口
#define?MAIN_Fosc 22118400L //主時鐘
#define?baud_rate 4800L //波特率
#define Timer1_Reload (65536UL?-(MAIN_Fosc?/?4?/?baud_rate)) //Timer1重裝值
#define?uchar?unsigned?char
#define?uint?unsigned?int
uchar?code?tab[9]={0xff0x010x860x000x000x000x000x000x79};//讀CO2氣體濃度值
uchar??date[]={0x000x000x000x000x000x000x000x000x00};
uchar?LCD1602_Table[]=“0123456789“;//LCD1602顯示標(biāo)尺
//變量定義
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;
//函數(shù)聲明
void??Delay30us();
void??Delay40us();
void??Delay18ms();
void? Delay1000ms();
void??read_byte(); //讀取一字節(jié)的數(shù)據(jù)并賦值給U8comdata
u8? ??read_temp(); //讀取溫度,返回溫度值
u8? ??read_humi(); //讀取濕度,返回濕度值
void? serial_init(); //串口初始化
void? serial_send_byte(u8?dat); //串口發(fā)送一個字節(jié)的數(shù)據(jù)
void? serial_send_string(u8?*dat);//串口發(fā)送字符串
void?UART_init(void)
{
S2_USE_P10P11(); //UART1?使用P30?P31口 默認(rèn)
????//?下面代碼設(shè)置定時器2
T2H??=?0xFD; //?波特率:9600?/22.1184MHZ1T
T2L??=?0xC0; //?波特率:9600?/22.1184MHZ1T
AUXR?=?0x14;????//?0001?0100,T2R=1啟動T2運行,T2x12=1,定時器2按1T計數(shù)?
//?下面代碼設(shè)置定串口2
S2CON?=?0x10;?????? ??//?0001?0000?S2M0=0(最普遍的8位通信)REN=1(允許接收)
//?下面代碼設(shè)置中斷
IE2??=0x01; ???? ??//?開串口2中斷
EA???=?1; ??????//?開總中斷
}
void?send(uchar?dat) ?//發(fā)送一字節(jié)????
?{
??S2BUF=dat;
??while(!TI2);
??CLR_TI2();
?}
void?UART2(void)?interrupt?8??//?串行口2中斷函數(shù)
{?
static?uchar?j;
???ES=0; ?//禁止中斷
???if(!RI2);
???CLR_RI2(); ????//清楚接收完畢標(biāo)志
???date[j]=S2BUF;?
???if(date[0]==0xff)??//判斷接收到的第一位為傳感器所發(fā)數(shù)據(jù)
??????j++;
??else
??????j=0;
???if(j==9) ???//接收傳感器所發(fā)數(shù)據(jù)9字節(jié)
?????j=0;?
???ES=1; ??//允許串口中斷
}
void?main()
{
uint??tmp;
????uchar?i;
Delay1000ms();
serial_init();
UART_init();
dht11_io?=?1;
LCD1602_Init();
WriteString(00“TH:?“);
WriteString(70“RH“);
WriteString(120“C“);
WriteString(01“CO2:“);
ES=1;
EA=1;
while(1)
{
for(i=0;i<9;i++)??//向co2傳感器發(fā)送數(shù)據(jù)
???{
????send(tab[i]);
???}
??Delay1000ms();
tmp=date[2]*256+date[3]; //計算出co2濃度值
if(tmp>9999)
?tmp=0;?
if((tmp/1000)>0)
WriteChar(61LCD1602_Table[tmp/1000]);
else? WriteChar(61‘?‘);
????????WriteChar(71LCD1602_Table[tmp%1000/100]);
WriteChar(81LCD1602_Table[tmp%100/10]);
WriteChar(91LCD1602_Table[tmp%10]); ??
SetCur(NoCur); ??????????//??有顯示無光標(biāo)
serial_send_string(“CO2:“);
if((tmp/1000)>0)
serial_send_byte(LCD1602_Table[tmp/1000]);
else?serial_send_byte(‘?‘);
serial_send_byte(LCD1602_Table[tmp%1000/100]);
serial_send_byte(LCD1602_Table[tmp%100/10]);
serial_send_byte(LCD1602_Table[tmp%10]); ??
serial_send_byte(‘?‘);
datas=read_temp();
WriteChar(100datas%100/10+‘0‘);
WriteChar(110datas%10+‘0‘);
SetCur(NoCur); ??????????//??有顯示無光標(biāo)
serial_send_st
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????63118??2018-05-31?01:11??DHT11\dht11
?????文件???????1016??2018-05-31?01:11??DHT11\dht11.build_log.htm
?????文件???????5221??2018-05-31?01:11??DHT11\dht11.hex
?????文件?????????57??2018-05-31?01:11??DHT11\dht11.lnp
?????文件??????28680??2018-05-31?01:11??DHT11\dht11.M51
?????文件???????2264??2017-06-17?15:41??DHT11\dht11.plg
?????文件??????71319??2017-06-17?15:47??DHT11\dht11.uvgui.Administrator
????.......?????71636??2018-05-31?01:17??DHT11\dht11.uvgui.WK
????.......??????5345??2018-05-29?17:08??DHT11\dht11.uvopt
????.......?????13939??2018-05-29?17:08??DHT11\dht11.uvproj
?????文件???????3406??2018-05-28?15:29??DHT11\LCD1602.C
?????文件????????705??2018-05-28?15:31??DHT11\LCD1602.h
?????文件???????7607??2018-05-29?17:05??DHT11\LCD1602.LST
?????文件??????27195??2018-05-29?17:05??DHT11\LCD1602.OBJ
?????文件???????7109??2018-05-31?01:11??DHT11\main.c
?????文件??????15979??2018-05-31?01:11??DHT11\main.LST
?????文件??????40371??2018-05-31?01:11??DHT11\main.OBJ
?????文件??????32846??2017-06-17?14:59??DHT11\STC15Fxxxx.H
?????目錄??????????0??2018-05-31?01:17??DHT11
-----------?---------??----------?-----??----
???????????????397813????????????????????19
評論
共有 條評論