PROGRAMACIÓN DE PIC`S EN MIKROBASIC, PARTE 1 DEL CURSO


      Si estás leyendo esto es porque te interesa el mundo de los micros, y quieres aprender a programar pic, la idea de crear este curso surgió debido a que en internet no consigues guías básicas que te permitan adquirir los conocimientos básicos para hacer tus propios proyectos, y las que hay no están desarrolladas de una manera conveniente para alguien cuyos conocimientos parten de 0, así que para que no pierdas más el tiempo venimos con esta sencilla introducción que va a ser la primera parte de una serie de cursos.

  • Materiales para la parte práctica del curso:
  • Protoboard
  • Programador de picks, Pickit2, K149, K150 u otro que soporte pics de media gama
  • Microcontrolador pic16f84a,
  •  Leds de colores, 
  • Resistencias 10 de 220Ω, 4 de 10KΩ, 
  • Condensadores cerámicos, 2 de 33pF, 
  • Cristales de 4, 10, 20 Mhz (también llamados osciladores),
  •  Cable para realizar las conexiones en el protoboard
  • Fuente de voltaje, 5vcc
  • Buzzer de 6V
  • Display 7 segmentos
  • Ic 74ls47
  • Pulsadores, 4


Programas necesarios para la parte práctica del curso:

Proteus 7.6 en adelante
MikroBasic Pro

Dependiendo del programador que usemos también necesitaremos un programa para cargar los datos al pic.

Contenido del curso:

1…………………………………. ¿Qué es un microcontrolador pic?
2…………………………………. Partes de un microcontrolador
3…………………………………. Microcontrolador pic16f84a
4…………………………………. Software Mikrobasic
5…………………………………. Creando mi primer programa en basic
6…………………………………. Simulando en Proteus
7…………………………………. Programando el pic16f84a
8…………………………………. Montaje del circuito

1. ¿Qué es un microcontrolador pic?


Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument.

El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller(controlador de interfaz periférico).

Los pic son un circuito integrado el cual podemos describir de forma no técnica como una computadora la cual puede leer, procesar y enviar datos, a esto se le llama un controlador, es el cerebro de un proceso, la manera en la que el pic interpreta los datos y ejecuta las ordenes y acciones han sido precargadas mediante su programación, por ello se les puede dar infinidad de usos y son por tal razón una herramienta sumamente valiosa.

2. Partes de un microcontrolador

Ya hemos dicho que un pic es una pequeña computadora, esta computadora ha sido reducida a la escala de un pequeño circuito integrado fácilmente comparable a otros comunes en aparatos del hogar, para conocer las partes de un pic es necesario ir a su hoja de datos (datasheet) en la cual encontramos toda la información necesaria para poder trabajar con el pic que elijamos, no obstante habrán constantes que siempre van a estar, como lo son:

fig:1.1
Definiendo cada una:

-Ram: Se usa para alojar datos de manera temporal, por ejemplo, el pic lee un 1 o un 0 o vaiors 1 y 0, se alojan en la ram esperando instrucción, de la capacidad de ram muchas veces va a depender la cantidad de instrucciones que se puedan ejecutar a la misma vez en un programa.
-Puertos I/O: Estos puertos In(entrada), Out(salida) van a ser donde se conectan nuestros sensores, pantallas, teclados, o cual sea la manera de recopilar datos del exterior y a su vez para indicar algo, un ejemplo puede ser tener en un puerto conectado un pulsador y al presionar ese pulsador se encienda un led conectado en otro puerto, en ese caso tendríamos la lectura del pulsador como entrada, el procesamiento de los datos y la instrucción de que a la salida se encienda un led en el puerto indicado.

fig:1.2



En la figura 1.2 observamos el esquema del pic16f84a, allí podemos ver que el pic cuenta con dos puertos, llamados puerto A y puerto B, donde observamos RA son pines del puerto A, y donde observamos RB son pines del puerto B, podemos ver que hay 5 pines RA así que entendemos que el puerto A solo tiene 5 pines, a esto llamaremos 5 bits, y a su vez el puerto B tiene 8 pines a lo que llamaremos un puerto de 8 bits.


-Rom: La rom es donde se almacena el programa que hemos desarrollado, está la escribiremos una sola vez, así que será llamada de solo lectura, ya que el pic lee lo que hay en ella para así ejecutar instrucciones de acuerdo a lo que hayamos definido.

-Perifericos: aquí podemos poner un asterisco, ya que no siempre van a necesitarse periféricos, pero para dar la información completa podemos describir a u n oscilador externo como un periférico, ya que hay pics que incluyen oscilador interno.

-Cpu: Como toda computadora el pic cuenta con su unidad central de procesamiento, en la cual procesa datos a velocidades muy rapidas, todo dependerá de las prestaciones del micro.

3. Microcontrolador pic16f84a

Ya hemos descrito algunas características del pic16f84a, como que cuenta con 2 puertos, pues bien en base a esto vamos a trabajar nuestra primera parte del curso, nuestro microcontrolador soporta un oscilador externo de hasta 20Mhz, lo vamos a alimentar con 5 voltios, para hacer su descripción tomaremos de nuevo su esquema.

El pic real tiene el mismo orden de pines que tiene en este esquema, nos ubicáremos siempre como en cualquier otro integrado de acuerdo al punto y la hendidura en la parte superior del pic, desde el punto comenzamos a contar los pines, así podemos decir que el pin uno, es el pin 2 del puerto A, por ejemplo.

Alimentaremos al pic en los puertos 5 y 14, tierra y voltaje respectivamente, es decir en vss tierra, y en vdd voltaje(5v), así lo veremos en el esquema de cualquier otro pic, a diferencia de que algunos pic, tienen 2 vss y 2 vdd que hay que alimentar respectivamente, los pines 15 y 16, son en los que va conectado el oscilador externo de la siguiente manera:

fig:1.3


En el pin 4 Master clear no haremos inca pie en esta ocasión, lo dejaremos para la segunda parte del curso. 

4. Software Mikrobasic



El software mikrobasic lo podemos descargar en alguna versión gratis por internet, es una interfaz muy sencilla, en la cual crearemos un nuevo proyecto, seleccionaremos el pic que vamos a usar y con muy simples configuraciones comenzaremos a escribir nuestro código.

5. Creando mi primer programa en basic

 Entendemos que basic es el lenguaje que usaremos para programar en mikrobasic, es muy simple y con ayuda de librerías nos podemos guiar aún mejor.

Una vez que hayamos abierto Mikrobasic y hayamos seleccionado hacer un nuevo proyecto, seguiremos todos los pasos hasta que nos aparezca la siguiente ventana:


Para entender lo que allí tenemos debemos saber que es declarar una variable, y definir que es una subrutina. 

Declarando una variable: En las variables se pueden almacenar datos de forma temporal, que pueden ser llamados y modificados cada vez que sea necesario.
Existen varios tipos de variables:


Las cuales definimos de la siguiente manera: DIM “variable” As “tipo de variable”
Ejemplo: DIM contar As bit. 

Subrutinas: una subrutina es un algoritmo que forma parte del programa, el cual solo resuelve una tarea en específico, un programa puede estar basado en una sola subrutina, ya que estas pueden ser muy completas, las subrutinas tienen el siguiente formato:

Subrutina:
Encenderled
Apagarled
End.
(Es muy importante siempre terminar las subrutinas con un end. Y el punto “.”)
 Ya teniendo este conocimiento básico podemos proceder a crear nuestro primer proyecto.

Lo que haremos será encender y apagar un led de manera intermitente.
En esta parte del curso es donde debes anotar lo que son los consejos básicos para realizar un programa, el primero es siempre realizar un diagrama de lo que se quiere hacer.

En este caso haremos lo siguiente:



El segundo paso es plantearnos como lograr eso:

Sabemos que en la electrónica digital existen altos y bajos (high low), 0 y 1 logicos, cuando es 0, no hay voltaje, cuando es 1 son 5 voltios. Así que si queremos un pic intermitente, tendremos un pic que se alterna entre 0 y 1 repetidas veces. Ya podemos pasar al programa.

En este programa no declararemos variables, solo haremos que nuestro led encienda y apague y se repita este proceso en un bucle infinito. Así que pasaremos de inmediato a nuestra subrutina, pero antes hay que acotar que nuestro pic debe reconocer entradas y salidas, es decir de donde tomara información y hacia donde enviara información, para esto se declaran los puertos como entradas o salidas.
Para declarar un puerto se escribe “tris” seguido del puerto, si es el a se escribe “trisa”, nuestro pic interpreta en esta declaración 1 como entrada y 0 como salida, es decir que si vamos a usar un led en el puerto a, necesitamos que el puerto a sea una  salida, entonces: trisa=0 
Por lo cual todos los pines del puerto a son salidas.
También lo podemos hacer de la siguiente manera en forma binaria, declarando cada bit. Trisa= 000 ya que el puerto a tiene 5 bits, o 5 pines.

Siguiendo con nuestro primer proyecto, debemos ubicar nuestro led en el circuito, vamos a encender el led cada vez que hayan 5 voltios en algún pin de nuestro pic, tomaremos el pin 17, que es el pin RA0, o mejor dicho el pin 0 del puerto A. para declarar un pin específicamente escribimos: “port” seguido de la letra que identifica el puerto ejmplo “porta” y para definir el pin, ponemos punto el pin que queremos, entonces “porta.0” de esta forma el programa reconoce el pin 17 del pic16f84a, pero aún no sabemos cómo vamos a hacer que haya intermitencia, pues será así, tendremos dos estados del pin 17, 1 y 0, encendido el led y apagado el led, y habrá un retraso de 400 milisegundos entre cada estado, ese retraso en milisegundos lo declaramos así: “delay_ms(tiempo en milisegundos)”. Ya teniendo esto sabemos cómo vamos a encender, pausar y apagar el led, solo falta hacer que se repita y para esto vamos simplemente a hacer que el programa regrese al inicio de la subrutina cada vez que termine, escribimos “goto” espacio la subrutina.
Nuestro programa debe quedar así:


Luego de esto vamos a Project, luego>> edit Project, allí verificamos que el pic sea el que vamos a usar en mcu name debe estar el 16f84a, en la selección de oscilador debe estar xt, que el tipo de oscilador de que vamos a usar, unos externo en este caso de 4Mhz, todo lo demás “disabled”, y en la frecuencia del reloj (mcu clock) ponemos 4Mhz. Click en Ok. 

Paso siguiente debemos guardar nuestro proyecto, elegimos en que carpeta queremos que se guarde y listo. Presionamos CTRL+F9 para compilar o hacemos click sobre los engranes que dicen build   Debe cargar y dar como resultado “successfully”. Lo que nos indica que no hay errores en el programa.



 Ahora para probar nuestro programa vamos a proteus a simularlo para descartar cualquier mal funcionamiento antes de grabar el programa en el pic.


6. Simulando en Proteus

Una vez que estemos en proteus procedemos a buscar nuestro cristal, un led, un condensador de 33pf y el pic 16f84a. Y hacemos nuestro circuito.
Una vez listo el circuito hacemos doble click sobre el pic y va a salir la siguiente ventana:




Configuramos como se ve aquí. Presionamos ok y corremos la simulación, debería funcionar a la perfección.


7. Programando el pic16f84a

El ejemplo de programación lo realizo con el programador K150 que sirve para muchos micros.



Es muy simple:

Selecciono el chip, pic16f84a, la imagen de arriba me dice como lo voy a posicionar en el programador, luego click el load y busco el archivo .hex, como lo hice en proteus, seguido click en fuses y configuro así:





Click en ok, conecto el programador a la pc, en donde dice comx selecciono el puerto com del programador suponiendo que ya está configurado y están los drivers, detectara el programador y el pic. 
Hago click en “Program” y me va a preguntar si quiero borrar el pic, acepto y enseguida se va a cargar el programa. Dara notificación de que se ha hecho y ya puedo sacar el pic y proceder al montaje.

8. Montaje del circuito




Esto ha sido todo, por esta primera entrega de nuestro curso de programación de Pic`s en Basic. Esperamos haya sido de su agrado, estaremos atentos a sus comentarios, en la segunda parte del curso estaremos trabajando con pantallas y teclados, y el pic16f877. 

Importante: verificar que la alimentación del pic son 5v, ya que los pics son muy sensibles y no tienen un rango de tolerancia, con 5,5v se pueden quemar.

Share:

0 comentarios