El
Pic 16F84a es un microcontrolador elaborado por MICROCHIP,
de gama media/baja, dispone de dos puertos de entrada y salida,
el PORTA de 5 bits, y el PORTB de 8 bits, en su memoria estara
el programa encargado de interpretar las ordenes enviadas
por el PC de control a traves del TWS433.

Los
pines 17,18,1,2,3, corresponden al PORTA.
Los pines 6,7,8,9,10,11,12,13, corresponden al PORTB.
Los pines 5 y 14 corresponden a Tierra y Corriente respectivamente.
El pin 4 hace las veces de RESET.
Los pines 15 y 16 son las entradas y salidas del Oscilador.
El
Oscilador indica a que velocidad trabajara el Micro controlador,
que en este caso será a 4 MHZ, internamente la velocidad
se divide entre 4 por lo que cada instrucción del programa
se ejecuta cada microsegundo.
Este
circuito realmente, no tiene un propósito especifico,
ya que según se programe se comportara de la forma
que nosotros queramos, puede ser un reloj, una alarma, un
videojuego, un servidor de paginas Web, etc. Para esta ocasión
este dispositivo se encargara de rececibir e interpretar los
comandos enviados en forma serial a través de el transmisor.
El
lenguaje elegido para programar estos dos PIC, ha sido PIC
BASIC PRO, ya que es un lenguaje sencillo el cual incluye
comandos y sentencias especificas para comunicación
en serie y otras capacidades del microcontrolador.
A
continuación explicaremos parte del código fuente
del programa utilizado en el PIC.
01
INCLUDE "modedefs.bas"
02
03 TRISB=%0000000
04 TRISA=%01000
05
06 D2 VAR BYTE
07 D2=0
08
09 Loop
10
11 SerIn PORTA.1,N9600,["C"],D2
12 PORTB=D2
13
14 GoTo Loop
15
16 End
La línea 01 incluye las definiciones de velocidad y
características de la trasmisión serie, que
serán utilizadas mas adelante.
La línea
03 indica que en el PORTB, sus ocho bits serán utilizados
como salidas.
La línea
04 indica que el PORTA, de sus cinco bits serán utilizados
como salidas cuatro,
y uno será usado como entrada de datos.
La línea
06 y 07 define e inicializa la variable utilizada, asignándole
el valor 0.
La línea
09 indica una etiqueta, a la cual se regresará para
crear un bucle infinito.
En la línea
11 mediante la sentencia SerIn asignamos a la variable D2,
el byte recibido desde el primer PIC, siempre que antes hayamos
recibido el byte que indica la llegada de un dato, en este
caso “C”.
Seguidamente
en la línea 12 asignamos el valor de la variable D2
al PORTB.
La línea
15 vuelve a la etiqueta loop creando el bucle infinito que
recibirá continuamente los datos del primer PIC.
La sentencia
SERIN, funciona de la siguiente forma:
SERIN X,Y,Z
X: Es el pin
del circuito por donde se ingresara la información
en serie.
Y: Son las características, como Velocidad, Paridad,
sincronía a la que saldrá la información.
Z: Es la variable donde se almacenara el byte recibido.
La sentencia
SerIn, solo recibe un byte cada vez , en nuestro caso solo
necesitamos recibir un byte por lo que no nos extenderemos
mas en la forma en la que trabaja esta sentencia.
|