¡Preguntas sobre principios de microcomputadoras! ¡urgente!
Ejemplo 10.1 Utilice 8253 para monitorear una línea de producción, cada vez que pasan 100 piezas. El timbre suena durante 6 segundos. La frecuencia es de 1000 HZ.
① Conexión de hardware: el diagrama esquemático de la interfaz de hardware se muestra en la Figura 10.20. Cuando la pieza de trabajo pasa entre la fuente de luz y el fotorresistor, se generará un pulso en el emisor del transistor. Sirve como canal de conteo 8253. Cuando el canal 0 cuenta hasta 100, OUT0 emite un pulso negativo. Después de la inversión, se utiliza como señal de solicitud de interrupción para 8259A en el programa de servicio de interrupción. comienza a funcionar y OUT1 emite continuamente 1000 HZ de onda cuadrada, dura 6 segundos y deja de emitir.
② Configuración de la palabra de control: el contador del canal 0 funciona en modo 2, usando el conteo BCD. Dado que el valor de conteo inicial es 100, RL1RL0 = 10 (lee/escribe los 8 bits altos del contador), luego el. La palabra de control de modo es 00100101B.
El contador del canal 1 funciona en modo 3. CLK1 está conectado al reloj de 2MHZ y se requiere que genere una onda cuadrada de 1000HZ. El valor de conteo inicial debe ser 2000000÷1000=2000, usando RL1RL0=10 (. solo lectura/escritura alta de 8 bits), recuento BCD, entonces la palabra de control de modo es 01100111B.
③ Programación: suponga que la dirección del canal 0 de 8253 es 40H, la dirección del canal 1 es 42H y la dirección del puerto de control es 46H. La dirección del puerto A del 8255A es 80H y funciona en modo de salida 0.
El programa principal es:
┇
MOV AL, 25H Inicialización del canal 0
OUT 46H, AL
MOV AL, 01H; 8 bits altos del valor de conteo inicial, 8 bits bajos se borran automáticamente
OUT 40H, AL
Habilitar interrupción
LOP: HLT; esperando interrupción
JMP LOP
La rutina del servicio de interrupción es:
MOV AL, 01H GATE1 del canal 1 se establece en 1 y comienza a contar
p>OUT 80H, AL
MOV AL, 67H Inicialización del canal 1
OUT 46H, AL
MOV AL; , 20H; valor de conteo inicial Los 8 bits altos y los 8 bits bajos se borran automáticamente
OUT 42H, AL
CALL DL6s
MOV AL; , 00H; GATE1 del canal 1 establecido en 0, deja de contar
OUT 80H, AL
┇ envía el comando de fin de interrupción a 8259A
IRET
Ejemplo 10. 2 El canal 2 de 8253 está conectado a un diodo emisor de luz. Para que el diodo emisor de luz funcione en un intervalo de 2 segundos encendido y apagado durante 2 segundos, las direcciones de puerto de cada canal de 8253 son 40H. , 42H, 44H y 46H respectivamente. El diagrama de hardware del circuito se muestra en la Figura 10.21. Programación de prueba para completar el trabajo anterior.
Según los requisitos, el canal 2 del 8253 emite una onda cuadrada con un período de 4 s. En la Figura 10.21, podemos ver que el ciclo de reloj de entrada CLK1 del canal 1 es de 1 μs. Si el canal 1 funciona como temporizador, su tiempo de sincronización de salida máximo es 1 × 65536 μs, que es solo 65,5 ms. el requisito de tiempo de sincronización de 4 s. En este momento, se adopta el método de conexión en cascada de canales y la salida OUT1 del canal 1 se utiliza como pulso de entrada del canal 2.
El canal 1 de 8253 funciona en modo 2, y la salida de su terminal de salida OUT1 es un pulso dividido en frecuencia en relación con la frecuencia de 1 MHZ. Si se selecciona el período del pulso de salida OUT1 en 4 ms, el inicial. El valor de conteo del canal 1 debe ser de 4000. Se utiliza un pulso con un período de 4 ms como entrada del canal 2, y se requiere que la forma de onda del terminal de salida OUT2 sea una onda cuadrada con un período de 4 s. Por lo tanto, el canal 2 debería funcionar en el modo 3 y en el modo inicial. El valor de conteo es 1000. La palabra de control del canal 1 es 01100101B y la palabra de control del canal 2 es 10100111B.
Dado que los 8 bits inferiores del valor de conteo inicial son 0, se adopta el método de lectura/escritura solo de los 8 bits superiores. El procedimiento de inicialización es el siguiente:
┇<. /p>
MOV AL, 65H; palabra de control del canal 1, solo lectura/escritura de 8 bits altos, sistema de conteo BCD
OUT 46H, AL
MOV AL, 0A7H; Palabra de control del canal 2, solo lectura/escritura Escribe los 8 bits superiores, sistema de conteo BCD
OUT 46H, AL
MOV AL, 40H los 8 bits superiores del valor de conteo inicial; del canal 1, los 8 bits bajos se configuran automáticamente en 0
OUT 42H, AL
MOV AL, 10H los 8 bits superiores del valor de conteo inicial del canal 2; Los 8 bits inferiores se configuran automáticamente en 0
OUT 44H, AL
┇
Ejemplo 10.3 Un determinado sistema utiliza el canal 0 del temporizador/contador 8253-5 para generar una onda cuadrada repetitiva de 1KHz ¿En qué modo de trabajo debería funcionar el canal 0? Si CLK0=2MHz, intente escribir el programa de inicialización para el canal 0. Suponga que las direcciones del puerto 8253-5 son 2F0H, 2F2H, 2F4H y 2F6H.
Solución: (1) Debido a que solo el modo 3 puede generar ondas cuadradas repetitivas, el conteo del canal 0 debería funcionar en el modo 3.
(2) Primero calcule el valor de conteo inicial:
N = (2*106)/(1*103) = 2000
En segundo lugar determine el modo palabra de control, dado que se utiliza el conteo BCD y solo se leen/escriben los ocho bits superiores, la palabra de control de modo es 00100111B.
Finalmente escribe el programa. Nota: Dado que las direcciones de puerto son 2F0H, 2F2H, 2F4H y 2F6H, que son direcciones de 16 bits, se debe utilizar el direccionamiento indirecto del registro DX en el direccionamiento de puerto. El programa es el siguiente:
MOV DX, 2F6H; Inicialización del canal 0
MOV AL, 00100111B
OUT DX, AL
MOV DX, 2F0H; escribe los 8 bits altos del valor de conteo inicial y los 8 bits bajos se borran automáticamente
MOV AL, 20H
OUT DX, AL