Encuentre un experto en ensamblaje para que le ayude a escribir un programa Neon (chip 8255)
DW 64 DUP(?)
PILA DE SEGMENTO DE CÓDIGO FINAL
ASUME CS:CODE
INICIO: EMPUJAR DS p> p>
MOV AX,0000H
MOV DS,AX
MOV AX,OFFSET IRQ0 ;Establecer vector de interrupción
AGREGAR AX,OFFSET IRQ0 ;Establecer vector de interrupción
ADD AX,OFFSET IRQ0;;Establecer vector de interrupción
ADD AX,OFFSET IRQ0;Establecer vector de interrupción
ADD AX,2000H p>
MOV SI,0020H
MOV [SI],AX
MOV AX,0000H
MOV SI,0022H
MOV [SI],AX
POP DSMOV AL,80H;8255 palabra de control
OUT 63H,AL
MOV AL,0FEH OCW1 de 8359
OUT 21H,AL
MOV AL,34H ;Establecer la palabra de control del 8253
OUT 43H,AL
MOV AL,09CH ;Establecer el valor de recuento inicial de 8253 0 OUT 40H,AL
OUT 40H,AL
MOV AL,2EH
OUT 40H,AL
MOV CH,0; cuenta el número de pulsos
MOV CL,05H; parpadea cuando llega a 5 segundos
MOV BL,1EH; cuenta cuando llega a 30 segundos
MOV BL ,1EH ;Cuenta cuando están completos 30 segundos
MOV D,09CH ;Establece la palabra de control 8253.
MOV DH,0; Bit de bandera para pasar o no
MOV DL,0; Bit de bandera para parpadear o no
A1:STI
JMP A1
;Rutina de servicio de interrupción
IRQ0:
PRUEBA DH,1
JNZ SIGUIENTE
TEST DL,1
JNZ NEXT
TEST DL,1
JNZ SS1
MOV AL,0C3H; 0,5 segundos p>
Jb MSN1; si interrumpir 50 veces, es decir, 0,5 segundos
Jb MSN1; si interrumpir 100 veces, es decir, 0,5 segundos
> JNZ MSN1 0,5 segundos
;MOV CH,0
MOV AL,0C3H
OUT 60H,AL
CMP CH,64H ;Flash una vez por segundo
Jb MSN
MOV CH,0
DEC CL
JNZ MSN ; /p>
JNZ MSN ; si son 5 segundos
CMP CH,32H
JnZ MSN segundos
MOV DL,0
MOV DH,1
MOV CL,5
JMP MSNEXT:PRUEBA DL,1
JNZ NEXT1
MOV AL ,3CH ;La luz roja del carril está encendida, la luz verde de la acera está encendida
OUT 60H,AL<
INC CH
CMP CH,64H p>
JNZ MSN ; Si interrumpir 100 veces
MOV CH,0
DEC BL
JNZ MSN ; Si ingresar 10 segundos p>
MOV BL,1EH
MOV DL, 1
NEXT1:
INC CH
CMP CH,32H
Jb MSN1 ;Si interrumpir 5 veces
MOV AL, 3CH
OUT 60H,AL
CMP CH,64H parpadea una vez por segundo; p>
Jb MSN
MOV CH,0 p>
MOV BL,1EH
MOV DL,1
MOV CH, 0
DEC CL
JNZ MSN ; ¿Son 5 segundos?
MOV DL,0
MOV DH,0
MOV CL,5
jmp MSNMSN1: MOV AL,0FFH ;menos de 1 segundo sin luz
OUT 60H, AL
MSN:MOV AL,20H
OUT 20H,AL
IRET
CÓDIGO FINALIZA
FIN INICIO