You are on page 1of 5

Programando microcontroladores PIC con Protn

PROGRAMANDO MICROCONTROLADORES
PIC CON PROTN
PARTE 3: CONFIGURACIN DE LOS REGISTROS TRIS
Y PORT
Los registros TRIS y PORT tienen un nmero determinado de bits, por ejemplo, el
PORTB es un puerto bidireccional de 8 bits, el registro de direccin de datos
correspondiente es TRISB. Configurar estos registros en Protn es muy sencillo, como
se mencion anteriormente, se puede configurar un solo bit, o todos los bits de un
puerto especfico, teniendo en cuenta que un 0 hace que el bit funcione como salida
y que un 1 funcione como entrada, siempre y cuando el bit o los bits del puerto que
se est configurando sean bidireccionales.
Encabezado del Programa.El encabezado es la parte principal de nuestro programa, se debe indicar al compilador
bsicamente lo siguiente:

Microcontrolador a utilizar
Frecuencia a la que procesar el microcontrolador
Configuracin de registros
Declaracin de variables.

Para indicar al compilador el microcontrolador que se va a utilizar lo debemos hacer


con DEVICE, que tiene la siguiente sintaxis:
DEVICE nombre del dispositivo.
Descripcin.- Informa al compilador el Microcontrolador PIC que se va a utilizar.
En este caso en particular, vamos a utilizar el 16F84A que es un microcontrolador
bsico, por lo tanto la declaracin debe quedar as:
DEVICE 16F84A
Con esto, el compilador entiende, que el cdigo Hexadecimal que debe generar es
para el 16F84A. Recuerde, no todos los microcontroladores son iguales, existen varios,
por lo tanto hay que especificar cul se va a utilizar, si no se declara el
microcontrolador que se va a utilizar, el compilador de Protn IDE, generar el cdigo
para el PIC ms popular, que es justamente el que estamos utilizando (16F84A).

Ing. Giovanni Lafebre J. (Cel: 096376496)

M&M

Programando microcontroladores PIC con Protn


Los dispositivos soportados en la versin 3.2.5.5 de Protn IDE son los siguientes:
PIC de 12-bit OTP (One Time Programmable)
12C508, 12C509, 12C508A, 12C509A, 12CE518, 12CE519, 16C54, 16C54A, 16C54B,
16C55, 16C55A, 16C56, 16C56A,16CR56, 16C57, 16C57C, 16CR57A, 16CR57B,
16C58,16C58A, 16CR58A, 16CR58B, 16CR58C, RF509AF, RF509AG
PIC 12-bit FLASH (Regrabable)
10F200, 10F202, 10F204, 10F206, 12F508, 12F509, 16F54, 16F57
PIC 14-bit OTP (One Time Programmable)
12C671, 12C672, 12CE673, 12CE674, 16C505, 16C554, 16C554A, 16C558, 16C558A,
16C61, 16C62, 16C620, 16C620A, 16C621, 16C621A, 16C622, 16C622A, 16C62A
16C62B, 16C63, 16C63A, 16C64, 16C641, 16C642, 16C64A, 16C65, 16C65A, 16C65B,
16C66, 16C661, 16C662, 16C67, 16C67, 16C71, 16C710, 16C711, 16C712
16C715, 16C716, 16C71A, 16C72, 16C72A, 16C73, 16C73A, 16C73B, 16C73C, 16C74,
16C745, 16C74A, 16C7616C765, 16C77, 16C770, 16C771, 16C773, 16C774
16CE625, 16CR56, 16CR57A, 16CR57B, 16CR58A, 16CR58B, 16CR58C, 16CR620A
PIC 14-bit FLASH (Regrabable)
12F629, 12F635, 12F675, 12RF675, 12F683, 16C84, 16CR84, 16F627, 16F627A, 16F628,
16F628A, 16F630, 16F648A, 16F676, 16F684, 16F685, 16F688
16F688, 16F689, 16F690, 16F72, 16F73, 16F737, 16F74, 16F747, 16F76, 16F767, 16F77,
16F777, 16F785, 16F818, 16F819, 16F83, 16F84, 16F84A
16F87, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876,
16F876A, 16F877, 16F877A, 16F88, 16F913, 16F914, 16F916, 16F917
PIC 16-bit OTP (One Time Programmable)
18C242, 18C252, 18C442, 18C452, 18C658, 18C858
PIC 16-bit FLASH (Regrabable)
18F1220, 18F1320, 18F2220, 18F2320, 18F2331, 18F2410, 18F242, 18F2431, 18F2439,
18F248, 18F2455, 18F2510, 18F2515, 18F252, 18F2520, 18F2525, 18F2539
18F258, 18F2550, 18F2585, 18F2610, 18F2620, 18F2680, 18F4220, 18F4320, 18F4331,
18F4410, 18F442, 18F4431, 18F4439, 18F448, 18F4439, 18F4455, 18F4510, 18F4515,
18F452, 18F4520, 18F4525, 18F4539, 18F4550, 18F458, 18F4585, 18F4610, 18F4620,
18F4680, 18F6585, 18F6620, 18F6680, 18F6720, 18F8585, 18F8620, 18F8680, 18F8720
Una ves que se ha declarado el microcontrolador a utilizar, hay que indicarle al
compilador la frecuencia con la que procesar, esto es muy importante para que se
puedan generar adecuadamente los retardos y las instrucciones por software, si se
declara una frecuencia diferente a la que se utilizar en la realidad, el proceso ser
ms rpido o ms lento, y algunas de las instrucciones no funcionarn adecuadamente.
La forma de declarar la frecuencia a utilizar es utilizando XTAL, cuya sintaxis es la
siguiente:
XTAL Frecuencia del Oscilador.
Ing. Giovanni Lafebre J. (Cel: 096376496)

M&M

Programando microcontroladores PIC con Protn


Descripcin.- Ajusta ciertos aspectos del cdigo producido, por ejemplo, la frecuencia
del cristal, la velocidad en baudios para una transmisin serial, el retardo correcto para
las pausas (delayms y delayus), etc.
Hay que tener cuenta cual es el valor mximo al que puede procesar un
microcontrolador, las frecuencias soportadas por Protn IDE son
XTAL: 4, 8, 10, 12, 16, 20, or 24. Para PIC de 12
XTAL: 3, 4, 8, 10, 12, 14, 16, 20, or 24. Para PIC de 14
XTAL: 3, 4, 8, 10, 12, 14, 16, 20, 24, 25, 32, 33, or 40. Para PIC de 16 BIT.

BIT.
BIT.

Si no se declara la frecuencia, la frecuencia por defecto es 4Mhz.


El PIC 16F84A puede llegar a soportar hasta 20Mhz, es un dispositivo de 14 BIT, para
nuestros programas de inicio no necesitamos una frecuencia mayor de 4Mhz, por lo
tanto la declaracin quedara as:
XTAL 4
Primer Programa.El proceso de aprendizaje, demanda de mucha paciencia, si se quiere aprender bien,
hay que empezar por lo bsico y cada ves ir aumentando el grado de dificultad en los
proyectos y ejemplos que se realicen, as que el primer programa que haremos es
hacer parpadear un led conectado al pin RB0.
Por lo tanto, una ves que se ha declarado el microcontrolador y la frecuencia a la que
se va a procesar, se deben configurar los registros del microcontrolador, utilizaremos
nicamente el bit RB0 que corresponde al pin 7 del microcontrolador, obviamente
debe ser configurado como salida:
TRISB.0=0 configura el BIT RB0 utilizando un valor decimal.
Como se puede apreciar, se ha configurado nicamente el bit RB0 como salida, se lo
puede configurar utilizando un nmero binario, hexadecimal o un nmero decimal, en
el caso anterior, se est configurando con un valor decimal, si se lo quiere hacer con un
valor binario o hexadecimal, se deben utilizar los operadores % y $
TRISB=%0 configura el BIT RB0 utilizando un valor binario.
TRISB=$0 configura el BIT RB0 utilizando un valor hexadecimal.
Esto deja configurado el PUERTOB.0 como salida, as se puede asignar un valor lgico
al puerto para que pueda encender o apagar el led.
Para que se pueda apreciar el parpadeo del led, utilizaremos una instruccin de
retardo, DelayMs, su sintaxis es:
Ing. Giovanni Lafebre J. (Cel: 096376496)

M&M

Programando microcontroladores PIC con Protn


DelayMs longitud
Descripcin.- Genera un retardo de X milisegundos (ms). Los retardos no deben
excederse de 65535ms (65.535s)
El led se debe conectar de la siguiente forma: el ctodo a tierra y el nodo a una
resistencia de 220 que ir al RB0 del PIC, lo primero que se debe hacer es asignar un
valor de 0 o 1 al bit puerto, de esta forma cuando exista un 1 el led se
encender, se debe generar un retardo para verlo encendido y seguidamente se debe
asignar un 0 al bit para que el led se apague, tambin se debe generar un retardo
para que se pueda ver apagado el led.
PORTB.0=1
DelayMS 1000
PORTB.0=0
DelayMS 1000
Se necesitar de una etiqueta para que el programa se est repitiendo continuamente.
Etiquetas (Labels).Los nombres de las etiquetas pueden contener hasta 32 caracteres de longitud y
pueden contener cualquier valor alfanumrico, pero no deben empezar con un valor
numrico, no se pueden poner espacios en el nombre de la etiqueta y al final del
identificador se debe colocar los dos puntos : un ejemplo de una etiqueta es el
siguiente:
Etiqueta1:
Si se quiere separar dos palabras en una misma etiqueta, se puede utilizar la lnea baja:
Etiqueta_nueva1:
Una etiqueta no puede empezar con un nmero:
1etiqueta:
Si el nombre de la etiqueta sobrepasa los 32 caracteres, tiene un espacio en blanco o
empieza con un nmero el compilador nos indicar que hay un error de sintaxis en la
etiqueta.
Las etiquetas son utilizadas para poder acceder a una parte especfica del programa,
para ir a una etiqueta especfica se puede utilizar GOTO, cuya sintaxis es la siguiente:
GoTo Etiqueta

Ing. Giovanni Lafebre J. (Cel: 096376496)

M&M

Programando microcontroladores PIC con Protn


Descripcin.- Salta a una etiqueta definida y sigue la ejecucin desde ah.
De esta forma todo el programa quedar de la siguiente forma:
Device 16F84A 'PIC a utilizar
XTAL 4
'Frecuencia
TRISB.0=0 'Configuracin del bit RB0 como salida
inicio: 'etiqueta de inicio del programa
PORTB.0=1 ' se asigna al bit RB0 un "1" lgico
DelayMS 1000 'Retardo de 1000 ms (1s) para ver encendido el led
PORTB.0=0 ' se asigna al bit RB0 un "0" lgico
DelayMS 1000 'Retardo de 1000 ms (1s) para ver apagado el led
GoTo inicio 'salta a la etiqueta inicio: y se repite el programa infinitamente

El circuito que se debe utilizar para este ejemplo es el siguiente:

ADVERTENCIA: El microcontrolador no es una fuente de tensin, hay que referirse


siempre a las hojas de datos para ver cual es el nivel mximo de corriente que puede
suministrar, en el caso del 18F84A:
Alta corriente fuente/sumidero para utilizacin
directa de LED.
25ma mximo por pin en modo
sumidero
25ma mximo por pin en modo fuente

Ing. Giovanni Lafebre J. (Cel: 096376496)

M&M

You might also like