Programación de circuitos
1. Principio de funcionamiento del reloj electrónico
El circuito del reloj electrónico se muestra en la Figura 1. El puerto RB7 es una luz indicadora de sincronización, que emite un nivel alto durante el período de sincronización y hace que V1 emita luz. Al almacenar en búfer, este puerto también se puede utilizar como puerto de salida de temporización. RB6 es un puerto de salida de sincronización de control de disparo de doble límite. Su método de funcionamiento es el siguiente: durante el nivel alto de RB7, si RB1 tiene un nivel alto, RB6 emite un nivel alto, si RB0 tiene un nivel bajo; tanto RB1 como RB0 están en nivel bajo, RB6 mantiene su estado original cuando ambos están en nivel alto, RB6 sale en nivel bajo; RB5 y RB4 se utilizan para accionar relés de pulso. El flanco ascendente de RB6 activa RB5 para generar un pulso de encendido de alto nivel; cuando el flanco descendente de RB6 activa RB4, el terminal RB4 genera un pulso de apagado de alto nivel. La duración del pulso es de 125 ms.
Figura 1
RB3 es el controlador de supresión. Cuando el nivel alto está activado (es decir, SK1 está cerrado), la pantalla y el segundo flash son normales; de lo contrario, la pantalla está en blanco; Cuando la pantalla está en blanco, el reloj y toda la lógica de control funcionan normalmente. Si se ignora la corriente de conducción de los puertos RB4 a RB7, la corriente de toda la máquina es inferior a 20 μA cuando la fuente de alimentación es de 3 V, lo que significa que se pueden usar dos baterías AA durante varios meses. RB2 selecciona la polaridad del tubo digital, para nivel bajo, use * * * LED negativo. RB2 es un nivel más alto, luego use * * * LED positivo. La polaridad del tubo digital se determina en función del estado del puerto RB2 durante la inicialización del encendido, pero cambiar el nivel de RB2 durante el funcionamiento no tiene ningún efecto.
Esta máquina está equipada con cuatro botones (S1 ~ S4), entre los cuales S1 es el botón de selección de función, S2 es el ajuste del incremento de horas, S3 es el incremento de minutos y S4 se utiliza para el incremento de minutos. ajuste. El método de uso es el siguiente:
Cuando se enciende, RB5 a RB7 tienen un nivel bajo, RB4 envía un pulso de apagado para cerrar SK1 y toda la máquina muestra un funcionamiento normal. RC7 envía el segundo pulso de destello y Rc6 a Rc0 envía el código de campo. RA3~RA0 son 10 horas y 10 minutos respectivamente. En este punto, presione S2 o S3 (tecla de incremento de hora/incremento de minutos) para configurar o restablecer el terminal RB7.
Cuando camina normalmente, el segundo parpadeo es normal; al verificar o configurar el tiempo, el segundero deja de parpadear. Por ejemplo, cuando camine normalmente, presione el botón S1, el segundo flash se detendrá y la pantalla mostrará J-, lo que indica que se puede verificar la hora. En este momento, presione cualquier tecla S2 ~ S4 nuevamente, la pantalla mostrará la hora actual, pero los segundos no parpadearán. En este momento, presione las teclas S2 ~ S4 para verificar el reloj. Presione S1 nuevamente, la pantalla mostrará 1∨, indicando que se puede configurar la primera hora de encendido. En este momento, presione S2 ~ S4 para ver y configurar la hora. Continúe presionando S1, el sistema mostrará 1∩, indicando que se puede configurar el primer tiempo de apagado... y viceversa. Después de configurar el sistema y cambiar el tiempo tres veces, toda la máquina volvió al estado de visualización normal y se produjo la segunda recuperación intermitente.
Si desea cancelar el tiempo de encendido/apagado, simplemente configure el tiempo de encendido/apagado para ese tiempo en el mismo valor.
El autor ha utilizado este tipo de reloj en un sistema de control de suministro de agua temporizado y a presión constante. El terminal RB6 se utiliza para controlar relés (RB5 y RB4 también pueden controlar relés de pulso), RB1 está conectado a la entrada de límite bajo de presión de agua (nivel de agua) y RB0 está conectado a la entrada de límite alto. Después de configurar el temporizador, se completa un temporizador simple y un sistema de suministro automático de agua a presión constante.
2. Habilidades de programación
La memoria de programa del microcontrolador PIC16C55 es de solo 512 bytes. Debido al modo de oscilador de cristal externo de 32768 Hz, la velocidad del reloj es baja. Por lo tanto, coordinar la relación entre la secuencia de trabajo del sistema y la interfaz hombre-computadora es la clave para el éxito o el fracaso del diseño de software. La programación de la máquina adopta el siguiente esquema: el flujo de trabajo del software se muestra en la Figura 2.
Figura 2
Un ciclo de máquina del microcontrolador PIC16C55 son cuatro ciclos de reloj. No es difícil calcular que el sistema tiene 8192 ciclos de máquina por segundo.
Al escribir software, primero configure el método de conteo del contador de tiempo interno F1 del microcontrolador en el ciclo de la máquina dividido por 64. De esta forma, cada vez que F1 se desborda, el sistema suma 2 segundos. Por lo general, el sistema escanea la pantalla cada 128 ciclos de la máquina, lo que puede garantizar que la pantalla se escanee 64 veces por segundo básicamente sin parpadeos. Y 128 ciclos de máquina es exactamente el intervalo entre cada flanco descendente de la posición 0 de F1 (para facilitar la descripción, abreviado como F1? 0). Podemos escribir un programa, cuando F1? Cuando llegue el flanco descendente de 0, escanee la pantalla una vez. Siempre que los cuatro bits inferiores de F1 sean todos 0 (una vez cada 125 ms), el sistema detectará el estado del puerto y la clave RB y realizará el procesamiento correspondiente. Algunos procedimientos relacionados son los siguientes:
¿Esperando BTFSC 1,0; esperando F1? Flanco descendente de 0 al programar
Vaya a esperar; asegúrese de llegar aquí antes de cada flanco descendente.
MOVFW 1
SKPNZ
Vaya al reloj; F1=0, después de 2 segundos, procesamiento del reloj.
ANDLW 0FH enmascara los 4 bits altos de F1
SKPZ
Ir a la pantalla; los 4 bits bajos de F1 no son 0, por lo que se mostrarán; .
MOVLW 0C0H supera los 125mS y restablece el pulso del puerto RB.
AND WF 6, 1
Tecla de detección MOVLW 0FH
TRIS 7
MOVFW 7
ANDLW 0FH Conservar los datos clave
SKPZ
GOTO AN tiene valores clave y transferirlos al procesamiento de claves.
Mostrar...; muestra escaneos y administra los puertos RB regularmente.
Reloj...; reloj, procesador de sincronización
Un programa de gestión de claves