标题: 基于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
20.46 KB, 下载次数: 38, 下载积分: 黑币 -5
作者: gyg 时间: 2019-12-27 17:41
请问有原理图吗?
作者: EarthZero 时间: 2021-7-17 17:30
你这个是普中科技的单片机吗?
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |