Você está na página 1de 14

LABORATORIO 3

Se requiere usar el Timer TMR0 como contador externo usando la entrada T0CKI esta cuenta ser
mostrada en el Display desde 0 hasta 9 y luego se repite. Este contador tendr las siguientes
caractersticas: La cuenta se habilitara cuando se pulse una vez el Push Buttom PB1, luego pulse las
veces que desee el Push Button (PB2) unido a T0CKI, Al final presione PB1 (RA1 = 0) para ver en el
Display el resultado, ver la figura:




PROCEDIMIENTO:
1. Observa el algoritmo (diagrama de flujo) de la prctica, y analice cada bloque.
2. Emplee el Set de instrucciones del PIC16F84A, para obtener el programa.
3. Realice en el programa el proceso de edicin, ensamble con el Software MPLAB y simulacin con
el PROTEUS v8 compruebe los resultados de su ejecucin.
4. Disee un retardo por hardware aproximado de un segundo, usado en una Serie que sea
mostrado en el Display del mdulo PIC16F84A DEVELOPMENT SYSTEM, con al siguiente secuencia:
A, 5, B, 0, 2, D, 7, 4, 1,


























DECLARACION DE
VARIABLES
CONFIGURACION DE
PUERTOS
CONFIGURACION DE
TIMER
PB1=0?
RETARDO 20mS
INICIO
LEDS OFF
PB1=0?
PB1=1?
LIMPIAR TIMER
APAGA DISPLAY
MOSTRAR EN
DISPLAY
RETARDO 20mS
PB1=0?
V
V
V
F
F
F
F V
DIAGRAMA DE FLUJO






























LABORATORIO 4
Se requiere usar la interrupcin externa a travs del pin INT por donde se ingresa un pulso
provocara una interrupcin que ser indicada por un cambio en RB2 conectado a un LED. En el
programa principal el estado de un interruptor en RA1 ser mostrado por un LED en RB1 para
lo cual necesitamos un circuito como se ve en la figura:

























El circuito pulsador se implementara usando un 74LS04 (hex inverter) ver la siguiente
figura:








































DECLARACION DE VARIABLES
TRANSICION NEGATIVA DE INT
CONFIGURA PORTA COMO
ENTRADA
SALIDAS DE PORTB A LOW
INICIO
CONFIGURA PORTB
RB0<-ENTRADA, RB1:RB7<-SALIDAS
HABILITA INTERRUPCION INT
LED indicador de
estado de SW es
ON RB1<-1
LED indicador de
estado de SW es
OFF RB1<-0
RA1=1
SW ES OFF?
V
V F
DIAGRAMA DE FLUJO
LIMPIAR FLAG INT
HABILITAR INTERRUPCION GLOBAL
EL CAMBIO DE
UN LED
INDICADOR DE
INTERRUPCION
AL
COMPLEMENTO
RUTINA DE
INTERRUPCION
RETORNO

LIST P = PIC16F84A
INCLUDE "P16F84A.INC"
INCLUDE "MACRO.INC"

ORG 0X00
GOTO INICIO
ORG 0X04
GOTO RUTSERV
ORG 0X05
INICIO
BANK1
MOVLW B'00000001'
MOVWF TRISB
MOVLW B'11111111'
MOVWF TRISA
MOVLW B'10010000'
MOVWF INTCON
BCF OPTION_REG,INTEDG
BANK0
CLRF PORTB
OTRO
BTFSC PORTA,3
GOTO APAGA
BSF PORTB,3
BSF PORTB,7
GOTO OTRO1
APAGA
BCF PORTB,3
GOTO OTRO1
OTRO1
BTFSC PORTA,2
GOTO APAGA1
BSF PORTB,2
BSF PORTB,7
GOTO OTRO2
APAGA1
BCF PORTB,2
GOTO OTRO2
OTRO2
BTFSC PORTA,4
GOTO APAGA2
BSF PORTB,4
BSF PORTB,7
GOTO OTRO3
APAGA2
BCF PORTB,4
GOTO OTRO3
RETFIE
END





Cuestionario
1.-Como realizara una alarma para automvil usando interrupciones con sensores
en las 04 puertas, adems el tiempo que tiene el chofer despus de ingresar al carro
es de 10 segundos para presionar un push buttom oculto esto desactivara la alarma.












LIST P=PIC16F84A

INCLUDE "P16F84.INC"
CBLOCK 0X0C
LOOPS
LOOPS2
DATO
CUENTA
DAT
REG1
REG2
REG3
REG5
REG6
ENDC

ORG 0X00

GOTO INICIO
ORG 0X04
INTER

CALL RETARDO
BCF INTCON,0
MOVF PORTB,0

RETARDO
MOVLW .100
MOVWF LOOPS
TOP2
MOVLW .110
MOVWF LOOPS2
TOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ LOOPS2
GOTO TOP
DECFSZ LOOPS
GOTO TOP2
RETLW 0
REGRE
BTFSS INTCON,0
GOTO OTRO
GOTO INTER
OTRO
BTFSS INTCON,1
GOTO REGRE





GOTO BUCLE
BUCLE
CALL RETARDO
BCF PORTB,1
BCF INTCON,1
RETFIE
INICIO
BSF STATUS,5
MOVLW B'11110001'
MOVWF TRISB
MOVLW B'00000'
MOVWF TRISA
MOVLW B'11011000'
MOVWF INTCON
BCF OPTION_REG,6
BCF STATUS,5

CLRF PORTA
CLRF PORTB

XORLW .0
BTFSC STATUS,2
GOTO APAGA
BTFSS PORTB,1
CALL TIMER
BSF PORTB,1

RETFIE
APAGA
CALL TIMER
CALL TIMER
BCF PORTB,1
BCF INTCON,1
RETFIE
TIMER
MOVLW 0X100
MOVWF REG1
LAZO3
MOVLW 0X50
MOVWF REG2
LAZO2
MOVLW 0X20
DECFSZ REG1
GOTO LAZO3
RETURN
END














2.-Realice un programa que provoque una interrupcin por uso de la memoria
EEPROM.

ESCRITURA
BCF STATUS,RP0 ; Selecciona el banco 0
MOVLW MEN1 ; Establecer EEADR y EEDATA
MOVWF EEADR ; Escribe la direccin en EEADR
MOVLW DATO1
MOVWF EEDATA ; Se escribe el dato en EEDATA
BSF STATUS,RP0 ; Selecciona el banco 1
BSF EECON1,WREN ; Permiso de escritura activado
BCF STATUS,R0 ; Selecciona el banco 0



3.- Es posible guardar datos en la memoria Flash de programa?

Si es posible pero al ser una memoria del tipo voltil se borrara cuando el circuito se
reinicie

4.-Explique como podra usar mas de una fuente de interrupciones en el programa
La activacin de un pin, producido por un flanco de tensin en el pin 6 (RB0/INT)
Cuando se desborda el temporizador TMR1(su contenido pasa de FFh a 00h)
Cuando Cambia el estado lgico de cualquiera de los 04 pines de mas peso del
puerto B (RB7:RB0)
Cuando finaliza el ciclo de escritura de un Byte en una posicin de la EEPROM de
datos

Você também pode gostar