SALESIANA
Sistemas Microprocesados I
Ing. Luis Oñate
Informe Práctica Nº3 PICS
Andrea Abarca B
Gonzalo Chimbo R
Leandro López T
Sexto Electrónica
18/11/2010
Objetivo.- Desarrollar la práctica utilizando el Microcontrolador PIC
16F877A como una interface digital hacia el mundo exterior.
Marco Teórico:
PIC 16F877A
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica
facilita sustancialmente el diseño de proyectos, minimizando el tiempo empleado en
programar los microcontroladores (µC).
Esta subfamilia consta de los siguientes modelos que varían de acuerdo a prestaciones,
cantidad de terminales y encapsulados:
PIC16F870
PIC16F871
PIC16F872
PIC16F873A
PIC16F874A
PIC16F876A
PIC16F877A
Problema 1:
Código:
program TIMERINTERNO
dim a as byte
a=0
trisa=$FF
trisb=$0
option_reg=%10000111
Intcon=$0
TMR0=0
portb=$0
lazo:
if tmr0=255 then
inc(a)
if a=38 then
inc(portb)
end if
end if
goto lazo
end.
Diagramas de Flujo:
Simulación:
Foto:
Problema 2:
Elabore un programa que realice las operaciones del numeral 1, pero con
TMR0=96, TMR0=155.
Código:
program temporizadordos
dim a as byte
a=0
trisa=$FF
trisb=$0
option_reg=%10000111
Intcon=$0
TMR0=155
portb=$0
lazo:
if tmr0=255 then
inc(a)
if a=38 then
inc(portb)
end if
end if
goto lazo
end.
Diagramas de Flujo:
Simulación:
Foto:
Problema 3:
Elabore un programa que utilice el timer en modo contador externo, y
visualice el incremento en un display de 7 segmentos.
Código:
program timerexterno
main:
trisa=$ff
trisb=$0
option_reg=%10100010
intcon=$0
tmr0=0
lazo:
portb=tmr0
goto lazo
end.
Diagramas de Flujo:
Simulación:
Foto:
Problema 4:
Mediante un microcontrolador pic de la familia 18fxx, diseñar un semáforo
según el siguiente diagrama secuencial. El sistema es cíclico, es decir luego de
60 segundos vuelve a repetirse la secuencia con tiempos idénticos, utilizar tres
focos de 110 voltios (verde, amarrillo, rojo) optoacopladores y triacs.
Código:
program practica34
trisb=$0
main:
portb.0=1
portb.1=0
portb.2=0
delay_ms(300)
portb.0=1
portb.1=1
portb.2=0
delay_ms(100)
portb.0=0
portb.1=0
portb.2=1
delay_ms(200)
end.
Diagramas de Flujo:
Simulación:
Foto:
Conclusiones:
Bibliografía: