Você está na página 1de 18

SEPTIEMBRE - FEBRERO 2011

INFORME #02

ERICK PEÑAHERRERA
JOSE BUCHELI
XAVIER MUÑOZ
DATASHEETS
 PIC16F877A
DESARROLLO PRÁCTICO
OBJETIVO: Utilizar las declaraciones if, select case, do, for, while con el
microcontrolador Pic.
1. EJERCICIO 1
PROBLEMA:
Si se presiona el botón el foco se enciende por 3 segundos, luego se
apaga por 1 segundo y se vuelve a encender el foco por 3 segundos.
Caso contrario el foco permanece encendido.
ALGORITMO:
Entradas:
Datos que se guardan en el microcontrolador.
Procesos:
Habilitar puerto b (salida)
Habilitar puerto c (entrada)
Compruebo si el puerto c esta en 0 o en 1.
Si esta en 1 escribo 1 en el puerto b
Retardo de 3 segundos
Escribo 0 en el puerto b
Retardo de 1 segundo
Escribo 1 en el puerto b
Retardo de 3 segundos
Salidas:
Salida del puerto B hacia el transistor y se comprobara con el
funcionamiento adecuado del circuito.

CÓDIGO

program prac1rele
trisc=$FF
trisc=$0
main:
if portc.0=1 then
portb.0=1
delay_ms(3000)
portb.0=0
delay_ms(1000)
portb.0=0
else
portb.0=1
end if
goto main
end.

DIAGRAMA DE FLUJO

INICIO

Configuro el puerto C
como entrada y el
puerto B como salida

Leo el pin PC.0

Está en
Puerto B siempre en 1L
1L.

Activar puerto B durante


3 segundos.

Desactivo el puerto B
durante 1 segundos

Activar puerto B durante 3


Segundos.
ESQUEMÁTICO

SIMULACIÓN
FOTOS
2. EJERCICIO 2

PROBLEMA:
Utilizando la sentencia for – next, elaborar un contador ascendente de 0
a 9, sea repetitivo.

ALGORITMO:

Entradas:
Datos que se guardan en el microcontrolador.
Procesos:
Habilitar puerto b (salida)
Defino 2 variables en las cuales se van a guardar los valores 0 y 1.
Realizo un lazo For para el contador
Voy sumando las variables.
Si la variable llega a 10 retorno a 0.
Retardo de 500 ms.
Salidas:
Salida del puerto B hacia el decodificador y la visualización del
funcionamiento en el display.

CÓDIGO

program prac2cont
dim i, a as byte
main:
trisb=0
i=1
a=0
for i=1 to 10
portb=a
a=a+1
delay_ms(500)
next i
if a=10 then
a=0
else
end if
delay_ms(500)
goto main
end.

DIAGRAMA DE FLUJO

INICIO

Configuro el puerto B
como salida.

Defino variables a,i como byte

Escribo la variable en el
puerto B

Realizo el lazo For-Next


para el contador

Escribo la variable a en el
puerto B

Si a=10 retornar a 0.
ESQUEMÁTICO

SIMULACIÓN
FOTOS

3. EJERCICIO 3

PROBLEMA:
Mediante la sentencia FOR – NEXT, elaborar un contador descendente
entre 0 y 9.

ALGORITMO:
Entradas:
Las variables a e i.
Procesos:
Habilitar el puerto B como salida
Declarar las variables a y i
Iniciar la variable a con 9
Utilizar la declaración for para realizar la secuencia
Utilizar la sentencia if para repetir la secuencia.
Salidas:
Salida del puerto B hacia el decodificador 7448 y mediante este a un
display de cátodo común.

DIAGRAMA DE FLUJO

INICIO

PUERTO B = Out

DECLARAR
VARIABLES

SENTENCIA FOR-NEXT
PARA EL CONTADOR

DECREMENTO DE 1
TENIENDO a = 9

NO
Esta
en

ESCRIBIR EN EL PUERTO B
A=A - 1

SI

RETARDO 500ms
CÓDIGO
program practica 2_3
dim i, a as byte
main:
trisb=0
i=1
a=9
for i=1 to 10
portb= a
a=a-1
delay_ms (5000)
next i
if a=0 then
a=9
else
end if
delay_ms (5000)
goto main
end.

ESQUEMÁTICO
SIMULACIÓN

FOTOS
4. EJERCICIO 4

PROBLEMA:
Utilizar la secuencia While – Wend, para elaborar un contador
ascendente de dos dígitos.

ALGORITMO:

Entradas:
Los datos que se van a guardar en el microcontrolador.
Procesos:
Habilitar el puerto B y el puerto F como entradas
Mediante variables creo contadores que enviaran los datos
correspondientes al puerto B y controlar con el puerto F.
Utilizar la secuencia while – wend para realizar la cuenta y
la secuencia if para que sea repetitiva.

Salidas:
Salida del puerto B hacia el decodificador 7448 y mediante este a
un display de cátodo común.

CÓDIGO
Dim A,B As Byte
dim I As word
A=0
B=0
I=0
main:
TRISB=0
TRISC=0
while true
PortC=1
PortB=A
delay_us(100)
Portc=2
Portb=B
delay_us(100)
inc(I)
if I=2000 Then
Inc(B)
if B=10 then
B=0
Inc(A)
else
if A=10 Then
A=0
End If
End If
I=0
else
End if
wend
end.

DIAGRAMA DE FLUJO
INICIO

DECLARAR
VARIABLES

PUERTO B COMO SALIDA,


PUERTO F COMO CONTROL
UNIDADES

ESCRIBIR EN EL PUERTO B
LOS DATOS

RETARDO 100us

PUERTO F CONTROL
DECENAS

ESCRIBIR EN EL PUERTO B
LOS DATOS

RETARDO 100us

ESCRIBIR EN EL PUERTO B
LOS DATOS
ESQUEMÁTICO

S
I
M
U
L
A
C
I
Ó
N
FOTOS
CONCLUSIONES

 El lenguaje de programación cargado en los microcontroladores PIC se lo realizó a través


del Compilador microBasic, debido a que es un lenguaje fácil y rápido de programar, para
principiantes en microcontroladores.

 Que la elaboración de esta práctica nos sirve para comprender como son los bucles: if, while
y for, además pueda desarrollar habilidades lógicas que ayuden a resolver de una forma
más sencilla cualquier problema.

 Que el microcontrolador utilizado en esta práctica el 16f877A, tienen una capacidad muy
grande para control de procesos básicos y complejos, aunque en algunos programas
ocupan extenso espacio de memoria es suficiente para la práctica para empezar a conocer
sobre microcontroladores.

BIBLIOGRAFIA

http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf, Microchip, datasheet PIC16F877A, fecha de


revision: 25/09/2010.

Você também pode gostar