Professional Documents
Culture Documents
INTEGRANTES
OSCAR AYALA
CHRISTIAN IBARRA
ANDRES VALDIVIESO
1
TEMA: UTILIZACION DE DECLARACIONES CON EL MICROCONTROLADOR PIC 16F877A Y EN
dsPIC 30F4013
OBJETIVO: Utilizar Las declaraciones if, select case, do, for, whilw con el
microcontrolador PIC y dsPIC
DESARROLLO
Para la practica utilizamos la placa programadora “PICTrainer” de dsPIC y el software
Microbasic ds.
2
PROCEDIMIENTO
EJERCICIO 1
PROBLEMA
Si se presiona el botón el foco se enciende por 3 segundos, luego se apaga 1
segundo y se vuelve a encender el foco por 3 segundos. Caso contrario el foco
permanece prendido.
ALGORITMO
Entrada: Por medio del pulsador ingresamos el valor FFh por el Puerto C.
Proceso: Si presionamos el pulsador el foco se encenderá por 3 segundos,
después se apaga por 1 segundo y se vuelve a encender el foco por 3 segundos
más. Si no presionamos el pulsador el foco permanecerá prendido.
Salida: Visualizamos si el encendido y apagado del foco funciona correctamente
por la salida del puerto B.
CÓDIGO
program practica2
trisc=$ff
trisb=$0
main:
if portc.0=1 then
portb.0=1
delay_ms(3000)
portb.0=0
delay_ms(1000)
portb.0=1
delay_ms(3000)
portb.0=0
else
portb.0=1
end if
goto main
end.
3
DIAGRAMA DE FLUJOS
INICIO
Definimos
las variables
Leer Puerto B
Leer Puerto C
No
Puerto
C=1
Si
Puerto B=1
Retardo 3 seg.
Puerto B=0
Retardo 1 seg.
4
ESQUEMÁTICO:
GRAFICO ANEXO
5
EJERCICIO 2
PROBLEMA
Utilizando la sentencia For-nex, elaborar un contador ascendente de 0 a 9, que sea
repetitivo.
ALGORITMO
Entrada: No hay.
Proceso: Contador del 0 al 9 que sea repetitivo.
Salida: Por el Puerto B mandamos la señal al display de 7 segmentos.
CÓDIGO
program practica2_2
main:
dim i,a as byte
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 FLUJOS
INICIO
Definimos
las variables
PuertoB=a
a=a+1
Retardo de 500 ms
6
ESQUEMÁTICO:
GRAFICO ANEXO
7
EJERCICIO 3
PROBLEMA
Mediante la secuencia For-nex, elaborar un contador descendente entre 0 y 9.
ALGORITMO
Entrada: No hay.
Proceso: Contador del 9 al 0 que sea repetitivo.
Salida: Por el Puerto B mandamos la señal al display de 7 segmentos.
CÓDIGO
program practica2_3
main:
dim i,a as byte
trisb=0
i=1
a=9
for i=0 to 9
portb=a
a=a-1
delay_ms(500)
next i
if a=0 then
a=9
else
end if
delay_ms(500)
goto main
end.
DIAGRAMA DE FLUJOS
INICIO
Definimos
las variables
PuertoB=a
a=a-1
Retardo de 500 ms
8
ESQUEMÁTICO:
GRAFICO ANEXO
9
EJERCICIO 4
PROBLEMA
Utilizar la secuencia While-wend, para elaborar un contador ascendente de dos dígitos.
ALGORITMO
Entrada: No hay.
Proceso: Realizamos un contador ascendente utilizando la secuencia While-wend.
Salida: Por el Puerto B y el Puerto F mandamos la señales a los 2 display de 7 segmentos
respectivamente.
CÓDIGO
program practica2_4
main:
Dim A,B As Byte
dim I As word
A=0
B=0
I=0
TRISB=0
TRISF=0
while true
portf=1
portb=A
delay_us(1)
portf=2
portb=B
delay_us(1)
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.
10
DIAGRAMA DE FLUJOS
INICIO
Definimos
las variables
Escribimos en el Puerto B
Puerto F control de Unidades.
Puerto F control
Decenas
11
ESQUEMÁTICO: Simulación en proteus utilizando dspic30f4013
GRAFICO ANEXO
12
CONCLUCIONES
Como nos pudimos dar cuenta en la práctica, el PIC también nos sirve para el control alto
voltaje.
Podemos concluir que para realizar contadores ya sea ascendentes o descendentes, el uso
de las sentencias For-nex y While-wend nos sirvió de mucha ayuda ya que pudimos
realizar dichos contadores con mucho éxito y además el uso de estas sentencias hicieron
que la programación sea corta.
Bibliografía
- Hojas de prácticas para Laboratorio Sistemas Microprocesados I. Microcontroladores PIC -
Angulo Usategui Jose Maria.
- http://ww1.microchip.com/downloads/en/devicedoc/70138c.pdf
- http://www.mikroe.com/en/books/dspicbook/mikropascal/ch9/images/fig9-13a.gif
13