Se han escrito el programa relacionado con la alarma de temperatura y el programa relacionado con DS18B20. Ayúdenme con el programa relacionado con la alarma del timbre y la configuración del límite de temperatura superior e inferior.
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 0,83
, por lo que este diseño Es altamente confiable el sexo y la 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 en el sitio con la temperatura objetivo establecida por el usuario para calcular 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 La lectura del complemento a dos con signo extendido se proporciona en forma de 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 activa el relé de estado sólido para que funcione.
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 tictac 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. La luz indicadora de enfriamiento, que está activa en un nivel bajo, es válida. 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 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. Utiliza un algoritmo de control difuso 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 solo el control de la temperatura en sí, sino también la idea de diseñar los circuitos periféricos y el software del microcontrolador, incluido el algoritmo de control. Hay que decir que esta idea es mejor. que el propio sistema de control.
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
Midiendo la misma temperatura estándar en diferentes puntos de temperatura 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 0,83
2. Análisis y discusión de resultados
Nuestro sistema cumple plenamente con los requisitos de diseño y la Error estático El error puede alcanzar 0,18 ℃ 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 sobreimpulso, 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) La temperatura se puede configurar 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: Recordatorio de alarma cuando la temperatura del agua alcanza el valor preestablecido
Función 2: Recordatorio de alarma cuando la temperatura del agua alcanza o excede el superior; y límites inferiores.
13
Apéndice [2] Diseño del circuito total
14
Apéndice [3] Lista de programas
TEMPER_L EQU 29H; Se usa para guardar los 8 bits bajos de la temperatura de lectura
TEMPER_H EQU 28H Se usa para guardar los 8 bits altos de la temperatura de lectura
FLAG EQU 38H; se detecta bandera 18B20
DAYU EQU 44H; temperatura establecida gt; temperatura real
XIYU EQU 45H; temperatura establecida lt
DEYU EQU 46H; temperatura = temperatura real
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; tubo digital un bit El número se almacena en la ubicación de la memoria
B_bit EQU 7Ah; el dígito de las decenas del tubo digital se almacena en la ubicación de la memoria
C_BIT EQU 78H; el punto decimal 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
p>
CLR P1.3
CLR P1.5 p>
SETB P1.6
MOV R4, #00H
MOV SP, #60H; Establecer área de pila
MOV PSW, #00H;
MOV 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 usar 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. 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 tanto, puede descartar los 4 bits inferiores. de 29H y mueva los 4 bits bajos de 28H a los 4 bits altos de 29H. De esta manera, se obtiene un nuevo byte. Este byte es la temperatura obtenida por medición real
;
.LCALL DISPLAY; llamando al tubo digital
Mostrar subrutina
JNB 00H, MAIN
CLR 00H
15
MOV A, 38H
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 apague el calentador
SETB P1.6; apaga la luz azul
SETB P0.7; apaga el ventilador
CLR DEYU
LCALL GET_TEMPER
PANTALLA DE LLAMADA
AJMP TT2
BUCLE: JNB DAYU, TT
CLR DAYU
SETB P1.3
SETB P1.6
SETB P0.7
CLR P1.7
LCALL GET_TEMPER
LCALL DISPLAY
p>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
p>
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
CLR P1.7
SETB P1.6
MOV R5, #20H
YS1: LCALL GET_TEMPER p>
p>
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, 0F8H, 80H;
DB 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH, 0FFH, 0CH; A, B, C, D, E, F, apagado,
TAB1: DB40H, 79H, 24H, 30H, 19H, 12H, 02H, 78H, 00H, 10H,
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 en tiempo real de llaves;
;****************************** *********** **** ************ ****************************
PITO: EMPUJAR ACC
EMPUJAR PSW
SETB RS0
CLR RS1
SET B 00H
PRINCIPAL1 : 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
LOOP1: CJNE A, #11, LOOP2
AJMP LAST0
BUCLE2: CJNE A, #12, LOOP3
LJMP LAST3
BUCLE3: 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
LOOP4: LCALL KEY1
CJNE A, #12, LOOP5
AJMP LAST3
p>
LOOP5: CJNE A, #11, LOOP4
LAST1: LCALL DIR p>
LCALL MUN
LCALL JD
LCALL BIJIAO
LAST3: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
L001: JC LAST02; temperatura establecida lt; temperatura real, aparecerá
MOV A, 29H
MOV 41H, A
MOV A, 38H
CJNE A, #25, L002
L003: CLR C; 0 lt; 41H
CJNE A, #3, L004
L005: MOV A, 30H
AÑADIR A, 0lt; menos de 3 grados
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 ÚLTIMO2
ÚLTIMO2: AJMP ÚLTIMO2
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; 0lt; 25, la diferencia es mayor a 3 grados
MOV 38H, A
AJMP LAST2
L002: JC L003
CJNE A, #50, L006
L007: CLR C 25lt;
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 p>
p>
CJNE A, #65, L010
L011: CLR C
SUBB A, 41H
CJNE A, # 3, L012
p>
L013: MOV A, 30H
AÑADIR A, #2
JNB ACC.4, L00131
ANL A, #0FH
p>
SETB C
L00131: MOV 39H, A
20
MOV A, 29H
ADDC A, # 1
MOV 38H, A
AJMP LAST2
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 p>
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
AJM
P LAST2
L014: JC L015
CLR C
MOV A, 38H
SUBB A, #1
MOV 38H, A
AJMP LAST2
L016: JC L017
LAST2: POP PSW
POP ACC
RET
******************************Escaneo de claves** *** ** *****************************
CLAVE1: LCALL KS1 escaneo de clave
<; p>JNZ LK1LCALL DIR
AJMP KEY1
LK1: LCALL DIR
LCALL DIR
21
LCALL KS1
JNZ LK2
LCALL DIR
AJMP KEY1
LK2: MOV R2, #0FEH
MOV R4, #01H
MOV A, R2
LK4: MOV P0, A
NOP
MOV R4, #01H
NOP
p>
MOV A, P0
JB ACC.3, SOLITARIO
MOV A, #00H
AJMP LKP
SOLITARIO: JB ACC.4, LTDOS
MOV A, #03H
AJMP LKP
LTDOS: JB ACC.5, LTHR
MOV A, #06H
AJMP LKP
LTHR: JB ACC.6, NEXT5
MOV A, #09H
AJMP LKP
NEXT5: INC R4
MOV A, R2
JNB ACC.2, KND
RL A
MOV R2, A
AJMP LK4
KND: AJMP KEY1
LKP: AGREGAR A, R4
PUSH ACC
p>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 p>
RET
;****************Encuentre el código binario para configurar la temperatura, el valor se almacena en la unidad 38H**** ************** ***
MUN: PUSH PSW
MOV R0, #7AH; encontrar valor clave
MOV A, @R0
CAMBIAR 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
p>ANL A, #0FH
AÑADIR A, R2
MOV 38H, A p>
MOV R0, #78H
MOV 39H, @R0
POP PSW
RET
;*** ****************Compare la temperatura real y la temperatura establecida, el tamaño y configure la bandera correspondiente ************
BIJIAO: MOV A, 29 H; temperatura real
Extraído de Baidu Know