Diseño de simulación del sistema de control de temperatura y humedad del microcontrolador 51 DHT11 (simulación proteus + programa + diagrama esquemático + informe + video explicativo)


Diseño de simulación del sistema de control de temperatura y humedad del microcontrolador 51 DHT11 (simulación proteus + programa + diagrama esquemático + informe + video explicativo)

Diagrama de simulaciónproteus8.9及以上

Compilador de programas: keil 4/keil 5

Lenguaje de programación: lenguaje C

Número de diseño: S0044

1. Funciones principales:

Utilice el conocimiento que ha aprendido para crear un diseño de simulación proteus de controlador de temperatura y humedad basado en 51 microcontroladores.

1. Si los botones ajustan los límites superior e inferior de temperatura y humedad, el circuito correspondiente funciona cuando la temperatura y la humedad no están dentro de los límites superior e inferior. El sistema simula el módulo de refrigeración, el módulo de calefacción, el módulo de deshumidificación y el módulo de humidificación. a través de relés. Realizar control automático de temperatura y humedad.

2. El sistema utiliza el sensor DHT11.

3. Utilice LCD1602 para mostrar la temperatura, la humedad y los valores de configuración actuales.

4. El límite de temperatura inferior predeterminado es 20 °C y el límite de temperatura superior es 30 °C. El límite inferior de humedad es del 30% y el límite superior de humedad es del 80%.

Cabe señalar que el chip del microcontrolador 51 en la simulación es universal, AT89C51 y AT89C52 son modelos específicos del microcontrolador 51 y los núcleos son compatibles. 原理图不变情况下, Ya sea stc o at, las funciones del pin son las mismas y el programa es el mismo. El chip se puede reemplazar con 51 chips de microcontrolador como STC89C52/STC89C51/AT89C52/AT89C51.

El siguiente es un diagrama de visualización de esta información de diseño:

2. Simulación

Iniciar simulación

Abra el proyecto de simulación, haga doble clic en el microcontrolador en proteus, seleccione la ruta del archivo hexadecimal y luego inicie la simulación. Después de iniciar la simulación, LCD1602 muestra la temperatura y la humedad.

imagen

Durante la simulación, ajuste el valor del módulo de temperatura y humedad DHT11 presionando los botones para cambiar el valor mostrado.

imagen

imagenLas flechas hacia arriba y hacia abajo se utilizan para cambiar el valor de temperatura/humedad. La flecha hacia abajo disminuye el valor y la flecha hacia arriba aumenta el valor. imagenUtilice esta flecha para cambiar si el valor ajustado es temperatura o humedad.

imagenEl icono modificado muestra los valores de humedad y temperatura, el valor de humedad está en la primera línea y el valor de temperatura está en la segunda línea.

Después de iniciar la simulación, presione el botón Set/Switch para ajustar los umbrales superior e inferior. El límite de temperatura inferior predeterminado es 20 °C y el límite de temperatura superior es 30 °C. El límite inferior de humedad es del 30% y el límite superior de humedad es del 80%.

imagen

Después de iniciar la simulación y ajustar la humedad para exceder el 80% del umbral de humedad superior, el módulo de deshumidificación comienza a funcionar y la luz indicadora roja se enciende cuando la humedad excede el límite superior.

imagen

Después de iniciar la simulación y ajustar la humedad para que sea un 30% inferior al umbral de humedad inferior, el módulo de humidificación comienza a funcionar y se enciende la luz indicadora roja.

imagen

Después de iniciar la simulación y ajustar la temperatura para exceder el umbral de temperatura superior de 30°C, el módulo de enfriamiento comienza a funcionar y la luz indicadora roja se enciende.

imagen

Después de iniciar la simulación y ajustar la temperatura a 20°C por debajo del umbral de temperatura inferior, el módulo comienza a funcionar y la luz indicadora roja se enciende.

imagen

3. Código de programa

Utilice keil4 o keil5 para compilar, el código tiene comentarios y puede comprender el significado del código junto con el informe.

imagen
Código del programa principal

#include "reg51.h"
#include "lcd1602.h"
#include "DHT11.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit out1=P1^3;//输出控制
sbit out2=P1^4;
sbit out3=P1^5;
sbit out4=P1^6;

uchar time=0,mode=0;//系统变量
uchar disp1[]="00 ";
uchar lim1=20,lim2=30,lim3=30,lim4=80;//阀值

void main()//主函数
{
    
    
	init_1602();
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
    
    
		if(!k1)//设置
		{
    
    
			if(mode<4)
				mode++;
			else
				mode=0;
			write_com(1);
			while(!k1);
		} 
		if(!k2)//加
		{
    
    
			switch(mode)
			{
    
    
				case 1:
					if(lim1<lim2)
						lim1++;
					break;
				case 2:
					if(lim2<99)
						lim2++;
					break;
				case 3:
					if(lim3<lim4)
						lim3++;
					break;
				case 4:
					if(lim4<99)
						lim4++;
			}
			while(!k2);
		}
		if(!k3)//减
		{
    
    
			switch(mode)
			{
    
    
				case 1:
					if(lim1>0)
						lim1--;
					break;
				case 2:
					if(lim2>lim1)
						lim2--;
					break;
				case 3:
					if(lim3>0)
						lim3--;
					break;
				case 4:
					if(lim4>lim3)
						lim4--;
			}
			while(!k3);
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
    
    
	if(time<10)//0.5s
		time++;
	else
	{
    
    
		time=0;
		dht11_recive();//测量温湿度
		if(dht11_dat[2]<lim1)//加热
			out2=0;
		else
			out2=1;
	   	if(dht11_dat[2]>lim2)//散热
			out1=0;
		else
			out1=1;
		if(dht11_dat[0]<lim3)//加湿
			out4=0;
		else
			out4=1;
	   	if(dht11_dat[0]>lim4)//除湿
			out3=0;
		else
			out3=1;
		//显示
		write_com(0x0c);
		if(mode==0)//正常模式
		{
    
    
			disp1[0]=dht11_dat[2]/10+0x30;
			disp1[1]=dht11_dat[2]%10+0x30;
			disp1[2]='C';
			write_string(1,0,"Temp:");
			write_string(1,5,disp1);
			disp1[0]=dht11_dat[0]/10+0x30;
			disp1[1]=dht11_dat[0]%10+0x30;
			disp1[2]='%';
			write_string(2,0,"Humi:");
			write_string(2,5,disp1);
		}
		else	//设置模式
		{
    
    
			disp1[0]=lim1/10+0x30;
			disp1[1]=lim1%10+0x30;
			disp1[2]='C';
			write_string(1,0,"TL:");
			write_string(1,3,disp1);
			disp1[0]=lim2/10+0x30;
			disp1[1]=lim2%10+0x30;
			disp1[2]='C';
			write_string(1,8,"TH:");
			write_string(1,11,disp1);

			disp1[0]=lim3/10+0x30;
			disp1[1]=lim3%10+0x30;
			disp1[2]='%';
			write_string(2,0,"HL:");
			write_string(2,3,disp1);
			disp1[0]=lim4/10+0x30;
			disp1[1]=lim4%10+0x30;
			disp1[2]='%';
			write_string(2,8,"HH:");
			write_string(2,11,disp1);
			//设置光标
			switch(mode)
			{
    
    
				case 1:write_sfm(1,4);break;
				case 2:write_sfm(1,12);break;
				case 3:write_sfm(2,4);break;
				case 4:write_sfm(2,12);
			}
			write_com(0x0e);
		}
	}
	TH0=0X3C;
	TL0=0XB0;
}

4. Diagrama esquemático

El diagrama esquemático se dibuja usando AD y puede usarse como referencia para vincularlo al objeto físico. La simulación es diferente del objeto físico. Si no tiene experiencia, no cree fácilmente el objeto físico. Los principiantes cometerán muchos errores estúpidos al crear objetos físicos, lo que llevará mucho tiempo. Este diseño no proporciona respuestas a preguntas sobre objetos físicos.

La diferencia entre la simulación Proteus y los trabajos físicos:

1. Entorno de ejecución: la simulación de Proteus se ejecuta en la computadora, mientras que la simulación real se ejecuta en la placa de circuito del hardware.

2. Método de depuración: en la simulación de Proteus, puede realizar fácilmente una depuración en un solo paso y observar cambios en los valores de las variables, mientras que en objetos reales, debe depurar a través de un depurador o una salida de puerto serie.

Método de conexión del circuito: en la simulación de Proteus, la conexión del circuito se puede modificar mediante la configuración del software, pero en la realidad, debe modificarse a través de la placa de circuito del hardware y los cables de conexión.

3. Velocidad de ejecución: la simulación de Proteus generalmente se ejecuta más rápido que la real, porque la simulación se basa en la operación de la computadora, mientras que la real debe considerar factores como las limitaciones físicas de la placa de circuito y el tiempo de respuesta del dispositivo.

4. Realización de funciones: en la simulación de Proteus, se pueden realizar diferentes funciones a través de la configuración del software, pero en objetos reales, deben realizarse de acuerdo con el diseño del circuito y el rendimiento del dispositivo.

Insertar descripción de la imagen aquí

Lista de partes

Número de modelos de componentes Microcontrolador
AT89C51 1
condensador 10uf 1
condensador 30pf 2
oscilador de cristal 12MHZ 1
resistencia 10k 1
botón 4
sensor de temperatura y humedad DHT11 1
potenciómetro 1k 2
LED rojo 4
resistencias 100 ohmios 4
resistencias 1k 4
transistor PNP 4
relé 5V 4
display LCD1602 1 resistencia de fila
10k 1

Pieza de fuente de alimentación estabilizada
Conector de pines 2P 1
Condensador 0,1 uf 2
Condensador 100 uf 2
Regulador de voltaje 7805 1

5. Informe de diseño

Informe de diseño de 7386 palabras, que incluye diagrama de bloques de diseño, introducción, introducción al diseño de hardware, introducción al diseño de software, depuración de simulación, resumen y referencias.

imagen

6. Lista de contenido de información de diseño y enlace de descarga

Los materiales de diseño de materiales incluyen simulación, código de programa, videos explicativos, requisitos funcionales, informes de diseño, diagramas de bloques de diseño de software y hardware, etc.

0. Problemas de uso comunes y soluciones: ¡una lectura obligada! ! ! !

1. Diagrama de simulación

2. Código fuente del programa

3. Informe de propuesta

4. Diagrama esquemático

5. Requisitos funcionales

6. Lista de componentes

7. Informe de diseño

8. Diagrama de flujo de software y hardware

9. Vídeo explicativo

Información del software de diseño Altium

Información del software KEIL

Información del software Proteo

Materiales de aprendizaje sobre microcontroladores.

Habilidades de defensa

Descripciones comunes para informes de diseño

Haga doble clic con el mouse para abrir y encontrar más Proyecto de graduación del curso de microcontrolador 51 STM32.url

imagen

Enlace de descarga de datos (en el que se puede hacer clic):

Supongo que te gusta

Origin blog.csdn.net/weixin_52733843/article/details/132672318
Recomendado
Clasificación