You are on page 1of 6

Practica N°1

1.- Por los leds conectados al puerto B visualiza el valor de una constante, por
ejemplo el numero binario b’01010101’

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONSTANTE EQU 0X0C
ORG 0
GOTO INICIO
ORG 4
INICIO
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
PRINCIPAL
MOVLW b'01010101'
MOVWF CONSTANTE
MOVWF PORTB
END

2.- Los LEDs conectados al nibble bajo del Puerto B se apagan y los conectados
al nibble alto se encienden.

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONSTANTE EQU 0X0C
ORG 0
GOTO INICIO
ORG 4
INICIO
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
PRINCIPAL
MOVLW b'11110000'
MOVWF CONSTANTE
MOVWF PORTB
END

3.- Por el Puerto B se obtiene los datos de las cinco líneas del Puerto A al que
está conectado un array de interruptores. Por ejemplo, si por el Puerto A se
introduce "---11001", por el Puerto B aparecerá "xxx11001" (el valor de las tres
líneas superiores no importa).

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONSTANTE EQU 0X0C
ORG 0
GOTO INICIO
ORG 4
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00011111'
MOVWF TRISA
BCF STATUS,RP0
PRINCIPAL
MOVLW PORTA
MOVWF PORTB
GOTO PRINCIPAL
END

4.- Por el B, que actúa como salida es controlado por el bit 0 del Puerto A, que
actúe

Como entrada. De manera talque:

- Si el bit 0 del PORTA es "1", se encienden todos los LEDs de salida.

- Si el bit 0 del PORTA es "0", se encienden los LEDs del nibble alto y se apagan
los Bajos

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONSTANTE EQU 0X0C
ORG 0
GOTO INICIO
ORG 5
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00011111'
MOVWF TRISA
BCF STATUS,RP0
PRINCIPAL
BtFSC PORTA,RP0
GOTO UNO
GOTO CERO
UNO
MOVLW 0XFF
MOVWF PORTB
GOTO PRINCIPAL
CERO
MOVLW b'11110000'
MOVWF PORTB
GOTO PRINCIPAL
END

5.- Compara el dato del puerto de entrada PORTA y un "numero" (por ejemplo el
13)

-PORTA = Numero, se enciendan todos los LEDs de salida.

-PORTB= Número no son iguales, se activan los LEDs pares de salida y apagan
los impares

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONST EQU d'13'
ORG 0
GOTO INICIO
ORG 5
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00011111'
MOVWF TRISA
BCF STATUS,RP0
BUCLE
MOVLW CONST
SUBWF PORTA,W
MOVLW b'11111111'
BTFSC STATUS,Z
GOTO SALIDA
MOVLW b'01010101'
SALIDA
MOVWF PORTB
GOTO BUCLE
END
6.- Compara el dato introducido por el puerto A que actua como entrada, con un
número

- si el PORTA es Mayor o igual que el "numero" se enciendan todos las LEDs de


salida

- si el PORTA es menor que "Numero se activan los LEDs pares de salida.

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONST EQU d'13'
ORG 0
GOTO INICIO
ORG 5
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00011111'
MOVWF TRISA
BCF STATUS,RP0
BUCLE
MOVLW CONST
SUBWF PORTA,W
MOVLW b'11111111'
BTFSC STATUS,Z
GOTO SALIDA
MOVLW b'10101010'
SALIDA
MOVWF PORTB
GOTO BUCLE
END

7.- Compara el dato del puerto de entrada PORTA con un "Numero" (por ejemplo
el 13):

Si PORTA es mayor que "NUMERO " se encienden todos los LEDs de salida.

Si PORTA es menor o igual que "Numero" se activan los LEDs pares de salida.

PROGRAMA

LIST P=16F84A
INCLUDE <P16F84A.INC>
CONST EQU d'13'
ORG 0
GOTO INICIO
ORG 5
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00011111'
MOVWF TRISA
BCF STATUS,RP0
BUCLE
MOVLW CONST
SUBWF PORTA,W
MOVLW b'11111111'
BTFSC STATUS,C
GOTO SALIDA
MOVLW b'01010101'
SALIDA
MOVWF PORTB
GOTO BUCLE
END

8.-Compare el dato del puerto de entrada PORTA con un "Numero". Tres


posibilidades:

- si PORTA= Numero se encienden todos los LEDs de salida.

-Si PORTA > Numero se activan los LEDs pares de salida.

-Si PORTA < Numero se encienden los LEDs del nibble alto y se apagan los
debajo.

Hay que descartar que al no haber instrucciones de comparación, estas se


realizan mediante restas

PROGRAMA

INCLUDE <P16F84A.INC>
CONST EQU d'13'
ORG 0
GOTO INICIO
ORG 5
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW b'00111111'
MOVWF TRISA
BCF STATUS,RP0
BUCLE
MOVLW CONST
SUBWF PORTA,W
MOVLW b'11110000'
BTFSC STATUS,C
GOTO SALIDA
MOVLW b'11111111'
BTFSC STATUS,Z
GOTO SALIDA
MOVLW b'01010101'
SALIDA
MOVWF PORTB
GOTO BUCLE
END

You might also like