Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIVERSIDAD POLITÉCNICA
SALESIANA
SISTEMAS MICROPROCESADOS 1
DAVID ESPIN
ANDRÉS MOGRO
QUITO - ECUADOR
PRÁCTICA 07
Entradas:
Procesos:
Salidas:
CÓDIGO.
program INT0
dim L as byte
trisc=$0
trisd=$0
'prescaler no habilitado
L=0
A=0
B=0
lcd_cmd(lcd_cursor_off)
end sub
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.
DIAGRAMA DE FLUJO
INICIO
Configuro el puerto C y D
como salida y el puerto B
como entrada
Habilito interrupciones,
Defino variables
Inicio el lazo
Muestro en el LCD y en
los leds los datos.
ESQUEMÁTICO.
FOTOS.
2. Interrupción temporizadores.
Entradas:
Procesos:
Salidas:
CÓDIGO.
program intTimer
dim L as byte
trisc=$0
trisd=$0
trisb=$0
option_reg=%10000011
intcon=%10100000
L=0
TMR0=92
A=0
B=0
Lcd_config(portc,7,6,5,4, portc,0,1,2)
lcd_cmd(lcd_cursor_off)
end sub
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.
DIAGRAMA DE FLUJO
INICIO
Configuro el puerto B y
C como salida
Habilito interrupciones
del timer 0, Defino
variables
Muestro en el LCD y en
el puerto B los datos
ESQUEMÁTICO.
FOTOS.
3. Mediante el uso de la interrupción del timer 1 realizar un
generador de onda cuadrada de periodo 1ms.
Procesos:
CÓDIGO.
program Timer1
dim B as byte
Inc(cnt)
TMR1H = $FF
TMR1L = $00
end sub
main:
TMR1L = $00
while TRUE
if (cnt = 3) then
' if cnt is 76
end if
wend
end.
DIAGRAMA DE FLUJOS
INICIO
Interrupción Configurar
portB salida
Configurar INTCON
Contador NO
=3
SI
Contador = 0
ESQUEMÁTICO.
FOTOS.
4. Conteo del timer 0 en un periodo de tiempo.
Entradas:
Procesos:
CÓDIGO.
program medidor
dim L as byte
trisc=$0
trisd=$0
trisb=$FF
option_reg=%10000011
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
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.
DIAGRAMA DE FLUJOS
INICIO
Configuro el puerto C
como salida y puerto B
como entrada
Configuro el LCD
NO
Si L=0 L=1
SI
TMR0=0 a=TMR0
L=1
Muestro el valor en el
LCD
ESQUEMÁTICO.
FOTOS.
5. Que cambios debe realizar para observar la frecuencia en el LCD.
Entradas:
Procesos:
CÓDIGO.
program interrupcion5
dim L as byte
dim a,b as byte
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
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.
DIAGRAMA DE FLUJOS
INICIO
Configuro el puerto C
como salida y puerto B
como entrada
Configuro el LCD
NO
Si L=0 L=1
SI
TMR0=0 a=TMR0
L=1
freq=(1000/a*19)
Muestro el valor en el
LCD
ESQUEMÁTICO.
FOTOS.
CONCLUSIONES
BIBLIOGRAFÍA
- Hojas de prácticas de Sistemas Microprocesados I proporcionados
por el Ing. Luis Oñate.
- Manual de ayuda de microbasic para PIC.
- ANGULO MARTÍNEZ IGNACIO; ROMERO YESA SUSANA; ANGULO
USATEGUI