Está en la página 1de 6

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

Prctica de laboratorio: display 7 segmentos, con


programacin en C.
Microcontroladores Mec.
IV SEMESTRE
JHONATHAN DAVID PARDO MARTINEZ-RICHARD SNEIDER VELANDIA
dap19-@hotmail.es rsv_col@msn.com
TEINCO

RESUMEN:
La prctica de laboratorio consta de realizar la
programacin del microcontrolador para que ejecute
la funcin de contador y se visualice a travs del
display de siete segmentos de ctodo comn los
nmeros de 1 a 9 cambiando automticamente
despus de enviar un pulso (1) desde el interruptor
conectado a la entrada del micro.
El cdigo fuente se realiz por medio de MPLAB
pero en lenguaje C, el cual nos permite incluir
instrucciones ms cortas y sencillas respecto a las
usadas en ASSEMBLER, esto debido a que las
bibliotecas se encuentran almacenadas y slo basta
con llamarlas a travs como por ejemplo as:
#include"16F84A.h"

Lenguaje C.
Ciclo while.
Lnea de Instrucciones.
INTRODUCCIN:
Ya que utilizaremos como elemento central de
nuestro laboratorio el PIC 16F84A se hace
necesario saber acerca de l.
El PIC16F84 es un microcontrolador a 8 bits de la
familia PIC perteneciente a la Gama Media (segn
la clasificacin dada a los microcontroladores por la
misma empresa fabricante) Microchip.
Se trata de uno de los microcontroladores ms
populares del mercado actual, ideal para
principiantes, debido a su arquitectura de 8 bits, 18
pines, y un conjunto de instrucciones RISC muy
amigable para memorizar y fcil de entender.
Estudiaremos sus caractersticas con el fin de
entender mejor su funcionamiento.
Caractersticas:

La simulacin igualmente se contina realizando a


travs de PROTEUS, cargando el archivo de
extensin .cof generado por MPLAB en el
microcontrolador y enlazndolo a los componentes
correspondientes para la correcta visualizacin.
NDICE DE TERMINOS:

Microcontrolador.
Display de 7 segmentos.
Dipswitch.

Repertorio de 35 Instrucciones.
Todas las instrucciones se ejecutan en un
solo ciclo excepto las de salto que necesitan
dos.

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

Versiones para bajo consumo (16LF84A), de


4 MHz (PIC16F84A-04) y 20 MHz
(PIC16F84A-20). Un ciclo mquina del PIC
son 4 ciclos de reloj, por lo cual si tenemos
un PIC con un cristal de 4 MHz, se
ejecutarn 1 milln de instrucciones por
segundo.
Memoria de programa Flash de 1 K x 14
bits.
Memoria RAM dividida en 2 reas: 22
registros de propsito especfico (SFR) y 68
de propsito general (GPR) como memoria
de datos.
15 registros de funciones especiales.
Memoria de datos RAM de 68 bytes (68
registros de propsito general).
Memoria de datos EEPROM de 64 bytes.
Contador de programa de 13 bit (lo que en
teora permitira direccionar 4 KB de
memoria, aunque el 16F84 solo dispone de
1KB de memoria implementada).
Pila con 8 niveles de profundidad.
Modos de direccionamiento directo,
indirecto y relativo.
ALU de 8 bits y registro de trabajo W del
que normalmente recibe un operando que
puede ser cualquier registro, memoria,
puerto de Entrada/Salida o el propio cdigo
de instruccin.
4 fuentes de interrupciones:
o A travs del pin RB0/INT.
o Desbordamiento del temporizador
TMR0.
o Interrupcin por cambio de estado de
los pins 4:7 del Puerto B.
o Completada la escritura de la
memoria EEPROM.
1.000.000 de ciclos de borrado/escritura de
la memoria EEPROM.
40 aos de retencin de la memoria
EEPROM.
13 pins de E/S con control individual de
direccin.
PortA de 5 bits <RA0:RA4>.
PortB de 8 bits <RB0:RB7>.
Contador/Temporizador TMR0 de 8 bits con
divisor programable.
Power-on Reset (POR).
Power-up Timer (PWRT).

Oscillator Start-up Timer (OST).


Watchdog Timer (WDT).
Proteccin de cdigo.
Modo de bajo consumo SLEEP.
Puede operar bajo 4 modos diferentes de
oscilador.
Programacin en serie a travs de dos pins.
Tecnologa de baja potencia y alta velocidad
CMOS Flash/EEPROM.
Caractersticas elctricas mximas (no deben
ser superadas y de mantenerse por un tiempo
en algn mximo puede daarse al PIC)
o Temperatura ambiente mxima para
funcionamiento de -55C to +125C.
o Tensin mxima de VDD respecto a
VSS de -0,3 a +7,5V.
o Tensin de cualquier patilla con
respecto a VSS (excepto VDD,
MCLR, y RA4) de -0,3V a (VDD +
0.3V).
o Tensin en MCLR con respecto a
VSS -0,3 a +14V.
o Tensin en RA4 con respecto a VSS
-0,3 a +8,5V.
o Disipacin de potencia total de 800
mW.
o Mxima corriente de salida a VSS
150 mA.
o Mxima corriente de salida de VDD
100 mA.
o Mxima corriente del puerto "A"
como fuente, 50 mA.
o Mxima corriente del puerto "A"
como sumidero, 80 mA.
o Mxima corriente del puerto "B"
como fuente, 100 mA.
o Mxima corriente del puerto "B"
como sumidero, 150 mA.
o Mxima
corriente que puede
suministrar una sla salida como
fuente o sumidero, 25 mA.
Rango de alimentacin:
o 16LF84A: de 2 a 5,5 V en
configuracin de oscilador XT, RC y
LP.
o 16F84A:
de 4 a 5,5 v en configuracin
de oscilador XT, RC y LP.

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

de 4,5 a 5.5 v en
configuracin de oscilador
HS.
Consumo tpico:
o 16LF84A:
de 1 a 4 mA en configuracin
de oscilador RC y XT
(FOSC=2 MHz, VDD=5,5V).
de
15 a 45 A en
configuracin de oscilador
LP (FOSC=32kHz, VDD=2V,
WDT deshabilitado).
o 16F84A:
de 1,8 a 4.5 mA en
configuracin de oscilador
RC y XT (FOSC=4 MHz,
VDD=5,5V).
de
3 a 10 mA en
configuracin de oscilador
RC y XT durante la
programacin de la FLASH
(FOSC=4MHz, VDD=5,5V).

16F84A-20: de 10 a 20 mA en configuracin de
oscilador HS (FOSC=20 MHz, VDD=5,5V).
Adems de conocer nuestro PIC 16F84A, tambin
debemos saber sobre el lenguaje de programacin
C.
Un programa codificado en lenguaje C resulta muy
til en la aplicacin de mControladores, dado que
su compilacin es bastante eficiente y ptima
acercndose a la codificacin de lenguaje de
mquina. Lo descriptivo de la sintaxis permite
elaborar de mejor forma los algoritmos olvidndose
de los molestos push y pop usados en el lenguaje de
mquina cuando se usan saltos a subrutinas.
Comentario, este permite la documentacin del
cdigo y se usa de acuerdo a la siguiente sintaxis /*
Este es un comentario */ o // Este es un comentario
Inicio y fin de bloque, permite agrupar un nmero
de instrucciones las que pueden ser ejecutadas con
cierta prioridad. Se usa {para iniciar bloque y} para
finalizar bloque.
{// Inicio de bloque
// instrucciones
} // final de bloque

Identificador, es el nombre que se le da a una


variable o funcin por lo general asociado al tipo de
dato que ha de contener la variable o al tipo de
procedimiento que ha de realizar la funcin. Tipo,
es una palabra reservada definida que indica el tipo
de variable que se ha de definir y su alcance
numrico, asi:.

Sentencia while: sta evala la condicin al inicio,


si sta es verdadera, entonces se ejecuta el bloque
que viene a continuacin en caso contrario lo salta.
El formato es el siguiente:
while(condicin) instruccin; while(condicin) {
instruccin_1;
...
instruccin_n; }
Display de 7 segmentos:
Es un componente que se utiliza para la
representacin de nmeros en muchos
dispositivos electrnicos. Este elemento se
ensambla
o
arma de
manera
que
se
pueda activar cada segmento (diodo LED) por
separado logrando de esta manera combinar
los elementos y representar todos los nmeros
en el display (del 0 al 9). Cada elemento
del display tiene asignado una
letra
que
identifica su posicin en el arreglo del display.

El display ctodo comn tiene todos los


ctodos de los LED unidos y conectados a
tierra. Para activar un segmento de estos hay
que poner el nodo del segmento a encender a

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

Vcc (tensinde la fuente) a travs de una


resistencia para limitar el paso de la corriente.

SIMULACION DE PRCTICA
Se realiz la simulacin de la prctica cargando el
archivo .cof generado por MPLAB, en el simulador
PROTEUS, obteniendo la visualizacin del
contador a travs del display de 7 segmentos
implementado.

MONTAJE EN PROTOBOARD
Se realiz el montaje sobre la protoboard con la
utilizacin del display de 7 segmentos con ctodo
comn con sus respectivas resistencias de 330
Ohms, Dipswitch para enviar el pulso de inicio y el
microcontrolador PIC 16F84A.

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

PROGRAMACIN:
Se visualiza la creacin del cdigo fuente en
MPLAB en lenguaje C.

Programacin (cdigo fuente):


#include"16F84A.h"
#use delay(clock=4000000)
#fuses XT,NOWDT
#byte port_b=6
void main()
{unsigned
int
const
disp[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x
27,0x7f,0x6f};
int x=0;
port_b=0;
set_tris_b(0x00);
while(1)
{
x++;
if(x>9)
x=1;
port_b=disp[x];
delay_ms(500);
}
}

TEINCO-David Pardo-Richard Velandia. Laboratorio programacin en C.

CONCLUSIONES:
+Con respecto a ASSEMBLER, la programacin en
cuanto a sus instrucciones en C es ms fcil y ms
corta.
+La programacin en C es ms corta ya que las
bibliotecas se encuentran almacenadas y basta con
llamarlas a travs de la instruccin #include, por
ejemplo:
#include"16F84A.h"
+La conexin del display de siete segmentos viene
determinada por las salidas del PIC, que van
precedidas por una resistencia de 330 Ohms para
evitar que se quemen los Diodos LED que
componen el display.
+A travs de MPLAB podemos realizar la
programacin del microcontrolador en lenguaje C,
pero a la hora de guardarla se debe tener en cuenta
que la extensin de sta deber cambiar a .c.
+El hecho de programar el microcontrolador bajo el
lenguaje C, no incurre en nada para el efecto de la
generacin de los archivos de simulacin .cof y
quemado del PIC .hex.
BIBLIOGRAFA:
http://quidel.inele.ufro.cl/~jhuircan/CCOMPILER/L
enguaje%20C%20orientado%20a
%20microcontroladores%20rev%201.pdf
http://ww1.microchip.com/downloads/en/DeviceDo
c/35007C.pdf
http://perso.wanadoo.es/pictob/micropic16f84.htm#
el_pic16f84a.
http://unicrom.com/display-de-7-segmentos/
http://learn.mikroe.com/ebooks/microcontroladores
picc/chapter/lenguajes-de-programacion/
https://tallerelectronica.com/2015/08/24/aprende-aprogramar-microcontroladores-en-lenguaje-c/
http://www.edudevices.com.ar/download/articulos/
MCUsPIC/Programando_PICs_CCS_08.pdf
http://www.utp.edu.co/~eduque/arquitec/Pic16f84.p
df