You are on page 1of 6

Electrnica & Robtica

Blog personal con temas de: Electrnica, Robtica,


Microcontroladores, Programacin con sus Ejemplos,
Circuitos, Tutoriales, Vdeos, Simulaciones, Archivos de
descarga y Mucho Mas.
CONTADOR DE 0 A 9 CON PIC16F84A
Y PULSADORES
Siguiendo con las prcticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros
Microcontroladores PIC, en esta ocasin utilizaremos un Display de 7 Segmentos y pulsadores para
visualizar los nmeros del 0 al 9. Adems es una pequea demostracin de la gran cantidad de formas
en las cuales podemos utilizar el ya conocido PIC16F84A.
Algo que tenemos que tener en cuenta es que el cdigo cambia dependiendo si usamos un display de
nodo comn o de ctodo comn. En este caso lo veremos con un display de ctodo comn, lo que nos
dice que para que algn segmento encienda el pin tiene que recibir un 1 lgico. Por lo tanto para saber
qu es lo que deseamos ver en el display necesitamos que el puerto B del PIC o salidas (RB0-RB7)
tengan 1 lgicos 0 lgicos.
Como lo que queremos ver en el display con los nmeros del 0 al 9 tenemos la siguiente tabla que nos
mostrara mejor lo antes mencionado. Tambin se muestra los nmeros en decimal, hexadecimal y
binario esto nos ser til al momento de realizar la programacin, que son las tres formas de mandar
datos al puerto B de nuestro PIC.
(http://electronicayrobotica.files.wordpress.com/2013/01/tabla-de-verdad-display-de-7-segmentos-con-
pic.jpg)
Figura 1. Tabla de verdad del display de 7 segmentos con PIC
El circuito es sencillo consta de un display de 7 segmentos de ctodo comn conectado al puerto B del
PIC16F84A con sus debidas resistencias y tambin su oscilador a 4MHz con sus respectivos capacitores
de 22pF, adems se tienen 2 pulsadores conectados al puerto A del PIC, el primero conectado a RA0 y
es el que se utiliza para incrementar el conteo, el segundo conectado a RA1 y se utiliza para
decrementar, para el Reset se tiene conectado otro pulsador en el pin Master Clear con su resistencia a
Vcc para que el PIC trabaje adecuadamente. Recordar que los pines de alimentacin del PIC son: 5
para GND y 14 para Vcc=5 Volts.
El circuito se muestra a continuacin:
(http://electronicayrobotica.files.wordpress.com/2013/02/contador-con-pic-y-pulsadores.jpg)
El comando que se utilizara para mostrar el valor en el puerto B es LOOKUP el cual puede ser usado
para obtener valores de una tabla de constantes de 8 bits en este caso utilizaremos la variable DIGITO.
Los valores que irn dentro de LOOKUP en este ejemplo sern en forma hexadecimal para ello el
compilador requiere que se utilice el smbolo $, si se quisiera utilizar los nmeros en binario se debe
de agregar el % y para los decimales solo basta escribir el numero tal y como es, estas tres
posibilidades deben de ir separadas por comas.
El cdigo en Basic para este circuito es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
AllDigital
TRISA = %11111111'Puerto A como entrada
TRISB = %00000000'Puerto B como salida
DIGITO var Byte'declaramos la variable digito
PORTB = 63 'Muestra el numero cero en el display
digito = 0'Inicializamos digito en cero
MAIN:
If PORTA.0 = 1 Then'Si RA.0=1 hacemos lo siguiente
pause 100
If digito = 10 Then
digito = 0
Endif
If digito <= 10 Then
pause 100
digito = digito + 1
Se declara el puerto A como entrada y B como salida, se declara la variable DIGITO, se inicializa
PORTB=63 para que en el display se visualice un cero, se inicializa la variable DIGITO=0. Se tienen dos
condicionales, la primera revisa el estado de RA0 si este es pulsado aumenta el conteo, el segundo revisa
a RA1 y si es pulsado decrementa el conteo. La instruccin LOOKUP va mostrar una variable DIGITO
en el puerto B y se tiene la siguiente sintaxis:
LOOKUP digito, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F, $3F], PORTB
Se utiliza la variable DIGITO para saber que dato es que se va a mostrar recordar que esta variable.
Cada que se presiona un botn se tiene un retardo para evitar el antirrebote que pueda tener el botn.
Dejo la lista de material para poder realizar este ejemplo y seguir aprendiendo de la programacin.
MATERIAL:
1 PIC16F84A
1 Display de 7 segmentos de ctodo comn
1 Cristal de cuarzo de 4MHz
2 Condensadores de 22pF
10 Resistores de 330
3 Pulsadores
Les dejo un vdeo del circuito en accin.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
LookUp digito, [$3f, $06, $5b, $4f, $66, $6d, $7d, $07, $7f, $6f, $3f], PORTB
Endif
Endif

If PORTA.1 = 1 Then'Si RA.1=1 hacemos lo siguiente
pause 100
If digito = 0 Then
digito = 10
Endif
If digito >= 0 Then
pause 100
digito = digito - 1
LookUp digito, [$3f, $06, $5b, $4f, $66, $6d, $7d, $07, $7f, $6f], PORTB
Endif
Endif
Goto MAIN
Si gustas descargar el archivo .HEX y el cdigo fuente puedes hacerlo desde aqu:
(https://mega.co.nz/#!bFoFSYwY!ZYT-qoH0JHTxNdXYkpuiGAllbcjTPqO4K-1GnqCJ6E8)
Posted in Microchip, Microcontroladores PIC, PICs en Basic and tagged 0-9 counter with PIC16F84A,
contador de 0 a 9, contador de 0 a 9 con pic y pulsadores, Contador de 0 a 9 con PIC16F84A, Counter
with PIC16F84A, counter with PIC16F84A and buttons, Electrnica y Robtica, MrChunckuee,
pic16f84a, pics en basic on 09/02/2013 by MrChunckuee. 2 comentarios
2 comments
1. Carlos dijo:
24/05/2014 a las 11:59 PM

0

0

i
Calificar
HOla, he tratado de descargar el programa y sale errores me lo podran mandar o resubir?
RESPONDER
1.
MrChunckuee dijo:
25/05/2014 a las 12:25 AM

0

About these ads (http://en.wordpress.com/about-
these-ads/)
0

i
Calificar
Ya envi el material a tu correo y tambin ya he corregido el enlace
RESPONDER
BLOG DE WORDPRESS.COM. EL TEMA SUITS.

You might also like