PRACTICA 2

Anuncio
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
Descargar