View
41
Download
2
Category
Preview:
Citation preview
Microcontroladores PIC. Teora
CAPITULO 1 Introduccin a los Microcontroladores:
1.1 Controlador y microcontrolador. 1.2 Diferencia entre microprocesador y microcontrolador. 1.3 Aplicaciones de los microcontroladores. 1.4 Principales familias de microcontroladores. 1.5 Arquitectura bsica. 1.6 Recursos especiales.
CAPITULO 2 Los controladores PIC16F84:
2.1 Caractersticas de la familia PIC16C(F)XX. 2.2 Microcontroladores PIC16C(F)84. 2.3 Hoja caracterstica de los PIC16C(F)84. 2.4 Diagrama de pines del PIC16C(F)84. 2.5 Organizacin de la memoria. 2.6 Definicin de los registros de funciones especiales (SFR). 2.7 Puertos del PIC16C(F)84. 2.8 Frecuencia de funcionamiento. 2.9 Temporizador/contador. 2.10 Memoria EEPROM de datos. 2.11 Interrupciones. 2.12 Reset.
CAPITULO 3 Introduccin a la programacin :
3.1 Cdigo fuente. 3.2 Normas.
CAPITULO 4 Programacin de los controladores PIC :
4.1 Introduccin. 4.2 Primeros pasos con el MPLAB. 4.3 El entorno de trabajo MPLAB.
4.3.1 El ensamblador. 4.3.2 Creando un nuevo proyecto. 4.3.3 Ensamblado. 4.3.4 Simulacin bajo windows. 4.3.5 Otras opciones del MPLAB.
CAPITULO 5 Programacin con el ICPROG :
5.1 Configuracin para obtener el mejor rendimiento
5.2 Pasos a seguir para la programacin. 5.3 Solucin de problemas.
2
1. INTRODUCCION A LOS MICROCONTROLADORES.
Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo,
en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el
funcionamiento de los ratones y teclados de los computadores, en los telfonos, en los hornos
microondas y los televisores de nuestro hogar. Pero la invasin acaba de comenzar y siglo XXI
ser testigo de la conquista masiva de estos diminutos computadores, que gobernarn la mayor
parte de los aparatos que fabricaremos y usamos los humanos.
1.1 Controlador y microcontrolador.
Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o
varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno dispone
de un sensor que mide constantemente su temperatura interna y, cuando traspasa los lmites
prefijados, genera las seales adecuadas que accionan los efectores que intentan llevar el valor
de la temperatura dentro del rango estipulado.
Aunque el concepto de controlador ha permanecido invariable a travs del tiempo, su
implementacin fsica ha variado frecuentemente. Hace tres dcadas, los controladores se
construan exclusivamente con componentes de lgica discreta, posteriormente se emplearon los
microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito
impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip,
el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo
computador contenido en el corazn (chip) de un circuito integrado.
Un microcontrolador es un circuito integrado de alta escala de integracin que incorpora
la mayor parte de los elementos que configuran un controlador.
Un microcontrolador dispone normalmente de los siguientes componentes:
Procesador o UCP (Unidad Central de Proceso).
Memoria RAM para Contener los datos.
Memoria para el programa tipo ROM/PROM/EPROM.
Lneas de E/S para comunicarse con el exterior.
3
Diversos mdulos para el control de perifricos (temporizadores, Puertas Serie y
Paralelo, CAD: Conversores Analgico/Digital, CDA: Conversores
Digital/Analgico, etc.).
Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema.
Los productos que para su regulacin incorporan un microcontrolador disponen de las
siguientes ventajas:
Aumento de prestaciones: un mayor control sobre un determinado elemento representa
una mejora considerable en el mismo.
Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado nmero de
elementos disminuye el riesgo de averas y se precisan menos ajustes.
Reduccin del tamao en el producto acabado: La integracin del microcontrolador en
un chip disminuye el volumen, la mano de obra y los stocks.
Mayor flexibilidad: las caractersticas de control estn programadas por lo que su
modificacin slo necesita cambios en el programa de instrucciones.
El microcontrolador es en definitiva un circuito integrado que incluye todos los
componentes de un computador. Debido a su reducido tamao es posible montar el controlador
en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de
controlador empotrado (embedded controller).
4
1.2 Diferencia entre microprocesador y microcontrolador.
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso
(UCP), tambin llamada procesador, de un computador. La UCP est formada por la Unidad de
Control, que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.
Las patillas de un microprocesador sacan al exterior las lneas de sus buses de
direcciones, datos y control, para permitir conectarle con la Memoria y los Mdulos de E/S y
configurar un computador implementado por varios circuitos integrados. Se dice que un
microprocesador es un sistema abierto porque su configuracin es variable de acuerdo con la
aplicacin a la que se destine. (Figura 1.1.)
Figura 1.1. Estructura de un sistema abierto basado en un microprocesador. La
disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicacin.
Si slo se dispusiese de un modelo de microcontrolador, ste debera tener muy
potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes
aplicaciones. Esta potenciacin supondra en muchos casos un despilfarro. En la prctica cada
fabricante de microcontroladores oferta un elevado nmero de modelos diferentes, desde los
ms sencillos hasta los ms poderosos. Es posible seleccionar la capacidad de las memorias, el
nmero de lneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de
funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseo es la seleccin del
microcontrolador a utilizar.
5
Figura 1.2. El microcontrolador es un sistema cerrado. Todas las partes del computador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos.
1.3 Aplicaciones de los microcontroladores.
Cada vez existen ms productos que incorporan un microcontrolador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y
disminuir el consumo.
Algunos fabricantes de microcontroladores superan el milln de unidades de un modelo
determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizacin
de estos componentes.
Los microcontroladores estn siendo empleados en multitud de sistemas presentes en
nuestra vida diaria, como pueden ser juguetes, horno microondas, frigorficos, televisores,
computadoras, impresoras, mdems, el sistema de arranque de nuestro coche, etc. Y otras
aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentacin
electrnica, control de sistemas en una nave espacial, etc. Una aplicacin tpica podra emplear
varios microcontroladores para controlar pequeas partes del sistema. Estos pequeos
controladores podran comunicarse entre ellos y con un procesador central, probablemente ms
potente, para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya
habitualmente en cualquier PC.
6
1.4 Principales familias de microcontroladores.
Los microcontroladores ms populares se encuentran, sin duda, entre las mejores
elecciones:
8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su
precio, disponibilidad y herramientas de desarrollo hacen que todava sea muy popular.
8051 (Intel y otros). Es sin duda el microcontrolador ms popular. Fcil de programar,
pero potente. Est bien documentado y posee cientos de variantes e incontables
herramientas de desarrollo.
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares
microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las
herramientas de desarrollo para PC.
68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular
con gran cantidad de variantes.
683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan
algunos perifricos. Son microcontroladores de altsimas prestaciones.
PIC (MicroChip). Familia de microcontroladores que gana popularidad da a da.
Fueron los primeros microcontroladores RISC.
1.5 Arquitectura bsica
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de
von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de
von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan
datos e instrucciones de forma indistinta. A dicha memoria se accede a travs de un sistema
de buses nico (direcciones, datos y control).
7
La arquitectura Harvard dispone de dos memorias independientes una, que contiene slo
instrucciones y otra, slo datos. Ambas disponen de sus respectivos sistemas de buses de acceso
y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas
memorias. Figura 1.3.
Figura 1.3. La arquitectura Harvard dispone de dos memorias independientes para
datos y para instrucciones, permitiendo accesos simultneos.
Los microcontroladores PIC responden a la arquitectura Harvard.
1.5.1 El procesador o UCP
Es el elemento ms importante del microcontrolador y determina sus principales
caractersticas, tanto a nivel hardware como software.
Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la
instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin,
as como la bsqueda de los operandos y el almacenamiento del resultado.
Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores
actuales.
CISC: Un gran nmero de procesadores usados en los microcontroladores estn basados en la
filosofa CISC (Computadores de Juego de Instrucciones Complejo). Disponen de ms de 80
instrucciones mquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes,
requiriendo muchos ciclos para su ejecucin.
Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas
que actan como macros.
8
RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores
estn decantndose hacia la filosofa RISC (Computadores de Juego de Instrucciones
Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y
las instrucciones son simples y, generalmente, se ejecutan en un ciclo.
La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del
procesador.
SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de
instrucciones, adems de ser reducido, es especfico, o sea, las instrucciones se adaptan a
las necesidades de la aplicacin prevista. Esta filosofa se ha bautizado con el nombre de
SISC (Computadores de Juego de Instrucciones Especfico).
1.5.2 Memoria
En los microcontroladores la memoria de instrucciones y datos est integrada en el propio
chip. Una parte debe ser no voltil, tipo ROM, y se destina a contener el programa de
instrucciones que gobierna la aplicacin. Otra parte de memoria ser tipo RAM, voltil, y se
destina a guardar las variables y los datos.
Hay dos peculiaridades que diferencian a los microcontroladores de los computadores
personales:
1. No existen sistemas de almacenamiento masivo como disco duro o
disquetes.
2. Como el microcontrolador slo se destina a una tarea en la memoria
ROM, slo hay que almacenar un nico programa de trabajo.
La RAM en estos dispositivos es de poca capacidad pues slo debe contener las variables
y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte,
como slo existe un programa activo, no se requiere guardar una copia del mismo en la RAM
pues se ejecuta directamente desde la ROM.
Los usuarios de computadores personales estn habituados a manejar Megabytes de
memoria, pero, los diseadores con microcontroladores trabajan con capacidades de ROM
comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes.
9
Segn el tipo de memoria ROM que dispongan los microcontroladores, la aplicacin y
utilizacin de los mismos es diferente. Se describen las cinco versiones de memoria no voltil
que se pueden encontrar en los microcontroladores del mercado.
1. ROM con mscara
Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin
del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los
microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios
miles de unidades.
2. OTP
El microcontrolador contiene una memoria no voltil de slo lectura programable una sola
vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el
programa en el chip mediante un sencillo grabador controlado por un programa desde un PC.
La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o
bien, en la construccin de prototipos y series muy pequeas.
Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante
fusibles para proteger el cdigo contenido.
3 EPROM
Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read
OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el
caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el
contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM
a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms
caros que los microcontroladores con memoria OTP que estn hechos con material plstico.
10
4 EEPROM
Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM
(Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el
borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un
PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana
de cristal en la superficie.
Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,
pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello
se usan grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de
realizar modificaciones en el programa de trabajo.
El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo
que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la
Ingeniera de diseo.
Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria
EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de
parmetros que adecuan el dispositivo a las condiciones del entorno.
Este tipo de memoria es relativamente lenta.
5 FLASH
Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar.
Funciona como una ROM y una RAM pero consume menos y es ms pequea.
A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y
de mayor densidad que la EEPROM.
La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran
cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de
escritura/borrado.
11
Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores
que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el
circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al
control del motor de un automvil permite que pueda modificarse el programa durante la rutina
de mantenimiento peridico, compensando los desgastes y otros factores tales como la
compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede
convertirse en una labor rutinaria dentro de la puesta a punto.
1.5.4 Puertas de Entrada y Salida
La principal utilidad de las patitas que posee la cpsula que contiene un microcontrolador
es soportar las lneas de E/S que comunican al computador interno con los perifricos
exteriores.
Segn los controladores de perifricos que posea cada modelo de microcontrolador, las
lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.
1.5.5 Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de
todas las operaciones del sistema.
Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de
trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o
bien un resonador cermico o una red R-C.
Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las
instrucciones pero lleva aparejado un incremento del consumo de energa.
1.6 RECURSOS ESPECIALES
Cada fabricante oferta numerosas versiones de una arquitectura bsica de
microcontrolador. En algunas ampla las capacidades de las memorias, en otras incorpora
nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc.
La labor del diseador es encontrar el modelo mnimo que satisfaga todos los requerimientos de
su aplicacin. De esta forma, minimizar el coste, el hardware y el software.
12
Los principales recursos especficos que incorporan los microcontroladores son:
Temporizadores o Timers.
Perro guardin o Watchdog.
Proteccin ante fallo de alimentacin o Brownout.
Estado de reposo o de bajo consumo.
Conversor A/D.
Conversor D/A.
Comparador analgico.
Modulador de anchura de impulsos o PWM.
Puertas de E/S digitales.
Puertas de comunicacin.
1.6.1 Temporizadores o Timers
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de
acontecimientos que suceden en el exterior (contadores).
Para la medida de tiempos se carga un registro con el valor adecuado y a continuacin
dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn
mltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso.
Cuando se desean contar acontecimientos que se materializan por cambios de nivel o
flancos en alguna de las patitas del microcontrolador, el mencionado registro se va
incrementando o decrementando al ritmo de dichos impulsos.
13
1.6.2 Perro guardin o Watchdog
Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa
el botn del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control
de un supervisor y de forma continuada las 24 horas del da. El Perro guardin consiste en un
temporizador que, cuando se desborda y pasa por 0, provoca un reset automticamente en el
sistema.
Se debe disear el programa de trabajo que controla la tarea de forma que refresque o
inicialice al Perro guardin antes de que provoque el reset. Si falla el programa o se bloquea, no
se refrescar al Perro guardin y, al completar su temporizacin, ladrar y ladrar hasta
provocar el reset.
1.6.3 Proteccin ante fallo de alimentacin o Brownout
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin
(VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea
inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar
normalmente cuando sobrepasa dicho valor.
1.6.4 Estado de reposo de bajo consumo
Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar,
sin hacer nada, a que se produzca algn acontecimiento externo que le ponga de nuevo en
funcionamiento. Para ahorrar energa, (factor clave en los aparatos porttiles), los
microcontroladores disponen de una instruccin especial (SLEEP en los PIC), que les pasa al
estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. En
dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando
sumido en un profundo sueo el microcontrolador. Al activarse una interrupcin ocasionada
por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo.
1.6.5 Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) pueden
procesar seales analgicas, tan abundantes en las aplicaciones. Suelen disponer de un
multiplexor que permite aplicar a la entrada del CAD diversas seales analgicas desde las
patitas del circuito integrado.
14
1.6.6 Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento del computador en su
correspondiente seal analgica que saca al exterior por una de las patitas de la cpsula. Existen
muchos efectores que trabajan con seales analgicas.
1.6.7 Comparador analgico
Algunos modelos de microcontroladores disponen internamente de un Amplificador
Operacional que acta como comparador entre una seal fija de referencia y otra variable que se
aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico
1 0 segn una seal sea mayor o menor que la otra.
Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que
proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.
1.6.8 Modulador de anchura de impulsos o PWM
Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen
al exterior a travs de las patitas del encapsulado.
1.6.9 Puertas de E/S digitales
Todos los microcontroladores destinan algunas de sus patitas a soportar lneas de E/S
digitales. Por lo general, estas lneas se agrupan de ocho en ocho formando Puertas.
Las lneas digitales de las Puertas pueden configurarse como Entrada o como Salida
cargando un 1 un 0 en el bit correspondiente de un registro destinado a su configuracin.
1.6.10 Puertas de comunicacin
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros
dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y
15
poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos
disponen de recursos que permiten directamente esta tarea, entre los que destacan:
UART, adaptador de comunicacin serie asncrona.
USART, adaptador de comunicacin serie sncrona y asncrona
Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores.
USB (Universal Serial Bus), que es un moderno bus serie para los PC.
Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.
CAN (Controller Area Network), para permitir la adaptacin con redes de
conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el
cableado de dispositivos en automviles. En EE.UU. se usa el J185O.
16
2. LOS CONTROLADORES PIC16F84
2.1 CARACTERISTICAS DE LA FAMILIA PIC16C(F)XX
Un microcontrolador es un circuito integrado que posee todas las caractersticas de un
computador completo. Puede ser programado para que cumpla una tarea determinada a muy
bajo costo. Un ejemplo de ellos es el famoso PIC16F84 de la familia PIC16F8X.
El PIC16F8X es un grupo en la familia PIC16CXX de bajo costo, alto rendimiento,
CMOS de 8 bit entre otras cosas. Este grupo de PIC consta de los siguientes dispositivos:
PIC16F83, PIC16F84, PIC16CR83 y el PIC16CR84. Todos los microcontroladores emplean
una avanzada arquitectura RISC.
Los dispositivos con memoria de programa permiten usar el mismo paquete (software)
del dispositivo para el prototipo del circuito y para la produccin. El PIC en modo de
reprogramacin del circuito permite que el cdigo de programa pueda ser puesto al da. Esto es
til en el desarrollo de muchas aplicaciones donde el dispositivo no puede ser fcilmente
accesible.
Al elegir un microcontrolador, es mejor decidirse por el PIC16F8X, el cual posee un
sistema de identificacin de producto de la siguiente manera:
1. - F, como en el PIC16F84. Estos dispositivos tienen memoria de programa Flash y operan
encima del rango de voltaje normal.
2. - LF, como en el PIC16LF84. Estos dispositivos tienen memoria de programa Flash y operan
encima de un rango de voltaje extendido.
3. - CR, como en el PIC16CR83. Estos dispositivos tienen memoria de programa ROM y
operan encima del rango de voltaje normal.
4. - LCR, como en el PIC16LCR84. Estos dispositivos tienen memoria de programa ROM y
operan encima de un rango de voltaje extendido.
Existen diferentes tipos de Microcontroladores PIC, con el fin de que el diseador pueda
escoger el que mejor satisfaga las necesidades del proyecto que desea realizar. Estas son:
Gama enana: PIC12C(F)XXX de 8 pines, se alimenta con un voltaje DC entre 2,5 V y 5,5 V, El formato de sus instrucciones puede ser de 12 o 14 bits y su set de instrucciones es de
33 o 35 instrucciones respectivamente.
Gama Baja: PIC16C5X de 18 y 28 pines, con instrucciones de 12 bits. Estos PIC, pueden alimentarse a partir de una tensin de 2,5 V, lo que los hace ideales para funcionar con bateras.
Disponen de un Set de 33 instrucciones, no admiten ningn tipo de interrupcin y la Pila solo
dispone de 2 niveles.
Gama media: PIC16CXXX de 18 hasta 68 pines, Es una gama muy variada y completa, donde se encuentra el PIC mas usado que es el PIC16C(F)84; (C = Memoria EEPROM; F =
Memoria FLASH). Esta gama posee instrucciones de 14 bits, con un Set de 35 instrucciones.
Dispone de interrupciones y una pila de 8 niveles que permiten el anidamiento de subrutinas.
17
Esta gama se clasifica en las siguientes subfamilias:
a) Gama media estndar (PIC16C55X)
b) Gama media con comparador analgico (PIC 16C62x/64X/66X)
c) Gama media con mdulos de captura (CCP), modulacin de anchura de impulsos (PWM) y
puerto serial (PIC16C6X)
d) Gama media con ADC de 8 bits (PIC16C7X)
e) Gama media con memoria Flash y EEPROM ( PIC 16X8X)
f) Gama media con driver LCD (PIC 16C92X)
g) Gama media PIC 14C000, soporta el diseo de controladores inteligentes para cargadores de
bateras, bateras pequeas, fuentes de alimentacin ininterrumpibles y cualquier sistema de
adquisicin y procesamiento de seales que requieran gestin de la energa de alimentacin.
Gama alta: PIC17CXXX, los hay de 40 hasta 68 pines, alcanzan las 58 instrucciones de 16 bits. Disponen de un sistema de gestin de interrupciones vectorizadas muy potente.
Tambin incluyen variados controladores de perifricos, Puertos seriales y Paralelos.
La caracterstica ms destacable de estos microcontroladores es su arquitectura abierta,
que consiste en la posibilidad de ampliacin con elementos externos. Para tal fin, los pines
sacan al exterior las lneas de los buses de datos, direcciones y control, a las que se conectan
memorias o controladores perifricos. Esta filosofa de construccin del sistema es la que se
emplea en los Microprocesadores y no suele ser habitual cuando se emplean
microcontroladores.
2.2 MICROCONTROLADOR PIC16C(F)84
Es un microcontrolador de 18 pines, de 8 bits con tecnologa CMOS. La razn porque
se ha elegido este tipo de microcontrolador se debe al tipo de memoria de programa que posee.
En el caso del PIC 16F84 se trata de una memoria EEPROM de 1K palabras de 14 bits cada
una. El PIC 16F84 tiene la misma capacidad de memoria de instrucciones, pero de tipo flash.
Ambos disponen de 64 bytes de EEPROM como memoria de datos auxiliar y opcional.
La memoria EEPROM y la Flash son elctricamente gravables, lo que permite escribir y borrar el programa bajo prueba manteniendo el microcontrolador en el mismo zcalo y usando el mismo dispositivo para grabar y borrar. Esta caracterstica supone una gran ventaja con la
mayora de los microcontroladores, que tienen como memoria de programa reescribible una tipo
EPROM. Estas se graban elctricamente, pero para borrarlas hay que someterlas durante cierto
tiempo a rayos ultravioleta, lo que implica sacar del zcalo el circuito integrado y colocarlo en
un borrador de EPROM. El hecho de utilizar una memoria flash es porque tiene mayores
posibilidades de aumentar su capacidad con relacin a la EEPROM. Tambin por su mayor
velocidad y menor consumo. La memoria EEPROM es capaz de soportar 1.000.000 de ciclos de
escritura / borrado, frente a los 1.000 de la Flash.
18
2.3 HOJA CARACTERSTICA DE LOS PIC16C(F)84:
- MEMORIA DE PROGRAMA: 1K x 14, EEPROM (16C84) Y Flash (16F84)
- MEMORIA DE DATOS RAM: 36 Byte (16C84) y 68 Byte (16F84)
- MEMORIA DE DATOS EEPROM: 64 Byte para ambos modelos
- PILA (STACK): De 8 niveles
- INTERRUPCIONES: 4 tipos diferentes
- SET DE INSTRUCCIONES: 35
- ENCAPSULADO: 18 PINES
- FRECUENCIA DE TRABAJO: 10 Mhz mxima
- TEMPORIZADORES: TMR0 y WDT
- LINEAS DE E/S DIGITALES: 13 (5 Puerto A y 8 Puerto B)
- CORRIENTE MXIMA ABSORBIDA: 80 mA Puerto A y 150 mA Puerto B
- CORRIENTE MXIMA SUMINISTRADA: 50 mA Puerto A y 100 mA Puerto B
- CORRIENTE MXIMA ABSORBIDA POR LINEA: 25 mA
- CORRIENTE MXIMA SUMINISTRADA POR LINEA: 20 mA
- VOLTAJE DE ALIMENTACIN (Vdd): De 2 a 6V DC
- VOLTAJE DE GRABACIN (Vpp): De 12 a 14V DC
2.4 DIAGRAMA DE PINES DEL PIC16C(F)84:
Vdd: Pin por el cual se aplica la tensin positiva de Alimentacin
Vss: Pin utilizado para la conexin de tierra
OSC1 / CLKIN: Pin por el cual se aplica la entrada del circuito oscilador externo que proporciona la frecuencia de trabajo al Microcontrolador
OSC2 / CLKOUT: Pin auxiliar o de salida del circuito oscilador.
MCLR# / Vpp: Este pin se activa con un cero (0) lgico, cada vez que se necesite reinicializar o Resetear al Microcontrolador.Este Pin tambin se usa durante la
grabacin de la memoria de programa para introducir por ella la tensin, Vpp (voltaje
pico a pico de grabacin), que esta comprendida entre 12 y 14V DC.
RA0 - RA4: Son los 5 Pines de E/S digitales correspondientes al Puerto A. El Pin RA4 es de colector abierto lo que significa que cuando es utilizado como salida
hay que colocarle una resistencia a Vcc (5V DC).
El pin 3 adems de ser el bit mas significativo del Puerto A, Multiplexa otra funcin
expresada por TOCKI. En este caso sirve para recibir una frecuencia externa para alimentar al
temporizador interno TMR0.
19
RB0 - RB7: Estos 8 pines corresponden a los 8 bits de E/S digitales del Puerto B. El Bit RB0 Multiplexa otra funcin, que es la de servir como entrada a una peticin
externa de interrupcin, por eso se le denomina RB0/INT.
2.5 ORGANIZACIN DE LA MEMORIA DEL PIC16C(F)84
En este Microcontrolador hay dos bloques de Memorias, estos son la memoria de
Programa y la Memoria de Datos. Cada bloque tiene su propio bus, por lo cual el acceso para
cada bloque puede ocurrir durante el mismo ciclo del oscilador. La Memoria de datos (RAM) se
divide en registros de propsito general (GPR) y registros de Funciones especiales (SFR). Los
registros SFR tienen como operacin principal controlar el ncleo del microcontrolador y
mdulos perifricos y los de Propsito General (GPR) son registros que el programador declara
a su conveniencia para utilizarlos en alguna parte de un programa.
La Memoria de Programa es de 1K x 14 bits de tipo EEPROM para el PIC16C84 y de tipo Flash
para el PIC16F84. Adems el PIC16C84 tiene 36 Bytes disponibles en la memoria de datos
RAM en la zona de los registros de propsito general y el PIC16F84 tiene 68 Bytes.
MEMORIA DE PROGRAMA
Los microcontroladores PIC16C84 y PIC16F84, admiten un mapa de memoria de
programa capaz de contener 8.192 instrucciones de 14 bits cada una. Este mapa se divide en
pginas de 2.048 posiciones. Para direccionar 8 K posiciones se necesitan 13 bits, que es la
longitud del Contador de Programa de estos dos microcontroladores (PC). Sin embargo, el
PIC16C84 slo tiene implementadas 1K posiciones, por lo que ignora los 3 bits de ms peso del
PC. Esto es debido a: 1K=1024 Byte= 2 . Por lo tanto solo se tienen 10 lneas de direccin para
acceder a una palabra de memoria.
La direccin 0000H esta reservada para el vector de Reset y la 0004H para el vector de
interrupcin. Adems posee una pila de 8 niveles que permiten el anidamiento de subrutinas.
Es importante destacar que cada Microcontrolador posee una memoria de Programa especifica.
20
MEMORIA DE DATOS DEL PIC16C(F)84
Esta memoria dispone de dos zonas diferentes las cuales son:
rea de RAM esttica o SRAM: Es aquella donde residen los registros de funciones especificas
(SFR) y los registros de propsito general (GPR). El primero tiene 24 posiciones de 1 byte cada
una, aunque dos de ellas no son operativas, y el segundo 36 en el caso del PIC16C84 y 68 en el
PIC16F84.
rea EEPROM de 64 bytes: Esta se utiliza opcionalmente cuando se necesitan almacenar datos
que deben mantenerse cuando la alimentacin se desconecte.
La Memoria SRAM se divide en dos bancos (banco 0 y banco 1) en el caso de los
microcontroladores PIC16C(F)84 de 128 bytes cada uno. En el PIC16C84 slo se hallan implementadas fsicamente las 48 primeras posiciones de cada banco, de las cuales las 12
primeras estn reservadas para los registros SFR, que son los encargados del control del
procesador y sus recursos. Algunos de dichos registros se hallan repetidos en la misma direccin
de los dos bancos, para simplificar su acceso (INDF, ESTADO(STATUS), FSR, PCLATH E
INTCON). Los 36 registros restantes en el caso del PIC16C84 y los 68 en el PIC16F84 de cada
banco estn destinados a los registros GPR y en general solo son operativos los 36 o 68 del
banco 0 porque los del banco 1 se mapean sobre el banco 0, es decir, cuando se apunta a un
registro general del banco 1, se accede al mismo del banco 0.
21
2.6 DEFINICIN DE LOS REGISTROS DE FUNCIONES ESPECIALES (SFR):
- STATUS: Es el registro ms usado y ocupa la direccin 3 tanto del banco 0 como del banco 1
de la memoria de datos RAM, en el caso de los microcontroladores PIC16C(F)84. Sus bits
tienen tres misiones distintas como lo son: Avisar las incidencias del resultado de la ALU (C,
DC y Z), indicar estado de Reset ( y ) y seleccionar el banco a acceder en la memoria de datos
(IRP, RP0 y RP1).
En la siguiente figura se muestra el diagrama de distribucin de los bits del registro de Estado.
R/W R/W R/W R R R/W R/W R/W
IRP RP1 RP0 TO# PD# Z DC C
bit7 bit0
Direccin: 03h
bit 7:.............IRP: Seccin del banco en direccionamiento indirecto. En el PIC16X84 no se usa
este bit y debe programarse como 0.
....................0 = Banco 0, 1 (00h - FFh)
....................1 = Banco 2, 3 (100h - 1FFh)
bit 6-5:..........RP1-RP0: Seleccin de banco en direccionamiento directo. Como el PIC16X84
slo tiene dos.bancos solamente usamos el bit RP0.
....................00 = Banco 0 (00h - 7Fh)
....................01 = Banco 1 (80h - FFh)
....................10 = Banco 2 (100h - 17Fh)
....................11 = Banco 3 (180h - 1FFh)
bit 4:.............TO#: Time Out
....................1 = Se pone a 1 despus de la conexin de la fuente de poder o al ejecutarse las
instrucciones.clrwdt y sleep.
....................0 = Ocurre cuando el Perro Guardin (Watchdog) se desborda.
bit 3:.............PD#: Power Down
....................1 = Cuando se conecta la alimentacin se pone a 1, o al ejecutar clrwdt.
....................0 = Cuando se ejecuta la instruccin Sleep se pone a 0.
22
bit 2:............Z: Cero
....................1 = Cuando el resultado de una instruccin lgico-aritmtica ha sido cero.
....................0 = Cuando el resultado de una instruccin lgico-aritmtica no ha sido cero.
bit 1:.............DC: Acarreo Llevada en el cuarto bit.
....................1 = Indica que se ha producido un acarreo pero refirindose al cuarto bit.
....................0 = No se ha producido ningn acarreo.
bit 0: ...........C : Acarreo en el bit de ms peso.
....................1 = Indica que se ha producido un acarreo en el bit de ms peso al ejecutar addwf y
addlw.
....................0 = No se ha producido ningn acarreo.
IRP: Seleccin de Banco en direccionamiento indirecto
Este bit junto con el de ms peso del registro FSR sirve para determinar el banco de la memoria
de datos seleccionado. El PIC16C(F)84 al disponer de dos bancos no se utiliza este bit y debe
programarse como cero.
RP1-RP0: Seleccin de banco en direccionamiento directo Como el PIC16C(F)84 solo tiene dos bancos emplea el bit RP0 de la forma siguiente:
1: Cuando RP0 es 1 se accede al Banco 1
0: Cuando vale 0 se accede al Banco 0
Despus de un RESET RP0 es igual a cero.
RP1 RP0 Banco
0 0 Banco 0
0 1 Banco 1
1 0 No Existe
1 1 No Existe
Como se puede apreciar en la tabla, RP1 siempre es cero en estos Microcontroladores.
PD: Power Down 1: Se pone automticamente a 1 despus de la conexin de la alimentacin al microcontrolador
o al ejecutar la instruccin de limpiado del WDT.
0: : Se pone automticamente a 0 mediante la ejecucin de la instruccin que deja en stanbay al
microcontrolador (SLEEP).
23
TO: Time Out 1: Se pone automticamente a 1 despus de la conexin de la alimentacin al microcontrolador
o al ejecutar la instruccin de limpiado del WDT o al colocar al microcontrolador en Stanbay,
mediante la instruccin SLEEP.
0: Se pone automticamente a 0 cuando se produce el desbordamiento del
WDT.
Z: Cero 1: Indica que el resultado de una operacin aritmtica o lgica ha sido cero
0: Indica que el resultado de una operacin aritmtica o lgica no ha sido cero
DC: Acarreo llevado en el cuarto bit
Funciona igual que C, pero refirindose al cuarto bit, de inters en operaciones en BCD.
C: Acarreo llevado en el bit de mas peso 1: Cuando esta bandera vale 1 indica que se ha producido un acarreo en el bit de mas peso del
resultado de una operacin aritmtica o lgica, tambin sirve para indicarnos cuando se ha
producido un prstamo en el caso de una resta.
0: Indica que no hay acarreo o prstamo en el caso de la resta.
2.7 PUERTOS DEL MICROCONTROLADOR PIC16C(F)84:
Los microcontroladores PIC16C(F)84 solo poseen dos Puertos de E/S, denominados
Puerto A y Puerto B, estos permiten la comunicacin con el mundo exterior, en ellos podremos
conectar los perifricos o circuitos necesarios como por ejemplo los Mdulos LCD, motores
elctricos, etc; pero estas conexiones no se podrn realizar arbitrariamente; es decir, existen
unas reglas bsicas que debern cumplirse para que el microcontrolador no sufra daos o se
destruya. Todo el truco esta en Configurar los Puertos lo cual consiste en indicarle al
microcontrolador que bit de estos, van a ser entrada y cuales van a ser salida, adems de conocer
los limites de corriente que puede manejar el microcontrolador.
Cada lnea de E/S puede configurarse independientemente como entrada o como salida,
segn se ponga a 1 o a 0, respectivamente, el bit asociado del registro de configuracin de cada
puerto los cuales son (TRISA Y TRISB).
Se llaman PUERTO A y PUERTO B, a los registros que guardan la informacin que entra o
sale por el Puerto y ocupan las direcciones 5 y 6 del Banco 0 de la memoria de datos.
Los Registros de configuracin TRISA y TRISB ocupan las mismas direcciones que
los Puertos pero en el banco 1, en el caso de los microcontroladores PIC16C(F)84. Esto se
ilustra en la memoria de datos. Estos registros se utilizan para guardar el valor de la
configuracin.
Al reinicializarse el PIC todos los bits de los registros TRIS quedan a 1, con lo que los
bits de los Puertos quedan configurados como entradas.
En el caso del Puerto B, todos sus bits permiten conectarse con una resistencia Pull - Up
de elevado valor con el positivo de la alimentacin. Esto es programado con un registro que se
explicara mas adelante llamado OPTION, cuando se aplica un RESET se desactivan las
resistencias Pull - Up.
24
PUERTO A Y TRISA: 1 = Entrada 0 = Salida
Ejemplo:
Si TRISA = 11001, indica que el bit menos significativo y los dos ltimos del Puerto A sern
entradas y los otros dos como estn en cero sern salidas
PUERTO B Y TRIS B:
1 = Entrada 0 = Salida
Ejemplo:
Si TRISB= 11100001, indica que el bit menos significativo y los tres ltimos del Puerto B sern
entradas y los otros cuatro como estn en cero sern salidas.
2.8 FRECUENCIA DE FUNCIONAMIENTO (RELOJ):
La frecuencia de funcionamiento es aquella que establece la velocidad a la cual se
realizaran las instrucciones (fosc). La mxima frecuencia utilizable de un PIC16C(F)84 es de 10
MHz, por lo tanto le corresponde un ciclo de instruccin de 400 nsg. Esto debido a que cada
instruccin tarda en ejecutarse cuatro periodos de reloj, es decir 4 x 100 nsg = 400 nsg. Todas
las instrucciones del PIC se realizan en un ciclo de instruccin, menos las de salto, que tardan el
doble.
Los impulsos de reloj entran por el pin OSC1 / CLKIN y se dividen por cuatro
internamente, dando lugar a las seales Q1,Q2,Q3 y Q4, (fosc/4).
Durante un ciclo de instrucciones que comprende las cuatro seales antes mencionadas se
desarrollan las siguientes operaciones:
Q1: Durante este pulso se incrementa el contador de programa
Q2: Durante este impulso se busca el cdigo de la instruccin en la memoria de programa y se
carga en el registro de instrucciones.
Q3: Decodificacin de la instruccin
Q4: Ejecucin de la instruccin.
2.9 TMR0 (TEMPORIZADOR / CONTADOR):
En los Microcontroladores el temporizador "timer" consiste en un contador ascendente
que se le carga con un valor determinado y produce un desbordamiento cuando pasa por cero.
Evidentemente el tiempo transcurrido desde que se le cargo un valor, hasta que se produce el
desbordamiento, es inversamente proporcional al valor cargado debido a que el contador ira
incrementando su valor hasta llegar a cero.
Los PIC16C(F)84 disponen de un temporizador / Contador de 8 bits llamado TMR0,
que se encuentra en la posicin 01h del banco 0, el cual sirve para determinar intervalos
concretos de tiempo (temporizador) o para contar los impulsos que se producen en el exterior
del sistema (contador).
25
Cuando TMR0 funciona como contador de sucesos, este se incrementa por los impulsos
aplicados al pin RA4/TOCKI. Al llegar el valor a FFh se desborda el contador y con el siguiente
impulso pasa a 00H, advirtiendo esta circunstancia, activando un sealizador y/o provocando
una interrupcin.
Como temporizador TMR0, se incrementa con cada ciclo de instruccin (Fosc/4) hasta que se
desborda. activando un sealizador y/o provocando una interrupcin.
Debido a que TMR0, cuando actua como temporizador necesita controlar largos
intervalos de tiempo, necesita aumentar la duracin de los impulsos de reloj que les incrementa.
Para cubrir este requisito el PIC16C(F)84 dispone de un circuito denominado Divisor de
Frecuencia, que divide la frecuencia utilizada por diversos rangos.
Para programar el comportamiento del TMR0 y el Divisor de frecuencia se utilizan
algunos bits del registro OPTION. El divisor de Frecuencia puede usarse con el TMR0 actuando
como pre-divisor, es decir los impulsos pasan primero por el divisor y luego por el TMR0 una vez aumentada su duracin.
Para calcular los tiempos a controlar con TMR0 se utilizan las siguientes formulas practicas:
Temporizacin = 4 x Tosc x ( Valor en TMR0) x Rango del divisor
Valor en TMR0 = Temporizacin / 4 x Tosc x Rango del divisor.
Tosc = Tiempo del oscilador = 1 / Fosc.
-OPTION
Este registro controla TMR0 y el Divisor de frecuencia, ocupa la posicin 81h de la memoria de
datos que equivale a la direccin 01h del banco 1.
RBPO# INTEDG TOCS TOSE PSA PS2 PS1 PS0
bit7 bit0
Direccin: 81h
bit 7:.............RBPO#: Resistencias Pull-Up Puerto B
....................0 = Activadas
....................1 = Desactivadas
bit 6:.............INTEDG: Flanco activo de interrupcin externa.
....................0 = Flanco Descendente
....................1 = Flanco Ascendente
bit 5:.............TOCS: Tipo de reloj para el TMR0
....................1 = Pulsos introducidos a travs de TOCKI (contador)
....................0 = Pulsos de reloj interno Fosc/4 (temporizador)
bit 4:.............TOSE: Tipo de Flanco en TOCKI
26
....................1 = Incremento de TMR0 cada flanco descendente.
....................0 = Incremento de TMR0 cada flanco ascendente..
bit 3:............ PSA: Asignacin del divisor de frecuencias.
....................1 = El divisor de frecuencias se le asigna al WDT.
....................0 = El divisor de frecuencias se le asigna al TMR0.
bit 2 - bit 0:...PS2 - PS0: Valor con el que acta el Divisor de frecuencia.
PS2...........PS1............PS0......................Divisin del TMR0.................Divisin del WDT
..0...............0.................0..................................1:2......................................1:1
..0...............0.................1..................................1:4......................................1:2
..0...............1.................0..................................1:8......................................1:4
..0...............1.................1..................................1:16....................................1:8
..1...............0.................0..................................1:32....................................1:16
..1...............0.................1..................................1:64....................................1:32
..1...............1.................0..................................1:128..................................1:64
..1...............1.................1..................................1:256..................................1:128
2.10 MEMORIA EEPROM DE DATOS
Los PIC16C(F)84 tienen una memoria EEPROM de datos de 64 bytes (0h - 3fh), donde
se pueden almacenar datos y variables que interesa que no se pierdan cuando se desconecta la
alimentacin al sistema. Soporta 1.000.000 de ciclos de escritura / borrado y es capaz de guardar
la informacin si alterarla ms de 40 aos.
Este bloque de memoria no se encuentra mapeado en ningun banco, el acceso a esas
posiciones se consigue a travs de dos registros SFR de la RAM.
- EEADR: Contiene la direccin de la posicin de la EEPROM a ser accesada, esta ubicado en
la posicin 9 del banco 0, los dos bits de mas peso de este registro siempre valen 0.
- EEDATA: Contiene el dato de 8 bits que se va a escribir o el que se obtuvo de la ultima
lectura, esta ubicado en la posicin 8 del banco 0.
Existen adems dos registros de control EECON1 que maneja las operaciones de lectura y
escritura y posee 5 bits, este se ubica en la direccin 88h de la memoria de datos o la direccin 8
del banco 1.
27
EECON2 que aunque no es un registro fsico es necesario para realizar las operaciones de
escritura. Al leerlo todos sus bits son 0. Solo se emplea como un dispositivo de seguridad
durante el proceso de escritura de la EEPROM, para evitar las interferencias en el largo
intervalo que precisa su desarrollo.
La lectura toma un ciclo de reloj de instrucciones (1 micro segundo, con un oscilador de
4 Mhz), mientras que la escritura por ser controlada por un temporizador incorporado, tiene un
tiempo nominal de 10 msg, esto resulta muy largo para la velocidad del procesador. Debido a esto existen varios bits en el registro EECON1 para supervisar esta tarea.
Cuando se va a utilizar una operacin de escritura se hace primero la operacin de borrado.
U U U EEIF WRWRR WREN WR RD
bit7 bit0
Direccin: 88h
bit 7 - bit 5.....No implementadas. Estos bits se leen como cero.
bit 4:.............EEIF: Bandera de finalizacin de la escritura.
bit 3:............ WRWRR: Bandera de error de escritura.
....................Se coloca en uno cuando la operacin de escritura termina prematuramente,
....................debido a cualquier condicin de reset.
bit 2:... ........ WREN: Habilitacin de escritura.
....................Si se coloca en cero no permite las operaciones de escritura, en "1" habilita.
bit 1:... ........ WR: Control de escritura.
................... Al colocarse en "1" inicia un ciclo de escritura.
....................El bit es slo puesto a cero por hardware, una vez la escritura termina.
bit 0:... ........ RD: Control de Lectura.
....................Al colocarse en "1" se inicia una lectura de la EEPROM de datos, la cual toma un
ciclo de reloj de instrucciones.
2.11 INTERRUPCIONES
Son desviaciones del flujo de control del programa originadas Asincrnicamente por diversos sucesos de mayor prioridad, que no se hallan bajo la supervisin de las instrucciones.
28
Estos sucesos pueden ser externos al sistema, como la generacin de un flanco activo en un pin
del microcontrolador, o bien internos, como el desbordamiento de un contador.
El Microcontrolador ante las interrupciones detiene la ejecucin del programa en curso,
salva la direccin actual del PC en la pila y se carga al PC con una direccin, que en este caso es
una direccin reservada de la memoria de Programa llamada vector de interrupcin.
En Dicho vector se suele colocar una instruccin de salto incondicional (Goto) que
traslada el flujo de control a la zona de la memoria de Programa destinada a contener la rutina
de servicio a la interrupcin.
Una de las operaciones principales de la rutina de servicio de interrupcin, es averiguar
cual es la causa de la interrupcin en curso. Para ello se exploran los sealizadotes de las fuentes
de interrupcin que se encuentran en el registro INTCON. Adems este registro en los PIC16C(F)84 posee un bit llamado GIE (Global Interrupt Enable) que cuando vale 0 prohibe todas las interrupciones. Una vez activado la Rutina de servicio de interrupcin el bit GIE se
pone automticamente a 0 para no atender nuevas interrupciones, hasta que termine la que ha
comenzado.
Antes del retorno conviene borrar el sealizador de la causa de interrupcin, que se ha
atendido ya que aunque los sealizadores se ponen a 1 automticamente, en cuanto se produce
la causa que indican la puesta a 0 se debe hacer por software.
CAUSAS DE INTERRUPCION
Los PIC16C(F)84 tienen cuatro causas o fuentes de interrupcin
1 Activacin del pin RB0 / INT
2 Desbordamiento del Temporizador TMR0
3 Cambio de estado en uno de los pines de mas peso (RB7 - RB4) del Puerto B.
4 Finalizacin de la escritura en la EEPROM de datos.
- INTCON Es aquel que contiene la mayor parte de los sealizadores y bits de permiso de las fuentes de
interrupcin, ocupa la direccin 0bh del banco 0, duplicndose en el banco 1.
GIE EEIE TOIE INTE RBIE TOIF INTF RBIF
bit7 bit0
Direccin: 0Bh
bit 7:.............GIE: Habilitador general de interrupciones.
....................0 = Deshabilita todas las interrupciones
....................1 = Habilita las interrupciones
bit 6:.............EEIE: Habilitacin de interrupcin por escritura de la EEPROM.
....................0 = La deshabilita .1 = La habilita
29
bit 5:.............TOIE: Habilitacin de la interrupcin del temporizador TMR0.
....................0 = Deshabilita
....................1 = Habilita
bit 4:.............INTE: Habilita la interrupcin INT
....................0 = Deshabilita
....................1 = Habilita
bit 3:............ RBIE: Habilitacin de la interrupcin RBIF.
....................0 = Deshabilita.
....................1 = Habilita
bit 2:... ........ TOIF: Bandera de interrupcin por sobrepasamiento del TMR0.
....................Se coloca en 1 cuando TMR0 pasa de 0FFh a 00H, sta debe ser puesta en cero por
el programa.
bit 1:... ........ INTF: Bandera de interrupcin INT.
....................Se coloca en 1 cuando la interrupcin INT (RB0) ocurre; sta debe ser puesta en
cero por el programa.
bit 0:... ........ RBIF: Bandera de interrupcin por el cambio en el puerto RB.
....................Se coloca en 1 cuando una de las entradas RB(4:7) cambia, sta debe ser puesta en
cero por el programa.
2.12 RESET
Los PIC16C(F)84 tienen cinco causas que provocan el reset del sistema. Dicho reset consiste en
cargar al PC con la posicin del Vector de Reset y poner el estado de los bits de los registros
SFR con un valor conocido.
CAUSAS DE RESET
1 Conexin de la alimentacin POR (Power On Reset)
2 Activacin del Pin MCLR# (# significa complementado) en funcionamiento normal.
3 Activacin del pin MCLR# en estado de reposo.
4 Desbordamiento del perro Guardin en funcin normal.
5 Desbordamiento del perro Guardin en estado de reposo.
30
3. INTRODUCCIN A LA PROGRAMACIN
Antes de realizar cualquier programa para un microcontrolador hay que tener al menos
unas ligeras nociones de que estamos haciendo.
Debemos seguir una pequea serie de rutinas hasta que el programa que pretendemos
crear se transforma en un programa ejecutable en formato .hex que pueda ser cargado en el
micro.
Lo primero es dibujar el programa en una hoja en blanco trazando con lneas y cuadros de dialogo las rutinas, ordenes, tiempos, lgicas, etc. que tendr el programa.
Dibujar el programa antes de escribir ni una sola lnea de cdigo, dibujar hasta los componentes perifricos que se acoplaran al micro, trazar fsicamente las lneas de unin y las
rutinas lgicas (si/no) y los cuadros de dialogo de los perifricos y de las memorias del micro.
Depurar este paso hasta la saciedad. Todo el tiempo que utilicemos en disear correctamente el programa nos lo ahorraremos luego en tiempo de programacin, y en errores.
Bueno ya tenemos el diseo en papel de lo que queremos hacer, para seguir ahora
necesitamos una herramienta muy practica que suministra Microchip en su pagina WEB este
producto es el MPLAB que es un editor de programas que permite su ejecucin y finalmente la
confeccin del programa en fichero ejecutable en formato Intel Hex que se puede cargar en la
memoria del micro.
3.1 Cdigo Fuente:
Entremos directamente en el programa, cuando se edite el programa nos encontraremos
con comentarios, directivas y el programa propiamente dicho, todo ello en cinco columnas, estas
son:
COMENTARIOS
DIRECTIVAS
CINCO COLUMNAS:
1) Numeracin de las filas
2) Campo de etiquetas
3) Campo de instrucciones
4) Campo de datos
5) Campo de comentarios
Esquemticamente quedara as:
31
Numeracin
filas
campo etiquetas campo
instrucciones
campo datos campo
comentarios
0001 ;COMENTARIOS
0002 ;COMENTARIOS
0003 directivas-> LIST P=16F84
0004 directivas-> LIST B=25
0005 PTB_TSB EQU 0x06 ;Comentario
0006 PTA_TSA EQU 0X05 ;Comentario
Primero colocaremos los COMENTARIOS oportunos al programa, indicando todos
aquellos datos que consideremos dignos de resaltar en relacin al programa que seguir, estos
datos que no afectan al programa deben de ir presididos cada lnea por el signo punto y raya (;),
este signo le dice al programa que lo que sigue no es ejecutable y no forma parte alguna de las
instrucciones.
Luego siguen una serie de DIRECTIVAS que dan instrucciones al ensamblador, cada
ensamblador tiene sus propias directivas y se deben de tener en cuenta al programar. La
expresin tpica empieza por la expresin LIST esta expresin se considera como un Campo de
instruccin y esta en la columna 3 y sus variables estn en el Campo de datos o columna 4.
Algunas de estas directivas son:
B= tamao de los tabuladores
C= numero de caracteres por lnea
P= tipo de procesador a emplear
R= Base de numeracin
W= Mensajes de salida
Columnas:
La primera columna o de numeracin de filas no es mas que un simple listado
correlativo de la posicin que ocupa la fila en el programa,
La segunda columna o Campo de etiquetas van los nombres las variables definidas y los
nombres de los distintos subprogramas que conforman el programa definitivo. Se puede utilizar
cualquier tipo de caracteres alfanumricos y emplear el carcter de subrayado (_) ejemplo:
Bucle_1
La tercera columna o Campo de instrucciones debe de ir una instruccin del micro o
mnemnico.
La cuarta columna o Campo de datos contiene los operandos para el campo de
instrucciones, algunas instrucciones pueden no llevar datos, por ejemplo la instruccin "nop".Si
es un numero puede estar definido de diversas formas segn la base en la que se exprese, cada
tipo de base en el cual se expresa este dato tiene su correspondiente clave en el momento de la
32
escritura, tambin algunas instrucciones pueden necesitar varios datos en este caso los datos se
separan por coma (,).
La quinta columna o Campo de Comentarios, como al inicio este campo esta despus
de las instrucciones y empiezan por punto y coma. Pueden tener varias filas aunque siempre en
cada fila deben empezar por punto y coma y es aconsejable que aunque no hay nada delante de
la columna este campo este en la columna correspondiente a los comentarios.
Ejemplo de todo lo anterior en un programa.
Campo
numeracin Campo etiqueta
Campo
instruccin
Campo
datos Campo comentarios
0001 ;--------------------
0002 ;ejemplo
0003 ;xtal 4Mhz WDT- NO
0004 ;-------------------
0005
0006 LIST P=16F84 ;micro 16F84
0007 LIST C=132 ;listado 132
0008 ;--------------------- Separacin para clarificar
0009 PRTB_TSB EQU 0x06 ;direccin Pta B y TrisB
0010 ESTADO EQU 0x03 ;direccin Estado
0011 ;Direcciones de inicio y retorno
0012 ORG 0x00 ;Vector Reset
0013 GOTO Inicio ;Comienzo programa
0014 ORG 0x05 ;Posicin despus del
0015 ;vector de interrupcin
0016 Inicio BSF ESTADO,5 ;Ir al Banco 1
0017
etc. etc.
Los comentarios en los programas son muy importantes dado que ayudan al
programador a seguir los pasos que ha dado en su programa, aclara el sentido de las
instrucciones y con el tiempo facilita la posibilidad de correcciones y modificaciones que
mejoren el programa.
3.2 Normas
En este tipo de programas para que puedan ser entendido por cualquiera deben de existir
una serie de normas que se deben respetar, tanto en el nombre de los archivos que se crean
como en la forma de escribir el programa y de verlo fsicamente en el papel.
Se deben de respetar las columnas
Las instrucciones o mnemnicos se deben de escribir en maysculas.
33
Cuando trabajemos con datos que son iguales en cualquiera de los dos bancos (0 o 1)
ejemplo la Puerta A y la Trisa A en el caso de que hiciramos la siguiente pauta de programa:
0012 PORTA EQU 0x06 ;Direccin puerta B
0013 TRISA EQU 0x06 ;Direccin TRISA
0014 STATUS EQU 0X03 ;Direccin registro Estado
cuando quisiramos traducir esto en un programa ejecutable nos dara error por duplicacin de posiciones de memoria, para ello la solucin seria:
0012 PTA_TRSA EQU 0x06 ;Direccin PuertaA y TrisaA
as no se produce error y cuando se utilice la PuertaA o la TrisA se utilizara el mismo
registro.
Utilizar prrafos de comentarios con sus correspondientes punto y coma con todo tipo
de explicaciones ejemplo:
;--------------------
;explicacin general de cualquier
;cosa que queramos explicar
;referente a la prxima tanda de
;instrucciones, adems de las
;comentarios por lnea
;--------------------
Cuando tengamos que poner nombre a etiquetas utilizar nombres que sean reales y
referidos al programa usando el subrayado para aclarar textos, es mas fcil de leer Bucle_1 que
Bucle1, o mas fcil Ra_es_0 que Raes0.
34
4. PROGRAMACIN DE LOS CONTROLADORES PIC
4.1 Introduccin
Nos centraremos directamente en la programacin de los controladores que nos ocupan,
los PIC.
A continuacin podemos observar un organigrama con las distintas fases de
implementacin, en las que, tras una fase de estudio del problema, se ha elegido ya el mejor
controlador, as como decidido el sistema de conexin de patillas de E/S correcto.
INICIO
Se har en formato de texto DOS o ASCII con cualquier editor, como, por ejemplo, el EDIT. Tambin es posible usar
el entorno WIN95-98 respetando este formato de grabacin.
Nosotros emplearemos el MPLAB como editor.
Para el lenguaje ensamblador emplearemos el MPASM,
habiendo tambin herramientas para trabajar en C. Nosotros
lo elegiremos por defecto como ensamblador en el MPLAB.
La herramienta de simulacin en DOS es MPSIM, pero
el entorno grfico MPLAB tiene su propio sistema, que
utilizaremos.
ERRORES?
Cada grabador tiene su software especfico, y es posible encontrar mltiples circuitos y programas en Internet.
Microchip vende sus propios equipos, as como micros
programados de fbrica.
FIN
Las herramientas MPLAB, MPASM y MPSIM se pueden encontrar y bajar
gratuitamente de internet en la direccin www.microchip.com.
ESCRITURA
DEL CDIGO
FUENTE
ENSAMBLADO
SIMULACIN
GRABACIN DEL
CONTROLADOR
35
4.2.- PRIMEROS PASOS CON EL MPLAB
Este entorno, que a continuacin pasaremos a describir, funciona tipo Container, es decir, sus
distintas opciones son asociadas a programas, que sern ejecutados cuando se las pulse. De este
modo bastar con definirle un ensamblador, un emulador o un grabador distinto a los que lleva
por defecto para incorporarlo inmediatamente al entorno.
Para ayudarnos emplearemos el sencillo programa inte.asm, el cual, simplemente, nos
permite encender un led intermitentemente, situndolo en el pin RB0 del PORTB.
El modo de abrir una ventana con un archivo con extensin .asm (ensamblador) ya
existente es, a travs del men FILE, seguido de OPEN, o con el icono tpico, que encabeza
este prrafo (en amarillo, no en verde).
36
4.3 El entorno de trabajo MPLAB
4.3.1 El ensamblador
El ensamblador que utiliza por defecto el MPLAB es el MPASM, que conserva de sus
tiempos bajo MS-DOS.
Es importante definir que tipo de microcontrolador vamos a utilizar, puesto que con ello
definimos el procesador a utilizar durante todos los procesos (ensamblado, emulacin,
grabacin). En nuestro caso utilizaremos el PIC16F84.
La directiva ORG, seguida de una posicin de memoria, indica al ensamblador dnde
debe situar en la misma el siguiente fragmento de cdigo, siendo tambin recomendable
incluirla en todo programa, como mnimo, antes de la primera instruccin. Los casos de
direcciones especiales sern tambin descritos ms adelante en el presente texto.
La directiva END es imprescindible e indica al ensamblador el final del programa.
El ; es empleado a modo de comando REM, es decir, se sobreentiende que lo que le sigue
es un comentario.
El ensamblador exige una cierta tabulacin mnima de sus distintos elementos. De este
modo la definicin de variables podr escribirse en la 1 columna de cualquier lnea, mientras
que las directivas e instrucciones debern ir en la 2 columna, como mnimo. Las tabulaciones
caractersticas son las empleadas por nosotros, ya que, aunque no son imprescindibles, clarifican
la lectura del programa.
El uso de las maysculas y minsculas en este cdigo obedece a una serie de reglas o
normas de estilo, comunes entre los programadores en ensamblador, que, aunque no son
obligatorias, facilitan la lectura del cdigo fuente. Un resumen de las reglas empleadas es el
siguiente:
- Directivas del compilador en maysculas.
- Nombres de variables en minsculas
- Nemnicos (instrucciones) en maysculas
- Programa bien tabulado.
37
4.3.2 Creando un nuevo proyecto
En MPLAB es posible abrir un fichero en ensamblador (*.asm) y ensamblarlo para poder
obtener el fichero de entrada de un grabador (*.hex), pero tambin es posible el uso de
proyectos que utilicen varios *.asm, permitiendo as reutilizar cdigo con mayor facilidad, al ser
este ms modular.
Es, pues, muy conveniente saber crear un proyecto, el cul se abrir gracias al men
Proyect, mediante su opcin Open Proyect..., muy similar a Open File.
Tambin ser posible buscar el icono adecuado cambiando la barra de iconos, para
lo cul emplearemos el que antecede estas lneas.
Existen 4 barras, Edit, Debug, Proj y User, cuyo nombre aparece en el registro ms a la
izquierda de la barra de informacin (en la parte inferior de la ventana). Tanto en User como en
Proj existen iconos capaces tambin de abrir un proyecto (una carpeta verde).
Comprobar en esta barra (Proj) a qu opcin corresponde cada icono situndose sobre l
y mirando seguidamente la barra de informacin (parte inferior de la ventana).
Esta barra (User) es una seleccin de iconos de las otras tres.
Escoger la opcin Projet/ New Proyect... y aignarle el nombre inte.pjt. Llegaremos
entonces a una ventana como la que se muestra en la pgina siguiente:
38
Seleccionar inte [.hex] en el frame Proyect Files y se le facilitar la opcin Node
Properties. Seleccionar tambin dicha opcin. Obtenemos entonces esta nueva ventana:
El botn Change sirve para cambiar el tipo de microcontrolador y otras
opciones de configuracin, en nuestro
caso marcar MPLAB-SIM y el
microcontrolador PIC16F84
39
Seleccionar el Hex Format deseado (de momento INHX8M), es decir, el tipo de fichero
en el que el ensamblador deber convertir los *.asm. Todos los formatos suelen ser aceptados
por los grabadores, a quienes van destinados. Ya podemos darle a OK.
El proyecto sigue estando vaco, y habr que crear nuestro programa (inte.asm) para que
pueda ensamblarse y probarse. Esto slo ser posible si proyecto y programa estn en la misma
carpeta. Si el archivo *.asm ya existe porque lo hemos creado, bien con este programa o con
otro, seleccionaremos la opcin Add Node del frame Project Files, seleccionando despus el
archivo *.asm que queremos abrir.
En este caso vamos a crear uno nuevo llamado inte.asm, para ello seleccionamos la
opcin File/ New y vemos que aparece una ventana vacia esperando para escribir nuestro
programa en ensamblador. Copiamos dentro de esta ventana el programa siguiente:
40
Ahora tenemos que guardar este programa con el nombre inte.asm para lo cual
seleccionamos File/ Save as, e indicamos el directorio (recordar que debe ser el mismo que el del proyecto).
A continuacin debemos abrirlo para que forme parte de nuestro proyecto inte.Pjt.
Recordamos: Projet/ Edit Projet., y aparece:
Pulsamos Add Node, y ya podemos seleccionar el archivo inte.asm.
41
Par terminar este apartado, guardamos el proyecto: Projet/ Save Projet..
4.3.3 Ensamblando
El proceso de ensamblado es muy sencillo. Bastar con, sobre el men Proyect,
pulsar la opcin Build Node, que ensamblara slo la ventana activa, o la opcin Build All, que
ensamblara todos los nodos del proyecto. Por ltimo la opcin Make Project ensamblara
todos los nodos de un proyecto y los unificara en un nico *.hex. Los pulsadores dibujados en
este prrafo, de la barra Proj, contienen todas estas opciones.
Y el resultado es una ventana como esta, con mensajes, errores y warnings.
Corrigiendo los errores que marque el ensamblador, el programa ser sintcticamente
correcto. Un nmero situado tras el nombre del programa indica la lnea exacta a que est
asociado el mensaje. Este botn de la barra Edit numerar las lneas automticamente si su
listado es largo.
42
4.3.4 Simulacin bajo windows
Una vez corregidos todos los errores el programa ya est listo para ser grabado en el
PIC y probado sobre el terreno, pero resulta ms prctico (normalmente), y ms fiable, si
antes se lleva a cabo una simulacin por software. MPLAB tiene una herramienta de
simulacin software, el MPLAB-SIM (mire la barra y el men Debug).
Notars algo de incomodidad debida a la escasa automatizacin de algunas tareas: por
ejemplo, la simulacin comienza mediante la opcin Run (semforo verde), y se detiene con
Halt (semforo rojo), pero no comenzar a correr si no hace un Reset mediante la pulsacin
de:
Este icono es Step, ejecucin paso a paso, y avanzar una lnea de programa cada
vez que se pulse.
Este icono es Change Program Counter, y es utilizado para cambiar el contador de
programa (salto a otra lnea de memoria de programa en ejecucin, para, por ejemplo, probar
slo una rutina especfica si el resto ya lo sabemos correcto).
Este icono Create a New Watch Window permite editar variables para ver su valor
durante la ejecucin.
Este comando permite cambiar el valor de direcciones de memoria en tiempo de
simulacin y en cualquiera de sus reas (datos, programa, E2PROM, pila) directamente (por
su nmero) o a travs de su nombre (mnemotcnico definido en el ensamblador, como lo es
en el ejemplo OPERANDO1). Es muy til, combinada con las dos anteriores, para probar
fcilmente todas las variantes de una rutina o zona de cdigo determinada sin tener que
ejecutar para cada una de nuevo todo el cdigo.
43
Con este comando se pueden definir puntos de parada (Breaks) en la ejecucin para,
mediante Run, no necesitar recorrer lnea a lnea todo el programa si deseamos ejecutar todo
un proceso de golpe hasta esa lnea.
Define condiciones de parada (Conditional Breaks), es decir, valores de variables o
pines (E/S) ante las que parar si se producen.
Vamos a simular el funcionamiento de nuestro proyecto (inte.Pjt):
1. Pulsamos sobre el icono y aparecer:
2. Pulsamos el botn para resetear.
3. Seleccionamos del men principal Debug/ Run/ Animate, o pulsamos Control + F9.
Ya podemos observar como el PORTB cambia cclicamente de 00 a 01. Esto indica
que la salida RB0 de PORTB est intermitente. Podemos tambin simular paso a paso.
4. Parar la simulacin mediante el botn
Para simular un pulsador externo lo haremos mediante Debug/ Simulator stimulus/
Asynchronus Stimulus:
Seleccionamos PORTB Y Add.
Close para cerrar esta ventana
44
Si pulsamos con el botn derecho del ratn sobre un botn y elegimos assign Pin
4.3.5 Otras opciones del MPLAB
Es interesante tambin comprobar qu opciones contiene el men Options. Por
ejemplo, con su comando Development mode..., en el que es posible elegir el tipo de
microprocesador sobre el que simular y activar el modo de simulacin (MPLAB-SIM
simulator), no siempre activo por defecto. Si hemos tenido problemas con la simulacin en
el apartado anterior, seguramente no estar activa an esta opcin.
Con Default Editor Modes y sus Current Editor Modes podr cambiar las
condiciones generales del editor (por ejemplo, cambiar de ensamblador a C, si tenemos el C),
incluso diferenciando cul se debe emplear en cada nodo del proyecto.
Con el submen Processor Setup podremos cambiar cosas como la velocidad del
reloj (para controlar el tiempo de ejecucin) o la activacin del WatchDog.
A travs del men Window, podemos ver la memoria de programa (submen
Program Memory) y la de la EEPROM (si se desea y se va a utilizar; submen EEPROM
Memory).
Podemos seleccionar la entrada
sobre la que actuar nuestro
pulsador.
45
5. PROGRAMACIN CON EL ICPROG
Para programar el PIC16F84 mediante el programador TE20 podemos
utilzar el ICPROG. Este nos permitir transferir el programa que hemos creado en formato .HEX al microcontrolador, desde el ordenador.
5.1 Configuracin del ICPROG para obtener el mejor rendimiento.
Settings - Options
Ajustes - Tipo Hardware
MUY IMPORTANTE: Deberemos indicar correctamente el puerto COM al que vamos a conectar el cable. Ten en cuenta que si indicamos COM1 en ICPROG y conectamos el cable al COM2 no funcionar. En algunos ordenadores con mdem interno, puede darse el caso que est ocupando el COM1, y los puertos del ordenador sean el COM2 y el COM3.
En caso de errores en la grabacin, se puede ir probando, bajando el valor de Retardo I/O. Aconsejamos entre 4 - 7.
46
Ajustes - Opciones
47
5.2 Pasos a seguir para la programacin
Vamos a simplificar al mximo los pasos necesarios.
Necesitas tener una circuito impreso, junto con sus correspondientes circuitos integrados, un programador como el TE20 Y el programa ICPROG.
Conectamos el cable serie, por un lado al programador y por el otro a un puerto COM libre del ordenador.
Ahora ejecutamos el programa ICPROG que ya deberemos tener bien configurado.
Indicamos que vamos a grabar el primero de los dos chips, el PIC16F84, con los siguientes pasos:
Ajustes - Dispositivo - Microchip Pic - Mas - PIC16F84
48
Ahora cargaremos el archivo que se va a grabar en el PIC, estos son los pasos:
Archivo - Abrir Datos - *.hex, (de los dos archivos hay que abrir el que tiene extensin .HEX puesto que el .BIN es para grabar el otro chip).
Una vez abierto, deberemos colocar las opciones Oscilador en XT y desactivar las opciones Bits configuracin.
49
Ahora pasamos a programarlo:
Comando - Programar todo.
Empezara a grabarse el PIC, esperamos unos segundos y ya est.
Desconectamos el programador, sacamos el chip y los ponemos en el circuito donde deber realizar su funcin.
5.3 Solucin de Problemas
Si usando el programador no lee, no programa o genera errores de verificacin (error de verificacin en 0000H), se puede solucionar el problema en la mayora de las ocasiones revisando los siguientes puntos:
El programador debe utilizarse desde un ordenador con Windows ME - 98 - 95. La familia Windows 2000 no soporta ICPROG.
Probar con un slo elemento a programar o leer, en el zcalo correspondiente, es decir un PIC una EEPROM.
Probar con un slo elemento a programar o leer, en el zcalo correspondiente, es decir un PIC una EEPROM.
Comprobar que la PIC o la EEPROM son los correctos, y han sido insertados con su muesca coincidiendo con la muesca del zcalo de programacin, y que a su vez coincide con el PIN 1 en la serigrafa de la placa, marcado con un 1.
Comprobar que la PIC o la EEPROM se encuentra completamente insertado en su zcalo.
Comprobar que ha sido seleccionado en el men el elemento que est programando en ese momento, es decir si se procede a programar un PIC16F876, el elemento seleccionado deber ser el PIC16F876. En los anteriores pasos hemos indicado como seleccionarlo.
Comprobar que el men Ajustes/Tipo Hardware (F3) se encuentra bien configurado.
50
La PIC y la EEPROM necesitan ser programados despacio, si su puerto est configurado a mucha velocidad esto puede originar fallos en la programacin y verificacin del mismo. Para reducir la velocidad de su puerto siga la siguiente secuencia de comandos con el ratn:
Mi PC - Panel de control - Sistema - Administrador de dispositivos - Puertos COM y LPT - Puertos de comunicacin COM1 COM2 - Configuracin del puerto.
El puerto debe estar configurado de la siguiente manera:
Bits por segundo: 9600 ( menos en caso de errores) Bits de datos: 8 Paridad: Ninguna Bits de paridad: 1 Control de flujo: Xon/Xoff
Al programar la PIC o la EEPROM, comprobar que el programa cargado y que se pretende programar en el integrado, tiene la extensin correcta, siendo generalmente *.HEX o *.BIN. Comprobar que el programa a programar en la PIC es el correcto y es el correspondiente al mismo, si intenta programar un programa de mayor tamao a la capacidad del PIC, se producir un mensaje de error.
Probar a utilizar en otro ordenador, ya que los programadores que se alimentan del puerto serie, son muy sensibles a la tensin que reciben desde el mismo y no todos los ordenadores son capaces de mantener la misma tensin durante el proceso de grabacin.
Recommended