Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Preguntas sobre principios de microcomputadoras! ¡urgente!

¡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