Está en la página 1de 17

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

CAPITULO III
3

MICROCONTROLADOR PIC18F452

Para la realizacin de este proyecto se ha escogido el microcontrolador PIC18F452


debido a las cualidades y funciones que este posee, una de las razones principales para la
eleccin de este integrado fue el hecho que soporta la comunicacin serial que dispone el
TLC5940, siendo esta comunicacin serial SPI (Serial Peripheral Interface), como otro
argumento menciono que posee 5 puertos disponibles para cubrir todas las necesidades
del presente proyecto, adicionalmente este PIC cuenta con una mayor memoria de
programa (32K) y 1.5K bytes para memoria de datos, no obstante me es menester dar a
conocer que el programa necesario para efectuar este proyecto de tesis ha sido analizado
previamente y se ha llegado a la hiptesis que ser un programa muy pesado que ocupar
prcticamente toda su memoria de programa y datos. Cabe mencionar el proyecto va
dirigido y enfocado al control de los leds, por el hecho de utilizar un microcontrolador
PIC, razn por la que procedo nicamente a detallar sus caractersticas elementales y
fundamentales, ms no entro a exponer con todo detalle todas sus funciones disponibles.

3.1 Caractersticas del Microcontrolador


-

Corriente mxima de 25mA en sus puertos

Tres pines de interrupciones externas

Cuatro mdulos Timer

Dos mdulos PWM/CCP

Modo de comunicacin SPI

Modo de comunicacin I2C

Mdulo de comunicacin USART

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Puerto paralelo esclavo (PSP)

Mdulo de convertidores analgico a digital

El PIC18F452 posee 40 pines en su totalidad, 18 fuentes que podran producir una


interrupcin, 5 puertos de comunicacin, 4 timers, 2 mdulos generadores de seales
PWM y un set de instrucciones de 75 palabras. Todo lo descrito anteriormente lo
podemos expresar en la tabla 5.

Frecuencia de operacin

DC - 40MHz

Memoria de programa

32K

Memoria de datos

1.5K

Memoria de dtos EEPROM

256 bytes

Fuentes de interrupcin

18

Puertos de I/O

Timers

Mdulos PWM

Comunicacin serial

MSSP, USART

Comunicacin en paralelo
Mdulo ADC
Set de instrucciones

1 PSP
8 canales de ingreso
75 Instrucciones

Encapsulado

40 pines

Tabla No. 5. Caractersticas principales

3.2 ARQUITECTURA DEL MICROCONTROLADOR


El PIC18F452 est desarrollado con 5 puertos multiplexados que pueden ser configurados
como entrada /salida o funciones adicionales especficas, los puertos A, B, C y D son de 8
bits, mientras que el puerto E es de slo 3 bits, todos los puertos estn internamente
relacionados prcticamente con todos los mdulos internos, a travs de un bus de datos de

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

8 bits full duplex. Los mdulos del TIMER0, TIMER1 TIMER2, TIMER3 acceden
directamente a los respectivos puertos a travs del bus datos, tambin apreciamos los dos
mdulos generadores de las seales de PWM, en los mdulos CCP1 y CCP2, la memoria
de datos EEPROM, y finalmente tenemos el mdulo del conversor analgico a digital; en
una segunda seccin o bloque tenemos a lo que comprende el mdulo de la unidad lgica
y aritmtica, estando aqu un mdulo de multiplicacin en 8 bits, uno de los registros ms
utilizados como

es el acumulador (WREG), y la propiamente dicha unidad lgica

aritmtica; En otro bloque encontramos la memoria de datos, adicionalmente se tiene a


los registros de funciones especiales (FSR) de 12 bits, el registro BSR de 4 bits, y el
registro de los bancos seleccionados de 4 bits, los mismos que mediante un
direccionamiento de 12 bits acceden a la memoria de datos; en otro bloque podemos
ubicar lo que corresponde al mdulo del contador de programa (PC), al cual accede a bus
de datos en tres secciones de 8 bits y tambin esta directamente relacionado con la
memoria de pila, el cual nos permite una profundad de 31 niveles, este mdulo nos
permite direccionar las instrucciones que se ejecutarn en el microcontrolador, siendo un
bus de salida del PC de 20 bits para poder direccionar toda la memoria de programa; en
otra seccin encontramos un mdulo relacionado con eventos generales del micro, los
cuales pueden ser la generacin de las seales de reloj, watchdog timer, Power-on reset,
Power-up timer. En la figura No.16 se puede apreciar un diagrama de bloques del
microcontrolador PIC18F452, en el que se encuentran todos los mdulos antes descritos,
cabe mencionar que este diagrama de bloques es generalizado para algunos pics de la
familia 18F, ya que por ejemplo el PIC18F442 consta de una memoria de programa de
16K y memoria de datos de 768 bytes, mientras que un PIC18F452 consta de una
memoria de programa de 32K y una memoria de datos de 1536 bytes, y un PIC18F620

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

posee una memoria de programa de 120K y una memoria de datos de 3840 bytes, es por
este motivo de la cantidad de bits en el registro de contador de programa, ya que siempre

se trata de generalizar un mdulo para la mayor cantidad de microcontroladores.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Fig. 16 Diagrama de bloques del PIC18F452

3.3 DESCRIPCIN DE PINES


El PIC18F452 es un diseo de microcontrolador con 40 pines, del cual se utilizan del tipo
PDIP, el cual se detalla a continuacin.

Fig.17 Pines del PIC18F452

En el pin 1 corresponde a MCLR/Vpp, siendo un pin de ingreso, donde MCLR es el


master clear, siendo activado al nivel lgico bajo, y cuando recibe este nivel, lo que hace
es resetear el PIC, tambin es el pin de voltaje de programa cuando acta en este modo.
Los pines 2,3,4,5,6, y 7 corresponden al puerto bidireccional A de 6 bits, el cual tiene sus
funciones alternas como prosigue; aqu se encuentra un convertidor analgico a digital de
5 bits, la estructura del puerto A se detalla en la tabla No.6.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Descripcin
Pin No. Nombre de Pin
RA0
E/S digital 0
2
AN0
Ingreso analgico 0
RA1
E/S digital 1
3
AN1
Ingreso analgico 1
RA2
E/S digital 2
4
AN2
Ingreso analgico 2
VREFIngreso del voltaje de referencia A/D
RA3
E/S digital 3
5
AN3
Ingreso analgico 3
VREF+
Ingreso del voltaje de referencia A/D
RA4
E/S digital 4
6
T0CKI
Seal de ingreso externa para el timer 0
RA5
E/S digital 5
AN4
Ingreso analgico 4
7
SS
Seleccin de integrado SPI esclavo
LVDIN
Deteccin de nivel bajo de voltaje

Tabla No. 6 Pines del puerto A

En los pines 8, 9 y 10 corresponde al puerto bidireccional E, de 3 bits, el mismo que tiene


como funcin alterna el control del puerto de comunicaciones paralelo, encontrndose en
estos pines las seales de lectura, escritura y habilitador, como se describe en la tabla
No.7.
Descripcin

Pin No. Nombre de Pin


8
9
10

RE0

E/S digital 0

RD

Seal de lectura para el puerto paralelo

RE1
WR

E/S digital 1
Seal de escritura para el puerto paralelo

RE2

E/S digital 2

CS

Seal de seleccin del integrado

Tabla No. 7 Pines del puerto E

En los pines 11 y 32 se encuentra la alimentacin positiva del integrado (Vdd), en niveles


de valor lgico alto (5Vdc), mientras que en los pines 12 y 31 se debe conectar a la seal
de alimentacin de nivel lgico bajo (0Vdc). Los pines 13 y 14 corresponden a las

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

seales de reloj externas, que pueden provenir generalmente de una configuracin de


cristales de cuarzo o una resonancia de un circuito RC, dependiendo de la configuracin
que se utilice, tambin se podra aprovechar el pin 14 como una pin de E/S adicional
como sexto bit del puerto A.

Los pines 15, 16, 17, 18, 23, 24, 25 y 26 pertenecen al puerto C con sus respectivas
funciones alternas que cada uno posee, en este puerto como funcin alterna, se encuentra
un timer, los dos generadores de seales PWM, un ingresos de captura, y tambin los
pines asociados a las comunicaciones serie de este PIC, siendo la comunicacin I2C, SPI,
y USART; en la tabla No.8 se indican las correspondencias de cada pin con lo
mencionado.

Descripcin

Pin No. Nombre de Pin


15

RC0
T1OSO

E/S digital 0
Salida de oscilador del timer1

T1CKI

Ingreso de la seal de reloj exterta

RC1
16

17

18

23

24

25

26

E/S digital 1

T1OSI
CCP2

Ingreso seal oscilador timer 1


Compare input/ouput 2, salida PWM 2

RC2
CCP1

E/S digital 2
Compare input/ouput 1, salida PWM 1

RC3

E/S digital 3

SCK
SCL

Seal de reloj en modo SPI


Seal de reloj en modo I2C

RC4
SDI

E/S digital 4
Dato de ingreso en modo SPI

SDA

Dato de ingreso/salida en modo I2C

RC5

E/S digital 5

SDO

Dato de salida en modo SPI

RC6
TX

E/S digital 6
Transmisor en modo USART Asincrono

CK
RC7

Seal de reloj en modo USART


E/S digital 7

RX

Receptor en modo USART Asincrono

DT

Datos en modo USART Asincrono

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Tabla No.8 Pines del puerto C

Los pines 19, 20, 21, 22, 27, 28, 29 y 30 pertenecen al puerto D con un ancho de 8 bits,
siendo este de propsito general, es decir se pueden configurar cada uno de sus pines
como entrada o salida, a la vez que este puerto tambin puede ser configurado como
funcin alterna, la de ser un puerto de comunicaciones esclavo paralelo con todos sus 8
bits de ancho.

Los pines 33, 34, 35, 36, 37, 38, 39 y 40 pertenecen al puerto B, tambin de 8 bits, siendo
este puerto tambin como funcin principal el de ser de propsito general tanto de entrada
como de salida, adicionalmente este puerto tambin posee funciones alternas tales como
las interrupciones externas, 1 mdulo generador de PWM y un control de voltajes para las
comunicaciones seriales, cada uno de estos pines lo podemos analizar en detalle en la
tabla No. 9. Adicionalmente cuando este puerto se configure como salida, se debe tener
en cuenta que internamente posee resistencia de pull-up que debern ser activadas de
acuerdo al uso de puerto.

Descripcin

Pin No. Nombre de Pin


33

RB0
INT0

E/S digital 0
Interrupcin externa 0

34

RB1
INT1

E/S digital 1
Interrupcin externa 1

35

RB2
INT2

E/S digital 2
Interrupcin externa 2

RB3

E/S digital 3

36

CCP2
RB4

Compara-Ingreso/salida 2 PWM2
E/S digital 4

38

RB5
PGM

E/S digital 5
Habilitador programacion ICSP

39

RB6
PGC

E/S digital 6
Clock de programacion ICSP

40

RB7

E/S digital 7

37

LETRERO RGB BASADO EN LEDS

PGD

UNIVERSIDAD POLITECNICA SALESIANA

Dato de la programacin ICSP

Tabla No. 9 Pines del puerto B


3.4 ORGANIZACIN DE LA MEMORIA
En este microcontrolador existen 3 tipos de bloques de memoria asociada, siendo estos la
Memoria de Programa, Memoria de Datos, y la Memoria EEPROM, este PIC 18F452
consta con 32Kbytes de memoria flash de programa, 1.5Kbytes de memoria RAM
esttica de datos, la cual mantiene sus datos nicamente mientras este energizado este
chip, caso contrario ser pierde su informacin; finalmente posee 256Bytes de memoria
EEPROM para almacenar datos de una manera permanente, la cual no se borra si el
microcontrolador es encuentra sin energa elctrica.

La memoria de datos es implementada a travs de una memoria esttica RAM, sus


registros son direccionados con 12 bits, lo cual nos dara virtualmente una capacidad de
4096bytes, pero este microcontrolador dispone de 1.5Kbytes de memoria de datos, donde
se puede separar en dos grandes grupos, el segmento que contiene a los registros de
funciones especiales, con sus siglas en ingls SFR, en otro segmento se encuentran los
registros de propsito general, con sus siglas en ingls GPR, los registros del SFR son
usados para el control, estado y funciones de los puertos de salida del microcontrolador,
mientras que los registros del GPR son usados para almacenar y recuperar datos de la
aplicacin del usuario; esta memoria puede ser accedida de una manera directa o
indirecta, en la figura No.18 se encuentra el mapa de la organizacin de la memoria de
datos, notndose que los registros que comprenden el SFR se encuentran en el banco 0
128bytes, y otros 128bytes en el banco 15, mientras que los registros del GPR se
encuentran en la parte alta del primer banco y los 5 siguientes bancos.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Fig. No18. Organizacin de la memoria de datos

La memoria de programa es del tipo flash, cualidad que nos permite que esta memoria no
sea voltil, es decir que no se pierde su informacin cuando el chip no tiene energa, sin
ninguna dificultad se puede leer, escribir e incluso borrar; esta memoria tiene un ancho de
16 bits, en la figura No. 19, podemos apreciar el mapa de la memoria de programa y
adicionalmente, tambin se indica que la memoria de pila posee 31 niveles de
profundidad, el cual no debe ser rebasado porque causara un desbordamiento de la
memoria de pila, y podra conducir a una ejecucin de reset y concluyendo en una falla en
el proceso de ejecucin del programa cargado en el microcontrolador.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Fig. No. 19 Organizacin de la memoria de programa y pila

Finalmente tenemos la memoria no voltil EEPROM, la cual tiene una capacidad de 256
bytes y puede ser de lectura o escritura; es esta la memoria que se debe utilizar cuando
requiriramos que los datos no se pierdan des pues de un corte de energa elctrica;
adicionalmente esta memoria no es direccionada directamente, sino a travs del registro
de funciones especiales SFR, para su control y acceso se utilizan cuatro registros
fundamentales como son: EECON1, EECON2, EEDATA y EEADR, esta memoria fue

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

diseada una un alto nivel de recurrencia a los datos, pudiendo ser de lectura o escritura,
cuando grabamos un nuevo dato, este reemplaza al dado existente si lo haba.
El registro EEADR es el que contiene la direccin donde se grabarn los datos, cabe
recordar que es un mximo de 256 bytes (00-FF), mientras que el registro EEDATA es el
que contiene el dato a ser grabado, siendo este de un ancho de 8 bits. EECON1 es un
registro fsico de acceso para el control de la memoria, mientras que EECON2 es un
registro no fsico, este se usa slo y exclusivamente en el proceso de escritura. Los bits de
control RD y WR perteneciendo a lectura y escritura respectivamente, estos solamente
pueden ser activados por software y no desactivados o borrados por el usuarios,
nicamente son borrados por hardware una vez que se ha completado el proceso sea de
lectura o escritura. EECON1 como se mencion anteriormente se trata de un registro
fsico de 8 bits que se encuentra en la direccin FA6h; cada uno de sus se detalla a
continuacin:

bit 0

RD: Bit de control en operaciones de lectura, si su valor es 1 entonces habilita la

memoria para ser leda, y si es 0 entonces queda deshabilitada su lectura.

bit 1

WR: Bit de control en operaciones de escritura, si su valor es 1 entonces inicializa

la secuencia de escritura ya sea en la memoria EEPROM o en la memoria de programa, si


su valor es 0 entonces se dice que el ciclo de escritura ha terminado.

bit 2

WREN: Este es un bit que permite habilitar o deshabilitar un procedimiento de

escritura, si su valor es 1 habilita un proceso de escritura, pero si su valor es 0 deshabilita


cualquier intento de escritura.

LETRERO RGB BASADO EN LEDS

bit 3

UNIVERSIDAD POLITECNICA SALESIANA

WRERR: Este es un bit que nos indica errores en un ciclo de lectura; si su valor

es 1 entonces decimos que un ciclo de escritura ha terminado prematuramente sin


completarse, mientras que si su valor es 0 se dice que el ciclo de escritura ha sido
completado satisfactoriamente.

bit 4

FREE: Se trata de un bit que habilita el borrado de una fila de la memoria de

programa, si su valor es 1 borra una fila de la memoria de programa direccionada por


TBLPTR en un comando de escritura.

bit 5 : No est implementada, lase como cero.

bit 6

CFGS : Se trata de un bit de seleccin, si su valor es 1 entonces se habilita el

acceso a configuracin o a registro de calibracin, mientras que si su valor es 0 entonces


se tiene acceso a la memoria de programa o a la EEPROM.

bit 7

EEPGD: Se trata de un bit de seleccin, si su valor es 1 entonces se tiene acceso a

la memoria FLASH de programa, pero si su valor es 0 entonces el acceso es hacia la


memoria EEPROM.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

3.5 PUERTOS DE ENTRADA Y SALIDA


El microcontrolador PIC18F452 posee 5 puertos de comunicaciones bidireccionales, los
cuales se describe brevemente a continuacin:

Puerto A

El puerto A tiene 7 bits de ancho, es bidireccional, la configuracin de sus bits para que
sean de entrada o salida se debe realizar en un registro llamado TRISA, en donde cada bit
de este registro corresponde al bit fsico del puerto A, si a cada bit individualmente se le
carga con un valor lgico alto entonces el puerto se configura como de entrada, y se carga
con un valor lgico bajo entonces el puerto se configura como de salida. Cabe mencionar
que en una ejecucin de Power on Reset RA0, RA1, RA2, RA3 y RA5 son configuradas
como entradas analgicas, mientras que RA4 y RA6 son configuradas como ingresos
digitales

Puerto B

El puerto B tiene un ancho de 8 bits, es totalmente bidireccional, de igual manera esta


asociado con el registro TRISB para configurar cada pin si es de entrada o salida, cada
uno de los pines de este puerto consta internamente con resistencias de pull-up que
pueden ser habilitadas o no de acuerdo a la configuracin del bit RBPU activado a bajo
perteneciente al registro INTCON2, este bit activa o no todas las pull-up, cuando este
puerto se configura como salida automticamente todas las pull-up son deshabilitadas, y
cuando se produce un evento de power on reset tambin son deshabilitadas, y el puerto se
configura como ingresos digitales.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

Puerto C

El puerto C tiene un acho de 8 bits bidireccionales, asociado con el registro TRISC para
configurar cada uno de sus pines para que puedan actuar como entradas o salidas, este
puerto posee internamente compuertas del tipo schmitt trigger como buffer de entrada. En
una accin de power on reset todos los pines de este puerto se configuran como entradas
digitales.

Puerto D

Este puerto consta con un ancho de 8 bits bidireccionales, relacionados con el registro
TRISD para poder configurar cada uno de sus pines sean como entradas o salidas, este
puerto tambin posee entradas del tipo schmitt trigger en todos sus pines; este puerto
como funcin adicional tiene la capacidad de ser configurado como un puerto de
comunicaciones de forma paralela, a la cual se le conoce mas comnmente con el nombre
de puerto PSP. En una accin de power on reset todos los pines de este puerto son
configurados como ingresos digitales.

Puerto E

El puerto E est conformado nicamente por 3 bits que tambin son bidireccionales,
donde la direccin del flujo de datos se configura mediante el registro TRISE, estos pines
tambin poseen compuertas amplificadores del tipo schmitt trigger, en una accin de
power on reset estos tres pines son configurados como entradas analgicas por defecto.

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

3.6 Interfaz Serial SPI


La comunicacin en forma serial SPI es una de las dos posibles en este microcontrolador,
para realizar la comunicacin de este tipo solamente se requieren de tres pines ubicados
den el puerto C, como se describe a continuacin:
RC5/SDO

Salida de datos seriales

RC4/SDI

Entrada de datos seriales

RC6/SCK

Seal de reloj para sincronizacin

Se pueden transmitir datos con un ancho de 8 bits de una forma sincrona, este puerto de
comunicaciones est asociado con cuatro registros de control, los mismos que son:
SSPCON1

registro de control

SSPSTAT

registro de estado

SSPBUF

buffer de transmisin o recepcin

SSPSR

registro de cambios

En este capitulo III se ha detallado muy brevemente las principales funciones,


caractersticas, diseo, pines, y todo lo referente al microcontrolador utilizado, para
mayor informacin sobre este chip, se recomienda consultar su hoja de datos del
fabricante.

3.7 Lenguaje de programacin


En lo que refiere al lenguaje de programacin utilizado en este proyecto, se recurri a un
ensamblador avanzado y con un lenguaje muy amigable. El ensamblador utilizado para
programar al microcontrolador es el software Mikrobasic versin 5.02, este lenguaje es
muy parecido a la programacin en Visual Basic, por lo que se nos facilita un poco la

LETRERO RGB BASADO EN LEDS

UNIVERSIDAD POLITECNICA SALESIANA

elaboracin del programa a ser cargado al PIC, el cdigo exacto que sera cargado al
micro, se detallar con precisin en uno de los captulos posteriores.

3.8 Set de instrucciones


El set completo de instrucciones de este microcontrolador lo podemos encontrar en los
anexos, ese set est expresado en el lenguaje del microcontrolador como provee el
fabricante, este set de instrucciones no ser estudiado a profundidad debido a que no es el
objetivo del proyecto presentado.

3.9 Pantalla LCD


Una pantalla LCD es un dispositivo de interfaz humana-mquina, el cual es utilizada
saber con exactitud las rdenes que estamos enviando a ejecutarse, o tambin saber que se
est desarrollando. La pantalla utilizada para este proyecto es una de 16x2 caracteres,
haciendo referencia a 2 filas de 16 caracteres cada una, esta pantalla consta de 14 pines,
los mismos que se aprecian en la figura 20, donde claramente se identifican dos grupos de
seales, siendo estas de control y de datos. Hace poco tiempo a tras era indispensable la
utilizacin de un manejador de pantallas, pero actualmente con la tecnologa existente ya
no hace falta ese driver sino que directamente el microcontrolador puede manejar la
pantalla LCD.

Fig. No. 20 Pantalla LCD 16x2

También podría gustarte