PRACTICA#7 INTERRUPCIONES

Preview:

Citation preview

UNIVERSIDAD POLITECNICA SALESIANA

PRACTICA #7

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

TEMA INTERRUPCIONES

OBJETIVOELABORAR 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 vSalidas:

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 ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 ELECTRONICA

SISTEMAS MICROPROCESADOS I

DIAGRAMA DE FLUJO

SIMULACION

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Ejercicio Nº 2:

Interrupciones temporizadores

A LGO R IT M O

Entradas:

Señal de 0-5 vSalidas:

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 ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 ELECTRONICA

SISTEMAS MICROPROCESADOS I

DIAGRAMA DE FLUJO

SIMULACION

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 timer1dim cnt as worddim B as bytesub procedure interruptInc(cnt)PIR1.TMR1IF = 0TMR1H = $FFTMR1L = $00end submain:PORTB = $00TRISB = 0T1CON = 1PIR1.TMR1IF = 0TMR1H = $80TMR1L = $00PIE1.TMR1IE = 1cnt = 0INTCON = $C0

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

while TRUEif (cnt = 3) thenPORTB = inc(B)cnt = 0end ifwendend.DIAGRAMA DE FLUJO

SIMULACION

Ejercicio Nº 4:

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 medidorfrecdim L as bytedim A,B as bytedim valor as string[6]sub procudere inittrisc=$0trisc=$0trisc=$0OPTION_REG=%10000011INTCON=%1001000'RBOL=0A=0B=0Lcd_config(portc, 7, 6, 5, 4, portc,0 ,1, 2)lcd_cmd(lcd_cursor_off)end subsub procedure interruptPORTD=INC(B)INTCON.INTF=0IFL=0thenTMR0=0

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

L=1ELSEL=0A=TMR0END IFend submain:initLOOP:byteTOSTR(A, valor)lcd_cmd(lcd_clear)LCD_OUT(1,1,valor)delay_ms(500)GOTO LOOP

DIAGRAMA DE FLUJO

SIMULACION

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 33Proceso:

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

Bandera L=0

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

Configuro LCD

CODIGO

program interrupcion5dim L as bytedim a,b as bytedim fre as worddim valor as string[6]sub procudere inittrisc=0trisd=0trisb=$FFoption_reg=%10000111intcon=%10010000L=0a=0b=0lcd_config(portc,7,6,5,4,portc,0,1,2)lcd_cmd(lcd_cursor_off)end subsub procedure interruptportd=inc(b)INTCON.INTF=0if L=0 thenTMR0=0L=1elseL=0a=TMR0fre=(1000/a*19)end ifend submain:initLOOP:wordtostr(fre,valor)lcd_cmd(lcd_clear)lcd_out(1,1,valor)delay_ms(500)goto LOOPend.

DIAGRAMA DE FLUJO

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

SIMULACION

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

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 ELECTRONICA

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I

INGENIERIA ELECTRONICA

SISTEMAS MICROPROCESADOS I