Está en la página 1de 2

#INCLUDE "P16F877A.

INC" CALL RETARDO20ms DECFSZ CONT_RET


CONTADOR EQU 0X21 BANKSEL PORTB GOTO REPIT
N EQU 0xA5 BTFSS PORTB,4; RETURN
CONT_RET EQU 0x20 GOTO SALIR; INITB
ORG 0X0 BANKSEL 0 BANKSEL PORTB
GOTO PROG INCF CONTADOR CLRF PORTB
ORG 0X0004 MOVFW CONTADOR BANKSEL TRISB
GOTO ISR SUBLW .10; (1) MOVLW 0xFF
PROG BTFSC STATUS,Z MOVWF TRISB
CALL INITB CLRF CONTADOR BANKSEL OPTION_REG
CALL INITC MOVFW CONTADOR BCF OPTION_REG,7
CALL INITINT CALL HEX7SEG RETURN
BANKSEL 0 BANKSEL PORTC INITC
MOVLW .0 MOVWF PORTC MOVLW 0x00
MOVWF CONTADOR SIGUE_PRES BANKSEL TRISC
CALL HEX7SEG BANKSEL PORTB MOVWF TRISC
BANKSEL PORTC BTFSC PORTB,4 MOVLW 0x00
MOVWF PORTC GOTO SIGUE_PRES BANKSEL PORTC
BUCLE CALL RETARDO20ms MOVWF PORTC
GOTO BUCLE SALIR ; RETURN
HEX7SEG BANKSEL PORTB; INITINT
ADDWF PCL MOVFW PORTB; BANKSEL INTCON
DT 0x3F,0x06,0x5B RETFIE BSF INTCON,3;
DT 0x4F,0x66,0x6D RETARDO20ms BSF INTCON,7
DT 0x7D,0x07,0x7F, BANKSEL 0 RETURN
DT 0x6F MOVLW N END
ISR MOVWF CONT_RET
BCF INTCON,0; REPIT

Con relación al circuito y programa responder las siguientes preguntas con lapicero azul.
 Copie la instrucción que activa el habilitador local de interrupción: BSF INTCON,3;
 Copie la instrucción que activa el habilitador global de interrupción: BSF INTCON,7
 ¿Cuál es el método de gestión de la tecla? Gestión por interrupción externa RB4-RB7
 ¿Qué significa ISR? ISR significa Rutina de Servicio de Interrupción
 Si deseáramos que en la simulación el indicador cuente en hexadecimal de 0 a F, la instrucción marcada con el
comentario “(1)” se debe cambiar por la instrucción: SUBLW .16
Además, a las directivas DT se debe añadir la siguiente línea: DT 0X77,0X7C,0X39,0X5E,0X79,0X71
 ¿Qué valor hexadecimal se ha colocado en el registro TRISB? 0XFF
¿Con qué finalidad? Con el fin de configurar el puerto B como entrada
 ¿Qué valor hexadecimal se ha colocado en el registro TRISC? 0X00
¿Con qué finalidad? Con el fin de configurar el puerto C como salida
 ¿Con qué finalidad se invoca al procedimiento RETARDO20ms?
Con el fin de eliminar el rebote mecánico producido al accionar el pulsador
 ¿Cuál es la función que cumple el procedimiento HEX7SEG?
La función es convertir código binario natural a código 7 segmentos para indicador de cátodo común
 A continuación dibuje el circuito interno del microcontrolador correspondiente a la línea de entrada-salida del
pin 24
1

0
1 0
Encendido
0 0

0
1 0
Apagado
1

 En el circuito dibujado mostrar la conexión del segmento ¿Qué segmento del indicador está conectado al pin 24? Segmento f
 Para el caso cuando el segmento está encendido en el circuito que se ha dibujado mostrar el valor lógico a la salida de: data
latch, tris latch, de cada una de las 4 puertas lógicas que determinan el estado de los transistores (La señal Port/Peripheral
Select tiene nivel alto) e indicar el estado de los transistores.
 En el circuito que se ha dibujado representar con una línea roja la circulación de la corriente desde Vdd hasta tierra cuando
el segmento está encendido.
 Al correr la simulación en Proteus cuando el indicador muestra la cifra 7 y el estado del switch es ON haga pausa en la
simulación y use la opción del Proteus “Debug” “PIC CPU” “Registers”. El valor hexadecimal de los registros que se indican
es: (3 puntos)
PC PORT C INTCON
0X2E,0X2F,0X30
0X07 0X09
o 0X31
 Escribir el valor lógico de los pines, cuando en el indicador se visualiza la cifra 7:
25 23 17 15
0 0 1 1
 Dibuje el diagrama de tiempo correspondiente a la acción de pulsar la tecla (Primero no está presionada, luego está
presionada y por último está sin presionar) considerando el rebote mecánico.

VRB4
 En el programa, ¿Cuáles son las instrucciones con las cuales la CPU espera que la tecla deje de estar presionada?
SIGUE_PRES
BANKSEL PORTB
BTFSC PORTB,4
GOTO SIGUE_PRES

También podría gustarte