Red de conocimientos turísticos - Conocimientos sobre calendario chino - Utilice 51 microcontroladores y 4 tubos digitales para diseñar un temporizador. Se requiere que los datos mostrados en los tubos digitales comiencen desde 0 y aumenten en 1 cada segundo.

Utilice 51 microcontroladores y 4 tubos digitales para diseñar un temporizador. Se requiere que los datos mostrados en los tubos digitales comiencen desde 0 y aumenten en 1 cada segundo.

No hay cronómetro pero sí reloj digital

Puedes consultarlo

Puede haber información útil

Resumen

Esta pregunta ofrece un diseño digital basado en una microcomputadora de un solo chip. El diseño utiliza la microcomputadora de un solo chip como controlador central, realiza la función de temporización mediante el conteo de frecuencia y muestra el tiempo en tiempo real en la pantalla. Dispositivo: el tubo digital a través del microordenador de un solo chip y lo muestra en el teclado para realizar las funciones de inicio, parada, reinicio y ajuste del tiempo.

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 flexible y El diseño del El software ha permitido que los microcontroladores se utilicen ampliamente, desde pequeños productos electrónicos hasta grandes controles industriales, los microcontroladores han desempeñado un papel decisivo. La pequeña estructura del sistema de una microcomputadora de un solo chip 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 el desarrollo de la tecnología electrónica cambia cada día que pasa. 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 se vuelve cada vez más valioso para las personas. En la vida acelerada, una vez que las personas encuentran cosas importantes y olvidan el tiempo, esto causará grandes pérdidas, por lo que necesitamos un sistema de cronometraje para recordárselo. gente ocupada. 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 sufrido cambios cualitativos tanto en rendimiento como en 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.

Hoy en día, la mayoría de las herramientas de cronometraje de alta precisión utilizan osciladores de cristal de cuarzo. Dado que los relojes electrónicos, los relojes de cuarzo y los relojes de cuarzo utilizan tecnología de cuarzo, tienen alta precisión, buena estabilidad y son fáciles de usar. No es necesario realizar ajustes frecuentes. Los relojes electrónicos digitales utilizan circuitos integrados para cronometrar, decodificar en lugar de transmisión mecánica y pantallas LED en lugar de punteros para mostrar la hora, lo que reduce los errores de sincronización. Este tipo de reloj tiene horas, minutos y segundos para mostrar. Función de tiempo, también puede revisar horas y minutos, y la flexibilidad de selección de películas es buena. Este artículo utiliza un microcontrolador para realizar el contenido principal de la función de sincronización del reloj digital. Entre ellos, AT89S52 es un dispositivo de sincronización moderno cuyo componente central utiliza un tubo digital 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 de "23 horas, 59 minutos y 59 segundos". También tiene una función de ajuste de tiempo, una 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 1

El 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 un FPGA es muy alto, lo que es un poco derrochador para fabricar un reloj electrónico, y el FPGA es difícil de dominar. No investigaremos demasiado en este diseño, y lo haremos. No utilice esta solución.

2.2 Opción 2

El reloj digital está compuesto por varios circuitos integrados digitales CMOS con diferentes funciones lógicas. El ejemplo final utiliza 10 circuitos integrados digitales. El diagrama esquemático se muestra en la Figura 2.1. Espectáculo. Se compone de tres partes: un segundo generador de señal (circuito de base de tiempo), un contador de horas y minutos y un circuito de visualización de decodificación y conducción. Su proceso de funcionamiento básico es: el circuito de base de tiempo genera una señal de pulso con un período preciso. que se envía a las siguientes partes a través de un divisor de frecuencia. El contador transmite una segunda señal de 1 HZ y, finalmente, el contador y la unidad de visualización del controlador controlan la visualización del tiempo del tubo digital poco a poco. Sin embargo, el circuito diseñado de esta manera es más complejo. Su uso es inflexible y el precio es relativamente alto, por lo que esta solución no se utiliza.

Figura 2.1 Diagrama esquemático del principio del Esquema 2

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 instrucciones y pines con productos industriales 80C51. El flash en chip permite programar la memoria del programa en el sistema y también es adecuado para programadores convencionales. En un solo chip, tiene una CPU inteligente de 8 bits y Flash programable en el sistema, lo que convierte al AT89S52 en 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, AT89S52 puede reducir la operación lógica estática a 0 Hz y admite 2 modos de ahorro de energía seleccionables por software. En modo inactivo, la CPU deja de funcionar y permite que la RAM, los temporizadores/contadores, los puertos serie y las interrupciones sigan funcionando. En el modo de protección contra 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.

El sistema se controla en base al microcontrolador AT89S52. 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. 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. y el puerto P0 del microcontrolador controla lo digital. El puerto P2 controla la visualización de segmentos del tubo digital y el puerto P1 está conectado al botón para corrección de tiempo. En el diseño, se introduce, rectifica y filtra corriente alterna de 220 V para generar un voltaje de +5 V, 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. Determina directamente la precisión del sistema de sincronización. Envía la segunda señal estándar al "segundo contador". , y el "contador de segundos" utiliza 60 incrementos. El contador enviará una señal de "pulso de minutos" cada 60 segundos, que se utilizará como pulso de reloj del "contador de minutos". El "contador de minutos" también utiliza un contador hexadecimal. Cada 60 minutos, envía una señal de "pulso de hora", que se enviará al "contador de horas". El "contador de horas" utiliza un temporizador de 24 bases, que puede realizar la acumulación de 24 horas al día. El circuito de visualización muestra la salida de los contadores de "horas", "minutos" y "segundos" a través de seis pantallas LED de siete segmentos. El circuito de corrección de tiempo agrega directamente una señal de pulso al contador de horas, minutos o segundos para corregir y ajustar los números de visualización de "horas", "minutos" y "segundos". En este diseño, el diseño y la visualización del reloj de 24 horas y el cronómetro se completan con el temporizador del microcontrolador. Utilice el temporizador T0 para generar una interrupción de 1 s, complete el cambio de número cada segundo en el programa de interrupción y muestre dinámicamente el carácter en el programa principal. Su diagrama de bloques funcional se muestra en la Figura 2.3.

Figura 2.3 Diagrama de funciones de la interrupción externa del cronómetro

La función principal del diseño del circuito del reloj digital es proporcionar un microcontrolador y una pantalla LED externa, pestillo de 273 direcciones y selección de chip, y memoria externa. Circuito de interfaz 2764, y también es necesario diseñar circuitos de controlador LED relacionados.

(1) Principio del circuito y selección de dispositivo

Los nombres de los dispositivos de las partes clave relacionadas 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.

LED1--LED6: se utiliza para mostrar los datos del microcontrolador. Tres de ellos usan una pantalla de 7 segmentos para mostrar las decenas de dígitos de horas, minutos y segundos, y los otros tres usan una pantalla de 8 segmentos. para mostrar horas, minutos y segundos. Los dígitos de las unidades de 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 bits del LED.

7407: Circuito de compuerta de accionamiento, que proporciona corriente de accionamiento para la pantalla del tubo digital.

74LS04: NO puerta, invierte la señal de selección de chip del microcontrolador, y se usa junto con las señales de lectura y escritura para determinar la selección de chip del 74LS273.

L1--L4: Los diodos emisores de luz, controlados por P1.4--P1.7 del microcontrolador, se utilizan para mostrar los cambios de hora del cronómetro y el reloj.

ZUMBADOR: El altavoz emitirá un sonido en las circunstancias especificadas por el programa para indicar que se ha completado el cronometraje.

74LS373: Pestillo de dirección, que separa la dirección y los datos del puerto P0 y los ingresa a los puertos de datos y direcciones del 2764 respectivamente.

2764: EPROM, que proporciona un área de almacenamiento de programas externo para el microcontrolador.

Los interruptores K0, K1 y K2 ajustan segundos, minutos y horas respectivamente.

Botón RESET: En el circuito de reinicio, desempeña el papel de reinicio del programa.

PULSO de botón: proporciona un pulso único para realizar la función de conteo de pulsos externos mediante el microcontrolador y utiliza el pulso único para sumar 1 al bit correspondiente.

(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 pasa a través de la línea de datos D0- -D7 y se transmite desde el microcontrolador al LED

P2.0--P2.5: El El puerto P2 del microcontrolador está conectado a la línea de dirección de gama alta del 2764, que 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 reflectante L1--L4, y es controlado por el P1.4--P1.7 del microcontrolador para muestra el cronómetro y el 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 la selección de bits de palabra y canales de campo son A través de P2.6 del microcontrolador, se completa el puerto P2.7. Entre ellos, las señales de selección de chip de los puertos P2.6 y P2.7 necesitan realizar ciertas operaciones lógicas con las señales de lectura y escritura para garantizar la corrección de la selección de campos y bits de palabras.

La memoria externa 2764 se conecta al microcontrolador a través del 74LS373, y la dirección se asigna a través de las líneas de señal correspondientes del puerto P2. El rango de direcciones es 0000H--1FFFH.

3 Diseño y demostración de circuitos

3.1 Diseño de circuitos de alimentación

En diversos equipos electrónicos, la fuente de alimentación regulada por CC es un componente esencial, no solo proporciona múltiples. fuentes de voltaje para el sistema, pero también afecta directamente los indicadores técnicos y el rendimiento antiinterferente del sistema. Para obtener el voltaje de salida de +5 V que queremos, necesitamos rectificar el voltaje de 220 V CA mediante rectificación de onda completa de diodo, filtrado de capacitor y estabilización de voltaje 7805 para generar un voltaje estable de 5 V CC 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 interno (su núcleo es un amplificador inversor), pero no forma una señal de oscilación para el reloj, por lo que un externo El resonador debe estar conectado para formar una oscilación. La forma de utilizar este amplificador interno puede tomar diferentes decisiones según las diferentes ocasiones. Esto corresponde a los diferentes métodos de generación de reloj del microcontrolador: si se usa este amplificador, la oscilación generada es el método interno; si se usa una entrada de oscilación externa, se usa el método externo;

Opción 1, método interno

Si se conecta un resonador de cristal externo entre los pines XTAL1 y XTAL2 del microcontrolador 51, se producirá una oscilación autoexcitada, que puede generarse internamente y externamente. El cristal hace oscilar el reloj a la misma frecuencia.

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 operativa máxima de diferentes microcontroladores es diferente. Por ejemplo, la frecuencia operativa máxima de AT89C51 es 24 MHZ y la frecuencia operativa máxima de AT89S51 puede alcanzar. 33MHZ. Debido a las mejoras en los procesos de fabricación, el rango de frecuencia operativa de los microcontroladores ahora se está extendiendo a ambos extremos, alcanzando más de 40 MHZ. Cuanto mayor es la frecuencia de oscilación, más rápido funciona el microcontrolador, pero al mismo tiempo, los requisitos de velocidad de la memoria y de la placa de circuito impreso son mayores. Una frecuencia demasiado alta a veces dificulta la escritura de programas (como programas de retardo). En general, no se recomienda utilizar osciladores de cristal de muy alta frecuencia. 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. . Generalmente, cuando se conecta un cristal externo, los valores de C1 y C2 suelen seleccionarse entre 20 y 100PF.

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. Generalmente se utiliza cristal de cuarzo para formar el circuito del oscilador. 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 un segundo pulso de 1 HZ, que se obtiene mediante división de frecuencia de cristal. El microcontrolador AT89S52 tiene un amplificador inversor que se utiliza para formar un oscilador interno. XTAL1 y XTAL2 son los terminales de entrada y salida del amplificador respectivamente. Tanto los cristales de cuarzo como los resonadores cerámicos se pueden utilizar juntos para formar un oscilador autoexcitado. Para controlar el dispositivo desde una fuente de reloj externa, XTAL2 puede dejarse desconectado y conectarse desde XTAL1. Dado que la señal de reloj externo ingresa como un circuito de reloj externo después de activarse dividiendo la frecuencia por dos, no existen otros requisitos para esta función. El ciclo de la señal de reloj externo más largo La duración de bajo nivel y la duración mínima de alto nivel aún deben cumplir con los requisitos. El terminal de entrada del amplificador inversor es XTAL1 y el terminal de salida es XTAL2. Los dos terminales están conectados a un cristal de cuarzo y dos condensadores para formar un oscilador autoexcitado estable. El condensador suele rondar los 30PF. 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 terminal 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 ritmo básico para dirigir el trabajo coordinado de los distintos componentes del microcontrolador AT89S52. En este diseño, la frecuencia de oscilación del cristal de cuarzo es de 11,0592 MHz.

Además, al diseñar la placa de circuito, el oscilador de cristal y los condensadores 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, método externo

En sistemas de aplicaciones a mayor escala, se pueden utilizar varios microcontroladores. Para garantizar la sincronización de las señales de reloj entre cada microcontrolador, se puede utilizar un único externo común. La señal de pulso se utiliza como el pulso de oscilación único de cada microcontrolador, es decir, se utiliza un método externo y la señal de oscilación externa se introduce directamente en los pines XTAL1 y XTAL2.

Dado que los pines de entrada del reloj interno de los microcontroladores 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 corrección de hora

Cuando hay un error en el tiempo de funcionamiento del reloj digital, es necesario corregir la hora. El circuito de control de ajuste del tiempo 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 corrección de tiempo

3.4 Circuito de visualización de decodificación

La función del circuito de decodificación es convertir "segundos ", El estado de salida (códigos 8421) de cada contador en el contador de "minutos" y "horas" se traduce a un tubo digital de siete segmentos (u ocho segmentos) que puede mostrar las señales eléctricas requeridas para los números decimales, y luego Los números correspondientes se muestran a través del tubo digital. Muéstralo. El decodificador utiliza el decodificador/controlador 74LS248. La pantalla utiliza un tubo digital catódico 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. Se adopta el modo de visualización dinámica El llamado modo de visualización dinámica es que los números de tiempo se muestran uno por uno en el LED. Controla en qué LED se muestra el número mediante la selección de bits desde el tiempo entre la visualización de estos números de LED. es muy corto y confunde a la gente. Parece que muestran los números de tiempo juntos y el modo de visualización dinámica utiliza menos interfaces, lo que ahorra pines de la CPU. Debido al problema del puerto y la superioridad del método de visualización dinámica, en el método de conexión de este diseño se utiliza el método de conexión de nivel negativo. El LED de pantalla tiene dos puertos, selección de segmento y selección de bits. Hablemos primero del puerto de selección de segmento. Consta de ocho puertos LED. La entrada de datos binarios diferentes a estos ocho puertos hace que la visualización de la hora sea diferente, por lo que podemos obtener la visualización de la hora deseada. y temperatura. Pero para el AT89S52 con veinte pines, los ocho pines de selección de segmentos del LED son demasiados, 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 se usa como datos. búfer.

Al seleccionar dispositivos, se debe prestar 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. Debido a que la corriente de trabajo del tubo digital es 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 tipo cátodo utiliza un decodificador activo de alto nivel. Los decodificadores de pantalla recomendados son 74LS48, 74LS49 y CC4511.

3.5 Estructura y principio del circuito de visualización

(1) Los microcontroladores suelen utilizar LED de siete segmentos para formar una estructura en forma de "8". Además, hay una luz de punto decimal. Diodo emisor para mostrar los dígitos decimales. Este tipo de exhibición viene en dos tipos: ¡Yin y Yang! Los ánodos de los diodos emisores de luz están conectados entre sí (los terminales comunes) y se denominan pantallas de ánodo positivo, y los cátodos conectados entre sí se denominan pantallas de cátodo positivo.

La visualización de un bit está compuesta por 8 diodos emisores de luz, entre los cuales 7 diodos emisores de luz constituyen los trazos de la fuente "8", y el otro diodo emisor de luz es el punto decimal. Cuando se aplica un determinado voltaje directo a un determinado segmento del diodo emisor de luz, los trazos en ese segmento serán brillantes; si no se aplica voltaje, los trazos serán oscuros. Para proteger cada segmento del LED contra daños, se requiere una resistencia limitadora de corriente adicional.

En este diseño, los dígitos de las decenas de horas, minutos y segundos se muestran en siete segmentos, y los dígitos de las unidades 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

La pantalla LED tiene dos tipos: modo de visualización estática y modo de visualización dinámica. La visualización estática significa que cuando el monitor muestra un determinado carácter, el segmento correspondiente está constantemente encendido o apagado hasta que se muestra otro carácter. Cuando la pantalla LED está funcionando en el modo de visualización estática, el cátodo de su cátodo debe estar conectado a tierra; si es el ánodo, debe estar conectado a la fuente de alimentación de +5 V. La línea de selección de segmento de cada bit está conectada al puerto de salida de un pestillo de 8 bits respectivamente. 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 método de visualización es fácil de programar y de administrar, pero consume más recursos de la línea del puerto 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 todo momento. Si desea que cada carácter muestre un carácter diferente, deberá utilizar un método de escaneo para encender cada LED de forma secuencial, es decir, solo se muestra un carácter en cada momento. En este momento, la selección de segmento controla el puerto de E/S para generar el código de selección de segmento de caracteres correspondiente (código de fuente), mientras que la selección de bits controla el puerto de E/S para enviar el nivel estroboscópico a la posición de visualización (porque el LED está negativo, por lo que debe enviar un nivel bajo) para garantizar que este bit muestre el carácter correspondiente. De esta manera, se debe mostrar cada carácter de visualización de tiempo compartido.

En la pantalla LED de varios dígitos, para simplificar el circuito y reducir costes, todas las líneas de selección de segmentos están conectadas en paralelo y controladas por un puerto de E/S de 8 bits. Los terminales positivo y negativo de los polos positivo y negativo están controlados respectivamente por las líneas de puerto de E/S correspondientes para realizar una conmutación de tiempo compartido para cada uno de ellos.

Código de selección de segmento, el código de selección de bits se retrasa 2 MS cada vez que se envía. Debido al efecto de persistencia de la visión humana, parece que cada tubo digital está siempre encendido.

Figura 3.4 Circuito de visualización dinámica LED de seis dígitos

3.6 Parte del teclado

Es la parte más simple de todo el sistema. Según los requisitos funcionales, esta. sistema** *Requiere tres botones: para controlar horas, minutos y segundos respectivamente. Y adopte botones independientes.

Los botones se pueden dividir en dos categorías según los principios estructurales. Un tipo son los botones de interruptor de contacto, como los interruptores mecánicos, los interruptores de goma conductiva, etc.; el otro tipo son los botones de interruptor sin contacto, como los interruptores eléctricos, botones tipo inducción magnética, etc. El primero tiene un bajo costo y el segundo tiene una larga vida útil. En la actualidad, el tipo de interruptor más común en los sistemas de microcomputadoras es el botón de interruptor de contacto.

Según el principio de la interfaz, las teclas se pueden dividir en dos tipos: teclados codificados y teclados no codificados. La principal diferencia entre estos dos tipos de 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 realizar el reconocimiento de teclas, mientras que los teclados no codificados utilizan principalmente software para realizar la definición y el reconocimiento del teclado.

Los teclados completamente codificados pueden proporcionar automáticamente códigos correspondientes a las teclas mediante lógica de hardware. Además, generalmente cuentan con circuitos de protección antirrebote y de cruce de teclas y múltiples teclas. Este tipo de teclado es fácil de usar, pero requiere más hardware y es más caro. Rara vez se utiliza en sistemas de aplicaciones de microcontroladores generales.

El teclado sin codificación simplemente proporciona una matriz de filas y columnas, y el software hace el resto. Debido a su economía y practicidad, se utiliza a menudo en sistemas de microcomputadoras de un solo chip. Dado que en este conjunto de diseños sólo se necesitan unas pocas teclas de función, en este momento se puede utilizar una estructura de teclas independiente.

El botón independiente es un circuito de un solo botón compuesto directamente por líneas de E/S. Su característica es que cada botón ocupa una línea de E/S sola, y el trabajo de cada botón no afectará a otras E/S. líneas. /O estado de la línea del puerto. La aplicación típica de botones independientes se muestra en la Figura 3.5.

La configuración del circuito de botones independientes 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 muchos botones, la línea de puerto de E/S se desperdicia y. no debe usarse.

Figura 3.5 Diagrama de estructura de botones independientes

3.7 Circuito de reinicio

Durante el reinicio, la CPU y otros componentes funcionales del sistema se encuentran en un determinado estado inicial. reiniciar, la computadora comienza a funcionar desde este estado. Durante el reinicio, la CPU no inicia la ejecución del programa, sino que realiza preparativos.

No importa cuando la computadora esté encendida, después de un corte de energía o cuando el sistema falle, es necesario reiniciarla.

La condición de reinicio del microcontrolador 51 se realiza mediante un circuito externo. Cuando el circuito de reloj está funcionando, el microcontrolador se puede restablecer siempre que haya un nivel alto de más de 2 TP en el pin RESET del microcontrolador. Pero un tiempo demasiado corto a menudo hace que la parte de reinicio no sea confiable. Para garantizar el reinicio, el nivel alto en el pin RESET generalmente debe mantenerse durante aproximadamente 10 ms o más.

Los circuitos de reinicio comunes incluyen circuitos de reinicio de encendido y reinicio de llave. Aquí elegimos un circuito de reinicio de botón.

(1) Circuito de reinicio de encendido

El circuito de reinicio de encendido se implementa mediante el uso de carga de condensador. En el momento en que se enciende la alimentación, el potencial del terminal RESET es el mismo que VCC, que es +5V. 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 del botón

Cuando el microcontrolador esté encendido, simplemente presione Figura 3.6 (2 ) La tecla K también se puede restablecer. En este momento, VCC se divide por las resistencias Rs y Rk, y se genera un nivel alto de reinicio en el terminal RESET.

En el circuito de la Figura 3.6 (2), la interferencia fluye fácilmente hacia el terminal de reinicio. Aunque en la mayoría de los casos no causará un reinicio erróneo del microcontrolador, puede causar un reinicio erróneo de algunos registros internos. . En este momento, se puede conectar un condensador de desacoplamiento al terminal RESET.

Además, algunos chips periféricos en el sistema de aplicación del microcontrolador también deben restablecerse. Si los requisitos de nivel de reinicio de estos terminales de reinicio son consistentes con los requisitos de reinicio del microcontrolador, se pueden conectar directamente a ellos. . El circuito RC a menudo se conecta al circuito Schmitt y luego al terminal de reinicio del microcontrolador. De esta manera, el sistema puede tener múltiples terminales de reinicio para garantizar que el chip externo y el microcontrolador se puedan reiniciar de manera confiable y sincrónica.

Figura 3.6 (2) Circuito de reinicio del botón

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, módulo de ajuste de estado.

(1) Introducció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 otra parte importante de la realización del reloj digital. El grado de independencia de su módulo afecta directamente el grado de visualización del reloj digital. En esta parte del diseño, se configura un búfer de datos de visualización dedicado, que es diferente de los minutos, horas y otros datos del búfer de datos. El código del segmento de visualización se almacena en él, mientras que otros búferes almacenan datos de tiempo. 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. Los códigos de segmento se muestran mediante escaneo dinámico. Cuando se requiere cambiar el tipo de datos mostrados, solo es necesario cambiar el búfer de datos decimal apuntado por el puntero al búfer de datos.

(2) Ajuste de tiempo: Hay muchas formas de ajustar el tiempo. 1. Puede ingresar directamente al estado relevante para realizar operaciones relevantes. 2. Divida el ajuste en dos pasos. Ingrese el estado primero y luego realice la operación. Estos dos pasos están controlados por dos teclas respectivamente. El método uno es más directo y la idea de diseño es relativamente simple. Sin embargo, este método tiene conflictos entre el tiempo de operación y la cantidad 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 afectará la velocidad de escaneo de la pantalla (la parte de la pantalla puede ser controlada por el 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 los datos correspondientes. Si se adopta el segundo método, esta situación no ocurrirá. Debido a que el ajuste de estado y la operación de estado se pueden controlar mediante dos teclas respectivamente, el número de ajustes de estado puede ser hasta 256 (teóricamente, la operación se completa así. Una tecla controla el ajuste de estado y una tecla controla los datos). ajuste. Los dos métodos anteriores se pueden implementar mediante consulta e interrupción. El problema al que se debe prestar atención en ambos métodos es que el proceso de operaciones relacionadas entre los dos métodos no puede ser demasiado largo, de lo contrario afectará el escaneo de la pantalla. El método de consulta es tradicional, por lo que no lo discutiremos demasiado. A continuación se analiza el reloj digital implementado por interrupciones y algunos problemas relacionados. Según la discusión anterior, el diseño puede ser el siguiente: el ajuste se divide en dos partes: ajuste de estado y ajuste de datos. Cada vez que se ingresa la interrupción, la operación solo se realiza una vez y luego se devuelve la interrupción. No es necesario que esté en un estado de espera de ajuste. De esta manera, el consumo de tiempo de interrupción se puede reducir. Establezca la prioridad de la interrupción del temporizador al nivel más alto, entonces el método de interrupción y el método de consulta no afectarán el conteo del reloj.

(3) Problemas a los que se debe prestar atención en el método de interrupción:

Cuando se utiliza el método 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, preste atención a dos cuestiones: 1. Al responder a una interrupción de baja prioridad, se deben prohibir las respuestas a una interrupción de alta prioridad al insertar datos en la pila para protegerlos. 2. Después de que los datos relevantes se insertan en la pila para protegerla, los bits y registros de estado que tienen un impacto en 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 PSW deben borrarse cuando se ingresa la interrupción; de lo contrario, el ajuste decimal saldrá mal.

(4) Discusión sobre la precisión del tiempo:

El temporizador en el programa siempre está en ejecución, lo que significa que el temporizador funciona de manera ideal e interrumpe el programa cada 0,1 segundos. Ejecutar una vez. En condiciones ideales, la sincronización del temporizador no tiene ningún error del sistema. Sin embargo, después de que la interrupción del temporizador se desborda, el temporizador comienza a contar desde 0 y no inicia la sincronización correcta hasta que se reinicia. se reinicia y el tiempo consumido durante este período provoca el error de sincronización del temporizador. Si el temporizador antes mencionado no está apagado y el temporizador se configura al comienzo del programa de interrupción, el error en este momento será mínimo y el error será aproximadamente: cada 0,1 segundos, el error es de 7 a 12 ciclos de la máquina. Por supuesto, este es el caso cuando el tiempo del temporizador es exactamente 0,1 segundos, según el análisis anterior, si el reloj digital está diseñado en modo de consulta o la interrupción del temporizador está configurada al nivel más alto en el modo de interrupción, cuando configuramos el temporizador. valor, El valor del tiempo de 9 ciclos de máquina se puede deducir adecuadamente. Sin embargo, si la interrupción del temporizador no se establece en el nivel más alto en caso de una interrupción, dependiendo del tamaño del programa de interrupción, el valor de tiempo correspondiente se deducirá cuando se establezca el valor del temporizador.

(5) Eliminación de rebotes por software:

La eliminación de rebotes se puede realizar mediante hardware (disparador Schmitt) como se muestra en la Figura 4.4, o mediante software. Aquí sólo se analizan los métodos de software. La eliminación de rebotes del software incluye la sincronización del temporizador y el uso de subrutinas de retardo. 1. La eliminación del rebote del temporizador no afecta 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 por debajo de la interrupción de la sincronización del reloj, entonces no afectará la sincronización del reloj en absoluto. 2. 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 circunstancias normales, el número de escaneos por segundo no debe ser inferior a 50 veces el digital. La pantalla parpadeará. Por lo tanto, el tiempo de retraso de la subrutina de retraso debe ser inferior a 20 milisegundos. Si se utiliza el método de sincronización del temporizador, el tiempo de retraso no afecta al reloj.

Si se utiliza el método de interrupción para completar las operaciones relevantes durante el diseño, el método de software también se puede utilizar para eliminar la fluctuación. La idea del procesamiento es: las interrupciones no se pueden ejecutar continuamente y hay un tiempo determinado. entre ellos.

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 pueda ayudarte!