Vous êtes sur la page 1sur 11

SEPTIEMBRE - FEBRERO 2011

PRUEBA #1

ERICK PEÑAHERRERA
DATASHEETS
 PIC16F877A

 2N3904
 DECODIFICADOR 74LS48

 DISPLAY CATODO COMUN 7 SEGMENTOS


DESARROLLO PRÁCTICO
OBJETIVO: Utilizar los microcontroladores
1. EJERCICIO 1
PROBLEMA:
Diseñar un contador ascendente entre 0.00 hasta 9.99 con 3 displays y leer
de los puertos D.2 el pulsador 1 y puerto D.3 el pulsador 2, que tenga la
siguiente secuencia:
 Presionando el pulsador 1 y luego presionando el pulsador 2 inicia
el contador con una velocidad rápida
 Presionando el pulsador 2 y luego presionando el pulsador 1
continua el contador con una velocidad lenta
 En cualquier instante pasa de velocidad rápida a lenta o viceversa
ALGORITMO:
Entradas:
Datos que ingresan al microcontrolador pic.
Puerto D entrada 0/1 lógico.
Procesos:
Defino al puerto D como entradas para los pulsadores
Habilitar puerto b (salida)
Habilitar puerto d (entrada)
Habilitar puerto c (salida)
Controlar mediante bucles
Si esta en 1 lógico en d.3 lea d.2
Si esta en 1 lógico d.2
Activación de puerto c
Conteo ascendente velocidad rápida
Si esta en 1 lógico d.2 lea d.3
Si esta 1 lógico d.3
Conteo ascendente velocidad lenta
Activación de puerto c
Escribir los valores del contador en el puerto b
Salidas:
Salida del puerto C hacia el transistor para la saturación de cada display
y puerto B para la visualización de los 3 displays de 7segmentos
mediante 7448 y se comprobara con el funcionamiento adecuado del
circuito.
CÓDIGO

program contadorascendente
main:
dim A,B,X,H,J as Byte
dim I as word
A=0
B=0
X=0
I=0

trisb=0
trisc=0
trisa=0
trisd=$ff
J=portd.2 and portd.3
porta.0=0

if J=1 then
porta.0=1
delay_ms(200)
H=portd.2 or portd.3

if H=1 then

if portd.2=1 then

while true
lazo1:
Portc=1
Portb=A
delay_us(100)
Portc=2
Portb=B
delay_us(100)
Portc=4
Portb=X
delay_us(100)
if portd.3=1 then
goto lazo
end if
inc(I)
if I=2000 then
inc(X)
if X=10 then
X=0
inc(B)
if B=10 then
B=0
inc(A)
else
if A=10 then
A=0
end if
end if
end if
I=0
else
end if

wend

end if
if portd.3=1 then
while true
lazo:
Portc=1
Portb=A
delay_us(200)
Portc=2
Portb=B
delay_us(200)
Portc=4
Portb=X
delay_us(200)
if portd.2=1 then
goto lazo1
end if
inc(I)
if I=2000 then
inc(X)
if X=10 then
X=0
inc(B)
if B=10 then
B=0
inc(A)
else
if A=10 then
A=0
end if
end if
end if
I=0
else
end if

wend

end if
else
portb.0=0
portb.1=0
portb.2=0
portb.3=0
end if
end if
goto main
end.
DIAGRAMA DE FLUJO

INICIO

Configuro el puerto D como entrada y


el puerto B y C como salida

Habilito los pulsadores: puerto D.2


pulsador 1 y puerto D.2 pulsador 1

PORTD.3=1 Esperar hasta que


Portd.3 =1

PORTD.2=1 Esperar hasta que


Portd.2 =1

Conteo ascendente con


velocidad rápida

PORTD.2=1

PORTD.3=1

Conteo ascendente con


velocidad lenta
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.

 Tener en cuenta o memorizado el diagrama de pines (datasheet) del pic, del transistor y del
display para facilitar ya sea la armada en el protoboard como en la programación en la
declaración de puertos a utilizar.

BIBLIOGRAFIA

http://www.datasheetcatalog.net/es/datasheets_pdf/7/4/4/8/7448.shtml , Microchip,
datasheet decodificador 7448, fecha de revisión: 13/11/2010

http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf , Microchip,
datasheet PIC16F877A, fecha de revisión: 25/09/2010.

Practicas realizadas en la materia de “SISTEMAS MICROPROCESADOS 1” en el laboratorio,


propuestas por el ING. Luis Oñate

Vous aimerez peut-être aussi