manual pic 16f873

Upload: electronico1987

Post on 08-Jul-2015

243 views

Category:

Documents


0 download

TRANSCRIPT

Manual de Microcontrolador 16F873Universidad de Guanajuato FIMEE Barrn Zambrano Jos Hugo o e Dr. Gustavo Cerda Villafaa n

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

INDICE GENERAL

II

1.8.1. Desarrollo del software (Ensamblador) . . . . . . . . . 16 2. Introduccin al PIC16F873 o 2.1. Descripcin del PIC16F873 . . . . . . . . o 2.2. Encapsulado . . . . . . . . . . . . . . . . 2.3. Organizacin de memoria . . . . . . . . . o 2.3.1. Memoria de Datos (RAM) . . . . 2.4. Puertos de Entrada/Salida . . . . . . . . 2.4.1. PUERTO A y el Registro TRISA 2.4.2. PUERTO B y el Registro TRISB 2.4.3. PUERTO C y el Registro TRISC 2.5. Ejemplo de conguracin para E/S . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 20 21 21 23 23 23 23 24 26 26 27 30 32 33 33 37 39 41

3. Algoritmos implementados 3.1. Control de velocidad . . . . . . . . . . . . . . . 3.1.1. Driver L293D . . . . . . . . . . . . . . . 3.1.2. Programa para control de velocidad . . . 3.1.3. Diagrama de implementacin . . . . . . o 3.2. Medidor de distancia con un sensor infrarrojo . 3.2.1. Convertidor Analgico-Digital . . . . . . o 3.2.2. Sensor infrarrojo GP2D12. . . . . . . . . 3.2.3. Programa para la medicin de distancia o 3.3. Implementacin . . . . . . . . . . . . . . . . . . o

Universidad de Guanajuato

FIMEE

Indice de cuadros2.1. Caracter sticas del PIC16F873 . . . . . . . . . . . . . . . . . 19 2.2. Descripcin de pines del 16F873 . . . . . . . . . . . . . . . . . 25 o 3.1. Descripcin de funcionamiento del L293D . . . . . . . . . . . . 29 o 3.2. Mximas frecuencias de operacin . . . . . . . . . . . . . . . . 37 a o

III

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

2.1. Encapsulado del PIC16F873. . . . . . . . . . . . . . . . . . . . 20 2.2. Mapa de los bancos del PIC16F873. . . . . . . . . . . . . . . . 22 3.1. Modulacin por ancho de pulso (PWM). . . . o 3.2. Dirver L293D bloques. . . . . . . . . . . . . . 3.3. Dirver L293D encapsulado . . . . . . . . . . . 3.4. Conexin del L293D. . . . . . . . . . . . . . . o 3.5. Diagrama de conexin. . . . . . . . . . . . . . o 3.6. Registro de control ADCON0. . . . . . . . . . 3.7. Registro de control ADCON1. . . . . . . . . . 3.8. Operacin de justicacin. . . . . . . . . . . . o o 3.9. Sensor infrarrojo GP2D12. . . . . . . . . . . . 3.10. Curva de respuesta del sensor GP2D12. . . . . 3.11. Diagrama de la implementacin para medicin o o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de distancia. . . . . . . . . . . . 27 28 28 29 33 34 35 37 38 38 41

IV

Cap tulo 1 Introduccin oLos microcontroladores estn conquistando el mundo. Estn presentes a a 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 computadoras, en los telfonos, en los hornos de microondas y los televisores de e nuestro hogar. Pero la invasin acaba de comenzar y el nacimiento del siglo o XXI ser testigo de la conquista masiva de estas diminutas computadoras, a que gobernarn la mayor parte de los aparatos que fabricaremos y usemos a 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 l mites prejados, genera las seales adecuadas que accionan los actuadores que intentan llevar el valor de n la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a travs e del tiempo, su implementacin f o sica ha variado frecuentemente. Hace tres dcadas, los controladores se constru exclusivamente con componentes de e an lgica discreta, posteriormente se emplearon los microprocesadores, que se o 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 corazn (chip) o de un circuito integrado. Un microcontrolador es un circuito integrado de alta escala de integracin o 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. L neas de E/S para comunicarse con el exterior. Diversos mdulos para el o control de perifricos (temporizadores, Puertos Serie y Paralelo, CAD: Cone versores Analgico/Digital, CDA: Conversores Digital/Analgico, etc.). Geno o erador de pulsos de reloj que sincronizan el funcionamiento de todo el sistema. Los productos que para su regulacin incorporan un microcontrolador o 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 abilidad al reemplazar el microcontrolador por un elevado nmero de elementos disminuye el riesgo de aver y se precisan u as menos ajustes. Reduccin del tamao en el producto acabado. La integracin o n o del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor exibilidad: las caracter sticas de control estn programadas a por lo que su modicacin slo necesita cambios en el programa de instruco o ciones. Debido a su reducido tamao es posible montar el controlador en el propio n dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller).

1.2.

Diferencia entre microprocesador y microcontrolador

El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (CPU), tambin llamada procesador, de una computadora. La e

Universidad de Guanajuato

FIMEE

1.2. Diferencia entre microprocesador y microcontrolador

3

UCP est formada por la Unidad de Control, que interpreta las instrucciones, a y el Camino de Datos, que las ejecuta. Las patitas de un microprocesador sacan al exterior las l neas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los Mdulos de E/S y congurar una o computadora implementada por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su conguracin es variable de o acuerdo con la aplicacin a la que se destine. (Figura 1.1) o

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 aplicacin. Si slo se dispusiese de un modelo de microproceo o sador, ste deber tener muy potenciados todos sus recursos para podere a se adaptar a las exigencias de las diferentes aplicaciones. Esta potenciacin o supondr en muchos casos un despilfarro. a El microcontrolador, por otro lado, es un sistema cerrado. Todas las partes del microcontrolador estn contenidas en su interior y slo salen al exterior a o las l neas que gobiernan los perifricos. e En la prctica cada fabricante de microcontroladores oferta un elevaa do nmero de modelos diferentes, desde los ms sencillos hasta los ms u a a poderosos. Es posible seleccionar la capacidad de las memorias, el nmero de u l neas 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 n es la seleccin del microcontrolador a utilizar. o

Universidad de Guanajuato

FIMEE

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 ms productos que incorporan un microcontrolador con a el n de aumentar sustancialmente sus prestaciones, reducir su tamao y n costo, mejorar su abilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el milln de unidades de un modelo determinao do producidas en una semana. Este dato puede dar una idea de la masiva utilizacin de estos componentes. o Los microcontroladores estn siendo empleados en multitud de sistemas a presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigor cos, televisores, computadoras, impresoras, mdems, el sistema o de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentacin electrnica, o o control de sistemas en una nave espacial, etc. Una aplicacin t o pica podr a emplear varios microcontroladores para controlar pequeas partes del sisn tema. Estos pequeos controladores podr comunicarse entre ellos y con n an un procesador central, probablemente ms potente, para compartir la infora macin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente o en cualquier PC.

1.4.

El mercado de los microcontroladores

Aunque en el mercado de la microinformtica la mayor atencin la acaa o paran los desarrollos de los microprocesadores, lo cierto es que se venden Universidad de Guanajuato FIMEE

1.5. Qu microcontrolador emplear? e

5

cientos de microcontroladores por cada uno de aqullos. Existe una gran die versidad de microcontroladores. Quiz la clasicacin ms importante sea a o a entre microcontroladores de 4, 8, 16 32 bits. Aunque las prestaciones de o 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 razn de esta tendencia es que los o microcontroladores de 4 y 8 bits son apropiados para la gran mayor de a las aplicaciones, lo que hace absurdo emplear micros ms potentes y consea cuentemente ms caros. a Uno de los sectores que ms tira del mercado del microcontrolador es el a mercado automovil stico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modicadas posteriormente para adaptarse a sistemas ms genricos. El mercado del aua e tomvil es adems uno de los ms exigentes: los componentes electrnicos o a a o deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo ables. El fallo de cualquier componente en un automvil o puede ser el origen de un accidente. En cuanto a las tcnicas de fabricacin, cabe decir que prcticamente e o a la totalidad de los microcontroladores actuales se fabrican con tecnolog a CMOS (Complementary Metal Oxide Semiconductor). Esta tecnolog sua pera las tcnicas anteriores por su bajo consumo y alta inmunidad al ruido. e La distribucin de las ventas segn su aplicacin es la siguiente: Una tero u o cera parte se absorbe en las aplicaciones relacionadas con las computadoras y sus perifricos. La cuarta parte se utiliza en las aplicaciones de consumo e (electrodomsticos, juegos, TV, v e deo, etc.). Tambin los modernos microe controladores de 32 bits van aanzando sus posiciones en el mercado, siendo las reas de ms inters el procesamiento de imgenes, las comunicaciones, las a a e a aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

1.5.

Qu microcontrolador emplear? e

A la hora de escoger el microcontrolador a emplear en un diseo concren to hay que tener en cuenta multitud de factores, como la documentacin y o herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes Universidad de Guanajuato FIMEE

1.5. Qu microcontrolador emplear? e

6

que lo producen y por supuesto las caracter sticas del microcontrolador (tipo de memoria de programa, nmero de temporizadores, interrupciones, etc.). u Los costos, como es lgico, los fabricantes de microcontroladores compiten o duramente para vender sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10 veces ms microcontroladores que mia croprocesadores. Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su producto una diferencia de precio en el microcontrolador es importante (el consumidor deber pagar adems el costo del a a empaquetado, el de los otros componentes, el diseo del hardware y el desarn rollo del software). Si el fabricante desea reducir costos debe tener en cuenta las herramientas 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 aplicacin. o Procesamiento de datos; Puede ser necesario que el microcontrolador realice clculos cr a ticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo sucientemente rpido para ello. a Por otro lado, habr que tener en cuenta la precisin de los datos a a o manejar: si no es suciente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 32 bits, o incluso a o hardware de punto otante. Una alternativa ms barata y quiz sua a ciente es usar librer para manejar los datos de alta precisin. as o Entrada Salida: para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identicar la cantidad y tipo de seales a contron lar. Una vez realizado este anlisis puede ser necesario aadir perifricos a n e hardware externos o cambiar a otro microcontrolador ms adecuado a a ese sistema. Consumo: algunos productos que incorporan microcontroladores estn alia mentados con bater y su funcionamiento puede ser tan vital como as activar una alarma antirrobo. Lo ms conveniente en un caso como a Universidad de Guanajuato FIMEE

1.5. Qu microcontrolador emplear? e

7

ste puede ser que el microcontrolador est en estado de bajo consumo e e pero que despierte ante la activacin de una seal (una interrupcin) y o n o ejecute el programa adecuado para procesarla. Memoria: para detectar las necesidades de memoria de nuestra aplicacin o debemos separarla en memoria voltil (RAM), memoria no voltil (ROM, a a EPROM, etc.) y memoria no voltil modicable (EEPROM). Este ultia mo tipo de memoria puede ser util para incluir informacin espec o ca de la aplicacin como un nmero de serie o parmetros de calibracin. El o u a o tipo de memoria a emplear vendr determinado por el volumen de vena tas previsto del producto: de menor a mayor volumen ser conveniente a emplear EPROM, OTP (One Time Pro- grammable) y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versin preliminar, aunque sea en pseudo-cdigo, de la aplicacin o o o y a partir de ella hacer una estimacin de cunta memoria voltil y no o a a voltil es necesaria y si es conveniente disponer de memoria no voltil a a modicable. Ancho de palabra: el criterio de diseo debe ser seleccionar el microconn trolador de menor ancho de palabra que satisfaga los requerimientos de la aplicacin. Usar un microcontrolador de 4 bits supondr una reo a duccin en los costos importante, mientras que uno de 8 bits puede ser o el ms adecuado si el ancho de los datos es de un byte. Los microcona 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). Dise o de la placa: la seleccin de un microcontrolador concreto condin o cionar el diseo de la placa de circuitos. Debe tenerse en cuenta que a n quiz usar un microcontrolador barato encarezca el resto de compoa nentes del diseo. Los microcontroladores ms populares se encuentran, n a 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 todav sea muy popular. a 8051 (Intel y otros). Es sin duda el microcontrolador ms popular. Fcil a a de programar, pero potente. Est bien documentado y posee cientos de a 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 Universidad de Guanajuato FIMEE

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 perifricos. Son microcontroladores e de alt simas prestaciones. PIC (MicroChip) familia de microcontroladores que gana popularidad d a d Fueron los primeros microcontroladores RISC. Es preciso a a. resaltar en este punto que existen innumerables familias de microcontroladores, cada una de las cuales posee un gran nmero de variantes. u

1.6.

Recursos comunes a todos los microcontroladores

Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus caracter sticas bsicas son muy parecidas. Todos deben a disponer de los bloques esenciales: Procesador, memoria de datos y de instrucciones, l neas de E/S, oscilador de reloj y mdulos controladores de o perifricos. Sin embargo, cada fabricante intenta enfatizar los recursos ms e a idneos para las aplicaciones a las que se destinan preferentemente. o 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 segn el modelo seleccionado. u

1.6.1.

Arquitectura bsica a

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clsica de von Neumann, en el momento presente se impone la arquia tectura 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 unico e (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes, una que contiene slo instrucciones y otra, slo datos. o o Universidad de Guanajuato FIMEE

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) simultneamente en ambas a memorias.Los microcontroladores PIC responden a la arquitectura Harvard.

1.6.2.

El procesador o CPU

Es el elemento ms importante del microcontrolador y determina sus prina cipales caracter sticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo de la instruccin o o en curso, su decodicacin y la ejecucin de la operacin que implica la ino o o struccin, as como la bsqueda de los operandos y el almacenamiento del o u 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 u estn basados en la losof CISC (Computadoras de Juego de Instrua a cciones Complejo). Disponen de ms de 80 instrucciones mquina en a a su repertorio, algunas de las cuales son muy sosticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los proceo sadores CISC es que ofrecen al programador instrucciones complejas que actan como macros. u RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la losof RISC (Coma a a putadoras de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones mquina es muy reducido y las instruca ciones 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 espec a co, o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista. o Esta losof se ha bautizado con el nombre de SISC (Computadoras a de Juego de Instrucciones Espec co).

Universidad de Guanajuato

FIMEE

1.6. Recursos comunes a todos los microcontroladores

10

1.6.3.

Memoria

En los microcontroladores la memoria de instrucciones y datos est ina tegrada en el propio chip. Una parte debe ser no voltil, tipo ROM, y se a destina a contener el programa de instrucciones que gobierna la aplicacin. o Otra parte de memoria ser tipo RAM, voltil, y se destina a guardar las a a 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 slo se destina a una o tarea en la memoria ROM, slo hay que almacenar un unico programa de o trabajo. La RAM en estos dispositivos es de poca capacidad pues slo debe o contener las variables y los cambios de informacin que se produzcan en el o transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere o guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadoras personales estn habituados a manejar a Megabytes de memoria, pero, los diseadores con microcontroladores traban jan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Segn el tipo de memoria ROM que dispongan los microcontroladores, u la aplicacin y utilizacin de los mismos es diferente. Se describen las cinco o o versiones de memoria no voltil que se pueden encontrar en los microcontroa ladores del mercado. ROM: con mscara Es una memoria no voltil de slo lectura cuyo cona a o tenido se graba durante la fabricacin del chip. El elevado costo del o diseo de la mscara slo hace aconsejable el empleo de los micron a o controladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP: El microcontrolador contiene una memoria no voltil de slo lectura a o programable una sola vezpor el usuario. Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde una PC. La versin OTP es recomendable o cuando es muy corto el ciclo de diseo del producto, o bien, en la consn Universidad de Guanajuato FIMEE

1.6. Recursos comunes a todos los microcontroladores

11

truccin de prototipos y series muy pequeas. Tanto en este tipo de o n memoria como en la EPROM, se suele usar la encriptacin mediante o fusibles para proteger el cdigo contenido. o 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, o 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 cpsulas son de material cermico y son ms caros que los a a a microcontroladores con memoria OTP que estn hechos con material a plstico. a EEPROM: Se trata de memorias de slo lectura, programables y borrables o elctricamente EEPROM (Electrical Erasable Programmable Read OnIy e Memory). Tanto la programacin como el borrado, se realizan elctrio e camente desde el propio grabador y bajo el control programado de una PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. o a o No disponen de ventana de cristal en la supercie. 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 circuitoque coneren una gran exibilidad y rapidez a la hora de realizar modicaciones en el programa de trabajo. El nmero de veces que u puede grabarse y borrarse una memoria EEPROM es nito, por lo que no es recomendable una reprogramacin continua. Son muy idneos o o para la enseanza y la Ingenier de diseo. n a n Se va extendiendo en los fabricantes la tendencia de incluir una pequea n zona de memoria EEPROM en los circuitos programables para guardar y modicar cmodamente una serie de parmetros que adecuan el diso a positivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede a escribir y borrar. Funciona como una ROM y una RAM pero consume Universidad de Guanajuato FIMEE

1.6. Recursos comunes a todos los microcontroladores

12

menos y es ms pequea. A diferencia de la ROM, la memoria FLASH a n es programable en el circuito. Es ms rpida y de mayor densidad que a a la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando a se precisa gran cantidad de memoria de programa no voltil. Es ms a a 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 automvil permite que pueda modicarse el programa durante la rutina de o mantenimiento peridico, compensando los desgastes y otros factores tales o como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin o o o 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 cpsula que contiene un a microcontrolador es soportar las l neas de E/S que comunican al computador interno con los perifricos exteriores. Segn los controladores de perifricos e u e que posea cada modelo de microcontrolador, las l neas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control. n

1.6.5.

Reloj principal

Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que congura los pulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Generalo mente, el circuito de reloj est incorporado en el microcontrolador y slo se a o 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 a RC. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energ a. Universidad de Guanajuato FIMEE

1.7. Recursos especiales

13

1.7.

Recursos especiales

Cada fabricante oferta numerosas versiones de una arquitectura bsica a de microcontrolador. En algunas ampl las capacidades de las memorias, en a otras incorpora nuevos recursos, en otras reduce las prestaciones al m nimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el n modelo m nimo que satisfaga todos los requerimientos de su aplicacin. De o esta forma, minimizar el coste, el hardware y el software. Los principales a recursos espec cos que incorporan los microcontroladores son: Temporizadores o Timers. Perro guardin o Watchdog. a Proteccin ante fallo de alimentacin o Brownout. o o Estado de reposo o de bajo consumo. Conversor A/D. o Conversor D/A. Comparador analgico. o Modulador de anchura de pulsos o PWM. Puertos de E/S digitales. Puertos de comunicacin. o

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 continuacin dicho valor se va incrementando o decrementando al ritmo o de los pulsos de reloj o algn mltiplo hasta que se desborde y llegue a 0, u u momento en el que se produce un aviso. Cuando se desean contar acontecimientos 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

FIMEE

1.7. Recursos especiales

14

1.7.2.

Perro guardin o Watchdog a

Cuando una computadora personal se bloquea por un fallo del software u otra causa, se pulsa el botn del reset y se reinicializa el sistema. Pero un o microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del d El Perro guardin consiste en un temporizador a. a que, cuando se desborda y pasa por 0, provoca un reset automticamente en a el sistema. Se debe disear el programa de trabajo que controla la tarea de n forma que refresque o inicialice al Perro guardin antes de que provoque el a reset. Si falla el programa o se bloquea, no se refrescar al Perro guardin y, a a al completar su temporizacin, ladrar y ladrarhasta provocar el reset. o a a

1.7.3.

Proteccin ante fallo de alimentacin o Brownout o o

Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje m o nimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se o mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.

1.7.4.

Estado de reposo de bajo consumo o

Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento u externo que le ponga de nuevo en funcionamiento. Para ahorrar energ (faca, tor clave en los aparatos porttiles), los microcontroladores disponen de una a instruccin especial (SLEEP en los PIC), que les pasa al estado de reposo o o de bajo consumo, en el cual los requerimientos de potencia son m nimos. En dicho estado se detiene el reloj principal y se detienen sus circuitos asociados, quedando sumido en un profundo sueo el microcontrolador. Al activarse una n interrupcin ocasionada por el acontecimiento esperado, el microcontrolador o se despierta y reanuda su trabajo.

1.7.5.

Conversor A/D (CAD)

Los microcontroladores que incorporan un Conversor A/D (Analgico/Digital) o pueden procesar seales analgicas, tan abundantes en las aplicaciones. Suen o len disponer de un multiplexor que permite aplicar a la entrada del CAD Universidad de Guanajuato FIMEE

1.7. Recursos especiales diversas seales analgicas desde las patitas del circuito integrado. n o

15

1.7.6.

Conversor D/A (CDA)

Transforma los datos digitales obtenidos del procesamiento de una computadora en su correspondiente seal analgica que saca al exterior por una n o de las patitas de la cpsula. Existen muchos dispositivos que trabajan con a seales analgicas. n o

1.7.7.

Comparador analgico o

Algunos modelos de microcontroladores disponen internamente de un Amplicador Operacional que acta como comparador entre una seal ja u n de referencia y otra variable que se aplica por una de las patitas de la cpsula. a La salida del comparador proporciona un nivel lgico 1 0 segn una seal o o u n sea mayor o menor que la otra. Tambin hay modelos de microcontroladores e con un mdulo de tensin de referencia que proporciona diversas tensiones o o 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 travs de las patitas del encapsulado. e

1.7.9.

Puertos de E/S digitales

Todos los microcontroladores destinan algunas de sus patitas a soportar l neas de E/S digitales. Por lo general, estas l neas se agrupan de ocho en ocho formando Puertos. Las l neas digitales de los Puertos pueden congurarse como Entrada o como Salida cargando un 1 un 0 en el bit correspondiente de un registro o destinado a su conguracin. o

Universidad de Guanajuato

FIMEE

1.8. Herramientas para el desarrollo de aplicaciones

16

1.7.10.

Puertos de comunicacin o

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 comunicacin serie as o ncrona. USART: adaptador de comunicacin serie s o ncrona y as ncrona Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB: (Universal Serial Bus), que es un moderno bus serie para las PC. Bus I2C: que es un interfaz serie de dos hilos desarrollado por Philips. CAN(Controller Area Network ): , para permitir la adaptacin con reo des de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles. En EE.UU. se o usa el J185O.

1.8.

Herramientas para el desarrollo de aplicaciones

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

1.8.1.

Desarrollo del software (Ensamblador)

La programacin en lenguaje ensamblador puede resultar un tanto dif o cil para el principiante, pero permite desarrollar programas muy ecientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes Universidad de Guanajuato FIMEE

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 versin gratuita para los microcontroo ladores ms populares. a Compilador: La programacin en un lenguaje de alto nivel (como el C el o o Basic) permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el cdigo resultante puede ser o mucho ms ineciente que el programado en ensamblador. a Las versiones ms potentes suelen ser muy caras, aunque para los microa controladores ms populares pueden encontrarse versiones demo limia tadas e incluso compiladores gratuitos. Depuracin: Debido a que los microcontroladores van a controlar disposio tivos f sicos, los desarrolladores necesitan herramientas que les permitan 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 ejecucin de un programa, siendo ideales para o la depuracin de los mismos. Su gran inconveniente es que es dif o cil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas, pero, al menos, permiten el paso f sico de la implementacin de un modo ms seguro y o a menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de evaluacin; Se trata de pequeos sistemas con un microcontroo n lador ya montado y que suelen conectarse a una PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fcil acceso a los a pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluacin, aparte de o Universidad de Guanajuato FIMEE

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 ejecucin paso a pao 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 antrin y el zcalo de la tarjeta de circuito impreso donde se o o alojar el microcontrolador denitivo. El programa es ejecutado desde a una PC, pero para la tarjeta de aplicacin es como si lo hiciese el o mismo microcontrolador que luego ir en el zcalo. Presenta en pantalla a o toda la informacin tal y como luego suceder cuando se coloque el o a encapsulado.

Universidad de Guanajuato

FIMEE

Cap tulo 2 Introduccin al PIC16F873 oEn este capitulo se trataran las diversas caracter sticas de este microcontrolador. Tambin se tratarn las funciones bsica como lo es la conguracin e a a o para la entrada y salida de informacin. o

2.1.

Descripcin del PIC16F873 o

El PIC16F873 es un microcontrolador de Microchip,el cual tiene las siguientes caracter sticas. Cuadro 2.1: Caracter sticas del PIC16F873 Caracter stica Descripcin o Frecuencia de operacin o 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 Mdulos de Captura/Comparacion/PWM o 2 Comunicacin serial tipo o MSSP, USART Mdulo Anlogo-Digital (10 bits) o a 5 canales de entrada Conjunto de instrucciones 35 Por lo que el PIC es muy util para para el desarrollo de diferentes apli 19

2.2. Encapsulado caciones tales como control y procesamiento digital de seales. n

20

2.2.

Encapsulado

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

Figura 2.1: Encapsulado del PIC16F873.

Universidad de Guanajuato

FIMEE

2.3. Organizacin de memoria o

21

2.3.

Organizacin de memoria o

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 Propsito General y Registros de Funciones Especiales. o Los bits RP1 (STATUS(6)) y RP0 (STATUS(5)) son usados para la seleccin o del banco. P1:RP0 00 01 10 11 Banco 0 1 2 3

Cada banco se extiende hasta la direccin 7Fh (128 bytes). La parte baja o de cada banco es reservada para los Registros de Funciones Especiales. Los Registro de Propsito General pueden ser accesados cada uno directamente, o o indirectamente. La conformacin de los bancos se muestra en la Figura 2.2. o

Universidad de Guanajuato

FIMEE

2.3. Organizacin de memoria o

22

Figura 2.2: Mapa de los bancos del PIC16F873.

Universidad de Guanajuato

FIMEE

2.4. Puertos de Entrada/Salida

23

2.4.

Puertos de Entrada/Salida

Los PICs tiene la caracter sticas de que sus pines pueden ser todos congurados de acuerdo a la necesidad de la aplicacin, es decir, que lo pines de un o mismo puerto pueden ser usados unos como entradas y otros como salidas. Adems, algunos pines E/S de los puertos son multiplexados a una funa ciona alternativa de caracter sticas perifricas. En general, cuando una fune cin de estas es habilitada, ese pin tal vez no pueda ser usado como un pin o de propsito de E/S. o

2.4.1.

PUERTO A y el Registro TRISA

El puerto A es un puerto bidireccional con un ancho de 6 bits. La correspondiente direccin de datos es el registro TRISA. Al puerto A le coro responde la direccin 05h del banco 0, en tanto que al registro TRISA le o corresponde la misma direccin pero del banco 1. Si queremos que el puerto o A funcione como entrada de datos debemos poner los correspondientes bits del registro TRISA en 1, en cambio, si queremos que dicho puertos funcione como salida debemos colocar los del registro TRISA 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 correspondiente direccin de datos es el registro TRISB. Al puerto B le coro responde la direccin 06h del banco 0, en tanto que al registro TRISB le o corresponde la misma direccin pero del banco 1. o La conguracin del puerto B se realiza de la misma forma que el puerto o A, solo que ahora se manipula el registro TRISB.

2.4.3.

PUERTO C y el Registro TRISC

El puerto C es un puerto bidireccional con un ancho de 8 bits. La correspondiente direccin de datos es el registro TRISC. Al puerto A le coro responde la direccin 07h del banco 0, en tanto que al registro TRISC le o corresponde la misma direccin pero del banco 1. o

Universidad de Guanajuato

FIMEE

2.5. Ejemplo de conguracin para E/S o

24

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

2.5.

Ejemplo de conguracin para E/S o

En este ejemplo se mostrar la forma de realizar la conguracin del a o puerto A como entradas y el puerto B como salidas. LIST RADIX w f P=16F873;Usaremos el PIC16F873A-04/P HEX ;Todo en hexadecimal ;Cuando d=0 el destino es w ;Cuando d=1 el destino es f

EQU 0 EQU 1

;Declaracin de las variables o PUERTOA EQU 05 PUERTOB EQU 06 ESTADO EQU 03 ORG goto ORG 0 inicio 5 ;Direccin del Puerto A o ;Direccin del Puerto B o ;Control de los bancos

;Salto al vector de interrupcin o

;Configuracin de los puertos A como Entrada y B como Salida o inicio bsf ESTADO,5 ;Apertura del banco 1 movlw 0x3Fh movwf PUERTOA ;se configuran PUERTOA como entradas clrw movwf PUERTOB ;y configuran PUERTOB como salidas bcf ESTADO,5 ;Cierre del banco 1 ;Inicio de programa clrf PUERToB CICLO movf PUERTOA,w movwf PUERTOB goto CICLO END Universidad de Guanajuato

;Todo a pagado ;Lleva lo del puerto A a W ;Lleva W al puerto B ;Fin del programa FIMEE

2.5. Ejemplo de conguracin para E/S o

25

Cuadro Pin OSC1/CLKIN OSC2/CLKOUT MCLR/VPP/THV RA0/AN0 RA1/AN1 3 3 RA2/AN2/VREF RA3/AN3/VREF+ RA4/T0CKI RA5/SS/AN4

2.2: Descripcin de pines del 16F873 o Tipo Descripcin o E Entrada de oscilador de cristal S Salida de oscilador de cristal E/V Reset o entrada de voltaje de programacin o E/S E/S E/S E/S E/S E/SPUERTO A es un puerto bidirectional de E/S RA0 Tambin puede ser entrada analgica 0 e o RA1 Tambin puede ser entrada analgica 1 e o RA2 Tambin puede ser entrada analgica 2 o e o referencia analgica de voltaje negativo o RA3 Tambin puede ser entrada analgica 3 o e o referencia analgica de voltaje positivo o RA4 Puede ser tambin la entrada de reloj e del mdulo Temporizador 0 o RA5 Tambin puede ser entrada analgica 4 e o o esclavo en la seleccin de puertos serial s o ncrono PUERTOB es un puerto bidirectional de E/S RB0 Tambin puede ser pin de interrupcin externa e o RB3 Puede ser entrada de bajo voltaje de programacin o Reloj de programacin serial o Dato serial de programacin o 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 sincron serial a

RB0/INT RB1, RB2 RB3/PGM RB4, RB5 RB6/PGC RB7/PGD RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4 RC5 RC6/TX/CK RC7/RX/DT VSS VDD

E/S E/S E/S E/S E/S E/S E/S E/S ST E/S E/S E/S E/S E/S E/S G V

RC4 puede ser entrada de dato SPI (en modo SPI) RC4 puede ser salida de dato SPI (en modo SPI)RC6 Puede ser pin transmisin USART o RC7 Puede ser pin de recepcin USART o

Referencia de tierra Fuente positiva . FIMEE

Universidad de Guanajuato

Cap tulo 3 Algoritmos implementadosEn este capitulo se describirn la algoritmos implementados, as como a los diagramas para implementarlos f sicamente. Adems, se describirn los a a 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 tcnica de modulacion de e ancho de pulso o PWM. Dicha tcnica consiste en hacer variar el ancho del e pulso o ciclo de trabajo de una seal (Figura 3.1). n As mientras el pulso sea ms ancho, la velocidad del motor ser ms , a a a rpida y en cambio se el ancho del pulso es ms pequeo la velocidad disa a n 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 daar el PIC, por lo que se har uso de el driver(L293D) para controlar el n a a motor.

26

3.1. Control de velocidad

27

Figura 3.1: Modulacin por ancho de pulso (PWM). o

3.1.1.

Driver L293D

El L293 es un driver en circuito integrado para control de motores simultneos en forma bidireccional, el circuito usa dos puentes cada uno con a un par de canales y equipado con una entrada de habilitacin o enable (Figuo 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 calentamiento del driver. Adems, como se ve en la Figura cuenta con unos diodos a 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

FIMEE

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

FIMEE

3.1. Control de velocidad

29

Figura 3.4: Conexin del L293D. o Cuadro 3.1: Descripcin de funcionamiento del L293D o ENABLE DIRA DIRB Function H H L Giro a la derecha H L H Giro a la izquierda H L/H L/H Alto rpido a L cualquiera cualquiera Alto lento

Universidad de Guanajuato

FIMEE

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 girar de manera constante a una a velocidad dada. En cambio si se quire que el motor ofrezca su mxima vea locidad se coloca la palabra FFh. El cdigo utilizado se muestra en seguida. o

w f

LIST RADIX EQU 0 EQU 1

P=16F873 HEX

;Usaremos el PIC16F873-04/P ;Todo en hexadecimal ;Cuando d=0 el destino es w ;Cuando d=1 el destino es f

;****************Declaracin de las variables****************** o PUERTOA EQU 05 PUERTOB EQU 06 ESTADO EQU 03 ;********Variables auxiliares para el retardo************* AUX1 EQU 0F AUX2 EQU 0E AUX3 EQU 0C ORG goto ORG 0 inicio 5

;***************Configuracin de Entradas/Salidas************** o

Universidad de Guanajuato

FIMEE

3.1. Control de velocidad inicio bsf ESTADO,5 clrw movwf PUERTOA movlw 0x0FF movwf PUERTOB bcf ESTADO,5 ;Apertura del banco 1 ;Se limpia w (w=00h) ;PUERTOA como salidas ;PUERTOB como entradas ;Cierre del banco 1

31

;**************Programa principal******************************* clrf PUERTOA ;Todo apagado en el puerto A ciclo movf PUERTOB,w ;Mueve lo del puerto de entrada a W movwf AUX2 ;Mueve w a la direccin de memoria que o ;apunta AUX2 (0Eh) ;********Clculo de tiempo que durar en bajo la se~al****** a a n 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 ;direccin que apunta AUX3 (0Ch) o ;*********************************************************** movf AUX2,w addlw 0X01 movwf AUX2 decfsz AUX2,f goto uno goto cero ;********************************************************** uno movlw 0x01 ;Lleva el valor 01h a W movwf PUERTOA ;Lleva W al puerto A call retardo ;Llamado de el divisor de frecuencia decfsz AUX2,f ;Se decrementa AUX2 y se deposita en ;ella misma y si llega a cero cambia ;la salida a 00h goto uno ;si no es cero se repite cero movlw 0x00 ;Lleva el valor 00h a W movwf PUERTOA ;Lleva W al puerto A call retardo ;Llamado de el divisor de frecuencia decfsz AUX3,f ;Se decrementa AUX3 y se deposita en ;ella misma y si llega a cero ;salta a la ultima instruccin o Universidad de Guanajuato FIMEE

3.1. Control de velocidad

32

goto cero ;si no es cero se repite ;********************************************************* goto ciclo ;Vuelve a iniciar ;***************Rutina de retardo***************************** ;Esta rutina se utiliza como un divisor de frecuencia, ya que no ;se puede utilizar la frecuencia del PIC de manera directa. retardo movlw movwf decfsz goto one return END 0x90 AUX1 AUX1,f ;se lleva este valor tambin a AUX2 e ;Se decrementa AUX1 y se deposita en ;ella misma ;si llega a cero sale e la rutina ;Una vez completados los ciclos se regresa ;al programa principal ;Fin del programa

one

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

3.1.3.

Diagrama de implementacin o

El diagram de conexin para el motor junto con el driver para el control o de velocidad. En la Figura 3.5 se presenta el esquema de conexin. o Como se mencion anteriormente los 8 bits del puerto B se utilizaron o como entradas y solo 2 pines del puerto A como salidas. En esta aplicacin solo se us un motor y el pin 8 correspondiente a VS o o se conecto a la misma fuente debido a que se uso un motor pequeo, pero n pude utilizarse otro voltaje mucho mayor.

Universidad de Guanajuato

FIMEE

3.2. Medidor de distancia con un sensor infrarrojo

33

Figura 3.5: Diagrama de conexin. o

3.2.

Medidor de distancia con un sensor infrarrojo

Para el desarrollo de esta aplicacin se utilizo el convertidor Analgicoo o Digital del PIC y el sensor infrarrojo de la marca Sharp modelo GP2D12.

3.2.1.

Convertidor Analgico-Digital o

El mdulo convertidor Analgico-Digital (A/D) tiene 5 entradas o canales. o o La entrada analgica carga un muestra y la mantiene en un capacitor. La o salida del muestreo y la retencin en el capacitor es la entrada al convertidor. o El convertidor entonces genera un resultado digital del nivel analgico o por el mtodo de aproximaciones sucesivas. La conversin Analgico-Digital e o o de la entrada analgica resulta en un correspondiente nmero de 10 bits. El o u mdulo A/D tiene entradas de referencia de alto volatje (VDD ) y bajo voltao je (VSS ). Este mdulo tiene la caracteritica de que puede operar mientras el o PIC se encuentra en el modo de bajo consumo de voltaje (SLEEP mode). EL mdulo de conversin A/D esta formado por cuatro registros. Estos o o Universidad de Guanajuato FIMEE

3.2. Medidor de distancia con un sensor infrarrojo registros son: Registro de resultado parte alta (ADRESH) Registro de resultado parte baja (ADRESL) Registro de control0 (ADCON0) Registro de control1 (ADCON1)

34

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

Figura 3.6: Registro de control ADCON0.

Universidad de Guanajuato

FIMEE

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 conversin A/D. Cuando el proceso de conversin A/D esta completo el reo o sultado es cargado en este par de registros, el bit GO/DONE (ADCON0(2)) es limpiado. Despus de que el mdulo A/D ha sido congurado como se desea, la see o leccin del canal debe ser realizada antes de iniciar la conversin. Los canales o o analgicos deben tener sus correspondientes bits TRIS seleccionados como o entrada. En los siguientes pasos se muestran como realizar la conversin: o Universidad de Guanajuato FIMEE

3.2. Medidor de distancia con un sensor infrarrojo 1. Conguracin de mdulo A/D: o o

36

Seleccionar los canales de entrada,voltaje de referencia y E/S digitales (ADCON1) Seleccionar el canal de entrada A/D (ADCON0) Seleccionar reloj de conversin (ADCON0) o Encender el mdulo A/D (ADCON0) o 2. Espera el tiempo requerido de adquisicin o 3. Iniciar conversion 4. Espera el proceso de conversin, por: o Limpiado del bit GO/DONE (ADCON0) 5. Leer el resultado en el par de registros (ADRESH:ADRESL) 6. Para la siguiente conversin repita el paso 1 e inicie la conversin. o o Seleccin del reloj de Conversion A/D: La fuente de reloj para la cono versin A/D es seleccionada por software. Las cuatro posibles opciones o son: 2TOSC 8TOSC 32TOSC Internal RC oscillator El Cuadro 3.2 muestra la frecuencia mxima de operacin del reloj a o seleccionado para el convertidor A/D. Registro de resultados A/D : El par de registro ADRESH:ADESRL es la locacin donde es cargado el resultado de 10 bits de la conversin o o A/D. El par de registros presenta un ancho de 16 bits. El mdulo A/D o ofrece la exibilidad de justicar el resultado de 10 bits a la derecha o a la izquierda: El bit de seleccin del formato del resultado es el bit de o Universidad de Guanajuato FIMEE

3.2. Medidor de distancia con un sensor infrarrojo

37

Cuadro 3.2: Mximas frecuencias de operacin a o Operacin ADCS1:ADCS0 Max frec. o 2TOSC 00 1.25 MHz 8TOSC 01 5 MHz 32TOSC 10 20 MHz RC 11 control ADFM. La Figura 3.8 muestra la operacion de justicacin. Los bits extras son o le dos como ceros.

Figura 3.8: Operacin de justicacin. o o Adems, cuando en este par de registro no se escribe (Conversin A/D a o deshabilitada), estos registro pueden ser usados como dos registros de 8 bits de propsito general. o

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 FIMEE

3.2. Medidor de distancia con un sensor infrarrojo

38

Figura 3.9: Sensor infrarrojo GP2D12. T picamente, la salida es conectada a un convertidor A/D (como este caso) el cual convierte la distancia medida a un numero que puede ser usado por un microcontrolador. La salida puede ser tambin usada directamente en e un circuito analgico. o El GP2D12 no tiene una salida lineal para la distancia medida. La grca a de la Figura 3.10 muestra la t pica 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 implementacin. o Universidad de Guanajuato FIMEE

3.2. Medidor de distancia con un sensor infrarrojo

39

3.2.3.

Programa para la medicin de distancia o

Para este programa se hace uso del convertidor Analgico-Digital para o procesar la seal proveniente del sensor, la forma en que se hace la congun racin es siguiendo los pasos anteriormente dichos. o Antes de describir el cdigo se sealarn los parmetros con los que se o n a a congur el mdulo. o o Se congur el RA0 y RA1 con entradas analgicas, RA3 como refereno o cia positiva de voltaje (VREF + ) y el formato de salida con justicacin a la o izquierda, por lo que el dato que se debe de colocar en el registro ADCON1 es el 05h. Una vez congurado ADCON1, se congur ADCON0 con las siguientes o caracter sticas: 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 continuacin se muestra el programa para la medicin de distancia, el o o cual consiste en convertir la seal analgica proveniente del GP2D12 a digital n o y desplegar los 8 bits ms signicativos por los pines del puerto B. a LIST RADIX EQU 0 EQU 1 P=16F873 HEX ;Usaremos el PIC16F873-04/P ;Todo en hexadecimal ;Cuando d=0 el destino es w ;Cuando d=1 el destino es f

w f

;***********Declaracin de las variables************************* o PUERTOA EQU 05h PUERTOB EQU 06h ESTADO EQU 03h AUX1 EQU 0Fh ;Variables auxiliares AUX2 EQU 0Eh AUX3 EQU 0Ch ADCON EQU 1Fh ADRESH EQU 1Eh Universidad de Guanajuato FIMEE

3.2. Medidor de distancia con un sensor infrarrojo

40

ORG goto ORG

0 inicio 5

;Salto al vector de interrupcin o

;********Configuracin de los puertos como E/S***************** o inicio bsf ESTADO,5 ;Apertura del banco 1 movlw 0x0FF movwf PUERTOA ;PUERTOA como entradas clrw movwf PUERTOB ;PUERTOB como salida bcf ESTADO,5 ;Cierre del banco 1 ;*********Configuracin del mdulo de A/D********************* o o clrf PUERTOB ;Se limpian las salidas 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 registro ;de control ADCON1 bcf ESTADO,5 ;Cierre del banco 1 movlw 0x81 ;Mueve el valor de 81h a w movwf ADCON ;Mueve el valor de w (81h) al registro ; de control ADCON0 ;*********Proceso de conversin******************************* o CONV CHECA bsf BTFSC GOTO movf movwf goto END ADCON,2 ADCON,2 CHECA ADRESH,w PUERTOB CONV ;Inicia el proceso de conversion ;activando el bit GO/DONE ;Checa que el bit GO/DONE sea cero ;Salta a checar de nuevo el bit ;Mueve el resultado de la conversion a ;w ;Mueve el resultado guardado en w al ;puerto B ;Empieza de nuevo la conversin o

Universidad de Guanajuato

FIMEE

3.3. Implementacin o

41

3.3.

Implementacin o

El diagrama de la implementacin para este diseo se muestra e la Figura o n 3.11.

Figura 3.11: Diagrama de la implementacin para medicin de distancia. o o En este desarrollo la forma en que se visualiza es a travs de LEDs, pero e se pueden implementar otras interfaz de visualizacin como pantallas de LDC o o Display. Como se ve el diagrama es muy sencillo y aun se puede conectar otro sensor en el canal analgico RA1, pero aqu el problema es el desplegado ya o que los puertos con los que se cuenta no son muchos.

Universidad de Guanajuato

FIMEE