0% encontró este documento útil (0 votos)
42 vistas59 páginas

PCBA28 Manual

Cargado por

Miguel Irala
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
42 vistas59 páginas

PCBA28 Manual

Cargado por

Miguel Irala
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 59

PCB-A28

Kit de Desarrollo para Microcontroladores PIC

Manual de Ensamblado
y Primeros Pasos
PCB-A28

PCB-A28 KIT DE DESARROLLO PARA MICROCONTROLADORES PIC

Manual de Ensamblado y Primeros


Pasos

© ROSO Electric Supply


Teléfono (0241) 8426384 • Cel (0414) 4266490
www.roso-control.com • [email protected]
TAABBLLAA DDEE CCO
ONNTTE
ENNIID
DOO

C AP Í TU L O 1

Introducción 1 Corrigiendo errores en el programa 37

Contenido del CD-ROM 2 Utilizando los recursos del IDE. El Debugger 38

Requerimientos mínimos del computador 2 Utilizando los recursos del IDE. El osciloscopio 39

Características del sistema SDM-ATM-28-B 2

Características del microcontrolador ATOM 3 C AP Í TU L O 6

Manejo de Entradas y Salidas 42

C AP Í TU L O 2 Función de los terminales del microcontrolador

Instalación del software 5 ATOM 43

Configuración del entorno de programación 5 Manejando las salidas digitales 44

Leyendo las entradas digitales 45

C AP Í TU L O 3 Entradas analógicas: El Conversor A/D 46

Identificando los componentes del sistema 7

Esquema Electrónico 9 C AP Í TU L O 7

Listado de componentes 10 Interrupciones y otros recursos avanzados 48

Fuentes de interrupción del ATOM 48

C AP Í TU L O 4 Definiciones importantes 49

Ensamblado Paso a Paso 13 Uso de la interrupción externa EXTINT 49

Herramientas Requeridas 13 Interrupción por desbordamiento del Timer 51

Recomendaciones Generales 13 La PWM por hardware 52

Ensamblado del Kit PCB-A28 14 Combinando varias funciones 53

Instalación de los condensadores 14 Consideraciones finales 54

Instalación de los diodos 16 Solución a problemas frecuentes 55

Instalación de las resistencias 18 Sitios de interés en la red 56

Instalación de las bases para circuito integrado 19

Instalación del pulsador y diodos LED’s 21

Instalación de los condensadores electrolíticos

y resonador 22

Colocando los últimos elementos 23

Armado del cable de extensión serial DB9 28

C AP Í TU L O 5

Primeros pasos 32

Funcionamiento del protoboard 33

Localizando el puerto serial de conexión para el

ATOM 34

Vamos a escribir nuestro primer programa! 36


1
C
CAAPPIITTUULLO
O

I NNTTRRO
ODDU
UCCC
CIIÓ
ÓNN

¡Gracias por elegir al Kit PCB-A28 como su unidad de desarrollo!

Este kit contiene todos los elementos requeridos para que usted viva la experiencia de
construir su propia unidad de desarrollo basada en microcontroladores PIC. Todos los
materiales utilizados han sido cuidadosamente seleccionados para permitirle ensamblar una
unidad de experimentación compacta, de bajo costo pero de muy alta calidad que le
permitirá explorar el mundo de los microcontroladores de una forma fácil y rápida utilizando
al máximo el poder de estos dispositivos de alta tecnología. Usted aprenderá a utilizar al
microcontrolador PIC 16F876 “ATOM” para desarrollar sus propias aplicaciones, escribirá
programas para realizar labores complejas en tiempo record y observará como, a través de
ejemplos, podrá incorporar al microcontrolador PIC 16F876 “ATOM” en múltiples tareas, ya
sea en casa, oficina, automóvil y/o aplicaciones industriales.

El propósito de este manual de usuario es:


• Presentar las características resaltantes del kit PCB-A28 y del microcontrolador PIC
16F876 “ATOM”.
• Suministrarle una guía de instalación de los componentes junto a una serie de
recomendaciones que le permitirán ensamblar el sistema PCB-A28
• Guiarlo durante el proceso de instalación del software de programación del
microcontrolador Basic ATOM.
• Suministrarle un conjunto de ejemplos e instrucciones de utilización que harán de su
experiencia con el kit PCB-A28 todo un éxito.

Antes de continuar, tomaremos un tiempo para revisar el contenido del material que
acompaña a su sistema:

• 01 Tarjeta impresa PCB-A28.


• 01 Microcontrolador PIC 16F876 “ATOM”.
• 01 Caja de componentes electrónico contentiva de:
o (1) Altavoz Piezoeléctrico “Buzzer” AC 3-5V 85DB @ 20 ma 6.5mm PP.
o (2) Condensador de 0.1uF @ 100 Voltios tipo X7R.
o (6) Condensador de Tántalo 1 uf @ 35 Voltios tipo SMD .
o (1) Condensador Electrolítico de 47uF @ 25 VDC.
o (1) Condensador Electrolítico de 220uF @ 10 VDC.
o (1) Conector DB9 Hembra.
o (1) Tira de 36 terminales de conexión al protoboard 0.1".
o (1) Diodo de alta velocidad de recuperación modelo 1N4148.
o (1) Diodo Rectificador 1N4001 o similar (1 Amp, 400 Voltios).
o (1) Jack para transformador de pared de 2.1 mm.
o (1) Diodo LED Bicolor 5mm (T 1 ¾).
o (4) Diodos LED’s color rojo 5 mm (T 1 ¾).
o (1) Resistencia 4.7 KOHM 1/4 W.
o (1) Resistencia 10 KOHM 1/4 W.
o (1) Resistencia 1.0 KOHM 1/4 W.
o (4) Resistencias 470 OHM 1/4 W.
o (1) Pulsador tipo SPST N.A de 6 mm cuatro terminales.
o (1) Regulador de voltaje LM7805.
o (1) Convertidor RS232 – TTL MAX232CPE o similar empaque DIP 0.3” 16 Pines.
o (1) Base para circuito integrado de tipo DIP 28 pines de 0.3" de ancho.
o (1) Base para circuito integrado de tipo DIP 16 pines de 0.3" de ancho.
o (1) Resonador cerámico de 20 Mhz con condensadores.
o (1) Conector DB9 Hembra para cable de extensión.
o (1) Conector DB9 Macho para cable de extensión.
o (1) Metro de cable multi-conductor.
o (2) Acoples DB9 hembra y macho para cable de extensión DB9.
o (1) Mini CD con programas de instalación, manuales y ejemplos.

Contenido del CDROM.


• Programa de instalación del Kit PCB-A28.
• Manual de Ensamblado y Primeros Pasos con el Kit PCB-A28.
• Instalador del software de compilación de Basic Micro para el
ATOM.
• Manual de sintaxis del Microcontrolador Basic ATOM (Inglés).
• Especificaciones del PIC16F876 (Microchip) en inglés.
• Códigos de ejemplo y diagramas esquemáticos (electrónicos).

Requerimientos mínimos del computador.


• Procesador Pentium 266 Mhz o superior con Windows 9x, 2000,
NT4 o XP.
• Unidad de CDROM.
• Puerto COM de comunicaciones. Si el computador no tiene un
puerto serial disponible, puede usarse un adaptador USB/Serial.
• Conexión a Internet (opcional).

Características del sistema PCB-A28.


Una vez ensamblado el sistema, el kit PCB-A28 constituye una herramienta poderosa, sólida
y bien construida, pensada para resistir un trato duro y aún así brindar un acabado
profesional; ya sea instalada en un protoboard durante el proceso de aprendizaje o como
parte integral de una aplicación final desarrollada por usted.

El circuito impreso suministrado para el armado del kit es de muy alta calidad, entre sus
características destacan:
• Elaborado en base a láminas de FR-4 de 0.062”, con 1.25 onzas de cobre (grosor del
cobre de 0.0017 “).
• Capa de protección “Solder Mask” estándar color verde LPI en ambas capas.
• Silkscreen color blanco en la cara de arriba de la tarjeta para permitir la ubicación
rápida y clara de los componentes.
• El acabado de la placa es el estándar industrial de SMOBC con “pads” de soldadura
libres de plomo de acuerdo a la directiva ROHS.
• Constante dieléctrica de la lámina de FR-4 comprendida entre 4.2 y 5.0.
• Temperatura máxima de operación de 125 ºC.

2
• Dimensiones reducidas de 2.460”x 1.930”, adecuadas para facilitar su utilización en
diferentes aplicaciones.
• Espacio adecuadamente distribuido para facilitar la instalación de todos los
componentes.

Al concluir el armado del Kit PCB-A28 usted tendrá un sistema de desarrollo completo, con
el cual podrá programar al poderoso microcontrolador PIC 16F876 ATOM sin requerir un
programador externo y sin utilizar los complicados entornos como el MPLAB® o similares.
Algunas de las características del sistema ya ensamblado se mencionan a continuación:

• Posee 16 terminales de E/S digitales disponibles, etiquetados con los nombres P00 a
P15. Estos corresponden con los terminales RB0 ..RB7 y RC0..RC7 del PIC 16F876.
• Tiene 4 terminales de E/S digitales o analógicas etiquetadas con los nombres AX0 a
AX3. Estos pines se corresponden con los terminales RA0..RA3 del PIC16F876.
• Una (01) salida analógica con altavoz piezoeléctrico preconectado al pin P03.
• Cuatro (04) salidas digitales con LED’s preconectados a los terminales P04 a P07.
• Interfaz de programación lista para conectar directamente al PC.
• Un Microcontrolador PIC 16F876 “ATOM” con su resonador de 20 Mhz incluido, listo
para ser programado y comenzar a trabajar.
• Fuente de poder y regulador de 5 Vdc en base al regulador lineal modelo LM7805.
• Pulsador de reset para reiniciar al microcontrolador.
• LED para indicar la alimentación del sistema.
• LED para indicar la actividad del puerto serial durante la escritura y depuración (debug)
de los programas.
• Se conecta de forma sencilla a cualquier protoboard permitiéndole realizar un sin fin de
experiencias.
• Puede programar al microcontrolador, luego retirarlo y colocarlo en la aplicación final.
De esta forma el PCB-A28 puede ser empleado para el desarrollo de aplicaciones
comerciales, eliminando la necesidad de adquirir un hardware programador y su
correspondiente software.
• Incluye software e IDE de programación en lenguaje MBASIC totalmente gratuito y
original, el cual, tiene un precio de aprox. US$250.

Características del microcontrolador Basic ATOM.

El microcontrolador PIC 16F876 “ATOM” posee la particularidad de programarse en un


lenguaje de alto nivel con instrucciones similares al BASIC del PC. El tiempo requerido para
aprender a programar y utilizar las características de este microcontrolador es
considerablemente menor que otros lenguajes como el “C” o el terrible ensamblador. La
programación del PIC 16F876 “ATOM” permite llegar a niveles tan detallados como el
lenguaje ensamblador, pudiendo manipularse directamente el contenido de los registros, e
incluso de los bits de estos, dejando entender a cabalidad el funcionamiento de los recursos
de hardware sin acudir a la abstracción que brinda el lenguaje BASIC de alto nivel. Esto
hace al microcontrolador PIC 16F876 “ATOM” un dispositivo útil para todos, ya sean
principiantes o expertos.

El ATOM 28 IC-B incluido en el sistema PCB-A28, está basado en el muy utilizado


microcontrolador PIC 16F876, probado como uno de los PIC’s más robustos y destacados de
su gama. Así, al utilizar un ATOM usted efectivamente está programando un PIC y tiene
acceso a todos los recursos que éste brinda. Puede aprovechar sus conocimientos sobre

3
estos fabulosos microcontroladores para sacarle el máximo beneficio a su ATOM y llevar sus
aplicaciones a un nivel superior.

Características importantes del Microcontrolador PIC 16F876 “ATOM”.

Capacidades del Hardware:


• 384 bytes de memoria RAM.
• 8 Kwords de memoria de programa Flash re-programable.
• 256 bytes de EEPROM.
• Convertidor Analógico/Digital de 4 canales y 10 bits de resolución.
• Un (01) USART (comunicación serial).
• Dos (02) módulos CCP (Capture/Compare/PWM).
• Tres (03) Timers o temporizadores (TMR0, TMR1 y TMR2).
• Hasta ocho (08) posibles fuentes de interrupción.

Capacidades del Software:


• Programado en lenguaje BASIC de alto nivel.
• Lenguaje de programación y compilador gratuito (incluido en CD y actualizable vía
Internet a través del sitio web www.basicmicro.com).
• Comunicación serial RS232 por software (en cualquier pin).
• PWM por software (en cualquier pin).
• Generación de múltiples tonos y sonidos de alarma.
• Manejo directo de pantallas LCD alfanuméricas.
• Medición de pulsos y frecuencia.
• Manejo de los protocolos de comunicación serial:
9 1-Wire ® de Dallas Semiconductors.
9 I2C de Phillips Semiconductors.
9 3-Wire de Dallas-Maxim.
9 SPI de Motorola.
• Aritmética en punto flotante, única en microcontroladores de 8 bits.
• Amigable IDE de programación con depuración (debug) en línea. Permite ver el
contenido de los registros y variables del microcontrolador mientras se ejecuta el
programa.
• Uso de tablas, arreglos, modificadores de formato y de variable.
• Manejo de pulsadores e interruptores de forma fácil y eliminando rebotes.
• Manejo de motores servo y de paso mediante comandos especializados.
• Acceso a los registros internos del microcontrolador para lectura y/o escritura.

Y muchas otras características que hacen de este uno de microcontroladores más poderosos
y a la vez sencillos de usar para casi cualquier aplicación que usted pueda imaginar.

4
2
C
CAAPPIITTUULLO
O

IINNSSTTAALLAACCIIÓ
ÓNND
DEELL S
SOOFFTTW
WAAR
REE

El Kit PCB-A28, se acompaña de un CD de instalación que contiene todos los elementos


necesarios para su utilización. La instalación del software es sumamente sencilla, con una interfaz
para Windows® excelente y amigable.

1 Introduzca el CD etiquetado como “PCB-A28 Software” en la unidad de CD-ROM de su


PC. Este CD es suministrado junto al Kit PCB-A28 y también puede ser obtenido en la
dirección electrónica: www.roso-control.com
2 Si el programa de instalación no se inicia de forma automática, utilice el explorador de
Windows® y haga doble clic sobre el archivo “Instalar.exe”.
3 Siga las instrucciones en pantalla.

Una vez concluida la instalación, dentro del Menú de inicio/Programas/PCB-A28, usted encontrará
acceso directo a los siguientes archivos:
• BMAtom.exe (instalador del IDE del ATOM).
• Manual Sintaxis ATOM.
• Especificaciones técnicas del microcontrolador PIC16F87X.
• PCB-A28 Manual de Ensamblado y Primeros Pasos.
• Guía rápida de instalación de componentes
• Códigos y programas de ejemplo.

Para poder programar al microcontrolador ATOM incluido en el sistema PCB-A28, deberá instalar
el entorno de programación y desarrollo (IDE) suministrado por Basic Micro. Este software nos
permitirá escribir, compilar, depurar y descargar nuestros programas al microcontrolador.

Haga clic en Menú de Inicio/ Programas/PCB-A28/ BMAtom.exe y siga las instrucciones en


pantalla.

Nota.
La versión más actualizada del software de programación del microcontrolador ATOM puede ser encontrada
en Internet en la dirección www.basicmicro.com.

Configuración del entorno de programación.

Inicie el IDE haciendo clic dentro de Menú de


Inicio/Programas/ Basic Micro ATOM IDE 2.2/ATOM.

Al hacer esto le aparecerá el entorno de programación (IDE) del ATOM, ver figura 2.1.

5
Figura 2.1. Entorno de programación del ATOM.

En el menú “Tools”, seleccione “System Setup”. Le aparecerá un


cuadro de configuración como el mostrado en la figura 2.2. En el
campo “Port Setting” indique el puerto COM de su computador
utilizado para programar el microcontrolador.

Ya está configurado y listo para usar el software de programación


del ATOM.

Figura 2.2. Configuración del puerto de programación/debug.

Nota.
En la mayoría de los computadores personales, los puertos de comunicación serial COM
disponibles son COM1 y/o COM2 al momento de configurar el entorno de programación verifique
en cual puerto está conectada la tarjeta de desarrollo. Si lo desconoce utilice la utilidad “ATOM
Locator” suministrada en el CD de instalación, esta aplicación le permitirá identificar en que
puertos de su computador está ubicado algún hardware compatible con los productos de nuestra
empresa y en caso de tratarse de un microcontrolador nuevo le indicará exactamente el número
de puerto donde ha sido localizado.

6
3
C
CAAPPIITTUULLO
O

IIDDEENNTTIIFFIICCAANNDDO
O LLO
OSS
CCO OMMP POON NE ENNTTEES
SDDEELL S
SIISSTTEEM
MAA

En esta sección haremos una revisión e identificación exhaustiva de los componentes de su


Kit PCB-A28.

El elemento más resaltante que usted encontrará a inspeccionar el kit de desarrollo es la


tarjeta impresa de doble cara sobre la que instalaremos los componentes.

Figura 3.1. Vista Frontal del impreso PCB-A28.

7
Figura 3.2. Vista Posterior del impreso PCB-A28.

Observe que en la cara frontal del impreso se encuentran dibujados en color blanco el
contorno de todos los componentes facilitando su ubicación y montaje.

En la página siguiente encontrará el diagrama esquemático completo del sistema que indica
cuales son las conexiones existentes en el circuito impreso.

8
9
Listado de Componentes.
Ahora conoceremos todos y cada uno de los componentes a instalar en nuestro sistema:

Cantidad Referencia Descripción


1 BZ Altavoz piezoeléctrico

6 C1..C5, C3F Condensador de tántalo 0.1uf @ 25 Volt

La marca color marrón indica la posición del terminal positivo (+)


2 C6,C7 Condensador no polarizado 0.1uf @ 50 Volt

1 C1F Condensador Electrolítico 47uF 35 VDC

La banda color blanco señala el terminal negativo (-)


1 C2F Condensador Electrolítico 100uF 16 VDC

La banda color blanco señala el terminal negativo (-)


1 CN1 Conector DB9 Hembra

1 CN2 Conector 0.1” x 36 pines de extensión

10
1 D1 Diodo rectificador rápido 1N4148

La banda color negro señala el cátodo


1 D1F Diodo rectificador 1Amp 1N4007

La banda color blanco señala el cátodo


1 J1 Jack de alimentación DC, para utilizar transformadores 12 Vdc tipo pared

5* L0…L3 Diodo LED de 5mm

El lado con muesca plana (el más corto) señala el cátodo


1 PON/PGM Diodo LED Bicolor 5mm

1 R1 Resistencia 4.7 KOHM ¼ W

2* R2 Resistencia 10 KOHM ¼ W

1 R3 Resistencia 1 KOHM ¼ W

4 R4…R7 Resistencia 470 OHM ¼ W

El valor de este componente puede variar entre 330 OHM y 510 OHM
2* RST Pulsador tipo N.A tipo SPST 6 mm, cuatro terminales

1 U1 Microcontrolador PIC16F876 – ATOM DIP 28

La muesca y el punto señalan el terminal No. 1

11
1 U1F Regulador de voltaje tipo LM7805

1 U2 Convertidor RS232 – TTL tipo MAX232 o similar

La muesca y el punto señalan el terminal No. 1


1 U1B Base 28 pines DIP .3”

1 U2B Base 16 pines DIP .3”

1 XT-1 Resonador 20 Mhz con condensador

1 NA Potenciómetro de 10 KOHM

Nota.
Lista sujeta a modificación sin previo aviso. Algunos de los componentes de su tarjeta
pueden diferir en la apariencia física, color y forma de montaje.

* El material adicional suministrado es requerido para el desarrollo de los ejemplos que


acompañan a este manual.

12
4
C
CAAPPIITTUULLO
O

E
ENNSSAAM
MBBLLA
AD OP
DO PAASSO
OAAP
PAASSO
O
Herramientas Requeridas.
Antes de comenzar, hagamos un listado de las herramientas que vamos a necesitar:
• Soldador (Cautín) de 12 W a 25 W. No se recomienda el uso de un cautín de mayor potencia.
• 2 metros de estaño (puede o no ser incluido en el sistema).
• Alicate de corte (piqueta), no incluido en el sistema.
• Alicate pequeño, no incluido en el sistema.
• Destornillados de estría #2, no incluido en el sistema.

Figura 4.1. Herramientas Requeridas para el montaje de componentes.

Recomendaciones Generales
• Los componentes de montaje superficial siempre son los primeros en colocarse y
deben quedar tan ceñidos al impreso como sea posible.
• Instale siempre los componentes de menor tamaño y luego los más grandes.
• Jamás permita que el soldador permanezca por más de 15 segundos apoyado sobre
el mismo lugar del impreso ya que puede dañarlo.
• No derrita el estaño en el cautín, caliente el terminal y el “pad” del componente para
que el estaño se funda al entrar en contacto con éstos.
• Jamás utilice materiales abrasivos para limpiar la punta del cautín ya que esto
puede deteriorarlo de forma irreversible.

13
Ensamblado del Kit PCB-A28
Para comenzar el montaje, conecte el cautín a la red de alimentación eléctrica y espere unos
cinco minutos hasta que este alcance una temperatura adecuada.

Los primeros componentes a instalar son los condensadores no polarizados C6 y C7.

Instalación de los condensadores


1. Rellene primero uno de los orificios donde se instalarán los condensadores.
ORIFICIOS RELLENOS

2. Sujete firmemente (sin destruir) uno de los lados del condensador a instalar utilizando el
alicate y coloque en medio del espacio disponible para su colocación.

3. Sostenga mientras hace la soldadura y repita para el otro condensador.

14
4. Verifique han quedado correctamente colocados y haga la soldadura del lado que quedó
libre.

5. Identifique en la tarjeta impresa el terminal positivo de los condensadores de tántalo esto


lo hará por medio del dibujo del componente.
TERMINAL POSITIVO

TERMINAL POSITIVO

6. Rellene todos los terminales positivos donde se instalarán los condensadores


C1,C2,C3,C4,C5 y CF3. Luego Suelde el terminal positivo de todos los condensadores.

15
7. Revise si la polaridad de todos los componentes es correcta y proceda a finalizar la
soldadura del terminal negativo.

8. Repase las soldaduras que parezcan deficiente o carentes de suficiente estaño. No debe
colocar exceso de estaño en o sobre los componentes.

Al finalizar su PCB-A28 debe lucir así:

Instalación de los diodos rectificadores.

1. Identifique el cátodo de los diodos D1 (1N4148) y D1F (1N4001) tanto en el impreso


como en el cuerpo del componente.

2. Doble los terminales para poder insertar los componentes en la tarjeta según lo
mostrado en la figura. Procure que la curvatura sea ligeramente redondeada y no en ángulo
recto.

16
3. Inserte el diodo D1, de vuelta al circuito impreso y fije uno de sus terminales.

4. Verifique que ha sido colocado de forma correcta y aplique la soldadura al otro Terminal.

5. Al finalizar corte los terminales tan a ras de la tarjeta como se sea posible.

6. Haga un ligero repaso de la soldadura para garantizar su buen contacto y acabado.

7. Repita los pasos para colocar al diodo 1N4001 (D1F)

17
Al finalizar su PCB-A28 debe lucir así:

Instalación de las Resistencias.

1. Doble los terminales de las resistencias R1, R2 y R3 para poder insertarlas en el impreso.

2. Inserte cada resistencia en su respectiva posición y efectúe la soldadura y corte de sus


terminales.

3. Instale y suelde las resistencias R4, R5 y R6. Procure fijar primero el terminal superior
para facilitar el montaje.

18
Al finalizar su PCB-A28 debe lucir así:

Instalación de las Bases para los circuitos integrados.

1. Identifique en la muesca que marca el terminal No.1 tanto en la tarjeta impresa como en
la propia base a instalar, por favor no se equivoque ya que dañará la base de conexión.

MUESCA

2. Coloque la base de 16 pines, voltee la tarjeta y suelde dos terminales diagonales.

PUNTOS DE SOLDADURA

19
3. Repita con la base de 28 pines.
PUNTOS DE
SOLDADURA

4. Revise si la orientación de la muesca de la base coincide con la del dibujo en color


blanco de la tarjeta y corrija si es necesario.

5. Con mucho cuidado suelde todos los terminales restantes.

Al finalizar su PCB-A28 debe lucir así:

Instalación del pulsador y los LEDs.

1. Coloque el pulsador sobre los cuatro orificios de montaje correspondiente (RST). La


orientación del pulsador es irrelevante.

20
2. Identifique en la serigrafía el “lado plano” (el cátodo) de los LED’s (L0 a L3).
3. Inserte cada uno de los LEDs de modo que coincida con el dibujo.

4. Suelde y corte los terminales.

5. Utilizando un alicate pequeño estire los terminales del diodo LED bicolor.

6. Inserte el LED bicolor tanto como le sea posible con el lado plano hacia la parte superior
de la tarjeta (coincidiendo la muesca del LED con el dibujo) y efectúe la soldadura.

Al finalizar su PCB-A28 debe lucir así:

Ya casi hemos terminado de armar el sistema pero debe prestar atención al montaje de los
últimos componentes.

21
Instalación de los condensadores electrolíticos y el resonador

1. Identifique en la serigrafía los condensadores CF1 y CF2 así como sus terminales
positivos.

2. Inserte el condensador CF1 observando la correcta colocación del terminal negativo.

3. Suelde y repita para CF2.

4. Inserte el resonador de 20 Mhz en su posición XT. Este componente no tiene polaridad


alguna.

5. Corte los terminales sobrantes al ras del impreso y trate de que la soldadura sea lo más
redonda y uniforme posible, no se exceda con la cantidad de soldadura.

22
Al finalizar su PCB-A28 debe lucir así:

Colocando los últimos elementos.

1. Siguiendo la indicación de polaridad, vamos a instalar el buzzer.

En este momento su PCB-A28 debe lucir así:

2. Inserte el conector Jack DC (J1) en su lugar.

23
3. Haga un pequeño punto de soldadura en uno de los tres terminales y revise que ha
quedado correctamente colocado.

4. Corte los tres terminales y comience a soldar. Tenga en cuenta que estos “pads” de
soldadura son bastante grandes y que requerirán una cantidad apreciable de estaño, sin
embargo, esta no debe ser excesiva, ya que podría derramarse hacia la cara frontal de la
tarjeta.

5. Rellene completamente los tres pads procurando que estos queden bastante
redondeados.

Esta parte del impreso puede llegar a ensuciarse considerablemente. Para limpiarla puede
utilizar algún tipo de solvente dieléctrico o alcohol de uso doméstico. Tenga muy en cuenta
que alcohol no es dieléctrico y que si lo utiliza, deberá esperar al menos dos horas luego de
limpiar su tarjeta para poder encenderla. Pude utilizar también pequeñas cantidades de
líquido removedor de pintura para uñas.

6. Inserte el regulador de tres terminales tipo 7805 en su lugar.

24
7. Corte los terminales del regulador y coloque un pequeño punto de soldadura en el
terminal central.

8. Haga un pequeño punto de soldadura de apoyo en uno de los terminales laterales y


suelde completamente el terminal central. Luego complete la soldadura de todos los
terminales.

En este momento su PCB-A28 debe lucir así:

9. Inserte el conector DB9 hembra. Verifique que los terminales tanto de la parte inferior
como de la superior estén bien centrados en los “pad” de soldadura.

10. Aplique una soldadura generosa que cobra todo el pad pero tenga cuidado de no
provocar un cortocircuito entre los terminales.

25
AHORA SOLO FALTA EL TOQUE FINAL…
11. Con ayuda de un alicate, inserte sobre un protoboard estándar la tira de 23 pines de
extensión.

12. Coloque la tarjeta PCB-A28 sobre los pines y corte el sobrante de los terminales de las
esquinas (RA3 y GND).

26
13. Suelde los terminales de las esquinas.

14. Corte el sobrante de todos los pines y suéldelos con mucho cuidado procurando que la
soldadura quede bien redondeada y difundida correctamente en el orificio.

FINALMENTE SU TARJETA DE DESARROLLO HA SIDO COMPLETAMENTE ARMADA.

27
Armado del cable de programación.

Para poder programar al microcontrolador PIC16F876 ATOM incluido en el Kit PCB-A28,


tendremos que construir un cable serial de extensión. Necesitaremos los siguientes
materiales:
• 1 metro de cable multi-conductor.
• 1 conector DB9 hembra.
• 1 conector DB9 macho.
• 2 Cajas plásticas para conector DB9.

Al momento de conectar dispositivos por el puerto serial RS232, existen dos tipos de
conexiones para puertos RS232, dependiendo si se implementan las configuraciones como
equipo terminal de datos (DTE) o como equipo de comunicaciones de datos (DCE). Esto
implica que un cable de conexión serial puede ser de dos tipos: Invertido (crossover) o No-
Invertido (extensión simple). De acuerdo con la disposición de los terminales en la tarjeta de
desarrollo PCB-A28, el cable que vamos a construir corresponde a este último tipo

28
(extensión simple). En la siguiente figura vemos el esquema de conexión de este tipo de
cable. Para la comunicación del PCB-A28, sólo se requieren los terminales RD(2), TD(3),
DTR(4) y GND(5).

Procedimiento de construcción del cable de programación

1. Retire unos tres centímetros de la cubierta protectora del cable multi-conductor (en
ambos extremos).

2. Seleccione cuatro (4) conductores fácilmente distinguibles y corte el resto. Con ayuda de
un alicate descubra ligeramente la punta de cada conductor y aplique un pequeño punto de
soldadura (en ambos extremos).

3. Identifique el terminal 5 del conector DB9 hembra y suelde el primer cable. Repita para
los terminales 4,3,2. Anote el orden de conexión de los cables. Terminal DB9-5 ______,
Terminal DB9-4 ______, Terminal DB9-3 ______, Terminal DB9-2 ______.

29
4. Coloque el conector en el interior de la base plástica.

5. Instale los tornillos de fijación laterales y cierre la caja utilizando los tornillos con tuerca
suministrados.

6. Identifique el terminal 5 del conector DB9 macho y suelde los cables según la
identificación hecha en el paso 3.

7. Coloque el conector en el interior de la base plástica y ciérrela utilizando los tornillos


suministrados.

30
YA SU CABLE DE PROGRAMACIÓN HA SIDO CONSTRUIDO!

31
5
C
CAAPPIITTUULLO
O

P
PRRIIM
MEER
RO SP
OS PAASSO
OSS

Vamos a comenzar a desarrollar actividades en nuestro sistema, para ello es necesario que
ubique claramente cada uno de los componentes.

• Sistema de desarrollo PCB-A28 completamente armado, ver figura 5.1.


• Cable de programación, figura 5.2.
• Transformador de alimentación de 6-12 Vdc, centro positivo (no Incluido), figura
5.3.
• Placa experimentación sin soldadura “Protoboard” (no incluido), figura 5.4

Figura 5.1. PCB-A28 armado. Figura 5.2. Cable de programación.

Figura 5.3. Protoboard. Figura 5.4 Transformador de Pared.

Sobre la esquina superior del protoboard conecte firmemente el sistema PCB-A28, según se
muestra en la figura 5.5.

32
Figura 5.5. Fijando el sistema sobre el protoboard.

Entendiendo el funcionamiento del protoboard.

Un protoboard, es una herramienta que


permite armar cualquier circuito electrónico sin
necesidad de efectuar ninguna soldadura. Son
utilizados en la experimentación y prueba de
circuitos, componentes y diseños. Los
protoboards se caracterizan por tener una serie
de puntos de contacto unidos entre sí, según lo
mostrado en la figura 5.6. Las líneas
horizontales se utilizan para transportar las
señales de alimentación (+5v y GND). Las
líneas verticales se emplean para conectar los
circuitos integrados y demás componentes. La
separación entre cada punto se ha Figura 5.6. Entendiendo el protoboard.
estandarizado en 0,1” por lo que la mayoría de lo componentes pueden colocarse deforma
directa sobre el protoboard. La figura 5.6., muestra los puntos interconectados en un
protoboard estándar y la manera de colocar los circuitos integrados para su utilización.
Cuando conecte el microcontrolador ATOM a la tarjeta PCB-A28. Es importante respetar la
orientación que debe tener el microcontrolador, para ello, el circuito integrado tiene una
marca o muesca en su parte superior que indica la posición del terminal número 1.

La figura 5.7. le muestra la


manera de identificar el pin 1
del ATOM y la forma
correcta de colocarlo en la
tarjeta de desarrollo,
simplemente haga coincidir la
muesca del circuito con la
mostrada en la serigrafía de la
tarjeta.

Figura 5.7. Identificación del pin 1 del ATOM.

33
Precaución. El microcontrolador PIC 16F876 “ATOM” es un dispositivo semiconductor sensible a las descargas
electrostáticas. Para evitarse inconvenientes, procure tocar alguna superficie metálica correctamente aterrada antes
de manipular al microcontrolador.

Conecte el cable de programación al computador y seguidamente al puerto de programación


del PCB-A28.

Enchufe el cable del transformador al conector de alimentación. El diodo LED color verde
llamado PON (Power ON) deberá estar encendido, si esto no ocurre apague el sistema y
verifique que los conectores están firmemente unidos a la unidad de desarrollo.
Precaución. Jamás conecte o retire un componente electrónico de un equipo o sistema energizado, esto podría
destruir tanto al dispositivo en cuestión como a cualquier otra parte del equipo.

Figura 5.8. Su PCB-A28 está listo para trabajar.

Localizando el puerto serial de


conexión para el ATOM

Si desconoce el número de
identificación del puerto donde
conectó al sistema PCB-A28, tendrá
que ir al administrador de
dispositivos en Windows®, al
hacerlo, aparecerá la ventana
mostrada en la figura 5.9.

Figura 5.9. Administrador de dispositivos


del Windows Xp.

34
¡Vamos a escribir nuestro primer programa!
• Inicialice el IDE haciendo clic sobre el icono correspondiente.
• Dentro del menú “File”, elija la opción “New”.
• En el cuadro de dialogo, seleccione “MBasic file” y presione ”OK”.
• Teclee el nombre “Primer_Programa” cuando el editor se lo solicite.
• Transcriba el texto que aparece a continuación.

'01_Primer_Programa.bas
'PROGRAMA PARA HACER PARPADEAR UN LED CONECTADO A P7
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
HIGH P7 'Pin P07 va a estado "alto" y el LED se enciende
PAUSE 500 'Espera de 500 ms para observar el encendido del LED
LOW P7 'Pin P07 va a estado "bajo" y el LED se apaga
PAUSE 500 'Espera de 500 ms para observar al LED apagado
GOTO Principal 'Saltar a la etiqueta "Principal" para repetir el parpadeo
'------------------------------------------------------------------------------
'FIN DEL PROGRAMA

• Con el sistema PCB-A28 energizado, presione el botón “Program” de la barra de


tareas. Si este no está disponible, puede hacer clic en Tools -> Program o presionar
Ctrl + F11.
• Una vez hecho esto, aparecerán las líneas “Compiling...” y “Tokenizing...”, las
cuales, indican que el programa escrito en Basic no tiene errores de sintaxis.
• Aparecerán frente a usted las ventanas mostradas en la figura 5.11. mientras se
ensambla (derecha) y descarga el programa al ATOM (izquierda arriba).
• También le aparecerá una barra de progreso a medida que el software verifica que
el programa ha sido descargado de manera correcta al microcontrolador, figura 5.11
izquierda abajo.

Figura 5.11. Proceso de compilación, programación y verificación del ATOM.

El LED conectado a P7 comenzará a parpadear, permaneciendo 500 ms encendido y 500 ms


apagado.

35
¡Felicitaciones!, usted acaba de programar un microcontrolador.

En la parte inferior del IDE, aparecerá una ventana similar a la mostrada en la figura 5.12. que
contiene información del proceso de compilación, así como, de los recursos del microcontrolador
utilizados por el programa. Si la ventana de mensajes de salida no aparece haga clic en: View ->
Toolbar->Output.

RAM usada por el sistema


RAM usada por el Stack
RAM usada por el programa
Memoria RAM disponible

Me moria FLASH usada por las librerías que incluye el programa


Me moria FLASH usada por el programa
Total de FLASH utilizada
Total FLASH disponible

Líneas del programa

Figura 5.12. Mensajes de salida.

Detalles adicionales pueden ser encontrados en el manual de sintaxis del ATOM versión 3.0,
página 20, el cual está incluido en el CD.

36
Corrigiendo errores en el programa.
Vamos a modificar el código del primer programa de la siguiente manera:
'02_Programa_Errores.bas
'PROGRAMA PARA HACER PARPADEAR UN LED CONECTADO A P7 (CON ERRORES)
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
HIGH P07 'Pin P07 va a estado "alto" y el LED se enciende
PAUSE 500 'Espera de 500 ms para observar el encendido del LED
LOW P07 'Pin P07 va a estado "bajo" y el LED se apaga
PAUSE 500 'Espera de 500 ms para observar al LED apagado
GOTO Principals 'Saltar a la etiqueta "Principal" para repetir el parpadeo
'------------------------------------------------------------------------------
'FIN DEL PROGRAMA
La ventana de información dirá:
Error: FILE C:\PRIMER_PROGRAMA_ERROR.BAS(LINE 6) : [TOKEN :] : Unexpected token type

Esto evidencia la presencia de un error en la línea 6. El tipo de error es indicado como


“Unexpectec token type” y permite observar que se trata de un símbolo no identificado por el
compilador. Para ir directamente a la línea donde se ha detectado el error, haga doble clic sobre
el mensaje correspondiente. Corrija el programa colocando P7 en lugar de P07 y trate de
programar al microcontrolador.
A medida que corrija los errores, le aparecerán los mensajes mostrados en la figura 5.13.

Error en la línea 6

Figura 5.13. Mensaje de error.

37
Utilizando los recursos del IDE: El Debugger.
La barra de herramientas “User Tools”
contiene cuatro (04) botones que realizan
determinadas funciones:
• Compile. Efectúa la revisión de sintaxis y compilación del programa.
• Program. Igual que Compile pero, transfiere el código ejecutable al microcontrolador.
• Debug. Descarga el programa al microcontrolador en modo de depuración.
• System Setup. Abre el cuadro de dialogo de configuración del puerto de programación.
El modo de depuración es una herramienta que posee el microcontrolador ATOM para poder ver
el contenido de los registros internos y de las variables del programa durante la ejecución del
programa. Cuando el ATOM esta haciendo “debug”, se puede controlar si se ejecutan las
instrucciones continuamente o una por una, efectuar un reset cuando se desee, utilizar “Break
points”, para detener el programa una vez alcanzado un punto y muchas otras características que
hacen de esta una herramienta increíblemente útil. Sin embargo, cada instrucción es ejecutada a
una velocidad muy inferior a la que alcanza el ATOM al ser programado, por ello, algunos
comandos y características del microcontrolador (especialmente las interrupciones) no deben
usarse al hacer “debug”.
Para ejemplificar el uso del “debug”, escribiremos un programa que le ayudará a comprender
todas las ventajas que tiene esta herramienta.
'03_Debugger.bas
'ESTE PROGRAMA ES UN EJEMPLO DEL USO DEL DEBUGGER DEL MICROCONTROLADOR ATOM
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Dato VAR Byte 'Declaración de una variable tipo byte (8 bits)
'------------------------------------------------------------------------------
'CUERPO DEL PROGRAMA
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
FOR Dato=0 TO 255 'Ciclo FOR desde 0 hasta 255
DEBUG [0,DEC Dato] 'Enviar el valor decimal de la variable Dato
NEXT
END
'------------------------------------------------------------------------------
'FIN DEL PROGRAMA

Haga clic sobre el botón “Debug”. Cuando el microcontrolador se encuentra en modo de


depuración, la pantalla se divide en cuatro partes bien definidas mostradas en la figura 5.14.

Barra de herramientas de depuración

Variables internas del microcontrolador

Código del programa ani mado

Ter mi nal de comunicaciones

Figura 5.14. El IDE mientras se hace un debug.

38
La barra de herramientas de depuración, contiene los botones para controlar la ejecución del
programa. La figura 5.15 muestra todas las funciones disponibles.
Ver contenido
Conectar/Desconectar Ejecutar paso Saltar fuera de de las variables Ver contenido Auto
El debugger Ani mar Reset a paso una subrutina del programa de toda la RAM actualizar

Poner/Quitar Correr Pausa Ejecutar paso a Correr hasta Ver los Ver el Stack
breakpoint paso * la posición registros
del cursor
* Las subruti nas se ejecutan como si fueran una i nstrucci ón

Figura 5.15. Barra de herramientas de depuración (debug).

Seleccione el icono “Ver variables” y “Auto Actualizar”.

El código del programa animado, nos muestra resaltando con una línea color verde la instrucción
que se está ejecutando actualmente, de esta forma se pueden seguir con facilidad los saltos y
bifurcaciones que toma el programa a medida que avanza.

En la parte derecha de la pantalla, se podrán ver los registros de función específica del
microcontrolador, las variables del programa, el Stack o el contenido de la memoria RAM según se
desee.

En la parte inferior de la pantalla, se encuentra un terminal de comunicaciones que permite


visualizar variables y mensajes. Este se conecta al puerto COM utilizado para programar al ATOM
de manera automática. Para escribir y leer información en este terminal se utilizan las
instrucciones DEBUG y DEBUGIN, respectivamente.

Presione el icono “Step Into” y observe como aumenta el valor de la variable Dato. Este aumento
se puede ver tanto en el terminal de comunicaciones como en el listado de variables del
microcontrolador.

Utilizando los recursos del IDE: El Osciloscopio.


El software de desarrollo del microcontrolador ATOM permite graficar señales analógicas. Tiene
algunas limitaciones pero es de gran ayuda, además de ser una herramienta totalmente gratuita.

Vamos a escribir un pequeño programa para graficar una señal en el osciloscopio. Transcriba el
siguiente programa con el nombre Osciloscopio.bas.
'04_Osciloscopio.bas
'ESTE PROGRAMA MUESTRA COMO USAR EL OSCILOSCOPIO INCLUIDO EN EL IDE DEL ATOM
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Dato VAR LONG 'Declaración de una variable tipo long (32 bits)
Canal_01 CON $0E 'Canal 1 del osciloscopio
'------------------------------------------------------------------------------
'CUERPO DEL PROGRAMA
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
FOR Dato=0 TO 255
SEROUT S_OUT,I9600,[Canal_01,Dato.Byte0,Dato.Byte1,Dato.Byte2,Dato.Byte3]
'Envío del dato al osciloscopio, primero el canal luego los 4 bytes
PAUSE 50
NEXT
GOTO Principal
'------------------------------------------------------------------------------

39
Presione el botón “Program”.
Para configurar y utilizar el osciloscopio, siga detalladamente los siguientes pasos:
• Seleccione Tools-> Oscilloscope.
• Ajuste Max Y = 255 y Min Y= 0.
• Coloque Min X = 0 y Max X = 1000.
• En el cuadro “Timing” , seleccione “Point” y ajuste X/point = 1.
• En el campo “COM Port”, seleccione el puerto utilizado para programar al ATOM y en
“Baud Rate” coloque 9600.
• Presione “Connect” y comenzarán a graficarse los datos.

La figura 5.16 muestra la gráfica obtenida.

Figura 5.16. Grafico obtenido en el osciloscopio.

Tips para utilizar el osciloscopio:


• Dispone de hasta 16 canales de graficación.
• Debe indicarse el canal antes de enviar el dato: $0E -> Canal 1, $1E-> Canal 16.
• Los datos se especifican como variables de 4 bytes.
• Se envía el Byte menos significativo primero.
• Si la variable es Byte o Word, se pueden enviar ceros para completar los 4 bytes.
• El canal 17 se utiliza para hacer graficas XY.
• Cuando se hace una grafica XY, se envían dos bytes para un canal y dos bytes para el
otro.

El siguiente ejemplo muestra como elaborar varias gráficas de forma simultánea

40
'05_Osciloscopio_Multicanal.bas
'EJEMPLO DE GRAFICA MULTICANAL CON EL OSCILOSCOIPIO DEL IDE

'SECCION DE VARIABLES Y CONSTANTES


'------------------------------------------------------------------------------
Dato VAR Byte
Seno VAR LONG
Cose VAR LONG

Canal_01 CON $0E 'Canal 1 del osciloscopio


Canal_02 CON $0F 'Canal 2 del osciloscopio
Canal_03 CON $10 'Canal 3 del osciloscopio

'------------------------------------------------------------------------------
'CUERPO DEL PROGRAMA
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.

Principal:
FOR Dato = 0 TO 255
Seno = SIN Dato
Cose = COS Dato
SEROUT S_OUT,I9600,[Canal_01,Dato,0,0,0]
SEROUT S_OUT,I9600,[Canal_02,Seno.Byte0,Seno.Byte1,Seno.Byte2,Seno.Byte3]
SEROUT S_OUT,I9600,[Canal_03,Cose.Byte0,Cose.Byte1,Cose.Byte2,Cose.Byte3]
PAUSE 50
NEXT

GOTO Principal
'------------------------------------------------------------------------------

Figura 5.17. Creando gráficas del múltiples variables.

En la página de Internet www.basicmicro.com, se encuentra disponible una nota de aplicación


que describe el uso de este osciloscopio.

41
6
C
CAAPPIITTUULLO
O

M
MAANNEEJJO OD EE
DE ENNTTRRAADDAASS YY
S
SAALLIIDDAASS

Un microcontrolador, es un dispositivo ideado para conectarse con una serie de periféricos y


dirigirlos para realizar una función específica. Los periféricos pueden ser un banco de luces,
un grupo de relevadores (relay), una serie de actuadores, un conjunto de sensores y
detectores, es decir, casi cualquier elemento que permita realizar una determinada acción.
De acuerdo a su naturaleza, existen dos tipos de periféricos: los de entrada y los de salida.
Un periférico de entrada se caracteriza por entregar información al microcontrolador, son
ejemplo de estos, los pulsadores, interruptores, potenciómetros, dispositivos sensores, entre
otros. Por su parte, un periférico de salida recibe la información y generalmente, sirve como
medio de visualización para ésta, los LED’s, Display’s de 7 segmentos, pantallas LCD,
relevadores, motores y en general todos los actuadores, son periféricos de salida.

Al ser un microcontrolador un dispositivo electrónico, es evidente que todo el intercambio de


información entre éste y sus periféricos tiene que hacerse por medio de señales eléctricas.
De la transmisión y/o recepción de estas señales se encargan los terminales de
entrada/salida del microcontrolador.

El microcontrolador ATOM de la tarjeta de desarrollo PCB-A28 se presenta en un


encapsulado DIP de 28 terminales, con la ayuda de la figura 6.1 entenderemos la función de
cada uno de ellos.

Figura 6.1. Terminales de conexión del microcontrolador ATOM.

42
Función de los terminales del microcontrolador ATOM.
• Los pines GND y VDD proporcionan la energía necesaria para el funcionamiento del
microcontrolador. El nivel del voltaje de estos terminales debe ser 0 Vdc y 5 Vdc,
respectivamente.
• El terminal /RES es utilizado para reiniciar al microcontrolador.
• Los terminales OSC1 y OSC2 se emplean para conectar el resonador de 20 Mhz que
requiere el ATOM para poder trabajar.
• El terminal SIN/SOUT es de entrada/salida digital y se encuentra conectado a la interfaz
de programación del PCB-A28. Una vez programado el ATOM, puede ser usado como
puerto de comunicaciones.
• Los terminales AX0..AX3, son entradas/salidas digitales y también sirven de canales de
entrada al convertidor analógico/digital.
• Los terminales P0..P15, son entradas/salidas digitales.

Todos los terminales de E/S del microcontrolador ATOM, operan en niveles TTL/CMOS
compatible, esto significa, que las señales eléctricas llevadas a estos pines, deben estar
comprendidas entre 0 Vdc y 5 Vdc. La corriente de salida entregada por cada pin no debe
exceder los 25 mA. Mayores detalles de las características eléctricas del ATOM pueden verse en
las hojas técnicas del PIC 16F87X incluidas en el CD.

Nota: Los terminales de entrada/salida digital pueden usarse en todos los comandos e instrucción de uso general del
lenguaje de programación del microcontrolador ATOM. Algunos comandos especiales, que requieren utilizar recursos de
hardware del microcontrolador sólo operan sobre pines específicos.

Manejando las salidas digitales.

La mayoría de las instrucciones del lenguaje MBASIC, se encargan de definir si los pines utilizados
son entradas o salidas, sin embargo, existen casos en los cuales debemos manipular directamente
los pines del microcontrolador, por ejemplo, cuando se quiere accionar varias salidas a la vez.

Al inicializar el microcontrolador ATOM, todos los pines son definidos como entradas. Las entradas
pueden ser leídas a través de los registros de 16 bits INS u OUTS.

El registro de control DIRS, permite definir los pines como entradas (DIRS = 1) o como salidas
(DIRS = 0). Las instrucciones INPUT y OUTPUT operan directamente sobre el registro DIRS y
permiten darle legibilidad al programa.

Veamos el siguiente ejemplo.

'06_SALIDAS.bas
'ESTE PROGRAMA ES UN EJEMPLO DE COMO MANEJAR LAS SALIDAS DIGITALES Y GENERAR
'UNA SEÑAL AUDIBLE CON EL SISTEMA PCB-A28.
'------------------------------------------------------------------------------
DIRB = $0 'Define los pines desde P4 hasta P7 como salidas
OUTPUT P3 'Define el terminal P3 como salida digital
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
FOR OUTB=0 TO $F 'mostrar un conteo en los LEDS del PCB-A28
PAUSE 200 'Espera de 200 ms para ver el conteo
NEXT
SOUND P3,[150\5500] 'Tono emitido por P3 de 150 ms duración a 5.5 Khz
SOUND P3,[250\3000] 'Tono emitido por P3 de 250 ms duración a 3.0 Khz
GOTO Principal 'Repetir indefinidamente
'------------------------------------------------------------------------------

43
Mayores detalles de la organización de los registros DIRS, OUTS e INS se encuentran en el
Manual de Sintaxis del ATOM, página 40, incluido en el CD.

En el ejemplo anterior, observamos como manipular dos periféricos de salida de uso frecuente,
los LED’s y el buzzer. Los LED’s emiten una llamativa luz que sirve de indicador en casi todos los
dispositivos electrónicos. Los buzzers o altavoces piezoeléctricos son un excelente medio para
producir señales sonoras de alarma o notificación, por ejemplo, los teléfonos celulares utilizan
estos dispositivos para emitir los tonos de alerta de la mensajería de texto, el repique que
acompaña a una llamada entrante, etc.

Leyendo las entradas digitales.

Cuando se utilizan periféricos como interruptores, pulsadores y otros tipos de conmutadores


electro-mecánicos debe hacerse con especial cuidado para evitar el funcionamiento errático del
microcontrolador. Supongamos que se desea modificar el programa Salidas.bas para lograr que el
conteo sea controlado a través de un pulsador y no de forma automática. De esta manera, cada
vez que se oprima el pulsador se aumentará en una unidad la cuenta.

Conecte un pulsador adicional al terminal P0 como lo muestra la figura


6.2.

Programe al microcontrolador con el siguiente código.

Figura 6.2. Conexión de un pulsador.

'07_ENTRADA_DIGITAL.bas
'PROGRAMA SIMPLE DE LECTURA DE UNA ENTRADA DIGITAL
'------------------------------------------------------------------------------
DIRB = $0 'Define los pines desde P4 hasta P7 como salidas
INPUT P0 'Define el terminal P0 como entrada digital
OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados

'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
IF IN0 = 0 THEN 'Si el pin IN0 -> P0 esta en estado bajo, el pulsador
OUTB = OUTB + 1 'esta presionado y se debe aumentar el conteo
ENDIF
GOTO Principal 'Repetir indefinidamente
'------------------------------------------------------------------------------

La conexión utilizada en este ejemplo, se denomina activa baja por que al oprimirse el pulsador
aparece un cero “0” en el pin correspondiente.

Oprima repetidas veces y observe que el conteo no es uniforme, ni ordenado, sino que parece
aleatorio. Esto se debe a la presencia del rebote. Este es un fenómeno asociado a los dispositivos
que utilizan contactos electromecánicos y se debe a las rugosidades propias del elemento
metálico de contacto.

Vamos a modificar el programa para eliminar el rebote.

'07_ENTRADA_SIN_REBOTE.bas
'ESTE PROGRAMA MANEJA UNA ENTRADA DIGITAL POR MEDIO DE UN PULSADOR Y ELIMINA
'EL REBOTE POR RETARDO DE PROGRAMACION
'------------------------------------------------------------------------------
'INICIALIZACION DEL PROGRAMA

44
DIRB = $0 'Define los pines desde P4 hasta P7 como salidas
INPUT P0 'Define el terminal P0 como entrada digital
OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
IF IN0 = 0 THEN 'Verificar si se oprimió el pulsador
PAUSE 50 'Esperar que el pin se estabilice
IF IN0 = 0 THEN 'Realmente se oprimió el pulsador?
OUTB = OUTB + 1 'Aumentar la cuenta
ENDIF
WHILE IN0=0 'Esperar hasta que el pulsador sea liberado
PAUSE 1 'y el pin esté en alto
WEND
ENDIF

GOTO Principal
'------------------------------------------------------------------------------

Sin embargo, existe una instrucción de BASIC que nos permite trabajar directamente con
interruptores y pulsadores, se llama BUTTON. El siguiente programa es un ejemplo de cómo
usar esta instrucción.
'ENTRADAS_3.bas
'ESTE PROGRAMA UTILIZA LA INSTRUCCION BUTTON PARA MANEJAR UN PULSADOR QUE
'CONTROLA UN CONTEO VISUALIZADO EN LOS LEDS DEL PCB-A28
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Edo_Activo CON 0 'Estado lógico que ocurre al presionar el pulsador
Anti_Rebote CON 250 'Tiempo de espera para eliminar el rebote
Auto_Repeat CON 250 'Tiempo antes de comenzar las auto-repeticiones

P0_WS VAR Byte 'Var. de trabajo del BUTTON para la auto-repetición


'------------------------------------------------------------------------------
'INICIALIZACION DEL PROGRAMA
DIRB = $0 'Define los pines desde P4 hasta P7 como salidas
OUTB = $0 'Iniciar la cuenta en cero, todos los LEDS apagados
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
BUTTON P0,Edo_Activo,Anti_Rebote,Auto_Repeat,P0_WS,1,Pulsador_Presionado
PAUSE 1
GOTO Principal

Pulsador_Presionado:
OUTS.NIB1 = OUTS.NIB1 + 1 'Incrementar la cuenta
GOTO Principal
'------------------------------------------------------------------------------

Adicionalmente, hemos visto otra manera de direccionar al registro OUTS; decir OUT.NIB1 es
exactamente igual a OUTB. Se ha utilizado en este caso, un modificador de variable para tener
acceso a una parte de la variable OUTS.

45
Entradas Analógicas: El Conversor Analógico/Digital.
Un conversor analógico/digital (ADC) es un dispositivo que convierte una señal analógica o
continua en una representación digital. Los ADC’s le permiten a los equipos digitales como
microcontroladores o computadores medir y obtener información de las variables del mundo real
como temperatura, presión, fuerza, resistencia, voltaje, etcétera.

El ATOM posee un modulo ADC con una resolución de 10 bits y cuatro canales de entrada que lo
hacen bastante adecuado para muchas aplicaciones. Los terminales AX0 a AX3 dan acceso a los
cuatro canales de conversión.

Conecte el potenciómetro de 10 kΩ al pin AX0, según se muestra en la


figura 6.3. Figura 6.3. Señal analógica conectada en AX0.

Vamos a correr el programa Conversor_AD.bas en modo de


depuración.
'CONVERSOR_AD.bas
'EJEMPLO DEL CONVERSOR ANALOGICO/DIGITAL
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Valor_Digital VAR Word 'Hora del reloj
Reloj_ADC CON 2 'Usar el reloj del sistema / 32 para el ADC
Voltaje VAR LONG 'Valor del voltaje de salida del potenciómetro
Temp VAR LONG 'Var. Temporal

'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Principal:
ADIN AX0,Reloj_ADC,AD_RON,Valor_Digital
'Convierte la señal conectada en AX0 y guarda el valor en la variable
'Valor_Digital. Como el resultado es de 10 bits hay que darle formato para
'colocarlo en una variable de 16 bits, con AD_RON los 6 MSbits se llenan con 0

Temp = FLOAT Valor_Digital


Voltaje = 5.0 Fmul Temp Fdiv 1024.0

GOTO Principal
'------------------------------------------------------------------------------

Oprima sobre los iconos “Ver variables” y “Auto Actualizar”, del debugger. Ver figura 5.15.

Corra el programa con la opción “Animate” y gire el potenciómetro para ver los valores que arroja
la conversión.

La variable Valor_Digital contiene el resultado de la conversión analógico/digital, que será un


número comprendido entre 0 y 1023. En la variable Voltaje se guarda el valor de tensión
equivalente entre 0 y 5 Vdc. Para hallar la relación entre el resultado de la conversión
analógico/digital y voltaje debe utilizarse la siguiente expresión matemática:

Vref
Voltaje = ⋅ Re sultado _ Conversion
2n

En este caso: Vref = 5 Voltios y n =10.

Otras características del ADC:

46
• Se pueden usar los cuatros canales del ADC de modo alternado (multiplexado), no de
modo simultaneo.
• El terminal AX3 se puede utilizar como referencia de voltaje desde 1 Vdc hasta 5Vdc,
esto permite aumentar la resolución (cada valor digital corresponde a un menor voltaje).
• Con 10 bits se logran 1023 pasos o posibles valores para el resultado de la conversión.
Con una referencia de 5Vdc cada paso corresponde aproximadamente a unos 5 mV.
• Utiliza el algoritmo de aproximaciones sucesivas, que arroja una buena relación de
velocidad/exactitud.
• El reloj puede seleccionarse para lograr conversiones de mayor velocidad o de mayor
precisión, según se requiera.

47
7
C
CAAPPIITTUULLO
O

IINNTTEERRRRUUPPCCIIO
ONNEESSY YO OTTRRO
OSS
RREECCUURRSSO OSSA AVVAANNZZAADDO
OSS

El concepto de interrupción es aplicado en nuestras vidas diarias de manera constante. Por


ejemplo, cuando estamos hablando con una persona y repica el teléfono celular, dejamos
momentáneamente detenida nuestra conversación, recibimos y atendemos la llamada; y
luego continuamos hablando. Esto es exactamente lo que significa una interrupción, un
evento que ocurre ante alguna causa y que debe ser atendido de manera específica a la
mayor brevedad posible. Los computadores y microcontroladores modernos, utilizan el
mecanismo de interrupción para realizar tareas específicas sin necesidad de agotar recursos
del procesador de manera ineficiente. Por lo general, la interrupción sirve como señal de
indicación de algún dispositivo periférico para avisar que ha terminado una labor o que se
ha presentado alguna condición, anormal o no, relacionada con su operación y que es
necesaria para el funcionamiento del programa.
Fuentes de interrupción del ATOM.
El microcontrolador ATOM posee varias fuentes de interrupción, siendo las más importantes:
• Interrupción Externa (EXTINT). Se presenta cuando el terminal P0 cambia de
estado. Esta interrupción responde a un determinado flanco de la señal.
• Interrupción del Puerto B (RBINT). Se produce cuando alguno de los
terminales de P4 a P7 cambia su estado. Esta interrupción responde a los niveles
lógicos no al flanco.
• Timer 0 (TMR0INT). Los microcontroladores poseen temporizadores o “timers”
que permiten efectuar muchas labores como: conteo de pulsos, generación de
bases de tiempo, ejecución periódica de segmentos del programa, medición de la
duración de pulsos, entre otras cosas. El timer 0 es un registro de 8 bits con un pre-
escalador de 8 bits que se puede conectar al reloj del sistema o a un reloj externo
mediante el terminal RA4 (SIN/SOUT).
• Timer 1 (TMR1INT). Interrupción generada al desbordarse un registro de 16 bits
llamado TMR1. Puede utilizarse con el oscilador del ATOM o con un oscilador
externo conectado a P8.
• Timer 2 (TMR2INT). Interrupción por desbordamiento de un registro de 8 bits
con pre y post escalador.
• Interrupción del ADC (ADINT). Ocurre cuando el conversor analógico/digital
incluido en el ATOM termina de efectuar una conversión.
• Interrupción por puerto serial (RCINT). Esta interrupción indica cuando ha
llegado un dato al USART del ATOM.

48
• Modulo CCP1 (CCP1INT). Los módulos de CCP del ATOM pueden ser
configurados para realizar dos acciones: captura y comparación. La captura permite
tomar el valor que tiene el Timer1 al momento de producirse una determinada
transición (paso de alto o bajo, o viceversa) en el pin correspondiente. La
comparación, activa una interrupción cuando el valor del TMR1 coincide con un
valor deseado. Al ocurrir una interrupción por comparación, se pueden desatar otros
eventos de manera simultánea como: cambiar el estado de un pin (CCP1 o CCP2),
borrar el contenido del TMR1 o iniciar la conversión analógica/digital. El terminal
CPP1 corresponde a P10.
• Modulo CCP2 (CCP2INT). Funciona igual que el CCP1INT pero utilizando el
terminal P9.

Definiciones importantes.
Antes de comenzar con los ejemplos, es necesario definir algunos conceptos fundamentales
relacionados con las interrupciones:
• Fuente de interrupción. Recurso, elemento o dispositivo que está en capacidad
de producir una interrupción.
• Interrupción. Es el evento ocasionado y que debe ser atendido.
• Rutina de interrupción (ISR). Es el segmento de código que se ejecuta al ocurrir
la interrupción y que debe observar el manejo de la misma. Por ejemplo, guardar
algunas variables, efectuar una acción de corrección, emitir algún tipo de indicación
o alarma, etcétera.
• Habilitación de la interrupción. Para que la interrupción pueda ocurrir, hay que
indicar que la fuente de interrupción deseada este activa.
• Interrupciones recurrentes. Son aquellas que pueden ocurrir dentro de su
propia ISR. El microcontrolador ATOM no permite este tipo de interrupciones, de
ocurrir, conducen a que se quede “colgado” teniendo que producirse un reset para
salir de esta condición.
• Interrupciones anidadas. Dos fuentes de interrupción pueden, de forma
simultanea o no, producir una interrupción. En caso de ser simultaneas, el sistema
elegirá aquella que tenga mayor prioridad, si no existe una prioridad pre-
establecida, se atenderá de maneja arbitraria una u otra. Puede darse el caso de
estar atendiendo una interrupción y producirse otra. La nueva interrupción será
atendida primero y luego se continuara procesando la primera. El ATOM acepta este
tipo de interrupciones, pero, su uso debe limitarse a usuarios experimentados y
concientes de las limitaciones propias del microcontrolador, ya que, tal practica
puede generar un funcionamiento bastante inestable y hasta errático.
Información adicional puede ser encontrada en el Manual de Sintaxis del microcontrolador
ATOM capítulo 11 y en el data sheet del PIC16F87X, ambos incluidos en el CD.
Uso de la interrupción externa EXTINT.
Esta interrupción es particularmente útil, ya que, permite detectar cuando ocurren flancos
ascendentes o descendentes de una señal digital. Esto es comúnmente empleado para lograr la
sincronización entre sistemas diferentes y para atender eventos de importancia como condiciones
de alarma o de falla.
En nuestro ejemplo, tendremos un pulsador conectado al terminal P0 del ATOM y aumentaremos
un contador cada vez que se libere el pulsador. Cada vez que se oprime el pulsador, el estado de
un LED conectado a P7 deberá cambiar. Ciertamente, esto se puede hacer de muchas maneras
sin requerir de una interrupción; sin embargo, veremos que la utilización de la interrupción nos

49
permite liberar al programa principal de toda responsabilidad en el manejo del contador. En
efecto, el programa principal de nuestro ejemplo, manejará otro contador que nada tiene que ver
con el pulsador conectado a P0.

A medida que sus programas y proyectos crezcan en dimensiones y envergadura, esta


independencia entre los diferentes segmentos de código que realizan determinada labores, será
algo que usted buscará de forma casi desesperada.

Conecte el pulsador según se muestra en la figura 7.1.

Cargue en el IDE del ATOM el programa EXT_INT.bas.

Figura 7.1. Conexión del pulsador

'EXT_INT.BAS
'ESTE PROGRAMA MUESTRA COMO CONFIGURAR LA INTERRUPCION EXTERNA DEL ATOM PARA
'ACTIVARSE AL PRESIONAR UN PULSADOR CONECTADO AL PIN P0 DEL PCB-A28
'CONFIGURACIÓN DE LAS INTERRUPCIONES

SETEXTINT EXT_L2H 'Interrumpir en el paso de bajo a alto


ONINTERRUPT EXTINT,EXT_ISR 'Cuando ocurra la int. ir a EXT_ISR
ENABLE EXTINT 'Habilitar la interrupción
VECES VAR BYTE 'Cantidad de veces que se presiona el pulsador
TEMP VAR BYTE 'Variable temporal de uso general

PAUSE 1000 'Debe colocarse siempre antes del Programa principal.


CLEAR 'Inicializar todas las variables en cero
HIGH P7 'Encender el LED

Principal: 'Programa principal


TEMP = TEMP + 1
Goto Principal

EXT_ISR: 'Rutina que se ejecuta cuando ocurre la INT.


PAUSE 20 'Pausa para eliminar el rebote
IF IN0=1 THEN 'Verificar que se liberó el pulsador
TOGGLE P7 'Cambiar el estado del LED
VECES = VECES+1 'Incremento del contador
DEBUG ["NRO ",DEC VECES,13] 'Muestra el valor de la cuenta
ENDIF
RESUME 'Retorno al programa principal

Presione CTRL + F12 para correr el programa en modo de depuración. Oprima el botón
“Animate” o CTRL + F5.
Oprima el pulsador en varias ocasiones; vea como el programa se mantiene ejecutando las pocas
instrucciones del lazo principal y cuando usted libera al pulsador se produce el aumento de la
cuenta y el cambio de estado del LED L0 del sistema PCB-A28.
Del ejemplo vemos claramente que:
• Antes de activar la interrupción, hay que configurar al microcontrolador para informarle
cual es la condición deseada.
• Se debe especificar la ubicación de la rutina de servicio de interrupción ISR, mediante la
directiva ONINTERRUPT.
• Habilitar la interrupción para que pueda ocurrir.
• Una vez que se ejecute la ISR, el retorno al programa principal se debe hacer con la
instrucción RESUME.

50
Interrupción por desbordamiento de un Timer.
Este recurso, es utilizado cuando se requiere que el programa realice una determinada acción
cada cierto tiempo. El Timer 1 del microcontrolador PIC16F876 ATOM presenta las siguientes
características:
• Es un contador de 16 bits por lo que puede llegar a realizar hasta 65535 conteos.
• Produce una interrupción al desbordarse, esto es al pasar de 65535 a 0.
• Tiene un pre-escalador con relación de escalado ajustable: 1:1, 1:2, 1:4, 1:8; de esta
manera puede temporizar hasta 104 milisegundos.

En este ejemplo se utilizará el Timer 1 para hacer una temporización de 3 segundos, veamos
como se hace!.

'11_Timer_1.bas
'EJEMPLO DE USO INTERRUPCIÓN DEL TIMER 1
SETTMR1 TMR1INT8 'Ajustar reloj interno con pre-escaler 1:8
ONINTERRUPT TMR1INT,ISR_TMR1 'Nombre de la rutina de interrupción
ENABLE TMR1INT 'Habilitar interrupción del TMR1

'SECCION DE VARIABLES Y CONSTANTES


'------------------------------------------------------------------------------
IntCuenta VAR BYTE 'Var. que almacena las veces que interrumpe el TIMER 1
'------------------------------------------------------------------------------
IntCuenta = 0 'Inicialización de variables y del programa
RESETTMR1 3036
'CUERPO DEL PROGRAMA
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.

Principal:
TOGGLE P4 'Cambia de estado LED con. en P4
GOTO Principal

'SUBRUTINAS
'------------------------------------------------------------------------------
'Esta rutina se ejecuta aprox. cada 100 ms y es la base de tiempo del reloj
ISR_TMR1:
RESETTMR1 3036 'Reiniciar el TIMER 1
IntCuenta = IntCuenta + 1 'Incrementar el contador de control
TOGGLE P5 'Cambiar el estado del LED con. en P5
IF IntCuenta >= 30 THEN 'Verificar si ya transcurrió un segundo
IntCuenta = 0
SOUND P3,[50\3500] 'Produce sonido de señalización
TOGGLE P7 'Cambia el estado del LED con. en P7
ENDIF
RESUME
'------------------------------------------------------------------------------

Programe al microcontrolador presionando CTRL + F11


Al correr el programa, el LED L3 debe verse continuamente encendido, sin embargo este prende
y apaga constantemente, su estado permite verificar que el cuerpo del programa principal está
siendo continuamente ejecutado. El LED L2 debe cambiar de estado cada 100 ms indicando que
el ATOM está atendiendo la interrupción. Finalmente al transcurrir tres segundos el LED L0
cambia su estado al tiempo que el altavoz emite un sonido señalizador.

En el programa Timer_1.bas, la rutina ISR_TMR1 se ejecuta cada vez que el Timer 1 del
microcontrolador ATOM se desborda. Esto ocurre cuando la cuenta alcanza el valor de 65535 y
como se reinicia en 3036, el Timer contará 62500 pulsos. Cada pulso tiene una duración de 0,2 us
x Pre-escalador; con la instrucción SETTMR1 TMR1INT8 se ajusta el pre-escalador en 8. De
esta forma, cada 100 ms tendremos una interrupción. En la mayoría de los casos, este valor
inicial debe ser ajustado experimentalmente debido a que en la mayoría de los casos no se

51
puede interrumpir cuando se está ejecutando una instrucción de BASIC, recuerde que estas
pueden ser bastante complejas y demorar un tiempo considerable en su ejecución.

Para determinar el valor de inicio de conteo del Timer 1, debe usarse la expresión:
TD(s)
V.Inicio =65536 −
0.2x10 −6 ⋅ PE
Donde TD es el tiempo deseado de interrupción y PE es el valor del Pre-Escalador.

La PWM por hardware.


La PWM (Pulse Width Modulation), es una técnica de modulación que en su forma más sencilla
consiste en generar un tren de pulsos de una frecuencia fija donde es variado el tiempo que dura
la señal en estado alto. Las señales de PWM son frecuentemente utilizadas para variar la tensión
aplicada a motores DC, la intensidad luminosa de una lámpara e incluso en los sistemas de
alimentación ininterrumpida (UPS) para generar el voltaje alterno AC a partir de las baterías DC.

Uno de los recursos con los que cuenta el microcontrolador ATOM, es realizar dos PWM por
hardware utilizando la instrucción HPWM. Esta PWM tiene una resolución máxima de 10 bits, esto
quiere decir, que se pueden obtener hasta 1023 anchos diferentes para el pulso alto de la señal.
Una vez iniciada, la PWM por hardware se seguirá generando como una tarea en segundo plano,
sin consumir recursos adicionales de programación del microcontrolador. De esta forma,
podremos destinar el grueso del programa a realizar otras labores y sólo cuando sea necesario
cambiar algún parámetro, ejecutar nuevamente la instrucción HPWM.

Para este ejemplo, tendrá que conectar un LED al pin P10 del
microcontrolador ATOM, siguiendo el esquema mostrado en la figura 7.2.
Al correr el programa, el LED comenzará a encenderse con poco brillo y
poco a poco irá aumentando su luminosidad hasta encenderse al
máximo.
Figura 7.2. Conexión del LED al CCP1.

'HPWM.bas
'ESTE PROGRAMA CONTROLA EL BRILLO DE UN LED CONECTADO A P10 POR HPWM
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Periodo VAR WORD 'Periodo de la señal de PWM
Duty VAR WORD 'Duración del pulso alto de la PWM
HPIN0 CON 0 'Definición del pin de trabajo CPP1 --> P10
'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
Periodo = 8000 'Periodo de 400us -> frecuencia PWM = 2.5 KHZ

Principal:

FOR Duty = 0 TO 7000 STEP 500 'Genera una PWM de ciclo útil variable desde
HPWM HPIN0,Periodo,Duty 'cero hasta 87,5% (350 us). Cada paso dura
PAUSE 250 '250 ms y así veremos como se enciende el LED
NEXT 'con intensidad creciente

FOR Duty = 7000 TO 0 STEP -500 'Ahora veremos como se va apagando lentamente
HPWM HPIN0,Periodo,Duty 'el LED hasta quedar completamente apagado
PAUSE 250
NEXT

GOTO Principal

'------------------------------------------------------------------------------

52
Tips al momento de utilizar la HPWM:
• El periodo de la señal se calcula como PWM per = Periodo ⋅ 0.05 ⋅ µs .
• El tiempo que dura el pulso en alto se determina como: THIGH = Duty . 0.05µs.
• La base de tiempo del HPWM es el Timer 2, por lo tanto, no puede ser empleado
para otras funciones (por ejemplo, Capture o Compare).
• No es conveniente que la frecuencia de la PWM supere los 20 Khz, pues se pierde la
resolución de 10 bits.
• Si se generan dos señales de HPWM independientes por P9 y P10, ambas tendrán la
misma frecuencia aunque el ciclo útil sea diferente.

Combinando varias funciones.


En este ejemplo, utilizaremos los diferentes recursos del ATOM. A la vez, Para ello, se requiere
realizar lo siguiente:
• Conectar un potenciómetro de 10kΩ al pin AX0.
• Unir los terminales P0 y P10 con un cable.

Nuestro objetivo en este caso, será utilizar el potenciómetro para variar el ciclo útil de la señal de
HPWM generada en P10. El terminal P0 y el comando PULSIN, nos permitirán medir la onda de
salida y ver como responde esta ante nuestros ajustes.

Descargue al microcontrolador ATOM del sistema de desarrollo PCB-A28, el siguiente programa.

'HPWM_TMRO.bas
'ESTE PROGRAMA MUESTRA COMO USAR LA INTERRUPCION DEL TMR0 Y EL HPWM
'CONFIGURACION DE LA INTERRUPCION DEL TMR0
SETTMR0 TMR0INT256
ONINTERRUPT TMR0INT, TMR0_ISR
ENABLE TMR0INT
'SECCION DE VARIABLES Y CONSTANTES
'------------------------------------------------------------------------------
Periodo CON 10230 'Periodo de la PWM (1955Hz)
Ciclo_Util VAR WORD 'Pulso en alto de la PWM generada
Thigh VAR WORD 'Medición del pulso alto
Tlow VAR WORD 'Medición del pulso bajo
Pwmp VAR WORD 'Medición del periodo de la PWM
Freq VAR LONG 'Medición de la frecuencia de la PWM

HPIN0 CON 0 'CPP1 --> P10


Alto CON 1
Bajo CON 0
True CON 1
PAUSE 500 'Tiempo de Inicialización del programa

'------------------------------------------------------------------------------
PAUSE 1000 'Debe colocarse siempre antes del Programa principal.
'PROGRAMA PRINCIPAL
DO
PULSIN P0,Alto,Thigh 'Mide el pulso alto en us
PULSIN P0,Bajo,Tlow 'Mide el pulso bajo en us
Pwmp = Tlow + Thigh 'Calcula el periodo en us
Pwmp = Pwmp min 2
Freq = 1000000/Pwmp 'Calcula el periodo en Hz
SEROUT S_OUT,I57600,[0,"TH=",DEC Thigh\5," uS TL=",DEC Tlow\5," uS",13]
SEROUT S_OUT,I57600,["PERIODO=",DEC Pwmp\5," uS FRECUENCIA=",DEC Freq\6," Hz",13]
SEROUT S_OUT,I57600,["CU=",REAL (FLOAT(Thigh) FDIV FLOAT(Pwmp) FMUL 100.0 )\2,"
%",13]

'Muestra el resultado de la medición


PAUSE 150 'Repite cada 150 ms
WHILE (True)

53
'SUBRUTINAS
'------------------------------------------------------------------------------
'Esta rutina se ejecuta aprox. cada 14 ms. en ella se hace la lectura de los
'dos potenciómetros y se actualiza la configuración de la PWM

TMR0_ISR:
TMR0 = 128
ADIN AX0,2,AD_RON, Ciclo_Util
Ciclo_Util = (5 min Ciclo_Util-1)
Ciclo_Util = Ciclo_Util * (Periodo/1023)
HPWM HPIN0,Periodo,Ciclo_Util
RESUME

Seleccione el terminal de comunicaciones Nro. 01 del IDE del ATOM y conecte el microcontrolador
al computador a una velocidad de 57.6 Kbs. Varíe lentamente la posición del potenciómetro
conectado en AX0, observe como cambia el valor de las variables Tlow y Thigh correspondientes
al tiempo que permanece la señal en los estados bajo y alto, respectivamente

Figura 7.3. Ejecución del programa

El programa principal de este ejemplo hace tres cosas sencillas:


• Mide el tiempo en estado alto y en bajo de la señal aplicada a P8.
• Calcula el periodo y la frecuencia de esa señal.
• Lo muestra en la PC.

Por su parte durante la interrupción del Timer 0:


• Se mide las dos señales de los potenciómetros.
• Se calculan los parámetros Periodo y Ciclo_Util para la HPWM.
• Se ejecuta o inicia la HPWM.

Finalmente, vemos como es posible combinar varios recursos para hacer un programa bastante
sencillo que efectúa una labor relativamente compleja.

Consideraciones finales…

Los microcontroladores han revolucionado al mundo en los campos de la educación, ingeniería,


robótica, instrumentación y medición de todo tipo de variables, sistemas automáticos de control,
industria automotriz, comunicaciones, es decir, en casi todos los campos de la ciencia están
presentes estos versátiles y sorprendentes dispositivos.

Usted ha comenzado con buen pie, adquiriendo un microcontrolador y un sistema de desarrollo


de excelente calidad, que realmente funcionan y le permiten que sus aplicaciones e ideas trabajen
rápidamente; por ello, más que darle las gracias por elegir nuestros productos y seguirnos a lo
largo de las páginas de este manual, queremos decirle: Felicitaciones!...

54
Solución de problemas frecuentes.

Problema. Al conectar el transformador el LED verde no enciende.

Causa Posible. Solución.

• Transformador defectuoso de muy poca corriente • Cambie el transformador por uno en buenas condiciones
de salida. o de mayor capacidad de corriente en su salida.
• Transformador inadecuado con centro negativo. • Invierta los cables del transformador en un punto
anterior al conector que entra en el PCB-A28.
• El regulador 7805 se encuentra en cortocircuito. • Desconecte cualquier componente o cable conectado a
los terminales identificados como +5V y GND.
• El regulador 7085 fue sobrecargado (se calienta y • Desconecte la causa de la sobrecarga, retire la
luego se apaga el LED). alimentación del sistema y espere 3 min antes de volver a
conectarla.

Problema. Cuando se trata de programar el microcontrolador o de compilar el programa se obtiene un mensaje de


error.

Causa Posible. Solución.

• Tiene errores en la sintaxis del programa. • Busque la línea a la que corresponde el error y compare
su sintaxis con la mostrada en el Manual de Sintaxis del
microcontrolador ATOM.
• Ha ocurrido un error no definido en el IDE en el • Reinicie el IDE, si persiste reinicie el PC.
momento de la compilación.
• Ha ocurrido un error dentro del compilador. • Reorganice el código de su programa y reinténtelo.

Problema. Aparece un cuadro de dialogo con el mensaje “ATOM must be connected to compile/program/debug”

Causa Posible. Solución.

• El sistema no se encuentra alimentado o el • Verifique que transformador de alimentación esté


voltaje es inadecuado. conectado firme y correctamente. Mida el voltaje de salida
entre +5V y GND, debe estar entre en 5 Vdc ± 10%.
• El cable serial no esta conectado, esta defectuoso • Conecte firmemente el cable tanto al lado del
o no es el adecuado. computador como del PCB-A28. Asegúrese de estar usando
un cable DB9-DB9 de extensión y no del tipo cruzado.

• Utilice el administrador de dispositivos de Windows ®


• El puerto COM no ha sido seleccionado para hallar los puertos COM disponibles para la
correctamente o está ocupado por otra aplicación. programación y corrija la selección del puerto. Reinicie el
computador.
• Utilice la aplicación “ATOM Locador” suministrada con el
CD.

• El circuito integrado ST232CN está mal conectado • Revise que el ST232CN esté colocado firme y
o dañado. correctamente sobre su base. Si se calienta, reemplácelo
por uno nuevo.
• El pulsador de RST está presionado.
• Libere cualquier objeto que pudiera estar haciendo
contacto con el pulsador.
• El microcontrolador ATOM ha sido retirado de su
base, se encuentra mal colocado o está dañado. • Verifique que el ATOM se encuentra en su base.
Verifique la posición del terminal ·#1 del ATOM con
respecto a la base. Presione ligeramente al
microcontrolador. Reemplace el microcontrolador.
• El microcontrolador ATOM ha sido grabado con
un programa que interfiere con el inicio de la re- • Dentro del IDE de programación seleccione:
programación. Tools -> System Setup -> Advanced cambie el valor
ReadTotalConstant a 100 intente programar nuevamente.
• Desconecte cualquier hardware conectado en el
protoboard.

55
Sitios de interés en la RED.

www.roso-control.com. La página de nuestra compañía, donde encontrará información de otros


productos y excelente bibliografía sobre microcontroladores entre otras cosas. Descubra gran
cantidad de información original, clases universitarias, aplicaciones reales y productos novedosos.

www.basicmicro.com. La página del fabricante del microcontrolador ATOM. Allí encontrará


información, manuales, notas de aplicación y ejemplos de utilización del ATOM y de otros
microcontroladores desarrollados por esta empresa.

56

También podría gustarte