Manual PIC16F873

January 16, 2018 | Author: Alex Cardenas | Category: Microcontroller, Central Processing Unit, Instruction Set, Read Only Memory, Microprocessor
Share Embed Donate


Short Description

Download Manual PIC16F873...

Description

Manual de Microcontrolador 16F873 Universidad de Guanajuato FIMEE Barr´on Zambrano Jos´e Hugo Dr. Gustavo Cerda Villafana ˜

´Indice general ´Indice de cuadros

III

´Indice de figuras

IV

1. Introducci´on 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´e microcontrolador emplear? . . . . . . . . . . . . . . . . . 1.6. Recursos comunes a todos los microcontroladores . . . . . . . 1.6.1. Arquitectura b´asica . . . . . . . . . . . . . . . . . . . . 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 guardi´an o Watchdog . . . . . . . . . . . . . . . 1.7.3. Protecci´on ante fallo de alimentaci´on o Brownout . . . 1.7.4. Estado de reposo ´o de bajo consumo . . . . . . . . . . 1.7.5. Conversor A/D (CAD) . . . . . . . . . . . . . . . . . . 1.7.6. Conversor D/A (CDA) . . . . . . . . . . . . . . . . . . 1.7.7. Comparador anal´ogico . . . . . . . . . . . . . . . . . . 1.7.8. Modulador de anchura de pulso o PWM . . . . . . . . 1.7.9. Puertos de E/S digitales . . . . . . . . . . . . . . . . . 1.7.10. Puertos de comunicaci´on . . . . . . . . . . . . . . . . . 1.8. Herramientas para el desarrollo de aplicaciones . . . . . . . . . I

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) . . . . . . . . . 2. Introducci´on al PIC16F873 2.1. Descripci´on del PIC16F873 . . . . . . . . 2.2. Encapsulado . . . . . . . . . . . . . . . . 2.3. Organizaci´on de memoria . . . . . . . . . 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 configuraci´on para E/S . . .

16

. . . . .

19 19 20 21 21 23 23 23 23 24

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 implementaci´on . . . . . . . . . . . . . . 3.2. Medidor de distancia con un sensor infrarrojo . . . . . . . . . 3.2.1. Convertidor Anal´ogico-Digital . . . . . . . . . . . . . . 3.2.2. Sensor infrarrojo GP2D12. . . . . . . . . . . . . . . . . 3.2.3. Programa para la medici´on de distancia . . . . . . . . 3.3. Implementaci´on . . . . . . . . . . . . . . . . . . . . . . . . . .

26 26 27 30 32 33 33 37 39 41

Universidad de Guanajuato

. . . . . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . .

. . . . .

F IMEE

´Indice de cuadros 2.1. Caracter´ısticas del PIC16F873 . . . . . . . . . . . . . . . . . 19 2.2. Descripci´on de pines del 16F873 . . . . . . . . . . . . . . . . . 25 3.1. Descripci´on de funcionamiento del L293D . . . . . . . . . . . . 3.2. M´aximas frecuencias de operaci´on . . . . . . . . . . . . . . . .

III

29 37

´Indice de figuras 1.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. . . . . . . . . . . . . . . . . . . . 2.2. Mapa de los bancos del PIC16F873. . . . . . . . . . . . . . . .

20 22

3.1. Modulaci´on por ancho de pulso (PWM). . . . . . . . . . . . 3.2. Dirver L293D bloques. . . . . . . . . . . . . . . . . . . . . . 3.3. Dirver L293D encapsulado . . . . . . . . . . . . . . . . . . . 3.4. Conexi´on del L293D. . . . . . . . . . . . . . . . . . . . . . . 3.5. Diagrama de conexi´on. . . . . . . . . . . . . . . . . . . . . . 3.6. Registro de control ADCON0. . . . . . . . . . . . . . . . . . 3.7. Registro de control ADCON1. . . . . . . . . . . . . . . . . . 3.8. Operaci´on de justificaci´on. . . . . . . . . . . . . . . . . . . . 3.9. Sensor infrarrojo GP2D12. . . . . . . . . . . . . . . . . . . . 3.10. Curva de respuesta del sensor GP2D12. . . . . . . . . . . . . 3.11. Diagrama de la implementaci´on para medici´on de distancia.

IV

. . . . . . . . . . .

27 28 28 29 33 34 35 37 38 38 41

Cap´ıtulo 1 Introducci´on Los microcontroladores est´an conquistando el mundo. Est´an 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 computadoras, en los tel´efonos, en los hornos de microondas y los televisores de nuestro hogar. Pero la invasi´on acaba de comenzar y el nacimiento del siglo X X I ser´a testigo de la conquista masiva de estas diminutas computadoras, que gobernar´an 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 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 prefijados, 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 trav´es del tiempo, su implementaci´on f´ısica ha variado frecuentemente. Hace tres d´ecadas, los controladores se constru´ıan exclusivamente con componentes de l´ogica 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 coraz´on (chip) de un circuito integrado. Un microcontrolador es un circuito integrado de alta escala de integraci´on que incorpora la mayor parte de los elementos que configuran 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 m´odulos para el control de perif´ericos (temporizadores, Puertos Serie y Paralelo, CAD: Conversores Anal´ogico/Digital, CDA: Conversores Digital/Anal´ogico, etc.). Generador de pulsos de reloj que sincronizan el funcionamiento de todo el sistema. Los productos que para su regulaci´on incorporan un microcontrolador disponen de las siguientes ventajas: Aumento de prestaciones, un mayor control sobre un determinado elemento representa una mejora considerable en el mismo. Aumento de la fiabilidad al reemplazar el microcontrolador por un elevado n´umero de elementos disminuye el riesgo de aver´ıas y se precisan menos ajustes. Reducci´on del tamano ˜ en el producto acabado. La integraci´on del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las caracter´ısticas de control est´an programadas por lo que su modificaci´on s´olo necesita cambios en el programa de instrucciones. 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 microcontrolador

El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (CPU), tambi´en llamada procesador, de una computadora. La Universidad de Guanajuato

F IMEE

1.2. Diferencia entre microprocesador y microcontrolador

3

UCP est´a 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 l´ıneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los M´odulos de E/S y configurar una computadora implementada por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuraci´on es variable de acuerdo con la aplicaci´on a la que se destine. (Figura 1.1)

Figura 1.1: Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicaci´on. Si s´olo se dispusiese de un modelo de microprocesador, ´este deber´ıa tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciaci´on supondr´ıa en muchos casos un despilfarro. El microcontrolador, por otro lado, es un sistema cerrado. Todas las partes del microcontrolador est´an contenidas en su interior y s´olo salen al exterior las l´ıneas que gobiernan los perif´ericos. En la pr´actica cada fabricante de microcontroladores oferta un elevado n´umero de modelos diferentes, desde los m´as sencillos hasta los m´as poderosos. Es posible seleccionar la capacidad de las memorias, el n´umero de 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 diseno˜ es la selecci´on del microcontrolador a utilizar. Universidad de Guanajuato

F IMEE

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 m´as productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamano˜ y costo, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el mill´on de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizaci´on de estos componentes. Los microcontroladores est´an siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigor´ıficos, televisores, computadoras, impresoras, m´odems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentaci´on electr´onica, control de sistemas en una nave espacial, etc. Una aplicaci´on t´ıpica podr´ıa emplear varios microcontroladores para controlar pequenas ˜ partes del sistema. Estos pequenos ˜ controladores podr´ıan comunicarse entre ellos y con un procesador central, probablemente m´as potente, para compartir la informaci´on 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 microinform´atica la mayor atenci´on la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden Universidad de Guanajuato

F IMEE

1.5. ¿Qu´e microcontrolador emplear?

5

cientos de microcontroladores por cada uno de aqu´ellos. Existe una gran diversidad de microcontroladores. Quiz´a la clasificaci´on m´as 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 raz´on de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran mayor´ıa de las aplicaciones, lo que hace absurdo emplear micros m´as potentes y consecuentemente m´as caros. Uno de los sectores que m´as tira del mercado del microcontrolador es el mercado automovil´ıstico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas m´as gen´ericos. El mercado del autom´ovil es adem´as uno de los m´as exigentes: los componentes electr´onicos deben operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo fiables. El fallo de cualquier componente en un autom´ovil puede ser el origen de un accidente. En cuanto a las t´ecnicas de fabricaci´on, cabe decir que pr´acticamente la totalidad de los microcontroladores actuales se fabrican con tecnolog´ıa CMOS (Complementary Metal Oxide Semiconductor). Esta tecnolog´ıa supera las t´ecnicas anteriores por su bajo consumo y alta inmunidad al ruido. La distribuci´on de las ventas seg´un su aplicaci´on es la siguiente: Una tercera parte se absorbe en las aplicaciones relacionadas con las computadoras y sus perif´ericos. La cuarta parte se utiliza en las aplicaciones de consumo (electrodom´esticos, juegos, T V, v´ıdeo, etc.). Tambi´en los modernos microcontroladores de 32 bits van afianzando sus posiciones en el mercado, siendo las ´areas de m´as inter´es el procesamiento de im´agenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

1.5.

¿Qu´e microcontrolador emplear?

A la hora de escoger el microcontrolador a emplear en un diseno˜ concreto hay que tener en cuenta multitud de factores, como la documentaci´on y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes Universidad de Guanajuato

F IMEE

1.5. ¿Qu´e microcontrolador emplear?

6

que lo producen y por supuesto las caracter´ısticas del microcontrolador (tipo de memoria de programa, n´umero de temporizadores, interrupciones, etc.). Los costos, como es l´ogico, 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 m´as microcontroladores que microprocesadores. 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´a pagar adem´as el costo del empaquetado, el de los otros componentes, el diseno ˜ del hardware y el desarrollo 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 aplicaci´on. Procesamiento de datos; Puede ser necesario que el microcontrolador realice c´alculos cr´ıticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente r´apido para ello. Por otro lado, habr´a que tener en cuenta la precisi´on de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ´o 32 bits, o incluso a hardware de punto flotante. Una alternativa m´as barata y quiz´a suficiente es usar librer´ıas para manejar los datos de alta precisi´on. 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 identificar la cantidad y tipo de senales ˜ a controlar. Una vez realizado este an´alisis puede ser necesario anadir ˜ perif´ericos hardware externos o cambiar a otro microcontrolador m´as adecuado a ese sistema. Consumo: algunos productos que incorporan microcontroladores est´an alimentados con bater´ıas y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo m´as conveniente en un caso como Universidad de Guanajuato

F IMEE

1.5. ¿Qu´e microcontrolador emplear?

7

´este puede ser que el microcontrolador est´e en estado de bajo consumo pero que despierte ante la activaci´on de una senal ˜ (una interrupci´on) y ejecute el programa adecuado para procesarla. Memoria: para detectar las necesidades de memoria de nuestra aplicaci´on debemos separarla en memoria vol´atil (RAM), memoria no vol´atil (ROM, EPROM, etc.) y memoria no vol´atil modificable (EEPROM). Este ulti´ mo tipo de memoria puede ser util para incluir informaci´on espec´ıfica de ´ la aplicaci´on como un n´umero de serie o par´ametros de calibraci´on. El tipo de memoria a emplear vendr´a determinado por el volumen de ventas previsto del producto: de menor a mayor volumen ser´a conveniente emplear EPROM, OTP (One Time Pro- grammable) y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versi´on preliminar, aunque sea en pseudo-c´odigo, de la aplicaci´on y a partir de ella hacer una estimaci´on de cu´anta memoria vol´atil y no vol´atil es necesaria y si es conveniente disponer de memoria no vol´atil modificable. ˜ debe ser seleccionar el microconAncho de palabra: el criterio de diseno trolador de menor ancho de palabra que satisfaga los requerimientos de la aplicaci´on. Usar un microcontrolador de 4 bits supondr´a una reducci´on en los costos importante, mientras que uno de 8 bits puede ser el m´as adecuado si el ancho de los datos es de un byte. Los microcontroladores 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 selecci´on de un microcontrolador concreto condicionar´a el diseno ˜ de la placa de circuitos. Debe tenerse en cuenta que quiz´a usar un microcontrolador barato encarezca el resto de componentes del diseno. ˜ Los microcontroladores m´as populares se encuentran, sin duda, entre las mejores elecciones: 8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todav´ıa sea muy popular. 8051 (Intel y otros). Es sin duda el microcontrolador m´as popular. F´acil de programar, pero potente. Est´a bien documentado y posee cientos de variantes e incontables herramientas de desarrollo. 80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar Universidad de Guanajuato

F IMEE

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

1.6.

Recursos comunes a todos los microcontroladores

Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y sus caracter´ısticas b´asicas son muy parecidas. Todos deben disponer de los bloques esenciales: Procesador, memoria de datos y de instrucciones, l´ıneas de E/S, oscilador de reloj y m´odulos controladores de perif´ericos. Sin embargo, cada fabricante intenta enfatizar los recursos m´as id´oneos 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 seg´un el modelo seleccionado.

1.6.1.

Arquitectura b´asica

Aunque inicialmente todos los microcontroladores adoptaron la arquitectura cl´asica de von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a trav´es de un sistema de buses unico ´ (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes, una que contiene s´olo instrucciones y otra, s´olo datos. Universidad de Guanajuato

F IMEE

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

1.6.2.

El procesador o CPU

Es el elemento m´as importante del microcontrolador y determina sus principales caracter´ısticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el c´odigo de la instrucci´on en curso, su decodificaci´on y la ejecuci´on de la operaci´on que implica la instrucci´on, as´ı como la b´usqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC: Un gran n´umero de procesadores usados en los microcontroladores est´an basados en la filosof´ıa CISC (Computadoras de Juego de Instrucciones Complejo). Disponen de m´as de 80 instrucciones m´aquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecuci´on. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que act´uan como macros. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores est´an decant´andose hacia la filosof´ıa RISC (Computadoras de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones m´aquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. S I S C : En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adem´as de ser reducido, es espec´ıfico, o sea, las instrucciones se adaptan a las necesidades de la aplicaci´on prevista. Esta filosof´ıa se ha bautizado con el nombre de SISC (Computadoras de Juego de Instrucciones Espec´ıfico).

Universidad de Guanajuato

F IMEE

1.6. Recursos comunes a todos los microcontroladores

1.6.3.

10

Memoria

En los microcontroladores la memoria de instrucciones y datos est´a integrada en el propio chip. Una parte debe ser no vol´atil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicaci´on. Otra parte de memoria ser´a tipo RAM, vol´atil, 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 s´olo se destina a una tarea en la memoria ROM, s´olo hay que almacenar un unico programa de ´ trabajo. La RAM en estos dispositivos es de poca capacidad pues s´olo debe contener las variables y los cambios de informaci´on que se produzcan en el transcurso del programa. Por otra parte, como s´olo 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 est´an 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. Seg´un el tipo de memoria ROM que dispongan los microcontroladores, la aplicaci´on y utilizaci´on de los mismos es diferente. Se describen las cinco versiones de memoria no vol´atil que se pueden encontrar en los microcontroladores del mercado. R O M : con m´ascara Es una memoria no vol´atil de s´olo lectura cuyo contenido se graba durante la fabricaci´on del chip. El elevado costo del diseno ˜ de la m´ascara s´olo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP: El microcontrolador contiene una memoria no vol´atil de s´olo lectura ”programable una sola vez”por 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 versi´on OTP es recomendable cuando es muy corto el ciclo de diseno ˜ del producto, o bien, en la consUniversidad de Guanajuato

F IMEE

1.6. Recursos comunes a todos los microcontroladores

11

trucci´on de prototipos y series muy pequenas. ˜ Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptaci´on mediante fusibles para proteger el c´odigo contenido. EPROM: Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabaci´on 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 superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las c´apsulas son de material cer´amico y son m´as caros que los microcontroladores con memoria OTP que est´an hechos con material pl´astico. EEPROM: Se trata de memorias de s´olo lectura, programables y borrables el´ectricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programaci´on como el borrado, se realizan el´ectricamente desde el propio grabador y bajo el control programado de una PC. Es muy c´omoda y r´apida la operaci´on de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan ”grabadores en circuito”que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El n´umero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramaci´on continua. Son muy id´oneos para la ensenanza y la Ingenier´ıa 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 modificar c´omodamente una serie de par´ametros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. FLASH: Se trata de una memoria no vol´atil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume Universidad de Guanajuato

F IMEE

1.6. Recursos comunes a todos los microcontroladores

12

menos y es m´as pequena. ˜ A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es m´as r´apida y de mayor densidad que la EEPROM. La alternativa FLASH est´a recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no vol´atil. Es m´as veloz, pero tolera menos ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy utiles ´ al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As´ı, un dispositivo con este tipo de memoria incorporado al control del motor de un autom´ovil permite que pueda modificarse el programa durante la rutina de mantenimiento peri´odico, compensando los desgastes y otros factores tales como la compresi´on, la instalaci´on de nuevas piezas, etc. La reprogramaci´on 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 c´apsula que contiene un microcontrolador es soportar las l´ıneas de E/S que comunican al computador interno con los perif´ericos exteriores. Seg´un los controladores de perif´ericos que posea cada modelo de microcontrolador, las l´ıneas 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 genera una onda cuadrada de alta frecuencia, que configura los pulsos de reloj usados en la sincronizaci´on de todas las operaciones del sistema. Generalmente, el circuito de reloj est´a incorporado en el microcontrolador y s´olo 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 cer´amico 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 energ´ıa. Universidad de Guanajuato

F IMEE

1.7. Recursos especiales

1.7.

13

Recursos especiales

Cada fabricante oferta numerosas versiones de una arquitectura b´asica de microcontrolador. En algunas ampl´ıa las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al m´ınimo para aplicaciones muy simples, etc. La labor del disenador es encontrar el ˜ modelo m´ınimo que satisfaga todos los requerimientos de su aplicaci´on. De esta forma, minimizar´a el coste, el hardware y el software. Los principales recursos espec´ıficos que incorporan los microcontroladores son: Temporizadores o ”Timers”. Perro guardi´an o ”Watchdog”. Protecci´on ante fallo de alimentaci´on o ”Brownout”. Estado de reposo o de bajo consumo. Conversor A/D. o Conversor D/A. Comparador anal´ogico. Modulador de anchura de pulsos o PWM. Puertos de E/S digitales. Puertos de comunicaci´on.

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 continuaci´on dicho valor se va incrementando o decrementando al ritmo de los pulsos de reloj o alg´un m´ultiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos pulsos. Universidad de Guanajuato

F IMEE

1.7. Recursos especiales

1.7.2.

14

Perro guardi´an o Watchdog

Cuando una computadora personal se bloquea por un fallo del software u otra causa, se pulsa el bot´on del reset y se reinicializa el sistema. Pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del d´ıa. El Perro guardi´an consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset autom´aticamente en el sistema. Se debe disenar ˜ el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardi´an antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescar´a al Perro guardi´an y, al completar su temporizaci´on, ”ladrar´a y ladrar´a”hasta provocar el reset.

1.7.3.

Protecci´on ante fallo de alimentaci´on o Brownout

Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentaci´on (VDD) es inferior a un voltaje m´ınimo (”brownout”). Mientras el voltaje de alimentaci´on 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 microcontrolador debe esperar, sin hacer nada, a que se produzca alg´un acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energ´ıa, (factor clave en los aparatos port´atiles), los microcontroladores disponen de una instrucci´on especial (SLEEP en los PIC), que les pasa al estado de reposo 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 sueno ˜ el microcontrolador. Al activarse una interrupci´on 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 (Anal´ogico/Digital) pueden procesar senales anal´ogicas, tan abundantes en las aplicaciones. Sue˜ len disponer de un multiplexor que permite aplicar a la entrada del CAD Universidad de Guanajuato

F IMEE

1.7. Recursos especiales

15

diversas senales anal´ogicas desde las patitas del circuito integrado. ˜

1.7.6.

Conversor D/A (CDA)

Transforma los datos digitales obtenidos del procesamiento de una computadora en su correspondiente senal ˜ anal´ogica que saca al exterior por una de las patitas de la c´apsula. Existen muchos dispositivos que trabajan con senales anal´ogicas. ˜

1.7.7.

Comparador anal´ogico

Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que act´ua como comparador entre una senal ˜ fija de referencia y otra variable que se aplica por una de las patitas de la c´apsula. La salida del comparador proporciona un nivel l´ogico 1 ´o 0 seg´un una senal ˜ sea mayor o menor que la otra. Tambi´en hay modelos de microcontroladores con un m´odulo de tensi´on 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 trav´es de las patitas del encapsulado.

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 configurarse como Entrada o como Salida cargando un 1 ´o un 0 en el bit correspondiente de un registro destinado a su configuraci´on.

Universidad de Guanajuato

F IMEE

1.8. Herramientas para el desarrollo de aplicaciones

1.7.10.

16

Puertos de comunicaci´on

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 comunicaci´on serie as´ıncrona. USART: adaptador de comunicaci´on serie s´ı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 I 2C: que es un interfaz serie de dos hilos desarrollado por Philips. CAN(Controller Area Network ): , para permitir la adaptaci´on con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en autom´oviles. En EE.UU. se usa el J185O.

1.8.

Herramientas para el desarrollo de aplicaciones

Uno de los factores que m´as importancia tiene a la hora de seleccionar un microcontrolador entre todos los dem´as es el soporte software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la elecci´on, ya que pueden suponer una ayuda inestimable en 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 programaci´on en lenguaje ensamblador puede resultar un tanto dif´ıcil para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes Universidad de Guanajuato

F IMEE

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 versi´on gratuita para los microcontroladores m´as populares. Compilador: La programaci´on 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 c´odigo resultante puede ser mucho m´as ineficiente que el programado en ensamblador. Las versiones m´as potentes suelen ser muy caras, aunque para los microcontroladores m´as populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Depuraci´on: Debido a que los microcontroladores van a controlar dispositivos 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 ejecuci´on de un programa, siendo ideales para la depuraci´on de los mismos. Su gran inconveniente es que es dif´ı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 implementaci´on de un modo m´as seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de evaluaci´on; Se trata de pequenos ˜ sistemas con un microcontrolador 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, f´acil acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El programa monitor de algunas placas de evaluaci´on, aparte de Universidad de Guanajuato

F IMEE

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 ejecuci´on paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados en los registros o en la memoria. Emuladores en circuito: Se trata de un instrumento que se coloca entre una PC anfitri´on y el z´ocalo de la tarjeta de circuito impreso donde se alojar´a el microcontrolador definitivo. El programa es ejecutado desde una PC, pero para la tarjeta de aplicaci´on es como si lo hiciese el mismo microcontrolador que luego ir´a en el z´ocalo. Presenta en pantalla toda la informaci´on tal y como luego suceder´a cuando se coloque el encapsulado.

Universidad de Guanajuato

F IMEE

Cap´ıtulo 2 Introducci´on al PIC16F873 En este capitulo se trataran las diversas caracter´ısticas de este microcontrolador. Tambi´en se tratar´an las funciones b´asica como lo es la configuraci´on para la entrada y salida de informaci´on.

2.1.

Descripci´on del PIC16F873

El PIC16F873 es un microcontrolador de Microchip,el cual tiene las siguientes caracter´ısticas. Cuadro 2.1: Caracter´ısticas del PIC16F873 Caracter´ıstica Descripci´on Frecuencia de operaci´on 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 M´odulos de Captura/Comparacion/PWM 2 Comunicaci´on serial tipo MSSP, USART M´odulo An´alogo-Digital (10 bits) 5 canales de entrada Conjunto de instrucciones 35 ´ Por lo que el PIC es muy util para para el desarrollo de diferentes apli19

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 descripci´on de cada pin se muestran en el cuadro 2.2.

Figura 2.1: Encapsulado del PIC16F873.

Universidad de Guanajuato

F IMEE

2.3. Organizaci´on de memoria

2.3.

21

Organizaci´on 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 Prop´osito General y Registros de Funciones Especiales. Los bits RP1 (STATUS(6)) y RP0 (STATUS(5)) son usados para la selecci´on del banco. P1:RP0 00 01 10 11

Banco 0 1 2 3

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

Universidad de Guanajuato

F IMEE

2.3. Organizaci´on de memoria

22

Figura 2.2: Mapa de los bancos del PIC16F873.

Universidad de Guanajuato

F IMEE

2.4. Puertos de Entrada/Salida

2.4.

23

Puertos de Entrada/Salida

Los PICs tiene la caracter´ısticas de que sus pines pueden ser todos configurados de acuerdo a la necesidad de la aplicaci´on, es decir, que lo pines de un mismo puerto pueden ser usados unos como entradas y otros como salidas. Adem´as, algunos pines E/S de los puertos son multiplexados a una funciona alternativa de caracter´ısticas perif´ericas. En general, cuando una funci´on de estas es habilitada, ese pin tal vez no pueda ser usado como un pin de prop´osito 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 correspondiente direcci´on de datos es el registro TRISA. Al puerto A le corresponde la direcci´on 05h del banco 0, en tanto que al registro TRISA le corresponde la misma direcci´on pero del banco 1. Si queremos que el puerto 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 direcci´on de datos es el registro TRISB. Al puerto B le corresponde la direcci´on 06h del banco 0, en tanto que al registro TRISB le corresponde la misma direcci´on pero del banco 1. La configuraci´on del puerto B se realiza de la misma forma que el puerto 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 direcci´on de datos es el registro TRISC. Al puerto A le corresponde la direcci´on 07h del banco 0, en tanto que al registro TRISC le corresponde la misma direcci´on pero del banco 1.

Universidad de Guanajuato

F IMEE

2.5. Ejemplo de configuraci´on para E/S

24

La configuraci´on 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 configuraci´on para E/S

En este ejemplo se mostrar´a la forma de realizar la configuraci´on del puerto A como entradas y el puerto B como salidas. LIST RADIX w f

P=16F873;Usaremos e l PIC16F873A-04/P HEX ;Todo en hexadecimal

EQU 0 EQU 1

;Cuando d=0 e l destino es w ;Cuando d=1 e l destino es f

;Declaraci´on de l a s variables PUERTOA EQU 05 PUERTOB EQU 06 ESTADO EQU 03 ORG goto ORG

0 inicio 5

;Direcci´on del Puerto A ;Direcci´on del Puerto B ;Control de los bancos ; Salto al vector de interrupci´on

;Configuraci´on de los puertos A como Entrada y B como Salida i n i c i o bsf ESTADO,5 ;Apertura del banco 1 movlw 0x3Fh movwf PUERTOA ; s e configuran PUERTOA como entradas clr w 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 ; F i n del programa F IMEE

25

2.5. Ejemplo de configuraci´on para E/S

Cuadro Pin OSC1/CLKIN OSC2/CLKOUT MCLR/VPP/THV

2.2: Descripci´on de pines del 16F873 Tipo Descripci´on Entrada de oscilador de cristal E S Salida de oscilador de cristal E/V Reset o entrada de voltaje de programaci´on

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

E/S E/S E/S

RA3/AN3/VREF+

E/S

RA4/T0CKI

E/S

RA5/SS/AN4

E/S

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

E/S E/S E/S E/S E/S E/S

RC0/T1OSO/T1CKI

E/S

RC1/T1OSI/CCP2

E/S ST

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 G V

Universidad de Guanajuato

PUERTO A es un puerto bidirectional de E/S RA0 Tambi´en puede ser entrada anal´ogica 0 RA1 Tambi´en puede ser entrada anal´ogica 1 RA2 Tambi´en puede ser entrada anal´ogica 2 o referencia anal´ogica de voltaje negativo RA3 Tambi´en puede ser entrada anal´ogica 3 o referencia anal´ogica de voltaje positivo RA4 Puede ser tambi´en la entrada de reloj del m´odulo Temporizador 0 RA5 Tambi´en puede ser entrada anal´ogica 4 o esclavo en la selecci´on de puertos serial s´ıncrono PUERTOB es un puerto bidirectional de E/S RB0 Tambi´en puede ser pin de interrupci´on externa RB3 Puede ser entrada de bajo voltaje de programaci´on Reloj de programaci´on serial Dato serial de programaci´on 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´ıa 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 transmisi´on USART RC7 Puede ser pin de recepci´on USART

Referencia de tierra Fuente positiva .

F IMEE

Cap´ıtulo 3 Algoritmos implementados En este capitulo se describir´an la algoritmos implementados, as´ı como los diagramas para implementarlos f´ısicamente. Adem´as, se describir´an 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 t´ecnica de modulacion de ancho de pulso o PWM. Dicha t´ecnica consiste en hacer variar el ancho del pulso o ciclo de trabajo de una senal ˜ (Figura 3.1). As´ı, mientras el pulso sea m´as ancho, la velocidad del motor ser´a m´as r´apida y en cambio se el ancho del pulso es m´as pequeno ˜ la velocidad disminuira. 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 danar´ıa el PIC, por lo que se har´a uso de el driver(L293D) para controlar el ˜ motor.

26

3.1. Control de velocidad

27

Figura 3.1: Modulaci´on por ancho de pulso (PWM).

3.1.1.

Driver L293D

El L293 es un driver en circuito integrado para control de motores simult´aneos en forma bidireccional, el circuito usa dos puentes cada uno con un par de canales y equipado con una entrada de habilitaci´on o enable (Figura 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. Adem´as, 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

F IMEE

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

F IMEE

3.1. Control de velocidad

29

Figura 3.4: Conexi´on del L293D. Cuadro 3.1: Descripci´on de funcionamiento del L293D ENABLE DIRA DIRB Function H H L Giro a la derecha H L H Giro a la izquierda H L/H L/H Alto r´apido L cualquiera cualquiera Alto lento

Universidad de Guanajuato

F IMEE

3.1. Control de velocidad

3.1.2.

30

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´a de manera constante a una velocidad dada. En cambio si se quire que el motor ofrezca su m´axima velocidad se coloca la palabra FFh. El c´odigo utilizado se muestra en seguida.

w f

LIST RADIX EQU 0 EQU 1

P=16F873 HEX

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

;****************Declaraci´on de l a s variables****************** PUERTOA EQU 05 PUERTOB EQU 06 ESTADO EQU 03 ;********Variables auxiliares para e l retardo************* AUX1 EQU 0F AUX2 EQU 0E AUX3 EQU 0C ORG goto ORG

0 inicio 5

;***************Configuraci´on de Entradas/Salidas**************

Universidad de Guanajuato

F IMEE

3.1. Control de velocidad inicio

bsf ESTADO,5 clr w movwf PUERTOA movlw 0x0FF movwf PUERTOB bcf ESTADO,5

31 ;Apertura del banco 1 ;Se limpia w (w=00h) ;PUERTOA como salidas ;PUERTOB como entradas ; Cierre del banco 1

;**************Programa principal******************************* clrf PUERTOA ;Todo apagado en e l puerto A ciclo movf PUERTOB,w ;Mueve lo del puerto de entrada a W movwf AUX2 ;Mueve w a la direcci´on de memoria que ;apunta AUX2 (0Eh) ;********C´alculo de tiempo que durar´a en bajo la se~nal****** sublw 0x0FF ;Resta e l valor de entrada a FFh y se ;guarda en w movwf AUX3 ; s e mueve e l resultado de la resta a la ;direcci´on que apunta AUX3 (0Ch) ;*********************************************************** movf AUX2,w addlw 0X01 movwf AUX2 decfsz AUX2,f goto uno goto cero ;********************************************************** uno movlw 0x01 ;Lleva e l valor 01h a W movwf PUERTOA ;Lleva W al puerto A call retardo ;Llamado de e l 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 e l valor 00h a W movwf PUERTOA ;Lleva W al puerto A call retardo ;Llamado de e l divisor de frecuencia decfsz AUX3,f ;Se decrementa AUX3 y se deposita en ;ella misma y si llega a cero ;salta a la ultima instrucci´on Universidad de Guanajuato

F IMEE

3.1. Control de velocidad

32

goto cero ;si no es cero se repite ;********************************************************* goto ciclo ;Vuelve a iniciar ;***************Rutina de retardo***************************** ; E sta rutina se utiliza como un divisor de frecuencia, ya que no ; s e puede utilizar la frecuencia del PIC de manera directa. retardo one

movlw movwf decfsz

0x90 AUX1 AUX1,f

goto one return END

; s e lleva este valor tambi´en a AUX2 ;Se decrementa AUX1 y se deposita en ;ella misma ;si llega a cero sale e la rutina ;Una vez completados los ciclo s se regresa ;al programa principal ; F i 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 implementaci´on

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

Universidad de Guanajuato

F IMEE

3.2. Medidor de distancia con un sensor infrarrojo

33

Figura 3.5: Diagrama de conexi´on.

3.2.

Medidor de distancia con un sensor infrarrojo

Para el desarrollo de esta aplicaci´on se utilizo el convertidor Anal´ogicoDigital del PIC y el sensor infrarrojo de la marca Sharp modelo GP2D12.

3.2.1.

Convertidor Anal´ogico-Digital

El m´odulo convertidor Anal´ogico-Digital (A/D) tiene 5 entradas o canales. La entrada anal´ogica carga un muestra y la mantiene en un capacitor. La salida del muestreo y la retenci´on en el capacitor es la entrada al convertidor. El convertidor entonces genera un resultado digital del nivel anal´ogico por el m´etodo de aproximaciones sucesivas. La conversi´on Anal´ogico-Digital de la entrada anal´ogica resulta en un correspondiente n´umero de 10 bits. El m´odulo A/D tiene entradas de referencia de alto volatje (V DD) y bajo voltaje (V SS). Este m´odulo tiene la caracteritica de que puede operar mientras el PIC se encuentra en el modo de bajo consumo de voltaje (S LE E P mode). EL m´odulo de conversi´on A/D esta formado por cuatro registros. Estos Universidad de Guanajuato

F IMEE

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 operaci´on del m´odulo A/D. El registro de control ADCON1 se muestra en la Figura 3.7, configura las funciones de los pines del puerto. Los pines del puerto pueden ser configurados como entrada anal´ogicas (RA3 tambi´en puede ser la referencia de voltaje) o como E/S digitales.

Figura 3.6: Registro de control ADCON0.

Universidad de Guanajuato

F IMEE

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 conversi´on A/D. Cuando el proceso de conversi´on A/D esta completo el resultado es cargado en este par de registros, el bit GO/DONE (ADCON0(2)) es limpiado. Despu´es de que el m´odulo A/D ha sido configurado como se desea, la selecci´on del canal debe ser realizada antes de iniciar la conversi´on. Los canales anal´ogicos deben tener sus correspondientes bits TRIS seleccionados como entrada. En los siguientes pasos se muestran como realizar la conversi´on: Universidad de Guanajuato

F IMEE

3.2. Medidor de distancia con un sensor infrarrojo

36

1. Configuraci´on de m´odulo A/D: Seleccionar los canales de entrada,voltaje de referencia y E/S digitales (ADCON1) Seleccionar el canal de entrada A/D (ADCON0) Seleccionar reloj de conversi´on (ADCON0) Encender el m´odulo A/D (ADCON0) 2. Espera el tiempo requerido de adquisici´on 3. Iniciar conversion 4. Espera el proceso de conversi´on, por: Limpiado del bit GO/DONE (ADCON0) 5. Leer el resultado en el par de registros (ADRESH:ADRESL) 6. Para la siguiente conversi´on repita el paso 1 e inicie la conversi´on. Selecci´on del reloj de Conversion A/D: La fuente de reloj para la conversi´on A/D es seleccionada por software. Las cuatro posibles opciones son: 2T O SC 8T O SC 32TO SC Internal RC oscillator El Cuadro 3.2 muestra la frecuencia m´axima de operaci´on del reloj seleccionado para el convertidor A/D. Registro de resultados A/D : El par de registro ADRESH:ADESRL es la locaci´on donde es cargado el resultado de 10 bits de la conversi´on A/D. El par de registros presenta un ancho de 16 bits. El m´odulo A/D ofrece la flexibilidad de justificar el resultado de 10 bits a la derecha o a la izquierda: El bit de selecci´on del formato del resultado es el bit de Universidad de Guanajuato

F IMEE

3.2. Medidor de distancia con un sensor infrarrojo

37

Cuadro 3.2: M´aximas frecuencias de operaci´on Operaci´on ADCS1:ADCS0 Max frec. 00 1.25 MHz 2T O SC 01 5 MHz 8T O SC 10 20 MHz 32TO SC RC 11 control ADFM. La Figura 3.8 muestra la operacion de justificaci´on. Los bits extras son le´ıdos como ceros.

Figura 3.8: Operaci´on de justificaci´on. Adem´as, cuando en este par de registro no se escribe (Conversi´on A/D deshabilitada), estos registro pueden ser usados como dos registros de 8 bits de prop´osito 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 V o. Este valor es actualizado aproximadamente cada 32 ms. Universidad de Guanajuato

F IMEE

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 tambi´en usada directamente en un circuito anal´ogico. El GP2D12 no tiene una salida lineal para la distancia medida. La gr´afica 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 implementaci´on. Universidad de Guanajuato

F IMEE

3.2. Medidor de distancia con un sensor infrarrojo

3.2.3.

39

Programa para la medici´on de distancia

Para este programa se hace uso del convertidor Anal´ogico-Digital para procesar la senal ˜ proveniente del sensor, la forma en que se hace la configuraci´on es siguiendo los pasos anteriormente dichos. Antes de describir el c´odigo se senalar´an los par´ametros con los que se ˜ configur´o el m´odulo. Se configur´o el RA0 y RA1 con entradas anal´ogicas, RA3 como referencia positiva de voltaje (V REF + ) y el formato de salida con justificaci´on a la izquierda, por lo que el dato que se debe de colocar en el registro ADCON1 es el 05h. Una vez configurado ADCON1, se configur´o ADCON0 con las siguientes 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 continuaci´on se muestra el programa para la medici´on de distancia, el cual consiste en convertir la senal ˜ anal´ogica proveniente del GP2D12 a digital y desplegar los 8 bits m´as significativos por los pines del puerto B.

w f

LIST RADIX EQU 0 EQU 1

P=16F873 HEX

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

;***********Declaraci´on de l a s variables************************* 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

F IMEE

3.2. Medidor de distancia con un sensor infrarrojo

ORG goto ORG

0 inicio 5

40

; Salto al vector de interrupci´on

;********Configuraci´on de los puertos como E/S***************** i n i c i o bsf ESTADO,5 ;Apertura del banco 1 movlw 0x0FF movwf PUERTOA ;PUERTOA como entradas clr w movwf PUERTOB ;PUERTOB como salida bcf ESTADO,5 ; Cierre del banco 1 ;*********Configuraci´on del m´odulo de A/D********************* clrf PUERTOB ;Se limpian l a s salidas bsf ESTADO,5 ;Apertura del banco 1 movlw 0x05 ;Mueve e l valor de 05h a w movwf ADCON ;Mueve e l valor de W (05h) al registro ;de control ADCON1 bcf ESTADO,5 ; Cierre del banco 1 movlw 0x81 ;Mueve e l valor de 81h a w movwf ADCON ;Mueve e l valor de w (81h) al registro ; de control ADCON0 ;*********Proceso de conversi´on******************************* CONV

bsf

ADCON,2

CHECA

BTFSC GOTO movf

ADCON,2 CHECA ADRESH,w

movwf

PUERTOB

goto

CONV

;Inicia e l proceso de conversion ;activando e l b i t GO/DONE ;Checa que e l b i t GO/DONE sea cero ; S a l t a a checar de nuevo e l b i t ;Mueve e l resultado de la conversion a ;w ;Mueve e l resultado guardado en w al ;puerto B ;Empieza de nuevo la conversi´on

END

Universidad de Guanajuato

F IMEE

3.3. Implementaci´on

3.3.

41

Implementaci´on

El diagrama de la implementaci´on para este diseno ˜ se muestra e la Figura 3.11.

Figura 3.11: Diagrama de la implementaci´on para medici´on de distancia. En este desarrollo la forma en que se visualiza es a trav´es de LEDs, pero se pueden implementar otras interfaz de visualizaci´on como pantallas de LDC o Display. Como se ve el diagrama es muy sencillo y aun se puede conectar otro sensor en el canal anal´ogico RA1, pero aqu´ı el problema es el desplegado ya que los puertos con los que se cuenta no son muchos.

Universidad de Guanajuato

F IMEE

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF