Vous êtes sur la page 1sur 6

UNIVERSIDAD AUTONOMA TOMAS FRIAS

FACULTAD DE INGENIERIA TECNOLOGICA


INGENIERIA MECATRONICA
Univ. BEYMAR DANY LAIME RAMOS Docente: ING. ALBERTO MENDIETA A.
FECHA DE ENTREGA 26/10/18 MATERIA: MICROCONTROLADORES PIC Y PLC
1. POR LOS LEDS CONECTADOS AL PUERTO B VISUALIZA EL VALOR DE UNA
CONSTANTE, POR EJEMPLO EL NUMERO BINARIO b’01010101’
lIST P=16f84A
INCLUDE <P16F84A.INC>
NUMERO EQU 0x0C
ORG 0
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
;CODIGO
MOVLW B'01010101'
MOVWF NUMERO
MOVWF PORTB
END

2. LOS LEDS CONECTADOS AL NIBBLE BAJO DEL PUERTO B SE APAGAN Y LOS


CONECTADOS AL NIBBLE ALTO SE ENCIENDEN.
lIST P=16f84A
INCLUDE <P16F84A.INC>
LED EQU 0x0C
ORG 0
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
;CODIGO
MOVLW B'11110000'
MOVWF LED
MOVWF PORTB
END

3. POR EL PUERTO B SE OBTIENE EL DATO DE LAS 5 LINEAS DEL PUERTO A AL QUE


ESTA CONECTADO UN ARRAY DE INTERRUPTORES. POR EJEMPLO, SI POR EL
PUERTO A SE INTRODUCE “---11001”, POR EL PUERTO B APARECERA “XXX11001”(EL
VALOR DE LAS TRES LINEAS SUPERIORES NO IMPORTA).
lIST P=16f84A
INCLUDE <P16F84A.INC>
ORG 0
BSF STATUS,RP0
CLRF PORTB
MOVLW B'00011001'
MOVWF PORTA
BCF STATUS,RP0
;CODIGO
MOVF PORTA
MOVWF PORTB
END

4. EL PUERTO B, QUE ACTUA COMO SALIDA ES CONTROLADO POR EL BIT 0 DEL


PUERTO A, QUE ACTUA COMO ENTRADA. DE MANERA TAL QUE:
- 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 TODOS LOS LEDS DEL NIBBLE
ALTO Y SE APAGAN LOS BAJO.

lIST P=16f84A
INCLUDE <P16F84A.INC>
ORG 0
GOTO INICIO
ORG 4
INICIO
BSF STATUS,RP0
CLRF TRISB
MOVLW B'00001111'
MOVWF TRISA
BCF STATUS,RP0

;CODIGO
PROG BTFSC PORTA,0
GOTO UNO
GOTO CERO

UNO
MOVLW B'11111111'
MOVWF PORTB
GOTO PROG

CERO
MOVLW B'11110000'
MOVWF PORTB
GOTO PROG
END

5. COMPARA EL DATO DEL PUERTO DE ENTRADA PORTA Y UN NUMERO (POR EJEMPLO


EL 13):
- SI (PORTA)=NUMERO, SE ENCIENDEN TODOS LOS LEDS DE SALIDA.
- SI (PORTA) Y NUMERO NO SON IGUALES, SE ACTIVAN LOS LEDS PARES DE
SALIDA Y SE APAGAN LOS IMPARES.

lIST P=16f84A
INCLUDE <P16F84A.INC>
NUMERO EQU D'13'
ORG 0

BSF STATUS,RP0
CLRF PORTB
MOVLW B'00011111'
MOVWF PORTA
BCF STATUS,RP0

;CODIGO
PRINCIPAL
MOVLW NUMERO
SUBWF PORTA,W
MOVLW B'11111111'
BTFSC STATUS,Z
GOTO OUT
MOVLW B'10101010'

OUT
MOVWF PORTB
GOTO PRINCIPAL
END
6. COMPARA EL DATO INTRODUCIDO POR EL PUERTO A QUE ACTUA COMO ENTRADA,
UN “NUMERO”:
- SI (PORTA) ES MAYOR O IGUAL QUE “NUMERO” SE ENCIENDEN TODOS LOS LEDS
DE SALIDA.
- SI (PORTA) ES MENOR QUE “NUMERO” SE ACTIVAN LOS LEDS PARES DE SALIDA.

LIST P=16f84A
INCLUDE <P16F84A.INC>
NUMERO EQU D'14'
ORG 0

BSF STATUS,RP0
CLRF PORTB
MOVLW B'00001111'
MOVWF PORTA
BCF STATUS,RP0

;CODIGO
PRINCIPAL
MOVLW NUMERO
SUBWF PORTA,W
MOVLW B'11111111'
BTFSC STATUS,Z
GOTO OUT
MOVLW B'10101010'

OUT
MOVWF PORTB
GOTO PRINCIPAL
END
7. COMPARA EL DATO DE PUERTO DE ENTRADA PORTA CON UN “NUMERO” (POR
EJEMPLO 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.

LIST P=16f84A
INCLUDE <P16F84A.INC>
NUMERO EQU D'14'
ORG 0

BSF STATUS,RP0
CLRF PORTB
MOVLW B'00001111'
MOVWF PORTA
BCF STATUS,RP0

;CODIGO
PRINCIPAL
MOVLW NUMERO
SUBWF PORTA,W
MOVLW B'11111111'
BTFSC STATUS,C
GOTO OUT
MOVLW B'01010101'

OUT
MOVWF PORTB
GOTO PRINCIPAL
END

8. COMPARA 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 DEL BAJO.

HAY QUE DESTACAR QUE AL NO HABER INSTRUCCIONES DE COMPARACION, ESTAS


SE REALIZAN MEDIANTE RESTAS.

LIST P=16f84A
INCLUDE <P16F84A.INC>
NUMERO EQU D'14'
ORG 0

BSF STATUS,RP0
CLRF PORTB
MOVLW B'00001111'
MOVWF PORTA
BCF STATUS,RP0

;CODIGO
PRINCIPAL
MOVLW NUMERO
SUBWF PORTA,W

BTFSS STATUS,C
GOTO MENOR

BTFSC STATUS,Z
GOTO IGUALES
MOVLW B'10101010'
MOVWF PORTB
GOTO PRINCIPAL

MENOR MOVLW B'11110000'


MOVWF PORTB
GOTO PRINCIPAL
IGUALES MOVLW B'11111111'
MOVWF PORTB
GOTO PRINCIPAL
END

9. IMPLEMENTAR UNA TABLA DE LA VERDAD MEDIANTE EL MANEJO DE LAS TABLAS


GRABADAS EN ROM. POR EJEMPLO, LA TABLA SERA 3 ENTRADAS Y 6 SALIDAS TAL
COMO LA SIGUIENTE:

C B A S S S S S S
5 4 3 2 1 0
0 0 0 0 0 1 0 1 0
0 0 1 0 0 1 0 0 1
0 1 0 1 0 0 0 1 1
0 1 1 0 0 1 1 1 1
1 0 0 1 0 0 0 0 0
1 0 1 0 0 0 1 1 1
1 1 0 0 1 0 1 1 1
1 1 1 1 1 1 1 1 1

LAS ENTRADAS C, B, A SE CONECTARAN A LAS LIENEAS DEL PUERTO A: RA2 (C),


RA1 (0), RA0 (A).
LAS SALIDAS SE OBTIENEN EN EL PUERTO B:
RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) Y RB0 (S0)

LIST P=16f84A
INCLUDE <P16F84A.INC>
ORG 0
BSF STATUS,RP0
CLRF PORTB
MOVLW B'00001111'
MOVWF PORTA
BCF STATUS,RP0

;CODIGO
PRINCIPAL
MOVF PORTA,W
ANDLW B'00000111'
CALL TABLA
MOVWF PORTB
GOTO PRINCIPAL

TABLA ADDWF PCL,F


RETLW B'00001010'
RETLW B'00001001'
RETLW B'00100011'
RETLW B'00001111'
RETLW B'00100000'
RETLW B'00000111'
RETLW B'00010111'
RETLW B'00111111'

END