You are on page 1of 9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

tutorial: programacin bsica en lenguaje ensamblador para los


sistemas 16F84/F628/F88, controlando leds, microswitches y un
relevador.
En este tutorial, se proporciona informacin bsica de programacin, as como ejemplos sencillos para controlar los dispositivos bsicos de los
sistemas embebidos (embedded systems), como son los leds, los microswitches, y los relevadores. Los ejemplos se acompaan los diagramas
electrnicos y programas escritos en lenguaje ensamblador .
Los ejercicios estn desarrollados para los sistemas EDUPIC y Sistema EB88, los cuales cuentan con 8 leds, 4 microswitches y un relevador,
controlados por los microcontroladores 16F84/F628/F88 de Microchip, pero pueden ser fcilmente modificados para adaptarse a cualquier otro
sistema. En la siguiente figura se muestra un diagrama general de control de los dispositivos sealados.
NOTA IMPORTANTE: Los microswitches SW1...SW4, en la posicin "ON" (contactos cerrados) generan un voltaje bajo, es decir, un 0
lgico y en la posicin "OFF" (contactos abiertos) generan un voltaje alto, es decir un 1 lgico. Vea los diagramas electrnicos de los
microswitches ms abajo en este tutorial.

http://www.puntoflotante.net/progbasica.htm

1/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

http://www.puntoflotante.net/progbasica.htm

2/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

ASIGNACION DE PINES EN LOS MICROCONTROLADORES


Los microcontroladores mencionados tienen la siguiente asignacin de pines en sus circuitos. Observe que en el 16F84 la funcin de los pines
es nica, mientras el 16F628 tiene asignadas varias posibles funciones en cada pin de sus puertos A y B. El 16F88, que es la versin ms
reciente, asigna, adicionalmente a las funciones del 16F628, 7 canales de conversin A/D, y varias seales para el puerto sncrono SSP.

http://www.puntoflotante.net/progbasica.htm

3/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

LOS REGISTROS ESPECIALES:


Para aprender programacin bsica y el manejo de los puertos de entrada/salida, usaremos en los programas de prueba solamente los 9 registros
especiales mostrados en la tabla de abajo, que son comunes a los 3 microcontroladores antes mencionados. De esos 9, los 7 marcados con color
azul aguamarina son los ms utilizados en aplicaciones simples.
El direccionamiento de los registros est organizado por bancos grupos de registros: el 16F84 cuenta con 2 bancos y un total de 15 registros
especiales; el 16F628 contiene 4 bancos y 34 registros especiales; el 16F88 contiene 4 bancos y 50 registros especiales. Algunos de los
registros pueden ser accesados desde varios bancos.
En todos los programas, es indispensable incluir los archivos p16f628.inc p16f88.inc en donde se establecen las equivalencias entre los
nombres de los registros y bits y sus direcciones.
BANCO 0
TMRO
PCL
STATUS
http://www.puntoflotante.net/progbasica.htm

DIRECCION
01H
02H
03H

BANCO 1
OPTION
PCL
STATUS

DIRECCION
81H
82H
83H
4/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

FSR
PORTA
PORTB

04H
05H
06H

FSR
TRISA
TRISB

84H
85H
86H

PUERTOS DIGITALES
Los sistemas 16F84/F628/F88 cuentan con dos puertos digitales, el puerto A, con 5 bits disponibles (RA0...RA4) y el puerto B con 8 bits
disponibles (RB0...RB7). Ambos puertos son bidireccionales, sto es, pueden programarse como entradas o como salidas, de acuerdo a unos
registros de direccin de datos, llamados TRISA, en el caso del puerto A y TRISB para el puerto B. Para programar un bit como entrada, se
debe escribir un "1" y para programarlo como salida, un "0" en los bits correspondientes de estos registros.
EJEMPLO DE PROGRAMACION DEL REGISTRO TRISA: EL BIT RA0 DEL PUERTO 'A' QUEDA PROGRAMADO COMO SALIDA,
Y LOS BITS RA1...RA4 QUEDAN PROGRAMADOS COMO ENTRADAS.
0

0 (RA0)

La asignacin de cada uno de los bits de los puertos A y B, se muestra en la siguiente tabla. En los sistemas EDUPIC y EVOLUPIC, se
conectan RA1...RA4, (programados como entradas) a 4 microswitches y RB0...RB7 (programados como salidas) para activar 8 LEDS, as
como un relevador conectado al pin RA0 (programado como salida).
PUERTO A
RA0 ACTIVA/DESACTIVA EL RELEVADOR
RA1 LEE EL MICROSWTICH SW1
RA2 LEE EL MICROSWITCH SW2
RA3 LEE EL MICROSWITCH SW3
RA4 LEE EL MICROSWITCH SW4

http://www.puntoflotante.net/progbasica.htm

PUERTO B
RB0 ACTIVA LED B0
RB1 ACTIVA LED B1
RB2 ACTIVA LED B2
RB3 ACTIVA LED B3
RB4 ACTIVA LED B4
RB5 ACTIVA LED B5
RB6 ACTIVA LED B6
RB7 ACTIVA LED B7

5/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

EL REGISTRO STATUS
El registro llamado STATUS, se encuentra en la direccin 03H y contiene varias banderas de importancia para el manejo de los programas en
el 16F84/F628/F88.
IRP

RP1

RP0

TO

PD

DC

Bit 7

C
Bit 0

los bits 0, 1 y 2 son el CARRY, HALF CARRY Y ZERO, y son banderas que se activan, con un valor igual a 1, cuando el resultado
de una operacin o instruccin genera un carry, un half carry o un valor igual a cero respectivamente.

El bit 3 se llama POWER DOWN y su valor es de 1 despus de una instruccin CLRWDT (CLEAR WATCH DOG TIMER) bien
despus de encender el sistema (POWER UP). El valor es de 0 despus de ejecutar la instruccin SLEEP.

El bit 4, se llama TIMER OUT tendr un valor de 1 despus de POWER UP, CLRWDT SLEEP y tendr un valor de 0 si el
WDT (WATCH DOG TIMER) activa su seal de alarma.

Los bits 5 y 6 RP0, RP1 seleccionan el banco de memoria que habr de accesarse. Si RP0 =0, RP1=0 se selecciona el banco 0. Si
RP0=1, RP1=0, banco 1; RP0=0, RP1=1, banco 2; RP0=1, RP1=1, banco 3.

El bit IRP se usa para direccionamiento indirecto, junto con el registro FSR, para seleccionar el banco de registros en donde se
encuentra la memoria de datos que se quiere accesar. Si IRP=0, se seleccionan los bancos 0 y 1; si IRP=1,se seleccionan los bancos 2 y
3

Plantillas para programar en lenguaje ensamblador los sistemas EDUPIC y EVOLUPIC 16F626/F88. Use estas plantillas para desarrollar sus
propios programas.
PLANTILLAF628.asm.
Para programar con 16F628
PLANTILLAF88TINY.asm
Para EVOLUPIC Bootloader 16F88. Archivo nico.
Para EVOLUPIC Bootloader 16F88. Idntica funcin que el
PLANTILLAF88TINY2.asm, KEY.inc
archivo anterior, pero utilizando un archivo auxiliar (KEY.inc)

DIAGRAMAS ELECTRONICOS DE CONEXIONES A LEDS Y MICROSWITCHES:


http://www.puntoflotante.net/progbasica.htm

6/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

Una vez inicializados los puertos de la forma mostrada, puede escribirse en los LEDS o leer el estado de los microswitches, considerando los
diagramas electrnicos que se muestran enseguida. El objetivo de los LEDS y los microswitches es dar al usuario la posibilidad de realizar
emulaciones de sensores digitales y salidas para la activacin de actuadores.

DIAGRAMA ELECTRONICO DE LA CONEXION AL RELEVADOR


Mediante el manejo del bit RA0 del puerto A, el procesador 16F84/F628/F88 puede activar un relevador. Los datos nominales de este
relevador son : un polo un tiro, activacin con 9 volts DC y contactos de 127 VCA @ 10 Amperes. Este relevador puede ser usado
como actuador para activar dispositivos externos como focos, vlvulas, solenoides, motores, etc.

http://www.puntoflotante.net/progbasica.htm

7/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

EJEMPLOS SIMPLES DE PROGRAMACION:


De la tabla de abajo, elija el programa que desee bajar. Recuerde que los leds, microswitches y relevador deben de estar conectados siguiendo
los diagramas electrnicos mostrados (que son los usados por EDUPIC y EVOLUPIC). Puede ensamblar estos archivos con el software
MPLAB IDE cargar directamente el ejecutable .hex en los sistemas EDUPIC 16F84/F628/F88, mediante la aplicacin WINPIC TINY (en
el caso del EVOLUPIC Bootloader 16F88). Por favor siga el instructivo del manual del sistema. Use las plantillas resaltadas en color azul
aguamarina, para desarrollar sus nuevos programas:

EDUPIC 16F84

contador.asm
contador.hex

EDUPIC 16F628
EVOLUPIC 16F628
plantillaF628.asm

contadorF628.asm
contadorF628.hex

http://www.puntoflotante.net/progbasica.htm

Sistema EB88
plantillaF88TINY.asm
plantillaF88TINY2.asm
KEY.inc
contadorF88TINY.asm
contadorF88TINY.hex

DESCRIPCION Y LINK
Plantillas para 16F628/F88. Archivo nico
Plantilla para EVOLUPIC Boot. 16F88, con archivo auxiliar KEY.inc
Archivo auxiliar para usarse con la plantilla anterior
Contador binario en los leds
8/9

13/10/2014

PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT

demof84.asm
demof84.hex
microsw.asm
microsw.hex

demof628.asm
demof628.hex
microswF628.asm
microswF628.hex

demof88TINY.asm
demof88TINY.hex
microswF88TINY.asm
microswF88TINY.hex
LEDSMICROTINY.asm
LEDSMICROTINY.hex
LEDSCORRIMIE2.asm LEDSCORR2TINY.asm
LEDSCORRIMIE2.hex LEDSCORR2TINY2.hex

http://www.puntoflotante.net/progbasica.htm

Corrimiento en los leds


Manejo de leds, microswitches y relevador
Manejo de claves en microswitches y accin LEDS
Uso del simulador en MPLAB para el manejo de leds y microswitches

9/9

You might also like