Diseño del curso de interfaz y principios de microcomputadoras: sistema de control de semáforos, los buenos pueden obtener 100 puntos extra
Diseño curricular de principios de microcomputadoras y tecnología de interfaz - Semáforo
Contenido
1 Prefacio…………………… ……………… …………………………3
2 Propósito del experimento…………………………………………………… ……………… 3
3. Contenido del experimento………………………………………………………………………………3
4. Diseño general de control y gestión del semáforo…………………………………………4
(1) Selección de chip y selección de puerto…… ……………… …………………………………4
(2) Diagrama del circuito de conexión experimental e instrucciones relacionadas……………………………… ………………4
(3) Pensamiento de diseño…………………………………………………………………………5
(4 ) Diagrama de flujo del diseño………………………………………………………………5
5 Entorno y condiciones experimentales…………………… ………………………………………………7
6. Programa fuente………………………… ………………………… ………………7
7. Resultados de ejecución del programa…………………………………………………… …………11
8. Resumen del diseño del curso…………………………………………………………11
1. Los principios y la tecnología de interfaz son temas altamente prácticos, que no solo requieren un alto nivel teórico, sino que también requieren habilidades prácticas. Muchas de las cantidades, reglas, fenómenos, etc. originales no se pueden dominar por completo simplemente estudiando libros de texto. Con la práctica podemos obtener una comprensión más intuitiva y profunda. El objetivo principal del diseño de este curso es mejorar las habilidades prácticas, incluida la mejora de la capacidad de programación en ensamblador y otros lenguajes, la capacidad de comprender y analizar hardware como interfaces y la capacidad de diseñar circuitos de interfaz. Durante el proceso de diseño del curso, los estudiantes. puede experimentar el análisis de problemas, todo el proceso de proponer soluciones, implementar soluciones a través de programación y otros medios, y depurar continuamente para finalmente cumplir con los requisitos de diseño ayuda a los estudiantes a dominar sistemáticamente el conocimiento relevante de la tecnología de interfaz de los principios de microcomputadoras y lograr el objetivo de integrar conocimientos.
Los semáforos en las intersecciones son órdenes silenciosas para las normas de tráfico y un código de conducta para conductores y peatones. El control de los semáforos en las intersecciones es la clave para garantizar la seguridad del tráfico y la fluidez de las carreteras. Actualmente, la mayoría de las ciudades de China están adoptando semáforos "automáticos", que tienen un intervalo fijo de conversión de "luz roja a luz verde" y cambian automáticamente. Sin embargo, en realidad, el flujo de tráfico de vehículos en diferentes momentos es muy complejo, altamente no lineal, aleatorio y, a menudo, está influenciado por factores humanos. Por ejemplo, cuando pasan ambulancias y coches de policía, los semáforos deberían abrirse en verde. canal" para que quede suave.
Este curso sobre semáforos está diseñado para controlar la conversión automática de luces rojas a luces verdes y luces amarillas en las direcciones este-oeste y norte-sur. El chip de interrupción de control 8259A se utiliza para controlar el este. -Semáforos oeste y norte-sur para pasar a rojo en situaciones de emergencia. Dejar pasar a vehículos especiales.
2. Propósito del experimento
1. Comprender los principios de funcionamiento básicos de la gestión de semáforos.
2 Estar familiarizado con los principios de funcionamiento y la programación de aplicaciones. el controlador de interrupciones 8259A
p>
3. Familiarícese con los diversos métodos de trabajo y aplicaciones de la interfaz paralela 8255A
4. en modo de placa única y utiliza luces de dos colores.
5. Aprenda más sobre la tecnología de programación de microprocesadores.
3. Contenido del experimento
Controle el estado del semáforo a través de 8255A a través del programa de ensamblaje y controle el estado del semáforo en emergencia a través de 8259A. siguiente:
1. El estado inicial 0 son luces rojas en el este y oeste y luces rojas en el norte y sur.
2. Luego cambie al estado 1 con luces verdes abiertas al tráfico en el norte y sur y luces rojas en el este y oeste.
3. Después de un período de tiempo, cambiará al estado 2. Las luces norte y sur parpadearán en verde varias veces y luego se volverán amarillas, después de un retraso de unos segundos, las luces este y. Las luces del oeste seguirán siendo rojas.
4. Cambie el estado nuevamente, las luces este y oeste están en verde y las luces norte y sur están encendidas.
5. Después de un período de tiempo, cambiará al estado 4. Las luces este y oeste parpadearán en verde varias veces y se volverán amarillas. Habrá un retraso de unos segundos. Las luces del sur seguirán siendo rojas.
6. Finalmente, pase al estado 1.
7. Presione la tecla de pulso para generar un pulso como fuente de interrupción externa y transferirlo al programa de servicio de interrupción. Los semáforos están todos en rojo en el este, oeste, norte y sur.
IV. Diseño general de control y gestión de semáforos
(1) Selección de chip y selección de puerto
1. Luz de señal Control de conversión automática amarilla.
8259A: Realice el control de hacer que la señal se ilumine completamente en rojo en circunstancias especiales.
2. Las direcciones de puerto de 8259A son: 210H, 211H
Las direcciones de puerto de 8255A son: puerto A-200H, puerto B-201H, puerto C-202H, puerto de control. -203H
(2) Diagrama del circuito de conexión experimental e instrucciones relacionadas
Diagrama del circuito:
Conexión del pin de señal de selección del chip:
8259A Conexión de pin de señal de selección de chip: 210-217
Conexión de pin de señal de selección de chip 8255A: 200-207
(3) Idea de diseño
Convertir 8255A La palabra de control está configurado en salida completa, y la salida del puerto A se usa para controlar el cambio de semáforo en dirección este-oeste, norte-sur, y el programa de retraso se usa para controlar el tiempo de varias pantallas de estado. Utilice pulsos como fuentes de interrupción externas para solicitar una interrupción desde IRQ0 de 8259A. Cada pulsación indica una emergencia. La subrutina de interrupción muestra el semáforo en rojo completo y también se utiliza un programa de retardo para controlar el tiempo en rojo completo.
(4) Diagrama de flujo del diseño
Diagrama de flujo del programa principal:
Diagrama de flujo del programa de servicio de interrupción:
Entorno experimental y Condiciones
1. Caja de prueba de tecnología de interfaz y principio de microordenador
2. Cables
6. /p>
D2 EQU 200H
;Segmento de datos
SEGMENTO DE DATOS
PB DB?
TERMINOS DE DATOS
;Segmento de pila
PILA DE SEGMENTO DE PILA
STA DW 50 DUP(?)
LONGITUD SUPERIOR EQU STA
PILA FINALIZA
;Segmento de código
SEGMENTO DE CÓDIGO
ASUME CS: CÓDIGO, DS: DATOS
INICIO: CLI Desactivar interrupciones<; /p>
p>
XOR BX, BX, DS borrado
PUSH BX
POP DS
; /p>
LEA AX, IRQ0_INTERRUPT; Asigna la primera dirección de la interrupción externa IRQ0 a AX
MOV DS: WORD PTR[40], AX Crea un espacio en el segmento de pila para almacenar el desplazamiento; de la dirección de entrada de interrupción
;Mover dirección IP
MOV DS: WORD PTR[42], CS;Almacenar la dirección base CS de la dirección de entrada de interrupción
NOP;Retraso
PUSH CS
POP DS
; inicialización 8259
MOV DX, 210H Establecer ICW1
MOV AL, 00010011B
p>OUT DX, AL
JMP $ 2; Retardo
MOV DX, 211H; Establecer ICW2, establecer vector de interrupción número 08H
MOV AL, 08H
OUT DX, AL
JMP $ 2; retardo
MOV DX, 211H Establecer ICW4;
MOV AL , 01H
OUT DX, AL
JMP $ 2 ; Retardo
MOV AL, 0FEH ; interrupción IR0 y deshabilita otras interrupciones
p>OUT DX, AL
MOV CX, 0FFFH
LOOP $
MOV DX, 210H; configure OCW2, seleccione el comando EOI normal, todo el método de anidamiento
MOV AL, 20H
OUT DX, AL
MOV CX, 0FFFH
LOOP $
PUSH CS
POP DS
; Inicialización 8253
MOV DX, 203H; configurado a salida completa
MOV AL, 80H
OUT DX, AL
MOV DX, 200H
MOV AL, 00
SALIDA DX, AL; LED claro
STI
MOV DX, 200H Todo rojo
p>
p>
MOV AL, 0F0H
OUT DX, AL
MOV BX, 7fH
LLAMADA DLY
BG: MOV AL, 01011010B; norte y sur verde, este y oeste rojo
OUT DX, AL
MOV BX, D2
CALL DLY
MOV CX, 03H
XH1: AND AL, 0F5H verde apagado
OUT DX, AL
MOV BX, D1 p>
LLAMADA DLY
p>OR AL, 0aH luz verde
OUT DX, AL
MOV BX, D1
CALL DLY
LOOP
MOV BX, D1
CALL DLY
MOV AL, 10100101B norte y sur rojo, este; y oeste verde
OUT DX, AL
p>
MOV BX, D2
CALL DLY
MOV CX, 03
XH2: AND AL, 0FaH; verde apagado
OUT DX, AL
MOV BX, D1
CALL DLY
O AL, 05H; luz verde
SALIDA DX, AL
MOV B
X, D1
LLAMADA DLY
BUCLE XH2
O AL, 50H; norte y sur rojo, este y oeste amarillo
FUERA DX, AL
MOV BX, D1
LLAMADA DLY
MOV BX, D1
LLAMADA DLY
JMP BG p>
;Programa de interrupción
IRQ0_INTERRUPT PROC NEAR
CLI
PUSH DX
PUSH AX p>
MOV DX, 200H
MOV AL, 0F0H
SALIDA DX, AL
MOV DX, 210H
MOV AL, 20H
SALIDA DX, AL
MOV CX, 0FFFFH
LOOP $
POP AX
POP DX
p>STI
IRET
IRQ0_INTERRUPT ENDP
; programa de retraso
DLY PROC NEAR
PUSH CX
DDD: MOV CX, 05ffH
CCC: BUCLE CCC
DEC BX
CMP BX , 0
JNE DDD
POP CX
RET
DLY ENDP
CÓDIGO FINALIZA
FIN INICIO
Nota: El LED bicolor está empaquetado junto con un chip de LED rojo y un chip de LED verde, con un terminal negativo común. Cuando el terminal positivo rojo agrega un nivel alto y el terminal positivo verde agrega un nivel bajo, la luz roja se enciende cuando el terminal positivo rojo agrega un nivel bajo y el terminal positivo verde agrega un nivel alto, la luz verde se enciende cuando ambos extremos suman; Nivel alto, la luz amarilla se enciende.
7. Resultados de la ejecución del programa
1. El estado inicial son luces rojas en el este y el oeste y luces rojas en el norte y el sur. Después de un rato, los semáforos de norte a sur se vuelven verdes y los semáforos de este a oeste permanecen en rojo.
Después de un período de tiempo, las luces verdes en el norte y el sur parpadean, y después de parpadear tres veces, se convierten en luces amarillas. Diseño del curso de tecnología de interfaz y principios de microcomputadoras: semáforos
Contenido
1. Prefacio... …………………………………………………………………………………… 3
2. Propósito del experimento………………………… …………………………………………3
3 Contenido del experimento……………… …………………………………… ………………3
IV. Diseño general del control y gestión del semáforo……………………………… …………4
( 1) Selección de chip y selección de puerto……………………………………………………4
(2 ) Diagrama del circuito de conexión experimental e instrucciones relacionadas…………………………………………4
(3) Pensamiento de diseño……………………………… …………………… ………………5
(4) Diagrama de flujo de diseño………………………………………………………… ………5
5. Entorno y condiciones experimentales………………………………………………………………7
6. …………………………………………………………………………………… 7
7. …………………… ………………………………………………11
8. Resumen del diseño del curso………………………… ………………………… …………11
1. Introducción
Los principios de microcomputación y la tecnología de interfaces son temas altamente prácticos, que no solo requieren un alto nivel teórico. , pero también requiere experiencia práctica. Muchas de las cantidades, reglas, fenómenos, etc. originales no se pueden dominar por completo simplemente estudiando los libros de texto. Deben comprenderse de manera intuitiva y profunda a través de la práctica. El objetivo principal del diseño de este curso es mejorar las habilidades prácticas, incluida la mejora de la capacidad de programación en ensamblador y otros lenguajes, la capacidad de comprender y analizar hardware como interfaces y la capacidad de diseñar circuitos de interfaz. Durante el proceso de diseño del curso, los estudiantes. puede experimentar el análisis de problemas, todo el proceso de proponer soluciones, implementar soluciones a través de programación y otros medios, y depurar continuamente para finalmente cumplir con los requisitos de diseño ayuda a los estudiantes a dominar sistemáticamente el conocimiento relevante de la tecnología de interfaz de los principios de microcomputadoras y lograr el objetivo de integrar conocimientos.
Los semáforos en las intersecciones son órdenes silenciosas para las normas de tráfico y un código de conducta para conductores y peatones. El control de los semáforos en las intersecciones es la clave para garantizar la seguridad del tráfico y la fluidez de las carreteras. Actualmente, la mayoría de las ciudades de China están adoptando semáforos "automáticos", que tienen un intervalo fijo de conversión de "luz roja a luz verde" y cambian automáticamente. Sin embargo, en realidad, el flujo de tráfico de vehículos en diferentes momentos es muy complejo, altamente no lineal, aleatorio y, a menudo, está influenciado por factores humanos. Por ejemplo, cuando pasan ambulancias y coches de policía, los semáforos deberían abrirse en verde. canal" para que quede suave.
Este curso sobre semáforos está diseñado para controlar la conversión automática de luces rojas a luces verdes y luces amarillas en las direcciones este-oeste y norte-sur. El chip de interrupción de control 8259A se utiliza para controlar el este. -Semáforos oeste y norte-sur para pasar a rojo en situaciones de emergencia. Dejar pasar a vehículos especiales.
2. Propósito del experimento
1. Comprender los principios de funcionamiento básicos de la gestión de semáforos.
2 Estar familiarizado con los principios de funcionamiento y la programación de aplicaciones. el controlador de interrupciones 8259A
p>
3. Familiarícese con los diversos métodos de trabajo y aplicaciones de la interfaz paralela 8255A
4. en modo de placa única y utiliza luces de dos colores.
5. Aprenda más sobre la tecnología de programación de microprocesadores.
3. Contenido del experimento
Controle el estado del semáforo a través de 8255A a través del programa de ensamblaje y controle el estado del semáforo en emergencia a través de 8259A. siguiente:
1. El estado inicial 0 son luces rojas en el este y oeste y luces rojas en el norte y sur.
2. Luego cambie al estado 1 con luces verdes abiertas al tráfico en el norte y sur y luces rojas en el este y oeste.
3. Después de un período de tiempo, cambia al estado 2. La luz verde en el norte y el sur parpadea varias veces y luego se vuelve amarilla, después de un retraso de unos segundos, en el este y el oeste. las luces permanecen rojas.
4. Cambie el estado nuevamente, las luces este y oeste están en verde y las luces norte y sur están encendidas.
5. Después de un período de tiempo, cambiará al estado 4. Las luces este y oeste parpadearán en verde varias veces y luego se encenderán en amarillo. Habrá un retraso de unos segundos. Las luces norte y sur seguirán siendo rojas.
6. Finalmente, pase al estado 1.
7. Presione la tecla de pulso para generar un pulso como fuente de interrupción externa y transferirlo al programa de servicio de interrupción. Los semáforos están todos en rojo en el este, oeste, norte y sur.
IV. Diseño general de control y gestión de semáforos
(1) Selección de chip y selección de puerto
1. Luz de señal Control de conversión automática amarilla.
8259A: Realice el control de hacer que la señal se ilumine toda en rojo en circunstancias especiales.
2. Las direcciones de puerto de 8259A son: 210H, 211H
Las direcciones de puerto de 8255A son: puerto A-200H, puerto B-201H, puerto C-202H, puerto de control. -203H
(2) Diagrama del circuito de conexión experimental e instrucciones relacionadas
Diagrama del circuito:
Conexión del pin de señal de selección del chip:
8259A Conexión de pin de señal de selección de chip: 210-217
Conexión de pin de señal de selección de chip 8255A: 200-207
(3) Idea de diseño
Convertir 8255A La palabra de control está configurado en salida completa, y la salida del puerto A se usa para controlar el cambio de semáforo en dirección este-oeste, norte-sur, y el programa de retraso se usa para controlar el tiempo de varias pantallas de estado. Utilice pulsos como fuentes de interrupción externas para solicitar una interrupción desde IRQ0 de 8259A. Cada pulsación indica una emergencia. La subrutina de interrupción muestra el semáforo en rojo completo y también se utiliza un programa de retardo para controlar el tiempo en rojo completo.
(4) Diagrama de flujo del diseño
Diagrama de flujo del programa principal:
Diagrama de flujo del programa de servicio de interrupción:
Entorno experimental y Condiciones
1. Caja de prueba de tecnología de interfaz y principio de microordenador
2. Cables
6. /p>
D2 EQU 200H
;Segmento de datos
SEGMENTO DE DATOS
PB DB?
TERMINOS DE DATOS
;Segmento de pila
PILA DE SEGMENTO DE PILA
STA DW 50 DUP(?)
LONGITUD SUPERIOR EQU STA
PILA FINALIZA
;Segmento de código
SEGMENTO DE CÓDIGO
ASUME CS: CÓDIGO, DS: DATOS
INICIO: CLI Desactivar interrupciones<; /p>
p>
XOR BX, BX, DS borrado
PUSH BX
POP DS
; /p>
LEA AX, IRQ0_INTERRUPT; Asigna la primera dirección de la interrupción externa IRQ0 a AX
MOV DS: WORD PTR[40], AX Crea un espacio en el segmento de pila para almacenar el desplazamiento; de la dirección de entrada de interrupción
;Mover dirección IP
MOV DS: WORD PTR[42], CS;Almacenar la dirección base CS de la dirección de entrada de interrupción
NOP;Retraso
PUSH CS
POP DS
; inicialización 8259
MOV DX, 210H Establecer ICW1
MOV AL, 00010011B
p>OUT DX, AL
JMP $ 2; Retardo
MOV DX, 211H; Establecer ICW2, establecer vector de interrupción número 08H
MOV AL, 08H
OUT DX, AL
JMP $ 2; retardo
MOV DX, 211H Establecer ICW4;
MOV AL , 01H
OUT DX, AL
JMP $ 2 ; Retardo
MOV AL, 0FEH ; interrupción IR0 y deshabilita otras interrupciones
p>OUT DX, AL
MOV CX, 0FFFH
LOOP $
MOV DX, 210H; configure OCW2, seleccione el comando EOI normal, todo el método de anidamiento
MOV AL, 20H
OUT DX, AL
MOV CX, 0FFFH
LOOP $
PUSH CS
POP DS
; Inicialización 8253
MOV DX, 203H; configurado a salida completa
MOV AL, 80H
OUT DX, AL
MOV DX, 200H
MOV AL, 00
SALIDA DX, AL; LED claro
STI
MOV DX, 200H Todo rojo
p>
p>
MOV AL, 0F0H
OUT DX, AL
MOV BX, 7fH
LLAMADA DLY
BG: MOV AL, 01011010B; norte y sur verde, este y oeste rojo
OUT DX, AL
MOV BX, D2
CALL DLY
MOV CX, 03H
XH1: AND AL, 0F5H verde apagado
OUT DX, AL
MOV BX, D1 p>
LLAMADA DLY
p>OR AL, 0aH luz verde
OUT DX, AL
MOV BX, D1
CALL DLY
LOOP XH1
OR AL, 0a0H; norte y sur amarillo, este y oeste rojo
OUT DX, AL
MOV BX, D1
CALL DLY
MOV BX, D1
CALL DLY
MOV AL, 10100101B; rojo, verde este y oeste
OUT DX, AL
p>
MOV BX, D2
CALL DLY
MOV CX, 03
XH2: AND AL, 0FaH; verde apagado
OUT DX, AL
MOV BX, D1
CALL DLY
OR AL, 05H; luz verde
SALIDA DX, AL
MOV B
X, D1
LLAMADA DLY
BUCLE XH2
O AL, 50H; norte y sur rojo, este y oeste amarillo
FUERA DX, AL
MOV BX, D1
LLAMADA DLY
MOV BX, D1
LLAMADA DLY
JMP BG p>
;Programa de interrupción
IRQ0_INTERRUPT PROC NEAR
CLI
PUSH DX
PUSH AX p>
MOV DX, 200H
MOV AL, 0F0H
SALIDA DX, AL
MOV DX, 210H
MOV AL, 20H
SALIDA DX, AL
MOV CX, 0FFFFH
LOOP $
POP AX
POP DX
p>STI
IRET
IRQ0_INTERRUPT ENDP
; programa de retraso
DLY PROC NEAR
PUSH CX
DDD: MOV CX, 05ffH
CCC: BUCLE CCC
DEC BX
CMP BX , 0
JNE DDD
POP CX
RET
DLY ENDP
CÓDIGO FINALIZA
FIN INICIO
Nota: El LED bicolor está empaquetado junto con un chip de LED rojo y un chip de LED verde, con un terminal negativo común. Cuando el terminal positivo rojo agrega un nivel alto y el terminal positivo verde agrega un nivel bajo, la luz roja se enciende cuando el terminal positivo rojo agrega un nivel bajo y el terminal positivo verde agrega un nivel alto, la luz verde se enciende cuando ambos extremos suman; Nivel alto, la luz amarilla se enciende.
7. Resultados de la ejecución del programa
1. El estado inicial son luces rojas en el este y el oeste y luces rojas en el norte y el sur. Después de un rato, los semáforos de norte a sur se vuelven verdes y los semáforos de este a oeste permanecen en rojo. Después de un período de tiempo, la luz verde parpadea en el norte y el sur, se vuelve amarilla después de parpadear tres veces y las luces del este y del oeste permanecen rojas. Durante un tiempo, las luces norte y sur estuvieron rojas, mientras que las luces este y oeste se volvieron verdes. De manera similar, después de un período de tiempo, las luces este y oeste parpadean en verde, luego se vuelven amarillas después de parpadear tres veces y las luces del norte y del sur son rojas. Después de un tiempo, volvió a la luz verde en el norte y el sur, y a la luz roja en el este y el oeste, y así sucesivamente.
2. Cuando se presiona el botón de pulso, se genera un pulso y el semáforo se vuelve rojo en las direcciones este, oeste, norte y sur, y luego regresa al estado antes de que se volviera rojo después. un período de tiempo.
8. Resumen del diseño del curso