Red de conocimiento informático - Conocimiento de la instalación - 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.

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 (℃)

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

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

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>

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

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>

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

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 LK1

LCALL 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

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

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