找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3519|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于51單片機的溫濕度顯示及控制系統(tǒng)代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:368387 發(fā)表于 2018-7-10 09:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#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;          //升溫
//定義三個設(shè)置按鍵
sbit Key_SET = P2^0;           //設(shè)置按鍵
sbit Key_ADD = P2^1;         //加按鍵
sbit Key_SUB = P2^2;          //減按鍵
sbit Key_OK = P2^3;         //確定按鍵
//定義24C02數(shù)據(jù)口
sbit SCL = P1^0;
sbit SDA = P1^1;
//定義DHT11數(shù)據(jù)口
sbit DATA = P1^7;
sbit buzz=P3^5;                         //蜂鳴器接口
//定義LCD1602端口
sbit E=P1^3;         //1602使能引腳
//sbit RW=P2^6;          //1602讀寫引腳     我們只需要向液晶里寫數(shù)據(jù),不需要讀取數(shù)據(jù),所以就把讀寫引腳直接接地,程序里就不用單獨控制了
sbit RS=P1^2;              //1602數(shù)據(jù)/命令選擇引腳
//定義全局變量
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;                                                                                                                                                //設(shè)置模式、讀取到的濕度溫度數(shù)據(jù)存儲變量
char TH,TL,HH,HL;                                                                                                                                                                         //溫濕度的上下限變量
bit bdataFlagStartRH,hot,cold,humid,dry,BJ;                                                                                                                           //開啟轉(zhuǎn)換溫濕度標(biāo)志位、熱冷濕干和報警變量
//定時器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;                       //定義計數(shù)變量
       TL0= 0xb0;
       TH0= 0x3c;     //定時器賦予初值
       RHCounter++;                                   //每進一次中斷就是50ms,此變量加一
       if(RHCounter%10==0&&BJ==1)          //加到10的整數(shù)倍,并且報警標(biāo)志位為1
       buzz=!buzz;                                       //開啟報警,每500ms蜂鳴器引腳取反一次,就是蜂鳴器一秒響一次
       elseif(BJ==0)                              //報警標(biāo)志位為0時
       buzz=1;                                             //關(guān)閉報警
       //每2秒鐘啟動一次溫濕度轉(zhuǎn)換
   if (RHCounter >= 40)                  //計數(shù)到40次,就是2s,啟動一次溫濕度轉(zhuǎn)換
    {
      FlagStartRH = 1;                          //啟動轉(zhuǎn)換變量置1
          RHCounter = 0;                             //計數(shù)變量清零
    }
}
余下完整程序見附件

基于51單片機的溫濕度控制程序.docx

20.46 KB, 下載次數(shù): 38, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:497598 發(fā)表于 2019-12-27 17:41 | 只看該作者
請問有原理圖嗎?
回復(fù)

使用道具 舉報

板凳
ID:954109 發(fā)表于 2021-7-17 17:30 | 只看該作者
你這個是普中科技的單片機嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表