Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
06/09/2015 1 ARQUITECTURA DE COMPUTADORAS Curso 2015 Prof. Jorge Runco Prof. Adj. Jorge M. Runco INT0 INT1 INT2 INT3 00001111 F10 TIMER CLK2 HAND IMR PIC HANDCDMA 06/09/2015 2 Prof. Adj. Jorge M. Runco Comunicación cpu - impresora � Tres alternativas de conexionado : � CPU – PIO – IMPRESORA � CPU – HAND – IMPRESORA � CPU – CDMA – HAND - IMPRESORA Prof. Adj. Jorge M. Runco Comunicación cpu - impresora Línea de BUSY (1 bit) Código ASCII del carácter a imprimir (8 bits) Línea de STROBE (1 bit) 06/09/2015 3 Prof. Adj. Jorge M. Runco CPU – PIO – IMPRESORA CPU ASCII PA PB PIO PA0=BUSY PA1=STROBE PB0…PB7=DATOSBUS DEL SISTEMA Prof. Adj. Jorge M. Runco CPU – PIO – IMPRESORA while (impresora libre & no es el último caracter) { Enviar el dato Enviar pulso STROBE } POLL: IN AL, PA AND AL, 1 JNZ POLL MOV AL, [BX] OUT PB, AL MOV AL, O2H OUT PA, AL MOV AL, 0H OUT PA, AL INC BX DEC CL JNZ POLL Impresora libre ? Enviar dato Pulso de Strobe Último caracter ? 06/09/2015 4 Prof. Adj. Jorge M. Runco CPU – HAND – IMPRESORA CPU ASCII ESTADO DATOS HAND BUSY=bit0 de Estado STROBE=generado por HAND HAND=DATOSBUS DEL SISTEMA Prof. Adj. Jorge M. Runco CPU – HAND – IMPRESORA while (impresora libre & no es el último caracter) { Enviar el dato } POLL: IN AL, HAND+1 AND AL, 1 JNZ POLL MOV AL, [BX] OUT HAND, AL INC BX DEC CL JNZ POLL Impresora libre ? Enviar dato Último caracter ? Por consulta de estado 06/09/2015 5 Prof. Adj. Jorge M. Runco CPU – HAND – IMPRESORA while (no es el último caracter) { ……… } POLL: CMP CL, 0 JNZ POLL Interrupción generada por el HAND RUT_HND: PUSH AX MOV AL, [BX] OUT HAND, AL INC BX DEC CL MOV AL, 20H OUT PIC, AL POP AX IRET Prof. Adj. Jorge M. Runco F10 0027H 00H 0028H 00H 0029H 30H 002AH 00H 10 01111111 INT1 INT3 INT2 F10 0 10201BPC 3000H 4x10=40=28H CPU PIC VECTORES (MEM) BUS DE DATOS IMR INT0 06/09/2015 6 Prof. Adj. Jorge M. Runco Registros del PIC 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 IMR ISR IRR INT0 e INT2 habilitadas, bit0 y bit2 en cero Está en servicio INT2, pues bit2 vale 1 Hay un pedido de INT0 pendiente pues bit0=1 Prof. Adj. Jorge M. Runco ORG 4 x Número de vector dw Nombre ORG 2000H Deshabilitar la atención de interrupciones (CPU) Habilitar la interrupción en el IMR (PIC) Escribir el vector seleccionado en el reg (INT0, INT1...) Inicialización dependiendo del periférico Habilitar la atención de interrupciones (CPU) Esperar la finalización del programa ORG 3000H Nombre: Rutina de interrupción RET 06/09/2015 7 Prof. Adj. Jorge M. Runco 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IN AL, PA OUT PB, AL 1 1 1 1 1 1 00H04H84HA4H
Compartir