Sei sulla pagina 1di 21

UNIVERSIDAD POLITECNICA SALESIANA

PRACTICA #7

SISTEMAS MICROPROCESADOS I
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

TEMA INTERRUPCIONES

OBJETIVO
ELABORAR PROGRAMAS PARA COMPRENDER EL USO DE INTERRUPCIONES

Ejercicio Nº 1:

Uso de la interrupción externa

A LGO R IT M O

Entradas:

 Señal de 0-5 v
Salidas:

 Visulizar en lcd
 Visualizar en led`s

Proceso:
 entrada de señal
 defino mis variables
 habilitación de puerto B como entrada
 habilito mis Interrupciones
 Habilita interrupción Externa
 Bandera L=0
 Verifica interrupción
 Ejecuta mi programa
 Llama interrupción va al programa lo ejecuta
 Repite la interrupción
 Despliega en el LCD

CODIGO

program Interrupcion1

Dim L as BYTE

dim A, B as byte

dim valor as string[6]

sub procudere init


INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

TRISC=$0

TRISd=$0

trisb=$FF 'Ouerto B como entradas

OPTION_REG=%10000000 'habilita todas las interrupciones por flanco descendente

intcon=%10010000 'habilita interrupciones e interrupcion externa RB0

L=0 'bandera L=0

A=0

B=0

Lcd_config(portc,7,6,5,4, portc, 0 , 1, 2)

lcd_cmd(lcd_cursor_off)

end sub

sub procedure interrupt

POrtd=INC(B)

INTCON.INTF=0

A=A+1

end sub

main:

init

LOOP:

byteTOSTR(A,valor)

lcd_cmd(lcd_clear)

LCD_OUT(1,1,valor)

delay_ms(500)

GOTO LOOP

end.
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

DIAGRAMA DE FLUJO

SIMULACION
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

Ejercicio Nº 2:

Interrupciones temporizadores

A LGO R IT M O

Entradas:

 Señal de 0-5 v
Salidas:

 Datos en el LCD “UPS QUITO”.


Proceso:

 entrada de señal
 defino mis variables
 habilitación TODAS LAS Interrupciones. Flaco descendente.
 Defino mi prescaler en 1:16
 Habilita mi interrupción Timer 0
 Bandera L=0
 Se presenta interrupción llama mi sub proceso
 Despliego en LCD “USP QUITO”

CODIGO

program InterrupcionTEMP

DIM L AS BYTE

dim A, B as byte

dim valor as string[6]

sub procudere init

TRISC=$0

TRISD=$0

TRISB=$0

OPTION_REG=%10000011

INTCON=%10100000

L=0

TMR0=92
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

A=0

B=0

Lcd_config(portc,7, 6, 5, 4,portc,0,1,2)

lcd_cmd(lcd_cursor_off)

end sub

sub procedure interrupt

INTCON.T0IF=0

IF

L=0

THEN TMR0=92

Portb.0=0

L=1

else

portb.0=1

L=0

TMR0=92

END IF

end sub

main:

init

LOOP:

LCD_cmd(lcd_clear)

LCD_OUT(1,1,"UPS QUITO")

delay_ms(500)

GOTO LOOP

END.
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

DIAGRAMA DE FLUJO

SIMULACION
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

Ejercicio Nº 3:

Mediante el uso de interrupciones del timer1 realizar un generador de onda cuadrada


de periodo 1 ms

A LGO R IT M O

Entradas:

 señal de entrada

Salidas:

 señal cuadrada osciloscopio

Proceso:

 Muestro mi señal de entrada


 Defino mis variables
 Habilito mi interrupción TMR1
 Bandera L=0
 Configuro mi LCD
 Verifico la bandera si L=0 o L=1
 Verifico mi interrupción
 Despliego en el LCD en Valor
 Retardo

CODIGO

program timer1
dim cnt as word
dim B as byte
sub procedure interrupt
Inc(cnt)
PIR1.TMR1IF = 0
TMR1H = $FF
TMR1L = $00
end sub
main:
PORTB = $00
TRISB = 0
T1CON = 1
PIR1.TMR1IF = 0
TMR1H = $80
TMR1L = $00
PIE1.TMR1IE = 1
cnt = 0
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

INTCON = $C0
while TRUE
if (cnt = 3) then
PORTB = inc(B)
cnt = 0
end if
wend
end.
DIAGRAMA DE FLUJO

SIMULACION
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

Ejercicio Nº 4:

Conteo del timer0 en un periodo de tiempo

A LGO R IT M O

Entradas:

 señal de entrada

Salidas:
 Visualiza conteo LCD.

Proceso:
 Defino mis variables
 Habilito interrupción
 Bandera L=0
 Configuro mi LCD
 Verifico la bandera si L=0 o L=1
 Conteo de mi timer Interno en Binario
 Despliego datos LCD
 Verifico mi interrupción
 Despliego en el LCD en Valor

CODIGO

program medidorfrec
dim L as byte
dim A,B as byte
dim valor as string[6]
sub procudere init
trisc=$0
trisc=$0
trisc=$0
OPTION_REG=%10000011
INTCON=%1001000
'RBO
L=0
A=0
B=0
Lcd_config(portc, 7, 6, 5, 4, portc,0 ,1, 2)
lcd_cmd(lcd_cursor_off)
end sub
sub procedure interrupt
PORTD=INC(B)
INTCON.INTF=0
IF
L=0
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

then
TMR0=0
L=1
ELSE
L=0
A=TMR0
END IF
end sub
main:
init
LOOP:
byteTOSTR(A, valor)
lcd_cmd(lcd_clear)
LCD_OUT(1,1,valor)
delay_ms(500)
GOTO LOOP

DIAGRAMA DE FLUJO
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

SIMULACION

Ejercicio Nº 5:

Que cambios debo realizar para observar la frecuencia en el LCD

A LGO R IT M O

Entradas:

 La señal del generador de frecuencia

Salidas:

En el LCD observamos la frecuencia de entrada en el pin 33


Proceso:

 Defino las variables L, A y B como byte y valor como string

 Habilito el Port C y D como salida

 Configuro el puerto B como entrada

 Configuro el TMR0

 Habilito todas las interrupciones por flanco descendente

 Habilito interrupciones e interrupción externa


INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

 Bandera L=0

 Configuro LCD

CODIGO

program interrupcion5
dim L as byte
dim a,b as byte
dim fre as word
dim valor as string[6]
sub procudere init
trisc=0
trisd=0
trisb=$FF
option_reg=%10000111
intcon=%10010000
L=0
a=0
b=0
lcd_config(portc,7,6,5,4,portc,0,1,2)
lcd_cmd(lcd_cursor_off)
end sub
sub procedure interrupt
portd=inc(b)
INTCON.INTF=0
if L=0 then
TMR0=0
L=1
else
L=0
a=TMR0
fre=(1000/a*19)
end if
end sub
main:
init
LOOP:
wordtostr(fre,valor)
lcd_cmd(lcd_clear)
lcd_out(1,1,valor)
delay_ms(500)
goto LOOP
end.
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

DIAGRAMA DE FLUJO
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

SIMULACION

CONCLUSIONES

Es importante conocer la función de cada bit dentro de los registros utilizados para poder
configurar los timers y las interrupciones.

Tener siempre presente que la interrupción va hacer utilizada para la operación que
vamos a ejecutar al momento de llamarla sin importar lo que se esté ejecutando.

BIBLIOGRAFIA

Datashett pic16f877A

Hojas de la practica de laboratorio. Ing Oñate.

Manual de ayuda de microbasic para PIC.

Angulo Martínez Ignacio; Romero Yesa Susana; Angulo Usategui, José María
Microcontroladores Pic. Diseño Practico de Aplicaciones. Segunda Parte: PIC16F87XX.
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA
INGENIERIA
SISTEMAS MICROPROCESADOS I
ELECTRONICA

Potrebbero piacerti anche