Principio de fuente de alimentación programable
Puedes consultarlo
Algunos de ellos pueden resultar útiles.
Resumen
Este tema presenta un diseño digital basado en un microcomputador de un solo chip. Este diseño utiliza una microcomputadora de un solo chip como controlador central, realiza la función de sincronización a través del conteo de frecuencia, genera tiempo en tiempo real al dispositivo de visualización: el tubo digital a través de la microcomputadora de un solo chip y realiza el inicio, parada, reinicio y tiempo. ajuste y otras funciones a través del teclado.
Palabras clave: microcontrolador, reloj digital, AT89S52, LED
1 Introducción
A medida que la tecnología de microcontroladores se vuelve cada vez más madura, su diseño de circuito de hardware y software flexibles El diseño ha Ha permitido que los microordenadores de un solo chip se utilicen ampliamente, desde pequeños productos electrónicos hasta grandes controles industriales, los microordenadores de un solo chip han desempeñado un papel decisivo. La pequeña estructura del sistema del microcontrolador es casi un microcosmos de todo el hardware programable. Se puede decir que "un gorrión es pequeño pero tiene todos los órganos internos".
Ahora estamos en una nueva era de explosión del conocimiento. Nuevos productos y nuevas tecnologías están surgiendo uno tras otro, y la tecnología electrónica se está desarrollando a un ritmo rápido. No es exagerado decir que la aplicación de la tecnología electrónica está en todas partes y que la tecnología electrónica cambia constantemente nuestras vidas y nuestro mundo. En esta era de rápido desarrollo, el tiempo es cada vez más valioso para las personas. En la vida acelerada, una vez que las personas encuentran cosas importantes y olvidan la hora, causarán grandes pérdidas, por lo que necesitamos un sistema de cronometraje para recordárselo a estas personas ocupadas. Sin embargo, con el desarrollo de la ciencia y la tecnología y el progreso de la sociedad, las personas tienen requisitos cada vez mayores para los relojes, y los relojes tradicionales ya no pueden satisfacer las necesidades de las personas. Los relojes digitales multifuncionales han experimentado cambios cualitativos en rendimiento y estilo, como despertadores electrónicos, despertadores digitales, etc. La aplicación de microcomputadoras de un solo chip en relojes digitales multifuncionales es muy común. Los relojes digitales basados en microcomputadoras de un solo chip han brindado una gran comodidad a las personas.
La mayoría de las herramientas de sincronización de alta precisión actuales utilizan osciladores de cristal de cuarzo. Debido a que los relojes electrónicos, los relojes de cuarzo y los relojes de cuarzo utilizan tecnología de cronometraje, tienen alta precisión, buena estabilidad, son fáciles de usar y no requieren ajustes frecuentes. Los relojes electrónicos digitales utilizan decodificación de temporización de circuito integrado en lugar de transmisión mecánica y utilizan pantallas LED en lugar de punteros para mostrar la hora, lo que reduce los errores de sincronización. Este reloj tiene la función de mostrar la hora en horas, minutos y segundos, y también puede mostrar la hora y los minutos. El contenido principal de la función de sincronización del reloj digital presentada en este artículo se implementa mediante una microcomputadora de un solo chip AT89S52, un dispositivo de sincronización moderno que utiliza tubos digitales para mostrar dinámicamente "horas", "minutos" y "segundos". En comparación con los relojes mecánicos tradicionales, tiene las características de un tiempo de viaje preciso y una visualización intuitiva. Su ciclo de cronometraje es de 24 horas y la escala completa es "23:59:59". Además, también cuenta con funciones como corrección de tiempo, función de memoria después de un corte de energía y sincronización de tiempo cuando se restablece la energía.
2 Demostración del esquema
2.1 Esquema uno
Este reloj digital utiliza FPGA como controlador principal. Debido a que FPGA tiene recursos poderosos, es conveniente y flexible de usar y fácil de expandir funciones, especialmente cuando se combina con EDA, puede lograr una alta eficiencia. Aunque la lógica de esta solución es más simple, el precio de una FPGA es muy alto, lo que es un poco derrochador para hacer un reloj electrónico, y la FPGA es difícil de dominar, por lo que esta solución no se estudió demasiado en este diseño y no se adoptado.
2.2 Solución 2
El reloj digital está compuesto por varios circuitos integrados digitales CMOS con diferentes funciones lógicas. * *10 circuito integrado digital, su diagrama esquemático se muestra en la Figura 2.1. Consta de tres partes: el segundo generador de señal (circuito de base de tiempo), contador de tiempo y circuito de visualización de decodificación y conducción. Su proceso de trabajo básico es que el circuito de base de tiempo genera una señal de pulso con un período preciso y la segunda señal de 1 HZ se transmite al contador posterior a través del divisor de frecuencia. Finalmente, el contador y la unidad de visualización accionan el tubo digital para mostrar el tiempo bit a bit. Sin embargo, los circuitos diseñados de esta manera son complejos, inflexibles y costosos, por lo que no se utiliza este enfoque.
Figura 2.1 Esquema 2 Esquema
2.3 Esquema 3
AT89S52 es un microcontrolador CMOS de 8 bits de bajo consumo y alto rendimiento.
Fabricado con la tecnología de memoria no volátil de alta densidad de Atmel, es totalmente compatible con las instrucciones y pines de los productos industriales 80C51. El flash en chip permite que la memoria del programa sea programable en el sistema, también para programadores tradicionales. AT89S52 integra una CPU inteligente de 8 bits y Flash programable en el sistema en un solo chip, lo que proporciona una solución altamente flexible y eficaz para muchos sistemas de aplicaciones de control integrados. Tiene un puerto serie, un oscilador de cristal en chip y un circuito de reloj. Además, el AT89S52 se puede reducir a una operación lógica estática de 0 Hz y admite dos modos de ahorro de energía seleccionables por software. En modo inactivo, la CPU deja de funcionar, lo que permite que la RAM, los temporizadores/contadores, los puertos serie y las interrupciones sigan funcionando. En el modo de protección de apagado, el contenido de la RAM se guarda, el oscilador se congela y todo el trabajo del microcontrolador se detiene hasta la siguiente interrupción o reinicio del hardware.
Basado en el microcontrolador AT89S52, se realiza el control del sistema. El circuito periférico es relativamente simple y el costo es relativamente bajo. El control flexible de este sistema puede cumplir con los requisitos básicos y de expansión de este proyecto, por lo que se seleccionó esta solución. El diagrama de bloques de hardware se muestra en la Figura 2.2 y el diagrama esquemático se muestra en el Apéndice Figura 6.1.
Figura 2.2 Diagrama de bloques del hardware del reloj digital
2.4 Composición del circuito y principio de funcionamiento
El principio de diseño del reloj digital en este artículo utiliza principalmente el microcontrolador AT89S52. El puerto P0 del microcontrolador controla la visualización de bits del tubo digital, el puerto P2 controla la visualización de segmentos del tubo digital y el puerto P1 está conectado a la tecla de corrección de tiempo. Se introduce corriente alterna de 220 V en el diseño y se genera un voltaje de 5 V después de la rectificación y el filtrado, que se utiliza para proporcionar voltaje de funcionamiento para el microcontrolador y el circuito de visualización.
Cuando todo el sistema está funcionando, el segundo generador de señal es la señal de base de tiempo de todo el sistema, que determina directamente la precisión del sistema de sincronización. La segunda señal estándar se envía al "segundo contador", que utiliza un contador hexadecimal y envía una señal de "pulso de minutos" cada 60 segundos, que servirá como pulso de reloj del "contador de minutos". El "contador de minutos" también utiliza un contador hexadecimal y emite una señal de "pulso de tiempo" cada 60 minutos, que será enviada al "contador de tiempo". El "contador de horas" utiliza un temporizador decimal de 24 dígitos, que puede realizar la acumulación de 24 horas al día. El circuito de visualización muestra la salida del contador de "horas", "minutos" y "segundos" a través de seis pantallas LED de siete segmentos. El circuito de calibración de tiempo agrega directamente un contador de llegada de señal de pulso, un contador de minutos o un contador de segundos para calibrar y ajustar los números de visualización de "hora", "minuto" y "segundo". En este diseño, la visualización del reloj de 24 horas, el diseño del cronómetro y la visualización dependen del temporizador del microcontrolador. El temporizador T0 se utiliza para generar una interrupción de 1. En el programa de interrupción, los números cambian cada segundo y los caracteres se muestran dinámicamente en el programa principal. Su diagrama de bloques funcional se muestra en la Figura 2.3.
Figura 2.3 Diagrama de funciones de interrupción sin cronómetro
La función principal del diseño del circuito del reloj digital es proporcionar la interfaz entre el microcontrolador y la pantalla LED externa, 273 pestillo de datos y selección de chip, y circuito de memoria externa 2764. Además, es necesario diseñar el circuito controlador de LED correspondiente.
(1) Principio del circuito y selección de dispositivos
Los nombres de los dispositivos de los componentes clave relacionados con este ejemplo y sus funciones principales en el circuito del reloj digital:
89S52: Microcomputadora de un solo chip, controla la visualización de datos del LED.
Led 1-LED 6: se utiliza para mostrar los datos del microcontrolador Tres de ellos utilizan 7 segmentos para mostrar las decenas de horas, minutos y segundos, y los otros tres utilizan 8 segmentos para mostrar las decenas. Número de horas, minutos y segundos.
74LS273: Latch, el código de segmento y el código de bits en el circuito de expansión de la pantalla LED utilizan dos piezas de 74LS273, enganchadas en el flanco ascendente.
74LS02: puerta NAND, utilizada junto con las señales de lectura y escritura del microcontrolador, seleccione el 74LS273 externo para determinar el contenido de visualización de los campos y palabras del LED.
7407: Circuito de compuerta de accionamiento, que proporciona corriente de accionamiento para la pantalla del tubo digital.
74LS04: NOT gate, niega la señal de selección de chip del microcontrolador y determina la selección de chip de 74LS273 junto con las señales de lectura y escritura.
L1-L4: LED, controlado por el microcontrolador P1.4-P1.7, utilizado para visualizar los cambios de hora del cronómetro y reloj.
Zumbador: El altavoz emite un sonido en las circunstancias especificadas por el programa para indicar el fin de los tiempos.
74LS373: pestillo de dirección, separa la dirección y los datos del puerto P0 e ingresa los datos y la dirección del puerto 2764 respectivamente.
2764: EPROM, proporciona área de almacenamiento de programas externos para el microcontrolador.
Los interruptores K0, K1 y K2 ajustan segundos, minutos y horas respectivamente.
Botón de reinicio: En el circuito de reinicio, desempeña el papel de reinicio del programa.
Pulso clave: proporciona un pulso único para realizar la función de conteo de pulsos externos mediante el microcontrolador y suma los bits correspondientes de 1 a través del pulso único.
(2) Asignación y conexión de direcciones
P2.7: Junto con la señal de escritura, forma la señal de selección de chip del puerto de bit de palabra El bit de dirección correspondiente de la palabra. El puerto de bits es 8000H.
P2.6: Junto con la señal de escritura, forma la señal de selección de chip del puerto de campo. El bit de dirección correspondiente del puerto de campo es 4000H.
D0-D7: El bus de datos del microcontrolador El contenido mostrado por el LED se transmite desde el microcontrolador al LED a través de la línea de datos D0-D7.
P2.0 - P2.5: El puerto MCU P2, conectado a la línea de dirección de gama alta del 2764, determina la dirección de la unidad de almacenamiento en el 2764.
P1.4-P1.7: El puerto P1 del microcontrolador está conectado al diodo de reflexión L1-L4, que es controlado por P1.4-P1.7 del microcontrolador para mostrar los cambios de hora. del cronómetro y del reloj.
(3) Introducción a la función
En la conexión entre el módulo de pantalla LED y el microcontrolador, la lectura y escritura del módulo de pantalla LED y los bits de palabra se completan a través del P2.6 y puertos P2.7 del microcontrolador, selección de canal de campo. Entre ellos, las señales de selección de chip de los puertos P2.6 y P2.7 deben realizar operaciones lógicas con las señales de lectura y escritura para garantizar la exactitud de la selección de campos y bits de palabras.
La memoria externa 2764 se conecta al microcontrolador a través de 74LS373, y la dirección se asigna a través de la línea de señal correspondiente del puerto P2. El rango de direcciones es 0000h-1ffh.
3 Diseño y demostración de cada circuito
3.1 Diseño del circuito de alimentación
En diversos equipos electrónicos, la fuente de alimentación regulada por CC es una parte indispensable no solo. Proporciona una variedad de fuentes de voltaje para el sistema, pero también afecta directamente los indicadores técnicos y el rendimiento antiinterferencias del sistema. Si desea obtener un voltaje de salida de 5 V, debe realizar una rectificación de onda completa de diodo en el voltaje de CA de 220 V y un filtrado del condensador. El 7805 generará un voltaje de CC estable de 5 V para proporcionar energía a todo el circuito.
Figura 3.1 Diagrama del circuito de fuente de alimentación
Cuatro IN4004 forman un circuito rectificador de puente, el capacitor (104uf) se usa para filtrar y el LM7805 estabiliza el voltaje rectificado y filtrado en una salida de 5V. .
3.2 Oscilador de cristal
El microcontrolador de la serie 51 tiene un circuito de reloj (cuyo núcleo es un amplificador inversor), pero no forma una señal de oscilación del reloj. deben estar conectados para formar una oscilación. La forma de utilizar este amplificador incorporado puede tomar diferentes decisiones según las diferentes ocasiones. Esto corresponde a las diferentes formas de generación del reloj del microcontrolador: si se usa este amplificador, la oscilación es en modo interno; si se usa una entrada de oscilación externa, es en modo externo;
Opción 1, modo interno
Si se conecta un resonador de cristal externo entre los pines XTAL1 y XTAL2 del microcontrolador 51, se producirá una autooscilación y una frecuencia interna del cristal es Lo mismo que el reloj oscilante.
El diagrama de oscilación de modo interno más común se muestra en la Figura 3.2.
Figura 3.2 Circuito oscilador de cristal
La frecuencia máxima de funcionamiento de diferentes microcontroladores es diferente. Por ejemplo, la frecuencia operativa máxima de AT89C51 es de 24 MHZ, mientras que la frecuencia operativa máxima de at89c 51 puede alcanzar los 33 MHZ. Debido a la mejora de la tecnología de fabricación, el rango de frecuencia operativa de las microcomputadoras de un solo chip ahora se extiende a ambos extremos y puede alcanzar más de 40 MHZ.
Cuanto mayor es la frecuencia de oscilación, más rápido funciona el microcontrolador, pero al mismo tiempo, mayores son los requisitos de velocidad para la memoria y las placas de circuito impreso. Una frecuencia demasiado alta puede provocar en ocasiones dificultades de programación (como retrasos en la programación). En general, no se recomienda utilizar osciladores de cristal con frecuencias altas. Los sistemas de aplicación de microcontroladores de la serie 51 generalmente utilizan osciladores de cristal con una frecuencia de 6 ~ 12 MHz.
Este circuito no tiene requisitos estrictos sobre los valores de C1 y C2, pero el tamaño del condensador afectará la estabilidad del oscilador, la frecuencia del oscilador y la velocidad de inicio de la oscilación. En términos generales, cuando el cristal está conectado externamente, los valores de C1 y C2 generalmente se seleccionan entre 20 y 100 pf.
El oscilador de cristal es el núcleo del reloj digital. La estabilidad y la precisión de la frecuencia del oscilador determinan la precisión de la sincronización del reloj digital. Normalmente, los cristales de tiempo se utilizan para formar circuitos osciladores. En términos generales, cuanto mayor sea la frecuencia del oscilador, mayor será la precisión de la sincronización. En este diseño, la fuente de señal proporciona pulsos de 1 HZ por segundo, que se obtienen mediante división de frecuencia del cristal. El microcontrolador AT89S52 tiene un amplificador inversor para formar un oscilador interno. XTAL1 y XTAL2 son los terminales de entrada y salida del amplificador respectivamente. Para formar osciladores autoexcitados se pueden utilizar tanto cristales sensibles al tiempo como resonadores cerámicos. Para controlar el dispositivo desde una fuente de reloj externa, XTAL2 se puede conectar desde XTAL1 en lugar de estar conectado. Dado que la señal de reloj externo se activa mediante la división de frecuencia por dos y se utiliza como entrada del circuito de reloj externo, no existen otros requisitos para el ciclo de trabajo de la señal de reloj externo: la duración más larga de nivel bajo y la menos alta. -La duración del nivel debe cumplir con los requisitos. El terminal de entrada del amplificador inversor es XTAL1 y el terminal de salida es XTAL2. Un cristal sensible al tiempo y dos condensadores están conectados a ambos extremos para formar un oscilador autoexcitado estable. La capacitancia suele ser de unos 30 PF. El rango de frecuencia de oscilación es de 1,2 ~ 12 MHz.
La señal de oscilación del oscilador de cristal se envía desde el pin XTAL2 al generador de reloj en el chip. El generador de reloj es un divisor por dos. Proporciona señales de reloj de dos fases P1 y P2 a la CPU. Cada ciclo de reloj tiene dos tiempos (fases) P1 y P2. La CPU utiliza los relojes de dos fases P1 y P2 como tiempos básicos para dirigir el trabajo coordinado de varias partes del microcontrolador AT89S52. En este diseño, la frecuencia de oscilación del cristal oportuno es 11,0592 MHz
Además, al diseñar la placa de circuito, el oscilador de cristal y el condensador deben estar lo más cerca posible del chip del microcontrolador para reducir la capacitancia distribuida y Garantizar aún más la estabilidad del oscilador.
Opción 2, modo externo
En sistemas de aplicaciones a gran escala, se pueden utilizar múltiples microcontroladores. Para garantizar la sincronización de las señales de reloj entre microcontroladores, se debe introducir una señal de pulso externa común única como pulso de oscilación de cada microcontrolador, es decir, el modo externo se utiliza para introducir directamente la señal de oscilación externa en XTAL1 y XTAL2. patas.
Dado que los pines de entrada del reloj interno de HMOS y CHMOS son diferentes, los métodos de acceso de las señales de oscilación externas también son diferentes. Así que no elijas esta opción.
3.3 Circuito de temporización
Cuando el reloj digital comete un error es necesario corregir la hora. El circuito de control de sincronización realiza la calibración de "segundos", "minutos" y "horas". El diagrama del circuito se muestra en la Figura 3.3:
Figura 3.3 Circuito de temporización
3.4 Circuito de visualización de decodificación
La función del circuito de decodificación es convertir "segundos" , "minutos", El estado de salida (códigos 8421) de cada contador en "horas" se traduce en la señal eléctrica requerida por el tubo digital de siete segmentos (u ocho segmentos) para mostrar el número decimal y luego el número correspondiente. se muestra a través del tubo digital. El decodificador utiliza el decodificador/controlador 74LS248. La pantalla utiliza tubos digitales catódicos * * * de siete segmentos. La parte de la pantalla es la parte más importante de todo el reloj electrónico y * * * requiere una pantalla LED de 6 dígitos. Adopte el modo de visualización dinámica. El llamado modo de visualización dinámica significa que los números de tiempo se muestran en el LED uno por uno. Controla qué LED muestra el número a través de un terminal de selección de bits. Dado que los intervalos de tiempo que muestran estos tubos digitales LED son muy cortos, las personas pueden ver que muestran los números de tiempo juntos. El modo de visualización dinámica utiliza menos interfaces y ahorra pines de CPU. Debido al problema del puerto y la superioridad del método de visualización dinámica, este diseño adopta el método de conexión negativa * * *.
La pantalla LED tiene dos puertos: selección de segmento y selección de posición. En primer lugar, la selección de segmentos consta de ocho puertos LED. Al ingresar diferentes datos binarios en estos ocho puertos, su visualización de la hora es diferente, de modo que podemos obtener la visualización de la hora y la temperatura deseadas. Pero para el AT89S52 de veinte pines, el LED de ocho segmentos es demasiado, así que elegí el chip 2764 para expandir los pines del chip principal, el 74LS164 es el registro de desplazamiento de datos y el 74LS373 también se seleccionó como caché de datos. .
Al seleccionar dispositivos, preste atención a la combinación del decodificador y la pantalla, incluidos dos aspectos: primero, la combinación de potencia, es decir, la potencia de conducción debe ser lo suficientemente grande. Dado que la corriente de trabajo del tubo digital es relativamente grande, se debe seleccionar un decodificador con una corriente de conducción grande o un decodificador de salida OC. El segundo es la coincidencia de niveles lógicos. Por ejemplo, el tubo digital LED de cátodo * * * adopta un decodificador efectivo avanzado. Los decodificadores de pantalla recomendados son 74LS48, 74LS49 y CC4511.
3.5 Estructura y principio del circuito de visualización
(1) El microcontrolador suele tener 7 segmentos de LED que forman una estructura de "8". ¡También hay un LED de punto decimal para mostrar lugares decimales! ¡Existe una manifestación como * * * Yin * * * Yang! El ánodo (terminal macho) del LED se llama pantalla de ánodo y el cátodo se llama pantalla de cátodo.
Una pantalla de un dígito está compuesta por 8 diodos emisores de luz, 7 de los cuales forman cada trazo de la fuente "8", y el otro LED tiene un punto decimal. Cuando se aplica un determinado voltaje de CC a un determinado segmento del LED, los trazos en ese segmento se volverán más brillantes sin voltaje, se oscurecerá; Para proteger cada LED de daños, se debe agregar una resistencia limitadora de corriente.
En este diseño, los dígitos de diez dígitos de horas, minutos y segundos se muestran en siete segmentos, y los dígitos se muestran en ocho segmentos, lo que facilita la distinción de horas, minutos y segundos.
(2)Interfaz de pantalla LED y modo de visualización
Hay dos tipos de pantallas LED: modo de visualización estática y modo de visualización dinámica. La visualización estática significa que cuando se muestra un carácter en el monitor, el segmento correspondiente se abre o cierra continuamente hasta que se muestra otro carácter. Cuando la pantalla LED funciona en modo de visualización estática, el cátodo de cada posición está conectado a tierra; si es un ánodo, está conectado a una fuente de alimentación de 5 V. La selección de línea de segmento de cada bit está conectada al puerto de salida de un pestillo de 8 bits. Cada bit en la pantalla es independiente entre sí y una vez que se determina el carácter de visualización de cada bit, la salida del pestillo correspondiente permanecerá sin cambios. .
Debido a esto, las pantallas estáticas son más brillantes. Este modo de visualización es fácil de programar y administrar, pero consume más recursos de línea de E/S. Por lo tanto, cuando hay muchos dígitos en la pantalla, generalmente se utiliza la visualización dinámica.
Dado que todos los segmentos de 6 bits están controlados por un puerto de E/S, el LED de 6 bits mostrará el mismo carácter en cualquier momento. Si desea mostrar diferentes caracteres para cada dígito, debe utilizar el escaneo para iluminar cada LED, es decir, solo se muestra un carácter a la vez. Durante este período, el puerto de E/S de control de selección genera el código de selección de segmento (código de modelo de carácter) del carácter correspondiente, y el puerto de E/S de control de selección de bits envía un nivel de encendido en el bit de visualización (porque el LED está * * * negativo, debería enviar un nivel bajo) Asegúrese de que se muestre el carácter correspondiente en este bit. Túrnense de esta manera, permitiendo que todos muestren los caracteres que deben mostrarse en esta posición a la vez.
Cuando se muestran varios LED, para simplificar el circuito y reducir costos, todas las líneas de segmento están conectadas en paralelo y controladas por un puerto de E/S de 8 bits. Los terminales * * * cátodo (* * * ánodo) y * * * están controlados respectivamente por líneas de puerto de E/S correspondientes para realizar la activación de tiempo compartido.
Código de selección de segmento, el código de selección de bits se retrasa 2 MS después de cada transmisión. Debido al efecto de persistencia de la visión humana, parece que todos los tubos digitales están encendidos.
Figura 3.4 Circuito de visualización dinámica LED de seis dígitos
3.6 Parte del teclado
Es la parte más sencilla de todo el sistema. Según los requisitos funcionales, este sistema requiere de tres botones: para controlar el tiempo, minutos y segundos respectivamente. Y utilice claves independientes.
Las claves se pueden dividir en dos tipos según principios estructurales. Un tipo son los botones de interruptor de contacto, como interruptores mecánicos, interruptores de goma conductiva, etc. El otro son los botones de interruptor sin contacto, como botones eléctricos, botones de inducción magnética, etc.
El primero tiene un bajo coste y el segundo tiene una larga vida útil. En la actualidad, el más común en los sistemas de microcomputadoras es el botón de interruptor de contacto.
El principio de la interfaz clave se puede dividir en teclados codificados y teclados no codificados. La principal diferencia entre estos dos teclados es el método para identificar los símbolos de las teclas y proporcionar los códigos de teclas correspondientes. Los teclados codificados utilizan principalmente hardware para identificar teclas, mientras que los teclados no codificados utilizan principalmente software para definir e identificar el teclado.
El teclado completamente codificado puede proporcionar automáticamente códigos correspondientes a las teclas a través de la lógica del hardware. Además, generalmente tiene un circuito de protección antirrebote y de claves múltiples y cruzadas. Este tipo de teclado es más fácil de usar, pero requiere más hardware y es más caro, por lo que rara vez se utiliza en sistemas de aplicaciones de microcontroladores generales. Un teclado sin codificación simplemente proporciona una matriz de filas y columnas, y el software hace el resto del trabajo. Por ser económico y práctico, se utiliza ampliamente en sistemas de microcontroladores. Debido a que este diseño solo requiere unas pocas teclas de función, en este momento se puede utilizar una estructura de teclas independiente.
La clave independiente es un circuito de clave única compuesto directamente por líneas de puerto de E/S. Su característica es que cada botón ocupa de forma independiente una línea de puerto de E/S, y el trabajo de cada botón no afectará el estado de otras líneas de puerto de E/S. En la Figura 3.5 se muestra una aplicación típica de claves independientes.
La configuración del circuito de botones de una sola máquina es flexible y la estructura del software es simple, pero cada botón debe ocupar una línea de puerto de E/S. Por lo tanto, cuando hay muchas claves, la línea del puerto de E/S se desperdicia y no se debe utilizar.
Figura 3.5 Diagrama de estructura de clave independiente
3.7 Circuito de reinicio
Durante el reinicio, la CPU y otros componentes funcionales del sistema se encuentran en un determinado estado inicial. reiniciar, el trabajo de la computadora comenzará desde este estado. Durante el reinicio, la CPU no inicia la ejecución del programa, sino que realiza un trabajo de preparación.
No importa cuando la computadora recién se enciende, después de un corte de energía o cuando el sistema falla, es necesario reiniciarla.
La condición de reinicio del microcontrolador 51 se realiza mediante un circuito externo. Cuando el circuito de reloj está funcionando, siempre que haya más de dos niveles altos de TP en el pin RESET del microcontrolador, el microcontrolador se puede reiniciar. Pero un tiempo demasiado corto normalmente hace que la parte de reinicio no sea confiable. Para garantizar el reinicio, el nivel alto en el pin RESET generalmente debe mantenerse durante más de 10 ms.
Los circuitos de reinicio comunes incluyen circuitos de reinicio de encendido y reinicio de llave. Aquí elegimos el circuito de reinicio del botón.
(1) Circuito de reinicio de encendido
El circuito de reinicio de encendido se implementa mediante la carga del condensador. En el momento en que se enciende la alimentación, el potencial del terminal de reinicio es el mismo que VCC, que es 5 V. A medida que se carga el circuito RC, el potencial de RESET disminuye gradualmente. Siempre que RESET esté alto durante más de 10 ms, se puede restablecer normalmente, como se muestra en la Figura 3.6(1).
Figura 3.6 (1) Circuito de reinicio de encendido
(2) Circuito de reinicio de llave
Cuando el microcontrolador esté encendido, simplemente presione el botón en la Figura 3.6 (2) Tecla K para restablecer. En este momento, VCC se divide entre las resistencias rs y Rk, y se genera un nivel alto de reinicio en el terminal de reinicio.
En el circuito de la Figura 3.6(2), la interferencia puede ingresar fácilmente al terminal de reinicio. Aunque en la mayoría de los casos no provocará un reinicio erróneo del microcontrolador, puede provocar un reinicio erróneo de algunos registros internos. En este punto, se puede conectar un condensador de desacoplamiento al terminal de reinicio.
Además, también es necesario restablecer algunos chips periféricos del sistema de aplicación del microcontrolador. Si los requisitos de nivel de reinicio de estos terminales de reinicio son consistentes con los de la MCU, se pueden conectar directamente a ellos. El circuito RC suele conectarse al circuito Schmidt y luego al terminal de reinicio del microcontrolador. De esta manera, el sistema puede tener múltiples terminales de reinicio para garantizar un reinicio sincrónico confiable de chips y microcontroladores externos.
Figura 3.6 (2) Circuito de reinicio de llave
4 Diseño de software
4.1 Flujo del programa
Diseño general del programa: módulo de sincronización, pantalla módulo, módulo de ajuste de tiempo y módulo de ajuste de estado.
(1) Descripción general: esta parte presenta principalmente el módulo de sincronización y el módulo de visualización. La parte de sincronización utiliza la sincronización del temporizador clásico. Implementa la parte principal del reloj digital y la parte principal del cronómetro, así como la configuración de cronometraje. El módulo de visualización es otro componente importante del reloj digital y su independencia afecta directamente a la visualización del reloj digital.
En esta parte del diseño, se configura un búfer de datos de visualización especial, que es diferente de los datos del búfer de datos, como minutos y hora. El código del segmento de visualización se almacena en él, mientras que los datos de tiempo se almacenan en otros buffers. Al visualizar, los datos decimales de tiempo se convierten primero en códigos de segmento de visualización y luego se envían al tubo digital para su visualización. El código del segmento de visualización adopta un método de escaneo dinámico. Cuando necesite cambiar la categoría de datos mostrados, solo necesita cambiar el búfer de datos decimal donde el puntero apunta al búfer de datos.
(2) Ajuste de tiempo: Hay muchas formas de ajustar el tiempo. Primero, puede ingresar directamente al estado relevante para realizar operaciones relevantes. 2. El ajuste se divide en dos pasos. Primero ingrese el estado y luego opere, que se controlan mediante dos botones. El primer método es más directo y la idea de diseño es relativamente simple, pero este método tiene un conflicto entre el tiempo de cálculo y el número de teclas de control. Si usa menos teclas, es posible que esté en un estado de espera para el ajuste de datos después de ingresar al estado, lo que afecta la velocidad de escaneo de la pantalla (la parte de la pantalla se puede controlar con un chip 8279, que puede resolver este problema). Por supuesto, de esta manera, también puede usar múltiples claves de estado, y cada clave de estado puede completar un ajuste de datos correspondiente. Si utiliza el segundo método, esto no sucederá. Dado que el ajuste de estado y la operación de estado se pueden controlar mediante dos botones respectivamente, el número de ajustes de estado puede ser de hasta 256 veces (teóricamente). La operación se completa de la siguiente manera: ajuste del estado de control con un clic, ajuste de datos de control con un clic. Los dos métodos anteriores se pueden lograr mediante consultas e interrupciones. El problema al que se debe prestar atención con ambos métodos es que el proceso de operaciones relacionadas entre ellos no puede ser demasiado largo, de lo contrario afectará el escaneo de la pantalla. El método de investigación es más tradicional, por lo que no lo discutiré más. Lo que sigue es una discusión sobre la implementación de relojes digitales con interrupciones y algún tratamiento de temas relacionados. Según la discusión anterior, se puede diseñar de la siguiente manera: el ajuste se divide en dos partes: ajuste de estado y ajuste de datos. Cada vez que se ingresa la interrupción, solo se realiza una operación y luego se devuelve. para mantener la interrupción esperando el ajuste, y el tiempo de interrupción puede ser muy pequeño. Si la prioridad de la interrupción del temporizador se establece en el nivel más alto, el modo de interrupción no afectará el conteo del reloj ni el modo de consulta.
(3) Problemas que deben tenerse en cuenta en el modo de interrupción:
En el modo de interrupción, es mejor establecer la prioridad de la interrupción del temporizador al nivel más alto. Con respecto a la estabilidad de los datos del programa, se deben tener en cuenta dos cuestiones: en primer lugar, al responder a interrupciones de baja prioridad, al colocar datos en la protección de la pila, se deben prohibir las respuestas a interrupciones de alta prioridad. 2. Después de colocar los datos relevantes en la pila, los bits de estado y los registros que afectan la ejecución del programa de interrupción deben restaurarse al valor del estado de reinicio. Por ejemplo, cuando se utiliza el ajuste decimal, los bits AC y CY en el PSW deben borrarse cuando llega la interrupción; de lo contrario, el ajuste decimal es incorrecto.
(4) Discusión sobre la precisión del tiempo:
El temporizador del programa siempre está en ejecución, lo que significa que el temporizador se ejecuta en condiciones ideales. El programa de interrupción se ejecuta cada 0,1 segundos. . En condiciones ideales, no hay ningún error sistemático en la sincronización del temporizador. Sin embargo, después de que la interrupción del temporizador se desborda, el temporizador comienza a contar desde 0 hasta que se reinicia, por lo que el error de sincronización del temporizador es causado por el tiempo consumido en la respuesta a la interrupción desde el desbordamiento de la interrupción hasta el reinicio del temporizador. Si el temporizador se configura sin que se apague al comienzo de la rutina de interrupción, el error es mínimo, alrededor de 7 a 12 ciclos de la máquina cada 0,1 segundos. Por supuesto, este es el caso cuando el cronómetro marca exactamente 0,1 segundos. Del análisis anterior, si el reloj digital está diseñado para realizar consultas o la interrupción del temporizador está configurada en el nivel más alto en el modo de interrupción, podemos deducir apropiadamente el valor de tiempo de 9 ciclos de la máquina al configurar el valor de tiempo. Sin embargo, si la interrupción del temporizador no se establece en el nivel más alto en caso de una interrupción, el valor de tiempo correspondiente debe deducirse al configurar el valor de tiempo de acuerdo con el tamaño del programa de interrupción.
(5) Cancelación de vibración por software:
La fluctuación se puede realizar mediante hardware (disparador Schmitt), como se muestra en la Figura 4.4, o mediante software. Aquí sólo se analizan los patrones de software. La eliminación de la fluctuación del software incluye la sincronización del temporizador y el uso de subrutinas de retardo. 1. La eliminación de la fluctuación del tiempo del temporizador no puede afectar la velocidad de escaneo del módulo de visualización. El método de implementación es: configurar el bit de bandera, configurarlo en la interrupción del temporizador y luego consultarlo en el programa.
Establezca su prioridad de interrupción más baja que la interrupción de la sincronización del reloj y no afectará la sincronización del reloj en absoluto. En segundo lugar, cuando se utiliza la subrutina de retardo, si la velocidad de escaneo del módulo de visualización no es muy rápida, puede afectar el efecto de visualización en este momento. En circunstancias normales, el número de escaneos por segundo no debe ser inferior a 50; de lo contrario, la pantalla digital parpadeará. Por lo tanto, el tiempo de retraso de la subrutina de retraso debe ser inferior a 20 milisegundos. Si se utiliza un temporizador, el tiempo de retraso no afecta al reloj.
Si el diseño utiliza interrupciones para completar operaciones relacionadas, también se puede utilizar software para eliminar la fluctuación. La idea del procesamiento es que las interrupciones no se pueden ejecutar continuamente y hay un cierto intervalo de tiempo entre dos veces.
4.1.1 Diagrama de flujo del programa principal del sistema
Figura 4.1 Diagrama de flujo del programa principal
4.1.2 Diagrama de flujo de subrutinas
Figura 4.2 Diagrama de flujo de la subrutina de ajuste del reloj. Espero que esto le sea útil.