You are on page 1of 6

PRACTICA N° 02

1.- TÍTULO: CONTADOR DIGITAL.

2.-ESTUDIANTE: ……………………………………………………………………………..

3.- CICLO Y SECCIÓN: …………………………………..

4.- FUNDAMENTACIÓN.

Con el uso del PIC 16F877A, podemos realizar un conteo, el cual podemos realizar diversos trabajos que
encontramos en lo cotidiano por lo regular en varios dispositivos ya sean electrodomésticos, anteriormente
hacíamos un contador con los flip flop J-K, con estos podíamos hacer los relojes asíncronos por ejemplo, ahora con la
ayuda del PIC, podemos programar muchas tareas por lo que resulta muy útil dicho dispositivo, anteriormente los
PICs tenían memoria PROM o EPROM ahora se están renovando gradualmente por chips con memoria Flash. Así
mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus descendientes directos ha sido suplantado por
juegos de instrucciones de 14 y 16 bits.

Se pueden considerar tres grandes gamas de MCUs PIC en la actualidad: Los básicos (Linebase), los de medio rango
(Mid Range) y los de alto desempeño (high performance). Los PIC18 son considerados de alto desempeño y tienen
entre sus miembros a PICs con módulos de comunicación y protocolos avanzados (USB, Ethernet, Zigbee por
ejemplo).

5.- OBJETIVO

Familiarizar la manipulación de los puertos del Microcontrolador que estamos utilizando PIC 16F877A configurando
los puertos en modo de receptores de pulsos así como señales digitales.

6.- ESQUEMA DEL CIRCUITO.

Nuestro diagrama esquemático quedó de la siguiente forma:

Esquemático

7.- MATERIALES

1 PIC 16F877A

1 Display 7 segmentos ánodo común


2 Resistencias de 10 KΩ

1 Cristal de 4 MHz

2 Capacitores de 33 pf

1 Switch momentáneo normalmente abierto

Protoboard

Alambre de diferentes medidas

Fuente de Alimentación 5 Volts

Multímetro

8.- CÓDIGO DE PROGRAMACIÓN.

Empleando la siguiente programación, editarlo para que el display encienda los números secuencialmente.

TRISB=0

INICIO:

Portb=%00100001

pause 2000

Portb=%00100011

pause 1000

Portb=%00001100

pause 1000

Portb=%00011100

pause 1000

GOTO Inicio

End

9.- OBSERVACIONES Y CONCLUSIONES.


……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………………………………………………………………..
MicroCode Studio & PBP: Contador ascendente y descendente de un dígito con PIC16F84A

Siguiendo con las prácticas en Pic Basic Pro y utilizando el MicroCode Studio para nuestros
Microcontroladores PIC, en esta ocasión utilizaremos un Display de 7 Segmentos y pulsadores para visualizar
los números del 0 al 9. Además es una pequeña demostración 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 código cambia dependiendo si usamos un display de ánodo
común o de cátodo común. En este caso lo veremos con un display de cátodo común, lo que nos dice que
para que algún segmento encienda el pin tiene que recibir un 1 lógico. 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 lógicos ó 0
lógicos.

Como lo que queremos ver en el display con los números del 0 al 9 tenemos la siguiente tabla que nos
mostrara mejor lo antes mencionado. También se muestra los números en decimal, hexadecimal y binario
esto nos será útil al momento de realizar la programación, que son las tres formas de mandar datos al puerto
B de nuestro PIC.

El circuito es sencillo consta de un display de 7 segmentos de cátodo común conectado al puerto B del
PIC16F84A con sus debidas resistencias y también su oscilador a 4MHz con sus respectivos capacitores de
22pF, además 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 alimentación del PIC son: 5 para GND y 14 para Vcc=5 Volts.

El circuito se muestra a continuación:


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 irán dentro de LOOKUP en este ejemplo serán en forma hexadecimal para ello el compilador requiere
que se utilice el símbolo “$”, si se quisiera utilizar los números 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 código en Basic para este circuito es el siguiente:

'***********************************************************************

'* Name : CONTADOR CON PIC + PULSADORES (ASCENDENTE Y DESCENDENTE) *


'* Author : xxxxxx *
'* Notice : Copyright (c) 2014 M *
'* : All Rights Reserved *
'* Date : 20/05/2014 *
'* Version : 1.0 *
'* Notes : *
'* : *
'***********************************************************************
AllDigital
TRISA = %11111111'Puerto A como entrada
TRISB = %00000000'Puerto B como salida
DIGITO var Byte 'declaramos la variable digito
PORTB = 63 'Muestra el número 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
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

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 instrucción 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 botón se tiene un retardo para evitar el antirrebote que pueda tener el botón.

Dejo la lista de material para poder realizar este ejemplo y seguir aprendiendo de la programación.

MATERIAL:
 1 PIC16F84A
 1 Display de 7 segmentos de cátodo común
 1 Cristal de cuarzo de 4MHz
 2 Condensadores de 22pF
 10 Resistores de 330Ω
 3 Pulsadores

You might also like