Microcontroladores Pic Programacion en Basic Proyectos Con Pic PDF
Microcontroladores Pic Programacion en Basic Proyectos Con Pic PDF
Microcontroladores Pic Programacion en Basic Proyectos Con Pic PDF
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 1/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Tercera edición
CARLOS A. REYES
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 2/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Título original:
Microcontroladores PIC Programación en Basic
Tercera edición
ISBN-13: 978-9978-45-004-8
IMPRESO EN QUITO-ECUADOR
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 3/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CONTENIDO
Prólogo ............................................................................................................................................ix
Introducción ....................................................................................................................................xi
Capítulo 1
SOFTWARES PARA EL FUNCIONAMIENTO DEL PIC
1 Descargas e instalaciones de los softwares ...................................................................................1
1.1 Descarga del programa gratuito microcode ...............................................................................1
1.2 Descarga del programador Ic-Prog y el drive NT/2000/XP.....................................................5
1.3 Descarga del compilador PICBasic Pro .....................................................................................8
Capítulo 2
EL MICROCONTROLADOR PIC
2 ¿Qué es un microcontrolador? ....................................................................................................17
2.1 El microcontrolador PIC16F628A ...........................................................................................17
2.2 Arquitectura del PIC6F628A ...................................................................................................18
2.3 La memoria de programa .........................................................................................................19
2.4 La memoria de datos ................................................................................................................20
2.5 Características generales ..........................................................................................................22
2.6 Diagrama de pines y funciones ................................................................................................22
2.7 Consideraciones básicas pero muy útiles a la hora de montar un proyecto .............................23
Capítulo 3
EL PROGRAMA MicroCode Studio
3.1 Configuración de MicroCode Studio (IDE) .............................................................................25
3.2 Manejo de MicroCode Studio ..................................................................................................28
3.3 Identificación de errores en la compilación .............................................................................31
v
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 4/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Capítulo 4
PROGRAMANDO EN LENGUAJE BASIC
4.1 Diferencias entre el lenguaje Basic y ensamblador ..................................................................33
4.2 Aprendiendo a programar el Pic 16F628A con microcode .....................................................35
4.3 Grabando el PIC con el IC-prog 1.06A ....................................................................................36
4.4 Diferentes caminos a seguir para conseguir un mismo objetivo ..............................................39
4.5 Declaraciones disponibles en el compilador pbp 2.47 .............................................................41
Capítulo 5
PROYECTOS CON MICROCONTROLADORES PIC
5 Proyectos de aplicación ...............................................................................................................43
5.2 PROYECTOS
5.2.1 DEinstrucción
Ejercicio con la REPETICIONES
FOR NEXT ..............................................................................50
Las variables BIT, BYTE y WORD ................................................................................50
5.2.2 Luces del auto fantástico (desplazamientos) .........................................................................51
5.2.3 Proyectos propuestos con leds ..............................................................................................52
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 5/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
La palabra DEC, HEX, BIN .............................................................................................86
5.5.5 Tacómetro digital ..................................................................................................................86
5.5.6 Lectura de un potenciómetro con LCD .................................................................................88
La declaración POT ..........................................................................................................88
5.5.7 Proyectos propuestos con LCD .............................................................................................89
5.6 SONIDO
5.6.1 Generación de Sonido ...........................................................................................................90
La declaración FREQOUT ..............................................................................................90
5.6.2 Una sirena policial .................................................................................................................91
La declaración SOUND ....................................................................................................91
Utilizando un cristal de mayor velocidad ..........................................................................91
5.6.3 Generación de un timbre de teléfono celular ........................................................................93
5.6.4 Llamada telefónica DTMF ....................................................................................................94
La declaración DTMFOUT ..............................................................................................94
5.6.5 Proyecto propuesto ................................................................................................................97
5.9 COMUNICACIÓN
5.9.1 ¿Qué es la comunicación serial? .........................................................................................127
5.9.2 Modos de transmisión de datos ...........................................................................................127
5.9.2.1 Simplex ...............................................................................................…….……127
5.9.2.2 Half-duplex ....................................................................................…….……….127
5.9.2.3 Full-duplex .................................................................………………………….127
5.9.2.4 Full/full-duplex ..............................……………………………………….…….128
5.9.3 Comunicación serial RS232 ................................................................................................128
5.9.4 Comunicación serial Pic a PC .............................................................................................129
La declaración SEROUT ................................................................................................129
5.9.5 Comunicación serial PC a Pic .............................................................................................132
La declaración SERIN ....................................................................................................133
5.9.6 Comunicación serial con el CI. MAX232 ...........................................................................135
5.9.7 Comunicación serial PIC a PIC ...........................................................................................137
5.9.8 Comunicación serial RS422/485 .........................................................................................139
5.9.9 Comunicación serial PIC a PIC con la interfaz RS485 .......................................................139
5.9.10 Comunicación serial de VISUAL BASIC Y PIC .............................................................142
vii
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 6/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.10 INTERRUPCIONES
5.10.1 Utilizando la interrupción del puerto B.0 ..........................................................................160
Las declaraciones ON INTERRUPT, DISABLE, RESUME Y ENABLE .................160
5.10.2 Utilizando la interrupción del puerto B.4 al B.7 ...............................................................162
5.10.3 Reloj digital utilizando la interrupción del TMR0 ............................................................162
5.10.4 Proyectos propuestos con interrupciones ..........................................................................165
5.12 UTILIZANDO
5.12.1 ELenPIC12F6XX.
Parpadeo de leds el puerto GPIO .................................................................................175
5.12.2 Proyectos propuestos con el conversor A/D .....................................................................177
Capítulo 6
SIMULACIÓN Y RUTEADO CON PROTEUS
6.1 Simulación del led intermitente .............................................................................................179
6.2 Simulación de un LCD 2x16 ..................................................................................................182
6.3 Generación de PCB (Print Circuit Board) ..............................................................................183
6.4 Impresión del PCB (Tarjeta de circuito impreso) ..................................................................186
CapítuloMÉTODO
7
DE FABRICACIÓN DE CIRCUITOS IMPRESOS
7.1 Diseño del circuito impreso por software ..............................................................................187
7.2 Impresión de las pistas y screen de los elementos .................................................................188
7.3 Preparación de la placa (Baquelita o Fibra de vidrio) ............................................................188
7.4 Transferencia térmica del papel hacia la lámina de cobre .....................................................190
7.5 Proceso de atacado (reducción) del cobre ..............................................................................191
7.6 Proceso de limpieza de la placa ya atacada con ácido ...........................................................193
7.7 Transferencia térmica del screen de los elementos ................................................................194
7.8 Perforación de la placa ...........................................................................................................194
7.9 Soldadura de elementos ..........................................................................................................195
7.10 Chasís o caja para proyectos ................................................................................................203
Apéndices
Apéndice A Sitios web relacionados con este libro ..................................................................211
Apéndice B Próxima entrega .....................................................................................................211
viii
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 7/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PRÓLOGO
Los microcontroladores pasan muchas veces desapercibidos, trabajan incansablemente sin que
nos demos cuenta las 24 horas del día, pueden estar hasta en nuestro bolsillo, algunos están tan
cerca como dentro del cuerpo y otros tan lejos como en el planeta Marte. En la actualidad existe
un promedio de 40 microcontroladores en cada hogar y esta cifra va en aumento, lo cierto es que
cada vez dependemos más de estas pequeñas computadoras que hacen que nuestra vida sea más
fácil.
Han pasado más de 30 años desde que los primeros microcontroladores hicieron su
aparición, y ningún otro dispositivo ha sido tan versátil, o tiene la misma acogida, todo esto ha
motivando a muchos autores a escribir más de este circuito integrado que sobre cualquier otro.
Desde su inicio han evolucionado mucho, partiendo del microcontrolador 8048 de Intel, si lo
comparamos con los modelos actuales veremos que ahora tienen capacidad de hasta un mega de
memoria de programa, procesan señales digitales y manejan todos los periféricos disponibles en
la actualidad: serial, paralelo, USB, I²C, one wire, X10, etc., ahora imaginemos todo lo que está
por venir.
Para entender su importancia debemos analizar qué pasaría si dejan de funcionar por un
minuto: no habría comunicación; centrales telefónicas, celulares y radios dejarían de funcionar, lo
mismo sucedería
tráfico aéreo con:encomputadoras,
estaría satélites
peligro, los aviones noypodrían
con ellovolar
el comercio marítimo entraría
sin sus instrumentos en caos, el
de navegación,
el sistema electrónico de los vehículos fallaría, las fabricas paralizarían su producción, en los
hospitales muchos equipos electrónicos quedarían inservibles, en cada hogar dejaría de funcionar
los sistemas de seguridad y de incendio, ascensores, y electrodomésticos en general, en definitiva
se paralizaría todo el mundo llegado a un colapso general.
Este libro trata específicamente sobre el microcontrolador PIC® de Microchip
Technology Inc. ya que es el fabricante que lleva el liderazgo por su bajo costo, fácil
programación y la gran disponibilidad de modelos a elegir según sea las necesidades.
La metodología de enseñanza será hacer el proyecto poniéndolo en funcionamiento, para
luego dar explicaciones bien detalladas ya que también está orientada a principiantes, podría
parecer muy obvio pero las explicaciones no están demás, yo mismo he tenido problemas con
algunos libros al no poder pasar más allá del primer ejercicio, aunque el libro decía que era para
principiantes, y sin contar que me cansaba leyendo tanta teoría. Por eso no pretendo causar
desinterés en el lector con una montaña de teoría, porque para ello existen muchos libros donde
se trata más a fondo sobre la estructura del microcontrolador, más bien intento entusiasmarles con
proyectos de fácil aprendizaje y aplicaciones muy útiles en su hogar, empresa y por qué no para
realizar proyectos importantes de automatización de fábricas, ya que se incluye circuitos de
control y manejo de control computarizado con Visual Basic, al final de todos los capítulos se
dará referencia de paginas web en donde se puede encontrar más información al respecto. Ya que
ix
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 8/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 9/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
INTRODUCCIÓN
proyectos
difíciles depara poderen
entender, entender más se
esta edición adelante, ya queel cada
ha mejorado vez 5.11.3
proyecto serán más grandes digital
Termómetro pero nocon
muy
el
PIC16F877A utilizando el conversor A/D a 10 bits.
El Capítulo 6 trata de la simulación y ruteado utilizando el programa PROTEUS, de igual
manera se enseñará paso a paso cómo montar un circuito para simular y adicionalmente para su
posterior ruteado, terminando con la impresión de pistas y screen de elementos.
En el Capítulo 7 se enseña a fabricar circuitos impresos, mediante un sencillo método: la
transferencia térmica, aquí se indicará todos los pasos necesarios para la fabricación del grabador
de PIC´S UNIVERSAL PICmicro5, para el cual se entrega conjuntamente con este libro una
lámina para la transferencia térmica de las pistas y el screen de los elementos, además se
enseñará técnicas de soldaduras y terminaremos con la fabricación de un chasís para sus
proyectos, este le dará una buena presentación y acabado.
xi
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 10/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 1
SOFTWARES PARA EL FUNCIONAMIENTO DEL PIC
En este Capítulo se aprenderá a descargar los softwares necesarios para poder editar, compilar
y programar los ejercicios prácticos que se incluye en este libro, se seguirá paso a paso cómo
descargar del internet. Recuerde que hay actualizaciones cada 6 meses por lo que se recomienda
visitar frecuentemente estas páginas, adicionalmente se incluye algunos de estos softwares libres
en CD:\Soft-Free.
Este es el primer programa que debe descargar del internet, primero ingrese en la página
www.mecanique.co.uk y luego realice los siguientes pasos:
1a) Una vez abierto la página web haga un clic en Microcode Studio, como ilustra la siguiente
figura:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 11/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
1b) Se presentará una nueva ventana, deslice la barra de desplazamiento que está a la derecha de
la pantalla hasta encontrar USA hosted by microEngineering Labs literal 1c).
1c) En esta pantalla haga un clic en USA hosted by microEngineering Labs, o cualquiera de los
otros servidores y espere un momento para pasar al siguiente literal.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 12/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
1e) En esta ocasión descargará el software Microcode Studio versión 3.0.0.5. Esta es la versión
más reciente que corresponde al mes de abril del 2008, posteriormente podrá descargar de la
misma manera las últimas versiones disponibles. Ahora bien proceda dando un clic encima de
Download MicroCode Studio 3.0.0.5.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 13/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 14/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
1h) Enseguida se presentará una pantalla de descarga, aquí puede marcar el recuadro de Cerrar el
diálogo al terminar la descarga, para que se cierre automáticamente al finalizar y emita un
sonido, esta descarga puede tardar unos 3 minutos, mientras lo hace puede seguir descargando el
siguiente programa.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 15/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
2b) Se presentará una ventana similar al siguiente gráfico. Proceda dando un clic en Download.
2c) En esta pantalla podrá descargar 2 archivos simultáneamente, el primero es el programa IC-
Prog 1.06A, el segundo es el driver para windows NT/2000yXP que podría necesitar si dispone
de estos sistemas operativos, y opcionalmente puede descargar el archivo de ayuda en español
Helpfile in Spanish Language. Primero descargue IC-Prog 1.06A como se indica en el siguiente
literal.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 16/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 17/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 18/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para instalar el Entorno de Desarrollo Integrado IDE, se debe ejecutar el archivo mcsinstall.exe
que terminó de descargar anteriormente, se abrirá una ventana de bienvenida (ver la siguiente fig.
izquierda), luego presione Next y en la siguiente ventana (figura derecha), marque I accept the
agreement y presione Next.
A continuación aparecerá una nueva ventana en donde se muestra el lugar donde se va a instalar
el archivo, C:\Archivos de programa\Mecanique\MCS, elimine \Archivos de programa y deje que
se instale en C:\Mecanique\MCS, presione Next, espere unos segundos y finalmente presione
Finish.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 19/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para instalar este software se necesita descomprimirlo, existen 2 formas de hacerlo, la primera es
utilizando el extractor de archivos de WINDOWS, y la segunda es utilizando el extractor de
archivos de WINZIP que se enseñará más adelante.
Para descomprimir el archivo con WINDOWS, localice el archivo icprog106A.zip a
través del explorador de Windows y de doble clic, se abrirá una nueva ventana mostrando su
contenido (ver la siguiente fig. izquierda), luego presione en Extraer todos los archivos y en la
siguiente ventana presione Siguiente.
A continuación aparecerá una nueva ventana en donde se muestra el lugar que se va a descargar el
archivo, déjelo en la misma carpeta C:\descargas\icprog106A, presione Siguiente. Luego se abre
una nueva ventana informando que los archivos han sido descomprimidos, marque la casilla
Mostrar archivos extraídos y presione Finalizar (figura derecha).
Ahora descargar
puede procedamos a descomprimir
gratuitamente desdeelwww.winzip.com.
archivo mediante Oelpuede
software WINZIP
utilizar el que, este software
se incluye en lo
el
CD en CD:\Soft-Free. Una vez que esté instalado WINZIP en el computador, localice el
archivo icprog106A.zip a través del explorador de windows y haga doble clic sobre el mismo, en
ese instante se ejecutará el programa WINZIP, en esta pantalla presione la tecla Agregar (I
Agree), sólo si sale una pantalla similar a la figura derecha que se presenta a continuación
presione Wizard.
10 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 20/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Luego presione Next, le preguntará si desea adicionar un fólder favorito ponga No.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 21/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Si usted dispone de cualquiera de estos sistemas operativos es necesario tener instalado este
driver paradeque
una serie el programador
errores IC-prog106A
en la ejecución funcione
del programa, (ver correctamente.
figura derecha).Caso
Paracontrario
instalarloobservará
primero
necesita encontrar el archivo Icprog_driver.zip que descargó del internet, luego proceda a
descomprimirlo como se aprendió anteriormente. Una vez que termine de descomprimir,
aparecerá la carpeta icprog_driver el cual contiene el archivo icprog.sys, este archivo debe
moverlo dentro de la carpeta C:\mecanique\icprog106A , junto al archivo ejecutable icprog.exe
sólo de esta manera se lo podrá activar, (ver la siguiente figura izquierda).
12 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 22/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 23/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Este programa se debe descomprimir de igual forma que se aprendió anteriormente, si decide
utilizar la versión demo debe tener en cuenta que sólo puede compilar 31 líneas de programa,
también se debe considerar que no se puede incluir la declaración INCLUDE, por lo que no se
puede realizar proyectos de comunicación serial. Para este libro se asume que usted tiene la
versión completa de PICBasic PRO, de todas maneras la mayoría de las prácticas a realizarse son
posibles compilarlos con la versión demo, además si no dispone de ningún compilador se incluye
en el CD todos los archivos .HEX, necesarios para grabar en el PIC16F628A, de esta manera se
podrá ver el funcionamiento de todos los proyectos que se encuentran en este libro.
Para instalar este compilador, debe ejecutar el archivo PBP_demo_install.exe, y seguir los pasos
que se muestran en las siguientes figuras, puede ubicarle directamente dentro de la carpeta
C:\mecanique\PBPDEMO, si lo prefiere, caso contrario lo deberá mover posteriormente.
14 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 24/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En esta última ventana asegúrese que la casilla Install MicroCode Studio IDE no esté marcada,
pues este es el instalador de Microcode Studio versión 2.1.0.7, el cual ya no lo necesitamos, más
bien lo eliminaremos para que no ocupe espacio en el disco duro (ver figura derecha).
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 25/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 26/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 2
EL MICROCONTROLADOR PIC
2. ¿QUÉ ES UN MICROCONTROLADOR?.
Un microcontrolador de fábrica, no realiza tarea alguna, este debe ser programado para
que realice desde un simple parpadeo de un led hasta un sofisticado control de un robot. Un
microcontrolador es capaz de realizar la tarea de muchos circuitos lógicos como compuertas
AND, OR, NOT, NAND, conversores A/D, D/A, temporizadores, decodificadores, etc.,
simplificando todo el diseño a una placa de reducido tamaño y pocos elementos.
Los microcontroladores PIC (Peripheral interface Controller), son fabricados por la empresa
MICROCHIP Technology INC. cuya central se encuentra en Chandler, Arizona, esta empresa
ocupa el primer lugar en venta de microcontroladores de 8 bits desde el año 2002. Su gran éxito
se debe a la gran variedad (más de 180 modelos), gran versatilidad, gran velocidad, bajo costo,
bajo consumo de potencia, y gran disponibilidad de herramientas para su programación. Uno de
los microcontroladores más populares en la actualidad es el PIC16F628A y sus variantes
PIC16F627A y PIC16F648A, estos modelos (serie A) soportan hasta 100.000 ciclos de escritura
en su memoria FLASH, y 1’000.000 ciclos en su memoria Eeprom, este está reemplazando
rápidamente al popular PIC16F84A, pues presenta grandes ventajas como son:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 27/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Todas estas y otras ventajas más como el oscilador interno RC de 4MHZ, MCLR programable,
mayor capacidad de corriente, Programación en bajo voltaje, etc. Lo hacen al PIC16F628A, como
el microcontrolador ideal para estudiantes y aficionados, ya que al tener oscilador interno y el
MCLR (master clear) sea programable, es mucho más sencillo ponerlo en funcionamiento, basta
con conectar al pin 14 a 5V y el pin 5 a tierra para que empiece a trabajar (ver figura 2.7.1).
11 bits 9 bits
Bus de Bus de
Instrucciones Datos
9 bits
Memoria Bus común de
única direciones
de CPU
Instrucciones 8 bits
y Datos
Bus de Datos e
Instrucciones
Figura 2.2.2. En la arquitectura Von Neumann se conecta el CPU con una memoria única en
donde se almacenan datos e instrucciones en forma indistinta, compartiendo el mismo bus.
El CPUdedel
juego microcontrolador
instrucciones 16F6XX
reducido) emplea
con un una35avanzada
set de arquitectura
instrucciones RISC
poderosas (computador acon
pertenecientes la
gama media de la familia de los microcontroladores PIC, la mayoría de instrucciones se ejecutan
en un ciclo de instrucción a excepción de los saltos que requieren de 2 ciclos, dentro de su
Procesador existe una PILA de 8 niveles que permiten el anidamiento de subrutinas, esto quiere
decir que puede retomar 8 lugares diferentes de línea de programa e ir regresando a cada uno en
el orden inverso al que fueron anidados (ver figura 2.3.1).
18 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 28/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Bus de Datos
Contador Prog.
Memoria
13 8
Flash de
Programa Memoria
16F628A Pila de 8 Niveles Memoria
EEPROM
2K x 14 (13 bits) RAM
de Datos
3 PORT B
Temporizador de MUX
encendido PWRT RB0/INT
RB1/RX/DT
Control Temporizador de
Decodificador arranque oscilador
RB2/TX/CK
Instrucciones
ALU RB3/CCP1
Circuito de RB4/PGM
RESET 8
RB5
Generador Circuito de RB6/T1OSO/T1CKI
Reg. W
de tiempos vigilancia WDT
RB7/T1OSI
OSC1/CLKIN Detector
OSC2/CLKOUT Brown-out
Bajo voltaje de
Programación
MCLR VDD
VSS
Figura 2.2.3. Diagrama de los bloques funcionales del PIC, su conexión interna es
mediante buses, se aprecia la conexión de las 3 memorias Flash, Ram y Eeprom.
Conocido también como memoria de instrucciones, aquí se escribe las ordenes para que el CPU
las ejecute. En el caso del microcontrolador PIC16F628A tiene memoria de programa no volátil
tipo FLASH, en comparación a su antecesor la memoria EEPROM, este se caracteriza por ser
más rápido en el proceso de escritura/borrado eléctrico, además dispone de mayor capacidad de
almacenamiento, esta característica
grabación y el borrado son frecuenteshace que seaque
(recuerde ideal para 100.000
soporta prácticasciclos
de laboratorio en donde la
de escritura/borrado).
El bus de direcciones de la memoria de programa es de 13 bits, por lo que el Contador de
Programa (PC) puede direccional 8192 posiciones de 14 bits cada una (desde la 0000h hasta
1FFFh), de las cuales sólo las primeras 2048 líneas tiene implementadas (desde la 0000h hasta la
07FFh), es decir que el PC sólo utiliza los 11 primeros bits de direcciones los demás bits los
ignora.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 19
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 29/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PC <12:0>
CALL, RETURN 13
RETFIE, RETLW
Nivel 1 de la Pila
Nivel 2 de la Pila
Nivel 8 de la Pila
Figura 2.3.1. Mapa de la memoria de Programa,
de las 8196 posiciones, sólo tiene implementado las Vector de RESET 0000h
primeras 2048 posiciones, la dirección 0000h está
s
reservada para el vector de reset y la 0004h está e
n
reservada para el vector de interrupción. o
i
c
i
Vector de INTERRUPCION 0004h
s 0005h
o
P
8
MEMORIA
4 DE
0
2 PROGRAMA
PIC16F628A
07FFh
NO
IMPLEMENTADO
1FFFh
El PIC16F628A, tiene dos tipos de memorias de datos, la RAM estática o SRAM (Random
Access Memory) o memoria de acceso casual que es un tipo de memoria volátil, es decir sus
datos permanecen
importancia porqueenahílaresiden
memoriadosmientras
tipos de exista
datos, alimentación en propósito
los registros de el dispositivo y es(GPR),
general de vital
en
donde se almacenan las variables y los registros especiales (SFR), que son los encargados de
llevar el contador de programa, el conteo del Temporizador, el estado de los puertos, la
configuración de las interrupciones, etc.
El otro tipo de memoria es una memoria auxiliar no volátil llamada EEPROM, con
capacidad de 128 posiciones de 8 bits cada una. Esta memoria puede ser accedida por el usuario
mediante programación, es muy útil para almacenar datos que el usuario necesita que se
conserven aún sin alimentación, tal es el caso de la clave de una alarma, esta puede ser
modificada, pero no debe perderse por un corte de energía, el fabricante asegura que la serie
PIC16F6XXA, tiene una retención de datos en esta memoria mayor a 100 años.
Como este microcontrolador es fabricado con tecnología CMOS, su consumo de potencia
es muy bajo (2 mA a 4 Mhz) y además es completamente estático, lo que significa que si el reloj
se
La detiene
memoria losdedatos
datosdeRAM,
la memoria RAM
tiene 512 no se
líneas depierden, estouna
8 bits cada mientras
y está el micro siguepor
particionada alimentado.
4 bancos;
el banco 0, banco 1, banco 2 y banco 3, cada uno con 128 bytes, el acceso a cada banco de
memoria lo realiza los bits RP1 y RP0 del registro STATUS, la mayoría de los bytes son
ocupados por los Registros de Funciones Especiales (SFR) o no están implementadas. Para el
caso del PIC16F628A sólo 224 posiciones de memoria RAM están disponibles para los Registros
de Propósito General (GPR), la distribución de memoria se muestra en la tabla de la figura 2.4.1.
20 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 30/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Dir. indirecto (1) 00h Dir. indirecto (1) 80h Dir. indirecto (1) 100h Dir. indirecto (1) 180h
TMR0 01h OPTION 81h TMR0 101h OPTION 181h
PCL 02h PCL 82h PCL 102h PCL 182h
STATUS 03h STATUS 83h STATUS 103h STATUS 183h
FSR 04h FSR 84h FSR 104h FSR 184h
PORTA 05h TRISA 85h 105h 185h
80 Bytes RegistrosG.
Propósito 14Fh
Registros
96 Bytes Propósito 150h
Registros General
Propósito EFh 16Fh 1EFh
General 70h F0h 170h 1F0h
acceso acceso acceso
70h – 7Fh 70h – 7Fh 70h – 7Fh
7Fh FFh 17Fh 1FFh
Figura 2.4.1. Mapa de la memoria de DATOS SRAM, los bloques marcados con tramas no son
implementados, se leen “0” las localidades marcadas con (1) no son registros físicos, las
localidades 20h a 7Fh, corresponden a los 96 bytes de los registros de propósito general GPR,
80 bytes GPR en el banco 1(A0h – EFh) y 48 bytes GPR en el banco 2 (120h – 14Fh), dando un
total de 224 bytes disponibles para el usuario. Para mayor información y utilización de los SFR,
refiérase al datasheet del PIC16F6XXA que se incluye en el CD de este libro.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 21
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 31/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Hasta aquí se puede resumir las características más relevantes del PIC16F628A, estas son:
RA2/AN2VREF RA1/AN1
RA3/AN3/CMP1 RA0/AN0
RA4/TOCKI/CMP2 RA7/OSC1/CLKIN
RA5/MCLR/THV RA6/OSC2/CLKOUT
VSS VDD
RB0/INT RB7/T1OSI
RB1/RX/DT RB6/T1OSO/T1CKI
RB2/TX/CK RB5
RB3/CCP1 RB4/PGM
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 32/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PIN NOMBRE DESCRIPCION
17 RA0/AN0 Pin bidireccional I/O, entrada comparador análogo.
18 RA1/AN1 Pin bidireccional I/O, entrada comparador análogo.
1 RA2/AN2/VREF Pin bidireccional I/O, entrada comp. análogo y Voltaje de referencia.
2 RA3/AN3/CMP1 Pin I/O, entrada comp. análogo y salida del comparador análogo 1.
3 RA4/T0CKI/CMP2 Pin
4 RA5/MCLR/VPP Pin I/O, entrada en
de entrada, reloj TIMER0
modo MCLR y salida
activa del comparador
RESET externo.análogo 2.
15 RA6/OSC2/CLKOUT Pin I/O, entrada oscilador externo, salida de ¼ de la frecuencia OSC 1.
16 RA7/OSC1/CLKIN Pin I/O, entrada oscilador externo, entrada del reloj externo.
6 RB0/INT Pin I/O, resistencia Pull-Up programable, entrada de interrupción ext.
7 RB1/RX/DT Pin I/O, resist. Pull-Up, entrada dato RS232, I/O dato serial asincrónico.
8 RB2/TX/CK Pin I/O, resist. Pull-Up, salida dato RS232, I/O señal de reloj asincrónico.
9 RB3/CCP1 Pin I/O, resist. Pull-Up, módulo CCP/PWM entrada o salida.
10 RB4/PGM Pin I/O, resist. Pull-Up, entrada del voltaje bajo de programación.
11 RB5 Pin I/O, resistencia Pull-Up programable.
12 RB6/T1OSO/T1CKI Pin I/O, resist. Pull-Up, salida oscilador TIMER1, entrada reloj de ICSP.
13 RB7/T1OSI Pin I/O, resist. Pull-Up, entrada oscilador TIMER1, I/O datos de ICSP.
NOTA: sus 2 puertos el A y el B entregan un total de 200mA cada uno, es decir 25 mA cada pin.
En modo sumidero pueden soportar cada uno de sus puertos 200mA. es decir 25 mA. cada pin.
Es muy importante tomar en cuenta estas recomendaciones ya que si no se las sigue podría correr
el riesgo de dañar el PIC:
1. recuerde que el PIC tiene tecnología CMOS, esto quiere decir que consume muy poca corriente
pero que a la vez es susceptible a daños por estática, se recomienda utilizar pinzas para manipular
y así poder transportar desde el grabador al protoboard o viceversa, o a su vez utilizar una manilla
antiestática.
2. procure utilizar un regulador de voltaje como el 7805 que nos entrega exactamente 5V. y no un
adaptador de pared, ya que el voltaje de salida no siempre es el mismo del que indica su
fabricante, por último puede utilizar un circuito con un diodo zener de 5.1 V.
3. no sobrepase los niveles de corriente, tanto de entrada como de salida, recuerde que el PIC
puede entregar por cada uno de sus pines una corriente máxima de 25 mA. Asimismo soporta una
corriente máxima de entrada de 25 mA., esto quiere decir que puede encender un led con una
resistencia de 330 Ω, revisemos:
Ahora un ejemplo de corriente de entrada al PIC, si queremos poner un pulsador ¿Qué resistencia
sería la mínima a colocarse?.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 23
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 33/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Como sabemos la corriente de entrada que soporta por cada pin del PIC es de 25mA entonces
para un pulsador tenemos que:
Esto quiere decir que la resistencia mínima a colocarse sería de 220 Ω para estar al límite
de la capacidad que soporta el PIC, pero no es muy aconsejable trabajar con los límites, por lo
que se recomienda utilizar una resistencia de 1 K Ω a 10 K Ω, así el PIC estaría trabajando
tranquilamente con una corriente de entrada de 5 mA o 0,5 mA respectivamente.
4. En algunos proyectos es necesario conectar un capacitor de 0,1uF o 1 uF en paralelo al PIC,
este evita mal funcionamientos que podrían ocurrirle, en especial cuando se utiliza teclados
matriciales y se tiene conectado adicionalmente un buzzer activo (parlante activo o chicharra) y
relés.
5. Cuando se necesite precisión en el trabajo del PIC (comunicación serial, tonos DTMF, etc.), se
recomienda utilizar un cristal oscilador externo de 4 MHZ en adelante, ya que el oscilador interno
RC que posee no tiene muy buena precisión. En un experimento realizado se conectó dos PIC
idénticos con el mismo programa el cual consistía en hacer parpadear un led con intervalos de 1
segundo,
eran ambos
iguales, PIC compartían
al transcurso de unoslaminutos
misma los
fuente
ledsysealhabían
momento de arrancar
desigualado, estolos dos parpadeos
demuestra que la
calibración interna no es igual en todos los micros, si utilizáramos cristales externos de 4 MHZ en
ambos PIC, no se desigualan nunca, esto debido a que los cristales son muy precisos en cuanto a
la frecuencia que entregan.
Con todas estas recomendaciones se tiene el siguiente diagrama para encender un led y
conectar un pulsador sin que el PIC sufra ningún daño.
Figura 2.7.1. Diagrama básico para conectar un PIC con un LED y un pulsador, noten que el
PIC no necesita oscilador externo ni tampoco resistencia pull-up conectado al MCLR o puerto
RA5 como lo necesitaba su antecesor el PIC16F84A.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 34/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 3
EL PROGRAMA MicroCode Studio
En este Capítulo se enseñará a configurar el editor de texto IDE, para tener el mejor rendimiento
posible, lo primero que se debe hacer es agrupar dentro de la carpeta C:\mecanique los dos
programas, el pbp 2.47 y el IC-prog 106A, con la finalidad de que la primera vez que ejecute el
programa microcode, pueda encontrar inmediatamente su compilador pbp 2.47 y su programador
IC-prog 106A. Para esto debemos utilizar el explorador de windows y buscar las dos carpetas que
seguramente estarán dentro de C:\unzipped\ o C:\descargas\ y proceda a cortar y pegar dentro de
C:\mecanique\, luego es necesario eliminarlos de su ubicación original, el siguiente gráfico
muestra la forma de cómo debería quedar ubicadas las carpetas:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 35/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 36/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Inmediatamente aparece otra pantalla aun más pequeña en donde debe marcar create a custom
programmer entry, luego presione Next. En la siguiente pantalla escriba cualquier nombre que
desee darle al programador, en este caso será icprog y luego presione la tecla Next.
En esta pantalla le pedirá que ponga el nombre del archivo ejecutable escriba icprog.exe y luego
presione Next. Aparecerá otra pantalla con dos botones el uno localiza automáticamente la
carpeta en donde se encuentra el ejecutable, y el otro es para localizar manualmente, si está
seguro que es el único archivo icprog.exe puede presionar la tecla Find Automatically.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 37/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En esta pantalla le pedirá parámetros de programación, como para IC-prog no hace falta no
escriba nada y sólo presione la tecla Finished, luego desaparece esta pantalla y sólo queda la
pantalla de PICBasic Options, en donde debe asegurarse de los cambios presionando OK. Todos
los ajustes realizados hasta aquí sólo se los reliza una sola vez.
1. Modelo de
MicroPIC
8.Compilador
2. Buscador
de códigos
7. Encabezado
del programa
3. Número
de línea del
programa 6.Comentarios
4. Espacio que
ocupa en el PIC
5. Programa del microcontrolador Figura 3.2.1. Partes de MicroCode
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 38/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
1. Modelo de MicroPIC.-
Esto es lo primero que debe seleccionar antes de empezar a programar, seleccione de
acuerdo al modelo de Pic que se va a programar sea este 16F627, 16F627A, 16F628, 16F628A,
16F818, 16F819, 16F84A, 16F877A, etc.
2. Buscador de códigos.-
Aquí se van adicionando cada vez que se crea una variable, al incluir un define, o crear
algún nombre de línea, sirve para saber qué componentes incluyen en el programa y también
como buscador de líneas, para esto basta con dar un clic en el nombre de la línea que desea
encontrar y automáticamente le indicará donde está dicha línea.
4. Espacio
Esteque
sí esocupa en el que
el espacio PIC.-
se requiere en la memoria FLASH del Pic y aparece una vez que
se compila el programa, debe fijarse si alcanza en el PIC que dispone o debe reemplazarlo por
otro de mayor capacidad.
Línea 14: led VAR portb.0, indica que el Pin # 6 del PIC 16F628A se llamará en adelante led
Línea 15: pepe:, estamos asignando una subrutina con el nombre de pepe y se lo crea
escribiendo cualquier nombre seguido de 2 puntos ( : ) ejemplo:
Luis:, LUIS:, LuIS:, Alarma:, LedApagado:, Zona3:, Contador:.
NOTA: No se debe empezar con números y tampoco debe contener espacios, ejemplos de lo
que no se debe hacer:
3pepe: en su lugar escriba pepe3:, pepe 3: el espacio no acepta PICBasic Pro, tampoco
acepta pepe3 :, porque hay un espacio entre el 3 y los dos puntos.
Línea 16: HIGH led, significa sacar 5 voltios por el pin 6, lo cual encendería el led.
Línea 17: PAUSE 1000, genera una pausa o retardo de 1000 milisegundos, que equivale a 1s.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 39/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Línea 18: LOW led, significa poner el pin 6 a un estado bajo o 0 voltios, esto apagaría el led.
Línea 19: PAUSE 1000, como ya se explicó antes genera una espera de 1 seg. sin hacer nada.
Línea 20: GOTO pepe, Como el ingles lo dice ir a pepe, indica continuar desde la línea 15, con
esto se repetiría el parpadeo del led para siempre.
NOTA: PicBasic Pro ejecuta las instrucciones en orden desde arriba hacia abajo, en el caso del
ejercicio anterior desde la línea 14, luego la 15, 16,17,18,19,20, luego de esta última salta
a la línea 14 por acción del GOTO pepe, y nuevamente repite el proceso.
Línea 21: END, Fin de las instrucciones, sirve para indicarle al compilador pbp que hasta aquí es
el programa válido.
6. Comentarios.-
Es recomendable usar comentarios todo el tiempo, aunque sea obvio para usted, alguien
podría necesitarlo, y por qué no para usted mismo, dentro de un tiempo no recordará ni cómo lo
hizo ni cómo funciona, ni para qué servía tal instrucción.
NOTA: Los comentarios se crean anteponiendo un punto y coma ( ; ), noten que el texto cambia
de color de negro a azul y del tipo cursiva.
Trate de poner comentarios entendibles por ejemplo:
HIGH portb.3 ;activar el relé, que enciende el MOTOR.
8. Compilador.-
Estos 2 botones sirven básicamente para compilar el programa y crear el archivo. ASM,
.MAC, y el .HEX, el .HEX sirve para grabar en el micro, el .MAC sólo sirve para el PICBasic y
el .ASM, para personas interesadas en ver cómo lo hizo el compilador en assembler ya que
podemos abrirlo en MPLAB.
Compile Only - F9. Este primer botón sirve para compilar, es decir el programa lo
cambia a assembler y lo crea el .HEX, más adelante se verá cómo trabaja.
Compile and Program - F10. Este botón tiene doble función, aparte de hacer lo mismo
que el botón anterior, es decir compilar, también puede llamar al programador Ic-prog, con la
finalidad de ahorrarnos tiempo y no tener que abrir por separado, es aconsejable utilizarlo una
sola vez, y una vez que el programador IC-prog ya está abierto, en adelante sólo se debe utilizar
el botón Compile Only – F9.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 40/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En el momento que se compila un programa este realiza una previa verificación del mismo, si
existen errores microcode señala el primer error que encuentra con una franja CAFÉ, luego en la
parte inferior menciona los demás errores con el número de línea y su explicación, por eso se
recomienda activar la opción que muestra el número de línea de programación, (si desea activar
esta opción refiérase al capítulo 3 página 26), a continuación un ejemplo de error en la
compilación en el que se escribió highh en vez de high.
MENSAJE EXPLICACIÓN
Syntax error Error de sintaxis, mal escrito, falta o está demás una letra
Bad expresión Mala expresión, mal escrito, falta o está demás una letra
ID pep is not a LABEL La línea pep no es un nivel, o nombre de línea incorrecto
For without a matching next Cuando falta un next
next without a matching for Cuando falta un FOR ejem. Fo x = 1 to 12
undefined symbol “portc” Cuando se pone un Puerto que no dispone el pic
80000 numeric overflow Exceso del valor límite ejem. PAUSE 80000
bad token “.” No se colocó el número del pin 1,2,3. Ejem. LOW portb.
bad variable modifier: .O. Ejem. LOW portb.O puso la letra ( O ) en vez del cero ( 0 )
processor file 12F675 Este error sale en compiladores de versiones antiguas, ya que no dispone
de este modelo de PIC por ejemplo en el PBP 2.33
undefined symbol “cncom” Indica que no existe ese registro en el PIC seleccionado
code crossed boundary @800h Es una precaución que indica que el programa sobrepasa las 2048 líneas
de programación, aunque si compila no es un problema.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 41/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 42/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 4
PROGRAMANDO EN LENGUAJE BASIC
Para poder entender la diferencia entre los dos lenguajes de programación, se debe tener en claro
qué es un lenguaje de alto nivel y qué es un lenguaje de bajo nivel, a través del siguiente cuadro
podemos ver los niveles de programación.
LENGUAJE HUMANO
.................
Otros lenguajes
.................
LENGUAJE DE MAQUINA
Figura 4.1.1. Cuadro de los niveles de programación, el lenguaje que más se acerca a los
humanos es el de más alto nivel, el lenguaje más próximo al tipo de datos que entiende el
microcontrolador es un lenguaje de bajo nivel.
Por consiguiente vamos a programar con un lenguaje de alto nivel, el que más entendemos los
humanos, esta es la gran diferencia entre Ensamblador y BASIC, a continuación un ejemplo de un
programa en Basic para el PIC16F628A que hace parpadear un led con intervalos de 1 segundo.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 43/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
A continuación el mismo proyecto para el parpadeo del led pero en lenguaje ensamblador.
list p=16F628A
Como se puede ver es mucho más largo y difícil de entender, además debe conocer las posiciones
de memoria que están disponibles para este PIC, así como también la arquitectura del PIC,
también se debe hacer cálculos muy precisos para generar el retardo de 1 segundo.
34 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 44/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
También hay que considerar el tiempo que se demora en programar en Assembler con el tiempo
que se demora en programar en BASIC, las herramientas que nos facilita el compilador de
PicBasic Pro son muy útiles y de gran ahorro de trabajo, un ejemplo es la llamada telefónica que
sólo con una línea de escritura ya nos genera los tonos DTMF esto es:
Este es el objetivo primordial de este libro, enseñar a programar micros PIC de la forma más
rápida posible, si no ha leído completamente el libro le recomendamos leer el literal 3.2
MANEJO DE MicroCode Studio página 28.
Vamos a proponer nuevamente el proyecto que ya hemos visto antes, pero esta vez lo
pondremos en funcionamiento, escriba el programa que viene a continuación, o abra el archivo
del CD Ejercicios\ led intermitente.pbp y siga los siguientes pasos. NOTA *.pbp = *.bas
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 45/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 46/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 47/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Los motivos por los que sale el mensaje error en el código 0000h podrían ser los siguientes:
1. Si el LED rojo del grabador no se encendió mientras estaba programando, revise si está
conectado en el puerto com correcto.
2. Si dispone de dos puertos com pruebe cambiando al otro puerto com hasta que se encienda el
led rojo del grabador.
NOTA: El LED indicador ROJO del grabador sólo se enciende mientras se está grabando o
leyendo un PIC, es posible que el led verde esté encendiéndose, esto no es un problema,
simplemente no haga caso.
3. Si el LED rojo del grabador se enciende pero de todas maneras sale el mismo mensaje de error,
revise si el PIC está correctamente insertado en el grabador.
4. Si analizado los 3 puntos anteriores, continúa saliendo el mismo mensaje, es muy probable que
el PIC se encuentre dañado, reemplace por otro e intente grabar nuevamente.
NOTA:
de Este mensaje
programa, de error
aún cuando también
el PIC sale cuando
se encuentra se graba un
en perfectas micro con obviamente
condiciones, protección en el código
porque IC-
Prog no pudo leer y verificar el contenido del PIC, simplemente en este caso ponga a trabajar el
micro y verá que funciona correctamente.
NOTA: si decide utilizar algún pin del puerto A, tome en cuenta que estos son análogos y podría
observar un funcionamiento defectuoso. Para solucionar esto agregue al principio del programa
cmcon= 7, esto convierte los pines del puerto A en digitales, un inconveniente también es el
puerto A5 este es sólo de entrada, es decir se puede utilizar para un pulsador pero no para
encender un LED, otro inconveniente podría ser el puerto A4 este es de colector abierto, necesita
conectarse a 5 voltios, como ilustra la siguiente figura.
38 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 48/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para los demás puertos A0, A1, A2, A3, A6, A7, estos funcionan normalmente como el puerto B
tanto como para entradas o salidas, siempre que incluya la línea cmcon=7.
cmcon = 7 ;apaga los comparadores de voltaje del puerto A y los convierte en digitales
Led VAR porta.0 ; etiqueta asignada al pin 17 o Puerto RA0
inicio: ; nombre de subrutina inicio
HIGH led ; enciende el led que está conectado en el pin 17
PAUSE 1000 ; espera un segundo
LOW led ; apaga el led
PAUSE 1000 ; espera un segundo
GOTO inicio ; continúa el programa para siempre
END
En este literal se pretende aclarar que existe varias formas de desarrollar un programa, se
presentarán a continuación varias maneras de escribir un programa que realiza el mismo trabajo
final, es decir hacer parpadear un led con intervalos de 1 segundo en el puerto RB0.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 49/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En el siguiente caso se manejará todo el puerto B como salidas, pero sólo se trabajará con una de
ellas el puerto B.0, es importante no olvidar incluir al principio del programa trisb = 0, o trisb=%0
ya que sin este no funciona el manejo de puertos, debe entender que Portb =%00000010 quiere
decir encender únicamente el puerto B1 de esta manera tenemos el siguiente ejemplo en donde se
explica mejor el manejo del puerto B.
Portb= % 0 1 0 0 1 0 1 0
B7 B6 B5 B4 B3 B2 B1 B0
Indica encender el Puerto B.6, el B.3 y el B.1, para todos los demás significa permanecer
apagados, esto es muy útil en casos en que se necesita encender un grupo de leds , como los
proyectos que más adelante se verá como el semáforo y luces del auto fantástico, de todas
maneras lo empleará para hacer parpadear un led.
Seguimos con otra forma de programar un parpadeo de un led, esta vez como el ejemplo anterior
pero con la diferencia de que sólo manejaremos un pin y no todos en conjunto.
Como se podrá ver hay distintas formas de escribir un programa y todos tienen el mismo
resultado final, así que si un proyecto no funciona correctamente, pruebe escribiendo de una
forma diferente.
40 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 50/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Debemos entender que declaraciones son cada una de las palabras que el compilador pbp 2.47
tiene reservado para realizar una tarea específica, las más utilizadas son : HIGH, LOW, PAUSE,
GOSUB, GOTO, LCDOUT, SERIN, SEROUT, FOR, NEXT, IF, THEN, SOUND, END, un
ejemplo:
HIGH portb.3
Esta instrucción HIGH es reconocida automáticamente por microcode, lo coloca en
negrilla y mayúscula, y sirve para que el compilador realice los ajustes necesarios para cambiarse
al segundo banco de la RAM, colocar como salida el puerto B en TRISB, y luego regrese al
primer banco de la RAM y setea en 1 al Portb.3, todo esto nos ahorramos gracias al pbp 2.47.
A continuación las 83 instrucciones disponibles con una breve explicación.
DECLARACIÓN APLICACIÓN
@ Inserta una línea de código ensamblador
ADCIN Lee el conversor analógico
ASM...ENDASM Insertar una sección de código ensamblador
BRANCH GOTO computado ( equivale a ON..GOTO )
BRANCHL BRANCH fuera de página (BRANCH Largo )
BUTTON Anti-rebote y auto-repetición de entrada en el pin especificado
CALL Llamada a subrutina de ensamblador
CLEAR Hace cero todas las variables
CLEARWDT Hace cero el contador del Watchdog Timer
COUNT Cuenta el número de pulsos en un pin
DATA Define el contenido inicial en un chip EEPROM
DEBUG Señal asincrónica de salida en un pin fijo y baud
DEBUGIN Señal asincrónica de entrada en un pin fijo y baud
DISABLE Deshabilita el procesamiento de ON INTERRUPT, ON DEBUG
DISABLE DEBUG Deshabilita el procesamiento de ON DEBUG
DISABLE INTERRUPT Deshabilita el procesamiento de ON INTERRUPT
DTMFOUT Produce tonos telefónicos en un pin
EEPROM Define el contenido inicial en un chip EEPROM
ENABLE Habilita el procesamiento de ON INTERRUPT, ON DEBUG
ENABLE DEBUG Habilita el procesamiento de ON DEBUG
ENABLE INTERRUPT Habilita el procesamiento de ON INTERRUPT
END Detiene la ejecución e ingresa en modo de baja potencia
FOR…NEXT Ejecuta declaraciones en forma repetitiva
FREQOUT Produce hasta 2 frecuencias en un pin
GOSUB Llama a una subrutina BASIC en la línea especificada
GOTO Continua la ejecución en la línea especificada
HIGH Saca un 1 lógico ( 5 V. ) por un pin
HPWM Salida de hardware con ancho de pulsos modulados
HSERIN Entrada serial asincrónica ( hardware )
HSEROUT
I2CREAD Salida
Lee serial
bytes de asincrónica
dispositivos(I2C
hardware )
I2CWRITE Graba bytes de dispositivos I2C
IF..THEN..ELSE..ENDIF Ejecuta declaraciones en forma condicional
INPUT Convierte un pin en entrada
LCDIN Lee caracteres desde una RAM de un LCD
LCDOUT Muestra caracteres en un LCD
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 41
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 51/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
NOTA: si desea más información de cada declaración puede ver la ayuda de microcode en Help
topics\ Statement reference, o descarge un manual en español de WWW.frino.com.ar.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 52/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 5
PROYECTOS CON MICROCONTROLADORES PIC
5. PROYECTOS DE APLICACIÓN.
Este es el Capítulo más importante y el más extenso de este libro, los microcontroladores se
aprende desarrollando prácticas reales, no hay nada más emocionante y satisfactorio que ver
funcionar un proyecto realizado por uno mismo. Al igual que otras carreras la práctica es lo que
nos hace mejores, por ejemplo un médico cirujano graduado aprenderá mucho más en la vida real
mientras más cirugías realice, una persona que tomó cursos de guitarra aprenderá a tocar cada vez
mejor mientras más practique con la guitarra, asimismo nosotros aprenderemos mucho de los
PIC’S mientras más proyectos nos propongamos a realizar.
Es importante seguir en orden el avance de los proyectos ya que existen proyectos que
requieren de una secuencia de aprendizaje por ejemplo no podrá entender bien cómo funciona el
proyecto 5.2.2.Luces del auto fantástico, si no practica el proyecto que explica cómo hacer
repeticiones el del literal 5.2.1 Ejercicio con la instrucción FOR NEXT.
Como materiales básicos necesitará un PIC16F628A, un protoboard preferible de 4
regletas, un regulador de voltaje 7805, una fuente de energía y por supuesto tener un grabador de
PIC´S como el que se incluye en este libro, este es un grabador tipo JDM (Jens Dyekjaer
Madsen), muy fácil de utilizar ya que sólo requiere la energía del puerto serial. Para construir este
grabador
armando el será necesario
grabador. que primero
El capítulo lea el
6 enseña la capítulo 7, donde
simulación del PICsecon
enseñará paso este
PROTEUS, a paso cómo
le será ir
muy
útil si usted no dispone de materiales para realizar las prácticas.
Adicionalmente para ayuda del lector se incluye en el CD todos los ejercicios que se
presentan en este capítulo, tanto en extensión .pbp y .hex. Además si desea utilizar otro modelo
de PIC que no sea PIC16F628A, debe considerarse los cambios necesarios para su correcto
funcionamiento, por ejemplo para micros que tienen conversores A/D (16F87X,16F81X), se debe
reemplazar la línea CMCON=7 por ADCON1=7, (ver literal 5.10.1).Para el PIC16F84A, no se
debe incluir ninguna de estas líneas ya que este micro no posee conversores A/D ni tampoco tiene
comparadores de voltaje.
NOTA: Para mayor facilidad en la escritura de los programas se ha cambiado el nombre de los
pines de los puertos por ejemplo: el pin RB6 se lo llamará únicamente B.6 o simplemente B6, el
puerto RB5,
observará en se
losloproyectos
llamará B.5 o B5,
es que noyhay
así con todos los
diagramas de demás
flujos, puertos. Otroapunto
esto se debe importante
que no que
es necesario,
porque el programa escrito en sí es como un diagrama de flujo. En esta edición se ha cambiado la
extensión de los archivos .bas por .pbp, ambos se puede abrir en cualquier versión de microcode.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 53/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.1 PROYECTOS CON LEDS
Figura 5.1.1.1. led intermitente.pbp Programa para el PIC16F628A que hace parpadear un led .
Una vez escrito el programa compile y grabe el PIC, si no sabe cómo hacerlo se recomienda leer
las páginas 35 a la 38, no olvide poner en el IC-prog oscilador intRC I/O y deshabilitar el
MCLR, luego de que todo esté bien conecte el PIC como ilustra la siguiente figura:
Una vez realizado este proyecto siga intentando con diferentes tiempos de PAUSE, recuerde que
son en milisegundos y sus valores son desde 1 hasta 65535, pruebe con PAUSE 100 verá que el
parpadeo es más rápido y PAUSE 2000 es más lento, asimismo ponga de diferentes valores entre
los 2 PAUSES ejemplo el primer PAUSE coloque PAUSE 2000 y en el segundo coloque PAUSE
500 verá diferentes efectos.
NOTA: recuerde que el PIC ejecuta cada línea de programa en 1 uS. (0,000001 segundos) por lo
que si no coloca uno de los 2 PAUSES verá el LED sólo encendido o sólo apagado, esto se debe a
que no hay tiempo para ver el efecto de transición del LED.
44 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 54/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para entender mejor pruebe el siguiente programa en el que se eliminó el segundo PAUSE 1000:
Si ya colocó en el protoboard verá que el LED permanece sólo encendido, pero no es así el LED
se apaga, pero por un período muy corto, lo que a simple vista no lo notamos pues este dura 3 uS.,
el tiempo en que el PIC cambia a la siguiente instrucción. Analicemos detenidamente lo que hace
el PIC desde el momento en que corre la línea HIGH led, en ese mismo instante se enciende el
LED luego pasa 1 uS. y ejecuta el PAUSE 1000, este es un grupo de subrutinas que el
compilador pbp genera para dar un retardo de 1 segundo sin hacer nada, por su puesto el LED
sigue
PAUSE encendido porque
1000 pasa a LOWaún no
led loendecimos queeste
1 uS., en se mismo
apague. instante
Una vezseterminado
apaga el el período
LED, perodel
la
siguiente línea no es otro pause sino ir a pepe y esto se demora 2 uS. por lo que enseguida se
enciende el LED al llegar a HIGH led.
Recuerda que en la página 40 se habla de manejar un grupo de leds, pues bien, este es el ejemplo
ideal para entender cuando utilizar HIGH y cuando PORT, se recomienda utilizar HIGH cuando
se trata de un sólo led o relé, etc., pero si se va a utilizar un grupo de leds veremos que es mucho
más fácil si manejamos todo el puerto sea este el A o el B, pero de todas formas escribiremos el
programa de las dos maneras, y usted se darán cuenta cual es la forma más rápida de programar,
en la figura 5.1.2.1.se muestra el diagrama de conexión para este proyecto.
MATERIALES.
-además de los materiales básicos, protoboard, regulador 7805 y fuente de voltaje
-6 LEDS, 2 rojos, 2 amarillos, 2 verdes, todos de 5mm.
-6 resistencias de 330Ω a ½ vatio, naranja-naranja-café
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 55/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
trisb=0 ;indica que todos los pines del puerto B son de salida
semaforo: ;nombre de la línea semáforo
portb=%100001 ;encender rojo del 1er semáforo y verde del 2do semáforo
PAUSE 9000 ;esperar 9 segundos
portb=%100010 ;cambiar en el 2do semáforo de verde a amarillo
PAUSE 3000 ;esperar 3 segundos
portb=%001100 ;cambiar a verde en el 1er semáforo y rojo el 2do semáforo
PAUSE 9000 ;esperar 9 segundos
portb=%010100 ;cambiar en el 1er semáforo de verde a amarillo
PAUSE 3000 ;esperar 3 segundos
GOTO semaforo ;continuar con el ciclo para siempre
END ; fin de la programación
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 56/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
semaf:
HIGH rojo1 : HIGH verde2 ;primer semáforo en rojo y 2do en verde
PAUSE 9000 ;esperar 9 segundos
LOW verde2 : HIGH amarillo2 ;2do semáf. Pasa de verde a amarillo
PAUSE 3000 ;esperar 3 segundos
LOW amarillo2 : LOW rojo1 : HIGH verde1 : HIGH rojo2 ;1er semáf. Verde 2do se. rojo
PAUSE 9000 ;esperar 9 segundos
LOW verde1 : HIGH amarillo1 ;1er semáforo cambia de verde a amarillo
PAUSE 3000 ;esperar 3 segundos
GOTO semaf ;continuar el programa desde semaf
END ;fin de la programación
Figura 5.1.2.4. Programa del semáforo manejando pin por pin con HIGH y LOW .
En esta otra manera de escribir el programa, noten que es más largo que el primer programa, y
además no escribimos trisb=0 al inicio, porque HIGH ya los convierte en salida, también aquí se
ve algocasos
ambos nuevoellos 2 puntos
tamaño ( : ), estos
de código sirven
generado espara declaraciones múltiples en una sola línea, para
el mismo.
Ejemplo, si queremos expresar en una sola línea las 2 siguientes declaraciones:
HIGH rojo1
HIGH verde2
quedaría así : HIGH rojo1 : HIGH verde2
NOTA: si desea aplicar este proyecto con focos de 110v., se debe utilizar periféricos de salida
como los relés, el siguiente es el diagrama de conexionado de un relé:
Este proyecto propone familiarizar aún más con el manejo de los puertos, esta vez vamos a
utilizar las 8 salidas del puerto B, se trata de una secuencia de luces que deben encenderse de
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 47
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 57/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
izquierda a derecha una tras otra con un intervalo de 200 milisegundos. En la figura 5.1.3.1. se
muestra cómo se debe conectar cada uno de los LEDS.
MATERIALES.
-8 LEDS de 5mm.
Prueba1: Prueba2:
Portb=%00000001 Portb=%00000001
PAUSE 1000 GOSUB pablo
Portb=%00000010 Portb=%00000010
PAUSE 1000 GOSUB pablo
Portb=%00000100 Portb=%00000100
PAUSE 1000 GOSUB pablo
GOTO prueba1 GOTO prueba2
Pablo:
PAUSE 1000
RETURN
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 58/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Trisb=%00000000 ;convierte todos los pines del puerto B en salidas
discoteca: ;nombre de la subrutina
Portb=%00000001 ;enciende el puerto B.0, los demás permanecen apagados
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%00000010 ;enciende el puerto B.1, los demás les apaga
GOSUB pedro ; ir a subrutina tiempo y volver cuando diga RETURN
Portb=%00000100 ;enciende el puerto B.2, los demás les apaga
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%00001000 ;enciende el puerto B.3, los demás les apaga
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%00010000 ;enciende el puerto B.4, los demás les apaga
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%00100000 ;enciende el puerto B.5, los demás les apaga
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%01000000 ;enciende el puerto B.6, los demás les apaga
GOSUB pedro ; ir a subrutina pedro y volver cuando diga RETURN
Portb=%10000000 ;enciende el puerto B.7, los demás les apaga
GOSUB
GOTO pedro
discoteca ;; ir
ir al
a subrutina
inicio delpedro y volver cuando diga RETURN
programa
pedro: ;esta es la subrutina pedro
PAUSE 200 ;retardo de 200 milisegundos, aquí podemos cambiarlo
RETURN ;volver al GOSUB que le envió
NOTA: la ubicación de la subrutina pedro es importante fijarse que se encuentre después y fuera
de las líneas principales de programación, si esta misma subrutina lo colocáramos al principio del
programa, de seguro se nos cuelga porque al encontrar un RETURN simplemente no sabe a
donde retornar ya que nadie lo ha enviado aún.
Figura 5.1.3.4. Fotografía del proyecto de luces para discoteca, se muestra un módulo de 8 leds
con sus resistencias, basta con conectar el 1er cable a tierra y los demás a cada uno de los pines
del puerto B del PIC, esto ahorra tiempo de instalación.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 49
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 59/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.2 PROYECTOS DE REPETICIONES
Este proyecto es muy importante entenderlo, ya que el siguiente proyecto de luces de auto
fantástico también utiliza la declaración FOR NEXT.
Esta declaración sirve para ejecutar un número n veces una línea de programa o grupo de
líneas de programa, el siguiente proyecto pretende encender un led en el puerto B.0 5 veces con
intervalos de ½ segundo, después debe detenerse por 2 segundos y luego parpadear 3 veces más,
detenerse por 3 segundos y luego repetir nuevamente el proceso, se puede utilizar el proto que se
armó para las luces de discoteca ya que el mismo nos servirá después para el siguiente proyecto el
de las luces del auto fantástico, FOR NEXT se utiliza de la siguiente manera:.
……….
………. ;una vez concluido
;después del NEXT,las repeticiones
peter continúa
debe ser creado con variable,
como la declaración que está
es decir
NEXT ;asignarle un espacio en la memoria en este caso para 5.
LAS VARIABLES BIT, BYTE Y WORD. Estas son creadas para guardar datos en la memoria
RAM (Random Access Memory) o memoria de acceso casual, esta memoria trabaja únicamente
mientras esté alimentado el PIC, una vez que el PIC es desconectado, los datos de la memoria
RAM se borran.
Para crear una variable es muy similar a asignar un nombre de un pin, como peter VAR
portb.3, la diferencia está en que en vez de poner el pin se pone el tamaño de la memoria a
utilizar y estos son los siguientes:
Peter
Peter VAR
VAR BIT
BYTE ;; crea
crea una
una variable
variable y
y asigna un tamaño
asigna un tamaño de
de un bit es
8 bits es decir
decir de
0 o0 1a 255
Peter VAR WORD ; crea una variable y asigna un tamaño de 2 bytes es decir de 0 a 65535
Para nuestro caso como queremos hacer 5 repeticiones, nos corresponde crear un BYTE que nos
permite almacenar un número hasta el 255.
repe VAR BYTE ;crea la variable repe y le asigna un espacio de memoria de 0 a 255
Led1 VAR portb.0 ;asigna el nombre de led1 al pin B.0
programa: ;nombre de la línea programa
FOR repe = 1 TO 5 ;para repeticiones de 1 a 5 veces
HIGH led1 ; encender el LED
PAUSE 500 ; esperar 0,5 segundos
LOW led1
PAUSE 500
; apagar el LED
; esperar 0,5 segundos
NEXT ; siguiente repetición hasta que sea repe = 5
PAUSE 2000 ; esperar 2 segundos
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 60/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 61/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.2.2.1. auto fantastico.pbp Programa para encender las luces del auto fantástico.
NOTA: No olviden cargar a LEDS = 1, porque si no lo hace significa que vale cero (0) y esto
multiplicado por 2 siempre dará cero, en consecuencia nunca veríamos el desplazamiento.
1. Encienda un led conectado en RB4 durante 1,5 seg. y luego apáguelo por 0,5 seg. el
proceso debe repetirse sólo 4 veces, luego el led debe permaner apagado.
3. En el proyecto 5.1.3 juego de luces para discoteca, encienda los leds del medio hacia los
extremos, es decir empiece por B4 y B3, luego apáguelos y encienda B5 y B2 y así
sucesivamente hasta llegar a los extremos B7 y B0, utilice PAUSE 200 y haga que se
repita indefinidamente.
4. Encienda una ruleta con leds conectados a todos los pines del micro (15 leds), excepto
RA5 y hágalo girar las luces a la velocidad y en el sentido que desee.
5. Genere 6 parpadeos de un led con intervalos de 300 mls. luego haga 2 parpadeos de 1
segundo indefinidamente.
proceso con un segundo led, luego haga que los 2 leds parpadeen 3 veces, repita el
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 62/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.3 PRÁCTICAS CON PULSADORES
Este será el primer contacto del PIC con el mundo exterior, un periférico de entrada, primero se
debe entender cómo funcionan los pulsadores con el PIC, existen básicamente 2 tipos de conexión
para los pulsadores, el que siempre está en 1 lógico (5 V.) y cuando es pulsado cambia a cero
lógico (0 V.), y el que está en cero lógico y cuando se le pulsa pasa a uno lógico, los siguientes
son los diagramas de conexión.
decir
al PIC,siempre
cuando permite el ingreso
es presionado, el de 5 V.
voltaje
se desvía a tierra y en este caso el PIC
detecta un cambio de estado de 1 L a 0 L
el funcionamiento del segundo pulsador
es totalmente lo contrario.
Existe otra manera de hacer un pulsador o entrada con más voltaje del que el PIC soporta, y es
haciendo un divisor de voltaje, esto es muy utilizado para indicar si una batería de 12 voltios por
ejemplo, se encuentra cargada o descargada.
Ejercicio:
Calcular la resistencia R2, para hacer un divisor de voltaje en el que salga aproximadamente 5
Voltios, si la fuente es una batería de 24 Voltios DC.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 53
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 63/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 64/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF repe > 35 THEN iniciar ;si la variable rep es mayor que 35 ejecuta iniciar, además se
;puede utilizar los demás operadores: =, ¡= (NO ES IGUAL), <, >, <=, >=.
IF porta.1=0 AND porta.2=0 THEN prog ;si porta.1 y porta.2 son igual a cero ejecuta prog,
asimismo soporta los demás operadores como: OR, XOR, NOT AND, NOT OR, NOT XOR
MATERIALES.
-1 LED de 5mm.
-1 resistencia de 330Ω a ½ vatio, naranja-naranja-café
-1 resistencia de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo
-1 pulsador para protoboard normalmente abierto como el de la figura 5.3.3.2.
En esta práctica haremos un contador binario, el resultado lo veremos en código binario a través
de 8 leds conectados en el puerto B. Para esta práctica necesita poner un antirrebote al pulsador,
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 65/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 66/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 67/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 LED de 5mm.
-1 resistencias de 330Ω a ½ vatio, naranja-naranja-café
-2 resistencia de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo
-2 pulsadores para protoboard normalmente abierto como los de la figura 5.3.3.2
inicio:
HIGH led ;encender el led
GOSUB timer ;ir y retornar de timer
LOW led ;apaga el led
GOSUB timer ;ir y retornar de timer
GOTO inicio
timer:
IF psube = 0 THEN GOSUB restar ;pregunta si presionó psube
IF pbaja = 0
THEN GOSUB sumar ;pregunta si presionó pbaja
FOR xy = 1 TO veces ;repite desde 1 hasta el valor que contenga veces
pause 5 ;retardo de 5 mls
NEXT ;siguiente repetición
RETURN ;retornar al que le envió
Continúa ....
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 68/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
sumar:
IF veces>150 THEN RETURN ;retorna si veces excede de 150
veces=veces+5 ;suma 5 a la variable veces
RETURN ;retorna hacia el que le envió
restar:
IF veces<10 THEN RETURN ;retorna si veces es menor que 10
veces =veces-5 ; resta 5 a la variable veces
RETURN ;retorna hacia el que le envió
Figura 5.3.3.3. led variable.pbp Programa para el led intermitente de velocidad variable.
Este es un reset externo que el PIC posee, aparte del reset al encendido que dispone, la utilización
del MCLR es muy sencillo, sólo debemos instalar un pulsador 1 lógico (pull_up) en el puerto
A.5, cuyo pin es específico para el MCLR, el proyecto debe funcionar de la siguiente manera:
hacemos un programa para que parpadee un led cada 200 milisegundos (PAUSE 200), para
siempre, y al pulsar el botón del MCLR, este parpadeo debe detenerse y al soltarlo debe continuar
con el parpadeo del led, es importante tener habilitado el MCLR en el momento de grabar el PIC
en el programa IC-prog, el siguiente gráfico muestra cómo debería estar la configuración de los
fusibles de configuración del 16F628A en el IC-prog antes de grabar el PIC:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 69/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 LED de 5mm.
-1 resistencia de 330Ω a ½ vatio, naranja-naranja-café
-1 resistencia de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo
-1 pulsador para protoboard normalmente abierto
HIGH portb.4
PAUSE 200 ; enciende el led que esta conectado en el pin 10
; espera 200 milisegundos
LOW portb.4 ; apaga el led
PAUSE 200 ; espera 200 milisegundos
GOTO iniciar ; continúa el programa desde pepe para siempre
END ; fin de las instrucciones
Figura 5.3.4.3. Programa para un parpadeo de un led cada 200 mS. con reset externo .
Con todo lo aprendido hasta aquí usted podría tranquilamente hacer un PLC como el de la
siguiente figura:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 70/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 71/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.4 PROYECTOS CON DISPLAYS
Los displays son muy utilizados para visualizar datos. Para esta práctica se utilizá como periférico
de salida un display tipo ánodo común, para lo cual se facilita el diagrama en la figura 5.4.1.2. El
proyecto consiste en hacer un contador decimal (0,...,9),con intervalos de 0,5 segundos.
El programa es muy similar al del 5.3.2. contador binario, con la diferencia que sólo se
necesita los 4 bits más bajos (B.0, B.1, B.2, y B.3), el decodificador binario a 7 segmentos (7447),
es el encargado de transformar el número binario que ingresa a número decimal.
MATERIALES.
-1 DISPLAY ánodo común preferible como el de la figura 5.4.1.2, ideal para protoboards.
-7 resistencias de 330Ω a ½ vatio, naranja-naranja-café
-1 CI. 7447 decodificador BCD
encerar:
numero = 0 ;carga con cero a la variable número
display:
portb=numero ;sacar por el puerto b el contenido de número
PAUSE
IF 500 THEN encerar ;esperar
numero=9 0,5 es
;si número segundos
=9 encerar número =0
numero=numero + 1 ;sumar 1 a la variable número
GOTO display ;ir a display
END
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 72/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 73/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 74/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
di VAR BYTE ;crea variable di
dat VAR BYTE ;crea variable dat
TRISB = 0 ;todo el puerto B como salida
prog:
FOR di=0 TO 15 ;para repeticiones de 0 a 15
LOOKUP di,[64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14],dat ;toma uno por uno cada
; valor de la tabla constante y lo guarda en la variable dat
portb=dat ;sacar el contenido de dat por el puerto B
PAUSE 500 ;espera de 0,5 seg.
NEXT di ;siguiente repetición
GOTO prog
END
IMPORTANTE: Es muy probable que después de realizar esta práctica el micro no permita
cargar un programa nuevo, mostrará un mensaje de Verificación falló en la dirección de código
0000h, por lo que en las prácticas 5.4.4 a la 5.4.8 es indispensable activar el MCLR y colocar por
lo menos una resistencia de 4,7 K Ω conectado entre puertoA.5 y 5V.,ver pág 59 (el pulsador es
opcional), esto permitirá borrar el programa para así poder cargar uno nuevo. La razón de este
problema es que el grabador que incluye este libro mantiene al micro alimentado con 5 V., por lo
que el programa sigue corriendo aún colocado en el grabador, esto impide el ingreso de la señal
de reloj específicamente en el puerto B.6. Si olvidara activar el MCLR, la única manera de
borrar el PIC sería utilizando un grabador de puerto paralelo.
El siguiente proyecto debe encender 4 displays para poder mostrar cualquier número
desde el 0 hasta el 9999, esto lo conseguimos gracias al transistor tipo PNP, que nos ayudará a
multiplexar cada uno de los displays, el funcionamiento es bastante sencillo, debemos conectar
los 4 bits más altos a cada transistor y los cuatro bits más bajos al CI. 7447, si por ejemplo
queremos sacar el número 6874, primero habilitamos el 4to transistor, el de la derecha y
enviamos el número 4, el CI. 7447 se encarga de formar el 4 en el display, luego pasamos a cero
lógico el 2do transistor, y los demás lo mantenemos en nivel alto, al mismo tiempo sacamos el
número 7 por los bits menos significativos del puerto B, y así consecutivamente, el tiempo que
debemos mantener activado cada transistor no puede ser mayor que 5 milisegundos, es decir que
los cambios son tan rápidos que el ojo humano ve todos los displays encendidos al mismo tiempo,
cuando en realidad sólo se enciende uno a la vez.
Ejemplo: para sacar el Nro 8 en las centenas debemos sacar (176+8), es decir el número
184 porque si analizamos en código binario, tenemos que los bits más bajos entran al CI. 7447, y
los bits más altos, son los encargados de encender el display que le corresponde a las centenas.
184 = % 10111000 1011 1000 Este número entra al 7447 el cual saca el 8
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 75/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.4.4.1. Configuración para manejar 4 displays de 7 segmentos con el CI. 7447 .
Figura 5.4.4.2. Fotografía del entrenador experto EE-02 de AUTOMASIS , ideal para estas
prácticas por la facilidad en el ensamblaje de proyectos, además dispone de módulos como leds,
4 display de 7 segmentos, LCD, pulsadores, teclado matricial, relé, parlante, dipswitch,
comunicación RS232, RS422/485, memoria serial, reloj calendario, chicharra, conversor D/A,
etc, también permite programar el PIC sin necesidad de desmontarlo de su zócalo.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 76/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
trisb=0 ; convierte en salida todo el puerto B
display:
portb=224+8 ;%11100000,activa el transistor de las unidades y presenta el 8
PAUSE 5
portb=208+7 ;%11010000,activa el transistor de las decenas y presenta el 7
PAUSE 5
portb=176+6 ;%10110000,activa el transistor de las centenas y presenta el 6
PAUSE 5
portb=112+5 ;%01110000,activa el transistor de los millares y presenta el 5
PAUSE 5
GOTO display ; encierra en este lazo
END
Como experimento para comprobar que el PIC sólo está activando un display a la vez, cambie
todos los pauses a PAUSE 150.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 77/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Es hora de hacer un proyecto de considerable tamaño, una vez entendido cómo multiplexar 4
displays, y entendido el ejercicio del contador con una bandera de activado el del 5.4.2.2. pues el
siguiente proyecto consta en hacer un contador decimal que incremente su valor cada vez que se
pulsa el botón A, si pulsamos el botón B se encera y apaga la chicharra, y si pulsamos la tecla C,
presenta el número al cual va a comparar, si el número de conteo es igual a 24, activa un aviso
auditivo (buzzer activo), este buzzer trabaja a 12 voltios, lo que le diferencia de los parlantes
comunes es que no necesita ser activado con una frecuencia, sino basta con alimentarle con 12
voltios para que suene, también lo conocen con el nombre de chicharra a 12 voltios.
MATERIALES.
-4 DISPLAYS ánodo común
-4 transistores 2N3906
-1 transistor 2N3904
-7 resistencias de 330Ω a ½ vatio, naranja-naranja-café
-4 resistencias de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo
-1 CI. 7447 decodificador BCD
-2 pulsadores normalmente abiertos
-1 chicharra de 12 V. como el de la figura 5.4.5.1.
El siguiente es el programa para controlar los 4 displays, contar, encerar, comparar y visualizar el
número almacenado en la memoria.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 78/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
encerar:
unid=0 ;carga la variable unid con cero
dece=0 ;carga la variable dece con cero
cent=0 ;carga la variable cent con cero
mile=0 ;carga la variable mile con cero
LOW chicha ;apagar la chicharra
display:
portb= 224+unid ;224 %11100000, activa las unidades
PAUSE 5
portb= 208+dece ;208 %11010000, activa las decenas
PAUSE 5
portb= 176+cent ;176 %10110000, activa las centenas
PAUSE 5
portb= 112+mile ;112 %01110000, activa los miles
PAUSE 5
GOSUB teclas ;revisar el estado de las teclas
GOTO display
teclas:
IF contar=0 THEN sumar ;si presionan tecla A ir a sumar
IF encera=0 THEN encerar ;si presionan tecla B ir a encerar
IF visual=0 THEN visualizar ;si presionan tecla C ir a visualizar
activar=1 ;bandera de tecla A evita que cuente + de 1 vez
RETURN
sumar:
IF activar=0 THEN RETURN ; bandera de tecla A
activar=0 ;bandera de tecla A cuando ya ha sido pulsada
unid=unid+1 ;sumar 1 a las unidades
IF unid<10 THEN comparar ;si unid es menor a 10 comparar
unid=0 ;hace cero a las unidades
dece=dece+1 ;y incrementa las decenas
IF dece<10 THEN comparar
dece=0
cent=cent+1
IF cent<10 THEN comparar
cent=0
mile=mile+1
IF mile<10 THEN comparar
mile=0
RETURN ;retornar a gosub teclas
visualizar:
portb= 224+setunid ;224 %11100000,activa las unidades
PAUSE 15
portb= 208+setdece ;208 %11010000,activa las decenas
PAUSE
15
portb= 176+setcent ;176 %10110000,activa las centenas
PAUSE 15
portb= 112+setmile ;112 %01110000,activa los miles
PAUSE 15
IF visual=0 THEN visualizar
RETURN ;retornar a gosub teclas continúa .......
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 79/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
comparar:
IF unid!=setunid THEN RETURN ;si unid no es igual a setunid
IF dece!=setdece THEN RETURN ;si dece no es igual a setdece
IF cent!=setcent THEN RETURN
IF mile!=setmile THEN RETURN
Figura 5.4.5.2. contador 1-9999.pbp Programa para el contador decimal desde 1 a 9999.
A continuación otra manera de escribir el mismo programa aún más corto, esta vez utilizando
una variable con capacidad de almacenamiento de 65535 (número VAR WORD), y para poder
tomar cada dígito de esta variable y mostrar en cada uno de los displays, utilizamos el operador
matemático DIG, que sirve para tomar cualquier dígito que necesitemos de una variable, ejemplo:
Para tomar
número las decenas de la siguiente variable número:
= 6789
cent= número DIG 1 , como el dígito 0 es el 9, el dígito 1 es el 8, el dígito 2 es 7, y así
sucesivamente, en este caso el 8 se almacena en la variable cent.
contar
encera VAR porta.3
porta.2 ;pulsosencerar
;tecla para contar
visual VAR porta.1 ;visualizar el valor a comparar
activar VAR BIT ;bandera para la tecla contar
encerar:
numero=0 ;carga la variable número con cero
LOW chicha
display: ;apagar la chicharra
unid=numero DIG 0 ;toma el dígito 0 (unidades) y guarda en unid
dece=numero DIG 1 ;toma las decenas y lo guarda en dece
cent=numero DIG 2 ;toma el dígito 2 (centenas) y lo guarda en cent
mile=numero DIG 3 ;toma el dígito 3 (miles)y lo guarda en mile
continúa .....
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 80/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
portb= 224+unid ;224 %11100000,activa las unidades
PAUSE 5
portb= 208+dece ;208 %11010000,activa las decenas
PAUSE 5
portb= 176+cent ;176 %10110000,activa las centenas
PAUSE 5
portb= 112+mile ;112 %01110000,activa los miles
PAUSE 5
GOSUB teclas ;revisar el estado de las teclas
GOTO display
teclas:
IF contar=0 THEN sumar ;si presionan tecla A ir a sumar
IF encera=0 THEN encerar ;si presionan tecla B ir a encerar
IF visual=0 THEN visualizar ;si presionan tecla C ir a visualizar
activar=1 ;bandera de tecla A evita que cuente + de 1 vez
RETURN
sumar:
IF activar=0 THEN RETURN ;bandera de tecla A
activar=0 ;bandera de tecla A cuando ya ha sido pulsada
numero=numero+1 ;sumar 1
IF numero=compara THEN HIGH chicha ;si número es = compara
IF numero>9999 THEN encerar ;si el número es >9999 ir a encerar
RETURN ;retornar a gosub teclas
visualizar:
unid=compara DIG 0 ;toma el dígito 0 (unidades) y guarda en unid
dece=compara DIG 1 ;toma el dígito 1 (decenas) y lo guarda en dece
cent=compara DIG 2 ;toma las centenas y lo guarda en cent
mile=compara DIG 3 ;toma el dígito 3 (miles) y guarda en mile
portb= 224+unid ;224 %11100000,activa las unidades
PAUSE 15
portb= 208+dece ;208 %11010000,activa las decenas
PAUSE 15
portb= 176+cent ;176 %10110000,activa las centenas
PAUSE 15
portb= 112+mile ;112 %01110000,activa los miles
PAUSE 15
IF visual=0 THEN visualizar
RETURN ;retornar a gosub teclas
END
Figura 5.4.5.3. contador2 1-9999.pbp Programa para el contador decimal desde 1 a 9999
utilizando el operador matemático DIG.
Es posible hacer un contador decimal igual que el del proyecto anterior y sin ayuda del CI. 7447,
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 71
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 81/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
pero en esta ocasión haremos algo más que eso, como vieron la ventaja de conectar el display
directamente al PIC es la de poder sacar casi la mayoría de las letras del alfabeto, pues bien este
proyecto consiste en sacar la palabra HOLA a través de los 4 displays.
MATERIALES.
-4 DISPLAYS ánodo común
-4 transistores 2N3906
-7 resistencias de 330Ω a ½ vatio, naranja-naranja-café
-4 resistencias de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo
portb=9
PAUSE 5 ;%0001001 forma la letra H
GOTO texto
END
Figura 5.4.6.2. palabra HOLA 4D.pbp Programa para presentar la palabra HOLA en los 4
displays.
72 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 82/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para hacerlo más interesante el proyecto anterior le añadiremos movimiento, con esto podemos
ingresar frases completas como “HOLA LUIS”, pero para no alargar mucho el programa sólo
utilizaremos la palabra HOLA, moviéndose continuamente de derecha a izquierda y con un
espacio por palabra.
La variable x es la que regula la velocidad con que se desplazan las letras, para
comprobarlo modifique el valor de todas las repeticiones de 1 TO 20 al doble 1 TO 40, y verá
cómo se desplazan las letras más lentamente.
texto:
FOR x=1 TO 20 ;repeticiones de este segmento
porta=14 :portb=8 ;pA%1110 y pB%0001000 forma la letra A
PAUSE 5:portb=71
porta=13 pA%1101 y pB%1000111 forma la letra L
PAUSE 5
porta=11 :portb=64 ;pA%1011 y pB%1000000 forma la letra O
PAUSE 5
porta=7 :portb=9 ;pA%0111 y pB%0001001 forma la letra H
PAUSE 5
NEXT
FOR x=1 TO 20 ; repeticiones de este segmento
porta=14 :portb=127 ;pA%1110 y pB%1111111 apaga el display
PAUSE 5
porta=13 :portb=8 ;pA%1101 y pB%0001000 forma la letra A
PAUSE 5
porta=11 :portb=71 ;pA%1011 y pB%1000111 forma la letra L
PAUSE 5
porta=7 :portb=64 ;pA%0111 y pB%1000000 forma la letra O
PAUSE 5
NEXT
FOR x=1 TO 20 ; repeticiones de este segmento
porta=14 :portb=9 ;pA%1110 y pB%0001001 forma la letra H
PAUSE 5
porta=13 :portb=127 ;pA%1101 y pB%1111111 apaga el display
PAUSE 5
porta=11 :portb=8 ;pA%1011 y pB%0001000 forma la letra A
PAUSE 5
porta=7 :portb=71 ;pA%0111 y pB%1000111 forma la letra L
PAUSE 5
NEXT
FOR x=1 TO 20 ; repeticiones de este segmento
porta=14 :portb=64 ;pA%1110 y pB%1000000 forma la letra O
PAUSE 5
porta=13 :portb=9 ;pA%1101 y pB%0001001 forma la letra H continúa ....
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 83/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PAUSE 5
porta=11 :portb=127 ;pA%1011 y pB%1111111 apaga el display
PAUSE 5
porta=7 :portb=8 ;pA%0111 y pB%0001000 forma la letra A
PAUSE 5
NEXT
FOR x=1 TO 20 ; repeticiones de este segmento
porta=14 :portb=71 ;pA%1110 y pB%1000111 forma la letra L
PAUSE 5
porta=13 :portb=64 ;pA%1101 y pB%1000000 forma la letra O
PAUSE 5
porta=11 :portb=9 ;pA%1011 y pB%0001001 forma la letra H
PAUSE 5
porta=7 :portb=127 ;pA%0111 y pB%1111111 apaga el display
PAUSE 5
NEXT
GOTO texto
END
Estos displays son muy utilizados para transmitir mensajes en bancos y instituciones de atención
al publico, la ventaja de estos son la gran cantidad de caracteres que se pueden formar y el gran
tamaño de los displays (desde 3 x 2 cm hasta 15 x 8cm), en esta práctica aprenderemos a manejar
un display de 35 segmentos de 14 pines, pero también existen displays bicolores y tienen 28
74 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 84/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
pines. Esta práctica consiste en formar un hombrecito saludando, una vez familiarizado será muy
sencillo ir implementando más displays del mismo tipo.
de la fila 2 columna 2.
MATERIALES.
-1 DISPLAY 7 x 5 monocolor (14 pines)
-5 transistores 2N3904
-7 resistencias de 330Ω a ½ vatio, naranja-naranja-café
-5 resistencias de 4,7 K Ω a ½ vatio, amarillo-violeta-rojo.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 75
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 85/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
NOTA: En esta práctica se utilizó transistores 2N3904, pero si vamos a utilizar más displays 7x5
y queremos mayor iluminación, se recomienda reemplazarlos por transistores TIP110 y
adicionalmente colocar en la salida del puerto B transistores 2N3906, con una resistencia
limitadora de 22 Ω a voltaje positivo. (ver figura 5.4.8.6.)
El programa a realizar, debe multiplexar los leds de forma que se encienda como la secuencia 1,
permanece 100 milisegundos y cambia a la secuencia 2, luego a la secuencia 3, y finalmente a la
secuencia 4, para luego volver a repetir toda la secuencia desde el principio. Como resultado
observaremos un hombrecito que agita los brazos.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 86/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
animacion:
FOR x = 1 TO 10 ;repetir esta secuencia 10 veces
porta=%0000001 :portb=%0010000 :PAUSE 4 ;esperar 4 mls, total 20 mls cada
porta=%0000010 :portb=%0100111 :PAUSE 4 ;escena
porta=%0000100 :portb=%1111000 :PAUSE 4
porta=%0001000 :portb=%0100111 :PAUSE 4
porta=%1000000 :portb=%0010000 :PAUSE 4
NEXT
FOR x = 1 TO 10 ;repetir esta secuencia 10 veces
porta=%0000001 :portb=%0100000 :PAUSE 4
porta=%0000010 :portb=%0100111 :PAUSE 4
porta=%0000100 :portb=%1111000 :PAUSE 4
porta=%0001000 :portb=%0100111 :PAUSE 4
porta=%1000000 :portb=%0100000 :PAUSE 4
NEXT
FOR x = 1 TO 10 ;repetir esta secuencia 10 veces
porta=%0000001 :portb=%1000000 :PAUSE 4
porta=%0000010 :portb=%0100111 :PAUSE 4
porta=%0000100 :portb=%1111000 :PAUSE 4
porta=%0001000 :portb=%0100111 :PAUSE 4
porta=%1000000 :portb=%1000000 :PAUSE 4
NEXT
FOR x = 1 TO 10 ;repetir esta secuencia 10 veces
porta=%0000001 :portb=%0100000 :PAUSE 4
porta=%0000010 :portb=%0100111 :PAUSE 4
porta=%0000100 :portb=%1111000 :PAUSE 4
porta=%0001000 :portb=%0100111 :PAUSE 4
porta=%1000000 :portb=%0100000 :PAUSE 4
NEXT
GOTO animacion ;ir a animación
END
Como podemos observar en el programa anterior, tratamos de no utilizar el puerto A.4 y A.5,
porque el primero es de colector abierto, y el segundo sólo puede trabajar como entrada, además
este programa se puede reducir por lo menos a la mitad si utilizamos GOSUB en la secuencia del
hombre con los brazos en la mitad, ya que este se repite 2 veces, también en los PAUSE 4 y
algunas partes de secuencias como las piernas y la cabeza que no se mueven, estos podemos
agrupar también en una subrutina de GOSUB, pero para poder entender bien el funcionamiento
se prefirió no reducir el programa.
Es muy importante considerar el tiempo de multiplexaje, ya que no se debe sobrepasar un
total de 20 mls, por ejemplo si utilizamos 2 displays 7x5, debemos bajar el tiempo de pauses a 2
milisegundos para también tener un total de 20 mls.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 77
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 87/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 88/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 89/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Comando Operación
$FE, 1 Limpia el visor del LCD
$FE, 2 Vuelve al inicio (comienzo de la primera línea)
$FE, $0C Apagar el cursor
$FE, $0E Subrayado del cursor activo ( )
$FE, $0F Parpadeo del cursor activo ( ▓ )
$FE, $10 Mover el cursor una posición a la izquierda
$FE, $14 Mover el cursor una posición a la derecha
$FE, $80 Mueve el cursor al comienzo de la primera línea
$FE, $C0 Mueve el cursor al comienzo de la segunda línea
$FE, $94 Mueve el cursor al comienzo de la tercera línea
$FE, $D4 Mueve el cursor al comienzo de la cuarta línea
Los LCD se puede conectar con el PIC con un bus de 4 u 8 bits, la diferencia está en el tiempo
que se demora, pues la comunicación a 4 bits, primero envía los 4 bits más altos y luego los 4 bits
más bajos, mientras que la de 8 bits envía todo al mismo tiempo, esto no es un inconveniente si
consideramos que el LCD trabaja en microsegundos. Pero la gran ventaja de hacer conexión a 4
bits, son los pocos cables que se deben conectar, como podemos ver en la figura 5.5.1.4. sólo
debemos conectar el bit de Registro, el Enable y los 4 bits más altos del LCD, con esto es
suficiente para enviar los mensajes.
El compilador PBP soporta módulos LCD´S con controlador Hitachi 44780 o
equivalentes y por defecto, asume que se conectó en el pin A4 el bit de Registro, en el pin B3 el
bit Enable y en el puerto A empezando desde A0 hasta A3, los bits más altos del LCD. Esta
configuración predefinida, se lo puede cambiar de acuerdo a la necesidad, como lo veremos más
adelante.
MATERIALES.
-1 DISPLAY LCD 2x16 (preguntar si es compatible con los PIC´S)
-1 resistencia de 10Ω a ½ vatio, café-negro-negro
-1 potenciómetro de 10 K Ω.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 90/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PAUSE 200 ;retardo para esperar que funcione el LCD
LCDOUT $FE, 1,"Hola" ;limpiar pantalla y sacar el texto Hola
LCDOUT $FE, $C0,"microPIC" ;pasar al comienzo de la segunda línea
;y escribir microPIC
END ;fin de instrucciones
Figura 5.5.1.5. LCD Hola.pbp Programa para presentar la palabra Hola microPIC .
NOTA: algunos LCD´S no requieren de ningún PAUSE al inicio, pero existen otros modelos que
necesitan unos pocos milisegundos para estar listos, por eso colocamos un PAUSE 200 al
comienzo del programa.
Bien una vez visto el texto notaremos que las dos palabras están al lado izquierdo, si
queremos que salgan centradas en nuestro LCD, tenemos 2 maneras de hacerlo, la primera es
dando espacios antes de cada palabra ejemplo:
LCDOUT $FE, 1, “ Hola” y LCDOUT $FE, $C0, “ microPIC”
Lo cual es sencillo pero no es muy recomendable porque ocupa más espacio en el PIC, la segunda
manera es asignando el lugar donde se quiere que aparezca cada palabra ejemplo:
LCDOUT $FE, 1 ;limpia la pantalla y coloca el cursor al comienzo
LCDOUT $FE, $86, “Hola” ;pasa el cursor al 7ma casilla de la 1era Línea y escribe
LCDOUT $FE, $C4, “microPIC” ;pasa a la casilla 5 de la 2da línea y escribe microPIC
Se debe entender que existe un cursor que aunque no lo vemos, pues este es el que indica donde
aparecerá la siguiente letra, para poder entender haremos un ejercicio completo, así podrán
aprender más del LCD y las funciones de cada uno de los comandos. Primero que nada haremos
visible el cursor y luego pondremos PAUSES para poder ver el funcionamiento.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 91/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
LCDOUT pepe,$C0+12,"PIC" ;escribe en la segunda línea casillero 13
;esto equivale a $CC o 204
PAUSE 2000
LCDOUT pepe,2,"1" ;vuelve al inicio de la 1era fila y escribe 1
END
Figura 5.5.1.6. LCD Hola2.pbp Programa utilizando la mayoría de los comandos del LCD .
Observen que la constante $FE se le cambió por pepe, asimismo si se les dificulta memorizar
como pasar a la segunda línea, puede definir la constante: lin2 CON $C0, y cuando deseen
escribir en la segunda línea pondrían: LCDOUT pepe, lin2, “hola”, o lo que es lo mismo
utilizando números decimales: LCDOUT 254, 192, “hola”. También cabe recalcar que el LCD
tiene una memoria RAM (Random Access Memory) que lo explicaremos más adelante, por lo
que una vez que se le envía el texto, este permanece en la pantalla y el PIC se lo puede utilizar
para otras tareas o podemos desconectarlo si lo deseamos.
En ocasiones especiales se debe cambiar la configuración de los pines del PIC hacia el
LCD, por ejemplo para utilizar los comparadores de voltaje que se encuentran en el puerto A,
necesitamos dejar disponibles estos pines, esto se logra adicionando al principio lo siguiente:
DEFINE LCD_DREG PORTB ; define pines del LCD B4 a B7
DEFINE LCD_DBIT 4 ; empezando desde el Puerto B4 hasta el B7
DEFINE LCD_RSREG PORTB ;define el puerto B para conectar el bit RS
DEFINE LCD_RSBIT 3 ;este es el puerto B3
DEFINE LCD_EREG PORTB ;define el puerto B para conectar el bit Enable
DEFINE LCD_EBIT 2 ;este es el puerto B2
Una vez que se define la nueva configuración de pines para el LCD, se programa de la misma
forma que las ocasiones anteriores, es importante además saber que los 4 bits de datos sólo se
pueden configurar en los 4 bits más bajos (B.0 al B.3) o los 4 bits más altos (B.4 al B.7) de un
puerto del PIC, y si deseamos hacer una comunicación a 8 bits con el LCD, estos deben estar en
un sólo puerto, además debemos definir en el PBP que vamos a utilizar un bus de 8 bits, esto es
de la siguiente manera:
DEFINE LCD_BITS 8 ; define comunicación a 8 bits con el LCD
Y si nuestro LCD posee 4 líneas, también debemos definirlo de la siguiente forma:
DEFINE LCD_LINES 4 ; define un LCD de 4 líneas
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 92/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Un
Un pulsador de reset
potenciómetro paraalelMCLR
ajuste
del contraste.
Figura 5.5.2.1. LCD especial.pbp Programa para mostrar uno por uno cada caracter .
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 83
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 93/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
El LCD dispone en cada una de las líneas 40 posiciones de memoria, de los cuales únicamente 16
son visibles, en el siguiente ejercicio escribiremos un mensaje desde el casillero 17 ($90), el cual
no es visible y luego iremos desplazando a la izquierda, como resultado tendremos un texto que
se mantiene en movimiento, una vez que este termina recorrerá 16 posiciones en blanco y luego
volverá a aparecer los 24 caracteres del texto.
Este proyecto,
período, este a consiste envisualiza
su vez se contar elen
número de pulsos
un LCD, que ingresan
si la cantidad porsupera
de este un pin en un
a los 120determinado
pulsos por
segundo es decir 120 HZ, se encenderá una alarma que en este caso será un led rojo, y si la
cantidad de pulsos baja a menos de 100 HZ, este encenderá un led verde, si la frecuencia se
mantiene entre estos 2 rangos, no se encenderá ningún led.
Este proyecto tiene muchas aplicaciones como por ejemplo para un regulador de voltaje
en el que a más de indicarnos el voltaje de salida podría además indicarnos la frecuencia.
Para esta práctica utilizaremos un CI. 555 que nos ayuda a generar un tren de pulsos
variable, el cual lo conectamos al PIC para su posterior conteo.
LA DECLARACIÓN COUNT. Sirve para contar el número de pulsos que ingresan por un pin
en un determinado tiempo, este a su vez lo guarda en una variable para su posterior
procesamiento, la manera de utilizarlo es la siguiente:
El cual se interpreta así: cuenta pulsos a través del puerto B0 en un período de 1000 milisegundos
y lo guarda en la variable previamente creada llamada abc, el período podemos variarlo de 1 a
65535.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 94/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 DISPLAY LCD 2x16
-1 resistencia de 10Ω, y 1 resistencia de 1K Ω
-3 leds de 5mm, 1 verde y 2 rojos
-3 resistencia de 330 Ω a ½ vatio, naranja-naranja-café
-2 potenciómetros de 10 K
-1 CI. 555 Ω
-1 capacitor de 10uF/25V.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 95/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Si no colocamos ninguna instrucción nos mostraría el ASCII que representa el número 105, es
decir la letra i.
LCDOUT $FE, $C5, puls, “ Hz” ; muestra en el LCD así : i Hz
Este proyecto es muy similar al anterior, con la diferencia que el tren de pulsos ya no es generado
por un C.I. 555, sino más bien por el giro de un motor que se une a un cono de caucho, el cual
transmite movimiento a un disco de plástico negro, en el que posee una ranura de 1 a 2 mm, que
al pasar por el medio del optoacoplador, polariza 2 transistores y este hace cambiar el estado de 0
a 1, esta señal podemos conectarlo al PIC y visualizarlo en un LCD, el mismo principio utilizan
los marcadores de kilometraje de los autos y los tacómetros de los mismos.
MATERIALES.
-1 DISPLAY LCD 2x16
-1 resistencia de 10Ω
-1 resistencia de 330 Ω
-1 resistencia de 1K Ω
-1 resistencia de 4,7 K Ω
-1 potenciómetros de 10 K Ω
-1 eje de giro independiente con un disco de plástico negro
-1 optoacoplador ECG3100 con salida de transistor NPN como el de la figura 5.5.5.2.
Figura 5.5.5.1. Esquema para unir el motor con el eje independiente de un tacómetro portátil.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 96/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
prog:
COUNT portb.0,1000,revo ;contar pulsos en el puerto B.0
revo = revo * 60 ;multiplicar por 60 para tener 1 minuto rpm
LCDOUT $fe, 1,"Motor girando a:" ;limpiar LCD y escribir
LCDOUT $fe,$c3, DEC revo ;sacar el valor de la variable revo
LCDOUT $fe,$c9," RPM" ;ir a 2da línea casilla 9 y escribir RPM
GOTO prog
END
Observen que la variable revo es multiplicada por 60, con la finalidad de que nos de el número de
vueltas que daría en un minuto, estos datos salen en múltiplos de 60, por consiguiente no es muy
preciso, si deseamos más precisión podemos multiplicar por 30, pero debemos asegurar que la
declaración COUNT cuente durante 2 segundos, para luego de multiplicar por 30, nos de RPM,
la línea de programa quedaría así:
Lo más óptimo sería que la declaración COUNT cuente durante 1 minuto es decir:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 97/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En este caso no debemos multiplicar con ningún valor la variable revo, el inconveniente sería que
deberíamos permanecer conectados al motor por un minuto, hasta que la variable COUNT
termine de contar los pulsos, por esto lo más aconsejable sería de 2 a 5 segundos, en este último
caso deberíamos multiplicarlo por 12.
NOTA: Se puede utilizar los optoacopladores que vienen en los mouse de los PC, también es
importante que el disco sea de color negro, para impedir que la luz infrarroja atraviese hacia el
transistor, un disco de metal también podría funcionar bien.
MATERIALES.
-1 DISPLAY LCD 2x16
-1 resistencia de 10Ω
-2 potenciómetros de 10 K Ω
-1 condensador cerámico de 0,1uF ( referencia 104 )
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 98/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CMCON = 7 ;convierte en digitales el puerto A
dato VAR BYTE ;variable dato con capacidad de 255
medir:
POT portb.0,255,dato ;leer el potenciómetro y guardar en dato
LCDOUT $FE, 1," Rango= " ;limpiar pantalla y escribir rango=
LCDOUT, #dato ;mostrar el valor decimal de dato
PAUSE 100
GOTO medir
END
Figura 5.5.6.3. Fotografía del módulo LCD del entrenador experto de PIC´S EE-02 de
AUTOMASIS.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 99/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 100/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
FREQOUT portb.0, 2000, 7200 ;sacar una frecuencia de 7,2 Khz
;durante 2 segundos por el Puerto B.0
END
Figura 5.6.1.4. freqout.pbp Programa para generar sonido a través de un parlante .
Esta práctica consiste en sacar por un parlante el sonido característico de una sirena policial, para
esto emplearemos la ayuda de la declaración SOUND.
LA DECLARACIÓN SOUND. Sirve para generar tonos y/o ruido blanco en un pin del PIC, y
es posible combinar hasta 2 frecuencias desde de 1 a 127 que son tonos y 128 a 255 ruido blanco,
0 es silencio, 1 equivale a 78,74 HZ y 127 a 10000 Hz, esto se lo utiliza de la siguiente manera:
SOUND portB.0,[100,10,50,10]
Esto quiere
con una decir sacar
duración de 102 milisegundos
tonos por el puerto b.0,
y luego uneltono
primer tono
de 50 es 100
(3937 Hz)que
conequivale a (7874deHz)
una duración 10
milisegundos también.
En cuanto a los materiales y diagrama de conexión son los mismos de la práctica anterior
Programa:
SOUND portb.0, [100,10,50,10] ;genera tonos por el Puerto B.0
GOTO programa
END
Figura 5.6.2.1. sirena.pbp Programa para generar una sirena policial a través de un parlante .
Con un oscilador de 20Mhz, el micro trabaja 5 veces más rápido que antes es decir si con un
oscilador interno de 4 Mhz, el PIC ejecutaba cada instrucción en 1 uS., con un oscilador de 20
Mhz lo hará en 0,2 uS (0,0000002 S).
Para esta práctica necesitamos estos nuevos elementos además de los anteriores:
MATERIALES.
-1 cristal de 20 MHZ como el de la figura 5.6.2.2. ideal para protoboards
-2 condensadores de 22 pF ( 22 picoFaradios)
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 101/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 102/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
100 Khz
2 Mhz 68
15––150 pF
30 pF 68
15––150 pF
30 pF XT
4 Mhz 15 – 30 pF 15 – 30 pF
8 Mhz 15 – 30 pF 15 – 30 pF HS
10 Mhz 15 – 30 pF 15 – 30 pF
12 Mhz 15 – 30 pF 15 – 30 pF
16 Mhz 15 – 30 pF 15 – 30 pF
20 Mhz 15 – 30 pF 15 – 30 pF
Para mayor el
cambiarnos facilidad podemos
oscilador agregar
predefinido una para
a HS, líneaello
de debe
código ensamblador
escribir que se
al principio delencargará
programa de
lo
siguiente:
Para comprobarlo una vez compilado abra el archivo en el programa IC-prog y observará que el
oscilador ha cambiado a HS sin que usted haga nada.
Esta práctica consiste en sacar por un parlante el sonido característico de un teléfono celular, para
esto emplearemos la ayuda de la declaración SOUND.
Pruebe con algunas combinaciones de tonos, así como también con diferentes tiempos y verá que
bien podría componer una melodía.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 103/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Esta práctica tiene como objetivo generar tonos DTMF (Dual-Tono MultiFrecuency) a través de
un PIC, como los que genera cualquier teléfono fijo o celular, estos tonos no son nada más que el
envío de 2 frecuencias específicas asignadas a cada tecla, estas frecuencias podemos ver en la
figura 5.6.4.1., lo que sucede cuando pulsamos una tecla por ejemplo la 6, es que este envía una
frecuencia del grupo bajo 770 Hz y luego una segunda frecuencia del grupo alto 1477 Hz, esto
podríamos hacerlo generando con la declaración FREQOUT.
FREQOUT portb.0,200,941,1336 ;equivale a presionar la tecla 0 de DTMF, durante 200 mls
PAUSE 50 ;retardo de 50 mls antes de pulsar la siguiente tecla
FREQOUT portb.0,200,852,1477 ;equivale a presionar la tecla 9 de DTMF, durante 200 mls
PAUSE 50 ;retardo de 50 mls antes de pulsar la siguiente tecla
Esto deberíamos hacer por cada tecla que deseáramos que marque, pero para facilitarnos las cosas
el compilador PBP tiene una declaración específica para este trabajo.
En la figura 5.6.4.2., se muestra el diagrama básico de conexión para poder hacer una llamada
telefónica, debido a que el oscilador interno que posee el PIC es un RC (resistencia condensador),
este no es muy preciso, por lo que experimentalmente se comprobó que el 90 % de los intentos
para marcar los tonos DTMF fallaban y sólo el 10% restante de los intentos resultaban con la
llamada al número deseado.
Para que los tonos DTMF que generan el PIC sean válidos al 100%, es necesario utilizar
un cristal externo, sea este de 10, 12 o 20 MHZ, con sus debidos capacitores, en este caso
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 104/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
usaremos el de 20 MHZ. La resistencia de 560 Ω a 1 vatio paralela a la red telefónica, sirve para
simular la carga de un teléfono normal, y con esto podremos tener el tono de marcado necesario
para hacer la llamada, además notarán que esta resistencia empieza a disipar calor en el momento
que se une a la red telefónica, esto debido a la cantidad de voltaje que circula (60 voltios).
El relé hace la conexión y desconexión de la red telefónica, que en este caso sería como
el auricular que cuelga y descuelga el teléfono. El capacitor electrolítico de 1 uF a 100 voltios,
sirve para poder mejorar la onda que sale del PIC y además como protección para el PIC. Es
importante indicar que la red telefónica suministra alrededor de 60 voltios en DC, por lo que el
capacitor debe pasar de 60 voltios y además el lado positivo de la red telefónica debe ir a tierra
del PIC y el negativo hacia el pin del PIC, por lo que necesitaremos la ayuda de un voltímetro
para poder identificar la polaridad de la red.
Para solucionar este inconveniente se propone el diagrama de la figura 5.6.4.3., este es un
diagrama más completo en el que la polaridad de la línea no es un problema, puesto que dispone
un puente de diodos en donde el lado positivo ya está unido a tierra y el lado negativo va a través
del filtro hacia el PIC.
Figura 5.6.4.2. Diagrama básico de conexión para generar una llamada telefónica, noten que el
lado positivo de la red telefónica debe ir a tierra del PIC, caso contrario no
se podrá generar la llamada .
Figura 5.6.4.3. Diagrama de conexión para generar una llamada telefónica, en la que no
importa la polaridad de la red telefónica, puesto que dispone un puente de diodos .
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 95
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 105/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 cristal de 20 MHZ
-3 condensadores cerámicos, 2 de 22 pF ( 22 picoFaradios) y 1 condensador de 0,1 uF (103)
-1 capacitor electrolítico de 1 uF a 100voltios
-5 diodos rectificadores 1N4007
-1 resistencia de 4,7 K
-1 resistencia de 560 ΩΩ a 1 vatio
-1 transistor 2N3904
-1 relé a 12 voltios de 5 patitas
Este proyecto es muy utilizado en sistemas de seguridad, se puede hacer una alarma la cual en el
momento de violar su seguridad, este realice automáticamente una llamada al propietario, el
propietario en el momento de contestar escuchará una sirena, señal suficiente para saber que
alguien ha activado la alarma, este mismo principio utilizan las centrales de monitoreo, con la
diferencia que en vez de generar un sonido de sirena, se envía datos en forma serial como: Qué
zona se abrió, a qué hora, estado de batería, etc. lo cual aprenderemos más adelante en
comunicaciones con microcontroladores PIC.
Figura 5.6.4.4. Fotografía de una tarjeta electrónica de una alarma de 3 zonas con armado de
llave, cargador de batería y llamada telefónica, comandado por un PIC16F628 .
@ device HS_OSC
DEFINE OSC 20 ;cambia a oscilador
;defíne oscilador HS endeel20
externo IC-Prog.
MHZ.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 106/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.6.4.5. llamada DTMF.pbp Programa para hacer una llamada al teléfono celular .
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 107/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.7 PROYECTOS CON TECLADOS
MATERIALES.
-1 teclado matricial hexadecimal de 16 teclas como el de la figura 5.7.2.3
-7 resistencias de 330Ω
-4
-1 resistencia
DISPLAY de de 4,7 K Ω
7 segmentos ánodo común
-1 CI. 7447 decodificador BCD.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 108/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
prog1:
PORTB=0 ;el puerto B es = %00000000
TRISB=%11110000 ;configura 4 pines bajos como salida y los demás entrada
IF ((PORTB >> 4)!=%1111) THEN prog1 ;si la tecla es presionada manténgalo en prog1
prog2:
FOR fila = 0 TO 3 ;repetir para las 4 filas del teclado
PORTB=0 ;el puerto B es = %00000000
TRISB=(DCD fila)^%11111111 ;setea una fila a 1 y los invierte a todos los demás
colu= PORTB >> 4 ;desplaza los 4 bits altos al inicio
IF colu != %1111 THEN numtecla ;si una tecla es pulsada ir numtecla
NEXT fila
GOTO prog2
numtecla:
tecla = (fila*4)+(NCD (colu^%1111)) ;calcula el valor de la tecla multiplicando
;por 4 la fila a la que pertenece y sumando a la posición que se encuentra
;para un teclado de 12 pulsadores, debemos cambiar (fila*3)
porta=tecla
GOTO prog1 ; sacar por el puerto A el valor de tecla
END
Debe considerarse que el lugar de las teclas no se pueden cambiar, puesto que este sistema de
programación, utiliza operaciones matemáticas para calcular la tecla pulsada, pero debemos
reconocer lo pequeño que es el programa, por eso se propone otro modo de programar, en donde
los valores se le puede asignar en cualquier lugar, así como también se le puede poner letras.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 109/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
cmcon=7 ;cambiar a modo digital todo el puerto A
TRISA = 0 ;todo el puerto A es configurado como salidas
BARRIDO:
LOW A ;hacer bajo la 1era fila
IF UNO = 0 THEN PORTA = 1 ;si la 1ra tecla es presionada sacar 1
IF DOS = 0 THEN PORTA = 2 ;si la 2da tecla es presionada sacar 2
IF TRES
CUATRO == 00 THEN
THEN PORTA
PORTA == 310 ;si
;si la
la 3ra tecla es
4ta tecla es presionada
presionada sacar
sacar 10
3
HIGH A ;poner en alto la 1era fila
LOW B ;hacer bajo la 2da fila
IF UNO = 0 THEN PORTA = 4 ;si la 1ra tecla es presionada sacar 4
IF DOS = 0 THEN PORTA = 5 ; y así sucesivamente
IF TRES = 0 THEN PORTA = 6
IF CUATRO = 0 THEN PORTA = 11
HIGH B ;poner en alto la 2da fila
LOW C ;hacer bajo la 3ra fila
IF UNO = 0 THEN PORTA = 7
IF DOS = 0 THEN PORTA = 8
IF TRES = 0 THEN PORTA = 9
IF CUATRO
HIGH C = 0 THEN PORTA = 12 ;poner en alto la 3ra fila
LOW D ;hacer bajo la 4ta fila
IF UNO = 0 THEN PORTA = 14
IF DOS = 0 THEN PORTA = 0
IF TRES = 0 THEN PORTA = 15
IF CUATRO = 0 THEN PORTA = 13
HIGH D ;poner en alto la 4ta fila
PAUSE 10 ;pausa de 10 milisegundos
GOTO BARRIDO ;continuar con el barrido de teclas
END
Como se puede ver este programa es un poco más largo, pero ocupa menos espacio en la memoria
del PIC que el ejercicio anterior, además tiene la ventaja de poder poner en cualquier lugar el
valor de las teclas y es más fácil de entender, así que este será la forma que utilizaremos en
adelante. Su funcionamiento es sencillo sólo debemos fijarnos cual fila es la que está en LOW y
100 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 110/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
esta es la fila que se está barriendo, si una de las condiciones encuentra la igualdad, pues esta
es la tecla pulsada.
LOW B
IF TRES=0 THEN PORTA = 6 ; detecta un cambio de estado y saca por el display el # 6
HIGH B
Debemos considerar que una persona requiere como mínimo 100 milisegundos para presionar una
tecla, en ese tiempo el PIC realiza 10 barridos, por lo que de seguro detectará inmediatamente la
tecla pulsada.
Para el caso de utilizar un teclado de 12 pulsadores, debemos eliminar una columna, las
que corresponde a la tecla A, B, C, y D, es decir eliminamos las siguientes líneas del programa:
IF CUATRO = 0 THEN PORTA= 10
IF CUATRO = 0 THEN PORTA= 11
IF CUATRO = 0
IF CUATRO = 0 THEN
PORTA= 12
THEN PORTA= 13
En este caso quedaría un teclado con pulsadores del 0 al 9 y dos teclas de propósito especial, la
tecla asterisco ( *) y la tecla numeral ( # ).
MATERIALES.
-1 teclado matricial hexadecimal como el de la figura 5.7.2.3
-6 resistencia de 4,7 K
-1 resistencia de 330 ΩΩ
-2 transistores 2N3904
-1 chicharra activa ( las que suenan directamente al alimentarles con 12 voltios)
-1 relé de 12 voltios de 5 patitas
-1 LED rojo de 5 mm.
-1 Diodo rectificador 1N4007.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 111/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
BARRIDO:
LOW A ;sensar la fila A continúa ....
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 112/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF UNO = 0 THEN NUMERO =1 :RETURN ;tecla retorna cargada con 1
IF DOS = 0 THEN NUMERO =2 :RETURN ;tecla retorna cargada con 2
IF TRES = 0 THEN NUMERO =3 : RETURN ;tecla retorna cargada con 3
IF CUATRO = 0 THEN NUMERO =10: RETURN ;tecla retorna cargada con 10
HIGH A
LOW B ;sensar la fila B
IF UNO = 0 THEN NUMERO =4 : RETURN
IF DOS = 0 THEN NUMERO =5 : RETURN
IF TRES = 0 THEN NUMERO =6 : RETURN
IF CUATRO = 0 THEN NUMERO =11: RETURN
HIGH B
LOW C ;sensar la fila C
IF UNO = 0 THEN NUMERO =7 : RETURN
IF DOS = 0 THEN NUMERO =8 : RETURN
IF TRES = 0 THEN NUMERO =9 : RETURN
IF CUATRO = 0 THEN NUMERO =12: RETURN
HIGH C
LOW D = 0 THEN NUMERO =14: RETURN
IF UNO ;sensar la fila D
IF DOS = 0 THEN NUMERO =0 : RETURN
IF TRES = 0 THEN NUMERO =15: RETURN
IF CUATRO = 0 THEN NUMERO =13: RETURN
HIGH D
PAUSE 10
GOTO BARRIDO
LOW LED : LOW BIP
ESPACIO:
;apagar sonido y led
;programa de antirrebote de teclas
IF UNO = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
IF DOS = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
IF TRES = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
IF CUATRO = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
PAUSE 25
RETURN ;retorna si se suelta las teclas
TECLAUNO:
GOSUB BARRIDO ;ir a barrido y retornar con un valor
GOSUB
IF NUMERO
PTECLA
= 1 THEN TECLADOS
;envía a un programa antirrebote para soltar tecla
;si el número es igual a 1 ir teclados
GOTO FALSO ;caso contrario ir a lazo falso
TECLADOS:
GOSUB BARRIDO: GOSUB PTECLA ;ir a barrido y retornar con un valor
Continúa ...
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 103
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 113/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF NUMERO = 2 THEN TECLATRES ;si el número es igual a 2 ir teclatres
GOTO FALSO1 ;caso contrario ir a lazo falso
TECLATRES:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF NUMERO = 3 THEN TECLACUATRO ;si el número es igual a 3 ir teclacuatro
GOTO FALSO2 ;caso contrario ir a lazo falso
TECLACUATRO:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF NUMERO = 4 THEN OPENGE ;si el número es igual a 4 conectar relé
GOTO FALSO3 ;caso contrario ir a lazo falso
OPENGE:
FOR R = 1 TO 2 ;2 pitos indica clave correcta
PAUSE 100
HIGH LED : HIGH BIP
PAUSE
LOW 100: LOW BIP
LED
NEXT
GOSUB
FALSO2:
BARRIDO :GOSUB PTECLA ;pulsar las 4 teclas y no hace nada
GOSUB BARRIDO :GOSUB PTECLA
FALSO3:
FOR R = 1 TO 3 ;3 pitos indica clave incorrecta
PAUSE 100
HIGH LED : HIGH BIP
PAUSE 100
LOW LED : LOW BIP
NEXT
GOTO TECLAUNO ;ir nuevamente a comparar las claves
END
Figura 5.7.2.2. cerradura_FLASH.pbp Programa para hacer una cerradura electrónica
codificada (1,2,3,4) en la que la clave no se puede cambiar .
NOTA: Para evitar fallas en su funcionamiento debido a la activación del relé, asegúrese de
colocar un capacitor de 0,1 uF paralelo a la alimentación del PIC.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 114/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Este proyecto
predefinida es muypor
(1,2,3,4) similar al anterior
cualquier con la diferencia
otra combinación que este
de teclas, se leoriginal
la clave puede cambiar la clave
será cargada en
cuatro variables y existirá una manera de cambiar los valores de estas variables lo cual se lo hace
de la siguiente manera: después de haber colocado la clave original (1,2,3,4), debemos mantener
presionado la tecla D durante 2 segundos, para ser más exactos en el momento que el relé se
conecta después de 1 segundo hay una pregunta de si la tecla D es presionada ir a grabar, si no
presionamos la tecla D a tiempo, perderemos la oportunidad de cambiar la clave y tendremos que
volver a repetir el proceso, en el momento que ingresa al programa de cambio de clave se
encenderá el LED y permanecerá encendido esperando a que ingresemos los 4 nuevos dígitos.
Es importante saber que la nueva clave se almacenará en las variables SETPRIME,
SETSEGUN, SETERCER, y SETCUART, estas variables ocupan espacio en la memoria RAM
(Random Access Memory) o memoria de acceso casual que tiene una capacidad de 224 BYTES,
por lo tanto sólo están activas mientras el PIC se encuentra alimentado, una vez que se corta la
alimentación al PIC esta memoria se borra (volátil), por consiguiente al momento de volver a
prender el micro PIC, la nueva clave se nos habrá perdido y en su lugar se encontrará la clave
original (1,2,3,4), esto debido a que esta clave se encuentra en la memoria FLASH y en el
momento de correr el programa lo carga nuevamente en la memoria RAM para desde aquí poder
ser modificada.
En cuanto a los materiales y el diagrama de conexión, son los mismos que se utilizaron en
el ejercicio anterior.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 105
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 115/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
cmcon=7 ;cambiar a modo digital todo el puerto A
NUMERO VAR BYTE ;variable número para almacenar la tecla pulsada
R VAR BYTE ;variable r para hacer repeticiones
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 116/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
GRABACUATRO:
GOSUB BARRIDO : GOSUB PTECLA ;ir a barrido y retorna a un antirrebote
HIGH LED ;mantener encendido el LED
SETCUART = NUMERO ;guardar el valor de número
GOTO iniciando ; ir a iniciando
BARRIDO:
LOW A ;sensar la fila A
IF UNO = 0 THEN NUMERO =1 :RETURN ;tecla pulsada retorne cargada con 1
IF DOS = 0 THEN NUMERO =2 :RETURN ;tecla pulsada retorne cargada con 2
IF TRES = 0 THEN NUMERO =3 :RETURN ;tecla pulsada retorne cargada con 3
IF CUATRO=0 THEN NUMERO =10:RETURN ;tecla pulsada retorne cargada con 10
HIGH A
LOW B ;sensar la fila B
IF UNO = 0 THEN NUMERO =4 : RETURN
IF DOS = 0 THEN NUMERO =5 : RETURN
IF TRES = 0 THEN NUMERO =6 : RETURN
IF CUATRO=0 THEN NUMERO =11: RETURN
HIGH B
LOW C ;sensar la fila C
IF UNO = 0 THEN NUMERO =7 : RETURN
IF DOS = 0 THEN NUMERO =8 : RETURN
IF TRES = 0 THEN NUMERO =9 : RETURN
IF CUATRO=0 THEN NUMERO =12: RETURN
HIGH C
LOW D ;sensar la fila D
IF UNO = 0 THEN NUMERO =14: RETURN
IF DOS = 0 THEN NUMERO =0 : RETURN
IF TRES = 0 THEN NUMERO =15: RETURN
IF CUATRO= 0 THEN NUMERO =13: RETURN
HIGH D
PAUSE 10
GOTO BARRIDO
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 117/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF numero
GOTO = setsegun THEN TECLATRES
FALSO1
;si el número
;caso
esirigual
contrario
a setsegun
a lazo falso
TECLATRES:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF numero = setercer THEN TECLACUATRO ;si el número es igual a setercer
GOTO FALSO2 ;caso contrario ir a lazo falso
TECLACUATRO:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF numero = setcuart THEN OPENGE ;si número es igual a setcuart conectar relé
GOTO FALSO3 ;caso contrario ir a lazo falso
OPENGE:
FOR R = 1 TO 2 ;2 pitos indica clave correcta
PAUSE 100
HIGH LED : HIGH BIP
PAUSE 100
LOW LED : LOW BIP
NEXT
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 118/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
indicadores,
placa de fibrafabricado
de vidrio. en una
Una vez aprendido acerca de las 2 memorias anteriores, es el momento de aprender a utilizar la
memoria EEPROM (Electrical Erasable Programable Read Only Memory), o memoria de lectura
de programación y borrado eléctrico, que a diferencia de la memoria RAM, esta no es volátil y
tiene capacidad para 128 Bytes, lo que quiere decir que si al PIC se le corta la alimentación, los
datos almacenados en la memoria EEPROM, permanecen inalterados según su fabricante por un
período de 100 años.
Este proyecto cumple todas las expectativas de un electrónico, tiene la posibilidad de
cambiar la clave y no borrarse, si se digita una clave errónea el teclado se bloquea y únicamente
lo desbloqueamos presionando al mismo tiempo las teclas 7 y C por 2 segundos , asimismo para
cambiar la clave procedemos como en el proyecto anterior, presionando la tecla D.
Algo importante es que si nos olvidamos la clave, la única manera de recuperarlo es
leyendo el contenido del PIC a través de programador IC-prog, esto se lo realiza colocando al PIC
nuevamente en el grabador y presionando la tecla , la cual después de leer el contenido del
PIC, nos mostrará la nueva clave almacenada en la parte inferior, donde dice
Dirección-Datos Eeprom.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 109
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 119/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En cuanto a los materiales y el diagrama de conexión, son los mismos que se utilizaron en el
proyecto anterior.
READ 5, pepe ; quiere decir leer la dirección 5 de la memoria EEPROM y guardar en la variable
pepe, por consiguiente pepe se carga con el número 3.
WRITE 8, 137 ; quiere decir guardar en la dirección 8 de la memoria EEPROM el número 137,
el dato anterior en este caso el 12 automáticamente se borra y se reescribe el número 137.
WRITE 7, pepe ; en este caso la variable pepe estaba cargada con el número 3, por consiguiente
la dirección 7 de la memoria EEPROM se borra y se carga con el número 3.
NOTA: Estas declaraciones ya incluyen las PAUSAS necesarias para realizar la grabación, por lo
que no es necesario colocar PAUSE 10 después de cada declaración, debe considerar también que
la memoria EEPROM soporta 1´000.000 de ciclos de borrado/escritura.
SETPRIME
SETSEGUN VAR BYTE ;variable
;variable para
para almacenar
almacenar la
la 1era clave
2da clave
SETERCER VAR BYTE ;variable para almacenar la 3era clave
SETCUART VAR BYTE ;variable para almacenar la 4ta clave
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 120/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
HIGH LED : HIGH BIP
PAUSE 1000
LOW LED : LOW BIP
PAUSE 150
NEXT
BARRIDO:
LOW A ;sensar la fila A
IF UNO = 0 THEN NUMERO =1 :RETURN ;tecla pulsada retorne cargada con 1
IF DOS = 0 THEN NUMERO =2 :RETURN ;tecla pulsada retorne cargada con 2
IF TRES = 0 THEN NUMERO =3 :RETURN ;tecla pulsada retorne cargada con 3
IF CUATRO=0 THEN NUMERO =10:RETURN ;tecla pulsada retorne cargada con 10
HIGH A continua …
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 121/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 122/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
OPENGE:
FOR R = 1 TO 2 ;2 pitos indica clave correcta
FALSO3:
FOR R = 1 TO 30 ;30 pitos indica clave incorrecta
PAUSE 150
HIGH LED : HIGH BIP
PAUSE 150
LOW LED : LOW BIP
HIGH A: HIGH B :HIGH D :LOW C ;sensar sólo la fila C
IF (CUATRO=0)AND(UNO=0)THEN RESET ;corresponden a teclas 7 y C para resetear
NEXT
PANICO:
HIGH LED
PAUSE 500
LOW LED
PAUSE 500
HIGH A: HIGH B :HIGH D :LOW C ;sensar sólo la fila C
IF (CUATRO=0)AND(UNO=0)THEN RESET ;corresponden a teclas 7 y C para resetear
GOTO PANICO ; queda en este lazo para siempre
END
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 123/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 124/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.8 PROYECTOS CON MOTORES
El PWM (Pulse Width Modulation) o modulación en ancho del pulso, tiene muchas aplicaciones,
por ejemplo para atenuar la iluminación de un led, la iluminación del BACKLIGHT de un LCD,
para variar la velocidad de un motor DC, que es lo que veremos en este caso. El presente proyecto
es un variador de velocidad de un motor DC de juguete que se alimenta a 5 voltios, su
funcionamiento es de la siguiente manera:
Al momento de alimentar el circuito, el motor parte desde una velocidad media, es decir
(FREC=125), al pulsar el botón (S) incrementa la variable en múltiplos de 25 y la velocidad del
motor sube hasta llegar a (FREC=250), si seguimos pulsando la misma tecla, el LED
permanecerá encendido, esto nos indica que ya llegó al límite, entonces pulsamos el botón (B), el
cual hace que disminuya la velocidad del motor hasta llegar a (FREC=25), de igual manera si
seguimos pulsando el botón (B) el LED permanecerá encendido. Si usted no dispone de un motor
puede conectar
cómo baja a un
o sube LED directamente
la intensidad del LED,con una resistencia
la forma de utilizardeel 330
PWM Ω,esigualmente podrámanera:
de la siguiente observar
PWM portB.0, 127, 60 ; quiere decir sacar 60 pulsos PWM por el puerto B.0 al 50% en alto
; aproximadamente
La forma de la señal que sale por el PIC es similar a los siguientes gráficos:
Por consiguiente 0 representa 0% de ciclo útil y 255 el 100% de nivel alto, el largo de cada ciclo
para un oscilador de 4MHZ es de 5 milisegundos y para un oscilador de 20MHZ es de 1
milisegundo
MATERIALES.
-3 resistencia de 4,7 K Ω
-1 resistencia de 330
-1 transistor TIP110 Ω
-2 pulsadores normalmente abiertos
-1 capacitor cerámico de 0,1 uF (104)
-1 LED rojo de 5 mm.
-1 diodo rectificador 1N4007
-1 motor de juguete.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 125/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 126/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
BAJAR:
IF FREC < 26 THEN aviso ;si baja de 26 ir a aviso
IF bandera = 1 THEN prog ;si la bandera esta en 1 salir
HIGH LED ;encender el led
bandera=1 ;cargar la bandera con uno
FREC = FREC -25 ;restar 25 a la variable FREC
GOTO PROG ;ir a prog
aviso:
HIGH LED ;encender el led
GOTO PROG ;ir a prog
END
Figura 5.8.1.3. PWM motor.pbp Programa para controlar la velocidad de un motor DC .
Se puede hacer un pequeño convertidor de digital a análogo para el PWM con una resistencia y
un capacitor, pero vamos a proponer realizarlo con el LM358 por sus mejores prestaciones, ya
que lograremos mayor rango de voltaje (hasta 32 V.), pero en nuestro caso por motivos
experimentales sólo lo conectaremos a los 5 voltios de la misma fuente que está alimentado el
PIC, en el caso de un PWM de 255, el LM358 tendrá en su salida 5 V., si sacamos un PWM de
127, tendremos 2,5 V., en definitiva los pulsos que ingresan al LM358 se convierten en salida
análoga, desde 0 hasta 5 V.
Figura 5.8.2.1. Conexión de un LM358 como conversor D/A para convertir el PWM en señal
análoga de 0 a 5 V .
Se necesita un voltímetro para medir los niveles de voltaje en la salida, en cuanto al programa
podemos utilizar el mismo del ejercicio anterior el PWM_motor.pbp. A la salida del LM 358
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 117
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 127/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
podemos colocar un LED con su resistencia de 330 Ω. para poder observar su atenuación,
también podemos colocar el circuito del motor de DC, con su capacitor y diodo de protección.
MATERIALES.
-2 resistencia de 4,7 K
-1 resistencia de 330 ΩΩ
-1 resistencia de 1 K Ω
-1 resistencia de 100 K Ω
-1 capacitor electrolítico de 10 uF/100V.
-2 pulsadores normalmente abiertos
-1 LED rojo de 5 mm.
-1 CI. LM358.
Los motores paso a paso (PAP) son ideales para la construcción de mecanismos en donde se
requieren movimientos muy precisos, como en robótica, en la tecnología aeroespacial, en
maquinarias (tornos, fresadoras, bordadoras), en computadores (CD ROM, Disco duro, DVD,
impresoras), etc. A diferencia de los motores de C.C. y los de C.A., los motores PAP tienen la
ventaja de poder ser más precisos en cuanto a su velocidad, movimiento, enclavamiento y giros,
la señal que requieren para su funcionamiento es de naturaleza digital.
La manera de identificarlos a diferencia de los motores PAP bipolares de 4 hilos y 2
bobinas (ver figura 5.8.3.2.), es que los motores PAP unipolares tienen desde 5 hasta 8 alambres
(ver figura 5.8.3.3.) y su funcionamiento es mucho más simple que los motores PAP bipolares,
los cuales necesitan un integrado L293 que dispone de 2 puentes H (H-Bridge) o por lo menos
debemos hacer un arreglo de 8 transistores, (4 PNP y 4 NPN).
En cuanto al voltaje de alimentación existen desde 1,3V., 1,9V., 4,5V., 5V., 12V. y 24 V.,
la corriente de consumo de un motor puede variar desde 300mA hasta 3 A.
De acuerdo a la aplicación que deben realizar los motores PAP tienen diferentes grados
de precisión como muestra la siguiente tabla:
Grados que gira por impulso Ø Nro. de pasos para llegar a 360°
0,72° 500
1,8° 200
3,75° 96
7,5° 48
15° 24
90° 4
Figura 5.8.3.1. Tabla del número de pasos que debe dar un motor PAP para llegar a dar una
vuelta completa, según su ángulo de giro .
El circuito de control para los motores PAP unipolares sea de 5, 6, 8 hilos, es muy sencillo,
podemos utilizar un buffer ULN2803 o 4 transistores TIP110 con 4 diodos de protección, para
118 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 128/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.8.3.2. Diferencia entre un motor PAP bipolar y un motor PAP unipolar de 4 bobinas.
Figura 5.8.3.3. Motores PAP unipolar de 4 bobinas de 6 y 8 hilos, los cuales se los puede
configurar como bipolares.
que empiece a girar basta con dar una secuencia de pulsos con una duración de 5 milisegundos a
cada bobina como muestra la figura 5.8.3.4, mientras que para un motor bipolar se debe invertir la
polaridad de cada bobina para que este pueda generar un paso como lo muestra la figura 5.8.3.6.
BOBINA P1 P2 P3 P4
A +V gnd gnd gnd
C gnd +V gnd gnd
B gnd gnd +V gnd
D gnd gnd gnd +V
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 129/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.8.3.5. Fotografía de un
Motor PAP bipolar de la diske-
tera de un computador, observen
que tiene sólo 4 hilos.
PASO
1 A
V+ B
V- C
V+ D
V-
2 V+ V- V- V+
3 V- V+ V- V+
4 V- V+ V+ V-
Uno de los mayores inconvenientes a la hora de trabajar con los motores PAP en especial los
unipolares es la de poder identificar cual es la bobina A, B, C, y D, para esto simplemente
medimos las resistencias de cada una de las bobinas, por ejemplo tomemos el caso de un motor
unipolar de 6 hilos cuyos datos de la placa dice:
Como podemos ver es un motor paso a paso de 7,5 grados de movimiento con una alimentación
requerida de 24 V. y cuyas bobinas tienen una resistencia de 22 cada una.
Para identificar qué bobina es la A, debemos buscar el alambre de color amarillo, la B el
de color naranja, C el de color negro, el D el de color café, y los dos rojos son los comunes. Para
el caso de que no coincidan con esta gama de colores, debemos medir la resistencia entre un
cable y otro cable, los que marquen 22 son bobinas común y un terminal y si marca 44 son
los terminales A y B o C y D, una vez ubicado cuales son los comunes, estos podemos unirlos en
un sólo cable y colocando el motor de la forma que ilustra el gráfico 5.8.3.3, ya podemos asignar
los lugares de cada bobina, otra manera de ubicarlos es haciendo pruebas, si un sólo par de cables
están conectados incorrectamente el motor no gira y en su lugar permanece temblando, en este
caso pruebe cambiando los cables hasta que el motor empiece a girar.
120 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 130/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Como práctica básica para introducirnos en el manejo de motores PAP vamos a hacer un
programa que genere una revolución completa a un motor de 7.5 grados a 24 voltios en secuencia
wave drive o secuencia por ola, esta es la forma más fácil de manejar un motor, consiste en
energizar una sola bobina a la vez, A, C, B, y por último la D, a continuación veremos la tabla de
energizado para conseguir que el motor gire en ambos sentidos.
Bobina P1 P2 P3 P4
A 1 0 0 0
C 0 1 0 0
B 0 0 1 0
D 0 0 0 1
Bobina P1 P2 P3 P4
A 0 0 0 1
C 0 0 1 0
B 0 1 0 0
D 1 0 0 0
Figura 5.8.4.2. Tabla de energizado de bobinas en secuencia por ola para giro horario .
Como podemos ver sólo necesitamos activar un pin a la vez durante 5 milisegundos, si ponemos
10 milisegundos esto hará que el motor gire más despacio, pero menos de 4 milisegundos, no
serán suficiente para generar el paso y el motor se quedará temblando, adicionalmente se debe
poner diodos de protección del colector de cada transistor al voltaje positivo que esté conectado el
cable común del motor, esto para proteger al PIC del efecto inductivo que genera el motor. El
programa que haremos a continuación hace girar 360° en sentido antihorario, se detendrá por un
segundo y luego girará otros 360° en sentido horario, y así indefinidamente, como este es un
motor de 7,5° de giro, necesitaremos repetir la secuencia de los pasos 12 veces que multiplicado
por 4 pulsos tenemos 48 pasos, luego pruebe con 6 veces y verá que el motor gira 180°.
MATERIALES.
-4 resistencia de 4,7 K
-4 diodos rectificadores 1N4007
-4 transistores TIP110
-1 motor PAP unipolar de cualquier voltaje desde 5 hilos a 8 hilos.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 131/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Los motores PAP unipolares de 7,5° los podemos conseguir comúnmente en algunas impresoras
de las que ya no utilizamos, estas se encuentran en el mecanismo que mueven los rodillos del
alimentador de papel, y algunas impresoras tienen internamente hasta 2 motores PAP.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 132/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
trisb=0 ;hacer salidas el puerto b
x VAR BYTE ; variable x de 255
antihorario:
FOR x = 1 TO 12 ;12 veces repetir secuencia de giro antihorario
portb=%0001 ;energiza bobina A
GOSUB timer ;espera 5 mls
portb=%0010 ;energiza bobina C
GOSUB timer ;espera 5 mls
portb=%0100 ;energiza bobina B
GOSUB timer ;espera 5 mls
portb=%1000 ;energiza bobina D
GOSUB timer
NEXT
PAUSE 1000 ;espera 1 s
timer:
PAUSE 5 ;pausa de 5 milisegundos
RETURN
END
Figura 5.8.4.5. Motor PAP sec-OLA.pbp Programa para hacer girar 360° en ambos sentidos a
un motor PAP unipolar.
También conocida como secuencia por paso completo, este es la manera que recomienda los
fabricantes, debido a que siempre se encuentran energizadas 2 bobinas, se obtiene un alto torque
de paso y de retención, y consume un 40% más de corriente que el caso anterior.
El siguiente ejercicio hace girar el motor continuamente, noten además la fuerza que tiene
tratando de detener el giro con sus dedos.
En cuanto a los materiales y el diagrama de conexión utilizaremos los mismos del
ejercicio anterior.
A continuación mostraremos la gráfica de secuencia de pasos y energizado para el manejo
del motor a paso completo.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 123
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 133/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Bobina P1 P2 P3 P4
A 1 0 0 1
C 1 1 0 0
B
D
0
0
1
0
1
1
0
1
PAUSE 5
portb=%1001
;espera 5 mls
;energiza bobina D Y A
PAUSE 5 ;espera 5 mls
GOTO antihorario ;continuar girando
END
Figura 5.8.5.2. Motor PAP sec-paso compl.pbp Programa para hacer girar continuamente
en secuencia paso completo.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 134/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
También conocida como secuencia a medio paso, este es una combinación de las 2 secuencias
anteriores, se energiza 2 bobinas, luego 1 bobina, luego otra vez 2 bobinas y así alternadamente,
como resultado el rotor avanza medio paso por cada pulso de excitación, la ventaja de esta
secuencia es la disminución del avance angular, de 7,5° a 3,75°, por consiguiente para girar una
vuelta completa se necesita el doble de pasos, en este caso 96, lo que veremos en el programa será
8 secuencias que multiplicado por 12, nos dará 96 y esto equivale a 360°.
En cuanto a los materiales y el diagrama de conexión utilizaremos los mismos del
ejercicio anterior.
A continuación mostraremos la gráfica de secuencia de pasos y energizado para el manejo
del motor a medio paso.
Bobina P1 P2 P3 P4 P5 P6 P7 P8
A 1 1 0 0 0 0 0 1
C 0 1 1 1 0 0 0 0
B 0 0 0 1 1 1 0 0
D 0 0 0 0 0 1 1 1
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 135/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
portb=%0100 ;energizar bobina B
PAUSE 5 ;retardo de 5 mls
portb=%1100 ;energizar bobina B y D
PAUSE 5 ;retardo de 5 mls
portb=%1000 ;energizar bobina D
PAUSE 5
portb=%1001
;retardo de 5 mls
;energizar bobina A y D
PAUSE 5 ;retardo de 5 mls
NEXT ;siguiente repetición
Figura 5.8.6.2. Motor PAP sec-medio paso.pbp Programa para hacer girar 360°, en sentido
antihorario con un avance de medio paso.
NOTA: En este caso observarán que al terminar de dar la vuelta completa, quedan energizadas
las bobinas A para
sobrecalentarse, y D,que
por
estolonotanto el adicionen
suceda motor quedará
despuésretenido
del NEXTfuertemente y empezarácon
la línea portb=%0000, a
esto no queda ninguna bobina energizada y por consiguiente notarán que el rotor gira libremente.
1. Utilizando PWM, y sin pulsadores haga que el motor de un juguete baje y suba su
velocidad gradualmente.
2. Utilizando PWM un LM358 y 2 pulsadores, genere voltajes variables desde 0V. hasta 12
Voltios.
3. Con un Motor paso a paso unipolar haga que avance 90º y se detenga por 1 seg. luego
otros 90º y se detenga igualmente por 1 seg. así debe continuar indefinidamente.
4. Con un motor PAP unipolar haga girar 2 vueltas completas en sentido horario y luego una
vuelta en sentido antihorario, el proceso debe repetirse 5 veces, al final el motor debe
detenerse por 3 segundos y volver a repetir el proceso.
5. Con un motor PAP unipolar y 2 pulsadores, haga que invierta el sentido de giro con cada
pulsador, el motor debe estar en constante movimiento.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 136/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.9 COMUNICACIÓN
Existen dos formas de realizar una comunicación binaria, la paralela y la serial. La comunicación
paralela como por ejemplo la comunicación del PIC con el CI. 7447 del ejercicio 5.4.1., en donde
los datos viajan simultáneamente a través de los 4 hilos, tiene la ventaja de que la transferencia de
datos es más rápida, pero el inconveniente es que necesitamos un cable por cada bit de dato, lo
que encarece y dificulta el diseño de las placas, otro inconveniente es la capacitancia que genera
los conductores por lo que la transmisión se vuelve defectuosa a partir de unos pocos metros.
La comunicación serial en cambio es mucho más lenta debido a que transmite bit por bit
pero tiene la ventaja de necesitar menor cantidad de hilos, y además se puede extender la
comunicación a mayor distancia, por ejemplo; en la norma RS232 a 15 mts., en la norma
RS422/485 a 1200mts y utilizando un MODEM, pues a cualquier parte del mundo.
Existen dos formas de realizar la comunicación serial: la sincrónica y la asincrónica, la
diferencia entre
la línea para estas dos formas
la transmisión de comunicación
de datos, es que
necesita otra línea la contenga
que comunicación sincrónica
los pulsos además
de reloj, estosdea
su vez indican cuando un dato es válido. Por otra parte la comunicación serial asincrónica no
necesita pulsos de reloj, en su lugar utiliza mecanismo como referencia tierra (RS232) o voltajes
diferenciales (RS422/485), en donde la duración de cada bit es determinada por la velocidad de
transmisión de datos que se debe definir previamente entre ambos equipos.
Se incluye este literal para poder entender mejor las prácticas que más adelante realizaremos,
pues mencionaremos algunas palabras que podría encontrar su significado en este literal.
5.9.2.1. Simplex. Se dice a la transmisión que puede ocurrir en un sólo sentido, sea sólo para
recibir o sólo para transmitir. Una ubicación puede ser un transmisor o un receptor, pero no
ambos a la vez, un ejemplo claro es la radiodifusión, en donde la estación es el transmisor y los
radios son los receptores.
5.9.2.2. Half-duplex. Se refiere a la transmisión que puede ocurrir en ambos sentidos pero no al
mismo tiempo, en donde una ubicación puede ser un transmisor y un receptor, pero no los dos al
mismo tiempo, un ejemplo son los llamados radios WALKING TALKING, en donde un
operador presiona el botón y habla, luego suelta el botón y el otro usuario presiona el botón para
contestar.
5.9.2.3. Full-duplex. Se dice a la transmisión que puede ocurrir en ambos sentidos y al mismo
tiempo, también se los conoce con el nombre de líneas simultaneas de doble sentido, una
ubicación puede transmitir y recibir simultáneamente, siempre y cuando la estación a la que está
transmitiendo también sea la estación de la cual está recibiendo un ejemplo es la telefonía móvil.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 137/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
La norma RS232 se incluye actualmente en los computadores, conocido como puerto serial y
sirve para comunicarse con otras computadoras además del mouse, programadores, impresoras,
etc. A continuación veremos un gráfico que muestra la forma de comunicación serial.
Figura 5.9.3.1. Estructura de un dato que se envía serialmente a 2400,8N1, (2400bits /seg, sin
paridad, 8 bits de dato y 1 bit de parada), correspondiente al número 68 caracter
ASCII de “D” ( %01000100 ), el tiempo de un bit es de 416 μs., por lo que el
receptor revisa el bit de arranque después de 208 μs., y luego cada 416 μs.
Como podemos
transferencia ver laPara
de datos. señal permanece
empezar en un datos
a transmitir nivel lógico alto mientras
el transmisor coloca lanolínea
realiza ninguna
en nivel bajo
durante el tiempo de un bit (416 μs para 2400bits/s), este se llama el bit de arranque, a
continuación empieza a transmitir con el mismo intervalo de tiempo los bits de datos, que pueden
ser de 7 u 8 bits, comenzando por los bits menos significativos y terminando por los más
significativos. Al final de la transmisión de datos se envía el bit de paridad, si estuviera activa esta
opción y por último los bits de parada, que pueden ser 1 o 2, después de esto la línea vuelve a un
estado lógico alto, y el transmisor está listo para enviar el siguiente dato.
Como el receptor no está sincronizado con el transmisor desconoce el momento en que
empieza la transmisión, por lo que siempre debe estar en espera del cambio de estado o sea el bit
de arranque, una vez que se da este bit, medio bit después vuelve a verificar si está en bajo, si no
lo está no lo recibe ya que pudo ser ocasionado por un ruido en la línea, caso contrario si el estado
sigue siendo bajo, empieza a recibir la transmisión hasta el bit de parada.
Para que la lectura de los datos sea correcta, ambos equipos deben estar configurados a la
misma velocidad y demás parámetros y no exceder más allá de los 2 metros, pasado esta distancia
los datos recibidos pueden no ser los correctos debido a la pérdida de voltaje en el cable, ruido,
etc. Para distancias mayores existe el protocolo RS232, cuyos niveles de voltaje están
establecidos de la siguiente manera: para señal 1 lógica (-5V a –15V) en el transmisor y (-3V a
–25V) en el receptor, para señal 0 lógica (+5V a +15 V) en el transmisor y (+3V a +25V) en el
receptor, es decir una lógica inversa.
128 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 138/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.9.3.2. Comunicación serial con la norma RS232, el dato enviado es el mismo que el de
la figura 5.9.3.1., con la diferencia que la lógica es inversa, 1 equivale a –10 y 0 a +10.
LA DECLARACIÓN SEROUT. Esta declaración sirve para enviar datos seriales en un formato
estandar asincrónico usando 8 bits de dato, sin paridad y 1 stop bit, (8N1), y para poder utilizarlo
SEROUT puerto B.1, N2400,[“D”] ;enviar el caracter ASCII “D”por el puerto B1 a
24008N1, en dato invertido (figura 5.9.4.1.).
Figura 5.9.4.1. Esquema del dato enviado por el PIC simulando la norma RS232, noten que es
muy similar al esquema 5.9.3.2. pero con diferentes niveles de voltaje.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 129
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 139/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 140/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
SEROUT portb.1, N2400, [“DOG”] ;enviar serialmente a 24008N1 los caracteres “DOG”
Figura 5.9.4.3. Serout PIC-PC.pbp Programa para transmitir serialmente desde el PIC a un PC
sin utilizar el CI. MAX232.
tor y configuramos
cesitemos, los2400\N\8\1.
en este caso parámetros que ne-
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 141/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para este ejercicio debemos seleccionar el puerto com que vamos a utilizar, luego la velocidad
que se transmite el dato, en este caso a 2400 baud, paridad ninguna, 8 bits de datos y 1 stop bit,
una vez que estemos listos para iniciar la comunicación presionamos el botón y notarán en
la parte inferior izquierda que decía Ready cambia a Connected…
Cuando la ventana está activa sale un mensaje en la parte inferior izquierda Connected, y los
Bytes enviados o recibidos. Encienda el micro PIC y después de apagarse el LED del puerto B.2
deberá salir el texto enviado en el cuadro que dice Receive, como el programa está en un lazo sin
fin el texto DOG seguirá saliendo continuamente.
NOTA: Es importante utilizar un cristal de 4 MHZ para que este proyecto funcione
correctamente, sólo así los tiempos de transmisión serán los correctos, si se utiliza el oscilador
interno del PIC16F628A, pueda que visualice datos erróneos en la pantalla.
Se trata de enviar datos desde el PC al PIC, por lo que es de suponer los voltajes serán desde -
10V. hasta +10V. y la distancia podemos extenderlo hasta 15 mts. sin ningún problema, como la
conexión es directamente al PIC debemos colocar una resistencia de 22K para no dañar el puerto
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 142/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
del PIC. En este caso el PIC es un receptor por lo que debe permanecer en espera del bit de inicio,
para esto tenemos la declaración SERIN.
LA DECLARACIÓN SERIN. Esta declaración sirve para recibir datos seriales en un formato
estandar asincrónico usando 8 bits de dato, sin paridad y 1 stop bit, (8N1), y para poder utilizarlo
debemos incluirlo igualmente que para el SEROUT la línea INCLUDE “modedefs.bas” al inicio
del programa, su forma de utilizar es la siguiente:
Es importante saber que esta declaración detiene el programa esperando el bit de inicio, y
solamente cuando haya recibido un dato, continúa con la siguiente línea de programa, para hacer
que sólo espere un determinado tiempo y luego continúe con la siguiente línea debe utilizar
Timeout, para mayor información refiérase al manual de pbp, o utilice una interrupción externa
para atender el dato a recibir, ver literal 5.10.1 Utilizando la interrupción en el puerto B.0.
MATERIALES.
-1 conector DB9 hembra con su respectivo cajetín
-2 resistencias uno de 10 y otro de 22 K .
-2 mts de cable de 2 hilos para transmisión de datos.
-1 cristal de 4 MHZ.
-2 capacitores de 22 pF.
-1 LCD 2 x 16
-1 potenciómetro de 10 K
Figura 5.9.5.1. Diagrama de conexión del PIC para recibir datos del PC sin CI. MAX232.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 143/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
INCLUDE "modedefs.bas" ;incluyen los modos de comunicación
@ device XT_OSC ;cambia a oscilador XT en el IC-Prog.
dat VAR BYTE ;variable de almacenamiento de 255
Inicio:
SERIN portb.0, N2400, dat ;esperar el dato y guardarlo en dat
LCDOUT, dat ;desplegar el dat en LCD
GOTO inicio ;ir a esperar el siguiente caracter
END
Figura 5.9.5.2. Serin PC-PIC.pbp Programa para recibir datos serialmente desde el PC a un
Figura 5.9.5.3. Pantalla de la ventana de comunicación serial listo para enviar un texto.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 144/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
El CI. MAX232 es la solución para transmitir a mayor distancia, ya que incrementa los niveles de
voltaje de 5 V. a +10V. gracias a un juego de capacitores que le ayuda a doblar los voltajes, por lo
que para su alimentación sólo requiere una fuente de 5V. que puede ser la misma que utiliza el
PIC. El MAX232 dispone de 2 juegos de transmisores y receptores, de los cuales sólo
ocuparemos un par de ellos.
El MAX232 en este caso nos ayudará a convertir los voltajes TTL del PIC en voltajes de
la norma RS232, quiere decir que si enviamos un estado lógico alto (5V.), a la salida del Tout del
CI. MAX232 tendrémos –10V. y si enviamos un 0 lógico desde el PIC (0V.), el MAX232 enviará
+10V., por lo tanto debemos invertir el dato de la salida del PIC y esto lo conseguimos utilizando
T2400 de la siguiente manera:
El presente proyecto trabaja de la siguiente manera: una vez listo y conectado todo, cuando el PIC
arranca debe encender el led y luego apagarlo, esto para asegurarnos que todo está funcionando
MATERIALES.
-1 CI. MAX232
-4 capacitores de 10 uF electrolíticos o preferible de tantalio
-de 2 a 30 mts de cable de 2 pares de hilos
-1 conector DB9 hembra con su cajetín
-1 led
-1 resistencia de 330.
Figura 5.9.6.1. Diagrama de conexión del PIC y el CI. MAX232 para enviar y recibir datos
entre un PC y el PIC .
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 135
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 145/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
INCLUDE "modedefs.bas" ;incluyen los modos de comunicación
@ device XT_OSC ;cambia a oscilador XT en el IC-Prog
led VAR portb.7 ;nombre led al puerto b.7
dat VAR BYTE ;variable de almacenamiento de 255
num VAR BYTE ;variable para almacenar el contador
num=0 ;contenido inicial para la variable num
GOSUB ledr ;ir a leds para saber si ya arrancó el PIC
Inicio:
SERIN portb.0,T2400,dat ;esperar el dato y guardarlo en dat
IF dat = "C" THEN contar ;si dat es una C empiece a contar
GOSUB ledr
GOTO inicio ;ir a esperar el siguiente caracter
contar:
HIGH led ;led sólo encendido indica enviando datos
SEROUT portb.1,T2400,[#num,"-"] ;enviar el contenido decimal de la variable num
;seguido de un signo menos
num=num+1 ;incrementar la variable 1 x 1
PAUSE 1000 ;esperar 1 s
GOTO contar ;ir a subrutina contar
ledr: ;subrutina ledr
HIGH led
PAUSE 200
LOW led
RETURN
END
Figura 5.9.6.2. TX-RX-MAX232.pbp Programa para intercambiar datos entre una PC y un PIC
utilizando el CI. MAX232.
Figura 5.9.6.3. Pantalla de comunicación serial enviando y recibiendo datos desde el PIC .
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 146/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 147/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
transmitir:
IF botonA=0 THEN envio1 ;si el botonA es presionado ir a envio1
IF botonB=0 THEN envio2 ;si el botonB es presionado ir a envio2
IF botonC=0 THEN envio3 ;si el botonC es presionado ir a envio3
GOTO transmitir
envio1:
SEROUT portb.0,N2400,["A"] ;enviar "A" a 24008N1
PAUSE 500
GOTO transmitir
envio2:
SEROUT portb.0,N2400,["B"] ;enviar "B" a 24008N1
PAUSE 500
GOTO transmitir
envio3:
SEROUT portb.0,N2400,["C"] ;enviar "C" a 24008N1
PAUSE 500
GOTO transmitir
END
Figura 5.9.7.2. transmisor PIC.pbp Programa para enviar datos desde un PIC .
recibir:
SERIN portb.0, N2400, datos ;recibir dato serial y guardar en datos
IF datos="A" THEN HIGH ledr :PAUSE 1000 ;si es A encender ledr y esperar 1 seg.
IF datos="B" THEN HIGH leda :PAUSE 1000
IF datos="C" THEN HIGH ledv :PAUSE 1000
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 148/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para entender que es lo que vamos a hacer explicaremos en pocas palabras que es la interfaz serial
RS422 y que es la interfaz serial RS485, estas se diseñaron para la conexión física entre
computadores y terminales directamente. Estos estándares tienen grandes ventajas con respecto a
la norma RS232 como por ejemplo, la distancia de comunicación de hasta 1200 mts, la velocidad
de transmisión de hasta 10 Mbits/seg. y el número de elementos a conectarse, para la interfaz
RS422 pueden conectarse un transmisor y hasta 10 receptores en un modo de transmisión Full-
duplex, mientras que para la interfaz RS485 se pueden conectar simultáneamente hasta 32
transmisores/receptores en un sistema half-duplex, otra ventaja frente al sistema RS232 es que no
requiere fuentes duales sino una fuente de alimentación de 5 voltios.
Ambas interfaces utilizan el método de medida diferencial, en la que utilizan dos líneas
para la transmisión y dos para recepción, en cada par de conductores la segunda tiene un nivel de
voltaje complementario al del primero, y el receptor responde a la diferencia de voltajes entre los
dos conductores. Este tipo de líneas de transmisión se llaman balanceadas, y esto permite la
eliminación de ruidos electrostáticos y electromagnéticos común en las dos líneas que se utilizan.
El CI. 75176 contiene un transmisor y un receptor y sólo dos líneas diferenciales A y B
de entrada/salida de datos, dos líneas adicionales RE y DE determinan la función que debe
cumplir
integradoelelintegrado, permitiendo
transmisor o inhibiendo
es habilitado la recepción
por un 1 lógico o la transmisión
y un 0 lógico habilita el de datos. Para
receptor, estas este
dos
líneas RE y DE son unidas a un puerto del PIC, en donde el microcontrolador determinará cuando
transmitir y cuando recibir datos, en un sistema half-duplex.
El sistema RS422 establece una comunicación full-duplex para lo cual se requiere 2
líneas adicionales, esto se lo consigue agregando otro CI. 75176 exclusivamente para la
transmisión por lo que RE y DE estarán conectados en nivel lógico alto, mientras el otro CI.
75176 se lo configura para recepción conectando los terminales control a un nivel 0 lógico, de
esta manera quedan operando los 2 circuitos lineales 75176, con la ventaja de poder transmitir y
recibir al mismo tiempo.
Como el microcontrolador PIC16F628A ejecuta línea por línea del programa, no es capaz
de leer y recibir un dato a la vez, por lo tanto no se puede realizar una comunicación full-duplex,
de esta manera no es aplicable una comunicación con la interfaz RS422, lo ideal es la interfaz
RS485 ya queque
transmisión está se
diseñado
utilizapara
en una
la transmisión
mayoría dehalf-duplex y de comerciales
dispositivos hecho este es basados
el modo deen
microcontroladores, un ejemplo de ello es la comunicación del teclado con la central de alarma,
esta lo realiza mediante interfaz RS485 de 4 hilos (A, B, masa y el cuarto hilo alimentación de
12V. para el teclado). Una recomendación importante es que el cable a utilizarse debe ser del tipo
par trenzado (Twisted-Pair), que consiste en dos conductores aislados retorcidos entre sí con lo
cual se consigue una mayor inmunidad al ruido electromagnético, si el cable tiene adicionalmente
una hoja conductora (blindaje) rodeándolo, se obtiene más inmunidad.
El presente proyecto consiste hacer una transmisión recepción entre dos PIC´S con una interfaz
RS485 y en modo de transmisión full-duplex comúnmente visto en centrales de alarmas.
Su funcionamiento consta de la siguiente manera: al arrancar los micros ambos hacen
encender los leds rojos por un instante, esto nos indica que empezaron a funcionar, el transmisor
consta de 2 pulsadores y un led, y el receptor de 2 leds, un rojo un verde y un pulsador, cuando
presionamos el pulsador A del transmisor enciende el led rojo y presionando el pulsador B
enciende el led verde, bien hasta aquí hemos realizado una comunicación de un sólo sentido,
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 139
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 149/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
ahora lo intercambiamos para hacer que el PIC receptor se convierta en transmisor y lo mismo
con el otro PIC de transmisor a receptor, para esto en el PIC transmisor presionamos las 2 teclas
al mismo tiempo por un segundo, luego de esto notarán que cada tecla ya no tiene efecto como lo
hacía antes, es decir encendía cada uno de los 2 leds del receptor, ahora vamos al receptor el cual
ahora es transmisor y presionamos el único pulsador que dispone, notarán que el led del que antes
era transmisor parpadea 2 veces, para volver al modo que iniciaron sólo debemos apagar y volver
a encender ambos micros.
MATERIALES.
-cable de 2 pares de hilos, preferible del tipo par trenzado
-3 leds dos rojos y un verde
-3 resistencias de 4,7 K
-3 resistencia de 330
-3 pulsadores NA
-2 PIC16F628A
-2 circuitos lineales 75176.
Figura 5.9.9.1. Diagrama de conexión para hacer una comunicación serial desde un PIC hacia
otro PIC con interfaz serial RS485.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 150/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF portb.5=0 THEN ledverde
GOTO envio
rojo:
HIGH led ;encender led rojo
PAUSE 200 ;esperar 200 mls
LOW led ;apagar led rojo
PAUSE 200
RETURN ;retornar al gosub que lo envió
perfecto: ;encender 2 veces el led rojo
GOSUB rojo
GOSUB rojo
GOTO recibiendo ; ir a recibiendo
END
Figura 5.9.9.2. transmisor-RS485.pbp Programa para enviar datos PIC a PIC en interfaz RS485
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 151/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
recibir: ;subrutina recibir
LOW control ;control modo receptor
SERIN portb.0,T2400,date ;esperar por dato serial y guardar
IF date="A" THEN ok1 ;si dato es una A ir a ok1
IF date="B" THEN ok2
IF date="C"
HIGH ledvTHEN
transmisor
: HIGH ledr ;se enciende los 2 leds cuando el
PAUSE 2000 ;dato recibido no es A,B, ni C
LOW ledv :LOW ledr
PAUSE 500
GOTO recibir ; ir a recibir
Figura 5.9.9.3. receptor-RS485.pbp Programa para recibir datos PIC a PIC en interfaz RS485.
Esta es la parte de la electrónica que más entusiasmo genera, poder controlar a través de un
computador todos los periféricos de un edificio (ascensor, luces, alarmas, cerraduras, etc),
controlar los movimientos de un brazo robótico, controlar la producción de una fábrica (motores,
142 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 152/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 153/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Ahora como ven arriba hemos dibujado un parlante y un relé, explicamos cómo se hizo cada uno,
primero escogemos la herramienta del lado izquierdo Shape, que sirve para dibujar rectángulos
círculos óvalos, en este caso dibujamos el parlante, hacemos un rectángulo y luego cogemos la
herramienta Line y dibujamos las líneas de la bocina, si queremos que las líneas sean más
gruesas, en el lado derecho en propiedades del objeto BorderWidth 1, lo colocamos el 2 y esto
hará más gruesas las líneas que seleccionemos. De esta misma forma creamos el relé y ponemos 2
líneas para indicar el cambio de estado del relé. Para crear el LED utilizamos Shape mismo y
primero hacemos un cuadrado, luego vamos al lado derecho en propiedades en Shape debe decir
0 rectangle, lo ponemos 3 circle y se convertirá en un círculo, cambiamos el grosor a 2 y listo.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 154/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para crear textos presionamos en el lado izquierdo en label, lo colocamos en el lugar que
deseamos y luego en Caption ponemos ON, OFF, NC, NO. Para cambiar el estilo de letra y el
tamaño, primero seleccionamos el texto a modificar y en el lado derecho en propiedades Font,
elegimos los cambios que deseemos y listo.
Para dar color al LED, seleccionamos el círculo y en propiedades donde dice FillStyle
transparent
plomo, para cambiamos a led
indicar que el Solid,
estáluego en FillColor escogemos la paleta y ponemos el color
apagado.
Clic Derecho
Aquí
Para habilitar la comunicación serial, damos un clic con el botón derecho sobre el cuadro General
y escogemos la opción componentes, luego saldrá una pantalla con una lista de componentes y
buscamos Microsoft Comm Control 6.0, seleccionamos y damos clic en Aceptar, notaremos que
ahora aparece un icono nuevo un teléfono, colocamos este teléfono en la form, y en las
propiedades Commport podemos modificar si es com1 o com2, también modificamos la
velocidad de transmisión que por defecto viene con 9600,n,8,1, y también colocamos un Timer.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 155/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Bien ahora la palabra ON y la línea del relé que señala al NO, no deben aparecer, sino hasta
cuando el microcontrolador se los indique, por tal razón debemos ocultarlos, y esto lo realizamos
seleccionando a cada uno y en propiedades donde dice Visible True, lo cambiamos por False,
bien en ese instante no desaparecerán sino hasta cuando se ejecute el programa.
Es importante darles nombres a cada objeto sólo a los que necesariamente vamos a
modificar, estos se lo realiza de la siguiente manera, primero seleccionamos, digamos que el
botón SONIDO, al lado derecho el primer item de propiedades dice (Nombre) Command1 aquí
lo ponemos el mismo nombre del objeto con una Z al final así SONIDOZ, esto lo hacemos con el
objeto de no confundir un nombre Caption SONIDO con el nombre del objeto SONIDOZ, lo
mismo hacemos con los siguientes objetos: la palabra ON y OFF, las tres teclas SONIDO, LED y
RELE, la línea del relé que señala a la palabra NO y la que señala a NC también, todos ellos su
nuevo nombre a cambio de: Command1, Command2, Command3, ShapeX, LabelX, LineX,
serán:
A continuación una imagen que muestra cómo se cambia el nombre de un objeto, observen que se
seleccionó el Círculo y en el lado derecho decía (Nombre) Shape2, se lo cambió por (Nombre)
CIRCULOZ, de esta manera cambiamos a los 8 objetos ya indicados anteriormente con los
nombres que aparece en la tabla de la figura 5.9.10.1.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 156/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Es hora de programar las funciones de los botones, para esto primero damos doble clic en
cualquier parte de la form, esto hará que se abra otra pantalla (Código), en la que sale un texto
así:
End Sub
Aquí escribimos habilitar el puerto y correr el Timer con intervalos de 1 mls, y empezamos a
programar cada uno de los botones.
Esto quiere decir que cuando se ejecute este programa corra su contenido, es decir abra el puerto
com y empiece a correr el Timer con intervalos de 1 mls.
Si se quiere hacer comunicación sólo desde el PC al PIC y no desde el PIC al PC, borramos las
líneas desde donde dice: Private Sub Timer1_Timer( ) hasta el final del programa, también
debemos borrar la línea que dice Timer1.Interval=1. y en la form borrar el Timer, y dejarlo el
teléfono, ya que sí lo necesitamos para enviar datos desde el PC al PIC.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 157/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 5.9.10.1. Programa para recibir y enviar datos desde el VISUAL BASIC 6.0 a un PIC.
NOTA: todo lo que está con trama gris, sería el programa necesario para únicamente transmitir
desde el PC al PIC, lo demás podemos borrarlo, junto con el icono de la form (el Timer).
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 158/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 159/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
INCLUDE "modedefs.bas" ;incluyen los modos de comunicación
@ device XT_OSC ;cambia a oscilador XT en el IC-Prog
serial VAR BYTE ;variable de almacenamiento de 255
sec1 VAR BIT ; variable sec1 de 1 bit 0 o 1
sec2 VAR BIT ; variable sec2 de 1 bit 0 o 1
sec3 VAR BIT ; variable sec3 de 1 bit 0 o 1
sec1=0 ;valores iniciales para las variables
sec2=0
sec3=0
Inicio:
SERIN portb.0,N9600,serial ;esperar por dato serial y guardarlo
IF serial="S" THEN sonidos ;si el dato es una S ir a sonido
IF serial="L" THEN leds ;si el dato es una L ir a leds
IF serial="R" THEN reles ;si el dato es una R ir a reles
sonidos:
IF sec1=0 THEN ;bandera para la chicharra 1 On y 0 es OFF
HIGH chicharra
SEROUT portb.1,N9600,["H"] ;enviar H diciendo que está prendido
sec1=1
GOTO inicio
ENDIF
IF sec1=1 THEN
LOW chicharra
SEROUT portb.1,N9600,["I"] ;enviar I diciendo que está OFF
sec1=0
ENDIF
GOTO inicio
leds:
IF sec2=0 THEN
HIGH led
SEROUT portb.1,N9600,["D"] ;envía D diciendo que el led es ON
sec2=1
GOTO inicio
ENDIF
IF sec2=1 THEN
LOW led
SEROUT portb.1,N9600,["E"] ;envía E diciendo que el led es OFF
sec2=0
ENDIF
GOTO inicio continúa …
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 160/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
reles:
IF sec3=0 THEN
HIGH rele
SEROUT portb.1,N9600,["G"] ;envía G diciendo que el relé es ON
sec3=1
GOTO inicio
ENDIF
IF sec3=1 THEN
LOW rele
SEROUT portb.1,N9600,["F"] ;envía F diciendo que el relé es OFF
sec3=0
ENDIF
GOTO inicio
END
Como para probar si los datos que salen del PIC son correctos, puede conectar a la ventana de
comunicación serial de microcode, a 9600 baudrate, y en Transmit, envíe las letras mayúsculas
una por una la S, S, L, L, R, R, y de respuestas debe recibir lo siguiente: HIDEGF.
Figura 5.9.10.4. Pantalla de comunicación serial con los datos de respuestas si está activado la
chicharra(H) o no(I), encendido el led (D) o no(E), conectado el relé (G) o no (F).
La comunicación con el programa hecho en Visual Basic es similar, con la diferencia que esas
mismas letras activa la palabra ON, cambia de color el círculo, y activa la línea NO.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 161/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Muchos de los dispositivos electrónicos que se encuentran comúnmente en una tarjeta electrónica,
incluyen circuitos integrados con el bus I²C desarrollado por PHILIPS, como por ejemplo las
memorias 24CXX, los procesadores de señal, codificadores de video, sensores de temperatura,
RTC (reloj en tiempo real), sensores ultrasónicos, etc.
El bus I²C (Inter Integrated Circuit) o interconexión de circuitos integrados necesita sólo
2 líneas para transmitir y recibir datos, estos son: para datos (SDA) y para la señal de reloj (SCL),
esta forma de comunicación utiliza una sincronía con un tren de pulsos que viaja en la línea SCL,
de tal manera que en los flancos negativos se revisan los datos RX o TX. Ver figura 5.9.12.2., su
velocidad de transmisión pueden ser de 100Kbits/seg. en el modo standard, 400Kbits/seg. en el
modo rápido y 3,4Mbits/seg. en alta velocidad. Cada dispositivo conectado al bus tiene un código
de dirección seleccionable mediante software, por lo que existe una relación permanente
Master/Slave. El Master es el dispositivo que inicia la transferencia en el bus y genera la señal de
reloj (SCL), y el Slave es el dispositivo direccionado, sin embargo cada dispositivo reconocido
por su código (dirección), puede operar como transmisor o receptor de datos, ya que la línea
(SDA) es bidireccional.
Esta es una práctica muy básica para aprender sobre la interfaz I²C, consiste en guardar datos en
las cuatro primeras direcciones de la memoria serial, estas son utilizadas para el almacenamiento
de datos que pueden ser necesitados más adelante. Para el caso de la memoria 24LC04B tiene un
espacio de memoria de 4Kbytes, luego de almacenarlos los volveremos a leer y mostrar en la
pantalla de un LCD.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 162/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
comunicación, entonces el Maestro genera un bit de stop para liberar el bus I²C, en la cual las
líneas SDA y SCL pasan a un estado alto, vamos a suponer que el ACK es 0, entonces el
microcontrolador envía los 8 bits correspondientes a la posición de memoria que se desea escribir
o leer, nuevamente la memoria envía un reconocimiento, finalmente se envía el dato a ser
almacenado y se espera la respuesta de la memoria indicando que el dato llegó correctamente,
finalmente se debe enviar el bit de parada.
Como en nuestra práctica vamos a almacenar la palabra HOLA, vamos a suponer que ya
guardamos las 3 primeras letras, la H en la dirección 0, la O en la dirección 1 y la L en la
dirección 2, nos falta guardar la A en la dirección 3, esto se realizaría enviando pulsos de la
siguiente manera:
Figura 5.9.12.2. Esquema de una transmisión completa con la interfaz I²C para guardar el
número 65 en la dirección 3 de una memoria serial 24LC04B.
Noten que la dirección del CI. A2, A1, A0 es 000, lo que quiere decir que estos tres pines van
conectados a tierra, según la tabla 5,9,12,1, se pueden instalar 4 dispositivos de memoria en un
bus, estos son empezando por A2, A1 y A0 los siguientes: 00x, 01x, 10x y 11x, por ejemplo:
01x esta memoria debe tener conectado a 5 voltios el pin A1 y su control sería 10100100.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 163/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Los 7 bits de control contienen el código de fábrica del chip y la selección del chip A2, A1, A0,
el último bit es una bandera interna que indica si es un comando de lectura o escritura y no se
debe usar. Por lo tanto el control para nuestro caso en lectura o escritura es %10100000.
Debido a que los pines SDA y SCL de la memoria 24LC04B son de colector abierto,
estas deben ir conectadas con resistencias de 4,7 K pull-up, sin embargo existe una línea de
comando que hace que no se necesite la resistencia pull-up del SCL, esta se debe agregar al
comienzo del programa:
También cabe indicar que existen algunas memorias que necesitan de un período de tiempo para
poder ser grabadas, por lo que se adiciona un PAUSE 10 después de cada grabación.
Su estructura es de la siguiente manera:
MATERIALES.
-1 LCD 2 x 16
-1 resistencia de 4,7 K
-1 resistencia de 10
-1 potenciómetro de 10 K
-1 memoria serial 24LC04B de microchip o equivalente
-1 switch selector de 3 pines.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 164/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En nuestro caso vamos a escribir y leer en la memoria, por lo que el pin WP debe estar colocado
en estado bajo, una vez que se haya grabado se podrá colocar este pin en estado alto para proteger
la memoria de futuras escrituras, los datos almacenados en esta memoria permanecen aún si se le
corta la alimentación al CI. (no volátil), el acceso a estos datos se lo realiza las veces deseadas,
recuerde que la memoria serial soporta 1,000.000 de ciclos de borrado y escritura, por lo tanto se
debe tener cuidado de no ejecutar un programa que almacene una y otra vez el mismo dato.
Inicio:
LCDOUT $fe,1," Grabando..." ;limpiar y sacar el texto en LCD
PAUSE 1000
PAUSE 1000
LCDOUT $FE,1 ;limpiar pantalla del LCD
END
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 165/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Como habíamos dicho anteriormente el bus I²C, permite la comunicación con algunos
dispositivos como las memorias 24CXX, los procesadores de señal, codificadores de video,
sensores de temperatura, RTC (reloj en tiempo real), etc. Esta vez haremos un proyecto de lectura
y escritura de un RTC (Real Time Clock), este proyecto es muy similar al anterior, pero con la
diferencia que el byte de control es %11010000, (propio del fabricante), y su modo de grabación
de datos es en sistema hexadecimal.
Una aclaración importante es que por ser un experimento los datos a ser almacenados
serán: Lunes 27 de septiembre del 2004 y la hora 13:32:00, pudiendo ser cambiado a gusto del
lector. Estos datos serán grabados una sola vez, ya que se utilizará una condición de bandera, esta
será almacenada en la memoria EEPROM del mismo PIC y se llamará (actualizado =1), significa
que ya corrió una vez el programa, por consiguiente si se lo vuelve a prender el PIC, no guardará
nuevamente los datos, esto tiene una finalidad de que los datos fecha y hora sean igualados una
sola vez, para que cuando usted vuelva a encender el PIC, muestre la hora actual.
MATERIALES.
-1
-1 LCD 2 x 16de 10
resistencia
-1 potenciómetro de 10 K
-1 RTC DS1307
-3 resistencias de 4,7 K
-1 resistencia de 470
-1 transistor 2N3904
-1 led rojo
-1 oscilador cristal de 32768 HZ (comun en los relojes de mano y pared)
-1 pila de 3 V (CR2032), con su porta pilas ver figura 5.9.13.3.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 166/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 167/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF mes=$4 THEN LCDOUT "abr"
IF mes=$5 THEN LCDOUT "may"
IF mes=$6 THEN LCDOUT "jun"
IF mes=$7 THEN LCDOUT "jul"
IF mes=$8 THEN LCDOUT "ago"
IF mes=$9
IF mes=$10THEN
THENLCDOUT
"sep"
LCDOUT "oct"
IF mes=$11 THEN LCDOUT "nov"
IF mes=$12 THEN LCDOUT "dic"
PAUSE 500 ;esperar 0,5 segundos
Figura 5.9.13.2. reloj DS1307.pbp Programa para escribir y leer datos en un RTC DS1307 .
Como podrán observar la batería es lo que le mantiene en funcionamiento al RTC cuando no hay
alimentación DC, por tal razón cuando apagamos todo el circuito, y luego lo volvemos a prender,
notamos que el reloj no se ha desigualado, pero si retiramos la batería, el reloj se detiene cuando
lo cortamos la alimentación del circuito, y cuando se lo vuelve a conectar, sigue corriendo el
tiempo pero continúa en el segundo que se quedó en el instante que se le cortó la alimentación.
El transistor sirve para encender el led con la fuente que alimenta el circuito y se apaga
cuando deja de alimentarse el circuito, por lo que la batería sólo alimenta al CI. DS3107 mientras
no hay alimentación en el pin VCC.
158 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 168/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Se debe entender que el PIC está leyendo los datos del RTC cada 0,5 segundos, cuando en
realidad debería leer cada segundo. Para mejorar este programa podemos utilizar una interrupción
por cambio de estado en el pin B.0, aquí conectamos la señal SQW del RTC para que el PIC
ejecute una subrutina de interrupción y lea los datos del RTC exactamente cuando el RTC le diga
que transcurrió un segundo, con esto tenemos al PIC disponible para otras aplicaciones y no se
quedaría esclavizado al RTC leyendo datos 2 veces por segundo. Para aplicar la interrupción ver
literal 5.10.1 Utilizando la interrupción del puerto B.0.
Figura 5.9.13.3. Fotografía de un módulo RTC del entrenador experto de PIC´S EE-02.
2. Conecte 2 PIC´S en serie y envíe texto desde un teclado hexadecimal hacia el otro PIC el
cual lo presentará en la pantalla del LCD.
3. Haga un tablero de control en VB para un motor PAP, que contenga 2 botones de los
cuales el uno hace girar en sentido horario mientras permanece presionado, al soltar el
botón el motor debe detenerse, el 2do botón funciona igual sólo que en el otro sentido.
4. Utilice un LCD, un PIC y una memoria serial para el siguiente proyecto: desde la ventana
de comunicación serial de microcode, envíe un texto a 2400N81, el PIC lo muestra en la
pantalla del LCD y luego almacena en la memoria serial, al enviar desde el computador la
letra L, el PIC debe interpretarlo como leer el dato de la memoria y enviarlo al
computador, si el PC envía una B, el PIC debe borrar el contenido de la memoria, para
probarlo simplemente envíe nuevamente la letra L desde el PC.
5. Con el proyecto del reloj calendario, haga que el PIC active una chicharra por 200mls.
cada MINUTO.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 169/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 170/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 led rojo 5 mm.
-1 led verde 5mm.
-2 resistencias de 330
-1 resistencia de 4,7 K
-1 pulsador NA.
Figura 5.10.1.2. interrupt.pbp Programa para practicar con la interrupción en el puerto B.0.
Como pudieron observar, en el momento que se presiona el pulsador, automáticamente sale del
programa y atiende el handler de interrupción llamado verde, finalizado esto el RESUME lo
retorna al lugar en donde ocurrió la interrupción, sin embargo se puede poner RESUME prog3,
esta vez va a una subrutina prog3 e ignora el retorno al lugar de la interrupción, otra
recomendación importante es que si queremos atender rápidamente una interrupción, no debemos
poner PAUSES muy largos como por ejemplo PAUSE 10000, equivalente a 10 segundos, si se da
la interrupción en la mitad del pause (5 segundos), deberá esperar a que termine el pause para ir al
handler de interrupción, es decir los 5 segundos restantes, lo mejor para estos casos es encerrar el
pause en lazos FOR... NEXT, de la siguiente manera:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 171/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Cabe también indicar que en esta práctica la interrupción se da sólo cuando existe un cambio de
estado de 0 a 1 en el puerto B0, por lo que se habrán dado cuenta que si mantienen pulsado la
tecla, no se genera la interrupción, sino cuando la soltamos, para que la interrupción se genere en
el flanco de bajada, es decir cambio de estado de 1 a 0, debemos adicionar después de
INTCON=%10010000, la siguiente línea para modificar el bit INTEDG del registro OPTION:
OPTION_REG.6=0 ;modificar el bit 6 del registro OPTION, activa en flanco de bajada a B.0
Para trabajar con la interrupción por cambio de estado del puerto b.4 al puerto b.7, podemos
utilizar el mismo programa 5.10.1.2, solamente cambiando las 2 líneas que dicen
INTCON=%10010000 por INTCON=%10001000, que quiere decir habilitar la interrupción de
los puertos B.4 al B.7, para mayor información revise en los Datasheets el registro INTCON.
Para el diagrama de conexión debemos colocar 4 pulsadores en los puerto B.4 al B.7, no
se debe dejar sueltos estos pines ya que produce errores y salta al handler de interrupción en
cualquier momento. Se puede desconectar el pulsador del puerto B.0, ya que no se está
atendiendo esta interrupción.
El TMR0, es una valiosa herramienta que disponen los PIC´S, para el caso del PIC16F628A,
dispone de 3 TIMERS, 1 de 16 bits (TMR1) y 2 de 8 bits, los TMR0 y TMR2, la calibración para
estos contadores, se dan en el registro OPTION, aquí se puede seleccionar si el incremento es con
flanco de subida o de bajada y si la fuente es externa (pin A4/TOCKI) o interna (Oscilador), en
nuestro caso será interna generada por el Oscilador. Cuando el conteo del temporizador TMR0,
llega a 256 y pasa a 0, se genera una interrupción, para que esto suceda se debe habilitar el
registro INTCON bit 7 (GIE = 1), y también el bit 5 (TOIE =1), quedando así:
Para poder entender mejor estos registros y sus funciones tenga a la mano la hoja de datos.
La práctica
llega a 256,apero
realizarse consiste
no empieza en ejecutar
desde 0 ya queuna
se interrupción,
le asignó un cada
valorvez quede
inicial el 4contador
( ver la del TMR0,
línea # 70
del programa TMR0-reloj.pbp), por lo que el tiempo sería 128 x 252 = 32256 uS y esto repetido
31 veces, conseguimos acercarnos más al tiempo de 1 segundo (32256 uS x 31 = 999936 uS),
luego de esto se incrementa la variable segun = segun +1 y se actualiza el LCD.
El proyecto dispone de 2 pulsadores para poder igualar la hora, uno aumenta los minutos
y otro aumenta las horas, la gran desventaja de este proyecto es que si se corta la alimentación
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 172/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 LCD 2 x 16
-1 resistencia de 10
-1 potenciómetro de 10 K
-2 resistencias de 4,7 K
-2 pulsadores NA (Normalmente Abierto)
-1 oscilador cristal de 4 MHZ
-2 capacitores cerámicos de 22pF.
Figura 5.10.3.1. Diagrama de conexión para hacer un reloj digital con interrupción en el
contador del TMR0, se utilizó un cristal externo para conseguir mayor precisión.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 173/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
hora = 12 ; setea tiempo a 12:00:00
minut = 0
segun = 0
cuenta= 0
actual= 1
;setea TMR0 de interrupción cada 32768 microsegundos
OPTION_REG = %1010110 ;setea TMR0 configurando y habilita PORTB pullups
INTCON = %10100000 ;hablilita TMR0 interrupción interna
ON INTERRUPT GOTO interrup
INICIO:
IF PORTB.7 = 0 THEN incmin ;botón para igualar minutos
IF PORTB.6 = 0 THEN inchr ;botón para igualar horas
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 174/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
IF minut >= 60 THEN
minut = 0
hora = hora + 1
IF hora >= 24 THEN
hora = 0
ENDIF
ENDIF
ENDIF
actual = 1 ;actualizar LCD
reset:
INTCON.2 = 0 ;resetea la bandera de interrupción del TMR0
RESUME
END
Figura 5.10.3.2. TMR0-reloj.pbp Programa para practicar con la interrupción del TMR0.
1. Conecte un pulsador en el Puerto B.0, habilite la interrupción de este pin y muestre en un
LCD las veces que se produce una interrupción por cambio de estado en el puerto B.0
2. Haga un parpadeo de un led cada 200 mls. en el puerto B.2, habilite las interrupciones del
puerto B4 al B7 y coloque un pulsador en cada pin, en la pantalla del LCD debe indicar el
puerto el cual se activó una interrupción, pulse cualquiera de los 4 botones.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 175/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.11 CONVERSOR A/D
Esta nueva familia de PIC´S los 16F818 y 16F819, iniciaron su aparición a mediados del 2004,
por lo que será muy común encontrarlos en las tiendas electrónicas ya que posee 5 conversores
A/D de 10 bits c/u. y su memoria RAM y EEPROM, son más extensas que la del PIC16F628A, y
además su costo es también inferior.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 176/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
D=Digital A= Análogo
Figura 5.11.1.2. Tabla de configuración para el registro ADCON1, noten que ADCON1=7
corresponde a PCFG =011x, por lo tanto todo el puerto A se convierte en pines digitales, algo
parecido ocurría con el CMCON=7 del PIC16F628A, este apagaba los comparadores de voltaje
y los volvía en pines digitales.
Otro cambio importante es que los pines que controlan al LCD, no pueden ser los predefinidos
por pbp, por lo tanto debemos cambiarlos de posición utilizando DEFINE.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 167
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 177/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
;calibraciones %111 8MHZ %110 4MHZ %101 2MHZ %100 1MHZ %011 500KHZ
;%010 250KHZ %001 125KHZ %000 31.25KHZ adicionarle a todos 0100
inicio:
ADCIN 0, datos ;leer el canal 0 y guardarlo en datos
LCDOUT $fe, 1, " valor es:"
LCDOUT $fe,$c7, DEC datos ;desplegar el valor de datos en decimal
PAUSE 300
Figura 5.11.1.4. AD-16F819-8.pbp Programa para practicar con el conversor análogo digital.
En esta práctica utilizaremos 3 conversores A/D de los 8 que dispone el PIC16F877A, este PIC se
caracteriza por tener 40 pines, de los cuales 33 son puertos de entrada/salida, una memoria
FLASH de 8192 palabras, una RAM de 368 bytes y una EEPROM de 256 bytes, por lo que este
microcontrolador está destinado para proyectos grandes. Esta práctica nos servirá para poder
familiarizarnos con PIC´S de mayor capacidad, cabe recalcar que es necesario un oscilador
externo, ya que no posee oscilador interno, también debemos utilizar en el MCLR una resistencia
Pull-Up, ya que no hay forma de deshabilitarlo como sucede con el PIC16F62X o el PIC16F81X.
168 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 178/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
D=Digital A= Análogo
Figura 5.11.2.1. Tabla de configuración para el registro ADCON1 del PIC16F877A, noten que
ADCON1=7 convierte en pines digitales todos los pines del puerto A y puerto E .
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 179/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 PIC16F877A
-1 LCD 2 x 16
-1 resistencia de 10
-1 resistencia de 10 K
-4 potenciómetros de 10 K
-1 oscilador cristal de 4 MHZ
-2 condensadores cerámicos de 22pF.
Inicio:
PAUSE 300
poten1:
ADCON0 =%1000001 ;activar canal 0 a Fosc/8
GOSUB medir
p1= ADRESH
poten2:
ADCON0 =%1001001 ;activar canal 1 a Fosc/8
GOSUB medir
p2= ADRESH
poten3:
ADCON0 =%1011001 ;activar canal 3 a Fosc/8
GOSUB medir
p3= ADRESH
ADCON0.2 50
PAUSEUS =1 ;pausa
;iniciarpara setear el canal
conversión
PAUSEUS 50 ;pausa para la conversión
RETURN ;retornar al GOSUB que lo envió
END
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 180/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para esta práctica necesitaremos el sensor de temperatura LM35, este dispositivo presenta en su
pin OUT una variación de 10 mV por grado centígrado, su alimentación puede ser de 4 a 30
Voltios, y su rango de temperatura a sensar entre -55°C hasta 150 °C.
Para medir la temperatura se conecta el pin out del LM35 al puerto A.0, el cual está
configurado como conversor A/D a 10 bits, este valor se almacena en la variable dato que tiene
capacidad de 2 bytes (16 bits), el cual se lo divide para 128, debido a que la variable del
conversor A/D de 10 bits lo presenta en 16 bits, de la siguiente manera: 1111111111000000, los 6
bits que contienen ceros se los debe ignorar, ya que sólo necesitamos los 8 bits del 1er byte más 2
bits del segundo byte, si este dato lo dividimos para 64 conseguiremos eliminar los 6 bits que
corresponde a los ceros, de esta manera tendremos el dato a 10 bits, es decir el C A/D mostraría
como valor máximo 1024, esto es una resolución de 5 mV, pero como el LM35 tiene incrementos
de 10 mV, debemos bajar la resolución a 9 bits y eso se consigue dividiendo para 128, lo cual
elimina 7 bits del 2do byte, de esta manera el valor más alto sería 512, esto es lo más cercano a la
escala del LM35. El proyecto funciona de la siguiente manera: si la temperatura permanece entre
20°C y 24°C ninguno de los relés se activa, pero si la temperatura no se encuentra entre estos 2
rangos, se activa el relé que le corresponde, sea para calentar o enfriar el ambiente, si deseamos
modificar
aumentamos loso rangos de temperatura,
disminuimos presionamos
la temperatura mínima el pulsador E,
a comparar, con vez
y una los otros 2 botones
que estemos de
acuerdo presionamos la tecla E nuevamente, luego nos pide programar la temperatura máxima,
procedemos igual que el caso anterior y cuando presionemos la tecla E, parpadeará tres veces el
led, indicando que los nuevos valores ya fueron guardados en la memoria no volátil.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 181/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
MATERIALES.
-1 PIC16F877A
-1 LCD 2 x 16
-1 sensor de temperatura LM35
-1 resistencia de 10
-1 resistencia de 330
-1 resistencia de 10 K
-6 resistencias de 4,7 K
-1 potenciómetro de 10 K
-1 led
-1 cristal oscilador de 4 MHZ
-2 condensadores cerámicos de 22pF
-2 relés 12 V.
-2 diodos rectificadores 1N4007
-2 transistores 2N3904.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 182/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
PAUSE 200
LOW led
PAUSE 200
NEXT
READ 0,tempbaj
READ 1,tempalt
;lee la EEPROM 0 y lo guarda en tempbaj
;lee la EEPROM 1 y lo guarda en tempalt
sensar:
ADCIN 0, dato ;leer el canal 0 (A0) y guarde en dato
LCDOUT $fe, 1, "T.mi T.actu T.ma" ;limpiar LCD y sacar texto
dato = dato /128 ; el dato dividir para 128= C/AD de 9 bits
LCDOUT $fe,$c6,DEC dato,g,"C" ;Display el decimal de dato
LCDOUT $fe,$c0,DEC tempbaj,g,"C" ;Display el decimal de tempbaj
LCDOUT $fe,$cc,DEC tempalt,g,"C" ;Display el decimal de tempalt
calentar:
HIGH releC : LOW releF
GOTO sensar
enfriar:
HIGH releF : LOW releC
GOTO sensar
grabar1a:
GOSUB soltar
grabar1:
LCDOUT $fe, 1, "Programar temp."
LCDOUT $fe,$c0,"baja= ",DEC tempbaj ,g,"C"
PAUSE 100
IF bbajar=0 THEN restar1
IF bsubir=0 THEN sumar1
IF enter=0 THEN grabarA
GOTO grabar1
restar1:
GOSUB soltar ;programa antirrebote de tecla
IF tempbaj < 1 THEN grabar1
tempbaj= tempbaj -1 continúa …
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 183/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
GOTO grabar1
sumar1:
GOSUB soltar
IF tempbaj > 40 THEN grabar1
tempbaj= tempbaj + 1
GOTO grabar1
grabarA:
GOSUB soltar
WRITE 0,tempbaj ;escribir en la dirección 0 de la EEPROM
grabar2:
LCDOUT $fe, 1, "Programar temp."
LCDOUT $fe,$c0,"alta= ",dec tempalt ,g,"C"
PAUSE 100
IF bbajar=0 THEN restar2
IF bsubir=0 THEN sumar2
IF enter=0 THEN grabarB
GOTO grabar2
restar2:
GOSUB soltar
IF tempalt < 5 THEN grabar2
tempalt= tempalt -1
GOTO grabar2
sumar2:
GOSUB soltar
IF tempalt > 50 THEN grabar2
tempalt= tempalt + 1
GOTO grabar2
grabarB:
GOSUB soltar
WRITE 1,tempalt ;escribir en la dirección 1 de la EEPROM
GOTO inicio
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 184/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
5.12 UTILIZANDO EL PIC12F6XX
En ocasiones existen proyectos en los cuales no se necesitan más de 4 0 5 pines del PIC, un PIC
de 16 I/O sería un desperdicio, por tal razón se incluye un pequeño ejercicio de un parpadeo de
leds en el puerto gpio, el objetivo de esta práctica es familiarizarnos con esta familia de PIC´S.
PIC12F629 PIC12F675
Memoria de programa 1024 1024
Memoria datos EEPROM 128 128
Memoria RAM 64 64
Pines de entrada/salida 6 6
Comparadores 1 1
Conversores A/D - 4
Como podemos observar la única diferencia entre estas dos subfamilias es que el uno dispone de
conversores A/D y el otro no, el ejercicio lo haremos para el PIC12F675 y para hacer que
funcione en un PIC12F629, sólo se debe eliminar la línea que configura el conversor A/D
ANSEL=0, ya que este último no dispone de tales conversores A/D, su oscilador interno RC da
una frecuencia de 4 MHZ, sin embargo se puede utilizar un oscilador externo de hasta 20 MHZ.
MATERIALES.
-1 PIC12F629 o PIC12F675
-5 resistencias de 330
-5 diodos leds.
-1 capacitor de 0,1 uF (103)
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 185/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CMCON=%111 ;apaga comparadores de voltaje
ANSEL=%0000 ;apaga C.A/D todos los pines del GPIO digitales
X VAR BYTE ;crea variable de 255
INICIO:
FOR x=1 TO 3
gpio=%110111 ;encender los leds de todos los leds (menos el gpio.3)
PAUSE 200
gpio=%000000 ;apagar todos los leds
PAUSE 200
NEXT
PAUSE 1000
GOTO INICIO
END
Figura 5.12.1.4. Pantalla del IC-prog, en la que indica el valor de calibración del oscilador .
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 186/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En este caso el dato leído es 3484h (anótelo en un papel porque si usted pone borrar el PIC, este
dato se puede perder), el programa IC-prog pregunta si quiere utilizar el valor 3FFFh, usted debe
poner NO, para que el valor de calibración que le suministra el fabricante sea aceptado, caso
contrario si usted presiona SI, está poniendo el valor 3FFFh de calibración para el oscilador
interno. Si el valor de calibración se le ha borrado accidentalmente, y si usted anotó el valor en
este caso 3484h, puede ayudarlo a colocar en su sitio, escribiéndolo en el programa directamente
en la línea 03F8.
1. Muestre en un LCD el VOLTAJE (0 a 5 V.) con 2 decimales, que mide un PIC16F877A
por su conversor A/D, utilice un potenciómetro como divisor de voltaje.
2. En el proyecto 5.11.2 deshabilite el conversor AN3 y muestre en el LCD sólo la
diferencia que existe entre las variables de los coversores AN0 y AN1, es decir P1 y P2.
3. En el proyecto 5.11.3 reemplaze el LM35 por una Fotocelda y haga que se encienda un
foco de 110 Voltios AC. al oscurecer.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 187/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 188/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 6
SIMULACIÓN Y RUTEADO CON PROTEUS
Primero que nada debe tener instalado el simulador PROTEUS, luego ejecute el archivo ISIS, se
presentará una pantalla similar al siguiente gráfico, al iniciar el programa por defecto está
seleccionado component, si no lo está presione (component) luego presione en P (Pick
Devices).
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 189/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Aparecerá una nueva ventana con una librería que incluye varios dispositivos ya mencionados
anteriormente, escriba pic16f6 en la casilla Keywords: luego de doble clic en PIC16F628A,
observará que al lado izquierdo en DEVICES van apareciendo los dispositivos que se van
seleccionando, escriba minres y seleccione MINRES330R, escriba led y seleccione LED-RED.
Para poder encender el LED, se debe cerrar el circuito con una puesta a tierra, de un clic en Inter
sheet Terminal luego seleccione GROUND y arrástrelo a la pantalla debajo del LED.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 190/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Ahora proceda a unir los dispositivos seleccionando un cable en 2D graphics line, enlace
como lo muestra la siguiente figura, notará que cuando se acerca al terminal de cada dispositivo el
cursor muestra una equis, en ese momento de un clic y luego otro clic en el dispositivo a unir.
Una vez armado el proyecto proceda a cargar el archivo a correr, para esto de un clic derecho
sobre el PIC, notará que cambia a color rojo, luego un clic izquierdo (si da otro clic derecho borra
el dispositivo), aparecerá una pantalla nueva de Edición de componente, en este cambie el
oscilador de 1 MHZ a 4MHZ y en Program File abra el archivo hexadecimal led intermitente.hex,
una vez abierto el archivo presione OK.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 191/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para iniciar la simulación presione PLAY localizado en la parte inferior, ahora podrá ver la
simulación en tiempo real, el led empezará a cambiar de color cada segundo, note además que en
esta simulación el PIC no necesita ser alimentado.
Este es un caso especial ya que el PIN RA.4 no puede ser utilizado para el manejo del LCD, por
tal razón se debe definir una nueva posición para este PIN, haga un ejercicio similar al siguiente:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 192/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una vez compilado el ejercicio anterior, tendremos un archivo BORRAR2.HEX, arme el circuito
en PROTEUS, con los siguientes elementos: LM016L, PIC16F628A y la referencia GROUND de
Inter sheet Terminal. Luego proceda a cargar el archivo .hex, presione PLAY y el texto empezará
a aparecer. Note que no es necesario alimentar el LCD, sólamente la referencia a tierra del bit
R/W debe colocarlo a un nivel 0L. el bit RS fué cambiado al pin RB.1, ya que el pin RA.4 no
funciona como en la práctica real.
Esta
misma herramienta
ventana de es muy indispensable
la simulación del LCD,sipresione
desea fabricar
ARES un ,circuito impreso,
se presentará una para ellosimilar
pantalla en la
a la siguiente figura.
Nota: para poder rutear fíjese que los elementos a rutear existan en la librería, por ejemplo en la
pág. 180 note que el PIC16F628A si tiene elemento para PCB, de no ser así saldrá un mensaje de
No PCB Package. Tal es el caso del LED-RED, el cual no dispone de PCB Package.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 183
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 193/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
En esta pantalla arrastre los 2 elementos, el LCD y el PIC hacia la pantalla, observará que están
unidos por líneas verdes.
Si desea puede cambiar la forma de las islas, para ello de un clic en , y ajuste los
diámetros que más le convenga.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 194/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Ahora proceda a rutear, para ello abra la pestaña Tools y de un clic en Auto Router … Si no le
importa rutear en ambos lados sólo de clic en OK, pero si necesita que rutee en un sólo lado de un
clic en Edit Strategies.
Estos son los pasos para rutear en un sólo lado, primero coloque (None) en Pair 1 (Hoz), luego en
Strategy
de un cliccambie
en OKde POWER
y luego otro aclic
SIGNAL , coloque
en Ok de también
la ventana en (None)
anterior en Pair 1 (Hoz), finalmente
(Auto Router).
Ahora tendrá el circuito ruteado en un sólo lado, aquí puede ajustar el grosor de las pistas si lo
desea, para ello de un clic en Track Placement and editing , luego de dos clic derechos sobre
la pista que desee ajustar y en Trace Style coloque T30, notará que aumenta el grosor de la pista.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 195/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una vez realizado todos los ajustes puede imprimirlo, para ello abra la pestaña Output y de un
clic en Print…
Para imprimir sólo las pistas configure como la siguiente figura izquierda, es decir desactive Top
Silk y luego de un clic en OK. Para imprimir el screen de elementos, tome en cuenta que este
debe estar espejeado y sin las pistas, es decir selecionado Top Silk y Mirror (ver figura derecha).
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 196/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
CAPÍTULO 7
MÉTODO DE FABRICACIÓN DE CIRCUITOS IMPRESOS
Una vez que usted ha probado su proyecto, pueda que le interese hacer una placa de circuito
impreso como las que hemos visto a lo largo del capítulo 5, y talvez un chasís para el mismo, en
este capítulo aprenderá trucos para dar una buena presentación a su proyecto, se propone un
método revolucionario y muy sencillo comparado con los métodos de dibujo con marcador para
circuito impreso, revelado y serigrafía, este es la transferencia térmica.
Lo primero que se recomienda es tener todos los elementos electrónicos ya comprados y
listos, para no tener el inconveniente de que una vez hecho la placa no encuentren el elemento
correcto para soldarlo.
Segundo verifique en un protoboard si el proyecto funciona correctamente con todos los
elementos que van a soldar en la placa.
Tercero trate de ver los pines que más se le acomoden a las pistas, que no se crucen
mucho, que además estén lo más cerca posible al periférico a manejar.
Lo primero que se necesita para hacer una placa de circuito impreso es un dibujo de las pistas
para los elementos, esto se consigue con la ayuda de un computador, y de los softwares CAD
como PROTEL, PROTEUS, EAGLE, ORCAD, Corel DRAW, o cualquier software de dibujo en
el que usted pueda trazar las líneas y pads del circuito (Paint, Photo SHOP, photo Express, etc.), a
continuación el circuito de las pistas y el screen de elementos, ya realizados en un software:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 197/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Noten que el dibujo del lado derecho de la figura 7.1.1 está realizado un espejo, esto lo
necesitamos por la transferencia térmica, en cuanto al tamaño de la placa deben considerar el
chasís en donde van a colocar esta placa, como también donde deben ir los agujeros para los
tornillos.
Una vez que se tiene el diseño de la placa, se debe imprimirlo con una impresora láser o
copiadora (que tengan los cartuchos toner de polvo en color negro), en un papel de transferencia
térmica Press-n-Peel (o papel de transferencia PCB), que lo podemos conseguir en las tiendas
electrónicas a un costo de más o menos 2 USD cada hoja.
Otra alternativa, la que aquí se utiliza, y además se incluye en este libro es el PAPEL
FOTOGRÁFICO tipo GLOSSY, de la empresa APLI, para el cual se facilitan los datos:
Este papel fotográfico para impresoras de (inyección de tinta), vienen en cajas de 10 Und. o 50
Und. (Ref. 04135). El costo de la caja de 10 Und. es de 10 USD, y en algunas papelerías venden
por unidades. Si no encuentran exactamente la misma hoja, pueden utilizar la hoja APLI de 125 g.
de referencia 04451 de 10 Und., o la de ref. 04134 de 50 Und., la única desventaja que tienen las
hojas de 125 g. es que el papel se rompe al tratar de separar de la placa, pero sin embargo no es
un problema se lo puede remojar toda la placa y así desprenderlo con la yema de los dedos.
No olvide que la impresión debe realizarse en una IMPRESORA LÁSER o
fotocopiadora y no por una impresora de inyección de tinta. Aquí está el truco, el papel
fotográfico que hemos hablado anteriormente, sirve para imprimir fotografías específicamente en
impresoras de inyección de tinta, al imprimirlo en una impresora láser, se da un efecto químico al
unirse el toner de la impresora con la capa de barniz que tienen estas hojas, (lo mismo sucede con
el papel Press-n-Peel), el hecho es que si se imprime con la impresora de inyección a tinta estas
hojas yaVamos
no sirven.
a suponer que tenemos listo nuestra hoja con dicha impresión, el siguiente paso es
aplicarle calor por el lado revés de las hojas y sobre las placas, para lo cual utilizaremos la hoja
de transferencia que viene con este libro (UNIVERSAL PICmicro5), el calor de la plancha hace
que el toner se derrita, y junto al barniz de la hoja se pegan en la lámina de cobre, para esto se irá
explicando paso a paso todos los procedimientos necesarios, así como también pueden ver la
secuencia fotográfica sobre cómo hacer placas PCB que contiene el CD en FabricaciónPCB\
1visualizar.exe.
MATERIALES.
-1 placa de Baquelita o Fibra de vidrio, de una o dos caras de cobre
-1 lija de metal Nro. 150
-1 esponja de acero, de las utilizadas para lavar platos (lustre, estrella, etc.) que sea fina.
Primero se utilizará la lámina que contiene el lado de las pistas, la otra parte es decir el screen de
elementos lo utilizaremos posteriormente.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 198/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Bien ahora se debe cortar la placa que puede ser de Baquelita o de Fibra de vidrio, esta última es
la más recomendable, ya que el acabado final es mucho mejor, además es más aislante y
resistente a la humedad. Para las medidas del corte, se debe considerar 4 mm adicionales a cada
lado de la placa en relación al del dibujo que se vaya a transferir, por lo que la medida de corte
para nuestro grabador sería (69mm x 50mm). Utilizando una sierra o una caladora con sierra de
metal (debido a que este posee dientes más finos), se debe cortar la placa necesaria para el
grabador de microcontroladores.
Figura 7.3.1. Paso 1. cortar la placa de 69 x 50 mm con una sierra o una caladora, esta
última les permite cortes más rápidos y perfectos.
Como pueden observar para utilizar la caladora esta debe estar sujetada en una tabla y con una
guía de aluminio, en la que se regula con unos tornillos la distancia de corte, consiguiendo
igualdad en el tamaño de las placas para producciones en serie.
Una vez cortado la placa, se debe limpiar las limallas de cobre que quedan en los filos de
la placa, con una lija fina de metal (Nro. 150). Luego de esto se debe limpiar el lado del cobre
donde
cambiase
deva a transferir
color, las se
esto porque pistas
está con una esponja
limpiando decreado
el óxido acero, en
notarán que la ylámina
la superficie de cobre
los rayones que
pudiera tener.
Figura 7.3.2. Paso 2. limpiar los filos del corte realizado y la lámina de cobre oxidada.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 189
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 199/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una recomendación muy importante, es que una vez limpia la placa, no se debe tocar con los
dedos sobre la lámina de cobre, pues la grasa de los dedos genera óxido casi inmediatamente, si lo
desea puede lavarlo posteriormente con crema lavaplatos del tipo arranca grasa.
Para el caso de querer guardar las placas se recomienda introducirla en una funda y
cerrarlo con cinta adhesiva para así evitar el contacto directo con el aire.
MATERIALES.
-1 plancha domestica o una estampadora
-2 pedazos de tela de calentador o franela
-La placa íntegramente limpia. (limpiar con esponja de acero)
-El papel con el diseño a transferir ( Press-n-Peel o papel fotográfico Glossy)
Ahora vamos a realizar la transferencia propiamente dicha de las pistas sobre el lado de la lámina
de cobre, recuerde esta debe estar completamente limpia y no debe ser tocada con los dedos, para
manipularlo
tinta sobre elselado
debedel
sujetar
cobre,por
sinlos bordes.mucho
moverlo Primero coloque el papel
introdúzcalo debajofotográfico
de la tela, con
todoelesto
ladosobre
de la
una mesa rígida y luego pase la plancha que debe estar al máximo de la temperatura, aplique
presión con todo el peso del cuerpo por alrededor de 20 a 30 segundos, luego de esto retire e
inmediatamente coloque la placa en otra parte de la mesa que se encuentre fría, con otro trapo
Figura 7.4.1. Paso 3. Aplique presión con una plancha bien caliente por 30 seg. y déjelo enfriar
presionando con otro trapo para luego retirar el papel cuidadosamente.
190 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 200/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
aplique presión uniforme frotándolo de un lado a otro hasta que este se enfríe, con la finalidad de
que toda la tinta (toner + barniz) se pegue a la lámina de cobre y así poder retirar el papel sin que
se presente partes cortadas o faltantes, si permanecen residuos de papel remójelo y sáquelo con la
yema de los dedos.
Si las pistas no se pegan puede ser por que la plancha no es suficientemente caliente, en
este caso utilice otra plancha, debe notar además que el papel se amarilla un poco por efecto del
calor, otra razón puede ser también que esté utilizando una tela muy gruesa, cambie a otro tipo de
tela, y por último puede ser la poca presión aplicada con la plancha, se debe prácticamente
apoyarse sobre la plancha y frotarlo sobre toda la superficie de la placa.
Una solución muy eficaz es utilizar las planchas estampadoras o fusionadoras, estas son
utilizadas para estampar camisetas o forros pegables, tienen un lado de caucho resistente al calor
y su presión es muy alta, así como la temperatura que puede entregar es de hasta 500°C, (nosotros
utilizaremos de 300 a 400°C), estas planchas tienen una superficie de 40 x 40 cm, ideal para
placas de 30 x 20 cm, ya que la plancha doméstica sólo sirve para placas de hasta 10 x 20 cm.
MATERIALES.
-1 recipiente de plástico, (no metálico)
-½ vaso con agua tibia
-1 palillo de pincho o una pinza de plástico
-1 funda de cloruro férrico (en polvo)
-1 calentador de agua para peceras (opcional)
Para reducir el cobre sobrante, es decir el que no está protegido por la tinta y el barniz,
necesitamos preparar un atacador, existen 2 tipos de atacadores: los rápidos y los lentos, los
rápidos como por ejemplo la combinación de 50 ml de ácido clorhídrico y 50 ml de agua
oxigenada, pueden reducir el cobre no protegido al cabo de unos pocos segundos, pero tiene la
desventaja de ser difíciles de conseguir en el mercado, los lentos en cambio como el Cloruro
férrico se lo encuentra en cualquier tienda electrónica pero el proceso de atacado podría tomar
hasta 1 hora. Sin embargo por ser menos agresivo y porque no emana muchos gases tóxicos,
utilizaremos el cloruro férrico.
Figura 7.5.1. Materiales a utilizar, a la derecha mezcla del cloruro férrico con el agua.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 191
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 201/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para su preparación primero se recomienda un lugar con buena ventilación, no utilizar reloj con
pulseras de metal, pues el cloruro férrico ataca a los metales, también tome en cuenta que al
contacto con la ropa o la piel, produce una mancha amarillenta, por lo que debe tomar las
precauciones necesarias, y en caso de darse contacto con la piel debe lavarse con agua y jabón.
Una vez que estemos listos procedemos a preparar la solución ácida, primero colocamos
el ½ vaso de agua tibia en el recipiente de plástico, luego colocamos poco a poco si es posible con
una cuchara de plástico, todo el contenido de la funda de cloruro férrico, es normal que el agua se
empiece a calentar (debido a la reacción química), el palillo de pincho lo utilizaremos para
revolver el líquido y así ayudar a disolver el cloruro férrico.
PELIGRO: Nunca ponga todo el cloruro férrico de una sola vez sobre el agua, la reacción muy
brusca podría hacer explotar y producir quemaduras en la ropa y en la piel.
Esta solución ya preparada, puede ser almacenada en un envase de plástico o vidrio para
luego ser utilizada varias veces, hasta que el ácido se contamine tanto que ya no sea posible
corroer placas (debido a que el efecto es cada vez más lento), para entonces se debe desechar.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 202/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una vez que el ácido terminó de eliminar el cobre expuesto, retiramos la placa del ácido y lo
lavamos con abundante agua del grifo, las pistas, pads, etc., en esta fase se ven de color negro,
esto se debe a que el papel se encuentra remojado, pero cuando se seca vuelve a ser de color
blanco, ahora nos resta limpiar todo el residuo de papel y tinta de 2 maneras posibles, la primera
es utilizando thinner, acetona, o cualquier disolvente, pero esto tiene un efecto secundario si bien
limpia las pistas, un poco de tinta negra se impregna en algunas partes de la placa, dando la
apariencia de sucia, por tal razón es mejor limpiar con la misma esponja de acero y un poco de
agua, el resultado de la limpieza no deja rastro de tinta y se ve muy nítido.
Figura 7.6.1. Placa recién sacada del ácido, y limpieza de la tinta con esponja de acero y agua .
Figura 7.6.2. Apariencia que debe tener la placa ya atacada y libre de tinta (toner + barniz).
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 193
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 203/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
El screen de elementos, no es nada más que textos, información, datos y figuras que indican el
lugar donde se debe insertar los elementos electrónicos, son muy útiles ya que evitan que la
persona se equivoque de lugar al insertar una resistencia, o coloque al revés un diodo, el material
utilizado es un acetato para copiadoras de la marca APLI referencia 859, también se puede
utilizar acetatos para impresoras ink-jet de cualquier marca, este se debe colocar a la misma altura
y posición que están las pistas y también se debe tener cuidado de no colocar al revés (recuerde
que la impresión de este acetato es espejeado). Para que se adhiera bien, en el caso de placas de
baquelita, se debe lijar bien el lado donde se va a colocar el screen, ya que tienen una capa de laca
o barniz, para el caso de placas de doble cara, al disolverse la cara que no se necesitaba, esta
queda bien limpia y porosa, por lo que no hace falta limpiarle.
Cuando termine de termofijarlo, igualmente proceda a enfriarlo haciendo presión con un trapo,
una vez que esté frío retire cuidadosamente el acetato, tendrá un acabado nítido ya que toda la
tinta del acetato
resultado, debe
para ello transferirse
vea a la quede
el acetato que placa, es
conimportante que reconozca
menor cantidad cual
de tinta de acetato tiene mejor
residuo.
Para el caso de hacer el screen con papel Press-n-peel, proceda de igual manera, la
diferencia es que debido a una fina capa de material fílmico que posee este acetato el screen sale
de color azul.
MATERIALES.
-1 broca para metal, de 1mm de diámetro
-1 taladro o moto-tool (taladro miniatura)
-1 pedestal para taladro (opcional).
Lo único que hace falta para que la placa esté lista es realizar los respectivos agujeros, para el
caso de nuestro grabador de PIC´S necesitamos hacer 51 agujeros con broca de 1 mm. lo ideal es
disponer de un moto-tool o taladro miniatura, ya que estos son de fácil manipulación, además
pueden soportar brocas de 0,3 mm en adelante, para este caso se debe hacer una hendidura con un
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 204/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
punzón y un martillo en cada lugar donde se va hacer un agujero, con la finalidad de que sirvan
de guía para la broca.
Otra opción es utilizar un taladro cuyo mandril pueda soportar brocas desde 0,5 mm hasta
10 mm, y si dispone de un pedestal, en este caso no necesita hacer las hendiduras con punzón, ya
que la perforación se realiza completamente perpendicular a la placa y sin que se desvíen las
brocas.
Figura 7.8.1. Pedestal y taladro con broca de 1 mm. para perforar la placa PCB.
MATERIALES.
a) Un metro de cable de 4 hilos multifilar
b) Un conector DB9 hembra con su respectivo cajetín
c) Dos leds de 5mm, un rojo y un verde
d) Un diodo
e) Una zener de
resistencia de 470
5.1 V.
aa ¼
½ de
o 1vatio
vatioamarillo-violeta-café
f) Una resistencia de 1 K a ¼ de vatio café-negro-rojo
g) Una resistencia de 10 K a ¼ de vatio café-negro-naranja
h) Un capacitor electrolítico de 100 uF/25V.
i) Un transistor NPN 2N3904
j) cuatro zócalos, ( 8,18, 28 y 40 pines).
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 205/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Las herramientas y materiales que todo soldador electrónico debe tener son los siguientes:
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 206/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una vez que tenga listos los materiales y herramientas, empiece por los zócalos, estos debe
prepararlos sacando algunos pines que no se necesita, con el alicate de punta empuje uno por uno
los pines no necesarios como muestra la siguiente figura:
Figura 7.9.3. Retire los pines que no se necesitan, empujando uno por uno con la pinza de
punta, hasta que queden como el de la fotografía derecha.
Las resistencias y el diodo, debe doblarlos, a la medida necesaria y con la ayuda de la pinza de
punta:
Se debe seguir una secuencia en la soldadura de los componentes, primero los elementos más
bajos y luego los más altos como el capacitor, de esta manera el orden para ir soldando sería:
resistencias, diodo, zócalos, transistor, leds, y por último el capacitor, luego de todo esto suelde el
cable con las indicaciones posteriores.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 197
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 207/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Inicie con la suelda de las resistencias y el diodo, estos debe insertarlos y luego doblar las patitas
hacia el exterior, con la finalidad de que al dar la vuelta la placa para soldar, estos no se caigan,
luego de esto coloque en el soporte para placas y proceda a soldar, el mejor método de suelda, es
calentar un poco el elemento a soldar y luego poner el estaño, mover la punta del cautín de arriba
abajo, tocando el alambre de suelda y el elemento, esto permite una rápida adherencia y una
buena soldadura.
Figura 7.9.5. Doblar las patitas de las resistencias hacia el exterior, sujetarlo en el sujeta placas
y proceder a soldar .
Si usted no dispone de un soporte para placas, puede soldar de la siguiente manera: con la uña de
su dedo índice sujete la resistencia. El alambre de suelda colóquelo al filo de una mesa y con la
otra mano manipule el cautín, como lo muestra las siguientes fotografías:
Figura 7.9.6. Sujete la resistencia con la uña, coloque el alambre de soldar al filo de una mesa y
sin soltarlo empiece a soldar .
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 208/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 209/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Una vez pelado el cable, introduzca las puntas de los alambres en la pasta de soldar, y con la
ayuda del cautín estáñelo todos los alambres como muestra las siguientes fotografías:
Figura 7.9.9. Introduzca las puntas del alambre en la pasta de soldar y luego estáñelo con el
cautín previamente cargado de suelda.
Con las puntas de los alambres estañados, los filamentos permanecen juntos, ahora introduzca en
las perforaciones de la placa y sosténgalo con sus dedos hasta que logre soldarlos.
Figura 7.9.10. Introduzca las 4 puntas de los alambres y sosténgalo con su dedo, luego proceda
a soldar como se aprendió en los casos anteriores .
Una vez soldado los alambres procedamos a sujetarlo a la placa, para que el movimiento no los
rompa, para esto necesitamos empujar el alambre del otro extremo hasta que la envoltura recorra
200 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 210/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 211/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 7.9.13. Suelde cada cable en el lugar que le indica el screen de la placa UNIVERSAL
PICmicro5, luego coloque el cajetín del conector DB9.
El puente
luego que une
doblando el pin
hasta 4 y 8 puede
alcanzar el otrohacerlo con
pin. Una el colocado
vez mismo alambre, soldando
los cables dentroprimero el unpuede
del cajetín, pin y
colocar un poco de silicón con la pistola térmica, esto lo ayudará a que no se rompa con la
manipulación del conector.
Para limpiar los residuos de suelda (pasta) que se encuentra en las pistas de la placa, podemos
utilizar un cepillo de dientes que ya no se utilice, introducimos las cerdas en un poco de thinner, y
cepillamos la placa teniendo cuidado de que el thinner no se derrame por el lado posterior de la
placa, es decir el screen ya que podría borrarlo.
Figura 7.9.14. Limpie la placa con mucho cuidado, ya que el thinner podría borrar el screen,
déjelo secar y posteriormente puede darle una capa de laca o barniz.
Para evitar que las pistas de cobre se oxiden, se debe dar una capa de barniz en spray para circuito
impreso, este también lo utilizan para cubrir el rebobinaje de los motores, una marca conocida es
RA com clean VARNISH, este le dará un acabado brillante transparente, pero si desea darle un
202 ------------------------ Microcontroladores PIC Programación en BASIC ------------------------
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 212/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
acabado más profesional, (ver CD:\Fotos libro\grabador PIC2), puede utilizar laca transparente
con un poco de pintura verde, esto se debe hacer preparar en las tiendas que venden y preparan
pintura automotriz, se debe llevar una placa de circuito impreso que tenga la máscara
antisoldadura de color verde, se le pide que saquen el color de la placa mezclando laca
transparente con pintura automotriz. Una vez que el color sea el correcto, y con la ayuda de un
compresor y la pistola de pintar se procede a rociar el lado de las pistas, teniendo cuidado de no
pintar el cable, para esto se debe cubrir con un poco de cinta adhesiva.
Figura 7.9.15. Apariencia del grabador de PIC´S con la máscara antisoldadura de color verde.
En este subcapítulo se pretende dar ideas muy prácticas de cómo construir un chasís o caja para
proyectos,
un circuito,primero debemos
una de ellas buscar
es la caja en el mercado
DEXSON, que se las cajaspara
utilizan que colocar
podríantomacorrientes
servirnos para externos.
contener
Figura 7.10.1. La caja para tomacorrientes de la marca DEXSON, es ideal para proyectos.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 203
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 213/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Estas cajas también son utilizadas para instalaciones de cableado estructurado (ver Figura
5.7.4.2.), los cajetines telefónicos también nos podrían servir, las cajas para breakers, y si no nos
sirven ninguna de estas pues por último mandamos a doblar una caja a la medida.
A continuación mostramos cómo hacer un teclado para el control de accesos, primero
utilizamos la caja DEXSON o cualquier otra marca, cortamos las 2 tuercas y lo colocamos en otro
lugar, utilizando pega instantánea.
Figura 7.10.2. Cortamos las tuercas y las pegamos en cualquier lugar que deseemos.
Para fabricar el panel del teclado, primero dibujamos en un programa de dibujo todas las teclas,
luego mandamos a imprimir en acetato con una impresora láser a color, pegamos un adhesivo
blanco por la parte posterior, con la finalidad de que las partes transparentes se vean blancas.
Figura 7.10.3. Cortamos una lámina de acrílico y lo practicamos los agujeros por donde
pasaran las teclas, imprimimos en una lámina de transparencia (acetato) los dibujos de las teclas
y lo pegamos sobre el acrílico.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 214/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 7.10.4. Fotografía lateral del teclado para control de accesos, noten que los pulsadores
son de 4,5 mm de alto suficiente para que atraviese a la lámina de acrílico que
mide 4mm. de espesor
En el mercado se puede encontrar diferentes cajas metálicas o plásticas, para proyectos o para
instalaciones eléctricas, aquí una fotografía de 2 de ellas.
Figura 7.10.5. Fotografía de una caja metálica y otra de plástico, ambas se utilizan para
instalaciones eléctricas, con la caja de la izquierda haremos una alarma de 3
zonas y otra de 9 zonas y con la de la derecha haremos un PLC con LCD.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 215/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Para hacer la caja de la alarma de 3 zonas primero debemos hacer los paneles, estos dibujamos en
el computador y lo mandamos a imprimir en papel adhesivo blanco o transparencias.
Figura 7.10.6. Fotografía de algunos paneles, unos impresos en papel adhesivo y otro en
acetato.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 216/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
Figura 7.10.8. Fotografía de paneles de una alarma de 3 zonas y otra de 9 zonas con teclado.
Figura 7.10.9. Fotografía de un PLC con LCD fabricado en una caja de breakers de plástico.
------------------------ Microcontroladores PIC Programación en BASIC ------------------------ 207
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 217/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 218/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
luego se manda a doblar el tool a la medida correcta, se procede con los agujeros, la pintura y el
papel adhesivo, el resultado final puede ser como la siguiente fotografía.
Figura 7.10.12. Chasís de una fuente de poder construida con madera y tool doblado, para las
patitas se puede utilizar los cauchos automotrices que se utilizan como topes para las puertas.
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 219/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
www.detodoprogramacion.com
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 220/221
8/12/2019 Microcontroladores PIC® - Programación en basic [Proyectos con PIC®]
d i l ld b
http://slidepdf.com/reader/full/microcontroladores-pic-programacion-en-basic-proyectos-con-pic 221/221