La Red de Conocimientos Pedagógicos - Currículum vitae - Archivo crc

Archivo crc

Sistema de medición de temperatura basado en 51 microcontroladores

Resumen: Los microcontroladores son ampliamente utilizados en sistemas de detección y control. La temperatura es una cantidad que el sistema muchas veces necesita medir, controlar y mantener. El diseño del sistema de control de temperatura del microcontrolador AT89C2051 se presenta desde los aspectos de hardware y software, y se proporcionan el diagrama esquemático del hardware y el diagrama de bloques del programa.

Palabras clave: microcomputadora de un solo chip at89c 2051; sensor de temperatura ds 18b 20; medidas de temperatura

Introducción

La microcomputadora de un solo chip se ha utilizado ampliamente en electrónica También se utiliza en muchos productos electrónicos para la detección y control de temperatura. Por lo tanto, este artículo diseña un sistema de medición de temperatura basado en AT89C2051 de Atmel Company. Este es un circuito de detección de temperatura de bajo costo implementado utilizando puertos de E/S redundantes de un microcontrolador. El circuito es muy simple, fácil de implementar y adecuado para casi todos los tipos de microcontroladores.

1. Diseño de hardware del sistema

La estructura de hardware del sistema se muestra en la Figura 1.

1.1 Adquisición de datos

El circuito de adquisición de datos se muestra en la Figura 2. El sensor de temperatura DS18B20 recopila la temperatura en tiempo real del objeto controlado y la proporciona como entrada de datos al puerto P3.2 de AT89C2051. En este diseño, el objeto que controlamos es la temperatura ambiente. Por supuesto, como mejora, podremos separar el sensor de la placa de circuito y comunicarnos con él a través de una línea de datos para facilitar la medición de varios objetos.

DS18B20 es un sensor de temperatura digital de un solo cable producido por DALLAS Company, con un encapsulado de tamaño pequeño TO-92 de 3 pines. El rango de medición de temperatura es de -55 ℃ ~ +125 ℃, la precisión de conversión A/D programable de 9 bits a 12 bits y la resolución de medición de temperatura puede alcanzar 0,0625 ℃. La temperatura medida se emite en serie como una cantidad digital de 16 bits con signo extendido, que admite un rango de voltaje de 3 V ~ 5,5 V, lo que hace que el diseño del sistema sea más flexible y conveniente. Su potencia de trabajo puede introducirse de forma remota o generarse en forma de energía parásita; se pueden conectar varios DS18B20 en paralelo para formar tres o dos líneas. La CPU puede comunicarse con varios DS18B20 utilizando solo una línea de puerto, ocupando menos puertos en el microprocesador. Ahorra muchos cables y circuitos lógicos. Las características anteriores hacen que el DS18B20 sea muy adecuado para sistemas de detección de temperatura multipunto de larga distancia. La configuración de resolución y la temperatura de alarma configurada por el usuario se almacenan en EEPROM y se conservarán después del apagado. El DS18B20 permite más opciones de voltajes y características para que podamos construir un sistema de medición de temperatura económico. Como se muestra en la Figura 2, el pin DQ del DS18B20 es el terminal de entrada/salida de señal digital; el GND de 1 pin es la tierra de alimentación; el VDD de tres pines es el terminal de entrada de la fuente de alimentación externa.

AT89C2051 (en adelante, 2051) es un microcontrolador compatible con 8051, totalmente compatible con el MCS-51 de Intel. Tiene una memoria flash programable de 2K y 128B bytes de espacio de almacenamiento de datos, y puede controlar LED directamente, como el 805655.

1.2 Circuito interfaz

La figura 2 es un diagrama de conexión entre el microcontrolador 2051 y el sensor de temperatura DS18B20.

El circuito de interfaz está compuesto por el microcontrolador 2051 de ATMEL, chip Darlington ULN2003, decodificador 4511BCD, EEPROM24C16 serial (guardar parámetros del sistema), MAX232, tubo digital y circuitos periféricos. El microcontrolador se comunica en paralelo desde P1.0 ~. Después de la decodificación mediante el decodificador 4511BCD, se utilizan dos * * * diodos emisores de luz catódicos para mostrar estáticamente temperaturas de 10 bits y 10 bits.

Serial EEPROM24C16 es una especificación I2C estándar que requiere solo dos pines para lectura y escritura. Debido a que P1 de MCU 2051 es un puerto de E/S bidireccional, utilizamos P1 como puerto de salida en el diseño. Como se puede ver en la Figura 2, P1.7 está conectado al pin 6 del 24C16 como una señal de salida de reloj en serie, y P1.6 está conectado al pin 5 del 24C16 como una salida de datos en serie. P1.4 y P1.5 se utilizan como señales de selección de bits para los dos tubos digitales. Cuando P1.4=1, seleccione el primer tubo digital (unidad); cuando P1.5=1, seleccione el segundo tubo digital (décimo de decenas). Las señales de salida de p1.0 ~ p1.3 están conectadas al decodificador 4511 como pantalla del tubo digital.

Además, dado que el puerto P3 de MCU 2051 tiene funciones especiales, puerto de entrada serie P3.0 (RXD), puerto de salida serie P3.1 (TXD), interrupción externa 0 (entrada) P3.2, P3.3 (INT1) Interrupción externa 1P3.4 Como se puede ver en la Figura 2, P3.0 y P3.1 sirven como interfaces de comunicación en serie con MAX232; P3.2 y P3.3 sirven como interfaces de señal de interrupción; Se utiliza como punto de entrada externo de temporización/conteo. P3.7 se utiliza como salida de pulso para controlar el interruptor del diodo emisor de luz.

Dado que en el circuito se utiliza el tubo digital LED de cátodo **, se agrega un circuito Darlington ULN2003 para amplificar la señal y generar suficiente corriente para controlar la pantalla del tubo digital. Debido a que 4511 solo puede decodificar BCD decimal y solo puede traducirlo del 0 al 9, aquí usamos 4511 para decodificar y generar la temperatura que necesitamos.

1.3 Introducción al circuito de alarma

Figura 3 Diagrama de cableado del indicador de temperatura del tubo digital de siete segmentos

El circuito de alarma diseñado en este artículo es relativamente simple y consta de un zumbador autooscilante (siempre que se aplique un voltaje de más de 3 V a ambos extremos del zumbador, el zumbador seguirá sonando) y un diodo emisor de luz (como se muestra en la Figura 3). En este diseño, el zumbador está controlado por el amplificador de corriente IC ULN2003. Cuando la temperatura requerida alcanza un cierto límite superior o inferior (la temperatura límite superior en este artículo es 45 °C y la temperatura límite inferior es 5 °C), el circuito de alarma comienza a funcionar. El diseño del programa principal es el siguiente:

Main()//Función principal

{ unsigned char I = 0; <br/>; unsigned int m, n <br/>; >{ I = leer temperatura( ); //Leer temperatura}

If (i & gt0 & amp& ampi & lt=10) //Si la temperatura está entre 0 y 10 grados, asigna un valor directamente al tubo digital de siete segmentos.

{ p 1 = diseño p 1[I];}

En caso contrario//Si la temperatura es mayor a 10 grados,

{ m = I % 10;/ /Primero asigne un valor al primer tubo digital de siete segmentos