Está en la página 1de 3

PI C 16F84A.

Podramos definir la palabra microcontrolador como un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su
memoria.
Los microcontroladores PIC son fabricados por la empresa Microchip Technology Inc. y son de los circuitos integrados ms utilizados
en cualquiera de los mbitos tecnolgicos.
El microcontrolador PIC16F84A es uno de los PICs ms utilizados, debido a sus caractersticas que permiten su adaptacin en una
infinidad de circuitos y aplicaciones.
Dispone de dieciocho patas o pins, de los cuales trece se pueden configurar como entradas o salidas de datos.
Una memoria FLASH de 1000 x 14 bits se encarga de almacenar el programa que tendr que ejecutar y otras dos memorias, EEPROM
de 64 x 8 bits y RAM de 67 x 8 bits se encargan de guardar los datos y variables.
Para determinar la velocidad a la que debe trabajar, el PIC16F84A requiere de un circuito oscilador externo, que puede enviar una
frecuencia mxima de 20MHz que ser dividida entre cuatro por la frecuencia interna del reloj del PIC.
De esta manera, con una frecuencia externa de 4MHz, el microcontrolador ejecuta mil instrucciones por segundo.
Una de las caractersticas ms importantes de este integrado, es la capacidad que tiene de atender interrupciones. Esto quiere decir que
es capaz de, mientras est reproduciendo un programa, ejecutar una subrutina y volver otra vez al programa que estaba reproduciendo.
Un claro ejemplo sera el programa de una mquina de refrescos. En el display aparece de un lado al otro un mensaje de bienvenida.
Pulsamos el botn de la bebida que queremos, aparece el precio de sta, y al dejar de pulsar el botn, contina desplazndose el
mensaje de bienvenida.
Conocidas las caractersticas ms importantes del microcontrolador PIC16F84A, podemos profundizar de una manera ms amplia en
los campos que ms nos interesan.
Diseo de un autmata programable, por Ivn Antolnez y Javi Castaeda, curso 07/08.

Terminales.


Figura 1: Terminales del PIC 16F84A.
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Corresponden al PUERTO A. Son 5 lneas bidireccionales definidas por programacin. El
pin RA4/TOCKI, como entrada, se puede programar como entrada normal o como entrada del contador/temporizador TMR0.
Pata 4 (MCLR/ Vpp): Esta pata tiene dos aplicaciones. Por un lado es la entrada de reset. Cuando no le llega tensin el PIC hace un
reset, y cuando su valor de tensin es el mismo que el de VDD, el PIC funciona correctamente.
Por otra parte es la pata que habilita la tensin mientras se programa el PIC. Patas 5 y 14 (VSS y VDD): Son respectivamente las patas
de masa y alimentacin del PIC. La tensin de alimentacin del PIC est comprendida entre 2 y 5,5 voltios.
Patas 6, 7, 8, 9, 10, 11, 12 y 13 (RB0-RB7): Estas patas corresponden al PUERTO B. Son 8 lneas bidireccionales definidas por
programacin. RB0
puede programarse como entrada de interrupciones externas. Los pines de RB4 a RB7 se pueden programar para responder a
interrupciones por cambio
de estado. Los pines RB6 y RB7, a la hora de programar el PIC, se corresponden con las lneas de entrada de reloj y de datos
respectivamente.
Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la entrada externa de reloj y salida de oscilador al cristal
respectivamente. A travs de ellos regularemos la velocidad a la que queremos que trabaje el PIC.

Tutorial MikroBasic
Primeramente abrimos el archivo y creamos un nuevo proyecto, y seguimos las intrucciones (entre algunos seleccionamos el PIC a
utilizar, la fecuencia del reloj del pic, donde se guardara y si quieres utilizar todas las librerias que tienes disponible en mikrobasic).

Despues de esto consistira en empezar a codificar, por default Mikrobasic nos muestra lo siguiente:



Basico

Lo basico que debe de contener cualquier codigo de mikroBasic es el siguiente:


De esto lo obligatorio para que nos compile es lo de program y lo relacionado al main (La imagen que les mostre anteriormente).
Continuando:
'.- Para los comentarios. No se permiten comentarios de mas de una linea.

delay_ms(Tiempo).- Espera un tiempo en milisegundos antes de continuar con lo siguiente

Los nombres de nuestras variables, procedimientos, funciones, constantes, etc pueden contener letras desde la a hasta z y desde la
A hasta Z, el guin bajo (_) y los dgitos del 0 al 9, el punto . no puede ser usado para estos. El primer carcter no puede ser
un digito. MikroBasic no distinguen entre mayusculas y minisculas, es decir que Total, total y TOTAL son nombres de la misma
variable, y podemos usar cualquiera de ellos por igual.
Variables: Al igual que en otros dialectos Basic, las variables son objetos cuyo valor puede cambiar con la ejecucin del programa.
Deben declararse con dim antes de ser usadas. La sintaxis de dim es:
dim Variables as tipodelasvariables

La lista de tipos son incluyen Byte (8 bits, con valores de 0 a 255), Word (2 bytes, o 16 bits, con valores de 0 a 65535) y Longint (con
valores desde -2147483648 a 2147483647). No son los nicos, la lista completa de tipos se puede consultar en la documentacin del
compilador.

Algunos ejemplos validos de dim son:
dim i, j, k as byte
dim contar, temp as word
dim cadena as longint[100]
Bucles o Ciclos

En MikroBasic se tienen solamente los siguientes:

Ciclo For.- En cada ciclo variable se incrementa en 1 si step no esta presente ya que este nos indica cuanto sera el incremento.
for variable = valor_inicial to valor_final [step incremento]
Instrucciones a repetir
next variable
Ciclo While.- Como la expresin se evala al comenzar el ciclo, puede ocurrir que si al comenzar el programa la expresin sea falsa las
instrucciones a repetir no se ejecuten nunca.
while expresin
Instrucciones a repetir
wend

Si deseas hacer un ciclo infinito en expresion le pones TRUE

Ciclo DO LOOP (Do - While): En este caso, las instrucciones a repetir se repiten mientras la expresin sea verdadera. Al evaluarse
al final del ciclo, el grupo de instrucciones a repetir se ejecutaran al menos una vez.
do
Instrucciones a repetir
loop until expresin

Cualquiera es estas tres formas de crear un bucle puede ser interrumpida si dentro de las instrucciones a repetir se coloca la instruccin
break. Al ejecutarla, el control del programa salta a la sentencia escrita inmediatamente a continuacin de next, wend o loop until, segn
el caso.

Elecciones (Decisiones)

Tenemos solamente el if o if-else o el switch (conocido en mikrobasic como case):

If.- Todas las instrucciones tienen que ir despues del then para que se ejecutan, la forma de declararlo es
if expresin then
instrucciones
end if
If-Else.- Es lo mismo que un if solo que le agregamos else despues del then.
if expresin then
instrucciones
else
instrucciones
end if
Select-Case.- Consiste en una expresin y una lista de sus posibles valores. Las instrucciones a continuacin del case else, si existen, se
ejecutan en caso de que selector tome un valor para el que no exista una rama case disponible.

select case selector
case valor_1
instrucciones_1
...
case valor_n
instrucciones_n
case else
instrucciones por si no se cumple ninguno
end select
Saltos
Son los que nos permiten saltos incondicionales:
GOTO.- Generalmente desaconsejada, esta instruccin nos permite transferir el control a cualquier punto dentro del programa. A pesar
de estar demostrado que es posible construir cualquier programa sin utilizar nunca esta instruccin, se utiliza con cierta frecuencia. El
control del programa se transfiere a la lnea que tenga la etiqueta utilizada en el goto:
for i = 0 to n
for j = 0 to m
...
if desastre
goto Error
end if
...
next j
next i
.
Error: ' cdigo para manejar el error. . .
GOSUB RETURN: Funciona de manera similar a GOTO, pero con la ventaja de que el control del programa regresa a la instruccin
despues de GOSUB luego de ser ejecutado el return. Esto la hace ideal para crear subrutinas que pueden ser llamadas varias veces y/o
desde distintos puntos del programa

gosub mi_rutina
instrucciones
...
mi_rutina: cdigo de la subrutina
...
Return