Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Utilizando los 8 bits del puerto B (PIC16F8A4) como salidas a diodos LED
y 3 bits del puerto A como entradas de pulsadores; de esta forma cree un
programa que decodifique las entradas del pulsador de tal forma que se
cumpla que por cada combinación 23de las entradas se encienda un diodo
LED que defina el número en decimal.
Código:
list p=16f84a
include<p16f84a.inc>
__CONFIG _CP_OFF & _XT_OSC
;CONFIGURACION DE PUERTOS
PRINCIPAL
BTFSS PORTA,0 ;comparacion del puerto a0
GOTO SECUENCIA1
GOTO SECUENCIA0
SECUENCIA0
BTFSS PORTA,1 ; comapracion del puerto a1
GOTO SECUENCIA4
GOTO SECUENCIA5
SECUENCIA1
BTFSS PORTA,1 ;comparacion del puerto a1
GOTO SECUENCIA2
GOTO SECUENCIA3
SECUENCIA2 ;comparacion del puerto a2
BTFSS PORTA,2
GOTO LED7
GOTO LED3
SECUENCIA3 ;comparacion del puerto a2
BTFSS PORTA,2
GOTO LED5
GOTO LED1
SECUENCIA4 ;comparacion del puerto a2
BTFSS PORTA,2
GOTO LED6
GOTO LED2
SECUENCIA5 ;comparacion del puerto a2
BTFSS PORTA,2
GOTO LED4
GOTO LED0
list p=16f84a
include<p16f84a.inc>
__CONFIG _CP_OFF & _XT_OSC
;CONFIGURACION DE PUERTOS
ORG 0
BSF STATUS,RP0
CLRF PORTB
MOVLW b'00001111'
MOVWF TRISA
BCF STATUS,RP0
PRINCIPAL
BTFSS PORTA,0
GOTO SECUENCIA1
GOTO SECUENCIA0
SECUENCIA0
BTFSS PORTA,1
GOTO SECUENCIA4
GOTO SECUENCIA5
SECUENCIA1
BTFSS PORTA,1
GOTO SECUENCIA2
GOTO SECUENCIA3
SECUENCIA2
BTFSS PORTA,2
GOTO LED7
GOTO LED3
SECUENCIA3
BTFSS PORTA,2
GOTO LED5
GOTO LED1
SECUENCIA4
BTFSS PORTA,2
GOTO LED6
GOTO LED2
SECUENCIA5
BTFSS PORTA,2
GOTO LED4
GOTO LED0
ORG 0
BSF STATUS,RP0
CLRF PORTB
MOVLW b'00001111'
MOVWF TRISA
BCF STATUS,RP0
PRINCIPAL
BTFSS PORTA,0
GOTO SECUENCIA1
GOTO SECUENCIA0
SECUENCIA0
BTFSS PORTA,1
GOTO SECUENCIA4
GOTO SECUENCIA5
SECUENCIA1
BTFSS PORTA,1
GOTO SECUENCIA2
GOTO SECUENCIA3
SECUENCIA2
BTFSS PORTA,2
GOTO LED7
GOTO LED3
SECUENCIA3
BTFSS PORTA,2
GOTO LED5
GOTO LED1
SECUENCIA4
BTFSS PORTA,2
GOTO LED6
GOTO LED2
SECUENCIA5
BTFSS PORTA,2
GOTO LED4
GOTO LED0
LED0
MOVLW B'00011000'
MOVWF PORTB
GOTO PRINCIPAL
LED1
MOVLW B'00111100'
MOVWF PORTB
GOTO PRINCIPAL
LED2
MOVLW B'01100110'
MOVWF PORTB
GOTO PRINCIPAL
LED3
MOVLW B'01100110'
MOVWF PORTB
GOTO PRINCIPAL
LED4
MOVLW B'11000011'
MOVWF PORTB
GOTO PRINCIPAL
LED5
MOVLW B'11000011'
MOVWF PORTB
GOTO PRINCIPAL
LED6
MOVLW B'10000001'
MOVWF PORTB
GOTO PRINCIPAL
LED7
MOVLW B'10000001'
MOVWF PORTB
GOTO PRINCIPAL
END
4. Sin necesidad de pulsadores, configure todos los pines de los puertos A y B, MOVWF PORTA
como salidas conectando Leds; diseñe un sistema generador de ciclos (utilice el CALL RETARDO
set de instrucciones del PIC según el Datasheet), que permita, con retardos ;
generar la siguiente secuencia de desplazamiento de luces.
MOVLW B'00001000'
MOVWF PORTB
MOVLW B'00000000'
MOVWF PORTA
CALL RETARDO
;
MOVLW B'00010000'
MOVWF PORTB
MOVLW B'00000000'
MOVWF PORTA
CALL RETARDO
;
MOVLW B'00100000'
MOVWF PORTB
MOVLW B'00000000'
MOVWF PORTA
CALL RETARDO
;
MOVLW B'01000000'
MOVWF PORTB
MOVLW B'00000000'
MOVWF PORTA
CALL RETARDO
;
MOVLW B'10000000'
MOVWF PORTB
list p=16f84a MOVLW B'00000000'
include<p16f84a.inc> MOVWF PORTA
__CONFIG _CP_OFF & _XT_OSC CALL RETARDO
SECUENCIA12
BTFSS PORTA,3
GOTO CINCO
GOTO TRECE
SECUENCIA13
BTFSS PORTA,3
GOTO UNO
GOTO NUEVE
CERO
MOVLW b'00111111'
MOVWF PORTB
GOTO PRINCIPAL
UNO
MOVLW b'00000110'
MOVWF PORTB
GOTO PRINCIPAL
5. En un Display de 7 segmentos conectado al puerto B se visualiza la cantidad DOS
leída por el puerto A, así si la entrada se lee ---0101, el Display visualizará “5”, MOVLW b'01011011'
también tendrá la posibilidad de visualizar números hexadecimales. MOVWF PORTB
list p=16f84a GOTO PRINCIPAL
include<p16f84a.inc> TRES
__CONFIG _CP_OFF & _XT_OSC MOVLW b'01001111'
MOVWF PORTB 6. Generar un Programa que genere por un puerto de salida, una señal que se
GOTO PRINCIPAL encienda durante (400 ms) y se apague durante 300 ms. Debe visualizarse en
CUATRO un LED conectado directamente a un puerto de salida, o directamente visualizar
MOVLW b'01100110' la señal en el Osciloscopio.
MOVWF PORTB
GOTO PRINCIPAL list p=16f84a
CINCO include<p16f84a.inc>
MOVLW b'01101101' __CONFIG _CP_OFF & _XT_OSC
MOVWF PORTB
GOTO PRINCIPAL TIEMPO EQU 0X0C
SEIS TIEMPO2 EQU 0X0D
MOVLW b'01111101' ;CONFIGURACION DE PUERTOS
MOVWF PORTB
GOTO PRINCIPAL ORG 0
SIETE BSF STATUS,RP0
MOVLW b'00000111' CLRF PORTB
MOVWF PORTB CLRF PORTA
GOTO PRINCIPAL BCF STATUS,RP0
OCHO
MOVLW b'01111111' PRINCIPAL
MOVWF PORTB MOVLW B'00000001'
GOTO PRINCIPAL MOVWF PORTA
NUEVE CALL RETARDO
MOVLW b'01100111' MOVLW B'00000000'
MOVWF PORTB MOVWF PORTA
GOTO PRINCIPAL CALL RETARDO
DIEZ ;
MOVLW b'01110111' RETARDO
MOVWF PORTB MOVLW D'250'
GOTO PRINCIPAL MOVWF TIEMPO
ONCE DEC DECFSZ TIEMPO
MOVLW b'01111100' GOTO DEC1
MOVWF PORTB RETURN
GOTO PRINCIPAL DEC1 MOVLW D'250'
DOCE MOVFW TIEMPO2
MOVLW b'00111001' DEC3 DECFSZ TIEMPO2
MOVWF PORTB GOTO DEC3
GOTO PRINCIPAL GOTO DEC
TRECE END
MOVLW b'01011110'
MOVWF PORTB
GOTO PRINCIPAL
CATORCE
MOVLW b'01111001'
MOVWF PORTB
GOTO PRINCIPAL
QUINCE
MOVLW b'01110001'
MOVWF PORTB
GOTO PRINCIPAL
END
7. Comparar el dato del puerto de entrada PORTA con un número (por ejemplo,
el 13), pueden darse dos Posibilidades:
a) Si (PORTA) es mayor o igual que “NUMERO” se encienden los LEDS
b) Si (PORTA) diferente a NUMERO, se activan los LEDS pares y se apagan los
Impares.
list p=16f84a
include<p16f84a.inc>
__CONFIG _CP_OFF & _XT_OSC
;CONFIGURACION DE PUERTOS
ORG 0
BSF STATUS,RP0
CLRF PORTB
MOVLW b'00001111'
MOVWF TRISA
BCF STATUS,RP0
PRINCIPAL
MOVLW NUMERO
SUBWF PORTA,W
MOVLW B'01010101'
BTFSC STATUS,C
MOVLW B'11111111'
BTFSC STATUS,Z
MOVLW B'11111111'
MOVWF PORTB
GOTO PRINCIPAL
END