Vous êtes sur la page 1sur 12

UNIVERSIDAD POLITÉCNICA

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

Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral


Interface Controller) de gama media de 8 bits, fabricados por Microchip Technology
Inc..

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

La "A" final de los modelos PIC16F873A, PIC16F874A, PIC16F876A y PIC16F877A


indica que estos modelos cuentan con módulos de comparación analógicos.[1]

El hecho de que se clasifiquen como microcontroladores (MCU) de 8 bits hace


referencia a la longitud de los datos que manejan las instrucciones, y que se corresponde
con el tamaño del bus de datos y el de los registros de la CPU.
Se trata de versiones mejoradas del caballo de batalla PIC16F84, muy empleado en
proyectos sencillos, de educación y de entrenamiento.

Datasheet PIC 16F877A

Ejercicios con el PIC 16F877A:


Objetivo: Utilizar temporizadores con el microcontrolador PIC.

Problema 1:

Utilizar el temporizador para elaborar un contador de 1 segundo, cuyo


valor se observa en un display de 7 segmentos.

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.

‘Para el cálculo del tiempo


‘Tiempo de Oscilación = TOSC=4/FOSC
‘TOSC=4/10Mhz=400ns
‘al utilizar prescalar 111 esto es 256
‘t= (256-TMR0)*400ns*256=
‘T= (256-0)*400ns*256=26.2144ms
‘para obtener un Segundo 38*26.2144= 0.996s

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:

 Mediante el PIC 16F877A hemos podido controlar varios procesos


lógicos que con su debida programación se ha realizado las
respectivas prácticas.

 En los ejercicios del prescalar se debe realizar correctamente los


cálculos para poder realizar eficazmente la práctica y así pulsar
los tiempos solicitados.

 En el ejercicio del semáforo debemos tomar en cuenta la correcta


polarización de los MOC ya que estos cumplen una labor esencial
también debemos tomar en cuenta la alimentación de 110V para
las bombillas.

Bibliografía:

 Hojas de Ejercicios proporcionadas por el Ing. Luis Oñate.


 http://es.wikipedia.org/wiki/PIC16F87X
 http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf