Sunteți pe pagina 1din 14

Universidad Politécnica Salesiana

Ingeniería Electrónica
Sistemas Microprocesados

INFORME DE LABORATORIO VII

INTERRUPCIONES

Integrantes:

 Juan Villacís S.

 Gabriela Chicaiza

 Darío Valarezo

Ing. Luis Oñate


Periodo

Sept./2009-feb/2010
Tema: Interrupciones

Objetivo: elaborar programas para comprender el uso de interrupciones

Desarrollo de las Prácticas del laboratorio de Sistemas Microprocesador.

Ejercicio 1

Uso de interrupciones externa cero

Desarrollo del ejercicio

Determinar:

Entradas:

Señal de 0-5 v

Salidas:

Visulizar en lcd y Visualizar en led`s

Procesos:

o entrada de señal
o definó mis variables
o habilitacion de puerto B como entrada
o habilito mis Interrupciones
o Habilita interrupcion Externa
o Bandera L=0
o Verifica interupcion
o Ejecuta mi progrma
o Llama interupcion va al programa lo ejecuta
o Repite la interrupcion
o Despliega en el LCD
 Diagrama de Flujo
Puerto B Entrada
Inicio

Habilito interrupción
Defino mis variables, L, A, valor Flanco descendente

Sub procudere init Habilito Interrupciones y


interrupción externa

Sub procedure
Bandera L=0
interrupt

PortD =inc (B)


Inicio lazo

Intcon .INTF=0
Byte TOSTR(A, Valor)

A=A+1
Lcd_cmd(lcd_clear

Despliego el valor
en el LCD

Retardo

 Codificación:

program interuppciones
dim L as byte
dim A,B as byte
dim valor as string[6]
sub procedure init
trisc=$0
trisd=%0
trisb=$FF
option_reg=%10000000
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 interrup
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.
 Esquemático

 Simulación
2.- Interrupción Temporizadores.

Desarrollo del ejercicio


Determinar:
Entradas:
Señal de 0-5 v
Salidas:
Datos en el LCD “UPS QUITO”.
Procesos:

o entrada de señal
o defino mis variables
o habilitacion TODAS LAS Interrupciones.flaco descendente.
o Defino mi prescaler en 1:16
o Habilita mi interrupcion Timer 0
o Bandera L=0
o Se presenta interrupcion llama mi sub procesa
o Despliego en LCD “USP QUITO”
Restardo
 Diagrama de Flujo
Puerto B Entrada
Inicio

Habilito interrupción
Defino mis variables, L, A, valor TImer 0

Sub procudere init Habilito Interrupciones y


interrupción externa

Sub procedure
Bandera L=0
interrupt

INTCON=0
Inicio lazo

Limpio LCd L=0 TMR0=92

Salida UPS QUito Portb.0=0


Portb.0=1
Retardo L=1
L=0
TMR0=92

 Codificación:
program interuppciones_1
dim L as byte
dim A,B as byte
dim valor as string[6]
sub procedure init
TrisC=$0
TrisD=$0
TrisB=$ff
Option_Reg=%10000011
intcon=%10100000
L=0
TMR0=92
A=0
B=0
Lcd_config(portc,7,6,5,4,portc,0,1,2)'congigura al Lcd
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.
 Esquemático

 Simulación

Simulación laboratorio Sistemas Microprocesados.

Ejercicio 3.-

Mediante el uso de la interrupción del timer 1 realizar un generador de onda cuadrada


de periodo 1ms

Determinar:

Entradas:

señal de entrada

Salidas:

señal cuadrada osciloscopio

Procesos: Muestro mi señal de entrada


Defino mis variables

Habilito mi interrupcion 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

 Diagrama de Flujo
Puerto B Entrada
Inicio

Habilito interrupción
Defino mis variables, L, A, valor TImer 1

Sub procudere init Habilito Interrupciones y


interrupción externa

Sub procedure
Bandera L=0
interrupt

INTCON=0
Inicio lazo

Limpio LCd L=0 TMR0=92

Salida UPS QUito Portb.0=0


Portb.0=1
Retardo L=1
L=0

TMR0=92
Codificación:

 Esquemático
 Simulación

Ejercicio 4.-

Conteo del Timer en un periodo de tiempo.

Determinar:

Entradas:

Señal de Entrada

Salidas:

Visualiza conteo LCD.

Procesos:

Defino mis variables

Habilito mi interrupcion

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

Retardo

Diagrama de Flujo

Inicio Puerto B Entrada

Habilito interrupción
Defino mis variables, L, A, valor Flanco A.

Sub procudere init Habilito Interrupciones y


interrupción externa

Sub procedure
Bandera L=0
interrupt

INTCON=0
Inicio lazo

Limpio LCD conteo L=0 TMR0=92

Retardo Portb.0=0
Portb.0=1

L=1
L=0

TMR0=92
Codificación:

program interuppciones_4
dim L as byte
dim A,B as byte
dim valor as string[6]
sub procedure init
TrisC=$0
TrisD=$0
TrisB=$ff
Option_Reg=%10000000
intcon=%10010000
L=0
A=0
B=0
Lcd_config(portc,7,6,5,4,portc,0,1,2)'congigura al Lcd
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
END IF
end sub
main:
init
Loop:
byteTostr(A,valor)
lcd_cmd(Lcd_clear)
Lcd_out(1,1,valor)
delay_ms(500)

goto loop
end.
 Esquemático

 Simulación

Que cambios de debe realizar para observar la frecuencia en el LCD


Solo se debe configurar bien el Puerto.
Conclusiones:

Tener en cuenta que interrupción va hacer utilizada para la operación que


vamos a ejecutar al momento de llamarla en la ejecución del proyecto.
Tener en cuenta cuando se configura las interrupciones y las salidas a
ocuparse

Recomendaciones:

Ver. Data shett del pic 16f877A

S-ar putea să vă placă și