標題: 基于51單片機的溫濕度顯示及控制系統代碼 [打印本頁]
作者: clf1195997052 時間: 2018-7-10 09:04
標題: 基于51單片機的溫濕度顯示及控制系統代碼
#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h> //包含頭文件
#define uchar unsigned char
#define uint unsigned int //宏定義
//定義四個輸出端口
sbit Led_jiashi=P3^4; //加濕
sbit Led_qushi=P3^3; //去濕
sbit Led_jiangwen=P3^1; //降溫
sbit Led_shengwen=P3^2; //升溫
//定義三個設置按鍵
sbit Key_SET = P2^0; //設置按鍵
sbit Key_ADD = P2^1; //加按鍵
sbit Key_SUB = P2^2; //減按鍵
sbit Key_OK = P2^3; //確定按鍵
//定義24C02數據口
sbit SCL = P1^0;
sbit SDA = P1^1;
//定義DHT11數據口
sbit DATA = P1^7;
sbit buzz=P3^5; //蜂鳴器接口
//定義LCD1602端口
sbit E=P1^3; //1602使能引腳
//sbit RW=P2^6; //1602讀寫引腳 我們只需要向液晶里寫數據,不需要讀取數據,所以就把讀寫引腳直接接地,程序里就不用單獨控制了
sbit RS=P1^2; //1602數據/命令選擇引腳
//定義全局變量
uchar U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp; //定義讀取溫濕度變量
ucharU8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;
uchar Mode,humidity,temperature; //設置模式、讀取到的濕度溫度數據存儲變量
char TH,TL,HH,HL; //溫濕度的上下限變量
bit bdataFlagStartRH,hot,cold,humid,dry,BJ; //開啟轉換溫濕度標志位、熱冷濕干和報警變量
//定時器0初始化
void Timer0_Init()
{
ET0= 1; //允許定時器0中斷
TMOD= 0x11; //定時器工作方式選擇
TL0= 0xb0;
TH0= 0x3c; //定時器賦予初值50ms
TR0= 1; //啟動定時器T0
}
//定時器0中斷
void Timer0_ISR (void) interrupt 1 using 0
{
ucharRHCounter; //定義計數變量
TL0= 0xb0;
TH0= 0x3c; //定時器賦予初值
RHCounter++; //每進一次中斷就是50ms,此變量加一
if(RHCounter%10==0&&BJ==1) //加到10的整數倍,并且報警標志位為1
buzz=!buzz; //開啟報警,每500ms蜂鳴器引腳取反一次,就是蜂鳴器一秒響一次
elseif(BJ==0) //報警標志位為0時
buzz=1; //關閉報警
//每2秒鐘啟動一次溫濕度轉換
if (RHCounter >= 40) //計數到40次,就是2s,啟動一次溫濕度轉換
{
FlagStartRH = 1; //啟動轉換變量置1
RHCounter = 0; //計數變量清零
}
}
余下完整程序見附件
-
-
基于51單片機的溫濕度控制程序.docx
2018-7-10 09:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
20.46 KB, 下載次數: 38, 下載積分: 黑幣 -5
作者: gyg 時間: 2019-12-27 17:41
請問有原理圖嗎?
作者: EarthZero 時間: 2021-7-17 17:30
你這個是普中科技的單片機嗎?
| 歡迎光臨 (http://www.denmoz.com/bbs/) |
Powered by Discuz! X3.1 |