Sunteți pe pagina 1din 46

Manual de Microcontrolador 16F873

Universidad de Guanajuato
FIMEE
Barron Zambrano Jose Hugo
Dr. Gustavo Cerda Villafana










Indice general




Indice de cuadros III

Indice de guras IV

1. Introduccion 1
1.1. Controlador y microcontrolador . . . . . . . . . . . . . . . . . 1
1.2. Diferencia entre microprocesador y microcontrolador . . . . . 2
1.3. Aplicaciones de los microcontroladores . . . . . . . . . . . . . 4
1.4. El mercado de los microcontroladores . . . . . . . . . . . . . . 4
1.5. Que microcontrolador emplear? . . . . . . . . . . . . . . . . . 5
1.6. Recursos comunes a todos los microcontroladores . . . . . . . 8
1.6.1. Arquitectura basica . . . . . . . . . . . . . . . . . . . . 8
1.6.2. El procesador o CPU . . . . . . . . . . . . . . . . . . . 9
1.6.3. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.4. Puertas de Entrada y Salida . . . . . . . . . . . . . . . 12
1.6.5. Reloj principal . . . . . . . . . . . . . . . . . . . . . . 12
1.7. Recursos especiales . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.1. Temporizadores o Timers . . . . . . . . . . . . . . . . . 13
1.7.2. Perro guardian o Watchdog . . . . . . . . . . . . . . . 14
1.7.3. Proteccion ante fallo de alimentacion o Brownout . . . 14
1.7.4. Estado de reposo o de bajo consumo . . . . . . . . . . 14
1.7.5. Conversor A/D (CAD) . . . . . . . . . . . . . . . . . . 14
1.7.6. Conversor D/A (CDA) . . . . . . . . . . . . . . . . . . 15
1.7.7. Comparador analogico . . . . . . . . . . . . . . . . . . 15
1.7.8. Modulador de anchura de pulso o PWM . . . . . . . . 15
1.7.9. Puertos de E/S digitales . . . . . . . . . . . . . . . . . 15
1.7.10. Puertos de comunicacion . . . . . . . . . . . . . . . . . 16
1.8. Herramientas para el desarrollo de aplicaciones . . . . . . . . . 16

I

INDICE GENERAL I I


1.8.1. Desarrollo del software (Ensamblador) . . . . . . . . . 16

2. Introduccion al PI C16F873 19
2.1. Descripcion del PIC16F873 . . . . . . . . . . . . . . . . . . . . 19
2.2. Encapsulado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3. Organizacion de memoria . . . . . . . . . . . . . . . . . . . . . 21
2.3.1. Memoria de Datos (RAM) . . . . . . . . . . . . . . . . 21
2.4. Puertos de Entrada/Salida . . . . . . . . . . . . . . . . . . . . 23
2.4.1. PUERTO A y el Registro TRI SA . . . . . . . . . . . . 23
2.4.2. PUERTO B y el Registro TRI SB . . . . . . . . . . . . 23
2.4.3. PUERTO C y el Registro TRI SC . . . . . . . . . . . . 23
2.5. Ejemplo de conguracion para E/S . . . . . . . . . . . . . . . 24

3. Algoritmos implementados 26
3.1. Control de velocidad . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1. Driver L293D . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.2. Programa para control de velocidad . . . . . . . . . . . 30
3.1.3. Diagrama de implementacion . . . . . . . . . . . . . . 32
3.2. Medidor de distancia con un sensor infrarrojo . . . . . . . . . 33
3.2.1. Convertidor Analogico-Digital . . . . . . . . . . . . . . 33
3.2.2. Sensor infrarrojo GP2D12. . . . . . . . . . . . . . . . . 37
3.2.3. Programa para la medicion de distancia . . . . . . . . 39
3.3. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . 41



















Universidad de Guanajuato FI MEE










Indice de cuadros




2.1. Caractersticas del PIC16F873 . . . . . . . . . . . . . . . . . 19
2.2. Descripcion de pines del 16F873 . . . . . . . . . . . . . . . . . 25

3.1. Descripcion de funcionamiento del L293D . . . . . . . . . . . . 29
3.2. Maximas frecuencias de operacion . . . . . . . . . . . . . . . . 37





























I I I










Indice de guras




1.1. Estructura de un sistema abierto basado en un microprocesador. 3
1.2. El microcontrolador es un sistema cerrado. . . . . . . . . . . . 4

2.1. Encapsulado del PIC16F873. . . . . . . . . . . . . . . . . . . . 20
2.2. Mapa de los bancos del PIC16F873. . . . . . . . . . . . . . . . 22

3.1. Modulacion por ancho de pulso (PWM). . . . . . . . . . . . . 27
3.2. Dirver L293D bloques. . . . . . . . . . . . . . . . . . . . . . . 28
3.3. Dirver L293D encapsulado . . . . . . . . . . . . . . . . . . . . 28
3.4. Conexion del L293D. . . . . . . . . . . . . . . . . . . . . . . . 29
3.5. Diagrama de conexion. . . . . . . . . . . . . . . . . . . . . . . 33
3.6. Registro de control ADCON0. . . . . . . . . . . . . . . . . . . 34
3.7. Registro de control ADCON1. . . . . . . . . . . . . . . . . . . 35
3.8. Operacion de justicacion. . . . . . . . . . . . . . . . . . . . . 37
3.9. Sensor infrarrojo GP2D12. . . . . . . . . . . . . . . . . . . . . 38
3.10. Curva de respuesta del sensor GP2D12. . . . . . . . . . . . . . 38
3.11. Diagrama de la implementacion para medicion de distancia. . 41















I V











Captulo 1

Introduccion



Los microcontroladores estan conquistando el mundo. Estan 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 las com-
putadoras, en los telefonos, en los hornos de microondas y los televisores de
nuestro hogar. Pero la invasion acaba de comenzar y el nacimiento del siglo
XXI sera testigo de la conquista masiva de estas diminutas computadoras,
que gobernaran la mayor parte de los aparatos que fabricaremos y usemos
los humanos.



1.1. Controlador y microcontrolador

Recibe el nombre de controlador el dispositivo que se emplea para el go-
bierno 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 prejados, genera las
senales adecuadas que accionan los actuadores que intentan llevar el valor de
la temperatura dentro del rango estipulado.

Aunque el concepto de controlador ha permanecido invariable a traves
del tiempo, su implementacion fsica ha variado frecuentemente. Hace tres
decadas, los controladores se construan exclusivamente con componentes de
logica discreta, posteriormente se emplearon los microprocesadores, que se
rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso.


1



1.2. Diferencia entre microprocesador y microcontrolador 2


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 una sencilla pero completa computadora contenida en el corazon (chip)
de un circuito integrado.

Un microcontrolador es un circuito integrado de alta escala de integracion
que incorpora la mayor parte de los elementos que conguran un controlador.

Un microcontrolador dispone normalmente de los siguientes componentes:
Procesador o CPU (Unidad Central de Procesamiento). Memoria RAM para
contener los datos. Memoria para el programa tipo ROM/PROM/EPROM.
Lneas de E/S para comunicarse con el exterior. Diversos modulos para el
control de perifericos (temporizadores, Puertos Serie y Paralelo, CAD: Con-
versores Analogico/Digital, CDA: Conversores Digital/Analogico, etc.). Gen-
erador de pulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Los productos que para su regulacion incorporan un microcontrolador
disponen de las siguientes ventajas: Aumento de prestaciones, un mayor con-
trol sobre un determinado elemento representa una mejora considerable en
el mismo. Aumento de la abilidad al reemplazar el microcontrolador por
un elevado numero de elementos disminuye el riesgo de averas y se precisan
menos ajustes. Reduccion del tamano en el producto acabado. La integracion
del microcontrolador en un chip disminuye el volumen, la mano de obra y los
stocks. Mayor exibilidad: las caractersticas de control estan programadas
por lo que su modicacion solo necesita cambios en el programa de instruc-
ciones.

Debido a su reducido tamano 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).

1.2. Diferencia entre microprocesador y mi-
crocontrolador

El microprocesador es un circuito integrado que contiene la Unidad Cen-
tral de Proceso (CPU), tambien llamada procesador, de una computadora. La


Universidad de Guanajuato FI MEE


1.2. Diferencia entre microprocesador y microcontrolador 3


UCP esta formada por la Unidad de Control, que interpreta las instrucciones,
y el Camino de Datos, que las ejecuta. Las patitas de un microprocesador
sacan al exterior las lneas de sus buses de direcciones, datos y control, para
permitir conectarle con la Memoria y los Modulos de E/S y congurar una
computadora implementada por varios circuitos integrados. Se dice que un
microprocesador es un sistema abierto porque su conguracion es variable de
acuerdo con la aplicacion 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 congure a la
medida de la aplicacion. Si solo se dispusiese de un modelo de microproce-
sador, este debera tener muy potenciados todos sus recursos para poder-
se adaptar a las exigencias de las diferentes aplicaciones. Esta potenciacion
supondra en muchos casos un despilfarro.

El microcontrolador, por otro lado, es un sistema cerrado. Todas las partes
del microcontrolador estan contenidas en su interior y solo salen al exterior
las lneas que gobiernan los perifericos.

En la practica cada fabricante de microcontroladores oferta un eleva-
do numero de modelos diferentes, desde los mas sencillos hasta los mas
poderosos. Es posible seleccionar la capacidad de las memorias, el numero 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 diseno
es la seleccion del microcontrolador a utilizar.


Universidad de Guanajuato FI MEE




1.3. Aplicaciones de los microcontroladores 4














Figura 1.2: El microcontrolador es un sistema cerrado.

1.3. Aplicaciones de los microcontroladores

Cada vez existen mas productos que incorporan un microcontrolador con
el n de aumentar sustancialmente sus prestaciones, reducir su tamano y
costo, mejorar su abilidad y disminuir el consumo. Algunos fabricantes de
microcontroladores superan el millon de unidades de un modelo determina-
do producidas en una semana. Este dato puede dar una idea de la masiva
utilizacion de estos componentes.

Los microcontroladores estan siendo empleados en multitud de sistemas
presentes en nuestra vida diaria, como pueden ser juguetes, horno microon-
das, frigorcos, televisores, computadoras, impresoras, modems, el sistema
de arranque de nuestro coche, etc. Y otras aplicaciones con las que segu-
ramente no estaremos tan familiarizados como instrumentacion electronica,
control de sistemas en una nave espacial, etc. Una aplicacion tpica podra
emplear varios microcontroladores para controlar pequenas partes del sis-
tema. Estos pequenos controladores podran comunicarse entre ellos y con
un procesador central, probablemente mas potente, para compartir la infor-
macion y coordinar sus acciones, como, de hecho, ocurre ya habitualmente
en cualquier PC.

1.4. El mercado de los microcontroladores

Aunque en el mercado de la microinformatica la mayor atencion la aca-
paran los desarrollos de los microprocesadores, lo cierto es que se venden

Universidad de Guanajuato FI MEE


1.5. Que microcontrolador emplear? 5


cientos de microcontroladores por cada uno de aquellos. Existe una gran di-
versidad de microcontroladores. Quiza la clasicacion mas importante sea
entre microcontroladores de 4, 8, 16 o 32 bits. Aunque las prestaciones de
los microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la
realidad es que los microcontroladores de 8 bits dominan el mercado y los
de 4 bits se resisten a desaparecer. La razon de esta tendencia es que los
microcontroladores de 4 y 8 bits son apropiados para la gran mayora de
las aplicaciones, lo que hace absurdo emplear micros mas potentes y conse-
cuentemente mas caros.

Uno de los sectores que mas tira del mercado del microcontrolador es el
mercado automovilstico. De hecho, algunas de las familias de microcontro-
ladores actuales se desarrollaron pensando en este sector, siendo modicadas
posteriormente para adaptarse a sistemas mas genericos. El mercado del au-
tomovil es ademas uno de los mas exigentes: los componentes electronicos
deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc.
y seguir siendo ables. El fallo de cualquier componente en un automovil
puede ser el origen de un accidente.

En cuanto a las tecnicas de fabricacion, cabe decir que practicamente
la totalidad de los microcontroladores actuales se fabrican con tecnologa
CMOS (Complementary Metal Oxide Semiconductor). Esta tecnologa su-
pera las tecnicas anteriores por su bajo consumo y alta inmunidad al ruido.
La distribucion de las ventas segun su aplicacion es la siguiente: Una ter-
cera parte se absorbe en las aplicaciones relacionadas con las computadoras
y sus perifericos. La cuarta parte se utiliza en las aplicaciones de consumo
(electrodomesticos, juegos, TV, vdeo, etc.). Tambien los modernos micro-
controladores de 32 bits van aanzando sus posiciones en el mercado, siendo
las areas de mas interes el procesamiento de imagenes, las comunicaciones, las
aplicaciones militares, los procesos industriales y el control de los dispositivos
de almacenamiento masivo de datos.

1.5. Que microcontrolador emplear?

A la hora de escoger el microcontrolador a emplear en un diseno concre-
to hay que tener en cuenta multitud de factores, como la documentacion y
herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes

Universidad de Guanajuato FI MEE





1.5. Que microcontrolador emplear? 6


que lo producen y por supuesto las caractersticas del microcontrolador (tipo
de memoria de programa, numero de temporizadores, interrupciones, etc.).
Los costos, como es logico, los fabricantes de microcontroladores compiten
duramente para vender sus productos. Y no les va demasiado mal ya que
sin hacer demasiado ruido venden 10 veces mas microcontroladores que mi-
croprocesadores. Para que nos hagamos una idea, para el fabricante que usa
el microcontrolador en su producto una diferencia de precio en el micro-
controlador es importante (el consumidor debera pagar ademas el costo del
empaquetado, el de los otros componentes, el diseno del hardware y el desar-
rollo del software).

Si el fabricante desea reducir costos debe tener en cuenta las herramien-
tas de apoyo con que va a contar: emuladores, simuladores, ensambladores,
compiladores, etc. Es habitual que muchos de ellos siempre se apuesten por
microcontroladores pertenecientes a una unica familia.

Antes de seleccionar un microcontrolador es imprescindible analizar los
requisitos de la aplicacion.


Procesamiento de datos; Puede ser necesario que el microcontrolador rea-
lice calculos crticos en un tiempo limitado. En ese caso debemos ase-
gurarnos de seleccionar un dispositivo sucientemente rapido para ello.
Por otro lado, habra que tener en cuenta la precision de los datos a
manejar: si no es suciente con un microcontrolador de 8 bits, puede
ser necesario acudir a microcontroladores de 16 o 32 bits, o incluso a
hardware de punto otante. Una alternativa mas barata y quiza su-
ciente es usar libreras para manejar los datos de alta precision.
Entrada Salida: para determinar las necesidades de Entrada/Salida del sis-
tema es conveniente dibujar un diagrama de bloques del mismo, de tal
forma que sea sencillo identicar la cantidad y tipo de senales a contro-
lar. Una vez realizado este analisis puede ser necesario anadir perifericos
hardware externos o cambiar a otro microcontrolador mas adecuado a
ese sistema.
Consumo: algunos productos que incorporan microcontroladores estan ali-
mentados con bateras y su funcionamiento puede ser tan vital como
activar una alarma antirrobo. Lo mas conveniente en un caso como

Universidad de Guanajuato FI MEE








1.5. Que microcontrolador emplear? 7


este puede ser que el microcontrolador este en estado de bajo consumo
pero que despierte ante la activacion de una senal (una interrupcion) y
ejecute el programa adecuado para procesarla.

Memoria: para detectar las necesidades de memoria de nuestra aplicacion
debemos separarla en memoria volatil (RAM), memoria no volatil (ROM,
EPROM, etc.) y memoria no volatil modicable (EEPROM). Este ulti-
mo tipo de memoria puede ser util para incluir informacion especca de
la aplicacion como un numero de serie o parametros de calibracion. El
tipo de memoria a emplear vendra determinado por el volumen de ven-
tas previsto del producto: de menor a mayor volumen sera conveniente
emplear EPROM, OTP (One Time Pro- grammable) y ROM. En cuan-
to a la cantidad de memoria necesaria puede ser imprescindible realizar
una version preliminar, aunque sea en pseudo-codigo, de la aplicacion
y a partir de ella hacer una estimacion de cuanta memoria volatil y no
volatil es necesaria y si es conveniente disponer de memoria no volatil
modicable.

Ancho de palabra: el criterio de diseno debe ser seleccionar el microcon-
trolador de menor ancho de palabra que satisfaga los requerimientos
de la aplicacion. Usar un microcontrolador de 4 bits supondra una re-
duccion en los costos importante, mientras que uno de 8 bits puede ser
el mas adecuado si el ancho de los datos es de un byte. Los microcon-
troladores de 16 y 32 bits, debido a su elevado costo, deben reservarse
para aplicaciones que requieran sus altas prestaciones (Entrada/Salida
potente o espacio de direccionamiento muy elevado).

Diseno de la placa: la seleccion de un microcontrolador concreto condi-
cionara el diseno de la placa de circuitos. Debe tenerse en cuenta que
quiza usar un microcontrolador barato encarezca el resto de compo-
nentes del diseno. Los microcontroladores mas populares se encuentran,
sin duda, entre las mejores elecciones: 8048 (Intel). Es el padre de los
microcontroladores actuales, el primero de todos. Su precio, disponibili-
dad y herramientas de desarrollo hacen que todava sea muy popular.
8051 (Intel y otros). Es sin duda el microcontrolador mas popular. Facil
de programar, pero potente. Esta bien documentado y posee cientos de
variantes e incontables herramientas de desarrollo. 80186, 80188 y 80386
EX (Intel). Versiones en microcontrolador de los populares microproce-
sadores 8086 y 8088. Su principal ventaja es que permiten aprovechar

Universidad de Guanajuato FI MEE


1.6. Recursos comunes a todos los microcontroladores 8


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 perifericos. Son microcontroladores
de altsimas prestaciones.

PI C (MicroChip) familia de microcontroladores que gana popularidad
da a da. Fueron los primeros microcontroladores RISC. Es preciso
resaltar en este punto que existen innumerables familias de microcon-
troladores, cada una de las cuales posee un gran numero de variantes.

1.6. Recursos comunes a todos los microcon-
troladores

Al estar todos los microcontroladores integrados en un chip, su estructura
fundamental y sus caractersticas basicas son muy parecidas. Todos deben
disponer de los bloques esenciales: Procesador, memoria de datos y de in-
strucciones, lneas de E/S, oscilador de reloj y modulos controladores de
perifericos. Sin embargo, cada fabricante intenta enfatizar los recursos mas
idoneos para las aplicaciones a las que se destinan preferentemente.

En esta parte se hace un recorrido de todos los recursos que se hallan en
todos los microcontroladores describiendo las diversas alternativas y opciones
que pueden encontrarse segun el modelo seleccionado.

1.6.1. Arquitectura basica
Aunque inicialmente todos los microcontroladores adoptaron la arquitec-
tura clasica de von Neumann, en el momento presente se impone la arqui-
tectura Harvard.

La arquitectura de von Neumann se caracteriza por disponer de una sola
memoria principal donde se almacenan datos e instrucciones de forma in-
distinta. A dicha memoria se accede a traves de un sistema de buses unico
(direcciones, datos y control). La arquitectura Harvard dispone de dos memo-
rias independientes, una que contiene solo instrucciones y otra, solo datos.


Universidad de Guanajuato FI MEE

1.6. Recursos comunes a todos los microcontroladores 9


Ambas disponen de sus respectivos sistemas de buses de acceso y es posible
realizar operaciones de acceso (lectura o escritura) simultaneamente en ambas
memorias.Los microcontroladores PI C responden a la arquitectura Harvard.


1.6.2. El procesador o CPU
Es el elemento mas importante del microcontrolador y determina sus prin-
cipales caractersticas, tanto a nivel hardware como software. Se encarga de
direccionar la memoria de instrucciones, recibir el codigo de la instruccion
en curso, su decodicacion y la ejecucion de la operacion que implica la in-
struccion, as como la busqueda de los operandos y el almacenamiento del
resultado. Existen tres orientaciones en cuanto a la arquitectura y funcional-
idad de los procesadores actuales.

CISC: Un gran numero de procesadores usados en los microcontroladores
estan basados en la losofa CISC (Computadoras de Juego de Instru-
cciones Complejo). Disponen de mas de 80 instrucciones maquina en
su repertorio, algunas de las cuales son muy sosticadas y potentes,
requiriendo muchos ciclos para su ejecucion. Una ventaja de los proce-
sadores CISC es que ofrecen al programador instrucciones complejas
que actuan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los
microcontroladores estan decantandose hacia la losofa RISC (Com-
putadoras de Juego de Instrucciones Reducido). En estos procesadores
el repertorio de instrucciones maquina es muy reducido y las instruc-
ciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez
y rapidez de las instrucciones permiten optimizar el hardware y el soft-
ware del procesador.

SI SC: En los microcontroladores destinados a aplicaciones muy concretas,
el juego de instrucciones, ademas de ser reducido, es especco, o sea,
las instrucciones se adaptan a las necesidades de la aplicacion prevista.
Esta losofa se ha bautizado con el nombre de SISC (Computadoras
de Juego de Instrucciones Especco).




Universidad de Guanajuato FI MEE





1.6. Recursos comunes a todos los microcontroladores 10


1.6.3. Memoria
En los microcontroladores la memoria de instrucciones y datos esta in-
tegrada en el propio chip. Una parte debe ser no volatil, tipo ROM, y se
destina a contener el programa de instrucciones que gobierna la aplicacion.
Otra parte de memoria sera tipo RAM, volatil, y se destina a guardar las
variables y los datos.

Hay dos peculiaridades que diferencian a los microcontroladores de las
computadoras personales: No existen sistemas de almacenamiento masivo
como disco duro o disquetes. Como el microcontrolador solo se destina a una
tarea en la memoria ROM, solo hay que almacenar un unico programa de
trabajo. La RAM en estos dispositivos es de poca capacidad pues solo debe
contener las variables y los cambios de informacion que se produzcan en el
transcurso del programa.

Por otra parte, como solo 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 computadoras personales estan habituados a manejar
Megabytes de memoria, pero, los disenadores con microcontroladores traba-
jan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de
RAM comprendidas entre 20 y 512 bytes.

Segun el tipo de memoria ROM que dispongan los microcontroladores,
la aplicacion y utilizacion de los mismos es diferente. Se describen las cinco
versiones de memoria no volatil que se pueden encontrar en los microcontro-
ladores del mercado.

ROM: con mascara Es una memoria no volatil de solo lectura cuyo con-
tenido se graba durante la fabricacion del chip. El elevado costo del
diseno de la mascara solo hace aconsejable el empleo de los micro-
controladores con este tipo de memoria cuando se precisan cantidades
superiores a varios miles de unidades.

OTP: El microcontrolador contiene una memoria no volatil de solo lectura
programable una sola vezpor el usuario. Es el usuario quien puede
escribir el programa en el chip mediante un sencillo grabador controla-
do por un programa desde una PC. La version OTP es recomendable
cuando es muy corto el ciclo de diseno del producto, o bien, en la cons-

Universidad de Guanajuato FI MEE




1.6. Recursos comunes a todos los microcontroladores 11


truccion de prototipos y series muy pequenas. Tanto en este tipo de
memoria como en la EPROM, se suele usar la encriptacion mediante
fusibles para proteger el codigo contenido.

EPROM: Los microcontroladores que disponen de memoria EPROM (Era-
sable Programmable Read OnIy Memory) pueden borrarse y grabarse
muchas veces. La grabacion se realiza, como en el caso de los OTP,
con un grabador gobernado desde una PC. Si, posteriormente, se desea
borrar el contenido, disponen de una ventana de cristal en su supercie
por la que se somete a la EPROM a rayos ultravioleta durante varios
minutos. Las capsulas son de material ceramico y son mas caros que los
microcontroladores con memoria OTP que estan hechos con material
plastico.

EEPROM: Se trata de memorias de solo lectura, programables y borrables
electricamente EEPROM (Electrical Erasable Programmable Read OnIy
Memory). Tanto la programacion como el borrado, se realizan electri-
camente desde el propio grabador y bajo el control programado de una
PC. Es muy comoda y rapida la operacion de grabado y la de borrado.
No disponen de ventana de cristal en la supercie.

Los microcontroladores dotados de memoria EEPROM una vez insta-
lados en el circuito, pueden grabarse y borrarse cuantas veces se quiera
sin ser retirados de dicho circuito. Para ello se usan grabadores en
circuitoque coneren una gran exibilidad y rapidez a la hora de rea-
lizar modicaciones en el programa de trabajo. El numero de veces que
puede grabarse y borrarse una memoria EEPROM es nito, por lo que
no es recomendable una reprogramacion continua. Son muy idoneos
para la ensenanza y la Ingeniera de diseno.

Se va extendiendo en los fabricantes la tendencia de incluir una pequena
zona de memoria EEPROM en los circuitos programables para guardar
y modicar comodamente una serie de parametros que adecuan el dis-
positivo a las condiciones del entorno. Este tipo de memoria es relati-
vamente lenta.

FLASH: Se trata de una memoria no volatil, de bajo consumo, que se puede
escribir y borrar. Funciona como una ROM y una RAM pero consume

Universidad de Guanajuato FI MEE




1.6. Recursos comunes a todos los microcontroladores 12


menos y es mas pequena. A diferencia de la ROM, la memoria FLASH
es programable en el circuito. Es mas rapida y de mayor densidad que
la EEPROM.

La alternativa FLASH esta recomendada frente a la EEPROM cuando
se precisa gran cantidad de memoria de programa no volatil. Es mas
veloz, pero tolera menos ciclos de escritura/borrado.

Las memorias EEPROM y FLASH son muy utiles al permitir que los mi-
crocontroladores que las incorporan puedan ser reprogramados en circuito,
es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dis-
positivo con este tipo de memoria incorporado al control del motor de un
automovil permite que pueda modicarse el programa durante la rutina de
mantenimiento periodico, compensando los desgastes y otros factores tales
como la compresion, la instalacion de nuevas piezas, etc. La reprogramacion
del microcontrolador puede convertirse en una labor rutinaria dentro de la
puesta a punto.

1.6.4. Puertas de Entrada y Salida
La principal utilidad de las patitas que posee la capsula que contiene un
microcontrolador es soportar las lneas de E/S que comunican al computador
interno con los perifericos exteriores. Segun los controladores de perifericos
que posea cada modelo de microcontrolador, las lneas de E/S se destinan a
proporcionar el soporte a las senales de entrada, salida y control.

1.6.5. Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que gene-
ra una onda cuadrada de alta frecuencia, que congura los pulsos de reloj
usados en la sincronizacion de todas las operaciones del sistema. General-
mente, el circuito de reloj esta incorporado en el microcontrolador y solo 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 ceramico o una red
RC. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se
ejecutan las instrucciones pero lleva aparejado un incremento del consumo
de energa.

Universidad de Guanajuato FI MEE


1.7. Recursos especiales 13


1.7. Recursos especiales

Cada fabricante oferta numerosas versiones de una arquitectura basica
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 disenador es encontrar el
modelo mnimo que satisfaga todos los requerimientos de su aplicacion. De
esta forma, minimizara el coste, el hardware y el software. Los principales
recursos especcos que incorporan los microcontroladores son:

Temporizadores o Timers.

Perro guardian o Watchdog.

Proteccion ante fallo de alimentacion o Brownout.

Estado de reposo o de bajo consumo.

Conversor A/D. o Conversor D/A.

Comparador analogico.

Modulador de anchura de pulsos o PWM.

Puertos de E/S digitales.

Puertos de comunicacion.

1.7.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 continuacion dicho valor se va incrementando o decrementando al ritmo
de los pulsos de reloj o algun multiplo hasta que se desborde y llegue a 0,
momento en el que se produce un aviso. Cuando se desean contar acontec-
imientos que se materializan por cambios de nivel o ancos en alguna de las
patitas del microcontrolador, el mencionado registro se va incrementando o
decrementando al ritmo de dichos pulsos.


Universidad de Guanajuato FI MEE




1.7. Recursos especiales 14


1.7.2. Perro guardian o Watchdog
Cuando una computadora personal se bloquea por un fallo del software
u otra causa, se pulsa el boton del reset y se reinicializa el sistema. Pero un
microcontrolador funciona sin el control de un supervisor y de forma con-
tinuada las 24 horas del da. El Perro guardian consiste en un temporizador
que, cuando se desborda y pasa por 0, provoca un reset automaticamente en
el sistema. Se debe disenar el programa de trabajo que controla la tarea de
forma que refresque o inicialice al Perro guardian antes de que provoque el
reset. Si falla el programa o se bloquea, no se refrescara al Perro guardian y,
al completar su temporizacion, ladrara y ladrarahasta provocar el reset.

1.7.3. Proteccion ante fallo de alimentacion o Brownout
Se trata de un circuito que resetea al microcontrolador cuando el voltaje
de alimentacion (VDD) es inferior a un voltaje mnimo (brownout). Mien-
tras el voltaje de alimentacion sea inferior al de brownout el dispositivo se
mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa
dicho valor.

1.7.4. Estado de reposo o de bajo consumo
Son abundantes las situaciones reales de trabajo en que el microcontro-
lador debe esperar, sin hacer nada, a que se produzca algun acontecimiento
externo que le ponga de nuevo en funcionamiento. Para ahorrar energa, (fac-
tor clave en los aparatos portatiles), los microcontroladores disponen de una
instruccion 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 detienen sus circuitos asociados,
quedando sumido en un profundo sueno el microcontrolador. Al activarse una
interrupcion ocasionada por el acontecimiento esperado, el microcontrolador
se despierta y reanuda su trabajo.

1.7.5. Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analogico/Digital)
pueden procesar senales analogicas, tan abundantes en las aplicaciones. Sue-
len disponer de un multiplexor que permite aplicar a la entrada del CAD


Universidad de Guanajuato FI MEE






1.7. Recursos especiales 15


diversas senales analogicas desde las patitas del circuito integrado.

1.7.6. Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento de una com-
putadora en su correspondiente senal analogica que saca al exterior por una
de las patitas de la capsula. Existen muchos dispositivos que trabajan con
senales analogicas.

1.7.7. Comparador analogico
Algunos modelos de microcontroladores disponen internamente de un
Amplicador Operacional que actua como comparador entre una senal ja
de referencia y otra variable que se aplica por una de las patitas de la capsula.

La salida del comparador proporciona un nivel logico 1 o 0 segun una senal
sea mayor o menor que la otra. Tambien hay modelos de microcontroladores
con un modulo de tension de referencia que proporciona diversas tensiones
de referencia que se pueden aplicar en los comparadores.

1.7.8. Modulador de anchura de pulso o PWM
Son circuitos que proporcionan en su salida pulsos de anchura variable,
que se ofrecen al exterior a traves de las patitas del encapsulado.

1.7.9. Puertos 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 Puertos.

Las lneas digitales de los Puertos pueden congurarse como Entrada o
como Salida cargando un 1 o un 0 en el bit correspondiente de un registro
destinado a su conguracion.






Universidad de Guanajuato FI MEE

1.8. Herramientas para el desarrollo de aplicaciones 16


1.7.10. Puertos de comunicacion
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 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 comunicacion serie asncrona.

USART: adaptador de comunicacion serie sncrona y asncrona Puerta par-
alela esclava para poder conectarse con los buses de otros microproce-
sadores.

USB: (Universal Serial Bus), que es un moderno bus serie para las PC.

Bus I 2C: que es un interfaz serie de dos hilos desarrollado por Philips.

CAN(Controller Area Network ) : , para permitir la adaptacion con re-
des de conexionado multiplexado desarrollado conjuntamente por Bosch
e Intel para el cableado de dispositivos en automoviles. En EE. UU. se
usa el J185O.

1.8. Herramientas para el desarrollo de apli-
caciones

Uno de los factores que mas importancia tiene a la hora de seleccionar un
microcontrolador entre todos los demas es el soporte software como hardware
de que dispone. Un buen conjunto de herramientas de desarrollo puede ser
decisivo en la eleccion, ya que pueden suponer una ayuda inestimable en
el desarrollo del proyecto. La principal herramienta de ayuda al desarro-
llo de sistemas basados en microcontroladores son: Desarrollo del software
(Ensamblador).

1.8.1. Desarrollo del software (Ensamblador)
La programacion en lenguaje ensamblador puede resultar un tanto difcil
para el principiante, pero permite desarrollar programas muy ecientes, ya
que otorga al programador el dominio absoluto del sistema. Los fabricantes

Universidad de Guanajuato FI MEE


1.8. Herramientas para el desarrollo de aplicaciones 17


suelen proporcionar el programa ensamblador de forma gratuita y en cualquier
caso siempre se puede encontrar una version gratuita para los microcontro-
ladores mas populares.


Compilador: La programacion en un lenguaje de alto nivel (como el C o el
Basic) permite disminuir el tiempo de desarrollo de un producto. No
obstante, si no se programa con cuidado, el codigo resultante puede ser
mucho mas ineciente que el programado en ensamblador.
Las versiones mas potentes suelen ser muy caras, aunque para los micro-
controladores mas populares pueden encontrarse versiones demo limi-
tadas e incluso compiladores gratuitos.


Depuracion: Debido a que los microcontroladores van a controlar disposi-
tivos fsicos, los desarrolladores necesitan herramientas que les permi-
tan comprobar el buen funcionamiento del microcontrolador cuando es
conectado al resto de circuitos.

Simulador: Los simuladores son capaces de ejecutar en una PC programas
realizados para el microcontrolador. Los simuladores permiten tener un
control absoluto sobre la ejecucion de un programa, siendo ideales para
la depuracion de los mismos. Su gran inconveniente es que es difcil
simular la entrada y salida de datos del microcontrolador. Tampoco
cuentan con los posibles ruidos en las entradas, pero, al menos, per-
miten el paso fsico de la implementacion de un modo mas seguro y
menos costoso, puesto que ahorraremos en grabaciones de chips para
la prueba in-situ.


Placas de evaluacion; Se trata de pequenos sistemas con un microcontro-
lador ya montado y que suelen conectarse a una PC desde el que se
cargan los programas que se ejecutan en el microcontrolador. Las pla-
cas suelen incluir visualizadores LCD, teclados, LEDs, facil acceso a los
pines de E/S, etc.

El sistema operativo de la placa recibe el nombre de programa moni-
tor. El programa monitor de algunas placas de evaluacion, aparte de

Universidad de Guanajuato FI MEE

1.8. Herramientas para el desarrollo de aplicaciones 18


permitir cargar programas y datos en la memoria del microcontrolador,
puede permitir en cualquier momento realizar la ejecucion paso a pa-
so, monitorizar el estado del microcontrolador o modicar los valores
almacenados en los registros o en la memoria.

Emuladores en circuito: Se trata de un instrumento que se coloca entre
una PC antrion y el zocalo de la tarjeta de circuito impreso donde se
alojara el microcontrolador denitivo. El programa es ejecutado desde
una PC, pero para la tarjeta de aplicacion es como si lo hiciese el
mismo microcontrolador que luego ira en el zocalo. Presenta en pantalla
toda la informacion tal y como luego sucedera cuando se coloque el
encapsulado.

































Universidad de Guanajuato FI MEE
Cuadro 2.1: Caractersticas del PIC16F873











Captulo 2

Introduccion al PI C16F873



En este capitulo se trataran las diversas caractersticas de este microcon-
trolador. Tambien se trataran las funciones basica como lo es la conguracion
para la entrada y salida de informacion.

2.1. Descripcion del PI C16F873

El PIC16F873 es un microcontrolador de Microchip,el cual tiene las sigu-
ientes caractersticas.



Por lo que el PI C es muy util para para el desarrollo de diferentes apli-

19
Caracterstica Descripcion
Frecuencia de operacion 20 MHz
Memoria FLASH de programa (palabra de 14 bits) 4k
Memoria de datos (bytes) 192
Memoria de datos EEPROM (bytes) 128
Interrupciones 13
Puertos de E/S Puertos A, B, C
Temporizadores 3
Modulos de Captura/Comparacion/PWM 2
Comunicacion serial tipo MSSP, USART
Modulo Analogo-Digital (10 bits) 5 canales de entrada
Conjunto de instrucciones 35


2.2. Encapsulado 20


caciones tales como control y procesamiento digital de senales.

2.2. Encapsulado

El PIC16F873 se presenta en un encapsulado de 28 pines como se ve en
la Figura 2.1 y la descripcion de cada pin se muestran en el cuadro 2.2.



















Figura 2.1: Encapsulado del PIC16F873.


















Universidad de Guanajuato FI MEE

2.3. Organizacion de memoria 21


2.3. Organizacion de memoria

Hay tres bloques de memoria en este PIC los cuales son: memoria FLASH
de programa , memoria de Datos (RAM) y memoria EEPROM de datos.
Debido a las aplicaciones que se tratan , solo es necesario conocer la memoria
de Datos (RAM).

2.3.1. Memoria de Datos (RAM)
La memoria de datos esta particionada en multiples bancos los cuales
contiene Registro de Proposito General y Registros de Funciones Especiales.
Los bits RP1 (STATUS(6)) y RP0 (STATUS(5)) son usados para la seleccion
del banco.









Cada banco se extiende hasta la direccion 7Fh (128 bytes). La parte baja
de cada banco es reservada para los Registros de Funciones Especiales. Los
Registro de Proposito General pueden ser accesados cada uno directamente,
o indirectamente.

La conformacion de los bancos se muestra en la Figura 2.2.















Universidad de Guanajuato FI MEE
P1:RP0 Banco
00 0
01 1
10 2
11 3

2.3. Organizacion de memoria 22











































Figura 2.2: Mapa de los bancos del PIC16F873.




Universidad de Guanajuato FI MEE

2.4. Puertos de Entrada/Salida 23


2.4. Puertos de Entrada/Salida

Los PICs tiene la caractersticas de que sus pines pueden ser todos congu-
rados de acuerdo a la necesidad de la aplicacion, es decir, que lo pines de un
mismo puerto pueden ser usados unos como entradas y otros como salidas.

Ademas, algunos pines E/S de los puertos son multiplexados a una fun-
ciona alternativa de caractersticas perifericas. En general, cuando una fun-
cion de estas es habilitada, ese pin tal vez no pueda ser usado como un pin
de proposito de E/S.

2.4.1. PUERTO A y el Registro TRISA
El puerto A es un puerto bidireccional con un ancho de 6 bits. La cor-
respondiente direccion de datos es el registro TRI SA. Al puerto A le cor-
responde la direccion 05h del banco 0, en tanto que al registro TRI SA le
corresponde la misma direccion pero del banco 1. Si queremos que el puerto
A funcione como entrada de datos debemos poner los correspondientes bits
del registro TRI SA en 1, en cambio, si queremos que dicho puertos funcione
como salida debemos colocar los del registro TRI SA a 0.

2.4.2. PUERTO B y el Registro TRISB
El puerto B es un puerto bidireccional con un ancho de 8 bits. La cor-
respondiente direccion de datos es el registro TRI SB. Al puerto B le cor-
responde la direccion 06h del banco 0, en tanto que al registro TRI SB le
corresponde la misma direccion pero del banco 1.

La conguracion del puerto B se realiza de la misma forma que el puerto
A, solo que ahora se manipula el registro TRI SB.

2.4.3. PUERTO C y el Registro TRISC
El puerto C es un puerto bidireccional con un ancho de 8 bits. La cor-
respondiente direccion de datos es el registro TRI SC. Al puerto A le cor-
responde la direccion 07h del banco 0, en tanto que al registro TRI SC le
corresponde la misma direccion pero del banco 1.



Universidad de Guanajuato FI MEE

2.5. Ejemplo de conguracion para E/S 24


La conguracion del puerto C se realiza de la misma forma que el puerto
A, solo que ahora se manipula el registro TRISC.

2.5. Ejemplo de conguracion para E/S

En este ejemplo se mostrara la forma de realizar la conguracion del
puerto A como entradas y el puerto B como salidas.
LIST P=16F873;Usaremos el PIC16F873A-04/P
RADIX HEX ;Todo en hexadecimal

w EQU 0 ;Cuando d=0 el destino es w
f EQU 1 ;Cuando d=1 el destino es f

;Declaracion de l as variables

PUERTOA EQU 05 ;Direccion del Puerto A
PUERTOB EQU 06 ;Direccion del Puerto B
ESTADO EQU 03 ;Control de l os bancos

ORG 0
goto i ni ci o ; Sal to al vector de interrupcion
ORG 5

;Configuracion de l os puertos A como Entrada y B como Salida
i ni ci o bsf ESTADO,5 ;Apertura del banco 1
movlw 0x3Fh
movwf PUERTOA ; se configuran PUERTOA como entradas
clrw
movwf PUERTOB ;y configuran PUERTOB como sal i das
bcf ESTADO,5 ; Ci erre del banco 1

;Inicio de programa
clrf PUERToB ;Todo a pagado
CICLO movf PUERTOA,w ; Ll eva l o del puerto A a W
movwf PUERTOB ; Ll eva W al puerto B
goto CICLO
END ; Fi n del programa

Universidad de Guanajuato FI MEE
Cuadro 2.2: Descripcion de pines del 16F873

2.5. Ejemplo de conguracion para E/S 25
















































Universidad de Guanajuato FI MEE
Pin Tipo Descripcion
OSC1/CLKIN E Entrada de oscilador de cristal
OSC2/CLKOUT S Salida de oscilador de cristal
MCLR/VPP/THV E/V Reset o entrada de voltaje de programacion

RA0/AN0
RA1/AN1 3 3
RA2/AN2/VREF

RA3/AN3/VREF+

RA4/T0CKI

RA5/SS/AN4

E/S
E/S
E/S

E/S

E/S

E/S
PUERTO A es un puerto bidirectional de E/S
RA0 Tambien puede ser entrada analogica 0
RA1 Tambien puede ser entrada analogica 1
RA2 Tambien puede ser entrada analogica 2 o
referencia analogica de voltaje negativo
RA3 Tambien puede ser entrada analogica 3 o
referencia analogica de voltaje positivo
RA4 Puede ser tambien la entrada de reloj
del modulo Temporizador 0
RA5 Tambien puede ser entrada analogica 4
o esclavo en la seleccion de puertos serial sncrono

RB0/INT
RB1, RB2
RB3/PGM
RB4, RB5
RB6/PGC
RB7/PGD

E/S
E/S
E/S
E/S
E/S
E/S
PUERTOB es un puerto bidirectional de E/S
RB0 Tambien puede ser pin de interrupcion externa

RB3 Puede ser entrada de bajo voltaje de programacion

Reloj de programacion serial
Dato serial de programacion

RC0/T1OSO/T1CKI

RC1/T1OSI/CCP2

RC2/CCP1
RC3/SCK/SCL
RC4
RC5
RC6/TX/CK
RC7/RX/DT
VSS

E/S

E/S ST

E/S
E/S
E/S
E/S
E/S
E/S
G
PUERTOC es un puerto bidirectional de E/S
RC0 Puede ser la salida del oscilador Timer1
o entrada de reloj de Timer1
RC1 Puede ser la entrada del oscilador Timer1
o entrada de Captura2/salida de Captura2/PWM2
RC2 entrada Captura1/salida Comparador1/salida PWM1
RC3 Puede ser entrada reloj de reloj de sincrona serial
RC4 puede ser entrada de dato SPI (en modo SPI)
RC4 puede ser salida de dato SPI (en modo SPI)
RC6 Puede ser pin transmision USART
RC7 Puede ser pin de recepcion USART
Referencia de tierra
VDD V Fuente positiva .













Captulo 3

Algoritmos implementados



En este capitulo se describiran la algoritmos implementados, as como
los diagramas para implementarlos fsicamente. Ademas, se describiran los
dispositivos ajenos al microcontrolador que se usaron para el desarrollo de la
aplicaciones.

3.1. Control de velocidad

El control de velocidad se realiza mediante la tecnica de modulacion de
ancho de pulso o PWM. Dicha tecnica consiste en hacer variar el ancho del
pulso o ciclo de trabajo de una senal (Figura 3.1).

As, mientras el pulso sea mas ancho, la velocidad del motor sera mas
rapida y en cambio se el ancho del pulso es mas pequeno la velocidad dis-
minuira.

Debido al uso de un motor, este no puede ser conectado directamente al
microcontrolador ya que el consumo de corriente es elevado y por lo tanto
danara el PIC, por lo que se hara uso de el driver(L293D) para controlar el
motor.








26

3.1. Control de velocidad 27


























Figura 3.1: Modulacion por ancho de pulso (PWM).

3.1.1. Driver L293D
El L293 es un driver en circuito integrado para control de motores si-
multaneos en forma bidireccional, el circuito usa dos puentes cada uno con
un par de canales y equipado con una entrada de habilitacion o enable (Figu-
ra 3.2) .

EL L293D esta limitado a 600 mA, pero se recomienda para motores con
menor demanda de corriente, sino no se quiere tener problema con el calen-
tamiento del driver. Ademas, como se ve en la Figura cuenta con unos diodos
para minimizar picos inducidos de voltaje. Este dispositivo se recomienda
para aplicaciones donde la velocidad de switcheo no es mayor a 5 KHz.

El L293 es un circuito integrado estandar de 16 pines como se observa en
la Figura 3.3.


Universidad de Guanajuato FI MEE

3.1. Control de velocidad 28


















Figura 3.2: Dirver L293D bloques.


















Figura 3.3: Dirver L293D encapsulado .

La forma en que el L293D fue conectado se observa en la Figura 3.5 y
su funcionamiento se describe en el Cuadro 3.1.






Universidad de Guanajuato FI MEE
Cuadro 3.1: Descripcion de funcionamiento del L293D

3.1. Control de velocidad 29


































Figura 3.4: Conexion del L293D.













Universidad de Guanajuato FI MEE
ENABLE DIRA DIRB Function
H H L Giro a la derecha
H L H Giro a la izquierda
H L/H L/H Alto rapido
L cualquiera cualquiera Alto lento

3.1. Control de velocidad 30


3.1.2. Programa para control de velocidad
Para el programa se utilizaron los 8 bits del puerto B como entradas y 2
bits del puerto A se utilizaron como salida hacia el driver para controlar el
motor.

Los ocho bits de entrada del puerto B, indican el tiempo que durara el
ciclo de trabajo o el ancho de pulso, por ejemplo, si se quiere que el ciclo de
trabajo o el ancho de pulso sea del 50 % se coloca en el puerto B la palabra
80h (10000000b) y por lo tanto el motor girara de manera constante a una
velocidad dada. En cambio si se quire que el motor ofrezca su maxima ve-
locidad se coloca la palabra FFh.

El codigo utilizado se muestra en seguida.



LIST P=16F873 ;Usaremos el PIC16F873-04/P
RADIX HEX ;Todo en hexadecimal
w EQU 0 ;Cuando d=0 el destino es w
f EQU 1 ;Cuando d=1 el destino es f

;****************Declaracion de l as variabl es******************

PUERTOA EQU 05
PUERTOB EQU 06
ESTADO EQU 03
; ********Vari abl es auxi l i ares para el retardo*************
AUX1 EQU 0F
AUX2 EQU 0E
AUX3 EQU 0C

ORG 0
goto i ni ci o
ORG 5

;***************Configuracion de Entradas/Salidas**************



Universidad de Guanajuato FI MEE

3.1. Control de velocidad 31


i ni ci o bsf ESTADO,5 ;Apertura del banco 1
clrw ; Se limpia w (w=00h)
movwf PUERTOA ;PUERTOA como sal i das
movlw 0x0FF
movwf PUERTOB ;PUERTOB como entradas
bcf ESTADO,5 ; Ci erre del banco 1

;**************Programa pri nci pal *******************************
clrf PUERTOA ;Todo apagado en el puerto A
ci cl o movf PUERTOB,w ;Mueve l o del puerto de entrada a W
movwf AUX2 ;Mueve w a la direccion de memoria que
;apunta AUX2 (0Eh)
;********Calculo de tiempo que durara en bajo la se~nal******
sublw 0x0FF ;Resta el valor de entrada a FFh y se
;guarda en w
movwf AUX3 ; se mueve el resultado de la resta a la
;direccion que apunta AUX3 (0Ch)
; ***********************************************************
movf AUX2,w
addlw 0X01
movwf AUX2
decfsz AUX2,f
goto uno
goto cero
; **********************************************************
uno movlw 0x01 ; Ll eva el valor 01h a W
movwf PUERTOA ; Ll eva W al puerto A
call retardo ;Llamado de el di vi sor de frecuencia
decfsz AUX2,f ; Se decrementa AUX2 y se deposita en
;ella misma y si l l ega a cero cambia
;la sal i da a 00h
goto uno ;si no es cero se repite
cero movlw 0x00 ; Ll eva el valor 00h a W
movwf PUERTOA ; Ll eva W al puerto A
call retardo ;Llamado de el di vi sor de frecuencia
decfsz AUX3,f ; Se decrementa AUX3 y se deposita en
;ella misma y si l l ega a cero
;salta a la ultima instruccion

Universidad de Guanajuato FI MEE




3.1. Control de velocidad 32


goto cero ;si no es cero se repite
; *********************************************************
goto ci cl o ;Vuelve a iniciar

; ***************Rutina de retardo*****************************

; Esta rutina se utiliza como un di vi sor de frecuencia, ya que no
; se puede utilizar la frecuencia del PIC de manera di recta.

retardo
movlw 0x90
movwf AUX1 ; se l l eva este valor tambien a AUX2
one decfsz AUX1,f ; Se decrementa AUX1 y se deposita en
;ella misma
goto one ;si l l ega a cero sale e la rutina
return ;Una vez completados l os ci cl os se regresa
;al programa pri ncipal
END ; Fi n del programa


El programa arroja una senal de salida de aproximadamente un 1 KHz,
lo cual es bueno para el uso en motores pequenos.

3.1.3. Diagrama de implementacion
El diagram de conexion para el motor junto con el driver para el control
de velocidad. En la Figura 3.5 se presenta el esquema de conexion.

Como se menciono anteriormente los 8 bits del puerto B se utilizaron
como entradas y solo 2 pines del puerto A como salidas.

En esta aplicacion solo se uso un motor y el pin 8 correspondiente a VS
se conecto a la misma fuente debido a que se uso un motor pequeno, pero
pude utilizarse otro voltaje mucho mayor.






Universidad de Guanajuato FI MEE

3.2. Medidor de distancia con un sensor infrarrojo 33




















Figura 3.5: Diagrama de conexion.

3.2. Medidor de distancia con un sensor in-
frarrojo

Para el desarrollo de esta aplicacion se utilizo el convertidor Analogico-
Digital del PI C y el sensor infrarrojo de la marca Sharp modelo GP2D12.

3.2.1. Convertidor Analogico-Digital
El modulo convertidor Analogico-Digital (A/D) tiene 5 entradas o canales.
La entrada analogica carga un muestra y la mantiene en un capacitor. La
salida del muestreo y la retencion en el capacitor es la entrada al convertidor.

El convertidor entonces genera un resultado digital del nivel analogico
por el metodo de aproximaciones sucesivas. La conversion Analogico-Digital
de la entrada analogica resulta en un correspondiente numero de 10 bits. El
modulo A/D tiene entradas de referencia de alto volatje (VDD) y bajo volta-
je (VSS). Este modulo tiene la caracteritica de que puede operar mientras el
PI C se encuentra en el modo de bajo consumo de voltaje (SLEEP mode).

EL modulo de conversion A/D esta formado por cuatro registros. Estos

Universidad de Guanajuato FI MEE

3.2. Medidor de distancia con un sensor infrarrojo 34


registros son:

Registro de resultado parte alta (ADRESH)

Registro de resultado parte baja (ADRESL)

Registro de control0 (ADCON0)

Registro de control1 (ADCON1)

El registro ADCON0 , se muestra en la Figura 3.6, controla la operacion
del modulo A/D. El registro de control ADCON1 se muestra en la Figura
3.7, congura las funciones de los pines del puerto. Los pines del puerto
pueden ser congurados como entrada analogicas (RA3 tambien puede ser la
referencia de voltaje) o como E/S digitales.
























Figura 3.6: Registro de control ADCON0.





Universidad de Guanajuato FI MEE

3.2. Medidor de distancia con un sensor infrarrojo 35
































Figura 3.7: Registro de control ADCON1.

Los registro ADRESH:ADRESL contiene los 10 bits del resultado de la
conversion A/D. Cuando el proceso de conversion A/D esta completo el re-
sultado es cargado en este par de registros, el bit GO/DONE (ADCON0(2))
es limpiado.

Despues de que el modulo A/D ha sido congurado como se desea, la se-
leccion del canal debe ser realizada antes de iniciar la conversion. Los canales
analogicos deben tener sus correspondientes bits TRI S seleccionados como
entrada.

En los siguientes pasos se muestran como realizar la conversion:

Universidad de Guanajuato FI MEE

3.2. Medidor de distancia con un sensor infrarrojo 36


1. Conguracion de modulo A/D:

Seleccionar los canales de entrada,voltaje de referencia y E/S digi-
tales (ADCON1)
Seleccionar el canal de entrada A/D (ADCON0)
Seleccionar reloj de conversion (ADCON0)
Encender el modulo A/D (ADCON0)

2. Espera el tiempo requerido de adquisicion

3. Iniciar conversion

4. Espera el proceso de conversion, por:

Limpiado del bit GO/DONE (ADCON0)

5. Leer el resultado en el par de registros (ADRESH:ADRESL)

6. Para la siguiente conversion repita el paso 1 e inicie la conversion.

Seleccion del reloj de Conversion A/D: La fuente de reloj para la con-
version A/D es seleccionada por software. Las cuatro posibles opciones
son:

2TOSC
8TOSC
32TOSC
Internal RC oscillator

El Cuadro 3.2 muestra la frecuencia maxima de operacion del reloj
seleccionado para el convertidor A/D.


Registro de resultados A/D : El par de registro ADRESH:ADESRL es
la locacion donde es cargado el resultado de 10 bits de la conversion
A/D. El par de registros presenta un ancho de 16 bits. El modulo A/D
ofrece la exibilidad de justicar el resultado de 10 bits a la derecha o
a la izquierda: El bit de seleccion del formato del resultado es el bit de


Universidad de Guanajuato FI MEE
Cuadro 3.2: Maximas frecuencias de operacion

3.2. Medidor de distancia con un sensor infrarrojo 37











control ADFM.

La Figura 3.8 muestra la operacion de justicacion. Los bits extras son
ledos como ceros.
















Figura 3.8: Operacion de justicacion.

Ademas, cuando en este par de registro no se escribe (Conversion A/D
deshabilitada), estos registro pueden ser usados como dos registros de
8 bits de proposito general.

3.2.2. Sensor infrarrojo GP2D12.
El detector GP2D12 (Figura 3.9) toma continuamente lecturas cuando
es encendido. La salida del detector esta disponible en el pin Vo. Este valor
es actualizado aproximadamente cada 32 ms.


Universidad de Guanajuato FI MEE
Operacion ADCS1:ADCS0 Max frec.
2TOSC 00 1.25 MHz
8TOSC 01 5 MHz
32TOSC 10 20 MHz
RC 11

3.2. Medidor de distancia con un sensor infrarrojo 38













Figura 3.9: Sensor infrarrojo GP2D12.

Tpicamente, la salida es conectada a un convertidor A/D (como este ca-
so) el cual convierte la distancia medida a un numero que puede ser usado
por un microcontrolador. La salida puede ser tambien usada directamente en
un circuito analogico.

El GP2D12 no tiene una salida lineal para la distancia medida. La graca
de la Figura 3.10 muestra la tpica curva de respuesta.

















Figura 3.10: Curva de respuesta del sensor GP2D12.

Una vez que se describieron los dispositivos a utilizar falta el software y
la implementacion.


Universidad de Guanajuato FI MEE




3.2. Medidor de distancia con un sensor infrarrojo 39


3.2.3. Programa para la medicion de distancia
Para este programa se hace uso del convertidor Analogico-Digital para
procesar la senal proveniente del sensor, la forma en que se hace la congu-
racion es siguiendo los pasos anteriormente dichos.

Antes de describir el codigo se senalaran los parametros con los que se
conguro el modulo.

Se conguro el RA0 y RA1 con entradas analogicas, RA3 como referen-
cia positiva de voltaje (VREF +) y el formato de salida con justicacion a la
izquierda, por lo que el dato que se debe de colocar en el registro ADCON1
es el 05h.

Una vez congurado ADCON1, se conguro ADCON0 con las siguientes
caractersticas: se utilizo el reloj capaz de operar a 20 MHz, se selecciono RA0
como canal de entrada, por lo que el dato a guardar en el regsitro ADCON0
es el 81h.

A continuacion se muestra el programa para la medicion de distancia, el
cual consiste en convertir la senal analogica proveniente del GP2D12 a digital
y desplegar los 8 bits mas signicativos por los pines del puerto B.


LIST P=16F873 ;Usaremos el PIC16F873-04/P
RADIX HEX ;Todo en hexadecimal
w EQU 0 ;Cuando d=0 el destino es w
f EQU 1 ;Cuando d=1 el destino es f

;***********Declaracion de l as vari abl es*************************
PUERTOA EQU 05h
PUERTOB EQU 06h
ESTADO EQU 03h
AUX1 EQU 0Fh ; Variabl es auxi l i ares
AUX2 EQU 0Eh
AUX3 EQU 0Ch
ADCON EQU 1Fh
ADRESH EQU 1Eh


Universidad de Guanajuato FI MEE

3.2. Medidor de distancia con un sensor infrarrojo 40



ORG 0
goto i ni ci o ; Sal to al vector de interrupcion
ORG 5

;********Configuracion de l os puertos como E/S*****************
i ni ci o bsf ESTADO,5 ;Apertura del banco 1
movlw 0x0FF
movwf PUERTOA ;PUERTOA como entradas
clrw
movwf PUERTOB ;PUERTOB como sal i da
bcf ESTADO,5 ; Ci erre del banco 1
;*********Configuracion del modulo de A/D*********************
clrf PUERTOB ; Se limpian l as sal i das
bsf ESTADO,5 ;Apertura del banco 1
movlw 0x05 ;Mueve el valor de 05h a w
movwf ADCON ;Mueve el valor de W (05h) al regi stro
;de control ADCON1
bcf ESTADO,5 ; Ci erre del banco 1
movlw 0x81 ;Mueve el valor de 81h a w
movwf ADCON ;Mueve el valor de w (81h) al regi stro
; de control ADCON0
;*********Proceso de conversion*******************************

CONV bsf ADCON,2 ;Inicia el proceso de conversion
;activando el bi t GO/DONE
CHECA BTFSC ADCON,2 ;Checa que el bi t GO/DONE sea cero
GOTO CHECA ; Sal t a a checar de nuevo el bi t
movf ADRESH,w ;Mueve el resultado de la conversion a
;w
movwf PUERTOB ;Mueve el resultado guardado en w al
;puerto B
goto CONV ;Empieza de nuevo la conversion

END





Universidad de Guanajuato FI MEE


3.3. Implementacion 41


3.3. Implementacion

El diagrama de la implementacion para este diseno se muestra e la Figura
3.11.

















Figura 3.11: Diagrama de la implementacion para medicion de distancia.

En este desarrollo la forma en que se visualiza es a traves de LEDs, pero
se pueden implementar otras interfaz de visualizacion como pantallas de LDC
o Display.

Como se ve el diagrama es muy sencillo y aun se puede conectar otro
sensor en el canal analogico RA1, pero aqu el problema es el desplegado ya
que los puertos con los que se cuenta no son muchos.













Universidad de Guanajuato FI MEE

S-ar putea să vă placă și