El sistema de control de calefacción y medición de temperatura diseñado en este diseño utiliza el microcontrolador AT89S52 como componente central, además de circuitos de adquisición de temperatura
, circuitos de teclado y pantalla, circuitos de control de calefacción y más. -limitar circuitos de alarma. Adopta un sensor de temperatura digital de tipo bus único DS18B20, un teclado matricial y una pantalla dinámica, y utiliza un relé de estado sólido fácil de controlar como dispositivo de conmutación para el control de la calefacción. Este trabajo no solo puede mostrar la temperatura actual en tiempo real sino también controlar la temperatura para alcanzar la temperatura requerida por el usuario y mantenerla constante a esta temperatura. El diseño del teclado matricial fácil de usar hace que configurar la temperatura sea simple y rápido, y el modo de visualización de dos números enteros y un decimal tiene una mayor precisión de visualización. El algoritmo de control basado en la teoría del control difuso
permite que la precisión del control cumpla plenamente con los requisitos de la producción social general. A través de una planificación razonable del diseño de software y hardware del sistema, se aprovechan al máximo las ventajas de integrar muchas unidades funcionales del microcontrolador a nivel de sistema, lo que reduce de manera efectiva los costos de hardware sin reducir las funciones.
, el sistema es fácil de controlar.
Los experimentos han demostrado que el sistema de control de temperatura puede lograr un error estático de 0,2 °C, una precisión de control de 0,45 °C y un exceso de sólo el 0,83 %
Así que este diseño Tiene una alta confiabilidad y estabilidad.
Palabras clave: control de temperatura constante de un solo chip, control difuso
1
Introducción
La temperatura es uno de los principales parámetros controlados en la industria. La producción y varios sistemas de control de temperatura relacionados con ella se utilizan ampliamente en metalurgia, industria química, maquinaria, alimentos y otros campos. El control de temperatura es un control de proceso que se encuentra a menudo en la producción industrial. El efecto de control de temperatura de algunos procesos afecta directamente la calidad del producto, por lo que se diseña una temperatura más ideal.
Los sistemas de control son extremadamente valiosos.
Diseño del sistema de hardware
1. Diagrama de bloques del circuito general
La estructura general de la medición de temperatura y el control del sistema de calefacción se muestra en la Figura 1. El sistema incluye principalmente recolección de temperatura en el sitio, visualización de temperatura en tiempo real, configuración de parámetros de control de calefacción, salida de control del circuito de calefacción, dispositivo de alarma y microcomputadora de un solo chip AT89S52 central del sistema como microprocesador.
Figura 1: Diagrama de bloques del principio general del sistema
El circuito de adquisición de temperatura transmite la temperatura del sitio al microcontrolador en forma de cantidades digitales. El microcontrolador combina la temperatura local con la temperatura objetivo establecida por el usuario y calcula la cantidad de control en tiempo real de acuerdo con el algoritmo de control difuso programado y solidificado. Esta cantidad de control controla la apertura y el cierre del relé de estado sólido para determinar el estado de funcionamiento del circuito de calefacción, de modo que la temperatura del agua se estabilice gradualmente en el valor objetivo establecido por el usuario. Después de que la temperatura del agua alcanza la temperatura objetivo establecida, cuando la temperatura desciende debido al enfriamiento natural, el microcontrolador realiza el control correspondiente y enciende el calentador comparando la temperatura muestreada con la temperatura objetivo establecida. Cuando el usuario requiere una temperatura inferior a la temperatura en tiempo real, este circuito puede utilizar un ventilador para enfriar. El tubo digital puede mostrar en tiempo real varios parámetros de estado durante el funcionamiento del sistema.
2. Diseño del circuito de adquisición de temperatura
El módulo del circuito de adquisición de temperatura se muestra en la Figura 2. La estructura interna de DS18B20 consta principalmente de cuatro partes: ROM de fotolitografía de 64 bits, sensor de temperatura, activadores de alarma de temperatura no volátiles TH y TL y registro de configuración. Entre ellos, DQ es el terminal de entrada/salida de señal digital; GND es la tierra de alimentación; VDD es el terminal de entrada de la fuente de alimentación externa.
2
Figura 2: Circuito de adquisición de temperatura
El sensor de temperatura en DS18B20 puede completar la medición de temperatura Tomando como ejemplo la conversión de 12 bits: use. 16 bits Se proporciona la lectura del complemento a dos con signo extendido, expresada en 0,0625 °C/LSB, donde S es el bit de signo.
Estos son los datos de 12 bits obtenidos después de la conversión de 12 bits, que se almacenan en dos RAM de 8 bits de 18B20. Los primeros 5 bits en binario
son bits de signo. Si la temperatura medida es mayor que 0, estos 5 bits son 0 y la temperatura real se puede obtener multiplicando el valor medido por 0,0625; si la temperatura es menor que 0, estos 5 bits son 1 y el valor medido es el valor; debe invertirse, más 1
y luego multiplicarse por 0,0625 para obtener la temperatura real.
3. Diseño de teclado y pantalla
El teclado utiliza una combinación de determinantes e interrupciones externas. Las funciones de cada tecla en la Figura 3 se definen en la Tabla 1 a continuación. La clave de configuración está conectada al pin INT 0 del microcontrolador S 0 S 9, SÍ y NO están conectados al puerto P0 del microcontrolador con cuatro filas y tres columnas. La clave REST es la clave de reinicio del hardware. y C forman un circuito de reinicio. El circuito del módulo se muestra en la Figura 3:
Tabla 1: Funciones de las teclas
Función del nombre de la tecla del botón
REST La tecla de reinicio reinicia el sistema
RET La tecla de configuración hace que el sistema se interrumpa y entre en el estado de configuración
S 0 S 9 Las teclas numéricas configuran la temperatura requerida por el usuario
SÍ Tecla de confirmación El usuario establece la temperatura objetivo y la confirma
NO se utiliza ninguna tecla de borrado después de que el usuario configura la temperatura incorrectamente o presiona la tecla SÍ por error
3
Figura 3 circuito de interfaz de teclado
La pantalla utiliza 3 dígitos ***Modo de visualización dinámica LED positivo, el contenido de la pantalla incluye el dígito de las decenas, el dígito de las unidades y un decimal del valor de temperatura
. Utilice el puerto P2 como salida de código de control de segmento y utilice 74HC244 como controlador. P1.0-P1.2 se utilizan como salidas de código de control de bits y están controlados por transistores PNP. El circuito del módulo es como se muestra en la Figura 4:
4. Diseño del circuito de control de calefacción
La Figura 4 muestra el circuito de interfaz
Se utiliza para controlar el Objeto controlado en el sistema de control de circuito cerrado Control del instrumento El objeto controlado es una taza calentadora eléctrica. El método de encender y apagar el voltaje aplicado a ambos extremos de la taza calentadora eléctrica se utiliza para ajustar la potencia de calentamiento del agua para lograr el objetivo. temperatura del agua deseada.
Objetivo del control. El relé de estado sólido SSR-40DA se utiliza para controlar el encendido y apagado del cable del horno eléctrico. Su uso es muy simple. Solo necesita configurar el nivel TTL en el terminal de control para cambiar el relé. Cuando se usa, puede usar un transistor NPN para conectarlo a un seguidor de voltaje. Cuando P1.3 del microcontrolador está en un nivel alto, el triodo hace funcionar el relé de estado sólido
Enciende el calentador para que funcione. Cuando P1.3 del microcontrolador está en un nivel bajo, el relé de estado sólido está apagado y el calentador no funciona. Control
El diagrama del circuito es el que se muestra en la Figura 5:
4
Figura 5 Circuito de control de calefacción
5. y circuito de luz indicadora
Cuando se alcanza la temperatura objetivo establecida por el usuario, se debe recordar al usuario mediante un sonido. En este momento, el timbre emitirá tres sonidos intermitentes
. . En este sistema, hemos diseñado una alarma de exceso de límite para los usuarios. Cuando la temperatura es 10 grados inferior al objetivo establecido por el usuario o superior a 10 grados, el timbre emitirá un tictac continuo. Cuando el microcontrolador P1.7 genera alta potencia normalmente, el transistor se enciende y el zumbador funciona para hacer sonar una alarma. Cuando P1.7 está en nivel bajo, el transistor se apaga y el zumbador no funciona.
D1 es la luz indicadora de calentamiento de la taza calentadora eléctrica, P1.5 está activa en un nivel bajo, D0 es la indicación de detección de DS18B20 y está activa en un nivel alto.
D10 es la luz indicadora de calentamiento de la taza eléctrica. Luz indicadora de enfriamiento, el nivel bajo es el nivel activo es válido. El circuito de alarma y luz indicadora se muestra en la Figura 6 a continuación:
Figura 6 Circuito de alarma y luz indicadora
5
Diseño del sistema de software
El software del sistema consta de tres módulos principales: módulo de programa principal, módulo de implementación de funciones y módulo de control de operación.
1. Módulo de programa principal
El programa principal completa principalmente la inicialización de cada componente del sistema de control de calefacción y la llamada de cada subrutina funcional, así como la medición real
p>En la coordinación de cada módulo funcional, cuando no hay solicitud de interrupción externa, el microcontrolador muestra la temperatura externa en tiempo real a través de un bucle.
Utilice la clave de configuración como interrupción externa 0 para que las teclas numéricas puedan procesarse en consecuencia. El diagrama de flujo del programa principal se muestra en la Figura 7 a continuación:
6
Figura 7 Diagrama de flujo del programa principal
7
2. Módulo de implementación de funciones
Se utiliza para controlar relés de estado sólido y tazas calentadoras eléctricas. El módulo de implementación de funciones se compone principalmente de subrutina de procesamiento de interrupciones, subrutina de procesamiento de comparación de temperatura, subrutina de procesamiento de teclado, subrutina de visualización, subrutina de alarma y otras partes. El diagrama de flujo de visualización del teclado y del programa de interrupción se muestra en la Figura 8:
3 Módulo de control de operación
Figura 8 Diagrama de flujo de teclado, visualización y subrutina de interrupción
<. p>Este módulo consta de conversión de escala, algoritmo de control difuso y subrutina de multiplicación utilizada en él.3.1 Conversión de escala
16
En la fórmula, A es el valor binario de temperatura y A0 son los datos de temperatura enviados de vuelta por la línea de señal digital de DS18B20.
8
Cuando el microcontrolador maneja la conversión de escala, los datos de 16 bits enviados de vuelta por la línea de señal del DS18B20 se desplazan 4 bits hacia la derecha.
en valor de temperatura binario. La parte decimal se obtiene consultando la tabla decimal. El diagrama de flujo del programa se muestra en la Figura 9:
Inicio
Combine los 4 bits bajos de 28H y los 4 bits altos de 29H en un byte
>Enviar el byte sintetizado (parte entera) a la unidad 29H
Enviar los 4 bits inferiores de la unidad 29H a A
Asignar la primera dirección de la tabla de constantes 2 a DPTR
Enviar el valor encontrado (es decir, la parte decimal) a la unidad 30H
Fin
3.2 Algoritmo de control difuso subrutina
p>
Figura 9 Diagrama de flujo de la subrutina de conversión de escala
Este sistema es un sistema de control de temperatura Dado que el modelo físico del horno eléctrico no se puede determinar con precisión, sus datos. no se puede establecer
Aprender modelos y transferir funciones. El calentador es un sistema inercial. Utilizamos un método de control difuso y cálculo difuso a través de múltiples mediciones de temperatura. Cuando el usuario establece la temperatura objetivo, es necesario apagar la temperatura del calentador con anticipación y usar la propia inercia térmica del calentador. p>
hace que la temperatura suba a su temperatura establecida. Cada 5 grados centígrados tomamos una medida de temperatura y cuando alcanza su temperatura apagamos el calentador y registramos el valor de temperatura que sube debido a la inercia térmica del calentador. Por lo tanto, se puede establecer una tabla de diferencia de temperatura de inercia térmica
y el método de búsqueda de tabla se utiliza en el programa para averiguar la temperatura de apagado correspondiente a la temperatura establecida correspondiente. A partir de los datos experimentales, podemos
ver que cuando la temperatura del agua se calienta de 0 ℃ a 50 ℃, la curva de inercia de temperatura se puede aproximar como una línea recta lineal.
La La temperatura del agua es de 50 ℃ a 50 ℃. La curva de inercia de temperatura calentada de ℃ a 100 ℃ se puede aproximar como otro segmento de línea recta. Al realizar un procesamiento de diferencia entre la temperatura objetivo establecida y la temperatura monitoreada por el sistema de control de temperatura, se puede calcular aproximadamente la temperatura de apagado anticipado del microcontrolador.
El diagrama de flujo del programa se muestra en la Figura 10:
9
4. Consulte el apéndice [2] para ver el programa fuente.
Figura 10 Diagrama de flujo de subrutina del algoritmo de control difuso
Resumen del diseño
Nuestro sistema de control de temperatura se basa en el diseño de Programa de microcontrolador AT89S52, puede mostrar la temperatura actual en tiempo real y realizar los controles correspondientes según los requisitos del usuario. Este sistema es un sistema de circuito cerrado, con alta estabilidad de trabajo y alta precisión de control. El algoritmo de control difuso se utiliza para reducir en gran medida el exceso. El software adopta una estructura modular para mejorar la versatilidad. El propósito de este diseño
no es sólo el control de temperatura en sí, sino que principalmente proporciona la idea de diseñar los circuitos periféricos y el software del microcontrolador, incluido el algoritmo de control.
Debería Se puede decir que esta idea es mejor que el propio sistema de control, es más importante.
1. Indicadores de rendimiento conseguidos por el diseño
1.1 Error de escala del sistema de control de temperatura
Colocamos el termómetro estándar y la sonda del sistema de control de temperatura en el En el mismo recipiente, seleccione varios puntos de temperatura diferentes, registre la temperatura que muestra el termómetro estándar y compárela con la temperatura que muestra el sistema de control de temperatura.
Los datos de medición se muestran en la Tabla 2 a continuación:
Tabla 2 Temperatura medida por el termómetro estándar y temperatura mostrada por el sistema de control de temperatura
Temperatura mostrada por el termómetro estándar y el control de temperatura (℃) p>
Termómetro estándar 16,9 47,7 57,8 63,0 72,8 85,1 90,9
Sistema de control de temperatura 16,5 48,0 58,3 62,9 73,0 85,5 90,5
Comparación de diferencias -0,4 0,3 0,5 0,1 0,2 0,4 -0,4
Error de escala 1,5%
10
1.2 Error estático del sistema de control de temperatura
Igual que el estándar en diferentes puntos de temperatura mediante medición. La diferencia de temperatura se utiliza para determinar el error estático del sistema de control de temperatura. Los datos de medición
son los siguientes en la Tabla 3:
Tabla 3 Temperatura estándar y temperatura mostrada por el sistema de control de temperatura
Temperatura estándar y temperatura mostrada por el sistema de control de temperatura (℃ )
Temperatura estándar 26,0 37,0 46,0 60,0 70,0 83,0
Valor de visualización del sistema 25,7 36,4 46,1 59,6 70,0 83,3
Diferencia -0,3 -0,6 - 0,1 -0,4 0 0,3
Error estático 0,18 ℃
1.3 Precisión del control del sistema de control de temperatura
Al configurar diferentes valores de temperatura, el calentador se calienta y cuando la temperatura se estabiliza. Registre los datos del termómetro en cada punto de temperatura
y el valor de visualización del sistema de control de temperatura. Los datos registrados son los siguientes en la Tabla 4:
Lectura del termómetro y temperatura mostrada por el sistema de control de temperatura (℃)
Temperatura establecida
Valor 20,0 28,0 35,0 45,0 55,0 75,0 87,0 91,0
Visualización del sistema
Valor 20,5 27,7 34,4 45,1 54,1 74,9 86,1 91,2
Diferencia 0,5 -0,3 -0,6 0,1 -0,9 -0,1 -0,9 0,2
Precisión de control 0,45 ℃
Exceso de 0,83%
2. Análisis y discusión de resultados
Nuestro sistema cumple plenamente con los requisitos de diseño. estático El error puede alcanzar los 0,18°C y el error de lectura con el termómetro estándar es del 1,5% en términos de lectura correcta. Nuestro diseño se puede utilizar en la producción industrial en general.
Este sistema tiene un pequeño valor de exceso, que es aproximadamente 0,83%. Aunque el exceso es un resultado desfavorable, por otro lado reduce el tiempo de ajuste del sistema. Se puede ver en su hoja de datos que el sistema es un sistema estable.
3. Evaluación del plan de diseño
3.1 Ventajas
En términos de hardware: Este plan de diseño utiliza un sensor de temperatura digital de un solo bus para mejorar la temperatura. Precisión. La precisión de la colección ahorra los recursos de la línea de puerto del microcontrolador. El plan también utiliza el relé de estado sólido SSR-40DA producido en los Estados Unidos, que puede controlarse con una sola línea de interfaz, como dispositivo de control de calefacción, lo que hace que el diseño sea simple y altamente confiable. En términos de precisión del control, este diseño hace suposiciones audaces y las verifica cuidadosamente, y utiliza algoritmos de control difusos para mejorar la precisión del control cuando no se puede determinar el modelo matemático del actuador.
En términos de software: Utilizamos programación modular con ideas claras, haciendo que el programa sea simple y altamente portátil.
3.2 Desventajas
Aunque este esquema de diseño utiliza los dispositivos electrónicos más avanzados del mercado actual para simplificar el diseño del circuito, el esquema de diseño
es costoso. Aunque este sistema tiene un pequeño exceso, aumenta el tiempo de ajuste.
Si se requiere una mayor precisión de control,
nuestro control difuso no será adecuado y será necesario modificar el programa.
11
3.3 Mejora del esquema
Para reducir el tiempo de ajuste sin cambiar la capacidad del calentador, se puede implementar antes de que la calefacción alcance el ajuste Temperatura
Enciende el ventilador para reducir el impacto de la inercia térmica en la temperatura. En términos de precisión del control, se puede utilizar un algoritmo de control PID digital avanzado para controlar el tiempo de calentamiento y mejorar la precisión del control.
El sistema de control se puede mejorar para permitir la comunicación en línea con el PC, de modo que la función de procesamiento de gráficos del PC se pueda utilizar para imprimir y mostrar la curva de temperatura
. El puerto serie AT89S52 es de nivel TTL, el puerto serie de la PC es de nivel RS232 y se utiliza un MAX232 como controlador de conversión de nivel.
Referencias
[1] Conceptos básicos de microcontroladores de Li Guangdi Beijing: Beihang University Press, 2001
[2] Diseño completo de medición por microordenador de un solo chip de Wang Furui y sistemas de control Beijing: Beihang University Press, 1997
[3] Principios y aplicaciones de instrumentos inteligentes de Zhao Maotai (segunda edición) Beijing: Electronic Industry Press, 2004
[4] Lai Shoutao Tecnología de control de microcomputadoras Beijing: Machinery Industry Press, 2000
[5] Sha Zhanyou Tecnología de aplicación y detección de multímetros analógicos y digitales Beijing: Electronic Industry Press 1999
12 p>
Apéndice
Apéndice [1] Manual del usuario
Descripción de la función del botón
Teclas numéricas: Después de presionar la tecla SET, presione la tecla numérica correspondiente (0~ 9) Se puede configurar la temperatura y la temperatura establecida
se mostrará en la pantalla LED en tiempo real
Tecla SET: presione la tecla SET para configurar las decenas y los dígitos; de la temperatura configure el dígito de las unidades y la parte decimal.
Tecla SÍ: Después de configurar la temperatura, presione la tecla SÍ, el sistema ajustará la temperatura del agua de acuerdo con la temperatura que configuró (debe ser mayor que). la temperatura real actual
) Llevar a cabo la calefacción
tecla NO: si presiona la tecla SET por error o ingresa incorrectamente, puede presionar la tecla NO para cancelar
; p>
Tecla RST: Reinicia el sistema.
Luces indicadoras y descripción de la alarma
Luz roja: señal de estado de calefacción
Luz verde: señal de funcionamiento normal del sensor de temperatura
Azul; Luz: Marca de estado de aislamiento;
Alarma: Función 1: alarma cuando la temperatura del agua alcanza el valor preestablecido
Función 2: alarma cuando la temperatura del agua alcanza o excede el valor superior e inferior; límites.
13
Apéndice [2] Diseño del circuito total
14
Apéndice [3] Lista de programas
TEMPER_L EQU 29H ;Se utiliza para guardar los 8 bits inferiores de la temperatura leída
TEMPER_H EQU 28H ;Se utiliza para guardar los 8 bits superiores de la temperatura leída
FLAG EQU 38H ;Ya sea DS se detecta bit de bandera 18B20
DAYU EQU 44H; temperatura establecida>temperatura real
XIYU EQU 45H; temperatura establecida DEYU EQU 46H; = temperatura real Temperatura GAOLE EQU 47H La temperatura del agua es superior a la temperatura máxima DILE EQU 48H La temperatura del agua es inferior a la temperatura mínima A_bit; EQU 79h; el tubo digital se almacena en la ubicación de memoria de un solo dígito B_bit EQU 7Ah; el dígito de las decenas del tubo digital se almacena en la ubicación de memoria C_BIT EQU 78H; del tubo digital se almacena en la ubicación de memoria ORG 0000H AJMP START ORG 0003H AJMP PITO ORG 0030H INICIO: CLR P1.7 CLR P1.3 CLR P1.5 SETB P1. 6 MOV R4, #00H MOV SP , #60H ;Establecer área de pila MOV PSW, #00H ; R0, #20H ;Primera dirección del área RAM MOV R7, #60H ; Número de unidades de área RAM ML: MOV @R0, #00H INC R0 DJNZ R7, ML CLR IT0 MAIN:LCALL GET_TEMPER ;Llama a la subrutina de lectura de temperatura para mostrar la temperatura Aquí consideramos ;Considere utilizar el tubo digital de dos dígitos proporcionado por el sitio web para mostrar la temperatura ;El rango de visualización es de 00 a 99 grados y la precisión de la visualización es de 1 grado ;Debido a que la precisión de cada dígito durante la conversión de 12 bits es de 0,0625 grados, ;No requerimos que se muestren decimales, por lo que está bien Descartar los 4 bits inferiores de 29H y mover los 4 inferiores bits de 28H en los 4 bits altos de 29H De esta manera se obtiene un nuevo byte, que es el byte real medido la temperatura obtenida ;LCALL DISPLAY Llame a la subrutina de visualización del tubo digital p> JNB 00H, PRINCIPAL CLR 00H 15 MOV A, 38H
p>CJNE A, #00H, SS
AJMP MAIN
SS: LCALL GET_TEMPER
LCALL DISPLAY;Llama a la subrutina de visualización del tubo digital
LCALL BIJIAO
LCALL XIAOYU
LCALL JIXIAN
JNB DEYU ,LOOP
CLR P1.3; Apagar el calentador p> p>
SETB P1.6;Apaga la luz azul
SETB P0.7;Apaga el ventilador
CLR DEYU
LCALL GET_TEMPER
PANTALLA DE LLAMADA
AJMP TT2
LOOP:JNB DAYU ,TT
CLR DAYU
SETB P1 .3
SETB P1.6
SETB P0.7
CLR P1.7
LCALL GET_TEMPER
PANTALLA DE LLAMADA
AJMP TT2
TT:JNB XIYU, TT2
CLR XIYU
CLR P0.7
CLR P1.6
CLR P1.3
CLR P1.7
LCALL GET_TEMPER
LCALL DISPLAY
TT2:MOV A, 29H
CLR C
CJNE A, 50H, JX
MOV A , 30H
CLR C
CJNE A, 51H, JIA1
AJMP YS2
JIA1:JC JX
MOV A, 51H
MOV 52H, A
AÑADIR A, #2
16
MOV 52H, A
CLR C
MOV A, 30H
CJNE A, 52H, JIA2
JIA2:JNC JX
YS2:SETB P1.7
CLR P1.6
MOV R5, #20H
YS:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS p>
CLR P1.7
SETB P1.6
MOV R5, #20H
YS1:LCALL GET_TEMPER
PANTALLA DE LLAMADA
DJNZ R5, YS1
YS3:SETB P1.7
CLR
P1.6
MOV R5, #20H
YS0:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS0
CLR P1.7
SETB P1.6
MOV R5, #20H
YS01:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS01
YS4:SETB P1.7
CLR P1.6
MOV R5, #20H
YS02:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS02
CLR P1.7
SETB P1.6
MOV R5, #20H
YS03:LCALL GET_TEMPER
LCALL DISPLAY
DJNZ R5, YS03
JX: MOV A, 29H
CJNE A, 31H, JX00
JX01:SETB P1.7
17
CLR C
AJMP ÚLTIMO
JX00:JC JX01
CLR P1.7
CJNE A,
JX02:SETB P1.7
CLR C
AJMP ÚLTIMO
JX03:JNC JX02
32H,
JX03
CLR P1.7
ÚLTIMO:LCALL GET_TEMPER
LCALL DISPLAY
AJMP SS
;*** **********************Área de mesa constante**** ******************* ** ***********************
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8 H, 80H ;0-8
DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH ;9,A,B,C,D,E,F,apagado,p. /p>
TAB1:DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H, ;0.--9.
TAB2:DB 0, 0, 1. , 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, ;Punto decimal
;************ **** *************Programa de retardo de 1 ms****************** *************** **** **
;************************ ****Rutina de servicio de interrupción* **** *** **********************
******
; Funciones completas como reconocimiento de claves, adquisición de valores clave y visualización de claves en tiempo real
;********; ********** ************* **************** ************* ********* ************
PITO: EMPUJAR ACC
EMPUJAR PSW
SETB RS0
CLR RS1
SET B 00H
MAIN1: MOV R7, #03H Los dígitos de la pantalla son 2 dígitos
MOV R0, #7AH
MOV 78H, #00H
MOV 79H, #00H
MOV 7AH, #00H
KK: LCALL DIR
LCALL KEY1
BUCLE1:CJNE A, #11, BUCLE2
AJMP LAST0
BUCLE2:CJNE A, #12, BUCLE3
LJMP LAST3
LOOP3: CJNE A, #10, L4
MOV A, #00H
L4: MOV @R0, A
LCALL DIR
DEC R0
DJNZ R7, KK
18
SETB 01H
ÚLTIMO0:JNB 01H, KK
BUCLE4:LCALL KEY1
CJNE A, #12, BUCLE5
AJMP ÚLTIMO3
LOOP5:CJNE A, #11, LOOP4
ÚLTIMO1:LCALL DIR
LCALL MUN
LCALL JD
LCALL BIJIAO
ÚLTIMOS3:POP PSW
POP ACC
RETI
;****************** *Subrutina de control de precisión**** ****** ******
JD: PUSH ACC
PUSH PSW
CLR C
MOV A, 38H
MOV 50H, A
MOV A, 39H
MOV 51H, A
CJNE A, 29H, L001
p>L001:JC LAST02 ;Establecer temperatura MOV A, 29H MOV 41H, A MOV A, 38H CJNE A, #25, L002 L003:CLR C ;0 SUBB A, 41H CJNE A, #3, L004 L005:MOV A, 30H AÑADIR A, #5 ;0 DA A JNB ACC .4 , L0051 ANL A, #0FH SETB C L0051:MOV 39H, A MOV A, 29H ADDC A, #1 MOV 38H, A AJMP LAST2 LAST02: AJMP LAST2 L004 :JC L005 MOV A, 39H 19 SUBB A, #0 DA A MOV 39H , A JNC L0041 DEC 38H L0041:MOV A, 38H SUBB A, #2 ;0< T< 25, la diferencia es mayor a 3 grados MOV 38H, A AJMP LAST2 L002:JC L003 CJNE A, #50 , L006 L007:CLR C ;25 SUBB A, 41H CJNE A, #3, L008 L009:MOV A, 30H AÑADIR A, #1 DA A JNB ACC.4, L0091 ANL A, #0FH SETB C L0091:MOV 39H, A MOV A, 29H ADDC A , #1 MOV 38H, A AJMP LAST2 L008:JC L009 MOV A, 39H SUBB A, #0 MOV 39H, A MOV A, 38H SUBB A, #2 MOV 38H , A AJMP LAST2 L006:JC L007 CJNE A, #65, L010 L011:CLR C SUBB A, 41H CJNE A, #3, L012 L013:MOV A, 30H AÑADIR A, #2 JNB ACC.4, L00131 ANL A, #0FH SETB C L00131:MOV 39H, A 20 MOV A, 29H ADDC A, #1 MOV 38H, A AJMP LAST2 p> p> L012:JC L013 MOV A, 39H SUBB A, #0 MOV 39H, A MOV A, 38H SUBB A, #2 MOV 38H, A AJMP LAST2 L010:JC L011 CJNE A, #90, L016 L017:CLR C SUBB A, 41H CJNE A, #2, L014 L015:MOV A, 30H AÑADIR A, #0 JNB ACC.4, L00151 ANL A, #0FH SETB C L00151:MOV 39H, A MOV A, 29H ADDC A, #1 MOV 38H, A AJMP LAST2 L014:JC L015 CLR C MOV A, 38H SUBB A, #1 MOV 38H, A AJMP LAST2 L016:JC L017 LAST2:POP PSW ACC POP RET ;************************** ** ***Escaneo de claves** ************************************* CLAVE1:LCALL KS1;Escaneo de claves JNZ LK1 LCALL DIR AJMP KEY1 LK1:LCALL DIR LCALL DIR 21 LCALL KS1 JNZ LK2 LCALL DIR AJMP KEY1 LK2:MOV R2, #0FEH; Determinar el valor clave MOV R4, #01H MOV A, R2 LK4:MOV P0, A NOP MOV A, P0 JB ACC.3, SOLITARIO MOV A, #00H AJMP LKP SOLO:JB ACC.4 , LTDOS MOV A, #03H AJMP LKP LTWO:JB ACC.5, LTHR MOV A, #06H AJMP LKP LTHR:JB ACC.6, NEXT5 MOV A, #09H AJMP LKP NEXT5:INC R4 p> p> MOV A, R2 JNB ACC.2 ,KND RL A MOV R2, A AJMP LK4 KND:AJMP KEY1 LKP: AGREGAR A, R4 PUSH ACC LK3:LCALL DIR LCALL KS1 JNZ LK3 POP ACC RET KS1: EMPUJAR PSW MOV P0 , #78H NOP MOV A, P0 ; Determinar si se presiona una tecla CPL A ANL A, #78H POP PSW 22 RET ;************ ****** Encuentre la temperatura de configuración Código binario, el valor se almacena en la unidad 38H*************** MUN: PUSH PSW MOV R0, #7AH ;Buscar valor clave MOV A, @R0 SWAP A DEC R0 AÑADIR A, @R0 MOV R1 , A ANL A, #0F0 H SWAP A MOV B, #10 MUL AB MOV R2, A MOV A, R1 ANL A, #0FH AÑADIR A, R2 MOV 38H, A MOV R0, #78H MOV 39H, @R0 POP PSW RET ****** *******Compare la temperatura real y la temperatura establecida y configure el indicador correspondiente********** BIJIAO:MOV A, 29 H ;Temperatura real Extraído de Baidu Knows