Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Está en
Puerto B siempre en 1L
1L.
Desactivo el puerto B
durante 1 segundos
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.
Escribo la variable en el
puerto B
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
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
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