Pedro Guerrero Amado.Marzo 2002 PRACTICA 2. ACTIVAR UNA SALIDA CON UNA ENTRADA 1. Vamos a realizar la simple activación de una salida de la puerta B, cuando se active una entrada en la puerta A. ORGANIGRAMA Pedro Guerrero Amado.Marzo 2002 PROGRAMA FUENTE. 1. El conjunto de instrucciones siguientes son iguales que en el ejercicio anterior. LIST P=PIC16F84 LIST C=132 ;DECLARACION REGISTROS Y VARIABLES porta portb trisa trisb status EQU 0x05 EQU 0x06 EQU 0x5 EQU 0x6 EQU 0x03 ORG 0 GOTO inicio ; salvamos el vector de interrupción ORG 5 2. A continuación seccionamos el banco 1 para poder escribir sobre TRISB y TRISA. Uno lo seleccionamos como salidas y el otro como entradas. A continuación volvemos al banco 0. inicio BSF status,5 CLRF trisb MOVLW 0x1f MOVWF trisa BCF status,5 ; seleccionamos banco 1 de registros ; ponemos trisb a 0, puerta B como salidas ;ponemos a como entradas ; seleccionamos banco 0 6. En primer lugar ponemos las salidas a 0 y a continuación comprobamos si la entrada 0 del puerto A es uno, si no es así volvemos a bucle y si esta a uno saltamos una instrucción y activamos la salida 0 del puerto B. princi CLRF portb ; ponemos todas las salidas a 0 bucle BTFSS porta,0 ; comprobamos si el bit 0 de la porta a es uno GOTO bucle ; si no es uno volvemos, si es uno saltamos BSF portb,0 ; ponemos a uno el bit 0 de la puerta b 7. Una vez puesto a uno la salida 0, comprobamos la puerta A, pero ahora que sea 0 . Cuando sea 0, borramos la puerta B y volvemos al inicio. Pedro Guerrero Amado.Marzo 2002 bucle1 BTFSC porta, 0 GOTO bucle1 ;igual que el anterior pero ahora ;comprobamos que sea 0 ; BCF portb,0 ; GOTO bucle ; volvemos al inicio END LISTADO COMPLETO DEL PROGRAMA ;Activación de una salida con un interruptor LIST P=PIC16F84 LIST C=132 ;DECLARACION REGISTROS Y VARIABLES porta EQU 0x05 portb EQU 0x06 trisa EQU 0x5 trisb EQU 0x6 status EQU 0x03 ORG 0 GOTO inicio ; salvamos el vector de interrupción ORG 5 inicio BSF status,5 ; seleccionamos banco 1 de registros CLRF trisb ; ponemos trisb a 0, puerta B como salidas MOVLW 0x1f MOVWF trisa ;ponemos a como entradas BCF status,5 ; seleccionamos banco 0 princi CLRF portb ; ponemos todas las salidas a 0 bucle BTFSS porta,0 ; comprobamos si el bit 0 de la porta a es uno GOTO bucle ; si no es uno volvemos, si es uno saltamos BSF portb,0 ; ponemos a uno el bit 0 de la puerta b bucle1 BTFSC porta, 0 ;igual que el anterior pero ahora comprobamos que ; sea 0 ; GOTO bucle1 BCF portb,0 ; GOTO bucle ; volvemos al inicio END