Documente Academic
Documente Profesional
Documente Cultură
Ingeniería Electrónica
Sistemas Microprocesados
INTERRUPCIONES
Integrantes:
Juan Villacís S.
Gabriela Chicaiza
Darío Valarezo
Sept./2009-feb/2010
Tema: Interrupciones
Ejercicio 1
Determinar:
Entradas:
Señal de 0-5 v
Salidas:
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 procedure
Bandera L=0
interrupt
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.
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 procedure
Bandera L=0
interrupt
INTCON=0
Inicio lazo
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
Ejercicio 3.-
Determinar:
Entradas:
señal de entrada
Salidas:
Bandera L=0
Configuro mi LCd
Verifico mi interrupción
Retardo
Diagrama de Flujo
Puerto B Entrada
Inicio
Habilito interrupción
Defino mis variables, L, A, valor TImer 1
Sub procedure
Bandera L=0
interrupt
INTCON=0
Inicio lazo
TMR0=92
Codificación:
Esquemático
Simulación
Ejercicio 4.-
Determinar:
Entradas:
Señal de Entrada
Salidas:
Procesos:
Habilito mi interrupcion
Bandera L=0
Configuro mi LCd
Retardo
Diagrama de Flujo
Habilito interrupción
Defino mis variables, L, A, valor Flanco A.
Sub procedure
Bandera L=0
interrupt
INTCON=0
Inicio lazo
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
Recomendaciones: