Académique Documents
Professionnel Documents
Culture Documents
Cuando la terminal RD est en 0, el dato que se encuentra en alguno de los puertos se lee y se enva al microprocesador a travs del bus de datos (D0-D7). Es cuando ocurre la instruccin IN. Cuando se utiliza la instruccin OUT, en la terminal WR se encuentra un 0, y se enva un dato a algunos de los puertos o a la palabra de control, dependiendo de la direccin. La entrada RES (o RESET) cuando est en 1 lgico inicializa al PPI al mismo tiempo que el procesador. Por defecto el PPI se inicializa en modo 0 con los tres puertos de entrada. El bus de datos (D0-D7) sirve para recibir o transmitir datos de 8 bits y est conectado al bus de datos del sistema computacional. La configuracin de las terminales se muestra en la figura 1.
1/8
AGPS-2006 _________ _________ _| \__/ |_ |_|1 40|_| _| |_ |_|2 39|_| _| |_ |_|3 8255 38|_| _| |_ |_|4 37|_| _| |_ |_|5 36|_| _| |_ |_|6 35|_| _| |_ |_|7 34|_| _| |_ |_|8 33|_| _| |_ |_|9 32|_| _| |_ |_|10 31|_| _| |_ |_|11 30|_| _| |_ |_|12 29|_| _| |_ |_|13 28|_| _| |_ |_|14 27|_| _| |_ |_|15 26|_| _| |_ |_|16 25|_| _| |_ |_|17 24|_| _| |_ |_|18 23|_| _| |_ |_|19 22|_| _| |_ |_|20 21|_| |______________________|
<--> PA3 <--> PA2 <--> PA1 <--> PA0 --> /RD --> /CS GND --> --> A1 A0
PA4 <--> PA5 <--> PA6 <--> PA7 <--> /WR <-RES <-D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 <--> PB6 <--> PB5 <--> PB4 <--> PB3 <--> <--> <--> <--> <--> <--> <--> <--> <--> ACTIVE HI
<--> PC7 <--> PC6 <--> PC5 <--> PC4 <--> PC0 <--> PC1 <--> PC2 <--> PC3 <--> PB0 <--> PB1 <--> PB2
2/8
AGPS-2006
Modo de operacin
El PPI trabaja en modo activo e inactivo. En el modo activo se manejan 3 modos de operacin, modo 0(Entrada/Salida bsica), modo 1(Entrada/Salida habilitada) y modo 2 (Bus bidireccional). Para programar los puertos en alguno de estos tres modos se utiliza la palabra de control.
MA1 MA0 = Modo del Grupo A 0 0 Modo 0 0 1 Modo 1 1 X Modo 2 PB = Puerto B 0 = Salida 1 = Entrada
PC+ = Puerto C (MS) MB = Modo del Grupo B 0 = Salida 0 = Modo 0 1 = Entrada 1 = Modo 1
Grupo A: Puerto A y los 4 bits ms significativos del Puerto C Grupo B: Puerto B y los 4 bits menos significativos del Puerto C Modo 0: Entrada/Salida Bsica 16 maneras de definir las direcciones de Entrada/Salida de los 4 subgrupos de bits. Los datos se envan o se reciben por esas direcciones. Modo 1: Entrada/Salida Habilitada Los dos grupos de 4 bits del puerto C, sirven de control y de estado para los puertos A y B. Los grupos de 8 bits (puerto A y B) son para datos. Cada grupo de 8 bits, puertos A y B, se puede definir como entrada o salida. Modo 1, Entrada habilitada Definiciones Descripcin de la seal de seal STB(strobe) Es un pulso de entrada que carga los datos al registro del puerto IBF (input Es una salida que indica que el registro de buffer full) entrada contiene un dato INTR Salida que solicita interrupcin (interrupt request) Grupo A Grupo B PC4 PC5 PC3 PC2 PC1 PC0
3/8
AGPS-2006
4/8
AGPS-2006
Modo 1 Salida Habilitada Definiciones Descripcin de la seal de seal OBF (output Es una salida que se coloca en 0 cuando se buffer full) escriben datos al registro del puerto. Se coloca en 1 cuando se recibe un pulso en ACK ACK Ocasiona que OBF regrese a 1. Es una (acknowledge) respuesta del dispositivo externo cuando ha recibido un dato del puerto del PPI. INTR Salida que solicita interrupcin al (interrupt microprocesador. request) INTE Bit interno programado a travs de PC6 o PC2 (interrupt y habilita o deshabilita la terminal INTR enable) PC4, PC5 Propsitos generales
Modo 2: Bus Bidireccional Solo el puerto A se puede programar en este modo, en este caso, todo el puerto C es utilizado como control y estado del puerto A. El puerto A puede recibir y enviar datos sin necesidad de reprogramarse.
5/8
AGPS-2006
Definiciones de seal INTR (interrupt request) OBF (output buffer full) ACK (acknowledge) STB(strobe) IBF (input buffer full) INTE1, INTE2 (interrupt enable) PC0, PC1 y PC2
Descripcin de la seal Salida que solicita interrupcin al microprocesador tanto en condicin de entrada como de salida. Es una salida que indica que existe un dato en el buffer de salida. Es una entrada que reconoce cuando existe un dato en el puerto A. Si est en 1 el puerto est en alta impedancia. Es un pulso de entrada que carga los datos al registro del puerto A Es una salida que indica que el registro de entrada contiene un dato. Bits internos programados a travs de PC6 (INTE1)o PC2 (INTE2) y que habilitan o deshabilitan la terminal INTR Propsitos generales
Modo Inactivo: D7=0 A0 = 1 A1 = 1 En este modo, se controla que valores se van a colocar en cada bit del puerto C. En este caso se toma al puerto C como puerto de salida y se controla los valores de salida bit por bit. D7 0 D6 X D5 X D4 X D3 C2 D2 C1 D1 C0 D0 V
C2 0 0 0 0 1 1 1 1
C1 0 0 1 1 0 0 1 1
C0 = Nmero de bit del puerto C 0 Bit PC- 0 1 Bit PC-1 0 Bit PC-2 1 Bit PC-3 0 Bit PC-4 1 Bit PC-5 0 Bit PC-6 1 Bit PC-7
6/8
AGPS-2006
Programa ejemplo para el modo 1 como salida BIT1 EQU 2 PORTC EQU 62H PORTB EQU 61H CMD EQU 63H PRINT: IN AL, PORTC TEST AL, BIT1 JZ PRINT MOV AL, AH OUT PORTB, AL MOV AL, 8 OUT CMD, AL MOV AL, 9 OUT CMD, AL
; Obtiene OBF ; Verifica OBF ; salta si OBF = 0 ; Obtiene el dato ; Imprime (enva al puerto B un dato) ; Inicializa en 0 a DS (PC4 va hacia esta seal del ; dispositivo) ; Enva un pulso de datos a la impresora ; Limpia en 0 a DS
7/8
AGPS-2006
Programa ejemplo para el modo 2 (bidireccional) BIT7 EQU 80H ; Este programa transmite AH por el bus bidireccional PORTC EQU 62H ; del puerto A PORTA EQU 60H TRANS: IN AL, PORTC ; Obtiene OBF TEST AL, BIT7 ; Verifica OBF JZ TRANS ; Si OBF = 1 MOV AL, AH ; Obtiene el dato OUT PORTA, AL ; Enva el dato ; Lee datos desde el puerto A bidireccional y los regresa en AL. ; El paso anterior y ste se pueden hacer en un solo programa. BIT5 EQU 20H PORTC EQU 62H PORTA EQU 60H READ: IN AL, PORTC ; Obtiene IBF TEST AL, BIT5 ; Verifica IBF JZ READ ; Si IBF=0 IN AL, PORTA ; Obtiene el dato
Cdigo ejemplo para el modo inactivo El siguiente cdigo, enva un "1" al Bit 5 del Puerto C. MOV DX, 03 MOV AL, 0Bh; AL= 00001011b OUT DX, AL
8/8