Está en la página 1de 169

Escuela de Educacin Tcnica Nro.1 de Merlo Ingeniero francisco E.

Urondo

TTP Montaje de Circuitos y Sistemas Electrnicos 3o AO


Profesor Christian G. Roggro

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

ndice
Introduccin ReferenciaHistrica Principalesfabricantesdemicroprocesadores. Sistemamnimomicroprocesador ArquitecturaVonNeumann.. Arquitecturahardvard.. Introduccinalosmicrocontroladores. ControladoryMicrocontrolador MicroprocesadoryMicrocontrolador AplicacionesdelosMicrocontroladores.. QueMicrocontroladoremplear?.. Losmicrocontroladoresmaspopulares.. Almacenamientoyejecucindelprograma.. Arquitecturabsica ProcesadoroCPU Memoria. PuertasdeEntrada/Salida. Relojprincipal Recursosespeciales. Temporizadores Perroguardin.. Proteccinantefallodealimentacin. Estadodereposoodebajoconsumo.. ConversorA/D.. ConversorD/A.. Comparadoranalgico Moduladordeanchodepulso.. PuertasdeEntrada/Salidadigitales.. Puertasdecomunicacin.. Herramientasparaeldesarrollodeaplicaciones Ejemplosdemicrocontroladores,usosyaplicaciones LosmicrocontroladoresPIC. PorquelosPIC.. BrevereseahistricaacercadelosPIC. Caractersticasrelevantes Anlisiscomparativodeprestaciones. Lastresgamasdepic.. Lagamabaja.. Lagamamedia.. Lagamaalta 1 4 13 14 26 27 29 33 34 36 37 39 40 41 43 44 47 47 47 48 48 49 49 49 49 50 50 50 50 51 52 55 55 56 56 58 58 63 64 65

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

PIC16CXXlapotenciayflexibilidaddelagamamedia Arquitecturainternayorganizacindelamemoria ElPC(ContadordePrograma). Direccionamientodedatos.. Losregistrosdelasgamamedia Organizacindelamemoriadedatos. Registrosespecficos ElPC.. ElregistroW ElregistroStatus.. ElregistroINTCON.. ElregistroINDF.. ElregistroPCLyPCLATH. LosregistrosSTACK ElregistroPCON.. ElregistroFSR. LospuertosregistroPRTxyTRISx. InstruccionesdelPIC Instruccionesdebytequeoperanconregistros InstruccionesdebytequeoperansobreWyliterales.. InstruccionesdeBit Instruccionesdecontrol.. Instruccionesespeciales. Resumendeinstrucciones Modosdedireccionamiento Direccionamientodelamemoriadedatos Direccionamientodelamemoriadeprograma.. Temporizadores,puertosdeE/S,resetyestadodereposo Controldetiempos.. Eltemporizadorprincipal,TMR0 ElregistroOPTIONS ElperroguardinWDT. ElmododereposooSLEEP ArquitecturadelPIC16F84 ConociendoalmicrocontroladorPIC16F84.. CaracteristicasbasicasdelPIC16F84 IdentificacindelospinesutilizadosparalospuertosdeE/S Identificacindelospinesdealimentacindelmicrocontrolador Elrelojyelciclodeinstruccin. Eloscilador Inicializacin"RESET"delmicrocontrolador. PuertosdelmicrocontroladorPIC16F84.. ProgramacinASM.

65 66 67 68 69 71 71 71 73 74 74 74 74 75 75 76 78 79 80 82 87 88 89 90 91 92 93 94 94 95 95 96 96 96 97 99 101 103

II

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Cdigomaquinayensamblador Emulacin. Simulador.. Depurador. Emulador"InCircuit". Edicindeprogramas Escrituradelcdigofuente.. ProgramaFuente. Convencionesenlaescrituradelcdigofuente..


ANEXOS AnexoISistemasdenumeracin... AnexoIISetdeinstruccionesPIC16F84 AnexoIIIProgramadordePIC AnexoIVCircuitodeaplicacin(testerdecablesdered).. AnexoVDisplayLCD.. Bibliografa

104 104 105 105 106 106 107 108 108


115 129 137 141 145 163

III

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Introduccin
A mediados del siglo XX, tras el desarrollo de la bomba atmica y las centrales nucleares, comienza a hablarse de la Era atmica. Algo ms adelante, cuando el hombre pisa por primera vez la Luna, se habla de la Era espacial. Sin ninguna duda, nuestra poca est siendo la Era de las comunicaciones debido, fundamentalmente, al desarrollo de la informtica y las telecomunicaciones, sustentadas por el enorme avance de las tecnologas electrnicas, microelectrnicas y optoelectrnicas.

Para confirmarlo, slo meditemos sobre el avance de la telefona celular y satelital, sobre el enorme potencial de informacin que nos pone al alcance de la mano Internet, as como sobre la posibilidad de comunicarnos con otros pases por escrito o videoconferencia, dependiendo cada vez ms del omnipotente computador personal, que incide ms y ms en nuestra sociedad (automatizacin de plantas industriales, control de trfico por tierra, mar y aire, gestin de empresas y bancos, diseo de ingeniera, etc.). La electrnica ha sido y es la causante y soporte de esta verdadera revolucin de la sociedad. Y, dentro del campo de la electrnica, el microprocesador o su versin customizada, el microcontrolador es, con frecuencia, el gran protagonista. El desarrollo de los microprocesadores, un invento introducido recientemente en 1971 en el mbito comercial, ha revolucionado las reas ms importantes de la electrnica y este avance no le resulta ajeno al individuo medio que trabaja asiduamente con su computador personal (Pentium, Power PC, etc.), an cuando la mayor parte de los microprocesadores no reside en los computadores, sino oculta en cualquier dispositivo electrnico que el usuario utiliza sin ser consciente de l.

En 1971, la compaa de semiconductores Intel lanza al mercado el primer microprocesador, lo que impone un cambio decisivo en las tcnicas de diseo de los equipos de instrumentacin y control. Este circuito integrado contiene todos los componentes de la unidad central de procesos (CPU) de una computadora dentro de un solo dispositivo. Los fabricantes, conscientes de la importancia de este mercado, crean una amplia gama de estos circuitos integrados, constituyendo familias de microprocesadores.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En el ao 1976, gracias al aumento de la densidad de integracin de componentes en un circuito integrado, sale a la luz el primer ordenador en un chip: en l se integran, junto con el microprocesador, otros subsistemas que anteriormente formaban unidades independientes (memoria, entradas/salidas, etc.). A este nuevo integrado se lo denomina microcomputadora monopastilla. Cuando los sistemas basados en microprocesadores se especializan en aplicaciones industriales, aparece la versin industrial de la microcomputadora monopastilla, el microcontrolador, que produce un obvio beneficio en aplicaciones pequeas. Su caracterstica ms sobresaliente es que se trata de un sistema integrado. El microprocesador es un componente electrnico complejo que incorpora las funciones tpicas de todo un computador. La clave del xito de los microprocesadores como componente electrnico reside en que, modificando el programa almacenado en memoria, puede adaptarse a numerosas y diferentes aplicaciones. As, en la actualidad, debido a su creciente potencia de clculo y variedad de funciones integradas, se ha convertido en el estndar para la implementacin de soluciones, tanto de clculo como de control. De este modo, los microprocesadores no slo se utilizan para construir potentes computadoras quizs su aplicacin ms difundida sino tambin para la realizacin de tareas de control en sistemas de aplicacin especfica (por ejemplo, el control de un horno a microondas, un telfono celular o unos frenos ABS para el automvil), sustituyendo la circuitera convencional. Las reas de aplicacin de este tipo de productos tambin exceden el ambiente de los procesos continuos y se expanden en una gran diversidad de rubros: cerveceras, curtiembres, edificios inteligentes, bancos de prueba o ensayo, estaciones de carga, frigorficos, plantas automotrices, industrias alimenticias, industrias madereras, industrias metalrgicas, industrias petroleras, laboratorios, medicin de energa, plantas petroqumicas, plantas aceiteras, plantas embotelladoras, plantas generadoras de energa, plantas papeleras, plantas pesqueras, plantas potabilizadoras, silos, subestaciones elctricas y centros de comando, supermercados, sistemas de transporte y muchas ms. En nuestro curso estudiaremos al microprocesador desde dos puntos de vista: Como componente electrnico se trata de un componente especial, ya que tiene un aspecto hardware, y otro software o de programacin.

Como ladrillo bsico en la construccin de sistemas de procesamiento de datos microprocesador, mP, P o de control microcontrolador, mC, C que sustituye a sistemas cableados.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En las aplicaciones sencillas, resultan preferibles las soluciones no programables que no requieren desarrollo de software (Escribir software consume mucho tiempo, por lo que resulta ms costoso; por esto, en aplicaciones sencillas y/o de poca tirada, a menudo es ms razonable efectuar tareas en hardware.) Sin embargo, conforme aumenta la complejidad del sistema, aumentan las ventajas del uso de sistemas programables.

Una de las principales ventajas de los sistemas programables es su flexibilidad, la que permite actualizar el funcionamiento de un sistema tan slo mediante el cambio del programa, sin tener que volver a disear el hardware. Esta flexibilidad es muy importante, al permitir que los productos se actualicen con facilidad y economa.

Un C tpico tiene instrucciones para: Transferir informacin entre registros y memoria. Realizar operaciones aritmticas y lgicas. Efectuar comparaciones y pruebas sobre el contenido de sus registros de memoria. Controlar la secuencia de ejecucin de programas. Controlar entradas y salidas.

La gran oferta de microcontroladores y las muy similares prestaciones que todos ellos ofrecen, han desviado el foco de atencin de los potenciales usuarios hacia cuestiones que poco tienen que ver con la funcionalidad misma del producto. Se asume que cualquier microcontrolador que est disponible en el mercado es bueno y relativamente fcil de usar. En el pasado, un producto deba demostrar que era capaz de hacer determinada tarea; hoy esto se da por descontado y, por lo tanto, lo que pesa en la decisin de utilizar un determinado producto es su precio, el apoyo y soporte local inmediato, los antecedentes de aplicaciones instaladas, la capacidad de conectarse con el equipamiento de campo que se utiliza en el pas donde se comercializa, etc. Podemos decir que los microcontroladores tienden, con el tiempo, a ser todos iguales. Van incorporando prestaciones similares modeladas por un set de instrucciones cada vez ms parecido, que afecta a casi todos los fabricantes de microprocesadores y microcontroladores. Otra ventaja interesante que ofrece la utilizacin de microcontroladores sobre todo para quien desarrolla aplicaciones basadas en ellos, es que permite obtener mayores ganancias como resultado del valor que agrega al hacer la tarea de integracin o de armado (En otro mbito, todos sabemos que es mucho ms barato comprar una PC en partes sueltas y luego armarla, que ir a comprarla a un negocio en donde nos la entregan funcionando, con todo instalado y probado. Lo mismo pasa con los mC.). Sin duda, para un usuario final con muchos recursos puede ser ms interesante evitarse problemas y comprar un producto llave en mano; pero, para el integrador o el usuario que recin comienza, un alto costo inicial puede ser una barrera para decidirse a comenzar.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En la figura siguiente vemos equipos de control industrial; en cada uno de ellos existe un microprocesador o microcontrolador para llevar a cabo las tareas de supervisin y control, o para comunicarse entre ellos y dar informacin a un computador central:

Se trata de sistemas de control clsicos donde se pone de manifiesto el empleo intensivo de los microprocesadores y microcontroladores en la industria.

Referencia histrica
En 1971, la compaa de semiconductores Intel lanza al mercado el primer microprocesador. Veamos algunos datos que nos muestran cmo va desplegndose el proceso tecnolgico que permite llegar a estos complejos sistemas electrnicos:

3000 A.C: baco, empleado para realizar clculos aritmticos. Edad Media: Autmatas de reloj: mquinas con un programa interior fijo. Siglo XVII: Blaise Pascal, matemtico francs, construye la primera mquina mecnica capaz de
sumar y restar.

1674: G. H. von Leibniz, matemtico alemn, incorpora a la mquina de Pascal la posibilidad de multiplicar y dividir.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero 1850: D. D. Parmalee automatiza la mquina Pascal-Leibniz. Aparecen las primeras cajas
registradoras. Finales del siglo XIX. Charles Babbage, matemtico ingls, idea una mquina quees capaz de realizar cualquier operacin. La mquina se instruye desde el exterior pormedio de un sistema de tarjetas perforadas.

1925: V. Bush, ingeniero norteamericano, construye la primera mquina capaz deresolver ecuaciones
diferenciales.

1940: Von Neumann acaba configurando la arquitectura bsica de los ordenadores modernos,
basada en los conceptos de programa almacenado y de ruptura de la secuencia de programa mediante la toma de decisiones. Su diagrama de bloques:

A partir de la concepcin de mquina universal de Von Neumann, los ordenadores se desarrollan paralelamente a la tecnologa. Aparecen cinco generaciones.

Primera generacin: Es la generacin de las vlvulas de vaco. Los ordenadores son muy
voluminosos, con alto consumo y coste muy elevado. Algunos ordenadores famosos de esta generacin son:

ENIAC Electronic Numerical Integrator and Computer, construido por la Universidad de Pennsylvania durante la II Guerra Mundial, estructurado por John Mauchly y John Eckert, estadounidenses, y puesta en funcionamiento en 1945, marca el inicio de nuestra era computacional. Se trata de una mquina programable y universal a la que se poda llamar electrnica; ocupa 160 metros cuadrados, pesa 30 toneladas, con 17.468 vlvulas de vaco, 70.000 resistencias, 10.000 condensadores y un consumo de, aproximadamente, 200 KW. Deja de funcionar en 1955 y es desmontada en 1957.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Fotografa del ENIAC. Fuente: http://ftp.arl.mil/

UNIVAC Universal Automatic Computer; construido en 1951, es el primer computador digital con fines comerciales. IBM604 e IBM650 aparecen en 1953 y se hacen muy populares en las dcadas de los 50 y 60.

Segunda generacin: Aparece con el transistor bipolar. Se consigue una gran disminucin de volumen, mayor fiabilidad y menor consumo. Los ordenadores se empiezan a hacer populares en las grandes empresas.

Tercera generacin: Aparecen los primeros circuitos integrados, se agudizan an ms las


mejoras de la generacin anterior. Paralelamente, empiezan a desarrollarse los lenguajes de alto nivel como el Fortran y el Cobol, as como los primeros sistemas operativos.

Cuarta generacin: Aparecen las tcnicas de alta escala de integracin LSI, propiciando, en 1971, la aparicin del primer microprocesador 4004 de Intel. Posteriormente, en 1972, el 8008 de Intel y, a partir de ste, todos los fabricantes de circuitos integrados empiezan a lanzar sus microprocesadores: 6800 y 6802 de Motorola, 6502 de Rockwell, Z80 de Zilog, 8088 de Intel, etc. El ordenador empieza a hacerse muy popular. Aparecen tambin microprocesadores de 16 bits en el bus de datos: 8086, 80286 de Intel, 68000, 68010 de Motorola, Z8000 de Zilog, etc.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Quinta generacin: Aumenta la densidad de integracin al aparecer la tecnologa VLSI1


de muy alta escala de integracin. En 1976, gracias al aumento de la densidad de integracin de componentes en un circuito integrado, sale a la luz el primer ordenador en un chip; como decamos, a este nuevo integrado se le denomin microcomputadora monopastilla. Cuando los sistemas basados en microprocesadores se especializan en aplicaciones industriales, aparece la versin industrial de la microcomputadora monopastilla, el microcontrolador; estos dispositivos producen un obvio beneficio en aplicaciones pequeas; su caracterstica ms sobresaliente es que son sistemas integrados, utilizados en la actualidad (en automviles: inyeccin, suspensin; control de procesos; control de interruptores de potencia; etc.).

En este marco, resulta interesante reconstruir la historia de cambios tecnolgicos desarrollada por Intel2 una compaa del valle del silicio, especializada en la fabricacin de memorias. Veamos...

La casa Data Point saca a concurso un driver para la CRT3hasta aqu, todo se hacia con transistores. A este concurso slo se presentan las firmas Texas Instruments e Intel. Al cabo del tiempo, Texas se retira e Intel termina su proyecto; pero no gana, porque el dispositivo es considerado poco eficiente como controlador: resulta 10 veces ms lento de lo requerido y Datapoint no lo compra. Por la poca (1969), la compaa japonesa Busicom, fabricante de calculadoras, encarga a Intel la realizacin del circuito de control de un nuevo modelo de calculadora de sobremesa. El primer diseo resulta tan complejo que Ted Hoff, ingeniero de Intel, redisea el sistema basndose en la estructura de los computadores: existira un chip que integrara una CPU sencilla, que ejecutara un programa de control que se guardara en una memoria ROM; empleara una RAM para almacenamiento de datos y un registro como puerto de entrada/salida. Por lo tanto, el nuevo diseo resulta un conjunto de cuatro chips que implementaban la estructura de un computador de modo que, cambiando el programa, poda dedicarse a realizar tareas muy diferentes. Desde que se contrata a Intel hasta que el diseo resulta operativo pasan muchos meses, durante los cuales los precios caen y el valor del contrato inicial resulta desorbitado. Busicom pide, entonces, a Intel una rebaja en el precio. Intel acepta, a cambio de quedarse con los derechos del conjunto de

1 2

VRSI Very large-scale integration. Muy alta escala de integracin; ms de 10000 transistores por chip http://www.intel.es ; http://www.intel.com 3 Tubos de rayos catdicos o terminal de video utilizado por televisores y computadoras.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

circuitos integrados construido la familia 4000 para poder comercializarlos por su cuenta. Finalmente, Intel introduce en sus catlogos el chip programable desarrollado el 4004 en noviembre de 1971, bautizndolo como microprocesador y, as, comienza a comercializarlo.

El 4004 puede direccionar slo 4096 (4k) localidades de memoria de 4 bits, reconocer 45 instrucciones y ejecutar una instruccin en 20 seg en promedio. Intel, entonces, lo saca al mercado para el uso de memorias. Al registrarse una demanda considerable, el equipo de diseo se pone a trabajar para desarrollarlo, consiguiendo el 8080 y el 8008, que son de 8 bits. Con el microprocesador surgen las primeras computadoras de tipo personal y la introduccin del procesador 8080, un dispositivo 10 veces ms rpido que el 8008, con capacidad de direccionar 64kB de memoria. Dos ingenieros del equipo de desarrollo crean la empresa Zilog, que comienza a competir con Intel, y fabrican el Z-80. Intel saca, entonces, el 8085 y, despus, el 8086. Ms tarde salen algunas versiones posteriores como el 8088 que es de 16 bits pero con buses de 8. MITS introduce, en 1975, un kit que, en la actualidad, es considerado como la primera computadora personal: el modelo Altair. Esta pequea computadora incluye una arquitectura abierta (basada en ranuras o slots) que permite conectar varios aditamentos y perifricos de otras marcas. Hacia 1980, el mundo de las computadoras personales est dominado, bsicamente, por dos tipos de sistemas:

1. El Apple II, con un gran nmero de usuarios y una importante base de software, que crece rpidamente.

2. Un sistema ms sencillo que gira en torno al original MITS Altair, que se basa en la filosofa de la compatibilidad, apoyado en slots de expansin y en el empleo del sistema operativo CP/M4. Son mquinas construidas por varias compaas y se venden con diversos nombres aunque, en esencia, utilizan el mismo software y el mismo hardware interconectable.

En 1981 se presenta la IBM PC IBM Personal Computer, introduciendo los lenguajes y sistemas operativos. La empresa llega a un acuerdo con Microsoft por entonces una pequea compaa para incluir su sistema operativo DOS en sus modelos. La primera IBM PC incluye un
4

Sistema operativo de gran utilizacin hasta que aparece el DOS desarrollado por Microsoft.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
microprocesador Intel 8088, con 128kB de RAM (expandibles 512kB), una unidad de disco flexible de 51/4 pulgadas y 360kB de capacidad.

Luego, aparece el estndar que toma el nombre de IBM PC-XT Personal Computer. Extended Technology; tambin aprovecha los microprocesadores de 16 bits y cumple con la principal virtud de la plataforma: su arquitectura abierta. La plataforma PC no es la nica; pero s es la predominante, por su amplia gama de aplicaciones, a diferencia de otros formatos como Macintosh, Sun, Amiga, Silicon Graphics, etc. La industria de microprocesadores se sigue desarrollando y se crea el 80186 que ofrece periferia integrada. Ms tarde, aparece el 80286, adoptado por IBM; se trata de un 8086 pero con mayor capacidad de direccionamiento de memoria, que implementa el modo protegido. Su evolucin es el 80386, el primer micro Intel de 32 bits que puede direccionar hasta 4 GB. Cuenta con modo protegido, modo real y un nuevo modo que es el virtual, que trabaja en modo real, pero en realidad trabaja en protegido; de aqu surgen el 80386SX y el 80486 con sus variantes: 486 SX: Como 386 sin coprocesador matemtico, con cach interna y mejor arquitectura. 486 DX: Genrico pero a 33 y 50 MHz. 486 DX2: Interno a doble frecuencia: 50,66 MHz. 486 DX4: Interno a cudruple frecuencia: 75,100 MHz.

La evolucin hasta el momento actual:

Equipo XT: Ao 1981, con procesador 8086 u 8088 de Intel, mquina pionera de los PC, usaba 128K, 256 o 512 Kilobytes de memoria Ram. Se le instalaba el sistema operativo DOS, disco duro de 5 o 10 megabytes de capacidad. Su gabinete era horizontal. El monitor era monocromtico con fondo negro y letras de color verde. Su velocidad de procesamiento estaba entre los 4 y 8 MHz.

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Equipo AT 80286: Su memoria Ram poda alcanzar los 16 MB, adicionndole una placa de expansin especial. El disco duro normal para l era de 30 o 40MB. Las unidades de diskettes de 1.2 y 1.44 MB de capacidad. Sistema operativo DOS 2.1. Gabinete horizontal. Los monitores eran a color con tecnologa EGA (baja resolucin, comparados con los actuales VGA). Su velocidad promediaba los 25MHz.

Equipos AT 80386. Usaban en promedio 8 y 16 MB de ram, integrando mdulos removibles de memoria, tipo SIMM de 32 pines. El disco duro promediaba los 512 MB, DOS 4.0. Monitores sper VGA. mdem interno de 14.400 baudios por segundo. Velocidad promedio: 40MHz. Aparece la unidad CD ROM de simple velocidad.

Equipos AT 80486. Ram promedio de 8 y 16 MB. Discos duros de 1 gigabyte promedio. DOS 6.22. Mdem de 28.800 bps. Monitores con resolucin .28. Unidad de CD ROM de 2, 4 y 8 velocidades.

Equipos Pentium de 75MZ. Ram promedio de 16 MB expandible a 128 MB, discos duros de 3 gigas o mayor, mdem de 33.600 bps, Windows 95, coprocesador matemtico y memoria cach interna. Unidad de CD ROM de 16 velocidades. Otros procesadores: el 586 y 686 de AMD.

Pentium MMX. Tecnologa con prestaciones para multimedia, con velocidades de 200, 233 y 266 MHz. Discos duros de 4 y 6 gigas. RAM promedio de 16 y 32 MB expandible. Unidad de CD ROM de 24 y 36 velocidades. Sistema Operativo Windows 95 A y Windows 95 B.

Pentium Celeron. Con velocidades desde 300 MHz a 1.3 GHz, cach de 128 KB, discos duros mayores de 6 gigas como promedio, monitores no entrelazados, RAM promedio de 32 MB expandible, motherboard multifuncional, tanto en equipos genricos como de marca, Incluye, normalmente, sonido, video y mdem fax incorporado en la placa madre. La velocidad de los mdem promedio es de 56.600 bps. Las unidades de CD ROM alcanzan velocidades de 40X. De mejora Windows 95 creando Windows 98.

Las generaciones de Pentium II, Pentium III y Pentium IV. Bsicamente, utilizan los mismos elementos de base: motherboard multifuncional, ram promedio de 128 MB, discos de 15, 30, 40 o ms gigas, multimedia de 52x-56x, mdem de 56.600. Sus velocidades varan desde los 350MHz a 550MHz los pentium II, de 500, 1 GHz los pentium III y 1.4 a 2GHz los pentium IV. Sistemas Operativos: Windows 98, Windows 2000, Windows NT, Windows Me y Windows XP. Otros procesadores: los K6-2 y Athlon de AMD.

10

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

o o

Pentium5 P5: Trabaja a 5V con frecuencias de 60 y 66 MHz. Pentium P54: Trabaja con 3,34V y con frecuencias de 75 y 90 MHz.

o o o

Pentium P54C/P54C5: Frecuencias de 100,120,135,150,166 MHz. Pentium P55C (MMX): Frecuencias de 166,200,233. Pentium PRO: Frecuencias de 180 y 200, con mejoras en arquitectura y con la cach integrada, utiliza un zcalo Socket 8.

El Pentium es un micro de 32 bits, pero con bus de datos de 64.

11

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Pentium II: Fecuencias de 233, 266, 300, que es un PPRO sin cach con MMX y cach de
segundo nivel; tiene zcalo slot 1 y SEC. Utiliza el slot 2, que es una variante del slot 1, pero incompatible con aquel. -Est optimizado para aplicaciones de 32 bits. -Posee 32 KBytes de cach L1 (de primer nivel) repartidos en 16KB. para datos y los otros 16 para instrucciones. La cach de segundo nivel puede ser de 512 KB o 1 MB. -Para comunicarse con el bus utiliza una velocidad de 100 MHz. -Incorpora 7,5 millones de transistores. -Puede cachear hasta 4 GB de memoria RAM.

Pentium III: Se le han aadido las llamadas SSE Streaming SIMD Extensions, que son 70
nuevas instrucciones orientadas hacia tareas multimedia, especial-mente en 3D. Estas extensiones son el equivalente a las 3D Now que lleva implementando AMD desde hace tiempo en

el K6-2, K6-III y Athlon y que tambin han incorporado otros fabricantes como IDT en sus Winchip2 y 3.

12

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Por supuesto, dicho juego de instrucciones a pesar de realizar operaciones similares en ambos procesadores es totalmente incompatible... Otra de las novedades introducidas y tambin la ms polmica es la incorporacin de un nmero de serie que permite identificar unvocamente a cada una de las unidades, con lo que se obtiene una especie de carn de identidad, nico para cada PC. Este ID se puede utilizar para realizar transacciones ms seguras a travs de Internet y para facilitar la vida a los administradores de redes; pero, tambin ha sido duramente criticado por algunos grupos de presin como una invasin de la privacidad, con lo que Intel se ha visto obligada a ofrecer una utilidad que permite desactivar dicha funcin:

Est optimizado para aplicaciones de 32 bits. Se comercializa en versiones que van desde los 450 hasta los 600 MHz. Posee 32 Kbytes de cach L1 (de primer nivel) repartidos en 16Kb. para datos y los otros 16 para instrucciones.

La cach L2 (segundo nivel) es de 512 Kb. y trabaja a la mitad de la frecuencia del procesador.

La velocidad a la que se comunica con el bus (la placa base) es de 100 MHz. Incorpora 9,5 millones de transistores. Pueden cachear hasta 4 GB. Los modelos actuales todava estn fabricados con tecnologa de 0,25 micras.

Registros internos: Son bloques de biestables que permiten el almacenamiento de los datos
bsicos con los cuales va a trabajar la CPU durante la ejecucin de cada instruccin.

13

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero Unidad de control: Su funcin es enviar, consecutivamente, instrucciones del programa desde la
memoria hasta la unidad de proceso.

Unidad de proceso u operativa: Las instrucciones son decodificadas y ejecutadas en esta


unidad.

Unidad de memoria: En ella se almacena el programa a ejecutar, en forma de secuencia de


instrucciones.

Unidad de entrada/salida: Realiza la comunicacin con el mundo exterior, es decir, con el ser
humano. Recibe y representa los datos y resultados de forma asequible para el hombre.

Pentium IV: Ya hay tres nuevos procesadores basados en la arquitectura Pentium


4: 2.53, 2.40 y 2.26 GHz. Estos nuevos chips incluyen un bus de sistema a 533 MHz a diferencia de los anteriores Pentium 4 que interactuaban con un bus de velocidad menor: a 400 MHz. La compaa anunci, asimismo, la aparicin del chipset 850E, diseado para operar a la velocidad del nuevo bus de sistema.

Itanium: La arquitectura EPIC Explicity Parallel Instruction Computing paraleliza todas aquellas rdenes que se ejecutan en un ordenador. Si en los procesadores superescalares, como son el Pentium III o el Pentium 4, se ejecutan dos instrucciones por ciclo de reloj, Itanium es capaz de ejecutar hasta seis instrucciones por ciclo. Esto significa que es tres veces ms rpido (En Itanium tenemos, por ejemplo, seis unidades de suma, dos de coma flotante y cuatro de enteros).

Principales fabricantes

Gama Pentium: Classic, MMX, Pro, PII, Celeron, Xeon, PIII, P 4

K5, K6, K6-2, K6-III, Athlon 6x86, 6x86MX, MII, Media GX

Winchip C6, Winchip2, Winchip3

14

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Sistema mnimo microprocesador

El sistema mnimo est basado en la estructura de Von Neumann. Sus bloques bsicos son: 1. Unidad central de proceso CPU, Central Process Unit , formada por los bloques:

1.1. Registros internos. 1.2. Unidad de control. 1.3. Unidad de proceso u operativa.
2 3 Unidad de memoria, donde residen las instrucciones del programa y sus datos. Unidad de entrada/salida, encargada de recibir y entregar informacin al exterior.

Los tres mdulos estn conectados entre s por medio de los buses de comunicacin.

Nos referiremos a tres clases de buses de comunicacin: 1. Bus de direcciones. 15

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
2. Bus de datos. 3. Bus de control.

Bus de direcciones: A0-AM-1: Es el empleado por la CPU para seleccionar la

direccin de memoria o el dispositivo de E/S con el cual va a intercambiar informacin. Es, por tanto, unidireccional. El tamao nmero de conductores que lo constituyen determina la capacidad de direccionamiento de la CPU, que es el mximo nmero de posiciones de memoria y dispositivos E/S a los que la CPU puede m acceder. Para m lneas la capacidad de direccionamiento ser: 2 . 16 Ejemplos: -68HC08, Z80, 8051: m=16 Capacidad de dir.= 2 = 65536 posiciones (64 k Byte) -80286: m=20 Capacidad de dir.= 2
20

= 1.048.576 posiciones (1 Mega Byte)

del cual el microprocesador intercambia informacin con la unidad de memoria o E/S seleccionada mediante el bus de direcciones. Caractersticas: -Bidireccional: La informacin puede viajar en los dos sentidos. Nmero de lneas (N): representa la cantidad de bits que se pueden transmitir simultneamente. Suele denominarse la palabra del P. -Triestado: Las lneas del bus de datos deben ser triestado. Las lneas triestado son aquellas capaces de tener tres estados: 1. Estado alto (High, H). 2. Estado bajo (Low, L). 3. Estado de alta impedancia (High Impedance, HZ).

Bus de datos: D0 - DN-1: El bus de datos es el conjunto de conductores a travs

16

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El P se est comunicando con el dispositivo E/S 1. Slo estos dos dispositivos pueden disponer del bus de datos. El resto de dispositivos conectados fsicamente al bus de datos debe permanecer con sus lneas en alta impedancia (dispositivo E/S 2). La unidad de control de la CPU es la que decide qu elemento enva la informacin y qu elemento la recibe, as como los elementos que deben desconectarse del bus y ponerse en alta impedancia.

3 Bus de control: Est formado por un conjunto de lneas por las que circulan las seales auxiliares de gobierno y sincronizacin del sistema. Las lneas existentes dependen del fabricante del P y de las funciones que desee implementarle.

Algunas seales tpicas en todos los sistemas son:

Seal de reloj de sincronizacin. Seal de RESET o inicializacin. Seal de lectura/escritura en memoria, etc.

Su diagrama de bloques es el siguiente:

17

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Esta triple estructura que se ve en el diagrama programa-unidad de proceso-unidad de control surge de la propia estructura de los algoritmos: Ejemplo: Comprobar si dos nmeros son iguales INICIO Iguales = 0 Leer A y B Hacer D = A - B Si D = 0 hacer Iguales = 1 FIN

En la parte operativa se realizan acciones y ensayos:

Leer A y B (accin). Hacer A-B y asignarlo a D (acciones). Comprobar si D=0 (ensayo).

18

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La parte de control define el encadenamiento (orden) de las acciones, segn el resultado de los ensayos. Esta estructura de los algoritmos es la que dio lugar a la arquitectura Von Neumann. El elemento bsico es el microprocesador o CPU que engloba a la unidad de control y a la unidad de proceso. Le hablbamos al comienzo de los tres bloques bsicos del sistema microprocesador. Nos referiremos, a continuacin a cada uno de ellos. 1. Unidad central de proceso CPU Est formada por los siguientes bloques: 1.1. Registros internos 1.2. Unidad de control 1.3. Unidad de proceso u operativa 1.1. Registros internos

Los registros pueden escribirse, leerse e intercambiar informacin entre ellos por medio de los buses internos de la CPU.

19

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Con estructuras adecuadas, es posible intercambiar informacin entre registros, car-gar registros, descargarlos, etc.:

Las seales CS1 y CE2 son gestionadas por la unidad de control de la CPU instruida por el cdigo de la instruccin de transferencia A-B. Los datos que estn almacenados en los registros de la CPU tienen un tiempo de acceso muy bajo, muy inferior del correspondiente a los datos que se encuentran en memoria externa. Existen diferentes tipos de registros que permiten realizar diferentes funciones:

De desplazamiento, empleando biestables D encadenados. Permiten hacer rotaciones y desplazamientos de bits (x2, %2, E/S serie, etc.) Contadores, con biestables T encadenados. Permiten medir tiempos, temporizar, etc. Registros ndices o de direcciones. Permiten el acceso estructurado a datos de memoria. Registros de datos, para almacenamiento de variables del programa. Registros especiales, contador de programa (Program Counter PC), puntero de pila (Stack Pointer SP).

1.2. Unidad de control Su misin principal consiste en interpretar y ejecutar las instrucciones que le llegan desde la memoria:

20

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El cdigo binario de la instruccin en curso se recibe por el bus de datos y se almacena en el Registro de Instrucciones (IR). El decodificador de instrucciones selecciona las posiciones que corresponden a esa instruccin en una memoria ROM interna de la CPU. En ella se almacenan las diferentes instrucciones elementales o microinstrucciones instrucciones que componen esa instruccin.

Estas microinstrucciones hacen que el secuenciador active las seales correspondientes para ejecutar la instruccin. El contador de programa PC es un registro que contiene la direccin de memoria donde est la siguiente instruccin del programa a ejecutar. Una de las primeras acciones del secuenciador, antes de ejecutar una instruccin, es incrementar el PC para que apunte a la instruccin siguiente.

Existen instrucciones que permiten modificar el PC o incrementarlo en ms de una unidad, permitiendo la realizacin de saltos en la secuencia del programa.

1.3. Unidad de proceso u operativa El bloque principal es la ALU unidad lgico-aritmtica que permite realizar las operaciones aritmticas y lgicas indicadas por las instrucciones del programa. El secuenciador UC, instruido por el cdigo de la instruccin en curso, activa las lneas de seleccin de la ALU para realizar la operacin.

21

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Los operandos se suministran por medio de dos registros cargados desde el bus de datos: Registro acumulador, contiene siempre el resultado de la ltima operacin realizada en la ALU. Registro segundo operando, suministra el segundo operando para realizar la instruccin y viene normalmente aportado por el cdigo de operacin de la instruccin a ejecutar segn los diferentes modos de direccionamiento.

Esta forma de trabajar es tpica de los micros de 8 bits y permite simplificar las instrucciones, ya que cada instruccin slo tiene que suministrar un operando: el otro se encuentra cargado previamente en el acumulador. El registro de estado est formado por bits denominados banderas flags 1 0, de acuerdo con el resultado obtenido. Algunos bits tpicos son: Z, bit zero, se pone a 1 si el resultado fue nulo. C, bit carry, se pone a 1 si hubo acarreo de orden superior. V, bit overflow, se pone a 1 si hubo desbordamiento. I, bit de interrupcin. Este bit es independiente del resultado. Escribiendo un 1 en l, por medio de la instruccin correspondiente, se puede inhibir la interrupcin exterior enmascarable.

Diagrama general de un sistema basado en un microprocesador de 8 bits:

22

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La realizacin de una instruccin se lleva a cabo en dos fases:

Fase de bsqueda. Es comn a todas las instrucciones. Se inicia en el contador de programa, que contiene la direccin de memoria donde se encuentra el cdigo binario de la instruccin. Esta direccin se coloca en el registro de direcciones de la CPU y, de ah a la memoria, a travs del bus de direcciones. Una vez decodificada la direccin en la memoria, su contenido se traslada al bus de datos hacia el registro de Instrucciones de la unidad de control. En este momento finaliza la fase de bsqueda.

23

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Fase de ejecucin. En esta fase se decodifica la instruccin dentro de la unidad de control. Se busca su cdigo de microinstrucciones en la memoria interna de la CPU y se activan las seales correspondientes del secuenciador, para ejecutar la instruccin completa. Durante la fase de ejecucin, los buses externos del sistema no son utilizados por la CPU. Pueden ser empleados por otros dispositivos externos para transferir datos.

Las instrucciones que constituyen el programa se almacenan en memoria, en paquetes de 8 bits (Bytes). Normalmente, la forma es la siguiente:

Byte 1. Es el cdigo de operacin COP o OPCODE que indica la operacin de la que se trata y su funcin. Por ejemplo: Operacin lgica AND. Byte 2 y siguientes. Normalmente, nos dan la informacin necesaria para acceder al dato sobre el que va a trabajar la instruccin. Puede ser el propio dato, la direccin de memoria donde se encuentra el dato, etc. las diferentes posibilidades para acceder a ese dato se denominan modos de direccionamiento del microprocesador.

24

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Los COP suelen ser del mismo tamao que el bus de datos del micro.

En los micros de 8 bits (6805/08, Z80, 8051), los COP son de 8 bits. En los micros de 16 bits (68000, 8086, Z8000), los COP son de 16 bits.

En general, el conjunto de instrucciones del microprocesador se puede dividir en los siguientes bloques funcionales:

Aritmticas. Suma, resta, producto, etc. Lgicas. AND, OR, NOT, EXOR, etc. De transferencia. Permiten transferir datos entre registros, entre memoria y los registros de la CPU, entre dos posiciones de memoria, etc. De entrada/salida. Permiten la lectura y escritura en los bloques perifricos de E/S. De ruptura de secuencia del programa. Permiten realizar saltos condicionales o incondicionales dentro del programa. De control. Parada (STOP), no operacin (NOP), interrupciones, etc.

25

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

2. Unidad de memoria La memoria se emplea para dos funciones bsicas:

Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediante su cdigo de operacin COP, formado por uno o varios Bytes. Almacenamiento de los datos y variables del programa. stos estn normal-mente agrupados en paquetes de 8 bits (Byte), 16 bits (Word) o 32 bits (Long Word).

La velocidad (o el tiempo de respuesta) de la memoria debe ser compatible con el microprocesador empleado. Normalmente, se emplean memorias basadas en semiconductores:

RAM, memorias de lectura/escritura para almacenamiento de variables y datos del programa. Son voltiles. ROM (EPROM, EEPROM), memorias de slo lectura para almacenamiento de programas fijos (aplicaciones, rutinas bsicas de sistemas operativos, etc.) y constantes. Son no voltiles.

26

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

3. Unidad de entrada/salida Permiten la comunicacin del sistema microprocesador con el mundo exterior. Los dispositivos de E/S se denominan habitualmente perifricos (por ejemplo: teclado, pantalla, impresora, unidades de disco, etc.) Cualquier perifrico necesita un mdulo adicional que permite realizar su conexin con los buses del sistema microprocesador; este mdulo se denomina interface:

Existen varios mtodos para manejar los dispositivos de E/S: o o Mediante instrucciones especficas de E/S que se emplean en el programa de control para acceder al perifrico. Mediante acceso directo a memoria DMA. La CPU pone en triestado los buses de direcciones y de datos. Un dispositivo controlador de DMA toma el control de los buses y pasa los datos, directamente, entre el dispositivo E/S y la memoria. Mediante tcnicas de interrupcin. El perifrico activa las lneas de interrupcin de la CPU que detienen el programa en ejecucin y trasladan el 27

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

contador de programa a la direccin de inicio de otro programa creado especialmente para atender al perifrico que solicita la interrupcin. Suele denominarse rutina de servicio. o Mediante el tratamiento de E/S como posiciones de memoria. Permite el empleo de las mismas instrucciones para acceso a memoria y a E/S. Una zona del mapa de memoria es reservada para los dispositivos de E/S. Estas posiciones se llaman puertos de E/S. Escribir o leer en uno de estos puertos equivale a hacerlo en el perifrico.

Arquitecturas bsicas de microprocesadores y microcontroladores. Harvard versus Von Neumann Harvard y Von Neumann son dos arquitecturas que se caracterizan por la forma en la que distribuyen la memoria de datos y de programa dentro de un microcontrolador. En la arquitectura Harvard, la memoria de datos y la de programa estn separadas, y para almacenar las instrucciones se utilizan lo que da en llamarse palabras. Palabras las hay de muchos tamaos como, por ejemplo, en los microcontroladores PIC. Los PIC de gama baja usan palabras de 12 bit, los de gama media 14 bit y los de gama alta 16 bit. Por otro lado, est la arquitectura Von Neumann que se caracteriza por tener la memoria de programa y la de datos implementada en un mismo bloque de memoria, compartiendo datos e instrucciones en un mismo bus. En este tipo de microcontroladores se usan bytes para almacenar datos e instrucciones. Ejemplos de estos microcontroladores son los Zilog, National Semiconductors o los de Motorola.

Ambas arquitecturas tienen ventajas e inconvenientes y, como siempre pasa en el mundo de la electrnica, la seleccin depende de la aplicacin en la que vayamos a usar el microcontrolador, la frecuencia de trabajo, la conexin a otros perifricos, etc.

28

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Arquitectura Von Neumann


Los sistemas basados en arquitectura Von Neumann tienen un solo bus para acceder tanto a datos como a instrucciones. Diremos que un microcontrolador es de 4 bit cuando el bus de ste es de 4 bit; ser de 8 bit cuando el bus sea de 8 bit. Esto facilita en gran medida la conexin de memoria externa a travs de las lneas de entrada/ salida con una mnima implementacin extra de hardware.

Por contra, tenemos que una instruccin puede ocupar ms de un byte, con lo que para poder leer la instruccin completa tendremos que hacer varias lecturas en la memoria. Ser necesario emplear varios ciclos de reloj para extraer una instruccin.

Otra desventaja es que es posible que el contenido del contador del programa se corrompa, con lo que se podra estar leyendo un dato y tratar de interpretarlo como instruccin, con la consecuencia del deterioro y cada del sistema. Normalmente, un microprocesador controla que el contador no haga cosas raras.

Una de las caractersticas que poseen los microcontroladores basados en este tipo de arquitectura es que suelen tener un repertorio de instrucciones bastante grande. Este tipo de repertorio se llama CISC Complex Instruction Set Computer. La caracterstica principal de este conjunto es que suele ser bastante elevado, con instrucciones microcodificadas una instruccin es decodificada por la CPU en varias instrucciones bsicas. Es fcil deducir que esto hace la ejecucin del programa un poco ms lenta; pero, tiene la ventaja de que ahorramos memoria: para dividir slo usamos una instruccin (Por supuesto, an as, tenemos que tener en cuenta que la decodificacin se est llevando a cabo en el interior del microcontrolador, lo que va a ralentizar su ejecucin; y considerar qu tipo de microcontrolador usar, segn la tarea a desarrollar).

De

acuerdo

con

la

problemtica

resolver,

debemos

seleccionar

el

segn:

o Arquitectura o Conjunto de instrucciones o N de instrucciones

29

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Por ejemplo:

Pic 16Cxxx Hardvard RISC 35 Pic 17Cxxx Hardvard RISC 58 Motorola HC11 Von Neumann CISC 109 Intel 8051 Von Neumann CISC 40

As, pues, podemos decir que la principal ventaja de usar MCU6 con conjunto de instrucciones CISC es que, para una instruccin compleja, slo usaremos una posicin de memoria (al contrario de lo que ocurre con RISC Reduced Instruction Set Computer, que consideraremos en un momento ms; en este ltimo conjunto de instrucciones, para realizar, por ejemplo, una divisin debemos de usar varias instrucciones, consumiendo ms memoria).

Frente a esta ventaja de los repertorios CISC, se nos presenta una desventaja con respecto a los RISC, y es que el ancho de banda se ve reducido considerablemente, debido a que una instruccin va a consumir varios ciclos de instruccin para ejecutarse. Como ya analizamos, estos microcontroladores son ms lentos que los que usan repertorios RISC y, adems, puede ser que el conjunto de instrucciones sea bastante grande (como vamos a considerarlo en nuestro prximo captulo para Motorola HC11 o INTEL 8051), lo que no es en s un gran problema pero s un trabajo extra para aprender a usarse.

Arquitectura Harvard
La arquitectura Harvard se caracteriza por tener la memoria de datos separada de la memoria del programa y stas, a su vez, unidas a la CPU a travs de buses independientes. El que la informacin se almacene en palabras tiene una gran ventaja y es que tanto el cdigo de operacin como el dato asociado a ste estn en la misma posicin (por tanto, su lectura es mucho ms rpida). sta es una gran ventaja ya que dota al microcontrolador de gran agilidad. La tcnica de procesar varias instrucciones al mismo tiempo se conoce como pipelining o segmentacin. Con esta tcnica se dividen las instrucciones en distintas etapas, de modo que el
6

MCU es la abreviatura de chip o unidad microcontroladora o microprocesador monopastilla

30

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
procesador pueda procesar distintas instrucciones en estas etapas. Veamos un ejemplo de esto.

Una instruccin tpica se divide en cinco etapas: 1 2 3 4 5 6 Bsqueda de la instruccin. Decodificacin de la instruccin. Lectura del dato a travs del bus de datos, ya sea de la memoria RAM o de cualquier registro mapeado en cualquier parte de la zona de memoria. Ejecucin de la instruccin. Almacenamiento del resultado en memoria.

Una desventaja de este sistema es que la adicin de memoria externa es mucho ms compleja e, incluso, a veces, imposible. En contraposicin con los microcontroladores con arquitectura von Neumann, los basados en Harvard tienen repertorios de instrucciones RISC Reduced Instruction Set Computer.

Sus ventajas saltan a la vista: ms rapidez de ejecucin de cdigo incluso en algoritmos de divisin que vienen implementados con ms cdigo en los RISC que en los CISC, la velocidad de ejecucin es mayor en los primeros y menor el nmero de instrucciones lo que simplifica, tambin, nuestro aprendizaje cuando queremos programar un MCU para una tarea simple. Por el contrario, requiere utilizar ms memoria en un PIC7 que en un HC08 o un 8051 para realizar una funcin.

Introduccin a los Microcontroladores

Los microcontroladores estn conquistando el mundo. Estn presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y de los teclados de las computadoras, en los telfonos, en los hornos microondas y en los televisores de nuestro hogar. Pero... la invasin acaba de comenzar y el nacimiento del siglo XXI ser testigo de la conquista masiva de estos diminutos computadores que gobernarn la mayor parte de
7

PIC es el nombre de los microcontroladores de la lnea Microchip, HC08 de la lnea Motorota y 8051 de la de Intel.

31

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
los aparatos que fabricaremos y usaremos los humanos.

Se trata de un computador monopastilla de limitadas prestaciones que, normalmente, se dedica a resolver una tarea especfica. Es ms pequeo que una caja de fsforos por lo que suele estar incluido en el dispositivo que controla y, en ocasiones, cuesta menos que aqulla.

Un microcontrolador es un microprocesador optimizado para controlar equipos electrnicos. Los microcontroladores representan la inmensa mayora de los chips de ordenador vendidos: un 50% est integrado por controladores simples y otro 50% por DSP Procesador digital de seal ms especializados. Se puede tener uno o dos microprocesadores de propsito general en casa y entre una y dos docenas de microcontroladores si sumamos los que contiene cada dispositivo elctrico de lavadoras, horno microondas, telfonos, etc.. Un microcontrolador difiere de una CPU normal, debido a que es ms fcil convertirlo en un ordenador en funcionamiento, con un mnimo de microchips externos de apoyo: el chip se coloca en el dispositivo, conectado a la fuente de energa y de informacin que necesita... y eso es todo! Por supuesto, un microprocesador tradicional no nos permite hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Consideremos un ejemplo. Un microcontrolador tpico tiene un generador de reloj integrado y una pequea cantidad de memoria RAM y ROM/EPROM/EEPROM; para hacerlo funcionar, slo se necesitan unos pocos programas de control y un cristal de sincronizacin. Por lo general, los microcontroladores tambin disponen de una gran variedad de dispositivos de entrada/salida, como conversores analgico a digital, temporizadores, UART y buses de interfaz serie

32

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
especializados, como I C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Algunos microcontroladores incluyen un lenguaje de programacin integrado, como el lenguaje de programacin BASIC.
2

El controlador embebido se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado de ah su denominacin en el propio dispositivo al que gobierna. Se dice que es la solucin en un chip, porque su reducido tamao minimiza el nmero de componentes y el costo. El microcontrolador es un computador dedicado: En su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan el conexionado de los sensores y actuadores de ese dispositivo a controlar. Una vez programado y configurado, el microcontrolador solamente sirve para gobernar la tarea asignada8. Estas caractersticas los hacen muy apropiados para desarrollar dispositivos de control o mquinas automticas, ya que poseen los elementos claves de control encapsulados en un mismo chip, lo que posibilita una inmejorable inmunidad al ruido (Inmunidad al ruido muy envidiada en los sistemas con microprocesador que poseen sus buses al aire, pasendose por el circuito impreso, o por cintas planas de cables de interconexin entre perifricos e interfaces). Un microcontrolador es la unin de tres tipos de dispositivos en un chip: Un microprocesador. Memorias. Otros dispositivos perifricos. Evidentemente, el corazn del microcontrolador es un microprocesador; pero, cabe recordar que... El microcontrolador es para una aplicacin concreta y no es universal como el microprocesador. El nmero de productos que funcionan en base a uno o varios microcontroladores aumenta de forma exponencial. Casi todos los perifricos del computador (ratn, teclado, impresora, etc.) son regulados por el programa de un microcontrolador.

An cuando estamos enfatizando el hecho de que el microcontrolador es un dispositivo dedicado a una tarea en particular, una vez programado, gracias a los avances de la tecnologa, este programa puede ser actualizado tantas veces como sea necesario, incluso en el mismo sistema de trabajo; es decir, podemos reprogramarlo para que realice otras tareas o mejorar su funcionamiento incorporando rutinas ms apropiadas.

33

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Los electrodomsticos de lnea blanca (lavadoras, hornos, Etc.) y de lnea marrn (televisores, videos, aparatos de msica, etc.) incorporan numerosos microcontroladores. Igualmente, los sistemas de supervisin, vigilancia y alarma en los edificios utilizan estos chips para optimizar el rendimiento de ascensores, calefaccin, alarmas de incendio, robo... Los microcontroladores ofrecen la nica solucin prctica a muchos problemas de diversos campos:

Perifricos y dispositivos auxiliares de los computadores. Electrodomsticos. Aparatos porttiles y de bolsillo (tarjetas, monederos, telfonos, etc.). Mquinas expendedoras y juguetera. Instrumentacin. Industria de automocin. Control industrial y robtica. Electromedicina. Sistema de navegacin espacial. Sistemas de seguridad y alarma. Domotica en general.

34

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En las aplicaciones sencillas resultan preferibles las soluciones no programables que no requieren desarrollo de software (escribir software consume mucho tiempo, por lo que resulta ms costoso; en aplicaciones sencillas y/o de poca tirada, a menudo es ms razonable efectuar tareas en hardware). Sin embargo, conforme aumenta la complejidad del sistema, aumentan las ventajas del uso de sistemas programables. Una de las principales ventajas de los sistemas programables es su flexibilidad, la que permite actualizar el funcionamiento de un sistema mediante tan slo el cambio del programa, sin tener que volver a disear el hardware. Esta flexibilidad es muy importante, al permitir que los productos se actualicen con facilidad y economa.

Controlador y Microcontrolador
Partamos de un ejemplo para caracterizar cmo se vinculan, y en qu se diferencian un controlador y un microcontrolador. El controlador que regula el funcionamiento de un horno dispone de un sensor que mide constantemente su temperatura interna y, cuando sta traspasa los lmites prefijados, genera las seales adecuadas que accionan los efectores que intentan llevar el valor de la temperatura dentro del rango estipulado. Aunque el concepto de controlador ha permanecido invariable a travs del tiempo, su implementacin fsica ha variado frecuentemente. Hace tres dcadas, los controladores se construan exclusivamente con componentes de lgica discreta; posteriormente, se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un chip, el cual recibe el nombre de microcontrolador, que consiste en un sencillo pero completo computador, contenido en el corazn chip de un circuito integrado. Un microcontrolador es un circuito integrado de alta escala de integracin que incorpora la mayor

35

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
parte de los elementos que configuran un controlador.

Un microcontrolador dispone normalmente de los siguientes componentes: Procesador o CPU. Memoria RAM para contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Lneas de E/S para comunicarse con el exterior. Diversos mdulos para el control de perifricos (temporizadores, puertas serie y paralelo, ADC: conversores analgico/digital, DAC: conversores digital/ analgico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Los productos que para su regulacin incorpora un microcontrolador, disponen de las siguientes ventajas: Aumento de prestaciones. Un mayor control sobre un determinado elemento representa una mejora considerable. Aumento de la fiabilidad. El microcontrolador reemplaza a un elevado nmero de elementos, disminuye el riesgo de averas y requiere menos ajustes. Reduccin del tamao en el producto acabado. La integracin del microcontrolador en un chip disminuye el volumen, la mano de obra y el stock. Mayor flexibilidad. Las caractersticas de control estn programadas, por lo que su modificacin slo necesita cambios en el programa de instrucciones.

Microprocesador y microcontrolador
Un microprocesador es un sistema abierto (configuracin variable) con el que puede construirse un computador con las caractersticas que se desee, acoplndole los mdulos necesarios. Un microcontrolador es un sistema cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden modificar.

36

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El microcontrolador es un sistema cerrado. Todas las partes del computador estn contenidas en su interior y slo salen al exterior las lneas que gobiernan los perifricos. Cuando el volumen de informacin es importante o bien cuando el tratamiento de sus datos es exigente, el sistema con microprocesador es ms apropiado, por tener una estructura abierta que permite al diseador seleccionar los perifricos ms adecuados y prever futuras expansiones de memoria. Decidirse por construir el sistema con el microprocesador o utilizar, directamente, el microcontrolador depender de la economa. Si el C est limitado por su propia CPU, es necesario elegir un P potente y aadir los buffers, drivers, decodificadores, memorias... pertinentes. Generalmente, salvo que la aplicacin exija grandes prestaciones, el C ser una solucin vlida, con la ventaja de que reduce el espacio y el hardware. Si slo dispusisemos de un modelo de microcontrolador, ste debe tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciacin supone, en muchos casos, un despilfarro. En la prctica, cada fabricante de microcontroladores ofrece un elevado nmero de modelos diferentes, desde los ms sencillos hasta los ms poderosos. Es posible seleccionar la capacidad de las memorias, el nmero de lneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseo es la seleccin del microcontrolador a utilizar.

37

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Aplicaciones de los microcontroladores


Cada vez existen ms productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y costo, mejorar su fiabilidad y disminuir el consumo.

Este dato puede dar una idea de la masiva utilizacin de estos componentes: Algunos fabricantes de microcontroladores superan el milln de unidades de un modelo determinado, producidas en una semana. Aunque en el mercado de la microinformtica la mayor atencin la acaparan los desarrollos de los microprocesadores, lo cierto es que se venden cientos de microcontroladores por cada uno de aqullos.

Una aplicacin tpica podra emplear varios microcontroladores para controlar pequeas partes del sistema. Estos controladores podran comunicarse entre ellos y con un procesador central, probablemente ms potente, para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. Existe una gran diversidad de microcontroladores. Quiz la clasificacin ms importante sea entre microcontroladores de 4, 8, 16 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 razn de esta tendencia es que los microcontroladores de 4 y 8 bits son apropiados para la gran mayora de las aplicaciones, lo que hace absurdo emplear micros ms potentes y, consecuentemente, ms caros. Uno de los sectores que ms tracciona el mercado del microcontrolador es el mercado automovilstico. De hecho, algunas de las familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo modificadas posteriormente para adaptarse a sistemas ms genricos. El mercado del automvil es, adems, uno de los ms exigentes: los componentes electrnicos deben operar con condiciones extremas de vibracin, choques, ruido, etc. y seguir siendo fiables, ya que el fallo de cualquier componente en un automvil puede ser el origen de un accidente. En cuanto a las tcnicas de fabricacin, cabe decir que prcticamente la totalidad de los microcontroladores actuales se fabrica con tecnologa CMOS 4 Complementary Metal Oxide Semiconductor. Esta tecnologa supera a las tcnicas anteriores por su bajo consumo y su alta inmunidad al ruido. La distribucin de las ventas, segn su aplicacin, es la siguiente: Una tercera parte se absorbe en las aplicaciones relacionadas con los computadores y sus perifricos.

38

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La cuarta parte se utiliza en las aplicaciones de consumo (electrodomsticos, juegos, TV, video, etc.) El 16% de las ventas mundiales se destina al rea de las comunicaciones. Otro 16% es empleado en aplicaciones industriales. El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10%, es adquirido por las industrias de automacin. Los modernos microcontroladores de 32 bits tambin van afianzando sus posiciones en el mercado. Las reas ms interesadas en ellos son las del procesamiento de imgenes, las comunicaciones, las aplicaciones militares, los procesos industriales y el control de los dispositivos de almacenamiento masivo de datos.

Qu microcontrolador emplear?

A la hora de escoger el microcontrolador a emplear en un diseo, hay que tener en cuenta multitud de factores, como la documentacin y herramientas de desarrollo disponibles y su precio, la cantidad de fabricantes que lo producen y, por supuesto, las caractersticas del microcontrolador (tipo de memoria de programa, nmero de temporizadores, interrupciones, etc.).

Costos:. Como es lgico, los fabricantes de microcontroladores compiten duramente para vender sus productos. Y no les va demasiado mal ya que, sin hacer demasiado ruido, venden 100 veces ms microcontroladores que microprocesadores. Para que nos hagamos una idea: para el fabricante que usa el microcontrolador en su producto, una diferencia de precio de algunos dlares en el microcontrolador es importante (el consumidor debe pagar, adems, el costo del empaquetado, el de los otros componentes, el diseo 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 se decidan por microcontroladores pertenecientes a una nica familia, para unificar herramientas de programacin, recursos humanos, etc.

Aplicacin: Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicacin:

39

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Procesamiento de datos. Puede ser necesario que el microcontrolador realice clculos crticos en un tiempo limitado. En ese caso, debemos seleccionar un dispositivo suficientemente rpido para ello. Por otro lado, es necesario tener en cuenta la precisin de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 32 bits o, incluso, a hardware de coma flotante9. Una alternativa ms barata y quiz suficiente es usar libreras, para manejar los datos de alta precisin.

Entrada/salida. Para determinar las necesidades de entrada/salida del sistema es conveniente dibujar su diagrama de bloques, de tal forma que sea sencillo identificar la cantidad y el tipo de seales a controlar. Una vez realizado este anlisis, puede ser necesario aadir perifricos hardware externos o cambiar a otro microcontrolador ms adecuado a ese sistema.

Consumo. Algunos productos que incorporan microcontroladores estn alimentados con bateras; su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo ms conveniente, en un caso como ste, puede ser que el microcontrolador est en estado de bajo consumo pero que despierte ante la activacin de una seal (una interrupcin) y ejecute el programa adecuado para procesarla.

Generalmente, los microcontroladores de 8 bits estn preparados para trabajar con nmeros enteros y, si necesitamos optimizar esto, tenemos dos posibilidades: abutilizar un microcontrolador que trabaja con exponente y mantisa (notacin cientfica) , llamado de punto flotante, generalmente de 16 o 32 bits; utilizar libreras ya desarrolladas para microcontroladores de 8 bits que trabajan internamente como un microcontrolador de 16 bits. En cuanto al manejo de datos y a las operaciones aritmticas y lgicas, stas sobrecargan al microcontrolador; pero, logran el objetivo principal: mayor precisin en los resultados, tambin llamado doble precisin (dos Byte), cudruple precisin (cuatro Bytes), etc.

40

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Memoria. Para detectar las necesidades de memoria de nuestra aplicacin debemos separarla en memoria voltil (RAM), memoria no voltil (ROM, EPROM, etc.) y memoria no voltil modificable (EEPROM). Este ltimo tipo de memoria puede ser til para incluir informacin especfica de la aplicacin, como un nmero de serie o parmetros de calibracin. El tipo de memoria a emplear vendr determinado por el volumen de ventas previsto del producto: de menor a mayor volumen ser conveniente emplear EPROM, OTP 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, y, a partir de ella, hacer una estimacin de cunta memoria voltil y no voltil es necesaria y si es conveniente disponer de memoria no voltil modificable.

Ancho de palabra. El criterio de diseo debe ser seleccionar el microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicacin. Usar un microcontrolador de 4 bits supone una reduccin importante en los costes; mientras que uno de 8 bits puede ser el ms adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, se reservan para aplicaciones que requieran sus altas prestaciones (Entrada/salida potente o espacio de direccionamiento muy elevado).

Diseo de la placa. La seleccin de un microcontrolador concreto condiciona el diseo de la placa de circuitos. Debe tenerse en cuenta que, quizs, usar un microcontrolador barato encarezca el resto de componentes del diseo.

Los microcontroladores ms populares10:

8048 (Intel). Es el padre de los microcontroladores actuales, el primero de todos. Su precio, disponibilidad y herramientas de desarrollo hacen que todava sea muy popular.
Es preciso resaltar en este punto que existen innumerables familias de microcontroladores, cada una de las cuales posee un gran nmero de variantes.
10

41

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

8051 (Intel, Atmel y otros). Es, sin duda, el microcontrolador ms popular. Fcil de programar y potente. Est bien documentado y posee cientos de variantes e incontables herramientas de desarrollo.

80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las herramientas de desarrollo para PC.

68HC11/HC08 (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 68000, a la que se incorporan algunos perifricos. Son microcontroladores de altsimas prestaciones.

PIC (MicroChip). Familia de microcontroladores que gana popularidad da a da. Fueron los primeros microcontroladores RISC.

Almacenamiento y ejecucin del programa

Un programa es una lista de instrucciones al procesador. Todos los P y C cuentan con un conjunto de instrucciones que pueden ejecutar. Cada tipo de procesador y controlador tiene su propio conjunto de instrucciones y, por lo general, los programas escritos para un dispositivo no funcionan en otro de distinta marca.

Un C tpico tiene instrucciones para: Transferir informacin entre registros y memoria; Realizar operaciones aritmticas y lgicas; + Efectuar comparaciones y pruebas sobre el contenido de sus registros de memoria; Controlar la secuencia de ejecucin de programas.

42

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Por lo general, la operacin que una instruccin ha de ejecutar est definida por un cdigo de operacin (en C sencillos, generalmente de un solo byte) conocido tambin como opcode. Algunas instrucciones requieren, adems del opcode, informacin extra (operandos). Por ejemplo, una instruccin para almacenar el contenido de un registro en una posicin de memoria, necesita incluir la direccin de memoria de destino. La unidad de control y decodificacin de instrucciones es el corazn del procesador. Es la encargada de extraer de forma secuencial las instrucciones de la memoria y, luego, ejecutarlas. Unido a la unidad de control se encuentra un generador de reloj, que utiliza un oscilador para producir una seal de reloj muy precisa. El tiempo se divide en un cierto nmero de ciclos de reloj. El funcionamiento de la unidad de control y decodificacin de instrucciones se puede dividir en dos partes (ambas duran varios ciclos de reloj): Ciclo de bsqueda de instrucciones. En l se transfiere la direccin de la siguiente instruccin al bus de direcciones, se enva una orden de lectura a los dispositivos de memoria a travs del bus de control, se lee la informacin del bus de datos y, si se trata del primer byte de una instruccin, se transfiere este byte al registro de instrucciones. Ciclo de ejecucin de instrucciones. En l se ejecuta la instruccin. El registro de instrucciones est conectado a un decodificador que determina cuntos bytes de informacin adicionales se requieren. stos se cargan mediante ciclos de bsqueda, como ya indicamos.

Cuando la ejecucin est completa, la mquina comienza, automticamente, el ciclo de bsqueda de la siguiente instruccin del programa. La ejecucin es, por tanto, una secuencia continua de ciclos de bsqueda y ejecucin. Recursos comunes a todos los microcontroladores Nos referiremos en este punto a decisiones respecto de:

Arquitectura bsica. Procesador o CPU. Memoria. Puertas de entrada y salida. Reloj principal.

43

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Arquitectura bsica
Aunque, inicialmente, todos los microcontroladores adoptan la arquitectura clsica de Von Neumann, hoy da hay mayor tendencia hacia la arquitectura Harvard.

o o

Bus de datos. Se emplea para transferir datos. El nmero de lneas de este bus es igual a la longitud de palabra del dispositivo. Bus de direcciones. Permite transferir informacin de direcciones. El nmero de lneas en el bus de direcciones determina el numero de posiciones de memoria que el procesador puede especificar. Un bus de direcciones de 8 lneas es capaz de posicionar slo 2 (256) direcciones. Bus de control. El procesador utiliza las lneas del bus de control para sincronizar operaciones con componentes externos.
8

Por ejemplo: Si el procesador o microcontrolador desea almacenar una palabra de datos en una ubicacin de memoria particular, coloca los datos en el bus de datos, la direccin en la que se van a almacenar los datos en el bus de direcciones y diversas seales de control para sincronizar la operacin de almacenamiento en el bus de control. La necesidad de conseguir rendimientos elevados en el procesamiento de las

44

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
instrucciones ha desembocado en el empleo cada vez mayor de procesadores de arquitectura Harvard, frente a los tradicionales que siguen la arquitectura de Von Neumann. Mientras esta ltima como le plantebamos en la primera parte del curso se caracteriza porque la CPU se conecta a una memoria nica donde coexisten datos e instrucciones a travs de un

sistema de buses, en la arquitectura Harvard son independientes la memoria de instrucciones y la memoria de datos, y cada una dispone de su propio sistema de buses para el acceso, lo que propicia el paralelismo:

La arquitectura Harvard dispone de dos memorias independientes: o o una que contiene slo instrucciones otra, slo datos.

Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultneamente en ambas memorias.

Procesador o CPU
Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el cdigo OP de la instruccin en curso, su decodificacin y la ejecucin de la operacin que implica la instruccin, as como la bsqueda de los operandos y el almacenamiento del resultado.

45

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC. Un gran nmero de procesadores usados en los microcontroladores est basado en la filosofa CISC computadores de juego de instrucciones complejo. Disponen de ms de 80 instrucciones de mquina en su repertorio, algunas de las cuales son muy sofisticadas y

potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actan como macros.

RISC. Tanto la industria de los computadores comerciales como la de los microcontroladores estn decantndose hacia la filosofa RISC computadores de juego de instrucciones reducido. En estos procesadores, el repertorio de instrucciones mquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

SISC. En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es especfico: las instrucciones se adaptan a las necesidades de la aplicacin prevista computadores de juego de instrucciones especfico.

Memoria
En los microcontroladores, la memoria de instrucciones y datos est integrada en el propio chip: o o Una parte es no voltil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicacin. Otra parte de memoria es tipo RAM, voltil, y se destina a guardar las variables y los datos.

Hay dos peculiaridades que diferencian a los microcontroladores de los computadores personales: o En los C no existen sistemas de almacenamiento masivo como disco duro o disquetes. o Como los C slo se destinan a una tarea, en la memoria ROM slo hay que almacenar un nico programa de trabajo. La RAM en estos dispositivos es de poca capacidad, pues slo debe contener las variables y los cambios de informacin que se produzcan en el transcurso del programa. Por otra parte, como slo existe un programa activo, no se requiere guardar su copia en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales estn habituados a manejar Megabytes de memoria; pero, los diseadores con microcontroladores trabajan con capacidades:

46

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
de ROM comprendidas entre 2 k bytes y 64 k bytes, y de RAM comprendidas entre 20 bytes y 2 K bytes. Segn el tipo de memoria ROM que dispongan los microcontroladores, su aplicacin y utilizacin son diferentes. Las cinco versiones de memoria no voltil que se pueden encontrar en los microcontroladores del mercado, son: ROM con mscara. Es una memoria no voltil de slo lectura, cuyo contenido se graba durante la fabricacin del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP One Time Programmable. El microcontrolador contiene una memoria no voltil de slo 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 versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. EPROM Erasable Programmable Read OnIy Memory. Los microcontroladores que disponen de memoria EPROM pueden borrarse y grabarse muchas veces. La grabacin 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 de cuarzo en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico, por lo que son ms caros que los microcontroladores con memoria OTP, los que estn hechos con material plstico. EEPROM Electrical Erasable Programmable Read OnIy Memory-. Se trata de memorias de slo lectura, programables y borrables elctricamente. Tanto la programacin como el borrado se realizan elctricamente desde el propio grabador y bajo el control programado de una PC. Las operaciones de grabado y de borrado son muy cmodas y rpidas. No disponen de ventana de cristal de cuarzo en la superficie. Los microcontroladores dotados de memoria EEPROM, una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera, sin ser retirados de dicho circuito. Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son muy idneas para la enseanza y la ingeniera de diseo. Por todas estas ventajas, se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lento. FLASH. Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM; pero, consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM, cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin del microcontrolador puede convertirse en una labor rutinaria dentro

47

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
de la puesta a punto.

Hay miles de posiciones de memoria o ms en un sistema de MCU. Es importante, entonces, contar con un medio conveniente para no perder de vista su contenido. Un mapa de memoria es una representacin grfica de la totalidad de la memoria del MCU. Veamos el mapa de memoria de un microcontrolador:

48

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Las memorias pueden ser una forma de perifricos. Ya hemos discutido el uso de diferentes tipos de memoria, pero sin considerar la lgica requerida para soportarlas. Las ROM y RAM son muy ntegras y no requieren lgica de soporte ms que la lgica de seleccin de direcciones para distinguir una posicin de otra. Esta lgica es provista en el mismo chip que aloja a la memoria.

Las memorias EPROM (PROM borrable) y EEPROM (PROM borrable elctricamente) requieren una lgica de soporte para grabarlas (y borrarlas en las EPROM).

Por ejemplo, la lgica perifrica de soporte para el MC68HC908KX8 es similar a un grabador de PROM, contenido en la misma MCU. Un registro de control incluye bits de control para seleccionar entre los modos de grabacin y lectura, y para habilitar la fuente de alimentacin de programacin de alta tensin.

Puertas de entrada y salida


La principal utilidad de las patitas que posee la cpsula que contiene un microcontrolador es soportar las lneas de E/S que comunican al computador interno con los perifricos exteriores. Segn los controladores de perifricos que posea cada modelo de microcontrolador, las lneas de E/S se destinan a proporcionar el soporte a las seales de entrada, salida y control.

Se pueden observar al menos trece lneas que pueden trabajar como entradas o salidas, sin contar la de interrupcin (IRQ1)

49

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronizacin de todas las operaciones del sistema. Generalmente, el circuito de reloj est incorporado en el microcontrolador y slo se necesitan unos

pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cermico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones, pero lleva aparejado un incremento del consumo de energa.

Recursos especiales
Cada fabricante oferta numerosas versiones respecto de la arquitectura bsica de microcontrolador que acabamos de presentar. En algunas ampla las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mnimo para aplicaciones muy simples, etc. La labor del diseador es encontrar el modelo que satisfaga todos los requerimientos de su aplicacin, minimizando el costo, el hardware y el software. Los principales recursos especficos que incorporan los microcontroladores son:

Temporizadores Timers Perro guardin Watchdog o COP Proteccin ante fallo de alimentacin Brownout o LVI Estado de reposo o de bajo consumo Conversor A/D ADC Conversor D/A DAC Comparador analgico Modulador de anchura de impulsos PWM Puertas de E/S digitales Puertas de comunicacin

Temporizadores Timers
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos, se carga un registro con el valor adecuado y, a continuacin, dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algn mltiplo, hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desea contar acontecimientos que se materializan por cambios de nivel o flancos en 50

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Perro guardin Watchdog o COP


Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botn

del reset y se reinicia el sistema. Pero, un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del da, por lo que requiere este recurso especial. El perro guardin consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automticamente en el sistema. Se disea el programa de trabajo que controla la tarea, de forma tal que refresca o inicializa al perro guardin antes de que provoque el reset. Si falla el programa o se bloquea, no se refresca al perro guardin y, al completar su temporizacin, ladrar provocando el reset.

Proteccin ante fallo de alimentacin Brownout o LVI


Se trata de un circuito que resetea al microcontrolador cuando la tension de alimentacin (VDD) es inferior a un valor mnimo brownout. Mientras la tension de alimentacin es inferior al de brownout, el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Su denominacin LVI corresponde a Interrupcin por bajo nivel de tensin.

Estado de reposo o de bajo consumo


Son abundantes las situaciones reales de trabajo en las que el microcontrolador debe esperar, sin hacer nada, a que se produzca algn acontecimiento externo que lo ponga de nuevo en funcionamiento. Para ahorrar energa factor clave en los aparatos porttiles, los microcontroladores disponen de una instruccin especial (Sleep en los PIC; Stop wait, Sleep en Motorola) que los pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mnimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando sumido el mC en un profundo sueo. Al activarse una interrupcin ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo (En Motorola dependiendo de cul se utiliza, puede quedar algn circuito interno funcionando).

51

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Conversor A/D ADC


Los microcontroladores que incorporan un conversor A/D (analgico/digital) pueden procesar seales analgicas, tan abundantes en las aplicaciones. Un multiplexor permite aplicar a la entrada del ADC diversas seales analgicas, de-de las patitas del circuito integrado.

Conversor D/A DAC

Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente seal analgica, que saca al exterior por una de las patitas de la cpsula. Existen muchos sistemas de control que trabajan con seales analgicas. En algunos microcontroladores, dicha seal analgica puede generarse con la salida PWM debidamente filtrada.

Comparador analgico
Algunos modelos de microcontroladores disponen internamente de un amplificador operacional que acta como comparador entre una seal fija de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0, segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores (por ejemplo: AT80251 de Atmel).

Modulador de ancho de pulso o PWM


Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a travs de las patitas del encapsulado. Permiten implementar salidas analgicas si son filtradas con un capacitor y una resistencia. Adems, se logra comandar servos de aeromodelismo que son muy aplicados en robtica y

52

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
generar control de ngulo para seales de alterna de 220 Vac con triacs.

Puertas de E/S digitales


Todos los microcontroladores destinan algunas de sus patitas a soportar lneas de E/S digitales. Por lo general, estas lneas se agrupan de ocho en ocho, formando puertas.

Las lneas digitales de las puertas pueden configurarse como Entrada o como Salida, cargando un 1 un 0 en el bit correspondiente de un registro destinado a su configuracin.

Puertas de comunicacin
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos, algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan:

UART, adaptador de comunicacin serie asncrona. USART, adaptador de comunicacin serie sncrona y asncrona. Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. USB Universal Serial Bus, moderno bus serie para los PC. Bus I 2 C, que es un interfaz serie de dos hilos desarrollado por Philips. CAN Controller Area Network para permitir la adaptacin con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automviles (En EE.UU. se usa el J185O).

Herramientas para el desarrollo de aplicaciones


Entre todos los dems, uno de los factores que ms importancia tiene a la hora de seleccionar un microcontrolador es el soporte tanto software como hardware de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la eleccin, ya que supone una ayuda inestimable en el desarrollo del proyecto. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores son:

53

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Ensamblador. La programacin en lenguaje ensamblador puede resultar un tanto ardua para el principiante; pero, permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y, en cualquier caso, siempre se puede encontrar una versin gratuita para los microcontroladores ms populares. Compilador. La programacin en un lenguaje de alto nivel (como el C); permite disminuir el tiempo de desarrollo de un producto. No obstante, si no se programa con cuidado, el cdigo resultante puede ser mucho ms ineficiente que el programado en ensamblador. Las versiones ms potentes suelen ser muy caras; aunque, para los microcontroladores ms populares pueden encontrarse versiones demo limitadas e, incluso, compiladores gratuitos. Depuracin. Debido a que los microcontroladores van a controlar dispositivos fsicos, los desarrolladores necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador, cuando es conectado al res-to de circuitos.

Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecucin de un programa, siendo ideales para su depuracin. Su gran inconveniente es que es difcil simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los posibles ruidos en las entradas; pero, al menos, permiten el paso fsico de la implementacin de un modo ms seguro y menos costoso, puesto que ahorramos en grabaciones de chips para la prueba in-situ.

Placas de evaluacin. Se trata de pequeos sistemas con un microcontrolador ya montado, que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LED, fcil 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 evaluacin, aparte de permitir cargar programas y datos en la memoria del microcontrolador, posibilita realizar, en cualquier momento, ejecuciones paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados en los registros o en la memoria.

Emulador en circuito. Se trata de un instrumento que se coloca entre el PC anfitrin y el zcalo de la tarjeta de circuito impreso donde se alojar el microcontrolador definitivo. El programa es ejecutado desde el PC; pero, para la tarjeta de aplicacin es como si lo hiciese el mismo microcontrolador que luego ir en el zcalo. Presenta en pantalla toda la informacin tal y como luego suceder cuando se coloque la cpsula.

Ejemplos de microcontroladores, usos y aplicaciones

54

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Gran parte de los fabricantes de circuitos integrados dispone de su propia lnea de microcontroladores. En la tabla reseamos los fabricantes ms destacados:

55

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Fabricante
Intel Motorola Hitachi Philips SGS-Thomson (ST) Microchip National Semiconductor Zilog Texas Instruments Toshiba Infineon Dallas Nec Atmel

Modelo de C
8048, 8051, 80C196, 80186, 80188, 80386EX 6805, 68HC11, 68HC08, 68HC16, 683XX HD64180 Gama completa de clnicos del 8051 / 52 ST-62XX PICs (Familias 12, 14, 16, 17 y 18) COP8, derivados de 8051/ 8052 Z8, Z80 TMS370, derivados de 8051/ 8052 TLCS-870 C500 DS5000 78K AT91, AT89S8252, derivados de 8051/ 8052

Cada fabricante de microcontroladores oferta un elevado nmero de modelos diferentes, desde los ms sencillos hasta los ms poderosos, de forma que es posible seleccionar la capacidad de la memoria, el nmero de lneas de E/S, la cantidad y potencia de elementos auxiliares, la velocidad de funcionamiento, etc. En la figura se muestra el ranking de ventas en Europa de microcontroladores de 8 bits: Se considera a Intel como el padre de los microcontroladores y al 8048 como el primer microcontrolador de 8 bits (fabricado por Intel en la dcada de los 70). Otra de las principales empresas del mundo de dispositivos programables es Motorola, que dispone de potentes microcontroladores como son las familias 68HC11 y 68HC08.

56

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Los microcontroladores PIC de la empresa americana Microchip se emplean en la actualidad cada vez ms, debido a su bajo coste, facilidad de uso, y la abundancia de informacin y herramientas de apoyo. Microprocesador Computadores (ordenadores personales). Controladores buses industriales. Microcontrolador: Electrodomsticos. Tarjetas de control de acceso. Juguetes. Automacin. TV, audio y video. Mquinas y equipos industriales

DSP procesador digital de seal: Reconocimiento de voz, procesamiento de seales acsticas. Mdem.

Usos y aplicaciones de microprocesadores:

Usos y aplicaciones de microcontroladores:

57

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Los microcontroladores en uso ms comunes, por fabricante, son: Motorola. 8-bit: 68HC05, 68HC08, 68HC11. 16 bit: 68HC12, 68HC16. 32-bit: 683xx Microchip. 12-bit: Instruction PIC. 14-bit: Instruction PIC y HT8 PIC16F84. 16bit Instruction PIC Atmel. AVR Hitachi. Hitachi H8 Holtek. HT8 Intel. 8-bit: 8XC42, MCS51, 8xC251. 16-bit: MCS96, MXS296 National Semiconductor. COP8 NEC. 78K ST. ST 62, ST 7 Texas Instruments. TMS370 Zilog. Z8, Z86E02 Genrico. Algunas arquitecturas de microcontrolador estn disponibles por tal cantidad de vendedores y en tantas variedades, que podran tener, con total correccin, su propia categora. Entre ellos encontramos, principalmente, las variantes de Intel 8051 y Z80.

Los Microcontroladores PIC

A partir de este punto dejaremos los aspectos generales de los microcontroladores para dedicarnos exclusivamente al estudio, anlisis y uso de los microcontroladores de Microchip, denominados comercialmente bajo el nombre PIC.

Desde la invencin del circuito integrado, el desarrollo constante de la electrnica digital ha dado lugar a dispositivos cada vez ms complejos. Entre ellos los microprocesadores y los microcontroladores, los cuales son bsicos en las carreras de ingeniera electrnica.

PORQUE LOS PIC?


Dedicarnos al estudio especfico de los PIC no significa que se quiera presentar a esta familia como la "mejor". Considerando el momento actual, comparando los parmetros fundamentales con los modelos comerciales de otros fabricantes y las aplicaciones ms habituales a las que se destinan los microcontroladores, podramos pensar que casi en un 90 % de los casos la eleccin de una versin adecuada de PIC es la mejor solucin. Sin embargo, otras familias de microcontroladores son ms eficaces en aplicaciones concretas, especialmente si predomina una caracterstica especial. Pero no hay que dejar pasar la ocasin de afirmar que en la actualidad los PIC tienen "algo" que fascina a los diseadores. Pueden ser la velocidad, el precio, la facilidad de uso, la informacin, las herramientas de apoyo. Quizs un poco de todo es lo que produce esa imagen de sencillez y utilidad. Es muy posible que maana otra familia de microcontroladores le arrebate ese "algo". Es la ley del mercado y la competencia.
58

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

BREVE RESEA HISTORICA ACERCA DE LOS PIC


En 1965, la empresa GI cre una divisin de microelectrnica, GI Microelectronics Divisin, que comenz su andadura fabricando memorias EPROM y EEPROM, que conformaban las familias AY3XXXX y AY5-XXXX. A principios de los aos 70 dise el microprocesador de 16 bits CP1600, razonablemente bueno pero que no manejaba eficazmente las Entradas y Salidas. Para solventar este problema, en 1975 dise un chip destinado a controlar E/S: el PIC (Peripheral Interface Controller). Se trataba de un controlador rpido pero limitado y con pocas instrucciones pues iba a trabajar en combinacin con el CP1600. La arquitectura del PIC, que se comercializ en 1975, era sustancialmente la misma que la de los actuales modelos PIC16C5X. En aquel momento se fabricaba con tecnologa NMOS y el producto slo se ofreca con memoria ROM y con un pequeo pero robusto microcdigo. La dcada de los 80 no fue buena para GI, que tuvo que reestructurar sus negocios, concentrando sus actividades en los semiconductores de potencia. La GI Microelectronics Divisin se convirti en una empresa subsidiaria, llamada GI Microelectronics Inc. Finalmente, en 1985, la empresa fue vendida a un grupo de inversores de capital de riesgo, los cuales, tras analizar la situacin, rebautizaron a la empresa con el nombre de Arizona Microchip Technology y orientaron su negocio a los PIC, las memorias EPROM paralelo y las EEPROM serie. Se comenz rediseando los PIC, que pasaron a fabricarse con tecnologa CMOS, surgiendo la familia de gama baja PIC16CSX, considerada como la "clsica". Una de las razones del xito de los PIC se basa en su utilizacin. Cuando se aprende a manejar uno de ellos, conociendo su arquitectura y su repertorio de instrucciones, es muy fcil emplear otro modelo. Microchip cuenta con su factora principal en Chandler, Arizona, en donde se fabrican y prueban los chips con los ms avanzados recursos tcnicos. En 1993 construy otra factora de similares caractersticas en Tempe, Arizona. Tambin cuenta con centros de ensamblaje y ensayos en Taiwan y Tailandia. Para tener una idea de su alta produccin, hay que tener en cuenta que ha superado el milln de unidades por semana en productos CMOS de la familia PIC16CSX.

CARACTERISTICAS RELEVANTES
1. La arquitectura del procesador sigue el modelo Harvard En esta arquitectura, el CPU se conecta de forma independiente y con buses distintos con la memoria de instrucciones y con la de datos.

59

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Bus de datos
MEMORIA DE DATOS CPU

Bus de Instrucciones
MEMORIA DE INSTRUCCIONES

12

La arquitectura Harvard permite al CPU acceder simultneamente a las dos memorias. Adems, propicia numerosas ventajas al funcionamiento del sistema como se irn describiendo. 2. Se aplica la tcnica de segmentacin (pipe-line) en la ejecucin de las instrucciones. La segmentacin permite al procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De esta forma se puede ejecutar cada instruccin en un ciclo (un ciclo de instruccin equivale a cuatro ciclos de reloj).

CLK

ciclo

BI3 EI3

BI2 EI2

BI1 EI3

Fin INSTR0 Fin INSTR1 Fin INSTR2


La segmentacin permite al procesador ejecutar cada instruccin en un ciclo de instruccin equivalente a cuatro ciclos de reloj. En cada ciclo se realiza la bsqueda de una instruccin y la ejecucin de la anterior. Las instrucciones de salto ocupan dos ciclos al no conocer la direccin de la siguiente instruccin hasta que no se haya completado la de bifurcacin. 3. El formato de todas las instrucciones tiene la misma longitud

60

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero Todas las instrucciones de los microcontroladores de la gama baja tienen una longitud de 12 bits. Las de la gama media tienen 14 bits y ms las de la gama alta. Esta caracterstica es muy ventajosa en la

optimizacin de la memoria de instrucciones y facilita enormemente la construccin de ensambladores y compiladores.

4. Procesador RISC (Computador de Juego de Instrucciones Reducido) Los modelos de la gama baja disponen de un repertorio de 33 instrucciones, 35 los de la gama media y casi 60 los de la alta. 5. Todas las instrucciones son ortogonales Cualquier instruccin puede manejar cualquier elemento de la arquitectura como fuente o como destino. 6. Arquitectura basada en un banco de registros. Esto significa que todos los objetos del sistema (puertos de E/S, temporizadores, posiciones de memoria, etc.) estn implementados fsicamente como registros. 7. Diversidad de modelos de microcontroladores con prestaciones y recursos diferentes. La gran variedad de modelos de microcontroladores PIC permite que el usuario pueda seleccionar el ms conveniente para su proyecto. 8. Herramientas de soporte potentes y econmicas La empresa Microchip y otras que utilizan los PIC ponen a disposicin de los usuarios numerosas herramientas para desarrollar hardware y software. Son muy abundantes los programadores, los simuladores software, los emuladores en tiempo real, ensambladores, Compiladores C, Intrpretes y Compiladores BASIC, etc.

ANALISIS COMPARATIVO DE PRESTACIONES


La arquitectura Harvard y la tcnica de la segmentacin son los principales recursos en los que se apoya el elevado rendimiento que caracteriza estos dispositivos programables, mejorando dos caractersticas esenciales: 1. Velocidad de ejecucin. 2. Eficiencia en la compactacin del cdigo.

LAS TRES GAMAS DE PIC.


61

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Para. resolver aplicaciones sencillas se precisan pocos recursos; en cambio, las aplicaciones grandes requieren numerosos y potentes. Siguiendo esta filosofa, Microchip construye diversos modelos de microcontroladores orientados a cubrir, de forma, las necesidades de cada proyecto. As, hay disponibles microcontroladores sencillos y baratos para atender las aplicaciones simples y otros complejos y ms costosos para las de mucha envergadura. Entre los fabricantes de microcontroladores hay dos tendencias para resolver las demandas de los usuarios: 1. Microcontroladores de arquitectura cerrada Cada modelo se construye con un determinado CPU, cierta capacidad de memoria de datos, cierto tipo y capacidad de memoria de instrucciones, un nmero de E/S y un conjunto de recursos auxiliares muy concreto. El modelo no admite variaciones ni ampliaciones. La aplicacin a la que se destina debe encontrar en su estructura todo lo que precisa y, en caso contrario, hay que desecharlo. Microchip ha elegido principalmente este modelo de arquitectura. 2. Microcontroladores de arquitectura abierta Estos microcontroladores se caracterizan porque, adems de disponer de una estructura interna determinada, pueden emplear sus lneas de E/S para sacar al exterior los buses de datos, direcciones y control, con lo que se posibilita la ampliacin de la memoria y las E/S con circuitos .integrados externos. Microchip dispone de modelos PIC con arquitectura abierta, sin embargo, esta alternativa se escapa de la idea de un microcontrolador incrustado y se asemeja a la. solucin que emplean los clsicos microprocesadores.

Se entiende que los verdaderos microcontroladores responden a la arquitectura cerrada y permiten resolver una aplicacin con un solo circuito integrado y a precio muy reducido. La mayora de los sistemas de control incrustados requieren CPU, memoria de datos, memoria de instrucciones, lneas de E/S, y diversas funciones auxiliares como temporizadores, comunicacin serie y otras. La capacidad y el tipo de las memorias, el nmero de lneas de E/S y el de temporizadores, as como circuitos auxiliares, son parmetros que dependen exclusivamente de la aplicacin y varan mucho de unas situaciones a otras. Quizs se pueda considerar la decisin ms importante del proyecto la eleccin del modelo de microcontrolador. Para adaptarse de forma ptima a las necesidades de los usuarios, Microchip oferta tres gamas de microcontroladores de 8 bits Con las tres gamas de PIC se dispone de gran diversidad de modelos y encapsulados, pudiendo seleccionar el que mejor se adapte a las necesidades de acuerdo con el tipo y capacidad de las memorias, el nmero de lneas de E/S y las funciones auxiliares precisas. Sin embargo, todas las versiones estn construidas alrededor de una arquitectura comn, un repertorio mnimo de instrucciones y un conjunto de opciones muy apreciadas, como el bajo consumo y el amplio margen

62

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero del voltaje de alimentacin. En la figura siguiente se muestra la distribucin de los modelos de PIC en las tres gamas.

PIC17CXX OTP/ EPROM Gama Alta PIC16CXXX OTP/EPROM Gama Media PIC16C5X OTP/EPROM/EEPROM PIC12CXX OTP Gama Baja

63

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero En la siguientes Tablas se presentan las prestaciones de cada modelo de PIC.

64

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

65

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Junto con los microcontroladores, Microchip ha creado una serie de herramientas de ayuda al desarrollo del hardware y software de los proyectos de aplicacin, que son vlidas para la mayora de sus modelos y que se citan a continuacin. 1 Ensamblador MPASM. 2 Simulador software MPSlM. No soporta los modelos PICI7CXX. 3 Compilador de lenguaje C, MP-C. 4 Programador universal PRO MATE. 5 Emulador universal PIC MASTER. 6 Herramienta de desarrollo para Lgica difusa FUZZY TECH-MP. 7 Entorno de Desarrollo Integrado MPLAB

66

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

PIC17CXX

PIC16C7XX

PRECIO

PIC16C71

PIC16C621/ 622

PIC12CXX

PIC16C84

PIC16C5X

PRESTACIONES
La figura anterior muestra un grfico que aclara la relacin "precio/prestaciones de los modelos de PIC. '

La Gama Baja

La gama baja de los PIC encuadra nueve modelos fundamentales en la actualidad, cuyas principales caractersticas aparecen en las anteriores tablas. La memoria de programa puede contener 512, 1 k. y 2 k palabras de 12 bits, y ser de tipo ROM, EPROM. Tambin hay modelos con memoria OTP, que slo puede ser grabada una vez por el usuario. La memoria de datos puede tener una capacidad comprendida entre 25 y 73 bytes. Slo disponen de un temporizador (TMR0), un repertorio de 33 instrucciones y un nmero de patitas para soportar las E/S comprendido entre 12 y 20. El voltaje de alimentacin admite un valor muy flexible comprendido entre 2 y 6,25 V, lo cual posibilita el funcionamiento mediante pilas corrientes teniendo en cuenta su bajo consumo (menos de 2 mA a 5 V y 4 MHz ). Al igual que todos los miembros de la familia PIC16/17, los componentes de la gama baja se caracterizan por poseer los siguientes recursos.

67

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Sistema POR (POWER ON RESET) Todos los PIC tienen la facultad de generar una autoreinicializacin o autoreset al conectarles la alimentacin.

Perro guardin, (Watchdog) Existe un temporizador que produce un reset automticamente si no es recargado antes que pase un tiempo prefijado. As se evita que e! sistema quede "colgado" dado en esa situacin el programa no recarga dicho temporizador y se genera un reset.

Cdigo de proteccin Cuando se procede a realizar la grabacin del programa, puede protegerse para evitar su lectura. Tambin disponen, los PIC de posiciones reservadas para registrar nmeros de serie, cdigos de identificacin, prueba, etc.

Lneas de E/S de alta corriente. Las lneas de E/S de los PIC pueden proporcionar o absorber una corriente de salida comprendida entre 20 y 25 mA, capaz de excitar directamente ciertos perifricos. Modo de reposo (bajo consumo o SLEEP). Ejecutando una instruccin (SLEEP), el CPU y el oscilador principal se detienen y se reduce notablemente el consumo. Para terminar el comentario introductorio sobre los componentes de la gama baja conviene nombrar dos restricciones importantes. 1) La pila o "stack" slo dispone de dos niveles lo que supone no poder encadenar ms de dos subrutinas. 2) Los microcontroladores de la gama baja no admiten interrupciones.

La Gama Media
En esta gama sus componentes aaden nuevas prestaciones a las que posean los de la gama baja, hacindolos ms adecuados en las aplicaciones complejas. Admiten interrupciones, poseen comparadores de magnitudes analgicas, convertidores A/D, puertos serie y diversos temporizadores. Algunos modelos disponen de una memoria de instrucciones del tipo OTP ("One Time Programmable"), que slo la puede grabar una vez el usuario y que resulta mucho ms econmica en la implementacin de
68

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
prototipos y pequeas series.

Hay modelos de esta gama que disponen de una memoria de instrucciones tipo EEPROM, que, al ser borrables elctricamente, son mucho ms fciles de reprogramar que las EPROM, que tienen que ser sometidas a rayos ultravioleta durante un tiempo determinado para realizar dicha operacin.

Comercialmente el fabricante ofrece cuatro versiones de microcontroladores en prcticamente todas las gamas.

Versin EPROM borrable con rayos ultravioleta. La cpsula dispone de una ventana de cristal en su superficie para permitir el borrado de la memoria de programa al someterla durante unos minutos a rayos ultravioleta procedentes de lmparas fluorescentes especiales.

Versin OTP. Programable una sola vez. Son similares a la versin anterior, pero sin ventana y sin la posibilidad de borrar lo que se graba. Versin QTP. Es el propio fabricante el que se encarga de grabar el cdigo en todos los chips que configuran pedidos medianos y grandes. Versin SQTP. El fabricante solo graba unas pocas posiciones de cdigo para labores de identificacin, numero de serie, palabra clave, checksum, etc. El temporizador TMR1 que hay en esta gama tiene un circuito oscilador que puede trabajar asincrnicamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo ("sleep"), posibilitando la implementacin de un reloj en tiempo real. Las lneas de E/S del puerto B presentan una carga "pull-up" activada por software.

La Gama Alta
Los dispositivos PIC17C4X responden a microcontroladores de arquitectura abierta pudindose expansionar en el exterior al poder sacar los buses de datos, direcciones y control. As se pueden configurar sistemas similares a los que utilizan los microprocesadores convencionales, siendo capaces de ampliar la configuracin interna del PIC aadiendo nuevos dispositivos de memoria y de E/S externas. Esta facultad obliga a estos componentes a tener un elevado nmero de patitas comprendido entre 40 y 44. Admiten interrupciones, poseen puerto serie, varios temporizadores y mayores capacidades de memoria, que alcanza los 8 k palabras en la memoria de instrucciones y 454 bytes en la memoria de datos.

PIC16CXX: LA POTENCIA Y FLEXIBILIDAD DE LA GAMA MEDIA


PRESENTACION
La gama baja de microcontroladores que fabrica Microchip esta destinada a soportar aplicaciones con unas
69

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
exigencias tcnicas muy limitadas, caracterstica que resulta muy frecuente en aplicaciones masivas. Esa familia de sencillos dispositivos se englobaba bajo la denominacin PIC16C5X. Cuando el microcontrolador

se emplea en la resolucin de sistemas ms complejos que requieren ms recursos, la familia adecuada es la PIC16CXX, que se sita en la zona media. Finalmente, en la zona alta existen un conjunto de microcontroladores agrupados bajo la denominacin PIC17CXX.

Los microcontroladores de la gama media renen las prestaciones mas completas a un precio muy competitivo. Disponen de comparadores analgicos, convertidores Analgicos/Digitales (CAD) de 8 bits, circuito de Captura/Comparacin, Interfaz serie sincrnico SP/I de 2, 3 o 4 hilos, Interfaz serie asincrnica SCI de 8 o 9 bits, PWM para manipular impulsos de 8 o 10 bits con modulacin de anchura y PSP, que consiste en un puerto paralelo esclavo que proporciona la conexin con otros microprocesadores. Adems, estos recursos se distribuyen eficazmente entre los diversos modelos para que el usuario disponga de un gran abanico de posibilidades para optimizar su eleccin.
2

Todos los dispositivos de esta gama disponen de reset automtico al conectar la alimentacin, reset ante el fallo de la alimentacin, Perro guardin, Cdigo de Proteccin opcional y lneas de E/S digitales de alta corriente.

La principal novedad del PIC16F84 es de disponer de memoria FLASH EEPROM para contener el programa, adems de 64 bytes de este tipo de memoria para datos. Su gran ventaja (que lo hace uno de los dispositivos mas empleados en los laboratorios de diseo) es su fcil reprogramabilidad pues los dispositivos EEPROM son borrables elctricamente y no requieren un proceso de borrado con rayos ultravioleta que retrasa y complica su nuevo uso. Las memorias EEPROM pueden ser regrabables cuantas veces se quiera directamente desde el grabador, de la misma forma que se graban.

ARQUITECTURA INTERNA Y ORGANIZACIN DE LA MEMORIA


Para soportar los nuevos recursos de la gama media Microchip tuvo que ampliar y mejorar la estructura de la CPU y de la memoria, aunque manteniendo la arquitectura Harvard y el concepto RISC. Tambin tuvo que aadir instrucciones y modificar alguna de las existentes. En la siguiente figura se presenta el esquema general al que responde la arquitectura bsica de los procesadores PIC16CXX, similar a los de toda la gama. La memoria de datos esta organizada en dos bancos con 128 posiciones cada uno como mximo (fig. 4-1). La mayora de los registros especficos se ubican en las primeras posiciones de los bancos. En la memoria de datos de la figura los registros de propsito general ocupan los posici ones comprendidas entre la 20h y la 6Fh del banco 0. Todas las posiciones con trama no estn implementadas en este caso concreto. A travs de los registros y transfiriendo la informacin por el bus de datos se controlan los perifricos que comunican con el mundo exterior por las patitas del Puerto A y el Puerto B. Las lneas de E/S de las dos Puertos se corresponden con 13 patitas, siendo comunes las restantes cinco patitas en todos los modelos de 18 patitas, que se destinan a la alimentacin, el oscilador y el reset. El esquema es comn para los dispositivos a los que se va a describir (PIC16C62X, PIC16C71 y PIC16C84), todos ellos con 18 patitas y con diferencias en los perifricos que se conectan con las patitas de los Puertos A y B y en las capacidades de las memorias.
70

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Esquema general de la arquitectura bsica de los PIC de la g ama media.

El PC. Direccionamiento del programa El PC consta de 13 bits con los que se puede direccionar una memoria de cdigo con una capacidad de hasta 8k palabras de 14 bits cada una. La memoria se organiza en pginas de 2k de tamao. El byte de menos peso del PC se corresponde con el contenido del registro PCL ubicado en la posicin 02h del banco 0. Los 5 bits de m s peso del PC se corresponden con los 5 bits de menos peso del registro PCLATH en la posicin 08h del banco 0. Los bits de ms peso del PC solos se pueden escribir a travs del registro PCLATH. En las instrucciones de salto relativo, el resultado de la misma afecta solo a los 8 bits de menos peso del PC. Los 5 bits de mas peso se suministran desde PCLATH<4:0>. Figura 3-2-1

71

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
En las instrucciones GOTO y CALL los 11 bits de menos peso del PC se suministran desde el cdigo OP. Los dos bits de mas peso del PC se cargan con los bits <4:3> del registro PCLATH (Figura 3-2-1). Como la memoria de programa se organiza en pginas de 2k, la posicin la seleccionan los 11 bits de menos peso, mientras que con los 2 bits de ms peso del PC se elige la pgina.

Un reset pone a 0 todos los bits del PCL y PCLATH, obligando a que la direccin de reinicio sea 0000h.

Direccionamiento de los datos La memoria de datos en la gama media se organiza en un mximo de cuatro bancos, cada uno de los cuales puede constar de hasta 128 posiciones de tamao byte. Como los actuales dispositivos de esta gama no sobrepasan los 256 bytes, solo se utilizan los bancos 0 y 1. Para direccionar la memoria de datos que contiene los registros de propsito especfico y los de propsito general, existen dos modos de direccionamiento.

1. Direccionamiento directo Los siete bits de menos peso del cdigo OP de la instruccin proporcionan la direccin de la posicin de un banco. Los bits RP1 y RP0 del Registro de estado <6:5>, seleccionan el banco. Figura 3-2-2.

2. Direccionamiento indirecto En este caso el operando de la instruccin hace referencia al registro INDF, que ocupa la posicin 0 del rea de datos. Se accede a la posicin que apunta el registro FSR, que se halla situado en la posicin 4 del banco 0. Los 7 bits de menos peso de FSR seleccionan la posicin y su bit de ms peso junto con el bit IRP del Registro de estado <7>, seleccionan el banco. Figura 3-2-2.

72

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

LOS REGISTROS DE LA GAMA MEDIA

ORGANIZACIN DE LA MEMORIA DE DATOS

La ampliacin de recursos en los PIC forz en los catalogados como de gama media una nueva estructura y la modificacin de algunas instrucciones (partiendo, claro est, de la gama baja). Una de las diferencias fundamentales es, precisamente, la ampliacin de memoria de registros, a los que se unieron algunos nuevos de sistema, y la accesibilidad a parte de los mismos que antes quedaban ocultos, como OPTION o TRIS, de los que hablaremos a continuacin.

De este modo se opt por dos bancos de registros de 128 posiciones cada uno, la mayora de los cuales son de propsito general. En el siguiente esquema, que muestra esta organizacin, las direcciones con casillas blancas muestran posiciones de registros especficos, y las grises generales.

73

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Direccin 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

BANCO 0 INDF TMR0 PCL STATUS FSR PORT A PORT B

BANCO 1 INDF OPTION PCL STATUS FSR TRIS A TRIS B

Direccin 80 81 82 83 84 85 86 87 88 89

PCLATH INTCON PIR1

PCLATH INTCON PIE1

8A 8B 8C 8D

PCON

8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E

CMCON Registros de Propsito General

VRCON Registros de Propsito General

9F

...

...

7F

FF

74

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

REGISTROS ESPECFICOS

El PC
Direccionamiento del programa: El PC consta de 13 bits, con lo que es posible direccionar hasta 8K palabras, separadas en bancos de 2K. El byte de menos peso de la direccin se guarda en el registro PCL, sito en la posicin 0x02 del banco 0, mientras los 5 bits de ms peso se guardan en los 5 bits de menos peso del registro PCLATH (direccin 0x08). Puesto que las instrucciones CALL y GOTO slo cuentan con 11 bits, sus saltos sern relativos a la pgina en la que estemos. El cambio real de pgina se har cambiando los bits PCLATH.4 y PCLATH.3.

El Registro W
REGISTRO DE TRABAJO o W. Este Registro, como bien su nombre hace suponer (Work) es el anlogo al registro A (Acumulador) de cualquier micro (AX, EAX, etc.). Es a travs de l que se realizan la mayora de las aplicaciones. Por ejemplo es el que contiene el segundo operando en el caso de instrucciones con dos operandos, o tambin sirve para la transferencia de datos entre registros que no son directamente accesibles. Como se ve, no esta mapeado en la memoria RAM. Es un registro totalmente independiente. Si observa la figura de la arquitectura interna se puede ver su estrecha relacin con la ALU. Interviene "casi" en todo. Se puede escribir y leer.

El Registro STATUS
Lo encontramos en la direccin 03 y 83 (o sea, en los dos bancos). Como su nombre lo indica, este registro contiene un cierto nmero de bits de estado de la unidad central (CPU). Es el anlogo al registro de BANDERAS o FLAGS de cualquier micro. Cada bit de este registro tiene un significado particular, que es:

STATUS IRP RP1 RP0 TO PD Z DC C

Se debe tener en cuenta que el bit mayor esta a la izquierda. En este caso IRP es el Bit 7, y C el Bit 0. Hacen un total de ocho bits. En tcnicas digitales siempre se cuenta desde 0, considerando a ste ya como un valor. Es por eso que adoptamos esta misma metodologa, como se hace en todas las reas de programacin, etc. Entonces cuando nos refiramos al Bit 6, nos referiremos a RP1, o el nombre que corresponda segn el registro que se trate. 75

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Bit 0 o Bit C (Carry). Es el bit de acarreo para las operaciones de suma y substraccin. Se pone en 1 si se genera un acarreo desde el bit de mayor peso. Supongamos que utilizamos un registro de propsito general, y

empezamos a sumarle valores. Por ejemplo de a uno (1) sucesivamente. Como cada registro tiene un tamao de 8 bits (255 en decimal, o sea de 0 a 255) cuando hayamos sumado 255, la prxima suma generara un acarreo o desbordamiento. Es decir, el registro X (me refiero al de propsito general que hayamos elegido) antes de desbordarse contendr B '11111111' (255). Luego le sumamos uno (1) y entonces el Bit C se pondr en uno (1), y el registro general volver a cero B'00000000'. Algo as como si diese vueltas. Entonces podemos decir que a este bit lo afectan las instrucciones de suma (ADDWF) y resta (SUBWF) si es que se produce algn desbordamiento o acarreo. Tambin lo afectan las instrucciones de rotacin (RRF y RLF).

Bit 1 o Bit DC (Digit Carry). Es un bit de acarreo de cifra para por ejemplo, la aritmtica BCD (Binario Codificado en Decimal). Sabemos que para representar los nmeros decimales del 0 al 9 necesitamos 4 bits, o sea que el nmero nueve sera B'1001'. Pero que pasara si por ejemplo queremos utilizar la bandera de acarreo para saber cundo nos pasamos de 9 y as representar el 10, 11, etc.? No podramos porque con cuatro bits el desbordamiento o acarreo se producira cuando est en 15. Es por eso que contamos con esta bandera especial de acarreo de BCD, la cual se pone en uno (1) cuando superamos el 9.

Bit 2 o Bit Z (Zero). Este bit se pone en 1 si el resultado de la operacin aritmtica o lgica ejecutada es nulo o cero.

Bit 3 o Bit PD (Power Down ). Este bit se pone en 1 cuando se conecta el circuito a la alimentacin, o durante la ejecucin de una instruccin CLRWDT relativa al temporizador watchdog ( ya lo veremos). Se pone en 0 mediante la instruccin SLEEP. Bit 4 o Bit TO (Time Out). Este bit se pone en 1 durante la conexin de la alimentacin o la ejecucin de una instruccin CLRWDT o SLEEP. Hasta ahora igual que el anterior, pero se pone en 0 si el temporizador watchdog se desborda. Bit 5 y 6 o Bit RP0 y RP1. Estos bits sirven para seleccionar los BANCOS de memoria RAM. El siguiente cuadro muestra como funciona, lo cual es perfectamente lgico ya que sabemos que cada BANCO tiene una longitud de 128 bytes (0x7F).

RP1 00

RP0 01

Banco 01

Direccin 00 a 7F 80 a FF

Bit 7 o Bit IRP. Este bit esta previsto para un futuro direccionamiento de banco indirecto, pero el PIC16F84 no lo utiliza. No se debe emplear como bit de propsito general por cuestiones de compatibilidad con las futuras versiones de circuitos, por lo que se debe poner a 0.

El Registro INTCON
76

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Este registro sirve para el control de las interrupciones y para indicar la precedencia de algunas de ellas gracias a los bi ts de estado.

GIE

PEIE

T0IE

INTCON INTE RBIE

T0IF

INTF

RBIF

Bit 0 o Bit RBIF (RB Interrupt Flag). Si esta en 1, indica un cambio de estado en una de las lneas RB4 a RB7 del puerto B. Bit 1 o Bit INTF (INterrupt Flag). Si esta en 1, este bit indica una interrupcin provocada por la lnea RB0/INT del puerto B. Bit 2 o Bit T0IF (Timer 0 Interrupt Flag). Si esta en 1, este bit indica el desbordamiento del temporizador 0. Bit 3 o Bit RBIE (RB Interrupt Enable). Si esta en 1, este bit autoriza las interrupciones provocadas por un cambio de estado de las lneas RB4 a RB7 del puerto B. Bit 4 o Bit INTE (INTerrupt Enable). Si esta en 1, este bit autoriza las interrupciones provocadas por un cambio de estado de la lnea RB0/INT del puerto B. Bit 5 o Bit T0IE (Timer 0 Interrupt Enable). Si esta en 1, este bit autoriza las interrupciones debidas al desbordamiento del temporizador 0.

Bit 6 o Bit PEIE (PEripheral Interrupt Enable). El bit PEIE habilita a otros registros de interrupciones. Si esta en 1, autoriza todas las interrupciones de origen perifrico no enmascaradas, teniendo en cuenta sus bits individuales de validacin. Si esta en 0, todas las interrupciones perifricas se enmascaran, o sea no ocurre ninguna interrupcin, incluso si sus bits de validacin individuales estn correctamente activados. Algo as como una llave maestra para todas las interrupciones de perifricos.

Bit 7 o Bit GIE (Global Interrupt Enable). Si esta en 0, el PIC no se interrumpe venga de donde venga la interrupcin.
Debemos hacer algunos comentarios sobre la gestin de los bits de este registro. En primer lugar, cada indicador (flag, bandera) de interrupcin individual (RBIF, INTF, etc.) se debe poner a 0 mediante software en el programa de tratamiento de la interrupcin correspondiente. Solo hay disponible un vector de interrupcin situado en la direccin 0004. A dicho programa de interrupcin le corresponde comprobar estos bits para saber cul es el origen de la interrupcin. Cuando llega una interrupcin, el PIC pone automticamente en 0 el bit GIE, de forma que no se perturbe el tratamiento de la interrupcin en curso por otras interrupciones eventuales. Este bit se pone automticamente en 1 al finalizar el programa de interrupcin cuando se ejecuta la instruccin RETFIE (ya lo veremos, a no desesperar). Por ltimo, los bits de indicacin de interrupcin (flags o banderas xxIF) permanecen funcionales incluso cuando las interrupciones correspondientes no se autorizan, como ocurre en la mayora de los microcontroladores.

77

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El Registro INDF
Este es un registro especial, en el sentido que en realidad no tiene existencia fsica, por lo cual no se puede acceder a l. Si se intenta leerlo siempre se encontrar el valor 00, y si se intenta escribirlo, dar lugar a un NOP, es decir, una instruccin "que no hace nada", solo consumir un ciclo de instruccin. El mismo sirve nicamente para especificar la utilizacin del DIRECCIONAMIENTO INDIRECTO.

El Registro PCL y PCLATH


Este es el registro del cual depende el direccionamiento de la memoria de programa. Es decir, es el que se encarga en forma automtica de ir posicionando al micro sobre cada instruccin a ejecutar. Siempre apunta a la siguiente instruccin a ejecutar escrita en la eprom. Su nombre real deriva de PC (Program Counter) el contador de programa. Este automticamente se incrementa en uno (1) para apuntar a la siguiente instruccin. Su anlogo en los micros a cuales es el registro IP. El registro PCL es el registro como PC, solo que como el direccionamiento de la memoria eeprom es mayor a 8 bits, entonces en l se guardan solo los bits de ms bajo orden o de menor PESO. De all la letra L de "Low". Entonces, como el PC debe tener un tamao de 13 bits, sus bits de mayor PESO se extraen del registro PCLATH, situado entre 0A y 8A.

El Registro STACK
Estos registros sirven para memorizar la direccin de retorno despus de la llamada a una subrutina por medio de CALL, y tambin para lo mismo cuando ocurre una interrupcin. La misma cuenta con ocho niveles, lo que quiere decir que no se pueden anidar ms de ocho llamadas. La pila o stack tiene una longitud de 13 bits, lo cual pueden albergar por completo al PC. Recordemos que cuando se haga una llamada (CALL) o se produce una interrupcin, el micro detiene su ejecucin para atender la interrupcin, o saltar hacia una subrutina; debe guardar en algn lado su direccin de retorno, para as, retomar lo que fue interrumpido en su momento. Bien, esto lo hace la pila. El PC se guarda en el Stack hasta que se finalice la subrutina o interrupcin. El valor guardado en la pila se reintegra al PC, y ste sigue su ejecucin normal a partir de all (desde donde haba dejado).

El Registro PCON

Bit 0. Este bit no se utiliza, pero debe estar en 1. No se debe utilizar, con el fin de asegurar la compatibilidad de nuestro programa con las futuras versiones del PIC. Bit 1 o Bit POR (Power On Reset). Este bit se pone en 1 si el reset no se debe a una conexin de la alimentacin. Despus de una conexin a la alimentacin, este bit se pone en 0. Debe ponerse en 1 por software, para que tenga su significado habitual.
78

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Los registros PIE1 y PIR1 estn relacionados con el comparador, as como CMCON y VRCON, no sern explicados ya que el PIC16F84, en el que se centra este estudio, carece de l. El registro FSR es utilizado en la gama baja.

El Registro FSR
Registro de Seleccin de Registro. Este es su nombre. El contenido del FSR se utiliza para el DIRECCIONAMIENTO INDIRECTO, en conjuncin con el registro INDF . El FSR sirve para apuntar una direccin de memoria (RAM), y lo que se haga en esa posicin (Leer o Escribir) se realiza a travs del registro INDF. Supongamos que el FSR contiene 0x20, bien, si ahora escribimos el registro INDF con 0x30, en realidad lo que estaremos haciendo es escribir la posicin 0x20 con 0x30. El FSR (como todos los registros) tiene 8 bits de longitud, lo cual permite direccionar 256 posiciones de memoria. Recordemos que la RAM tiene dos bancos de 128 byte cada uno, lo que da un total de 256 posiciones perfectamente direccionables a travs del FSR. El FSR no necesita especificar a que banco apunta, dado que lo hace directamente, por ejemplo, si contiene 0x81 estar sobre el banco 1 (no el 0). En cambio, como veremos en programacin, cuando queremos acceder DIRECTAMENTE a cualquiera de los registros, debemos especificar antes a que banco pertenece.

Los Puertos, Registros PORTx y TRISx

Si no existiesen los puertos, no tendramos forma de comunicarnos con el mundo exterior, ni de controlar nada. Los puertos de los PIC's son sencillamente pines (terminales) que salen del encapsulado del PIC. Estos pines son los que nos van a permitir interaccionar con cualquier cosa del mundo externo. Ellos pueden estar configurados como ENTRADA y poder leer algo del exterior, y otros pueden estar configurados como SALIDA, y al mismo tiempo enviar alguna seal en respuesta de algo, o no. Los puertos son controlados por dos nicos registros, el PORTx y el TRISx. Los puertos estando como SALIDA o OUT, obviamente entregaran una seal digital, o 0 o 1 (0V o 5V). Estando configurados como ENTRADA o IN, pueden recibir seales digitales (sin superar 5V) y en algunos PIC's seales ANALOGICAS. El registro PORTx es el registro de datos del puerto, mientras el TRISx es el registro de SENTIDO de funcionamiento, bien como entrada o salida. Durante un reset, por evidentes razones de seguridad, todos los puertos se posicionan como entrada. El sentido de funcionamiento de CADA LINEA del puerto esta bajo el control del registro TRISx, donde x es el nombre del puerto en cuestin. Evidentemente, el bit n del registro TRIS corresponde a la lnea n del puerto asociado. Un 0 programa la lnea correspondiente como SALIDA, mientras que un 1 la programa como ENTRADA. O sea, que el registro TRIS configura que tal o cual patita esta como salida y tal otra como entrada. El registro PORTx, teniendo x el mismo significado que en TRISx, sirve para leer el puerto o para escribir el mismo. Si tenemos todas las lneas como salidas, lo que escribamos en el registro PORTx es lo que aparecer a la salida de esas patillas. Si estn como entradas, lo que leamos en el registro PORTx es lo que habr presente en cada una de las lneas del puerto, sea interno o externo. Es decir, si las lneas estn configuradas como entrada, lo que se lea en el registro PORTx es lo que hay realmente en las lneas del puerto, Y TAMBIEN LO QUE HAYA ESCRITO aunque no estn configuradas las lneas como salida. O sea que puedo leer lo que venga del mundo exterior por esas patas y lo que yo haya escrito internamente en esas patas, as sean configuradas como entradas o salidas, aunque en el primer caso (entrada) aunque escriba en el puerto, no se har presente a la salida de las patillas. En otras palabras, cuando se lee uno de los registros de datos (PORTx) se realiza una lectura de los 8 bits, independientemente del hecho de que DETERMINADAS lneas estn o no programadas 79

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
como entrada.

INSTRUCCIONES DEL PIC

Instrucciones de Byte que operan con Registros

Estas instrucciones pueden ser de simple o doble operando de origen. El primer operando de origen ser siempre el registro seleccionado en la instruccin, el segundo, en caso de existir, ser el registro W. El destino, es decir donde se guardara el resultado, ser el registro seleccionado o el W, segn se seleccione con un bit de la instruccin. El formato genrico de estas instrucciones es el siguiente:

6 d

7 f

8 f

9 f

10 f

11 f

Los bits 0 a 4 (5 bits), denominados f permiten seleccionar uno de 32 registros de la memoria interna. El bit 5, denominado d, permite especificar el destino del resultado. Si d = 1 el resultado se guardara en el registro seleccionado. Si d = 0 el resultado se guardara en W. Los bits 6 a 11 identifican la instruccin especfica a realizar.

Las instrucciones siguientes son las tres operaciones lgicas de doble operando:

ANDWF f,d ;operacin AND lgica, destino = W , f IORWF f,d ;operacin OR lgica, destino = W , f XORWF f,d ;operacin XOR lgica, destino = W , f Los nombres mnemnicos de estas instrucciones provienen de: AND W con F, Inclusive OR W con F y XOR W con F. Las que siguen son las cuatro operaciones aritmticas y lgicas sencillas de simple operando: MOVF f,d ;movimiento de datos, destino = f

80

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

COMF f,d ;complemento lgico, destino = NOT f

INCF f,d ;incremento aritmtico, destino = f + 1 DECF f,d ;decremento aritmtico, destino = f - 1

Los mnemnicos de estas instrucciones provienen de: MOVe File, COMplement File, INCrement File y DECrement File. En las siete instrucciones anteriores el nico bit afectado de la palabra de estado del procesador es el Z, que se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. A continuacin siguen las dos instrucciones de rotacin de bits a travs del CARRY:

RLF f,d ;rotacin a la izquierda, destino = f ROT RRF f,d ;rotacin a la derecha, destino = f ROT

En estas operaciones (Rotate Left File y Rotate Right File) los bits son desplazados de cada posicin a la siguiente, en sentido derecho o izquierdo. El desplazamiento es cerrado, formando un anillo, con el bit C (CARRY) de la palabra de estado.

En estas dos instrucciones, el nico bit afectado de la palabra de estado del procesador es el bit C, que tomar el valor que tenia el bit 7 o el bit 0, segn sea el sentido del desplazamiento. Estas instrucciones son muy tiles para la manipulacin de bits, y adems para realizar operaciones aritmticas, ya que en numeracin binaria, desplazar un nmero a la izquierda es equivalente a multiplicarlo por 2, y hacia la derecha, a dividirlo por 2. La instruccin siguiente realiza el intercambio de posiciones entre los cuatro bits menos significativos y los cuatro ms significativos (nibble bajo y nibble alto).

SWAPF f,d ;intercambia nibbles, destino = SWAP f


Esta instruccin (SWAP File) no afecta ninguno de los bits de la palabra de estado del procesador. Esta instruccin es muy til para el manipuleo de nmeros BCD empaquetados, en los que en un solo byte se guardan dos dgitos BCD (uno en cada nibble). Las dos operaciones que siguen son la suma y la resta aritmticas:

ADDWF f,d ;suma aritmtica, destino = f + W


81

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

SUBWF f,d ;resta aritmtica, destino = f - W

Estas operaciones (ADD W a F y SUBstract W de F) afectan a los tres bits de estado C, DC y Z. El bit Z se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. La suma se realiza en aritmtica binaria pura sin signo. Si hay un acarreo del bit 7, es decir que el resultado es mayor que 255, el bit C (carry) resulta 1, en caso contrario resulta 0. Si hay un acarreo del bit 3, es decir que la suma de las dos mitades (nibbles) menos significativas (bits 0 a 3) resulta mayor que 15, se pone en 1 el bit DC (digit carry), en caso contrario se pone en 0. Ejemplos: 1010 0010 1101 0000 + 0100 1111 C DC Z + 0110 1111 C DC Z 1111 0001 0 1 0 0011 1111 1 0 0 La resta se realiza sumando, en binario puro sin signo, el registro f ms el complemento a dos de W (el complemento a 1, o complemento lgico, ms 1) Ejemplos: Los bits de estado C y DC toman el valor normal correspondiente a la suma de f con el complemento a 2 de W. De esta manera el significado para la operacin de resta resulta invertido, es decir que C (carry) es 1 si no hubo desborde en la resta, o dicho de otra manera, si el contenido de W es menor que el de f. El bit DC se comporta de manera similar, es decir que DC es 1 si no hubo desborde en la mitad menos significativa, lo que equivale a decir que el nibble bajo del contenido de W es menor que el del registro f.

f W

0100 0100 -0010 1000 C 0001 1100 1

DC Z 0 0

0010 1000 -0100 0100 1110 0100

C DC Z 0 1 0

Equivalente a: f 0100 0100 + 1101 1000 C DC cmp.2 W 0001 1100 1 0

Z 0

0010 1000 + 1011 1100 C DC 1110 0100 0 1

Z 0

Las instrucciones que siguen son de simple operando, pero son casos especiales ya que el destino es siempre el registro seleccionado:

CLRF f ; borrado de contenido, f = 0 MOVWF f ; copia contenido W en f, f = W


La instruccin CLRF (CLeaR File) afecta solo al bit Z que resulta siempre 0. La instruccin MOVWF (MOVe W a F) no afecta ningn bit de la palabra de estado.

82

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Instrucciones de Byte que operan sobre W y Literales


Estas instrucciones se refieren todas al registro W, es decir que uno de los operandos de origen y el operando de destino son siempre el registro W. En las instrucciones de este grupo que tienen un segundo operando de origen, este es siempre una constante de programa literalmente incluida en la instruccin, llamada constante literal o simplemente literal. El formato genrico de estas instrucciones es el siguiente:

4 k

5 k

6 k

7 k

8 k

9 k

10 k

11 k

Los bits 0 a 7 especifican la constante literal de 8 bits que se utilizara en la operacin. Las tres instrucciones que siguen son las operaciones lgicas tradicionales, similares a las que ya vimos anteriormente, pero realizadas entre una constante de programa y el registro W:

IORLW k ; operacin OR lgica, W = W , k ANDLW k ; operacin AND lgica, W = W , k XORLW k ; operacin XOR lgica, W = W , k
En estas tres instrucciones (Inclusive OR Literal W, AND Literal W y XOR Literal W) el nico bit afectado de la palabra de estado del procesador es el Z, que se pone en 1 si el resultado de la operacin es 00000000, y se pone en 0 si el resultado tiene cualquier otro valor. La instruccin que sigue sirve para cargar una constante de programa en el registro W:

MOVLW k ; carga constante en W, W = K


Esta (MOVe Literal W) instruccin no afecta ninguno de los bits de estado del procesador. La instruccin que sigue (CLeaR W) no correspondera incluirla en este grupo, y pertenece en realidad al primero (el grupo de las instrucciones que operan sobre registros) ya que se trata de un caso especial de la instruccin CLRF, con destino W, y f = 0. Se incluyen aqu porque como se le ha asignado un mnemnico particular referido especficamente al registro W, desde el punto de vista del programador, es ms til verla dentro del grupo de instrucciones referidas a W.

CLRW ; borra el contenido de W, W = 0

83

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Al igual que en la instruccin CLRF, el nico bit de estado afectado es el Z que resulta 1.

Instrucciones de Bit
El formato genrico de estas instrucciones es el siguiente:

4 b

5 b

6 b

7 f

8 f

9 f

10 f

11 f

Los bits 0 a 4 (5 bits), denominados f, permiten seleccionar uno de 32 registros de la memoria interna. Los bits 5 a 7, denominados b, permiten especificar el numero de bit (0 a 7) sobre el que se operara. Estas instrucciones operan solamente sobre el bit especificado, el resto de los bits del registro no son alterados. Estas instrucciones no tienen especificacin de destino, ya que el mismo es siempre el registro seleccionado.

BCF f,b ;borra el bit b de f ;bit f(b) = 0 BSF f,b ;coloca en uno el bit b de f ;bit f(b) = 1
Estas instrucciones (Bit Clear File y Bit Set File) no afectan ningn bit de la palabra de estado del procesador.

Instrucciones de Control

GOTO k ; salto a la posicin k (9 bits) del programa


Esta es la tpica instruccin de salto incondicional a cualquier posicin de la memoria de programa (que en la mayora de los microprocesadores convencionales se llama JUMP) . La constante literal k es la direccin de destino del salto, es decir la nueva direccin de memoria de programa a partir de la cual comenzarn a leerse las instrucciones despus de ejecutar la instruccin GOTO. Esta instruccin simplemente carga la constante k en el registro PC (contador de programa). La nica complicacin de esta instruccin es que la constante k es de solo 9 bits, mientras que el registro PC es de 11 bits. Los dos bits faltantes, bit 9 y 10 del PC, son tomados respectivamente de los bits de seleccin de pgina PA0 y PA1 de la palabra de estado. La que sigue es la instruccin de llamado a subrutina:

CALL k ; salto a la subrutina en la posicin k (8 bits)


Su comportamiento es muy similar al de la instruccin GOTO, salvo que adems de saltar guarda en el stack la direccin de retorno de la subrutina (para la instruccin RETLW). Esto lo hace simplemente guardando en el 84

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

stack una copia del PC incrementado, antes de que el mismo sea cargado con la nueva direccin k. La nica diferencia con la instruccin GOTO respecto de la forma en la que se realiza el salto, es que en la instruccin CALL la constante k tiene solo 8 bits en vez de 9. En este caso tambin se utilizan PA0 y PA1 para cargar los bits 9 y 10 del PC, pero adems el bit 8 del PC es cargado siempre con 0. Esto hace que los saltos a subrutina solo puedan realizarse a posiciones que estn en las primeras mitades de las pginas mencionadas. La instruccin que se indica a continuacin es la de retorno de subrutina:

RETLW k ; retorno de subrutina con constante k, W = k

Esta (RETurn con Literal in W) instruccin produce el retorno de subrutina con una constante literal k en el registro W. La operacin que realiza consiste simplemente en sacar del stack un valor y cargarlo en el PC. Ese valor es el PC incrementado antes de realizar el salto, de la ltima instruccin CALL ejecutada, por lo tanto es la direccin de la instruccin siguiente a dicho CALL. Dado que el stack es de 11 bits, el valor cargado en el PC es una direccin completa, y por lo tanto se puede retornar a cualquier posicin de la memoria de programa, sin importar como estn los bits de seleccin de pgina. Esta instruccin adems carga siempre una constante literal en el registro W. Por otro lado, y con una metodologa especial de programacin, un conjunto de sucesivas instrucciones RETLW puede ser usado como una tabla de valores constantes incluida en el programa (Ej.: tablas BCD/7 seg., hexa/ASCII, etc.).

A continuacin se presentan las dos nicas instrucciones de salto (skip) condicional. Estas instrucciones son los nicos medios para implementar bifurcaciones condicionales en un programa. Son muy generales y muy poderosas ya que permiten al programa tomar decisiones en funcin de cualquier bit de cualquier posicin de la memoria interna de datos, y eso incluye a los registros de perifricos, los puertos de entrada/salida e incluso la palabra de estado del procesador. Estas dos instrucciones reemplazan y superan a todo el conjunto de instrucciones de salto condicional que poseen los microprocesadores sencillos convencionales (salto por cero, por no cero, por carry, etc.).

BTFSC f,b ; salto si bit = 0, bit = f(0) BTFSS f,b ; salto si bit = 1, bit = f(1)

salta salta

BTFSC (Bit Test File and Skip if Clear) salta la prxima instruccin si el bit b del registro f es cero. La instruccin BTFSS (Bit Test File and Skip if Set) salta si el bit es 1. Estas instrucciones pueden usarse para realizar o no una accin segn sea el estado de un bit, o, en combinacin con GOTO, para realizar una bifurcacin condicional.

85

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Ejemplo 1 :

----------------------------------btfsc flags,run incf tiempo ----------------------------------Ejemplo 2: ----------------------------------movf tiempo,w xorlw 60 btfss STATUS,Z goto acc_2 ------------------------------------goto acc_fin acc_2 ------------------------------------acc_fin

;s ha arrancado el reloj ;incremento contador de tiempo

;testeo por tiempo = 60 ;salto si tiempo <> 60 ;accin 1

;accin 2 ;ac se unen los caminos

Las instrucciones que siguen son casos especiales de las de incremento y decremento vistas anteriormente. Estas instrucciones podran categorizarse dentro del grupo de instrucciones orientadas a byte sobre registros (primer grupo), ya que efectivamente operan sobre los mismos, y el formato del cdigo de la instruccin responde al de ese grupo, pero, a diferencia de las otras, pueden adems alterar el flujo lineal del programa y por eso se las incluy en este grupo.

DECFSZ f,d ;decrementa y salta s 0, destino= f - 1, = 0 INCFSZ f,d ;incrementa y salta s 0, destino= f + 1, = 0

salta salta

Estas dos instrucciones (DECrement File and Skip if Zero, e INCrement File and Skip if Zero) se comportan de manera similar a DECF e INCF, salvo que no afectan a ningn bit de la palabra de estado. Una vez realizado el incremento o decremento, si el resultado es 00000000, el microprocesador saltar la prxima instruccin del programa. Estas instrucciones se utilizan generalmente en combinacin con una instruccin de salto (GOTO), para el diseo de ciclos o lazos (loops) de instrucciones que deben repetirse una cantidad determinada de veces.

86

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

ejemplo: clrf 10 ; pongo cero en la posicin 10 de la memoria interna loop ;lo que sigue se ejecutar 256 veces ..................................... ..................................... ..................................... Incfsz 10,1 ; incremento la posicin 10 hasta que llegue a 0 goto loop ; si no llego a cero voy a repetir la secuencia ; cuando llegue a cero salto el goto ........................ ; y sigue la continuacin ..................................... .....................................

del

programa

Instrucciones Especiales
En este grupo se reunieron las instrucciones que controlan funciones especficas del microprocesador o que actan sobre registros especiales no direccionados como memoria interna normal. La instruccin que sigue es la tpica NO OPERATION, existente en casi todos los microprocesadores.

NOP ; no hace nada, consume tiempo


Esta instruccin solo sirve para introducir una demora en el programa, equivalente al tiempo de ejecucin de una instruccin. No afecta ningn bit de la palabra de estado. La siguiente es una instruccin especfica de control de los puertos de entrada/salida.

TRIS f ; carga el tristate control, TRISf = W


Esta instruccin (TRIState) carga el registro de control de los buffers tristate de un puerto de entrada salida (data direccin register), con el valor contenido en W. El parmetro f debe ser la direccin de memoria interna del puerto, aunque el valor W no ser cargado en el puerto sino en el registro de tristate del mismo Esta instruccin no afecta ningn bit de la palabra de estado. La siguiente instruccin sirve para programar el registro OPTION que controla el RTCC y prescaler

OPTION ; carga el registro OPTION, OPTION = W


El registro OPTION no es accesible como memoria interna y solo se lo puede programar con esta instruccin. Esta instruccin no afecta ningn bit de la palabra de estado.

87

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La instruccin que sigue borra el contador del watch dog timer. Este registro tampoco esta accesible como memoria, y esta es la nica instruccin que lo modifica.

CLRWDT ; borra el watch dog timer, WDT = 0


Esta instruccin, adems, coloca en uno los bits PD (power down) y TO (time -out) de la palabra de estado. La siguiente es una instruccin especial de control del microcontrolador que lo pone en el modo power down. En este modo el microprocesador se detiene, el oscilador se apaga, los registros y puertos conservan su estado, y el consumo se reduce al mnimo. La nica forma de salir de este estado es por medio de un reset o por time-out del watch dog timer.

SLEEP ; coloca el C en modo sleep, WDT = 0


Esta instruccin, adems, borra el bit PD (power down) y setea el bit TO (time -out) de la palabra de estado.

5-6 Resumen de instrucciones (clasificacin segn el fabricante en tres grupos):

88

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En esta tabla de resumen del conjunto de instrucciones se pueden observar los mnemnicos, la explicacin, el nmero de ciclos, el cdigo de mquina y los bits afectados del registro STATUS para cada una de las instrucciones.

Modos de direccionamiento

Direccionamiento de la memoria de datos (RAM)


La memoria interna se direcciona en forma directa por medio de los 5 bits f contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posicin desde la 00 a la 1F, las direcciones 10 a 1F corresponden a los bancos de registros, por lo tanto, en los microcontroladores que tengan ms de un banco, antes de acceder a alguna variable que se encuentre en esta zona, el programador deber asegurarse de haber programado los bits de seleccin de banco en el registro FSR. Los registros especiales y de uso general de la posicin 00 a la 0f estn presentes en todos los PIC16C5X, al igual que el banco 0 de registros. Los bancos 1, 2 y 3 de registros estn presentes solo en el 16C57. El registro FSR, adems de servir para seleccionar el banco activo, sirve como puntero para direccionamiento indirecto. La posicin 00 del mapa de RAM es la llamada direccin indirecta. S en cualquier instruccin se opera con la direccin 00, en realidad se estar operando con la direccin a donde apunte el contenido del FSR. Por ejemplo si el FSR contiene el valor 14, una instruccin que opere sobre la direccin 0, operara en realidad sobre la direccin 14. Se puede decir en este ejemplo que la posicin 14 de memoria fue direccionada en forma indirecta a travs del puntero FSR.

Ejemplo:
; Esta porcin de programa borra 5 posiciones de memoria a partir de la direccin 12 FSR equ 04 ;(definicin al comienzo del programa ..................................... 89

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
..................................... movlw 5 ;prepara para repetir 5 veces movwf 08 ;(el registro 08 es el contador del loop) movlw 12h ;apunta a la direccin 12h movwf FSR ; loop: clrf 0 ;borra una posicin de memoria incf FSR ;apunta a la siguiente decfsz 08 ;si todava no borra todas goto loop ;sigue borrando ..................................... .....................................

El direccionamiento indirecto es muy til para el procesamiento de posiciones consecutivas de memoria, como en el ejemplo, o para el direccionamiento de datos en subrutinas.

Direccionamiento de la memoria de programa (EPROM, OTP)


La instruccin GOTO dispone solo de 9 bits en el cdigo de operacin para especificar la direccin de destino del salto. Al ejecutar una instruccin GOTO el microprocesador toma los dos bits que restan para completar la direccin de 11 bits, de los bits 5 y 6 de la palabra de estado. Estos ltimos son llamados bits de seleccin de pgina (PA0 y PA1). El programador deber asegurarse de que estos dos bits tengan el valor correcto antes de toda instruccin GOTO.

Direccionamiento directo con instruccin GOTO

Deber tenerse en cuenta adems que es posible avanzar de una pgina a otra en forma automtica cuando el PC se incrementa. Esto ocurre si el programa empieza en una pgina y sigue en la siguiente. Sin embargo, al incrementarse el PC desde la ltima posicin de una pgina a la primera de la siguiente, los bits PA0 y PA1 no se modifican, y por lo tanto s se ejecuta una instruccin GOTO, CALL o alguna que acte sobre el PC, esta producir un salto a la pgina anterior, a menos que el programador tenga la precaucin de actualizar el valor de dichos bits. Por este motivo es conveniente dividir el programa en mdulos o rutinas que estn confinados a una pgina. En el caso de la instruccin CALL, el direccionamiento se complica un poco ms, ya que la misma solo dispone de 8 bits para especificar la direccin de destino salto. En este caso tambin se utilizan los mismos bits de seleccin de pgina para completar los bits dcimo y decimoprimero de la dir eccin, pero falta el noveno bit. En estas instrucciones este bit se carga siempre con 0, lo que implica que solo se pueden realizar saltos a subrutina a las mitades inferiores de cada pgina. En este caso tambin el programador deber asegurarse que el estado de los bits PA0 y PA1 sea el correcto al momento de ejecutar se la instruccin.

90

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Direccionamiento directo con instruccin CALL

Las instrucciones que operan sobre el PC como registro y alteran su contenido provocando un salto, responden a un mecanismo muy similar al de las instrucciones CALL para la formacin de la direccin de destino. En este caso los bits 0 a 7 son el resultado de la instruccin, el bit 8 es 0 y los bits restantes se toman de PA0 y PA1. Este mecanismo se llama paginado, y a pesar de que representa una complicacin bastante molesta para el programador, resulta muy til ya que permite ampliar la capacidad de direccionamiento de memoria de programa para las instrucciones de salto

TEMPORIZADORES, PUERTOS DE E/S, RESET Y ESTADO DE REPOSO


CONTROL DE TIEMPOS
Una exigencia en las aplicaciones de control es la regulacin estricta de los tiempos que duran las diversas acciones que realiza el sistema. El dispositivo tpico destinado a gobernar los tiempos recibe el nombre de temporizador o "timer" y, bsicamente, consiste en un contador ascendente o descendente que determina un tiempo determinado entre el valor que se le carga y el momento en que se produce su desbordamiento o paso por 0.

Carga del Contaje

Impulsos de Reloj

Contador Descendente TEMPORIZADOR

Fin del Contaje

Esquema simplificado de un temporizador. En este caso se trata de un contador descendente, que, una vez cargado con un valor, se decrementa al ritmo de los impulsos de reloj hasta que llega a 0. En la gama baja los microcontroladores PIC slo disponen de dos temporizadores. Uno de ellos acta como Principal y sobre l recae el control de tiempos de las operaciones del sistema. El otro recibe el nombre de Perro guardin o "Watchdog".

91

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El Perro guardin vigila que el programa no se "cuelgue" y dejen de ejecutarse las instrucciones secuenciales del mismo tal como lo ha previsto el diseador. Para realizar esta labor de vigilancia, el Perro guardin da un paseo por la CPU cada cierto tiempo y comprueba si el programa se ejecuta normalmente; en caso contrario, por ejemplo si el control est detenido en un bucle infinito o a la espera de algn acontecimiento que no se produce, el perro ladra y provoca un reset, reinicializando todo el sistema. Tanto el Temporizador principal, TMR0, como el Perro guardin, WDT, a veces precisan controlar tiempos largos y aumentar la duracin de los impulsos de reloj que les incrementan o decrementan. Para cubrir esta necesidad, se dispone de un circuito programable llamado Divisor de frecuencia que divide la frecuencia utilizada por diversos rangos para poder realizar temporizaciones ms largas. Para regular el comportamiento del Temporizador principal., el Perro guardin y el Divisor de frecuencia se emplean algunos bits de la Palabra de configuracin y del Registro de opciones (OPTION). El Divisor de frecuencia puede aplicarse a uno de los dos temporizadores, al TMR0 o al WDT. Con el Temporizador principal acta en primer lugar, o sea los impulsos pasan primero por el Divisor de frecuencia y, una vez aumentada la duracin de los ltimos, se aplican a TMR0. Acta como Divisor previo o "Prescaler". Con el Perro guardin, el Divisor de frecuencia acta despus ("Post-scaler"). El Divisor de frecuencia puede actuar al ritmo de una seal externa aplicada sobre la pat ita T0CKI, o bien, con la seal de reloj interna del microcontrolador CLKOUT, procedente del oscilador propio. Mediante algunos bits del Registro de opciones y la Palabra de configuracin se controla el trabajo del Divisor de frecuencia sobre el TMR0 o el WDT.

EL TEMPORIZADOR PRINCIPAL, TMR0

Se trata de un contador ascendente de 8 bits que puede actuar de dos formas.

1 Contador
Se le introducen los impulsos desde el exterior por la patita T0CKI. Su misin acontecimientos externos. es "contar" el nmero de

2 Temporizador
Trabaja y cuenta los impulsos de reloj del oscilador interno (CLKOUT), Se usa para determinar un tiempo fijo. Estos impulsos tienen una duracin conocida que es la de un ciclo de instruccin cuya frecuencia es la cuarta parte del oscilador principal (Fosc/4). El TMR0 se comporta como un registro de propsito especial ubicado en la posicin 1 del rea de datos. Puede ser ledo y escrito al estar conectado directamente al bus de datos. Como se trata de un contador ascendente, conviene cargarle con el valor de los impulsos que se desean contar pero en forma de complemento a 2, As, si

92

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

se quieren contar cuatro impulsos de reloj se carga al TMR0 con el complemento a 2 de 4, lo que significa cargarlo con 4. De esta manera, con la llegada de cuatro impulsos se alcanza el valor 0, que determina el tiempo a controlar. Para trabajar con TMR0 se pueden utilizar las siguientes frmulas en el caso que los impulsos de reloj provengan del oscilador interno con un periodo de Tosc. temporizacin = 4 Tosc (Valor cargado en TMR0) (Rango del Divisor) Valor a cargar en TMR0 = (temporizacin / 4 Tosc) (Rango del Divisor) Para conocer el estado en que va la cuenta del TMR0 se le puede leer en cualquier momento. Cuando se escribe un nuevo valor sobre TM. R0 para iniciar una nueva temporizacin, el incremento del mismo se retrasa durante los dos ciclos de reloj posteriores. En la figura 7-2 se ofrece el esquema de funcionamiento del Temporizador principal. Obsrvese que existe un bloque que retrasa dos ciclos y cuya misin consiste en sincronizar el momento del incremento producido por la seal T0CKI con el que producen los impulsos del reloj interno. Cuando no se usa el Divisor de frecuencia, la entrada de la seal de reloj externa es la misma que la salida de dicho Divisor.

Fosc/4 T0CKI F externa

0 MPX1 1 1

Divisor de Frecuencia

MPX2 0 1/256

Sincronismo con el reloj interno retraso 2 ciclos


8

TMR0

1/2

1/4

3 Seleccion de Rango

Bus de Datos

--

--

TOCS TOSE PSA PS2 PS1 PS0 Registro de Opciones

Esquema de funcionamiento del temporizador Principal TMR0.

El registro de opciones (OPTION)


La misin principal de este registro es gobernar el comportamiento del Temporizador principal. Su bit T0CS (Timer 0 External Clock Edge Select) elige en el multiplexor MPX1 la procedencia de los impulsos de reloj, que pueden ser los del oscilador externo (Fosc/4) o los que se aplican desde el exterior por la pata T0CKI. El bit. T0SE (timer 0 Clock Source Select) selecciona el tipo de flanco que es activo para la frecuencia externa. Si TOSE = 1, el flanco activo es el descendente y si T0SE = 0, es el ascendente.

Como se deduce de la figura 7-2-1, el bit PSA del Registro de opciones tiene la funcin de asignar el Divisor de frecuencia al TMR0 o al WDT. Si PSA = 0 la salida del visor se aplica al TMR0, pero si PSA = i el Divisor se destina al Perro guardin. 93

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Finalmente, los 3 bits de menos peso del Registro de opciones (PSA2, PSA1 y A0) seleccionan el rango por el que el Divisor de frecuencia va a dividir los impulsos que se le apliquen. En la figura 7-2-1 se ofrece la distribucin y asignacin de los bits I Registro de opciones.

EL PERRO GUARDIN (WDT)


Tambin se trata de un contador de 8 bits que acta como temporizador y tiene el objetivo de generar un reset a todo el sistema cuando se desborda su valor. Su control de tiempos es independiente del oscilador principal y se basa en una red RC. La temporizacin nominal con la que se halla programado el Perro guardin es de 18 ms, pero puede aumentarse utilizando el Divisor de frecuencia, con el cual, trabajando en el rango mayor, puede alcanzar hasta 2,3 segundos. Para evitar que se desborde el WDT y genere un reset, hay que recargar o refrescar su cuenta antes de que llegue el desbordamiento. Este refresco, que en realidad consiste en ponerle a 0 para iniciar la temporizacin, se consigue por software con las instrucciones CLRWDT y SLEEP. El diseador debe analizar el programa de trabajo y situar alguna de estas dos instrucciones en sitios estratgicos por los que pasa el flujo de control antes que transcurra el tiempo que controla el Perro guardin. De esta manera, si el programa se cuelga (bucle infinito, espera de acontecimiento que no se produce, etc.), no se refresca a tiempo al Perro guardin y se produce una reinicializacin.

94

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La instruccin CLRWDT borra simplemente el valor de WDT, reiniciando la cuenta. Sin embargo, la instruccin SLEEP, adems de borrar el WDT, detiene a todo el sistema entrando en un modo de trabajo en el que el consumo es mnimo (modo de Reposo o de bajo consumo). Si no se desact iva al Perro guardin cuando se entra en el modo de Reposo, al acabar su conteo provocar un reset y se saldr de dicho modo. Otra forma de salir del modo de Reposo es activando la patita MCLR. Para desactivar al Perro guardin, hay que poner un 0 en el bit 2 (WDTE) de la Palabra de configuracin (Configuration Word). Se refleja la posibilidad de que el Divisor de frecuencia opere con el TMR0 o con el WDT, segn el valor que tenga el bit PSA. Los impulsos de conteo pasan por el Divisor antes de aplicarse al TMR0 (Predivisor). Por el contrario, los impulsos pasan primero por el WDT y luego por el Divisor (Post-divisor).

EL MODO DE REPOSO O SLEEP


Este modo especial de funcionamiento ocasiona un consumo muy bajo y se entra en l con la ejecucin de la instruccin SLEEP. Con esta instruccin ocurren las siguientes acciones: a) Si el perro guardin est activado, se refrescar su valor (se borra) pero sigue funcionando normalmente. b) El oscilador principal del sistema deja de funcionar. c) Los puertos de E/S mantienen el mismo estado que tenan antes de ejecutar SLEEP. d) Los bits TO y PD del registro de estado toman los valores 1 y 0, respectivamente. Para bajar al mximo el consumo se recomienda conectar la patita T0CKI a VDD o a tierra y la patita MCLR/Vpp a nivel lgico alto. Para salir del estado de Reposo hay dos posibilidades:

1. Se activa la patita MCLR y se genera un reset. 2. El Perro guardin que estaba activo cuando se ejecuto SLEEP se desborda y genera un reset.

Para conocer la causa por la que se ha salido del Estado de Reposo se analizan los bits TO y PD.

ARQUITECTURA DEL PIC16F84

El microcontrolador PIC16F84 dispone de una estructura organizada interiormente conformado por bloques interconectados en donde se incluye la memoria RAM, los puertos de entrada y salida, la memoria EEPROM, etc. En la siguiente imagen se muestra la arquitectura interna del PIC16F84.

95

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

CONOCIENDO AL MICROCONTROLADOR PIC16F84.


El microcontrolador PIC16F84 es un circuito integrado fabricado por la empresa Microchip Tecnologies y es actualmente uno de los ms utilizados a nivel mundial, la razn de esto es por que son sencillos, rpidos, modernos y principalmente baratos, se podrn escribir los programas y borrarlos muchsimas veces, poseen gran documentacin a nivel mundial en la Red de Internet y esta accesible para la mayora de los usuarios. Existen microcontroladores que una vez programados con el programa de control , estos tienen que ser borrados con luz ultra violeta en el caso de requerir borrar el programa. Para el caso del PIC16F84, este podr ser programado Elctricamente con una circuitera que proporciona la empresa Microchip Tecnologies. Este programador es sumamente sencillo y debe ser conectado al puerto paralelo de la computador a.

CARACTERSTICAS BSICAS DEL PIC16F84.


El Microcontrolador PIC16F84 es un circuito integrado de 18 pines fabricado con tecnologa CMOS, existen en diferentes versiones de encapsulado como por ejemplo el DIP (Versin convencional) y el SOIC (Montaje
96

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
superficial). La frecuencia de trabajo esta entre 4 Mhz y 20 Mhz. Las versiones que se estipulan en una

frecuencia de trabajo de 4 Mhz podrn trabajar sin ningn problema hasta los 10 Mhz. Observemos la siguiente imagen que muestra como estn organizados los pines del microcontrolador PIC16F84:

IDENTIFICACIN DE LOS PINES UTILIZADOS PARA LOS PUERTOS DE ENTRADA Y SALIDAS.


En la imagen anterior se podr observar claramente que el microcontrolador tiene dos puertos denominados "A" y "B". El puerto "A" tiene 5 lneas disponibles (RA0, RA1, RA2, RA3, RA4) y el puerto "B" tiene 8 lneas disponibles (RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7). Ambos Puertos suman un total de 13 lneas que podrn ser programadas independientemente como entradas o como salidas. Estas son las lneas que estarn destinadas para comunicar el microcontrolador con el mundo exterior, como por ejemplo: Un motor Paso a Paso, Diodos Luminosos "Leds", Mdulos LCD, Teclados Matriciales, etc. Tambin observe que el Pin No. 3 perteneciente al puerto "A" = RA4 tambin tiene otra nomenclatura denominada "TOCKI" lo cual quiere decir que esta lnea podr ser programada como entrada, salida y temporizador/contador.

IDENTIFICACIN DE LOS PINES DE ALIMENTACIN DEL MICROCONTROLADOR

El microcontrolador trabaja con una tensin de 5 Vlts. DC y los pines para ello son el Pin No. 14 (+) y el Pin No. 5 (-).

EL RELOJ Y EL CICLO DE INSTRUCCIN


En la gama baja, la frecuencia mxima de la seal de reloj interna es de 20 MHz lo que determina un periodo de 50 ns. El ciclo de instruccin en el que se ejecutan la mayora de las instrucciones se compone de cuatro ciclos de reloj, que a 20 MHz suponen una duracin de 200 ns.

97

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
En realidad, cada instruccin conlleva dos ciclos de instruccin, el primero destinado a la "fase de bsqueda y el otro, a la "fase de ejecucin. Sin embargo, la estructura segmentada del procesador permite realizar simultneamente la fase de ejecucin de una instruccin y la de bsqueda de la siguiente. Cuando la instruccin

ejecutada corresponde a un salto, no se conoce cul ser la siguiente hasta completarla por lo cual en esta situacin se sustituye la fase de bsqueda por una instruccin NOP (No Operacin) mientras se ejecuta un salto. Esta caracterstica se muestra grficamente en la figura y en ella se puede apreciar cmo las instrucciones de salto precisan un ciclo ms.

La segmentacin permite completar las instrucciones en un solo ciclo excepto las de salto que necesitan dos. Para el funcionamiento del circuito de reloj interno se precisa colocar en el exterior una fuente de seal con una frecuencia fija disponiendo los microcontroladores PIC16C5X de dos patitas para soportar dicha seal.

OSC1/CLKIN: Es la patita a la que se conecta la seal de entrada de la fuente externa de frecuencia, que puede estar implementada por un cristal de cuarzo, por un resonador cermico o una red RC. OSC2/CLKOUT: Se trata de la patita de conexin de la salida del cristal externo. En el modo oscilador RC por esta patita sale la cuarta parte de la frecuencia de oscilacin, delimitando los ciclos de instruccin. Para esta alternativa Microchip recomienda usar una Rext. con un valor comprendido entre 5 k y 100 k y un Cext con ms de 20 pF.
Los PIC pueden funcionar con cuatro tipos de osciladores. En las versiones EPROM, con ventana, y en las OTP, QTP y ROM sin ella, hay que distinguir el chip especfico para el oscilador, que viene marcado en el encapsulado, Esto significa que los PIC se comercializan con cuatro referencias distintas, que corresponden con los tipos de reloj. Se debe grabar el utilizado escribiendo el cdigo adecuado en los dos bits FOSCI y FOSC0 de la. "Palabra de Configuracin" que se comenta ms adelante. Dichos cdigos son los siguientes.

11: RC. Oscilador RC de bajo costo. Este oscilador proporciona una estabilidad de frecuencia mediana. 10: HS. Oscilador de alta velocidad (8-20 MHz). 01: XT. Oscilador estndar (100 KHz-4 MHz). Cuarzo estndar o resonador cermico. 00: LP. Oscilador de bajo consumo (32-200 kHz). Cristal de cuarzo o resonador para aplicaciones de muy bajo consumo.

98

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Esquema de conexionado de un oscilador de bajo costo compuesto por una resistencia y un capacitor .

Segn el tipo de oscilador usado y la frecuencia de trabajo, se emplean diferentes valores en los condensadores C1 y C2 que acompaan al cristal de cuarzo. La resistencia RS solo es necesaria en algunas versiones HS. La frecuencia de la seal de entrada aplicada a la patita OSC1/CLKIN se divide internamente conformando cuatro estados que delimitan cada ciclo de instruccin y que se denominan Q1-Q4. Durante Q1, el valor del PC (Program Counter) se incrementa. En el transcurso de Q4 se efecta la bsqueda de la instruccin en la memoria y su cdigo se carga en el Registro de Instrucciones. En el siguiente ciclo de instruccin se llevan a cabo la 99

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
decodificacin y ejecucin de la instruccin.

Diagrama temporal

INICIALIZACIN "RESET" DEL MICROCONTROLADOR

El microcontrolador cuando se le suministra el voltaje de alimentacin ejecuta automticamente un RESET y todos los registros son colocados es sus estados lgicos originales; sin embargo los microcontroladores dispones de un Pin destinado especficamente para ejecutar un RESET en el caso de una falla o cuando sea necesario aplicarle un RESET. Cuando se ejecuta un RESET, se aplican dos acciones importantes: 1. El contador de programa se vuelve a colocar en el principio del programa desde la direccin 0 (Principio del Programa). 2. Los registros modificados vuelven a su estado normal. En la siguiente imagen se puede observar como est conectado el pequeo circuito requerido para el RESET. Cuando el pulsador "S" es accionado, se aplica un nivel lgico bajo en el Pin No. 4 del microcontrolador y automticamente se ejecutan los dos eventos mencionados anteriormente.

100

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El microcontrolador PIC16F84 tambin dispone de otras formas de "RESET", entre ellas tenemos el Reset denominado "POWER ON RESET", el cual debe ser activado mediante un bit de configuracin en el momento en el que se programe el PIC. Por otro lado, en el siguiente circuito, si el voltaje suministrado al microcontrolador se ubica entre 1.2 Voltios y 1.7 Voltios automticamente se ejecuta un Reset. Este rango de voltaje asegura que el microcontrolador se reinicialice antes de cometer errores en cualquier proceso. En el caso de que el voltaje siga por debajo del rango especificado, el microcontrolador no arranca de nuevo hasta que se estabilicen los voltajes en su rango normal. En la siguiente imagen mostramos el pequeo circuito que debe ser incluido para asegurar esto.

101

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Para el circuito anterior existen algunas reglas bsicas importantes:

1 2 3

Se recomienda una resistencia menos de 40 K ( R < 40 K ). Se recomienda a R1 entre 100 ohmios y 1 K que sern los elementos electrnicos que limitaran las corrientes que intenten entrar por el Pin del microcontrolador. El diodo D1 es utilizado para descargar el condensador rpidamente cuando el voltaje baja de su nivel normal.

Ahora conocemos la configuracin bsica obligatoria que debe tener nuestro microcontrol ador para poder funcionar. En el siguiente circuito esquemtico mostramos el resultado de lo anteriormente explicado.

PUERTOS DEL MICROCONTROLADOR PIC16F84.


102

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Los puertos del microcontrolador PIC16F84 son el medio de comunicacin con el mundo exterior, en ellos podremos conectar los perifricos o circuitos necesarios como por ejemplo los Mdulos LCD, motores elctricos, etc; pero estas conexiones no se podrn realizar arbitrariamente; es decir, existen unas reglas bsicas que debern cumplirse para que el microcontrolador no sufra daos o se destruya. Todo el truco esta en conocer los limites de corriente que puede manejar el microcontrolador..

LIMITE DE CORRIENTE PARA EL PUERTO "A" Y EL "B".


El puerto "A" del microcontrolador y el puerto "B" podrn ser programados como entradas y salidas indiferentemente. Para el caso de que sean programadas como salida es denominado "Modo Fuente" por que suministran corriente y cuando las lneas sean programadas como entradas son llamadas "Sumidero" por que reciben corriente. Ahora, la mxima corriente que puede suministrar una lnea programada como salida es de 20 miliamperios; pero si usted utiliza toda las lneas del puerto "A" programadas como salida; la mxima corriente no deber exceder de 50mA para todo el puerto "A" . Para el caso del puerto "B" en que todas las lneas sean programadas como salida la mxima corriente no deber exceder de 100 mA. Ahora cuando las lneas de los puertos son programadas como entradas (Sumidero), la corriente mxima que

puede manejar una sola lnea es de 25 mA. Para el caso del puerto "A" que sea programado con todas sus lneas como entrada, la mxima corriente que puede manejar es de 80 mA. Por otro lado, para el puerto "B" si todas las lneas son programadas como entrada, la mxima corriente que puede manejar es de 150 mA. Podemos entonces resumir: Si se necesitan utilizar perifricos que manejen mayor cantidad de corriente de la especificada, tan solo se deber aplicar un circuito acoplador como por ejemplo los buffers, transistores que se encarguen de controlar la corriente, etc. Por ejemplo:

103

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

104

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

PROGRAMACIN (ASM)
SISTEMA DE DESARROLLO
Un sistema de desarrollo esta formado por el conjunto de herramientas, tanto de tipo hardware como software, que se necesitan para desarrollar un diseo con microcontroladores. Se puede comenzar con un sistema de desarrollo mnimo con las herramientas imprescindibles e irlo ampliando hasta configurar un equipo profesional. Una de las ms interesantes peculiaridades de los microcontroladores PIC es la existencia de numerosas empresas, entre las que destaca Microchip, que ofrecen desde sistemas de desarrollo simples y baratos hasta otros ms potentes y caros. El abanico de posibilidades es grande. A nivel software, las principales herramientas de un sistema de desarrollo son las siguientes: Programa Ensamblador Compilador de alto nivel (C, Fortran, PASCAL) Programa para la grabacin de la memoria de instrucciones del microcontrolador Simulador A nivel hardware, las herramientas mas destacadas son: Dispositivo programador-grabador de la memoria de instrucciones de los microcontroladores Simulador hbrido Depurador con programa monitor Emulador incircuit El sistema mnimo de desarrollo debe disponer como herramientas de software un Ensamblador y un programa para grabar en la memoria de instrucciones del microcontrol ador el cdigo binario ejecutable. En un sistema de desarrollo bien concebido, el Ensamblador y el compilador deben coexistir y seleccionar cmodamente el que interese utilizar en cada momento. Debe ser posible, tambin incluir dentro del programa a compilar trozos de cdigo escritos en lenguaje Ensamblador. Esta caracterstica es muy importante al existir partes del programa, como son las entradas y salidas, que tienen que ser rpidas y se disean con lenguaje Ensamblador, mientras que los clculos complejos se escriben mas cmodamente con un lenguaje de alto nivel, por lo tanto, conviene que el compilador permita insertar rutinas en lenguaje ensamblador.

105

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Una vez escrito el programa en lenguaje ensamblador o de alto nivel, se ensambla o se compila para obtener el archivo binario ejecutable, objeto o hexadecimal que necesite grabarse en la memoria de instrucciones del microcontrolador. Por esto se necesita hardware grabador-programador y otro software que consiste en un programa para la PC que controla al grabador y gobierna la grabacin del archivo en la memoria. Antes de la grabacin de la memoria de instrucciones del microcontrolador es conveniente asegurarse del correcto comportamiento del programa confeccionado, para cuya verif icacin existe una herramienta software que consiste en un programa de simulacin. Estos programas simulan con software la ejecucin en el microcontrolador del programa bajo prueba. Los resultados obtenidos no son reales porque no se utiliza el microcontrolador fsico en la prueba del programa. Con la finalidad de realizar esta verificacin y depuracin de la manera mas exacta, se disponen de herramientas hardware mas caras como los simuladores hbridos, los depuradores con programa monitor y los emuladores in-circuit.

CODIGO MAQUINA Y ENSAMBLADOR


El nico lenguaje que puede interpretar la CPU del microcontrolador es el binario por lo que la memoria de instrucciones su cdigo de operacin esta implementado en binario. Dado lo poco inteligible y descifrable que tiene el lenguaje binario para el ser humano, se descarta la posibilidad de escribir los programas ejecutables directamente. El ensamblador es un lenguaje de bajo nivel porque cada una de sus instrucciones se corresponde con otra capaz de interpretar la CPU. Es m s humano pues en vez de ser unos y ceros, emplea conjuntos de letras que facilitan la operacin de las instrucciones y es muy cercano a la maquina por la correspondencia que tiene con las instrucciones. El programa escrito en un lenguaje diferente al maquina recibe la denominacin de fuente y, cuando esta escrito en ensamblador, suele tener la extensin .ASM o .SRC. El calificativo de fuente se debe a que dicho programa no puede ser ejecutado por el microcontrolador, debe ser traducido a cdigo binario, de lo cual se encarga un programa traductor, que tambin se denomina ensamblador.

EMULACIN
La clave del xito en la depuracin de sistemas basados en microcontroladores es la posibilidad de utilizar algn control externo y poder monitorear la actividad del microcontrolador. En el nivel mas bajo y econmico del diseo, el usuario graba el programa en el microcontrolador y cuando conecta este al circuito a controlar, ejecuta el programa. Con esta forma de trabajar no se puede comprobar la validz del cdigo hasta que el microcontrolador se encuentra conectado en tiempo real. Un buen trabajo de depuracin requiere sustituir al microcontrolador por un equipo que permita el seguimiento del programa y la monitorizacin de las funciones del sistema. Los sistemas destinados a controlar la ejecucin del programa pueden incluir: Ejecucin del programa instruccin a instruccin Detencin del programa en cualquier direccin Colocar valores determinados en registros o posiciones de memoria En cuanto a las posibilidades de ms inters en la monitorizacin figuran: Visualizar el contenido de registros o posiciones de memoria Comprobar el orden y la duracin en la ejecucin de instrucciones. Recibe el nombre de emulacin la tcnica que permite manejar las posibilidades descritas en control y monitoreo. Existen cuatro tipos de simulacin que difieren en aspectos importantes: Simulador Simulador hbrido Depurador Emulador in-circuit

106

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Simulador
Se trata de un programa que corre normalmente sobre un computador personal e implementa con software a un microcontrolador virtual, que es controlado y monitoreado a travs de la PC. Ejecuta el programa bajo prueba como si se tratase de un microcontrolador. Una de las ventajas mas importantes de la simulacin reside en que la depuracin no exige disponibilidad del sistema a controlar, permite la depuracin del software antes de construir el primer prototipo. Tambin permite que varios miembros del equipo trabajen en paralelo en diferentes partes del programa. La simulacin es muy eficaz en el desarrollo de pequeos programas que no dependen mucho del hardware del proyecto y no interacten con el mundo exterior. Por ejemplo, son muy tiles en la comprobacin de algoritmos y subrutinas. La mayor desventaja de la simulacin como herramienta depuradora es su no equivalencia con el tiempo real. Al no estar conectado al sistema en anlisis, no se pueden verificar rutinas que manejan una red local o un convertidor A/D.

Simuladores hbridos

Tarjeta de Prueba

En un simulador hbrido el programa de simulacin se combina con un interfaz hardware que se conecta al sistema a depurar en lugar del microcontrolador que se intenta emular. La comunicacin entre el sistema a depurar y el computador principal se realiza a travs de un puerto serie o paralelo. El programa en anlisis se ejecuta parcial o totalmente desde el simulador del computador. La interfaz hardware proporciona las lneas de E/S que simulan al microcontrolador y para asegurar al mximo las mismas caractersticas elctricas, suele estar fabricado con un microcontrolador de la misma familia que el que se desea emular. Este sistema no permite emular en su totalidad a todos los recursos del microcontrolador.

Depurador
El depurador es una aproximacin a la emulacin pero con la diferencia que aade cdigo extra al programa (monitor). El monitor esta comunicado con el computador principal y controla la ejecucin del programa y su monitoreo. Permite examinar el contenido de los registros y las posiciones de memoria, colocar puntos de ruptura para detener el programa en cualquier punto y comenzar la ejecucin en cualquier direccin.

107

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Emulador in-circuit
El termino in-circuit se reserva a los sistemas de emulacin que no consumen recursos del perifrico a emular. En su funcionamiento se debe reemplazar el microcontrolador en prueba por la sonda del emulador que se halla conectada a un cable que sale de la caja del emulador; el emulador esta controlado desde una PC sobre la que interacta el usuario. Un emulador bien diseado ofrece el mismo comportamiento elctrico, lgico y temporal que el microcontrolador que emula, lo que proporciona un excelente y completo servicio de depuracin. Permite ejecucin paso-paso, puntos de ruptura, monitoreo y modificacin de registros y posiciones de memoria, temporizacin, etc. Los emuladores son caros y no estn protegidos ante fallas.

EDICION DE PROGRAMAS
Desde que se concibe la idea y se confecciona el programa hasta que se graba en la memoria del microcontrolador, suceden una serie de operaciones que se muestran en la figura 9-4. El primer paso en un diseo basado en microcontrolador consiste en escribir el cdigo fuente del programa en el lenguaje seleccionado. Posteriormente, si el lenguaje usado ha sido el ensamblador, se convierte a cdigo ejecutable mediante el uso de un programa ensamblador. Todos los archivos fuente se deben escribir en un editor de textos ASCII. Los pasos lgicos siguientes sern la depuracin y simulacin de nuestro programa para a final de cuentas grabarlo a la memoria de instrucciones del microcontrolador y probarlo.

108

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Organigrama de la secuencia a seguir para el grabado de un microcontrolador.

ESCRITURA DEL CODIGO FUENTE


El cdigo fuente del lenguaje ensamblador esta estructurado en columnas. Cualquier texto que comience en la primera columna, se considera una etiqueta y es una parte del campo de etiquetas. Las siguientes columnas contienen el campo de instrucciones, el campo de datos y el campo de comentarios. Los comentarios deben empezar con (;) punto y coma y pueden ir tambin en la primera columna.

Campo de Etiquetas
Las etiquetas son nombres de subrutinas o secciones de cdigo fuente. Dando nombres a partes del programa, se posibilita que las instrucciones puedan saltar o hacer referencia a esas partes sin necesidad de recordar las direcciones fsicas donde estn ubicadas. Muchos ensambladores establecen un lmite pequeo al tamao de las etiquetas as como caracteres que pueden usarse en ellas, el MPASM permite de hasta 32 caracteres. En el ensamblador MPASM, una etiqueta puede ir seguida de dos puntos (:), espacios, tabuladores o ENTER; deben comenzar con caracteres alfanumricos o guin bajo (_) y pueden contener cualquier combinacin de caracteres alfanumricos.

Campo de Instrucciones (comandos)


La segunda columna corresponde al campo de instrucciones. Puede ser una instruccin del microcontrolador o una instruccin para el ensamblador, llamada directiva.

109

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Campo de Datos (operandos)


La columna que sigue al campo de instrucciones, es el campo de datos. Como su nombre lo indica, contiene datos u operandos para las instrucciones. En el caso de los microcontroladores PIC, los datos pueden ser un registro, un bit de registro, una etiqueta, o un nmero constante (literal). Algunas instrucciones no llevan datos, y si una instruccin necesita mltiples datos, deben separarse por comas (,).

Campo de Comentarios
El ltimo campo es el de comentarios siempre y cuando haya un punto y coma (;) como primer carcter. Pueden colocarse en cualquier lugar del cdigo fuente. Los comentarios son uno de los trabajos ms importantes que el programador debe desarrollar a la hora de escribir el cdigo. Comentarios correctamente escritos describen la tarea que realizan determinadas instrucciones o subrutinas. Sin comentarios es muy difcil descifrar, algunos das despus, el cdigo fuente que uno mismo ha creado.

Programa fuente:
El programa fuente esta compuesto por una sucesin de lneas de programa. Cada lnea de programa esta compuesta por 4 campos separados por uno o ms espacios o tabulaciones. Estos campos son los mencionados anteriormente:

[Etiqueta] Comando [Operando(s)] [;Comentario]

CONVENCIONES EN LA ESCRITURA DEL CODIGO FUENTE


Para hacer la tarea del programador mas grata, se usan algunas convenciones. Cada uno puede adoptar las que mas le agraden y ayuden a ser ms productivos. En general, las convenciones son cualquier accin que facilite la revisin y comprensin de un programa, especialmente el que uno mismo ha escrito cuando tiene que revisarlo algunos meses despus. Los archivos de cdigo fuente llevaran la extensin *.ASM o *.SRC Los archivos de listado llevaran la extensin *.LST Los archivos de cdigo objeto llevaran la extensin *.OBJ Archivos ejecutables en formato Intel Hex tendrn la extensin *.HEX Archivos de referencias cruzadas llevaran la extensin *.XRF Archivos de errores de ensamblado llevaran la extensin *.ERR Archivos de smbolo y depuracin para la posterior simulacin llevan la extensin *.COD Archivos con comandos de inicializacin para el simulador llevaran la extensin *.INI Los mnemnicos escritos en maysculas hacen que el cdigo escrito sea ms visible Comentarios que expliquen cada lnea o conjunto de lneas de cdigo Un prrafo de comentario explica rutinas o conjunto de instrucciones El espacio entre caracteres se escribe _ Se debe recordar que las convenciones son cualquier cosa que le haga ms fcil la lectura y comprensin de su cdigo, como por ejemplo: Una cabecera estandarizada.

110

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Colocar subrutinas en el mismo sitio, todas contiguas Dibujar diagramas de flujo escribir pseudocdigo.

111

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

112

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexos

113

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

114

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexo I
Sistemas de Numeracin.

115

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Sistemas de numeracin Un sistema de numeracin queda unvocamente definido a travs de su base, la cual indica la cantidad de dgitos distintos que posee el sistema, que se pueden utilizar para escribir cualquier nmero dentro de ese sistema. Ejemplos de sistemas de numeracin son:

Decimal, base 10 (dgitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Binario, base 2 (dgitos: 0,1). Octal, base 8 (dgitos: 0, 1, 2, 3, 4, 5, 6, 7). Hexadecimal, base 16 (dgitos: nmeros 0 a 9 y letras A, B, C, D, E, F).

Los sistemas de numeracin ms usuales son el binario, el decimal, y el hexadecimal; tambin, y en menor medida, el sistema octal. Para indicar, explcitamente, que un nmero es expresado en una determinada base, lo representamos con la base a la que pertenece, como subndice a la derecha. Por ejemplo: Base 10: 123410 Base 16: 23AF16 Base 2: 1102 En el transcurso del texto, adopta como convencin el uso de un sufijo para referirnos a la base a la que pertenece un numero: Binario: B Decimal: D (valor por default) Octal: Q Hexadecimal: H

Una manera de representar un nmero en una determinada base es mediante la notacin polinmica, de modo que cada dgito, en el sentido de izquierda a derecha, est multiplicado por las sucesivas potencias de la base. As, por ejemplo, el numero 1234 en base decimal, se puede escribir como:

116

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
1 x 10 + 2 x 10 + 3 x 10 + 4 x 10
3 2 1 0

Las computadoras trabajan internamente con el sistema binario, aunque pueden mostrar la informacin en cualquier otro sistema. En este texto, utilizamos los sistemas binario, decimal y hexadecimal. Existe una notacin formal para expresar cualquier sistema de numeracin. Esta notacin consiste en indicar, entre parntesis, la base y la cantidad de dgitos. As, por ejemplo, un sistema (2,8) hace referencia a un sistema binario, base 2, con hasta 8 dgitos de tamao. En general, diremos que un numero pertenece al sistema de numeracin (p,q) si est expresado en la base p con q dgitos. Por ejemplo: 1100 pertenece al sistema (2,4) AB12 pertenece al sistema (16,4) 093 pertenece al sistema (10,3)

Cuando la cantidad de dgitos significativos de un nmero que pertenece a un cierto sistema de numeracin es inferior a la cantidad q de dgitos del sistema, entonces se deben completar los lugares restantes con ceros a la izquierda. Por ejemplo:

00101 pertenece al sistema (2,5) 0101 pertenece al sistema (2,4) 000AB pertenece al sistema (16,5) Cambio de base:

Cualquier nmero expresado en una base puede, tambin, ser representado en cualquier otra base. Para poder hacer esto se debe proceder a cambiar la base del nmero.

En general, para expresar un nmero en otra base se deben realizar los siguientes pasos: Dividir el nmero a convertir por la nueva base; el resto de la divisin representa el dgito menos significativo del nmero en su nueva base. Dividir el cociente por la nueva base; el resultado de la divisin representa el prximo dgito menos significativo del nmero en su nueva base. Seguir as, sucesivamente, hasta que el resultado de la ltima divisin sea menor que la nueva base; en este punto, el resto de la ltima divisin corresponde al dgito ms significativo del nmero expresado en la nueva 117

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
base.

Las operaciones que se indican en los pasos descriptos, se deben hacer en la aritmtica de la base vieja.

Por ejemplo, para convertir 3410 a base 2: 34 / 2 = 17 > resto = 0 17 / 2 = 8 > resto = 1 8 / 2 = 4 > resto = 0 4 / 2 = 2 > resto = 0

2 / 2 = 1 > resto = 0

Entonces 3410 = 100012 Los cambios de base ms utilizados son: de decimal a binario y viceversa, y de binario a hexadecimal y viceversa. Para pasar de binario a decimal, se utiliza la forma polinmica; esto es, expresar al nmero binario descompuesto en potencias de 2 y efectuar las operaciones en aritmtica decimal. Por ejemplo, para convertir el nmero binario 100010 a base 10: 1 x 2 + 0 x 2 + 0 x 2 + 0 x 2 + 1 x 2 + 0 x 2 = 32 + 2 = 3410
5 4 3 2 1 0

Para pasar de binario a hexadecimal, se deben tomar grupos de 4 dgitos binarios justificando, si es necesario, con ceros a la izquierda; y, luego, convertir cada uno de los grupos a un dgito hexadecimal. Por ejemplo, para convertir el numero binario 11110100101 a base 16: 11110100101 > 0111 1010 0101 > 7A516 Para pasar de hexadecimal a binario, se convierte cada dgito hexadecimal a su representacin binaria, usando siempre cuatro dgitos binarios. Por ejemplo, la inversa del ejemplo anterior: 7A516 >

118

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
716 = 01112

A16 = 10102 516 = 01012 > 0111101001012

Complementacin: Cuando se trabaja con nmeros en bases diferentes a la decimal, surge el inconveniente de cmo representar a los nmeros negativos. Esto se resuelve mediante el concepto de complementacin, de modo que siempre se representen cantidades positivas an cuando su significado puede ser negativo . Para implementar este concepto, se define a un nmero negativo como aquel que, sumndole su positivo, el resultado es 0. En trminos prcticos, trabajaremos con la notacin complemento en nmeros binarios, tomando siempre al primer dgito como dgito de signo. Para complementar un nmero binario, completamos los siguientes pasos: Convertir cada dgito a su inverso (los unos a cero y los ceros a uno). Si se utiliza la notacin complemento a 2, sumar un 1 al nmero resultante de la inversin de los dgitos.

Por ejemplo, el complemento de 0101 es 1010 + 1 = 1011. Para expresar en forma polinmica un nmero en notacin tener en cuenta que el dgito ms significativo representa el signo.
3 2 1 0

complemento

2,

se

debe

En el ejemplo: 10112 = -1 x 2 + 0 x 2 + 1 x 2 + 1 x 2 = -8 + 2 + 1 = -510 Notar que 1011 (-510) es el complemento de 0101 (510).

Representacin de la informacin Ya hemos visto que existen distintos sistemas de numeracin que permiten expresar nmeros en diferentes bases y que la computadora est diseada para realizar operaciones aritmticas y lgicas con cantidades binarias.

119

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Para poder efectuar esas operaciones debe poder, en primera instancia, almacenar esas cantidades numricas, llamndose dato a toda cantidad almacenada en la computadora. Los datos se almacenan en la memoria de la computadora, en distintas unidades de almacenamiento. Las unidades de almacenamiento ms comunes son: Bit: Abreviatura de la expresin inglesa Binary Digit. Es la mnima unidad de almacenamiento y permite representar un nico dgito binario; es decir, almacena un uno o un cero. Toda la electrnica digital se basa en el concepto de dgito binario. Byte: Es un conjunto de bits que conforma la mnima unidad direccionable; cada byte puede ser referenciado mediante un nmero de orden o direccin dentro de la memoria. En general, el tamao de un byte es de 8 bits, aunque existen computadoras diseadas con bytes de otros tamaos. Desde el punto de vista de sistemas de numeracin, un byte pertenece al sistema (2,8). Nibble: Ocupa medio byte; en nuestro caso, un nibble ocupa 4 bits. Es til para la representacin de la informacin en notacin hexadecimal, dado que 4 dgitos binarios equivalen a 1 dgito hexadecimal. Palabra. Es un conjunto de bits que puede procesarse en forma paralela. El tamao de una palabra (o word) depende de cada mquina aunque, en general, equivale a 2 bytes; en nuestro caso, una palabra tiene 16 bits de tamao. Desde el punto de los sistemas de numeracin, una palabra pertenece al siste ma (2,16). Adems de las unidades de almacenamiento indicadas, existen otras, menos frecuentemente usadas: doble palabra, cudruple palabra, etc.

Cdigos: Para normalizar y facilitar la representacin de diferentes smbolos a travs de la combinacin de dgitos binarios en un byte, se crearon diferentes cdigos estndar. Estos cdigos tienen como fundamento la necesidad de poder estandarizar la representacin de la informacin, para permitir que se puedan intercambiar datos entre distintas computadoras. Los cdigos ms difundidos, son el EBCDIC Extended Binary Coded Decimal Interchange Code y el ASCII American Standard Code Information Interchange.

EBCDIC. Este cdigo, especialmente difundido en computadoras grandes Main Frames, se basa en la codificacin de 256 smbolos distintos, entre los que se incluyen todas las letras maysculas y minsculas, los dgitos del 0 al 9, caracteres especiales, etc. Para representar 256 cdigos se utilizan 8 bits, de modo que cada smbolo ocupa un byte. ASCII. Este cdigo es el ms ampliamente difundido. De un modo similar al EBCDIC, el ASCII permite representar smbolos. Sin embargo, a diferencia de aquel, slo admite la codificacin de 128 smbolos distintos, pues cada smbolo ocupa los 7 bits menos significativos (7 bits de la derecha) de un byte, quedando el bit 8 como bit de control. No obstante esto, actualmente es muy comn encontrar computadoras que incluyen un cdigo ASCII extendido, que se basa en la utilizacin del bit 8 para poder representar, en total, 256 smbolos distintos (los 128 smbolos originales del ASCII ms smbolos definidos con la utilizacin del bit 8). Los primeros 32 smbolos del cdigo ASCII son los denominados caracteres de control o caracteres no imprimibles. Los cdigos de control son especialmente usados en comunicaciones. 120

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Tipos de datos:

As como hemos visto las diferentes unidades de almacenamiento (bit, byte, palabra, etc.), es necesario definir los tipos de datos que pueden ser representados en esas unidades de almacenamiento. Cualquier computadora puede trabajar con datos alfanumricos y con datos numricos. Los datos alfanumricos son cadenas de caracteres (o string) ASCII o EBCDIC, donde cada carcter ocupa un byte. As, por ejemplo, la representacin de Hola en cdigo ASCII ser vista en hexadecimal: 48 4F 4C 41. Los datos numricos pueden ser: binarios, decimales desempaquetados, decimales empaquetados y punto flotante.

Binarios: Son cantidades de uno o ms bytes con o sin signo. Para representar binarios con signo, se utiliza la notacin complemento a 2. (En el apndice Sistemas de numeracin incluimos algunas especificaciones para los nmeros enteros representables en el microprocesador 8088-8086). Decimales desempaquetados: Se representan a razn de un dgito BCD Binary-Coded Decimal por byte, que ocupa el nibble ms bajo (4 bits menos significativos). Para el 8088-8086 el nibble ms alto es siempre cero. Para otras arquitecturas, el nibble ms alto est ocupado por un dgito de zona, que en general es 3. Cada byte puede almacenar un valor entre 0 y 9. Los dgitos BCD tienen la siguiente codificacin:

Dgito BCD 0 2 4 6 8 0000 0010 0100 0110 1000

Dgito BCD 1 3 5 7 9 0001 0011 0101 0111 1001

El tamao de un dato decimal desempaquetado est dado por la cantidad de dgitos que tiene. Por ejemplo, el nmero 1234 ocupa 4 bytes, y su configuracin ser 01 02 03 04. 121

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
El microprocesador 8088-8086 opera slo con nmeros decimales desempaquetados positivos. Decimales empaquetados: Cada byte contiene dos dgitos BCD. El dgito ms significativo se almacena en el nibble ms alto y el dgito menos significativo se almacena en el nibble ms bajo. Cada byte puede almacenar un valor entre 00 y 99.

El tamao de un dato decimal empaquetado est dado por la mitad de la cantidad de dgitos que tiene (si un dato tiene una cantidad impar de dgitos, entonces el nibble ms alto del dgito ms significativo se pone en cero). Por ejemplo, el nmero 12345 ocupa 3 bytes y su configuracin: 01 23 45. El microprocesador 8088-8086 opera slo con nmeros decimales empaquetados positivos. Punto flotante: Los nmeros en punto flotante son representados en una cadena de 4 bytes para simple precisin o de 8 bytes para doble precisin. Un nmero en punto flotante tiene 3 campos: signo de la mantisa, exponente y mantisa. (En el apndice Sistemas de numeracin incluimos informacin acerca de los nmeros en punto flotante, en simple y en doble precisin.) Cdigo ASCII:

Las computadoras deben manejar otros tipos de informacin adems de los nmeros. Tanto los textos (caracteres alfanumricos) como las instrucciones deben codificarse de tal modo que la computadora interprete esta informacin. El cdigo ms comn para la informacin tipo texto es el American Standard Code for Information Interchange ASCII. El cdigo ASCII es una correlacin ampliamente aceptada entre caracteres alfanumricos y valores binarios especficos. En este cdigo, el nmero $41 corresponde a una letra A mayscula, el $20 al carcter espacio, etc. El cdigo ASCII traduce un carcter a un cdigo binario de 7 bits, aunque en la prctica la mayora de las veces la informacin es transportada en caracteres de 8 bits con el bit ms significativo en cero. Este estndar permite hace posible las comunicaciones entre equipos hechos por diversos fabricantes, puesto que todas las mquinas utilizan el mismo cdigo. Tabla de caracteres ASCII: 0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT 1 DEL DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM 2 SP ! # $ % & ( ) 3 0 1 2 3 4 5 6 7 8 9 122 4 @ A B C D E F G H I 5 P Q R S T U V W X Y 6 a b c d e f g h i 7 p q r s t u v w x y

0 1 2 3 4 5 6 7 8 9

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
A B C D E F LF VT FF CR SO SI SUB ESC FS GS RS US * + , . / : ; < = > ? J K L M N O Z [ \ ] ^ _ j k l m n o z { | } ~ DEL

NUL - Nulo (Null) SOH - Comienzo de cabecera (Start of Heading) STX- Comienzo de texto (Start of Text) ETX - Final de texto (End of Text) EOT - Fin de transmisin (End of Transmision) ENQ - Requerimiento (Enquiry)ACK - Reconocimiento (Acknowledge) BEL - Campanilla (Bell) BS - Retroceso (Back Space) HT - Tabulacin horizontal (Horizontal Tabulation) LF - Avance de lnea (Line Feed) VT - Tabulacin vertical (Vertical Tabulation) FF - Avance de pgina (Form Feed) CR - Retorno de carro (Carriage Return) SO - Shift Out SI - Shift In DLE - Escape de enlace de datos (Data Link Escape) DCn - Control del dispositivo n (Device Control) NAK - Reconocimiento negativo (Negative Acknowledge) SYN - Espera de sincronismo (Synchronous Idle) ETB - Fin de bloque de transmisin (End of Transmision Block)

123

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
CAN - Cancelar (Cancel) EM - Fin del medio (End of Medium) SUB - Sustituir (Substitute) ESC - Escapar (Escape) FS - Separador de archivo (File Separator) GS - Separador de grupo (Group Separator) RS - Separador de registro (Record Separator) US - Separador de unidad (Unit Separator) SP - Espacio (Space)DEL - Borrar (Delete)

Binario codificado en decimal: El sistema Binario codificado en decimal BCD es una notacin hbrida, usada paraexpresar valores decimales en forma binaria. Un BCD utiliza cuatro bits para representar cada dgito decimal. De esta manera, cuatro dgitos binarios pueden expresar 16 diferentes cantidades fsicas, habiendo seis combinaciones consideradas no vlidas (especficamente, los valores hexadecimales de la A a la F). Los valores BCD se representan con el signo $, pues ellos son nmeros hexadecimales que representan cantidades decimales.

Cuando la computadora hace una operacin y, luego, realiza un ajuste que genera un resultado BCD.

de

suma

BCD,

realiza

una

suma

binaria

Como ejemplo, consideremos la siguiente suma BCD: 9(10) + 1(10) = 10 (10) donde (10), significa Base 10.

La computadora suma........ 0000 1001(2) + 0000 0001(2) = 0000 1010(2) donde (2), significa Base 2.

Pero 1010(2) es equivalente a A(16) que es un cdigo BCD no vlido.

124

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
Cuando la computadora termina el clculo, realiza un chequeo para ver si el resultado es un cdigo BCD vlido. Si hubo un acarreo (un desborde) de un dgito BCD a otro o si hubiese algn cdigo no vlido, se desencadena una secuencia de etapas para corregir el resultado y llevarlo al formato BCD apropiado. El nmero 0000 1010(2) es corregido y se transforma en 0001 0000(2) (BCD 10) en este ejemplo.

Decimal 0 1 2 3 4 5 6 7 8 9

BCD $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

Binary 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011

Hexadecimal (reference) $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $A $B $C $D $E $F $10 $99

Combinaciones Invlidas

BCD

1100 1101 1110 1111 0001 0000 1001 1001

10 99

$10 $99

125

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
En la mayora de los casos es ineficiente utilizar la notacin BCD para los clculos de la computadora. Es mejor convertir la informacin de decimal a binario en el momento de su ingreso, realizar todos los clculos en binario y convertirlos nuevamente a BCD o decimal slo si es necesario presentarlos en un exhibidor. No todos los microcontroladores son capaces de realizar clculos en BCD, ya que se necesita tener la indicacin del acarreo dgito a dgito que no est presente en todas las computadoras (tener en cuenta que en los MCU de Motorola tienen este indicador de semi-acarreo). Forzar a una computadora a comportarse como nosotros necesitamos, resulta menos eficiente que permitirle trabajar en su sistema de numeracin natural.

Punto flotante: El 8088-8086 no puede operar directamente (a nivel hardware) con nmeros en punto flotante (o nmeros reales); para que lo pueda hacer, es necesario que cada lenguaje de programacin brinde una interface de software apropiada. En este apndice, se describen los nmeros en punto flotante tal como los opera el lenguaje BASIC. Los nmeros en punto flotante pueden ser de simple y doble precisin, segn la cantidad de dgitos disponibles para la mantisa: cuantos ms dgitos tenga la mantisa, mayor precisin tendr el nmero. Los nmeros en punto flotante tienen tres campos: 1. 2. 3. exponente. signo. mantisa.

El exponente ocupa los primeros 8 bits (byte ms alto) y siempre es una cantidad positiva. Para poder representar nmeros con exponente negativo, ste se escribe en notacin con exceso de 128, de modo que el verdadero exponente de un nmero es el que resulta de restarle 128 al nmero representado en el campo de exponente. El signo ocupa el bit que esta a continuacin del exponente. La mantisa est a continuacin del bit de signo y se encuentra normalizada. Esto significa que, para interpretar la mantisa, se debe agregar un 1 en el bit ms alto (al tener la mantisa normalizada, se considera que el primer dgito es siempre un 1 binario aunque, no se lo explicite en la representacin). El tamao de la mantisa vara segn la precisin: es de 22 bits para simple precisin y de 51 bits para doble precisin.

Un nmero de punto flotante en simple precisin ocupa una doble palabra (4 bytes) de memoria y tiene la siguiente estructura:

126

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Bits 0 a 22. Mantisa normalizada. Para ganar precisin se omite representar el primer dgito decimal, pues al estar la mantisa normalizada ste siempre existe. Entonces, al calcular el nmero se debe considerar este dgito implcito. Bit 23. Signo de la mantisa. Si es 0, la mantisa es positiva; si es 1, la mantisa es negativa. Bits 24 a 31. Exponente con exceso a 128. El campo del exponente es un entero positivo; para conocer el valor del exponente se debe restar 128 al valor representado. El rango para los positivos ser entonces: 00000000 <= N => FF7FFFFF (hexadecimal) 00000000000000000000000000000000 <= N => 1111111101111111111111111111 (B) 0,5 * 2
-128

<= N => 0,9999999 * 2


-39

127

(exp. base 2)
38

2,938736 * 10

<= N => 1,701412 * 10 (exp. base 10)

De la misma manera, el rango para los negativos ser: FFFFFFFF <= N => 00800000 (hexadecimal) 11111111111111111111111111111111 <= N => 0000000010000000000000000000 (B) 127 -128 -0,9999999 * 2 <= N => -0,5 * 2 (exp. base 2) 38 -39 -1,701412 * 10 <= N => -2,938736 * 10 (exp. base 10)

De este modo, puede verse que un nmero positivo difiere del mismo nmero negativo en el bit de signo. Un nmero de punto flotante en de memoria y tiene la siguiente estructura: doble precisin ocupa 1 cudruple palabra (8 bytes)

La diferencia con los nmeros de simple precisin es que hay mayor cantidad de dgitos para la mantisa. De este modo, se logra mayor precisin en la representacin de un nmero en punto flotante. Por ejemplo, el nmero decimal 2436,55686593 representado en ambos modos da el siguiente resultado: Simple precisin: 8C1848E9 Doble precisin: 8C1848E8EC3FD9B5 Se nota que, al representar el nmero en simple precisin, la mantisa se redondea en el ltimo dgito hexadecimal.

127

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

128

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexo II
Set de Instrucciones PIC

129

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Set de instrucciones de la gama media

ADDLW

Suma un literal

ADDWF

W+F

ANDLW

W AND literal

Sintaxis: [label] ADDLW k Operandos: 0 k 255 Operacin: : (W) + (k) (W) Flags afectados: C, DC, Z Cdigo OP: 11 111x kkkk kkkk Descripcin: Suma el contenido del registro W y k, guardando el resultado en W.

Sintaxis: [label] ADDWF f,d Operandos: d [0,1], 0 f 127 Operacin: (W) + (f) (dest) Flags afectados: C, DC, Z Cdigo OP: 00 0111 dfff ffff Descripcin: Suma el contenido del registro W y el registro f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: ADDWF REG,0

Sintaxis: [label] ANDLW k Operandos: 0 k 255 Operacin: : (W) AND (k) (W) Flags afectados: Z Cdigo OP: 11 1001 kkkk kkkk Descripcin: Realiza la operacin lgica AND entre el contenido del registro W y k, guardando el resultado en W. Ejemplo: ADDLW 0xC2

Ejemplo:

ADDLW 0xC2

Antes: W = 0x17 Despus: W = 0xD9

Antes: W = 0x17., REG = 0xC2 Despus: W = 0xD9, REG = 0xC2

Antes: W = 0x17 Despus: W = 0xD9

ANDWF

W AND F

BCF

Borra un bit

BSF

Activa un bit

Sintaxis: [label] ANDWF f,d Operandos: d [0,1], 0 f 127 Operacin: (W) AND (f) (dest) Flags afectados: Z Cdigo OP: 00 0101 dfff ffff Descripcin: Realiza la operacin lgica AND entre los registros W y f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : ANDWF REG,0 Antes: W = 0x17., REG = 0xC2 Despus: W = 0x17, REG = 0x02

Sintaxis: [label] BCF f,b Operandos: 0 f 127, 0 b 7 Operacin: : 0 (f<b>) Flags afectados: Ninguno Cdigo OP: 01 00bb bfff ffff Descripcin: Borra el bit b del registro f

Sintaxis: [label] BSF f,b Operandos: 0 f 127, , 0 b 7 Operacin: 1 (f<b>) Flags afectados: Ninguno Cdigo OP: 01 01bb bfff ffff Descripcin: Activa el bit b del registro f

Ejemplo: :

BCF REG,7

Ejemplo: :

BSF REG,7

Antes: REG = 0xC7 Despus: REG = 0x47

Antes: REG = 0x0A Despus: REG = 0x8A

BTFSC Test de bit y salto


Sintaxis: [label] BTFSC f,d Operandos: d [0,1], 0 f 127 Operacin: Salto si (f<b>) = 0 Flags afectados: Ninguno Cdigo OP: 01 10bb bfff ffff Descripcin: Si el bit b del registro f es 0, se salta una instruccin y se contina con la ejecucin. En caso de salto, ocupar dos ciclos de reloj. Ejemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 Instruccin NO_ES_0 Instruccin

BTFSS

Test de bit y salto

CALL

Salto a subrutina

Sintaxis: [label] BTFSS f,d Operandos: d [0,1], 0 f 127 Operacin: Salto si (f<b>) = 1 Flags afectados: Ninguno Cdigo OP: 01 11bb bfff ffff Descripcin: Si el bit b del registro f es 1, se salta una instruccin y se contina con la ejecucin. En caso de salto, ocupar dos ciclos de reloj. Ejemplo: BTFSS REG,6 GOTO NO_ES_0 SI_ES_0 Instruccin NO_ES_0 Instruccin

Sintaxis: [label] CALL k Operandos: 0 k 2047 Operacin: PC Pila; k PC Flags afectados: Ninguno Cdigo OP: 10 0kkk kkkk kkkk Descripcin: Salto a una subrutina. La parte baja de k se carga en PCL, y la alta en PCLATCH. Ocupa 2 ciclos de reloj. Ejemplo:ORIGEN CALL DESTINO Antes: PC = ORIGEN Despus: PC = DESTINO

130

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

CLRF

Borra un registro

CLRW Borra el registro W


Sintaxis: [label] CLRW Operandos: Ninguno Operacin: : 0x00 W, 1 Z Flags afectados: Z Cdigo OP: 00 0001 0xxx xxxx Descripcin: El registro de trabajo W se carga con 0x00. El flag Z se activa. Ejemplo: : CLRW

CLRWDT

Borra el WDT

Sintaxis: [label] CLRF f Operandos: 0 f 127 Operacin: : 0x00 (f), 1 Z Flags afectados: Z Cdigo OP: 00 0001 1fff ffff Descripcin: El registro f se carga con 0x00. El flag Z se activa.

Ejemplo: :

CLRF REG

Antes: REG = 0x5A Despus: REG = 0x00, Z = 1

Antes: W = 0x5A Despus: W = 0x00, Z = 1

Sintaxis: [label] CLRWDT Operandos: Ninguno Operacin: 0x00 WDT, 1 /TO 1 /PD Flags afectados: /TO, /PD Cdigo OP: 00 0000 0110 0100 Descripcin: Esta instruccin borra tanto el WDT como su preescaler. Los bits /TO y /PD del registro de estado se ponen a 1. Ejemplo: : CLRWDT Despus: Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1

COMF Complemento de f
Sintaxis: [label] COMF f,d Operandos: d [0,1], 0 f 127 Operacin: : (/ f), 1 (dest) Flags afectados: Z Cdigo OP: 00 1001 dfff ffff Descripcin: El registro f es complementado. El flag Z se activa si el resultado es 0. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f.. Ejemplo: : COMF REG,0 Antes: REG = 0x13 Despus: REG = 0x13, W = 0XEC

DECF

Decremento de f

DECFSZ Decremento y salto


Sintaxis: [label] DECFSZ f,d Operandos: d [0,1], 0 f 127 Operacin: (f) -1 d; Salto si R=0 Flags afectados: Ninguno Cdigo OP: 00 1011 dfff ffff Descripcin: Decrementa el contenido del registro f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Si la resta es 0 salta la siguiente instruccin, en cuyo caso costara 2 ciclos. Ejemplo: DECFSC REG,0 GOTO NO_ES_0 SI_ES_0 Instruccin NO_ES_0 Salta instruccin anterior

Sintaxis: [label] DECF f,d Operandos: d [0,1], 0 f 127 Operacin: : (f ) 1 (dest) Flags afectados: Z Cdigo OP: 00 0011 dfff ffff Descripcin: Decrementa en 1 el contenido de f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : DECF CONT,1

Antes: CONT = 0x01, Z = 0 Despus: CONT = 0x00, Z = 1

GOTO Salto incondicional


Sintaxis: [label] GOTO k Operandos: 0 k 2047 Operacin: k PC <8:0> Flags afectados: Ninguno Cdigo OP: 10 1kkk kkkk kkkk Descripcin: Se trata de un salto incondicional. La parte baja de k se carga en PCL, y la alta en PCLATCH. Ocupa 2 ciclos de reloj. Ejemplo: ORIGEN GOTO DESTINO Antes: PC = ORIGEN Despus: PC = DESTINO

INCF Decremento de f
Sintaxis: [label] INCF f,d Operandos: d [0,1], 0 f 127 Operacin: : (f ) + 1 (dest) Flags afectados: Z Cdigo OP: 00 1010 dfff ffff Descripcin: Incrementa en 1 el contenido de f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : INCF CONT,1 Antes: CONT = 0xFF, Z = 0 Despus: CONT = 0x00, Z = 1

INCFSZ Incremento y salto


Sintaxis: [label] INCFSZ f,d Operandos: d [0,1], 0 f 127 Operacin: (f) -1 d; Salto si R=0 Flags afectados: Ninguno Cdigo OP: 00 1111 dfff ffff Descripcin: Incrementa el contenido del registro f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Si la resta es 0 salta la siguiente instruccin, en cuyo caso costara 2 ciclos. Ejemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 Instruccin NO ES 0 Salta instruccin anterior

131

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

IORLW W OR literal
Sintaxis: [label] IORLW k Operandos: 0 k 255 Operacin: : (W) OR (k) (W) Flags afectados: Z Cdigo OP: 11 1000 kkkk kkkk Descripcin: Se realiza la operacin lgica OR entre el contenido del registro W y k, guardando el resultado en W. Ejemplo: : IORLW 0x35

IORWF

W AND F

MOVLW Cargar literal en W


Sintaxis: [label] MOVLW f Operandos: 0 f 255 Operacin: (k) (W) Flags afectados: Ninguno Cdigo OP: 11 00xx kkkk kkkk Descripcin: El literal k pasa al registro W.

Sintaxis: [label] IORWF f,d Operandos: d [0,1], 0 f 127 Operacin: (W) OR (f) (dest) Flags afectados: Z Cdigo OP: 00 0100 dfff ffff Descripcin: Realiza la operacin lgica OR entre los registros W y f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : IORWF REG,0

Ejemplo:

MOVLW 0x5A

Antes: W = 0x9A Despus: W = 0xBF

Antes: W = 0x91, REG = 0x13 Despus: W = 0x93, REG = 0x13

Despus: REG = 0x4F, W = 0x5A

MOVF

Mover a f

MOVWF

Mover a f

NOP

No operar

Sintaxis: [label] MOVF f,d Operandos: d [0,1], 0 f 127 Operacin: (f) (dest) Flags afectados: Z Cdigo OP: 00 1000 dfff ffff Descripcin: El contenido del registro f se mueve al destino d. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Permite verificar el registro, puesto que afecta a Z. Ejemplo: MOVF REG,0 Despus: W = REG

Sintaxis: [label] MOVWF f Operandos: 0 f 127 Operacin: W (f) Flags afectados: Ninguno Cdigo OP: 00 0000 1fff ffff Descripcin: El contenido registro W pasa el registro f. del

Sintaxis: [label] NOP Operandos: Ninguno Operacin: No operar Flags afectados: Ninguno Cdigo OP: 00 0000 0xx0 0000 Descripcin: No realiza operacin alguna. En realidad consume un ciclo de instruccin sin hacer nada.

Ejemplo:

MOVWF REG,0

Ejemplo: :

CLRWDT

Antes: REG = 0xFF, W = 0x4F Despus: REG = 0x4F, W = 0x4F

Despus: Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1

RETFIE Retorno de interrup.


Sintaxis: [label] RETFIE Operandos: Ninguno Operacin: : 1 GIE; TOSPC Flags afectados: Ninguno Cdigo OP: 00 0000 0000 1001 Descripcin: El PC se carga con el contenido de la cima de la pila (TOS): direccin de retorno. Consume 2 ciclos. Las interrupciones vuelven a ser habilitadas. Ejemplo: : RETFIE Despus: PC = direccin de retorno GIE = 1

RETLW Retorno, carga W


Sintaxis: [label] RETLW k Operandos: 0 k 255 Operacin: : (k) (W); TOSPC Flags afectados: Ninguno Cdigo OP: 11 01xx kkkk kkkk Descripcin: El registro W se carga con la constante k. El PC se carga con el contenido de la cima de la pila (TOS): direccin de retorno. Consume 2 ciclos. Ejemplo: : RETLW 0x37 Despus: PC = direccin de retorno W = 0x37

RETURN Retorno de rutina


Sintaxis: [label] RETURN Operandos: Ninguno Operacin: : TOS PC Flags afectados: Ninguno Cdigo OP: 00 0000 0000 1000 Descripcin: El PC se carga con el contenido de la cima de la pila (TOS): direccin de retorno. Consume 2 ciclos. Ejemplo: : RETURN

Despus: PC = direccin de retorno

132

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

RLF Rota f a la izquierda


Sintaxis: [label] RLF f,d Operandos: d [0,1], 0 f 127 Operacin: Rotacin a la izquierda Flags afectados: C Cdigo OP: 00 1101 dfff ffff Descripcin: El contenido de f se rota a la izquierda. El bit de menos peso de f pasa al carry (C), y el carry se coloca en el de mayor peso. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: RRF REG,0

RRF

Rota f a la derecha

SLEEP Modo bajo consumo


Sintaxis: [label] SLEEP Operandos: Ninguno Operacin: 0x00WDT, 1 / TO 0 WDT Preescaler, 0 / PD Flags afectados: / PD, / TO Cdigo OP: 00 0000 0110 0011 Descripcin: El bit de energa pone a 0, y a 1 el de descanso. WDT y su preescaler se borran. micro para el oscilador, llendo modo durmiente. Ejemplo: : se El El al

Sintaxis: [label] RRF f,d Operandos: d [0,1], 0 f 127 Operacin: Rotacin a la derecha Flags afectados: C Cdigo OP: 00 1100 dfff ffff Descripcin: El contenido de f se rota a la derecha. El bit de menos peso de f pasa al carry (C), y el carry se coloca en el de mayor peso. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: RRF REG,0

SLEEP

Antes: REG = 1110 0110, C = 0 Despus: REG = 1110 0110, W = 1100 1100, C = 1

Antes: REG = 1110 0110, C = 1 Despus: REG = 1110 0110, W = 01110 0011, C = 0

Preescales WDT = 0, /TO = 1, /PD = 1

SUBLW Resta Literal - W


Sintaxis: [label] SUBLW k Operandos: 0 k 255 Operacin: ( k ) - (W) (W) Flags afectados: Z, C, DC Cdigo OP: 11 110x kkkk kkkk Descripcin: Mediante el mtodo del complemento a dos el contenido de W es restado al literal. El resultado se almacena en W.

SUBWF

Resta f W

SWAPF Intercambio de f
Sintaxis: [label] SWAPF f,d Operandos: d [0,1], 0 f 127 Operacin: : (f <3: 0>) (f <7:4>) Flags afectados: Ninguno Cdigo OP: 00 1110 dfff ffff Descripcin: Los 4 bits de ms peso y los 4 de menos son intercambiados. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : SWAPF REG,0

Sintaxis: [label] SUBWF f,d Operandos: d [0,1], 0 f 127 Operacin: ( f ) (W ) (dest) Flags afectados: C, DC, Z Cdigo OP: 00 0010 dfff ffff Descripcin: Mediante el mtodo del complemento a dos el contenido de W es restado al de f. . Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplos: SUBWF REG,1 Antes: REG = 0x03, W = 0x02, C = ? Despus:REG=0x01, W = 0x4F, C=1 Antes: REG = 0x02, W = 0x02, C = ? Despus:REG=0x00, W =0x02, C= 1 Antes: REG= 0x01, W= 0x02, C= ? Despus:REG=0xFF, W=0x02, C= 0 (Resultado negativo)

Ejemplos:

SUBLW 0x02

Antes:W=1,C=?. Despus: W=1, C=1 Antes:W=2,C=?. Despus: W=0, C=1 Antes:W=3,C=?.Despus:W=FF,C=0 (El resultado es negativo)

Antes: REG = 0xA5 Despus: REG = 0xA5, W = 0x5A

XORLW W OR literal
Sintaxis: [label] XORLW k Operandos: 0 k 255 Operacin: : (W) XOR (k) (W) Flags afectados: Z Cdigo OP: 11 1010 kkkk kkkk Descripcin: Se realiza la operacin lgica XOR entre el contenido del registro W y k, guardando el resultado en W. Ejemplo: : XORLW 0xAF

XORWF

W AND F

Sintaxis: [label] XORWF f,d Operandos: d [0,1], 0 f 127 Operacin: (W) XOR (f) (dest) Flags afectados: Z Cdigo OP: 00 0110 dfff ffff Descripcin: Realiza la operacin lgica XOR entre los registros W y f. Si d es 0, el resultado se almacena en W, si d es 1 se almacena en f. Ejemplo: : XORWF REG,0

La gama media tiene un total de 35 instrucciones, cada una de las cuales ocupan 14 bits.

Antes: W = 0xB5 Despus: W = 0x1A

Antes: W = 0xB5, REG = 0xAF Despus: W = 0xB5, REG = 0x1A

133

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Instrucciones de la gama baja


La gama baja carece de 4 de las instrucciones de la gama media. Estas son ADDLW, RETFIE, RETURN y SUBLW. En cambio, y puesto que los registros OPTION y TRIS no son accesibles, se aaden las dos siguientes:

OPTION Carga del reg. option


Sintaxis: [label] OPTION Operandos: Ninguno Operacin: (W) OPTION Flags afectados: Ninguno Cdigo OP: 0000 0000 0010 Descripcin: El contenido del registro W se carga en el registro OPTION, registro de slo lectura en el que se configura el funcionamiento del preescaler y el TMR0.

TRIS

Carga del registro TRIS

Sintaxis: [label] TRIS f Operandos: 5 f 7 Operacin: (W) Registro TRIF<f> Flags afectados: Ninguno Cdigo OP: 0000 0000 0fff Descripcin: El contenido del registro W se carga en el registro TRISA, TRISB o TRISC, segn el valor de f. Estos registros de slo lectura configuran las patillas de un puerto como de entrada o salida. Ejemplo: : TRIS PORTA Antes: W=0xA5, TRISA=0x56 Despus: W=0xA5, TRISA=0xA5

Ejemplo: : OPTION Antes: W= 0x06, OPTION = 0x37 Despus: W= 0x06, OPTION = 0x06

Observe que el cdigo OP de las instrucciones de la gama baja slo ocupan 12 bits, no correspondindose, por tanto, con el de la gama media.

Otras diferencias fundamentales entre ambas gamas son, por ejemplo, que en la baja el vector de reset (la primera lnea que se ejecuta tras un reset) es la ltima de la memoria correspondiente, mientras que en la media es la 0x00. El vector de interrupcin (situado en la 0x04) no existe en la gama baja.

En la gama baja se necesita emplear los bits PA2-PA0 como parte alta de la direccin de programa en las instrucciones CALL y GOTO. Las pginas de la gama baja son ms pequeas, y se deben revisar todas las escrituras de los registros OPTION, ESTADO y FSR en la conversin del cdigo. Por tanto, fcilmente comprobamos que el cdigo entre ambas gamas no es 100% compatible.

134

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Abreviatura

Descripcin

PC

Contador de Programa que direcciona la memoria de instrucciones. Tiene un tamao de 11 bits en la gama baja, de los cuales los 8 de menos peso configuran el registro PCL que ocupa el registro 0x02 del rea de datos.
Cima de la pila, con 2 niveles en la gama baja y 8 en la media

TOS WDT W F D Dest TO PD B K

Perro guardin (Watchdog) Registro W, similar al acumulador Suele ser un campo de 5 bits (fffff) que contiene la direccin del banco de registros, que ocupa el banco 0 del rea de datos. Direcciona uno de esos registros. Bit del cdigo OP de la instruccin, que selecciona el destino. Si d=0, el destino es W, y si d=1 el destino es f. Destino (registro W o f) Bit Time Out del registro de estado Bit Power Down del registro de estado Suele ser un campo de 3 bits (bbb) que determinan la posicin de un bit dentro de un registro de 8 bits Se trata, normalmente, de un campo de 8 bits (kkkkkkkk) que representa un dato inmediato. Tambin puede constar de 9 bits en las instrucciones de salto que cargan al PC Valor indeterminado (puede ser un 0 o un 1). Para mantener la compatibilidad con las herramientas software de Microchip conviene hacer x = 0 Nombre de la etiqueta Opciones Contenido Se asigna a Campo de bits de un registro Pertenece al conjunto Sealizador de cero en W. Pertenece al registro de estado Sealizador de acarreo en el octavo bit del W. Pertenece al registro de estado Sealiza el acarreo en el 4 bit del W. Pertenece al registro de estado Trminos definidos por el usuario

X label [] () <> Z C DC Italicas

135

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

136

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexo III
Programador de PIC
(Descargado de www.pablin.com.ar)

137

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Programador PIC
Con este circuito se pueden programar micros de 8, 18, 28 y 40 pines as como memorias seriales de la familia 24.

La llave selectora permite determinar que tipo de PIC se va a programar. Colocndola en la posicin superior se pueden programar micros chicos y medianos (de 8 y 18 pines) mientras que colocndola en la posicin inferior se pueden programar micros grandes (de 28 y 40 pines).

Vemos aqu el conexionado de la placa de circuito impreso que contiene los zcalos para los distintos tipos de PICmicro que podemos programar. Pensamos que sera mejor hacer el sistema en dos placas, una con la 138

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero
electrnica en el interior del gabinete y otra con slo los zcalos para colocar en el exterior del gabinete donde ser mas simple insertar o retirar los micros a programar.

Podemos, adems, equipar a nuestro equipo de un zcalo de 8 pines adicional como el visto arriba para poder leer y programar memorias seriales de la familia 24. Como fuente de alimentacin debemos usar una de 12V (NO REGULADA) de 300mA en adelante de corriente. El programa a utilizar es el ICProg. En la pantalla de configuracin del programa ICProg establecer como programador el "Propic II programmer" y tildar la casilla "Invertir MCLR". Luego de esto el LED indicador PIC se encender indicando que es posible insertar o quitar pics de los zcalos.

IMPORTANTE
El LED marcado como "PIC" indica cuando no hay presencia de tensin de programacin (VPP) en el zcalo. Cuando este LED esta apagado la tensin est presente en los zcalos PIC. Nunca insertar o quitar microcontroladores de los zcalos estando este indicador apagado.

139

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

140

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexo IV
Circuito de Aplicacin Tester de cables de red
(aplicacin descargada de www.proyectopic.com.ar)

141

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

TESTER PARA CABLES UTP


Se trata de un tester de cables de red, algo muy buscado pero que generalmente cuesta bastante encontrar, de hecho este proyecto naci en una charla con un compaero de trabajo que quera hacer algo simple y econmico para probar los benditos cables de red.... Fue as que Javier me acerco un proyecto muy elemental que nos permita chequear solo si el cable estaba bueno, a partir de ah le suger que hiciramos algunos cambios, y surgi la idea de utilizar un PIC, fue as que nos propusimos mejorar el circuito y en principio solo se trataba de secuenciarlo, de esta manera podramos chequear algo mas, no solo saber si el cable tenia todos sus pares conectados, sino que ahora en virtud de la secuencia de encendido de los LED, podramos saber si se trata de un cable "derecho" o "cruzado", Esto es en virtud de la secuencia como se describe a continuacin: Cable derecho: Al encender el equipo "local" (el que contiene la batera de alimentacin), en el equipo remoto (el de los 4 led's) la secuencia ser 1 - 2 - 3 - 4. Cabe destacar que el equipo realizara toda la secuencia, y al finalizar esperara un par de segundos y comenzara nuevamente con ella. Es decir que si coloco el local en un extremo del cable, lo enciendo (esto puedo verificarlo mediante el led que contiene dicha unidad, el que permanecer encendido durante toda la secuencia de prueba), podr ir ahora y colocar el remoto en el otro extremo, supongamos que en ese momento enciende el led 3, esto significara que la prueba esta en proceso. un segundo despus, aproximadamente, este se apagara y encender el led 4. Ah finaliza la prueba y antes de encender nuevamente el led 1, podr apreciar que el tiempo es un poco mayor. Aproximadamente 2 segundos. Cable cruzado: La prueba a realizar, es la misma, solo que la secuencia de encendido cambiara y ser 2 - 1 -3 - 4 Este tester mediante el color de encendido de los led tambin me indicara si los pares estn bien conectados o si estn invertidos, en caso de estar correctamente conectados, los led encendern color verde, mientras que si estuvieran invertidos, encendern color rojo, esto es lgicamente debido a que los led son bi-color, si no fuera as, es decir si solo coloco led de un color, supongamos verdes, perder la posibilidad de chequear la inversin de los cables y podr confundir esta falla con el faltante de algn hilo, ya que al invertir la polarizacin del led, este no encender, como si uno de sus hilos estuviera cortado o no conectado. Aqu esta el esquema elctrico de ambas unidades:

142

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Lista de materiales:
U1 U2 J1 J2 J3 R1 R2 R3 a R6 Xtal1 C1 - C2 C3 D1 D2 a D5 PIC 16F84A 78L05 Conector RJ45 p/Circ. Impreso Conector para bateria o portatilas Conector RJ45 p/Circ. Impreso 10 K 1K 560 Ohm Cristal de 4Mhz 22pF 10uFx16v Led amarillo Led Bicolor rojo-verde de dos patillas zocalo de 18 pines

El pic debe contener el programa en su interior, para descargarlo entra a http://www.proyectopic.com.ar/circuitos_pic/Tester_UTP/tester.htm y hace clic en el link correspondiente a la descarga. Ten en cuenta que el archivo que estas descargando esta comprimido y al descomprimirlo obtendrs el archivo tester.hex, que es el que debes cargar en el microcontrolador.

143

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero Cabe aclarar, que el circuito esta pensado por una cuestin de comodidad para ser alimentado mediante una batera de 9 volt, pero como lo primero que tengo es el regulador de 5 volt, podr alimentarlo con cualquier tensin, siempre que esta sea superior a 5 volt. Por ejemplo podra ser un conjunto de 4 pilas, con lo que tendra 6V o bien mediante alguna fuente externa, lo que requerira un tomacorrientes cerca del lugar donde estamos probando el cable y esto podra en algunos casos convertirse en un grave inconveniente. Aconsejo colocar un zcalo (figura en la lista de materiales) para insertar el micro, ya que no seria conveniente soldarlo al circuito. Finalmente al colocarlo en un gabinete (en realidad 2, uno para la unidad local y otro para el remoto), aconsejo colocar una llave de encendido que corte el positivo de la batera a fin de poder encender y apagar el tester. Ten en cuenta que esta llave no esta contemplada en la lista de materiales. Finalmente quiero agradecer a Javier, que fue quien trajo su primera inquietud y los circuitos bsicos de los que partimos para lograr este proyecto.

144

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Anexo V
Display LCD

145

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

MODULOS LCD

1-. Breve Introduccin.

Antes de aparecer los mdulos LCD, nuestros diseos electrnicos utilizaban los Displays de siete segmentos para poder mostrar la informacin, adems de su gran limitacin de poder mostrar los caracteres alfa numricos y smbolos especiales, tambin consuman demasiada corriente y ocupaban demasiado espacio fsico. Posteriormente aparecieron otros tipos de displays ms complejos que podan mostrar algunos caracteres y smbolos; pero tenan de igual manera mucho consumo de corriente y espacio fsico desperdiciado.

Finalmente aparecieron los mdulos LCD o pantallas de cristal lquido la cual tienen la capacidad de mostrar cualquier carcter alfa numrico. Estos dispositivos ya vienen con su pantalla y toda la lgica de control preprogramada en la fabrica y lo mejor de todo es que el consumo de corriente es mnimo y no se tendrn que organizar tablas especiales como se hacia anteriormente con los displays de siete segmentos. Las aplicaciones de los mdulos LCD son infinitas ya que podrn ser aplicados en la informtica, comunicaciones, telefona, instrumentacin, robtica, automviles, equipos industriales, etc. Todo queda a su imaginacin la gran cantidad de aplicaciones que tiene un modulo LCD.

2-. Diversidad de algunos mdulos LCD:

En la actualidad los mdulos LCD existen una gran variedad de versiones clasificados en dos grupos. El primer grupo esta referido a los mdulos LCD de caracteres ( solamente se podrn presentar caracteres y smbolos especiales en las lneas predefinidas en el modulo LCD) y el segundo grupo esta referido a los mdulos LCD matriciales ( Se podrn presentar caracteres, smbolos especiales y grficos). Los mdulos LCD varan su tamao
146

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero fsico dependiendo de la marca; por lo tanto en la actualidad no existe un tamao estndar para los mdulos LCD.

Para el caso de la empresa VARITRONIX especializada en la fabricacin de LCD, existen configuraciones mnimas desde una lnea con un mnimo de ocho caracteres y por el contrario, existen configuraciones desde 4 lneas hasta 40 caracteres por cada lnea. La siguiente imagen muestra las dimensiones de una configuracin tpica de un modulo LCD de dos lneas por 16 caracteres por cada lnea incluyendo los detalles de la matriz de como esta conformado un carcter.

Otro patrn importante es el tamao de los caracteres donde las dimensiones de la matriz que forma los caracteres tienen longitudes diferentes. La siguiente imagen muestra la matriz utilizada para poder representar un smbolo o un carcter alfa numrico en un modulo LCD. Esta matriz define algunos aspectos importantes del carcter o el smbolo que estn mostrando. Los aspectos que define esta matriz son: Los primeros mdulos LCD tenan los caracteres de color negro y el fondo de la pantalla era de color verdoso claro. Posteriormente se crearon otros colores en donde los caracteres eran de color plata y as sucesivamente fueron variando los colores en el fondo y en los caracteres incluyendo una luz posterior para los mdulos LCD denominada Back Light diseada especialmente para mejorar la visualizacin de la pantalla sobre todo en lugares muy oscuros.

147

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El Back Light existe en varias versiones de colores, entre los mas conocidos tenemos el color verdoso y el azul cielo; pero hasta la fecha los Back Light tienen un alto consumo de corriente. Tericamente segn un reportaje realizado por Edison Duque C. en la revista Colombiana de Electrnica y Computadores N-. 12 del Tercer ao dice: Los pines que le suministran la corriente al Back Light se le deben suministrar 5 Voltios pero a una frecuencia aproximada de 60 Hz. para evitar que se presenten altas temperaturas en el modulo LCD. La siguiente imagen representa un modulo LCD del tipo matricial y que tienen encendida la luz posterior ( Back Light ).

Ahora la tecnologa esta disponible en color para los mdulos LCD desde 4 colores hasta los 256 y las combinaciones de ellos.

3-. Identificacin de los pines de conexin de un modulo LCD no Matricial:

Los pines de conexin de un modulo LCD han sido estandarizados por el cual en la mayora de ellos son exactamente iguales siempre y cuando la lnea de caracteres no sobrepase los ochenta caracteres por lnea. En el caso de que esto suceda, localice la hoja de caractersticas del fabricante. Por otro lado es de suma importancia localizar exactamente cual es el Pin Numero 1 ya que en algunos mdulos se encuentra hacia la izquierda y en otros mdulos se encuentra a la derecha. En caso de no estar seguro de la asignacin de los pines, localice la hoja de caractersticas del fabricante.

148

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

3.1-. Interpretacin del significado de los Pines del Modulo LCD:

El Pin numero 1 y 2 estn destinados para conectarle los 5 Voltios que requiere el modulo para su funcionamiento y el Pin numero 3 es utilizado para ajustar el contraste de la pantalla; es decir colocar los caracteres mas oscuros o mas claros para poderse observar mejor. Observe la siguiente imagen de como debern estar conectados los tres primeros pines. La resistencia representada como R3 es un potencimetro variable que puede oscilar entre 10 K y 20 K indiferentemente.

149

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

El Pin numero 4: denominado "RS" trabaja paralelamente al Bus de datos del modulo LCD ( Bus de datos son los Pines del 7 al 14 ). Este bus es utilizado de dos maneras, ya que usted podr colocar un dato que representa una instruccin o podr colocar un dato que tan solo representa un smbolo o un carcter alfa numrico; pero para que el modulo LCD pueda entender la diferencia entre un dato o una instruccin se utiliza el Pin Numero 4 para tal fin. Si el Pin numero 4 = 0 le dir al modulo LCD que esta presente en el bus de datos una instruccin, por el contrario, si el Pin numero 4 = 1 le dir al modulo LCD que esta presente un smbolo o un carcter alfa numrico.

El Pin numero 5: denominado "R/W" trabaja paralelamente al Bus de datos del modulo LCD ( Bus de datos son los Pines del 7 al 14 ). Tambin es utilizado de dos maneras, ya que usted podr decirle al modulo LCD que escriba en pantalla el dato que esta presente en el Bus; por otro lado tambin podr leer que dato esta presente en el Bus. Para entender mejor el funcionamiento del Pin nmero 5, tenemos un ejemplo prctico que aclara este ltimo punto.

Supngase que usted tiene armado un circuito electrnico con un modulo LCD incluyendo un teclado muy limitado que tan solo tiene 5 teclas ( Mover Cursor arriba, Mover cursor a la derecha, mover cursor abajo, mover cursor a la izquierda y Enter ). La finalidad de este teclado es poderse desplazar por toda la pantalla y seleccionar una opcin con la tecla de ENTER. Si nuestro circuito electrnico por ejemplo le pregunta al usuario por medio del modulo LCD lo siguiente: Usted tendra que ubicar el cursor para seleccionar una de las dos opciones presentadas en pantalla. En el momento que usted presiona la tecla de Enter le dice a nuestro pequeo circuito que ya la opcin esta seleccionada. He aqu la importancia del Pin numero 5 ya que usted podr leer la seleccin que hizo nuestro usuario directamente del bus de datos del modulo LCD.

150

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Si el Pin numero 5 = 0 el modulo LCD escribe en pantalla el dato que esta presente el Bus; pero si el Pin numero 5 = 1 significa que usted necesita leer el dato que esta presente el bus del modulo LCD.

El Pin numero 6: denominado "E" que significa habilitacin del modulo LCD tiene una finalidad bsica: conectar y desconectar el modulo. Esta desconexin no estar referida al voltaje que le suministra la corriente al modulo; la desconexin significa tan solo que se har caso omiso a todo lo que este presente en el bus de datos de dicho modulo LCD. En la mayora de los circuitos electrnicos modernos que incluyan elementos electrnicos como Microcontroladores, Memorias y Mdulos LCD, utilizan el mismo bus de datos. Esto es para no tener un bus de datos independientemente por cada elemento electrnico, esto implicara que los circuitos electrnicos sean mucho ms grandes por la cantidad de conexiones necesaria a cada uno de los elementos.

Ahora como los Microcontroladores, memorias y mdulos LCD utilizan el mismo bus de datos, deber existir en cada uno de ellos un Pin de habilitacin "E" que permita desconectar y conectar cuando sea necesario. Por ejemplo si usted necesita trabajar con la memoria RAM para obtener o escribir cierta informacin, ser necesario que deshabilite el modulo LCD para que no presente basura en la pantalla, o se ejecuten instrucciones no deseadas. Los Pines desde el numero 7 hasta el numero 14 representan 8 lneas que se utilizan para colocar el dato que representa una instruccin para el modulo LCD o un carcter alfa numrico. El Bus de datos es de 8 Bits de longitud y el Bit menos significativo esta representado en el Pin numero 7, el Pin mas significativo esta representado en el Pin numero 14

Los Pines 15 y 16: estarn destinados para suministrar la corriente al Back Light. Es importante conocer que no todos los mdulos LCD disponen del Back Light aunque tenga los pines de conexin en el circuito impreso.

4-. Tiempos mnimos requeridos para que una instruccin o un dato puedan ser ejecutados.

Los Pines de control ( E, RS y E/W ) estn estrechamente relacionados ya que por medio de ellos podemos especificar si queremos ejecutar una instruccin o leer / escribir un dato en la pantalla o la memoria RAM; sin embargo existe una condicin importante que deber tomarse en cuenta referida directamente al tiempo necesario que se necesita para cambiar de un estado a otro en los pines de control. ( E, RS y R/W ). En el caso de que este tiempo sea mas pequeo que el tiempo mnimo requerido, entonces el modulo LCD no tendr el tiempo suficiente para responder a las instrucciones solicitadas por el usuario y por consecuencia se perdern los datos o instrucciones segn sea el caso.

151

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero En otras palabras, las personas suelen cometer un error comn cuando se esta intentando hacer funcionar un modulo LCD en el cual no consideran la velocidad de proceso del microprocesador o el microcontrolador especficamente en los pines de control ( E, RS y R/W ), esto quiere decir que si usted tuviera conectado un modulo LCD a un microcontrolador que tiene una velocidad de proceso demasiado alta en los pines de control, cuando se ejecuta una solicitud de cualquier tipo ( escritura / lectura e Instruccin. ), el modulo LCD no tendr la capacidad de entender la solicitud hecha por el microcontrolador ya que esta se ejecuto demasiado rpida. Para ello los programas o los circuitos electrnicos que manejan un modulo LCD debern respetar los siguientes diagramas de tiempo:

4.1-. Diagrama de tiempo para una Instruccin:

Para enviarle una instruccin al modulo, primero hay que colocar la instruccin en el bus de datos ( Pines del 7 al 14 ). Una vez que esta presente la instruccin en el bus de datos se procede a ejecutar el diagrama de tiempo requerido para una instruccin en los pines de control. Este diagrama de tiempo es muy sencillo de entender, tan solo usted deber colocar el Pin RS = 0, el Pin R/W = 0 y el Pin E = 0; Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E = 1. El nuevo estado de este Pin "E" deber permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instruccin.

4.2-. Diagrama de tiempo para escribir un Dato:

Para escribir un dato en el modulo LCD, primero hay que colocar el dato en el bus ( Pines del 7 al 14 ). Una vez que esta presente el dato en el bus se procede a ejecutar el diagrama de tiempo requerido para escribir un dato en los pines de control. Este diagrama de tiempo es muy sencillo de entender, tan solo usted deber colocar el Pin RS = 1, el Pin R/W = 0 y el Pin E = 0; Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E = 1. El nuevo estado de este Pin "E" deber permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instruccin.

152

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

4.3-. Diagrama de tiempo para leer un Dato:

Para leer un dato de la pantalla o la memoria RAM en el modulo LCD, los pines de control debern estar colocados como sigue: Pin RS = 1, Pin R/W = 1 y el Pin E = 0; Una vez colocados los pines con las tensiones mencionadas, proceda a cambiar el estado del Pin E = 1. El nuevo estado de este Pin "E" deber permanecer por lo menos 450 ns antes de volver a cambiar de estado para que la pantalla pueda entender la instruccin.

Nota importante:

Ntese que en los tres diagramas de tiempos el Pin denominado como "E" tiene que estar previamente en el estado lgico "CERO", posteriormente se cambia el estado lgico a "UNO" la cual permanecer por lo menos unos 450
153

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero nano segundos y finalmente vuelve al estado lgico" CERO ", en el preciso momento que el Pin "E" del modulo LCD tiene el flanco de bajada, es cuando se ejecuta la instruccin o el dato presente en el bus de control.

5-. Bus de Datos de 4 y 8 Bits de Longitud:

El Bus de datos de un modulo LCD puede ser configurado para trabajar con 4 Bits y con 8 Bits. Para los diseos electrnicos que estn limitados por la cantidad de lneas utilizadas en el Bus de datos, podrn utilizar un bus de datos con una longitud de 4 Bits; sin embargo si este no fuera su caso, podr utilizar el bus de datos completo de 8 Bits. Las seales de control ( RS - R/W - E ) y los diagramas de tiempo explicados anteriormente, trabajan igual sea para un bus de datos de 4 Bits o de 8 Bits. Sin embargo, si usted esta interesado en trabajar el bus de datos con una longitud de 8 Bits, deber saber que cuando se enciende el modulo LCD la configuracin para 8 Bits entra por defecto; es decir que no necesitara programarse, pero la configuracin del bus de datos con una longitud de 4 Bits requiere una secuencia cuidadosa de instrucciones previas inmediatamente despus de encender el modulo LCD.

La longitud escogida para trabajar el bus de datos deber hacerse en el principio de la programacin del modulo LCD. En la siguiente imagen se puede observar la inicializacin de un modulo LCD para trabajar con un bus de datos de 8 (izquierda) y 4 Bits (Derecha).

6-. Inicializacin. del modulo LCD:

154

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero Todo modulo LCD deber inicializarse, esta inicializacin indicara como deber operar la pantalla. La inicializacin representan las instrucciones que debern ser ejecutadas por el modulo LCD antes de su funcionamiento normal. Las instrucciones que estn dentro de la inicializacin solamente se ejecuta despus que se enciende el modulo LCD y no podrn ser cambiadas posteriormente. Por ejemplo tenemos algunos parmetros que pueden ser ejecutados en la inicializacin antes de comenzar a funcionar nuestro modulo LCD: Seleccin de la longitud del bus de datos ( 4 Bits / 8 Bits ). Activar el numero de lneas que se visualizaran el modulo LCD. Encender el Modulo LCD.

Las siguientes instrucciones tambin podrn ser colocadas en la inicializacin, con la diferencia que podrn ser cambiadas en cualquier parte del programa. Mantener el mensaje fijo y desplazar el cursor. Desplazar el mensaje y mantener el cursor fijo. Hacer que el carcter sealado parpadee o no.

7-. Conjunto de Instrucciones bsicas de un modulo LCD:

La siguiente tabla representa el conjunto de instrucciones de un modulo LCD, en ella se muestran toda la informacin necesaria que se requiere para cada instruccin, pero posteriormente se da una explicacin mas amplia de algunas de ellas.

155

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

La tabla numero dos, esta referida a las nomenclaturas utilizadas en la tabla numero uno

156

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero La tabla numero tres, esta referida a las abreviaturas utilizadas en la tabla numero uno

8-. Posicin de los caracteres en la pantalla segn el nmero de lneas del modulo LCD:

En la actualidad existen diversidad de mdulos LCD por ejemplo tenemos pantallas con una sola lnea con tan solo ocho caracteres y mdulos con 4 lneas con 40 caracteres por cada lnea. Estos son algunos ejemplos bsicamente. Ahora en los mdulos LCD segn la cantidad de lneas cada uno de los caracteres tiene una posicin numrica dentro del DD-RAM ( Display Data RAM ). Comencemos con algunos ejemplos basados para mdulos LCD de una sola lnea. 8.1-. Display de Una Lnea x 40 Caracteres, direccin DD-RAM

DISPLAY DE UNA LINEA X 40 CARACTERES

8.2-. Display de dos Lneas x 40 Caracteres, direccin DD-RAM

Para un modulo LCD que contenga dos lneas tenemos la siguiente ubicacin fsica de los caracteres en la pantalla.

157

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero DISPLAY DE DOS LINEAS X 40 CARACTERES

8.3-. Display de Cuatro Lneas x 40 Caracteres, Direccin DD-RAM:

Para un modulo LCD que contenga cuatro lneas sucede algo diferente e interesante con respecto a la ubicacin fsica que debe tener cada carcter en la pantalla del modulo LCD ya que en realidad el final del la lnea numero 1 tiene su continuacin en la lnea numero 3; pero el final de la lnea numero 2, tiene su continuacin en la lnea numero 4.

DISPLAY DE 4 LINEAS X 40 CARACTERES

9-. Caracteres que podrn ser presentados en la pantalla del modulo LCD:

La siguiente tabla representan los caracteres que podrn ser mostrados en un modulo LCD. Cada uno de los caracteres tiene su representacin binaria de ocho bits. Por ejemplo si usted necesita el carcter "A" deber representarlo con el siguiente cdigo 01000001 por otro lado si quisiera utilizar el carcter "T" deber representarlo por el cdigo 01010100. Este cdigo deber ser colocado en el Bus de Datos del Modulo LCD ( Lneas del 7 al 14 ).

158

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

TABLA DE CARACTERES

10-. Ejemplo de como hacer funcionar el modulo LCD por medio de un mtodo manual:

Ahora podemos realizar un ejemplo practico de como hacer funcionar el modulo LCD de una manera manual paso a paso incluyendo la inicializacin hasta presentar una serie de caracteres en la pantalla. La siguiente imagen muestra el pequeo circuito que tendr que montar para realizar la practica.

159

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En la imagen anterior, mostramos el circuito bsico que usted necesita montar en un ProtoBoard para realizar el experimento. En circuito deber ser alimentado con 5 Voltios DC. En esta seccin practica procederemos a escribir en el modulo LCD la palabra PCB ELECTRONICS SYSTEMS. Observemos los pasos y sus procedimientos de una forma manual:

Una vez que este montado el circuito esquemtico que mostramos en la imagen anterior, proceda a realizar los siguientes pasos:
PASO 1: Corte toda la energa al circuito del modulo LCD y coloque todos los switches del circuito a tierra; es decir los switches denominados SW DIP-2 ( Lneas de control ) y SW DIP-8 ( Bus de datos ) colocados o conectados a tierra ( Gnd ). PASO 2: En el circuito esquemtico no tenemos un interruptor, por lo tanto tan solo suministre la energa al circuito del Modulo LCD con una tensin de 5 Voltios DC. A partir de aqu se deber tomar en cuenta la resistencia variable denominada R1 que representa un potencimetro de 10 K. Como puede observarse en el circuito, la parte central del potencimetro esta conectado al pin numero 3 del modulo LCD. La parte central del potencimetro podr ser ajustado entre 0 voltios y 5 voltios. A medida de que el voltaje el Pin numero 3 del modulo LCD se acerque a los 5 voltios se observara con mayor detalle las matrices que forman a los caracteres en el modulo LCD; pero si el voltaje suministrado para el Pin numero 3 del modulo se acerca a 0 Voltios, el modulo aparentara que no esta encendido por que las matrices que forman a los caracteres tienen muy poca intensidad para poder ser observados, por lo tanto, para comenzar con nuestro pequeo experimento recomendamos ubicar el potencimetro en la parte central y posteriormente se ajustara cuando el modulo este funcionando. Otro punto importante referente al modulo LCD cuando es encendido, es que se deber esperar unos 15 mili Segundos que se utilizan para estabilizar todas las tensiones dentro del modulo LCD. PASO 3: Ahora debemos especificar al modulo LCD si va a trabajar en el formato de 8 Bits o de 4 Bits. Es importante saber que los mdulos LCD cuando son encendidos, vienen por defecto para trabajar con un bus de datos de 8 bits la cual no ser necesario especificar esta instruccin; pero como estamos realizando un experimento manual con nuestro modulo LCD ejecutaremos la instruccin indiferentemente con la finalidad de que pueda ser observado los procedimientos necesarios.

Para trabajar con un bus de datos de 8 bits se deber colocar el siguiente cdigo en el bus de datos y bus de control.

160

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

En el bus de datos, especficamente en los pines DB3, DB2, DB1, DB0 tienen como valor asignado una letra "X". En la teora electrnica la letra "X" representa cualquier valor entre "0" y "1" indiferentemente. Una vez que este colocado el cdigo en el bus de datos y el bus de control, proceda a presionar ( Una sola Vez ) el pulsador denominado SW1. Este pulsador esta conectado con el pin 6 del modulo LCD especficamente en el "ENABLE" y la condicin mnima que requiere es que el pulsador deber estar presionado por lo menos 450 nano segundos. PASO 4: La siguiente instruccin ser para especificarle al modulo LCD con cuantas lneas desea usted trabajar. para ello deber escribir el siguiente cdigo en el bus de datos y el bus de control:

El Pin numero 10 que representa a DB3 tiene la letra "N" la cual tan solo usted deber saber si va a trabajar con una lnea o con dos lneas. Para N=0 el modulo LCD trabajara con una lnea y para N=1 el modulo LCD trabajara con dos lneas. Este ultimo punto esta dirigido solamente para los mdulos LCD que tienen por lo menos 4 lneas fsicamente, como hemos explicado anteriormente, para un modulo LCD de 4 lneas ( Fsicamente ), internamente tan solo tiene dos ya que la primera lnea del mdulo LCD esta conformada por la lnea N-. 1 y N-. 3 fsicamente del modulo LCD y la lnea N-. 2 esta conformada por la lnea N-. 2 y N-. 4 del modulo LCD. Entonces podemos concluir para este paso 4 que solamente ser necesario si usted esta utilizando un modulo LCD de 4 y de 2 lneas ( Fsicamente ). Para nuestro pequeo experimente, coloque a N=1 y F=0. PASO 5: La siguiente instruccin ser para encender la pantalla y el cursor; para ello deber escribirse el siguiente cdigo en el bus de datos y en el bus de control:

Para ejecutar el cdigo colocado en el bus de datos y el bus de control volvemos nuevamente a presionar el pulsador denominado SW1. PASO 6: Finalmente, la ltima instruccin de la inicializacin se refiere que cuando se escriba un carcter en la pantalla, el cursor se desplace automticamente a la derecha.

Hasta aqu hemos terminado la inicializacin bsica de un modulo LCD, ahora podemos proceder a escribir "PCB ELECTRONICS".

PASO 7: Ahora podemos escribir nuestros caracteres con la secuencia como se seala en la siguiente tabla:

161

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

NOTAS: 1-. Activar el swiche que hemos denominado como SW1 la cual su funcin es enviar un "1" lgico mientras el switche se encuentre presionado, podra causar fallas de rebote; esto quiere decir que podra aparecer varios caracteres en la pantalla si el efecto de rebote se hace presente. 2-. El tiempo mnimo que necesita el pulsador SW1 ser de 450 nano segundos. Este tiempo no tendr nada de importancia para este procedimiento manual, pero si tendr muchsima importancia para cuando el sistema funcione con un microprocesador o un microcontrolador.

162

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero

Bibliografa

163

EET N1 de Merlo Ingeniero Francisco E. Urondo TTP: Montaje de Circuitos y Sistemas Electrnicos Especialidad Electrnica 3 Ao Prof.: Christian G. Roggero El presente documento fue compilado por el Profesor Christian G. Roggero en enero de 2007, a fin de conformar una bibliografa para el TTP Montaje de Circuitos y Sistemas Electrnicos, del tercer ao de la especialidad de Electrnica de la Escuela de Educacin Tcnica Nro. 1 de Merlo Ing. Francisco E. Urondo. Fichas 2, 3 y anexos del curso de Microcontroladores y Microprocesadores del Inet, serie/desarrollo de contenidos coleccin/fluidica y controladores lgicos programables (2006) Introduccin a los Microcontroladores Apunte descargado de internet sin datos de Autor. Microcontroladores PIC Profesor Jos Casal Apunte de Display LCD Apunte descargado de internet sin datos de autor www.pablin.com.ar www.proyectopic.com.ar www.microchip.com www.asmeltec.de/dl0az/datasheets/LCDs.pdf

164

También podría gustarte