环境温湿度监控系统(51+DHT11+1602液晶)

本文介绍了一种使用51单片机结合DHT11传感器和1602液晶显示器构建的环境温湿度监控系统。内容包括原理图、1602显示模块和DHT11模块的详细说明,以及在51单片机中使用nop指令进行精确延时的方法。
摘要由CSDN通过智能技术生成

环境温湿度监控系统(51+DHT11+1602液晶)

使用模块:
DHT11 Datasheet:https://www.alldatasheetcn.com/datasheet-pdf/pdf/1132088/ETC2/DHT11.html
SMC1602 Datasheet: https://www.alldatasheetcn.com/datasheet-pdf/pdf/106031/ETC/SMC1602A.html
89C52 Datasheet: https://www.alldatasheet.com/datasheet-pdf/pdf/240685/ATMEL/AT89C52.html

一.原理图

Schematic

二.1602显示模块

模块头文件:引脚定义,接口定义。

#ifndef _1602_H_
#define _1602_H_

#include <reg51.h>
#include <intrins.h>
#define LCD_Bus P2 //LCD1602数据总线
sbit RS = P0^7;	// LCD数据/命令选择端
sbit RW = P0^6;	// LCD读写选择端
sbit EN = P0^5;	// LCD使能端,高脉冲有效

sbit busy_led1 = P1^0; //LCD忙指示灯

extern void Lcd_Init(void);                    //1602初始化函数
extern void Lcd_WriteData(unsigned char Data); //写数据
extern void Lcd_WriteCmd(unsigned char Cmd);	 //写指令
extern void Lcd_WriteStr(unsigned char *Str); //写一串字符串

#endif

函数实现见GIT仓库或参考SMC1602 Datasheet编写。

三.DHT11模块

模块头文件:引脚定义,接口定义。

#ifndef _DHT11_H_
#define _DHT11_H_

#include <reg51.h>
#include <intrins.h>

sbit DHT11_Data = P0^4;   //dht11数据端口

sbit NOresponse_led2 = P1^1;
sbit start_led3 = P1^2;
sbit ERRORREVISE_LED4 = P1^3;
sbit test_led5 = P1^4;
sbit ASK_LED6 = P1^5;
sbit rec_byte_led7 = P1^6;
sbit rec_40_led8 = P1^7;

/* DHT11 测量范围 20~90%RH(5%RH) 0~50C(2C) 工作电压3~ 5.5V*/
extern unsigned char rec_dat[16];	//全局变量 用于显示的接收数据数组             
extern unsigned char RH,TH;
//extern void DHT11_delay_us(unsigned char us); //11.0592大概每次循环延时4.3us
extern void DHT11_delay_ms(unsigned int ms);  //ms延时
extern void DHT11_rec_40(void); 			  //接收40位全部数据
#endif

函数实现见GIT仓库或参考DHT11 Datasheet编写。

四.功能模块

主函数

#include <reg51.h>
#include <intrins.h>
#include "1602.h"
#include "DHT11.h"
#define uchar unsigned char
#define uint unsigned int
/*------------按键引脚---------------*/
sbit ok_SW1 = P3^5; //确定-SW1
sbit add_SW2 = P3^4;//增加-SW2
sbit sub_SW3 = P3^3;//减少-SW3
sbit sw_SW4 = P3^2; //选择-SW4
/*------------蜂鸣器引脚---------------*/
sbit bell = P3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值