Вы находитесь на странице: 1из 329

Los microproceladorl.

Evolucion historIC.

ConceptDs basieD. Lenuuajes de ppouramacion

Introduccion
PaSDS a seguip para

elaborer un prayecta

Torno 1 - Teoria -

MICROCONTROLADORES
.
.~

Curso priictico sobre

.~

-~~

---'

~.

--.~

_.-

----

Teoda, Programacion,

Diseno, Practicas y Proyectos completos

El Curso prictico sobre MlCROCONTROIADORES de COOT S. A. se publica en forma de 40 fasciculos de aparicion semanal, encuadernables en.3 vo!l1menes. Cads fascfculo consta de 4 pagillas de cublertas y 20 paginas de contenido a todo color. De estas ultimas, 8 esran dedicadas a Ia secci6n de 1 ,4 a PROGRAMAOON y 8 ala seccion de PROYECTOS.
Las paginas de cada secci6n son encuadernables por separado, Por esta razon, aJ formar los vohimenes, debe cuidarse de desprender previamenre, de rodos los faseiculos, las 8 paginas centrales de PROYECTOS, las 4 de PROGRAMAO:ON y par ultimo las 8 paginas de . Durance la publicaci6n de los fasciculos se pondran a la venta las tapas de los 3 vohimenes de la obra para su encuadernaci6n.

Copac.itaTnospal"'a

vi ... m-vor ..,.

Calle 22 N" 8 - .22, Piso 2,

TeIef(l1C6 (6) 3.348179-33481873348189 - 3348193 Fax: (6) 3348020

CEKIT S.A. garantiza la pubUcad6n de la totalidad de Ia obra, el suministro de la tapas necesarias para su encuadernacion y el servicio de numerus atrasados basta un afio despues de terminada la drculaci6n del ultimo fasdculo. Tarnbien garantiza la fidelJdad de la infonnaci6n teorico-pracnca sumihistracla yel correcro fundonamiento de los programas induidos como ejernplos de la obra, Mororola, l\1iac.chip, PIC, Inrel,Almel, Parallax, Zilog, Phillips, son marcas regisradas de las d.iferenres empresas en los E"lacla; Unidas Yenoo.os paises.0tr0s prodocrcs y nombres de compaillas menoonadas en esa obra puedenser rrarcas regisradasde sus propeeanos.
Ese curso ha sicIo elaborndoreg(!n

PereiraCoIombla Carrera 13 W 38 • 43, Piso L Telefonos: 2873086 2873420 - 2877318 Bogoti. Co:IoatJIa &n3.:1"it ea':kif@ro~.telecol'1a.Q)Illl.W -~[l.QOn1. •

bttp::1.
~

GererJIieGeoeta

Jorge Heman Alvarez MarceloAlvarez H. Manuel Felipe Gonzalez G. Humberto Real Blanco.

Dirt'dorEdib::rill:

CircuIad6n.lo:lt!rnadooal

bap su responsabilidad, ..p:x los sigui.eI1(e5

integrantes del departamento ttknlco de CEKlT SA

eI plan del editor y de sus autores, y

Auto res
GD..BERTO VARGAS C. JUAN DIEGO HERNANDEZ

Distribucion Internacional
Argentina: lmportador: Editorial
e-mail: gconosurssspeedy.com.ar
ConOSUf

MANuEL FELIPE GONzAI..EZ G.


F.

JUAN ANDREs CASTANO W.

5.A. Av. Belgrano 355 10". Tel: 4342~9029 Pax. 4342-9025


VACCARO SANCHES Y CIA. - Moreno 794.

Dist. Capilal:

9"(1092) Buenos Aires. Dlst, Interior: DISTRIBUIDORA BERTRAN SAC. - Av. Velez Sarsfield 1950(1285) Buenos Aires.- Bolivia. AGENClA MODERNA LTDA. - Chile: DlS1lUBurDORA ALFA 5.1'.. - Colombia: DISTRIBUIOORAS UNID.AS. - Venezuela: DISTRrBUIDORA CONTINENTAL.- Mexico: CONSORCIO SAYROLS - Ecuador: DISTRIBUIDORAru\1lJES. - Panama: PANAMEX SA- Peru: DISTruBUlOORA BOLIVARlA.NA S.A. - Paraguay: SELECCIONES S.A.C.
- UruguaY:DISTRillUIDORA CAREAGA

Proyectos
JOHN JAIME ROBBY G.

. ...

D.iseiio car31u[a: Luz Angela. Plata B. Diseiio: Gloria Marcela GOmez. G. Diagramaci6n: Hector 8ugoJimenez ©CEKITS.A.2001
Pen:ira-Colombia
Todos los deeechos reservados, Prohibk13 SI.I pardal 0 Iota! per cualquler rnedlo sin
permiso escrso del editor.

Suscripdones

y consultas tecnlcas en Colombia

(00

vaUdas en. Argentina), mimecosatrasados


reprodeccion

CEKlT S.A. . Calle 22 N° 8 - 22, Piso 2, A.A. 194 Peretraf Cotombta)

oa nuestro correc elect.r6nico:


ecekit@co12.telecom.com.co
ISBN (Pasciculo 8);958--657-51 o- 1 ISB (Valumen 1):958-657·498-9 ISBN (Obra cornplera), 958-657-497-0

Internacional Graphics & Printing CO. 26CO Douglas Road. Suite 406 Coral Gables, Florida 33134. U.S.A. Impreso y encuadernado por: RRDonneUey AmerIca Latin.a Ruta Panarnericana Krn. 38.700 lmpreso
Buenos Aires

EDla:6N

eONO SUR

e:
I

en Argentina

Argentina

J1.lnio 2002

, con el rnerodo de CEKIT de "Aprender haciendo", la recnologfa de los Microconrroladores, una de las que han carnbiado el mundo en los ulrimos afios y gane rnucho dinero. Estos pequefios cerebros electr6nicos se encuentran en todas panes: autornoviles, .omputadoras, electrodornesticos, alarmas, juegos de-luces, instrumentos, equipos de comunicaciones, etc.

ESIUd-

Li~beresu

mas

cr--

rnitira la cornunicacion de hechos y datos entre


personas y objetos formando la red del conocimienro, base de la econornfa del nuevo milenio

n este curso incluimos los principios teori cos, los funda..r:nentos de su programaci6n, .a gran cantidad e actividades practicas y pr .recto completes Rafa amblar,

Capadtese y forme parte activa de la nueva economla.


Las personas con buenos conocimientos de esra tecnologia, tendran muchas oportunidades laborales 0 podran fabricar sus propios aparatos en forma industrial, 10 que puede ser la base para una empresa muy rentable.

Los microcontroladores son los elementos basicos y fundamentales de una nueva revolucion, la interconexion de todo con todo en una red mundial de iIiifo-rmaci6 "1 control. Esto per-

, eslr etu ado el urso


El Curso practice sobre Microcontoladores de

CEKIT S.A. se publicara en 40 Iascfculos con tres secciones cada uno, y al final, se agrupara. en tres tomos de pasta dura con cada uno de los temas princi-

pales. Para su facll idcntificacion, cada una de las secciones riene un color

diferente.

La clistribuci6n

de

los tomos

es la siguiente:

Torno 2: Ppogramacion
I

Tama 3: ppayactDll
320 paginas (1 a 32~)
J

320 paginas (1 a 320)

160 paginas (1 a 160)

Los siguientes son los principales temas tratados en esta secci6n: • • Inrroduccion a los microprocesadores Inrroduccion a los microconrroladores Diferencias entre Lin microprocesador y un microcomrolador Principales familias de microconrroladores Estuctura bssica de los sistemas Call microcontrelador (Motorola y PIC de Microchip) Arquitecturas de microcontroladores La CPU y la ALU Organizacion de la memoria La EPROM de datos Las interrupciones Los puertos de entrada/salida (ItO) Lostemporlzadores (Timers) Las opciones Comparaci6n/Captura/PWM EI puerto serial slncrono SSp,.bssp La USART Las referencias de voltaje Los cornparadores Los converso res ND Modos de bajo consumo (sleep y watchdog) Bits de configuracion Programaci6n en el circuiro (in circuit) El conjunto (set) de insrrucciones Las cornunicaciones seriales Otros mic (QCDn troladores
Parallax (Basic Stamp)


En la secci6n de teorfa, se esrudian los fundamentos teoricos y funcionales de los microcontroladores. Esto se refiere a la estructura 0 arquirectura interna de los mismos, asi como a la funcion de cada uno de los rerrninales a pines

• •

• Los registros

de los diferentes dispositivos tratados


en el curse cuyo conocimiento es necesario para disefiar circuitos con estes componences. Se empieza can un repaso sobre el terna de los microprocesadores, los cuales dieron origen a los rnicrocontroladores, y se desarrollan durante las lecciones, los diferenres aspectos tecnicos de esta tecnologia.

• •
• • •


Inrel Armel

Todo aparato 0 proyecto con microcontroladores incluye, adernas de los diferentes circuitos, uno 0 varios programas que se deben encribir en ellenguaje apropiado segun el tipo de microcontrolador utilizado, Este curso le proporcionara Ios conocimientos necesarios para que adquiera la habilidad de programados. Los principales temas tratados son:
.,
p.........

.;

-- -

• '" • • '"
IF IF IF

• '" ., ., ., • •

Prograrnacion de un rnicrocontrolador E1 ciclo de desarrollo de un programa Herramienras de software Programaci6n en modo inmediato Programacion orientada a regiseros Control de flujo de un program a Puertos de entrada/salida Subrutinas Inrerrupciones Programacion en lenguaje estrucrurado Temporizadores Prograrnacion serial Programando los conversores AID y D/A Prograrnacion en lenguaje C T 6picos avanzados de prograrnacion

En esta irnportante secci6n del curso, se entrega • • Indicador binario de 4 bits Alarma para el hagar y el aurornovil Reloj digital y calendario Secuenciador de luees programable Cerradura codificacla Activacion de aparatos vIa telefonica Temporizador universal Aviso lurninoso con diodos LED Luces rftrnicas Corrvertidor paralelo-serial Punta logica Temporizador miniarura Frecuencfrnetro Generador de sefiales Programador de memorias Adquisicion de datos en 16 bits Minirobot con microconrrclador Adquisicion de datos por el puerto serial Tarjera I/O para el puerto serial y muchos otros •..

una arnplia informacion con la eual el alumna podra ensamblar una buena cancidad de proyeetos. Para cada uno de elios se incluye la teorla de funcionamienro, el diagrama esquernatico.]a lisra de rnareriales, las instrucciones para el ensarnblaje y el listado del programa.
Glia de 811Samble TeoI'ia y funclonamlamo


• • • • • • • • • • • • • • • •

Diagrama de bloques

DIairIrnII esquematlco

A quienes va dirigido el curso


E1 tema de los microcontroladores es de gran ucilidad para un grupo muyamplio nas que requieran conocer esta tecnologfa por su gran cantidad de aplicaciones. Los principales grupos de usuarios son: Estudiantes y profesionales Ingenieda y Tecnologlas: de de perso-

• Electronica • Electrica
• • • • • Meclnica Sistemas Bioingenierfa Mecarronica Autornatizacion de cO."_5W.~".~~1SI6iI

• Estudiantes

T ecnicos en: • Elecrronica industrial


• Aurornatizacion • Electr6nicos en general • Alumnos de los cursos de CEKIT S.A. • Estudiantes y profesionales en FISICA, para sus necesidades de instrumentacion Autodidactas
0

aficionados con conocimientos

en:

• Electr6nica Digital
• Microprocesadores

Certillcado
Una vez terminado el curso y aprobada la evaluaci6n que se publicad. al finalizar la obra, eI alumno recibird un Certificado de Apticud Ocupacional otorgado por CEKIT S.A. y aprobado par las
respectivas autoridades educativas. Este certificado acceder a puesros calificados de trabajo. ler perrnitira

MIROOIIIITROlAlllRfl

Otra obra con la calidad editorial y didaCtic a de

Es muy placentero y sarisfactorio para CEKIT S.A. presenrar a rodos nuestros lecrores y amigos, estudianres, profesores, aficionados, tecnicos, profesionales y en general _a la comunidad tecnica internacional, una nueva obra did:ktica en el campo de la electrocon el estilo propio y la merodologfa de "Aprender hacienda" que nos ha caracterizado por tantos mos. Se trata del Curso prdctico sobre MICROCONTROLADORES, el cual tiene como objetivo principal dar a conocer y ensefiar, de una rnanera faeil y agradable, esra maravilJosa tecnologfa. ,

mea

que pueden considerarse como una microcomputadora en un s610 empaqlle, han perrnitido un avance sin par en los ultimos alios en el disefio y la fabricaci6n de todo tipo de aparatos y aplicaciones electronicas. Haciendo un simil can el ser humane, podemos decir que un rnicroconrrolador es un pequetio cerebro electr6nico formado por rnuchos transistores interconectados entre S1 tal como las neuronas y que riene varias zonas con funciones especializadas como la memoria, uno 0 varies circuitos para reeibir informacion de teclados, interruptores y sensores, entre otros, y secciones para activar elementos externos como motores, reles, indicadores sonoros, pantallas, etc.: todo esro coordinado por medio de un program a 0 conjunto de instrucciones, Nunca antes, en la historia de la electronica, un componenre habia perrnitido tanta creatividad y desarrollo de productos de una forma tan facil, en tan corte tiernpo ya costas tan reducidos. Con los rnicroconrroladores es posible disefiar y fabricar casi cualquier apararo que se nos ocurra; el limite esta dado s610 por la imaginacion y nuestra capacidad de hacerlo. Aunque el terna parece dificil y complejo, realrnente no 10 es y para dernostrar 10 contrario, 10 ire mas explicando paso a paso en un lenguaje simple acompafiado de muchas figuras, diagram as e ilustraciones de tal forma que los lectores 10 puedan ir asimilando a su propio rirmo de aprendizaje sin mayores dificultades. Para entender y aplicar esta tecnologia, se requieren conocimientos de Electronica Digital, de los sistemas de numeracion, especialmente del sistema binario y hexadecimal, y nociones basicas sobre los microprocesadores, Sin embargo, durante el curso repasaremos algunos de los conceptos fundarnentales de estos temas con el fin de que los lectores que no los conozcan, puedan comprender mejor cada una de las lecciones.

Los microconrroladores,

La mayoria de los aparatos elecrronicos modernos incluyen una a varios mierocontroladores y de all! la irnportancia y necesidad de este curso en este mundo tecnologieo en el cual nos encontramos, Un reloj digital de pulsera 10 utiliza para contabilizar el tiempo, mostrarlo en una pequefia pantalla y recibir las 6rdenes en los botones para ejecutar diferentes funciones. Una videograbadora 10 utiliza para coordinar sus principales funciones como el encendido yel apagado, el cambia de los canaJes, el avanee y reuoceso de la cinta, las funeiones del control rernoro, etc. En un homo microondas el microcontrolador se encarga de reeibir las ordenes que le damos en el reclado, mostrarlas en la pantalla y aceionar el elernenro que produce el calor en los alimenros.

Pero sin restarle importancia a este tip a de aplicaciones, es en otro campo a donde queremos orientar este curso. Se trata de la utilizaci6n de los microcontroladores en sistemas de control y en el disefio de aparatos aparentememe seneillos pem con una gran cantidad de usos en la vida diaria ya sea enel hagar, en la industria, en la oficina, en el campo a a nivel experimental y sobre coda para ensefiarles a nuestros Iectores como desarrollar su propia aplicacion partiendo de sus necesidades particulates. Para ensefiar

y explicar mejor esta tecnologia, hemos dividido este curso en varias secciones asf

Una seccion de Teoda en donde se presentan los conceptos basicos de los microcontroladores iniciando con su origen basado en los microprocesadores, su estructura 0 arquirectura interna, su funcionamiemo electrico y logico, Ia operacion de sus bloques internes, etc. E[1 fin, toda la informacion necesaria para poder configurar un circuiro con un microcontrolador y entender su funcionamiemo. Una secci6n de Programaci6n en donde se explicara que es un programa de microcontrolador, los diferentes Ienguajes que se utilizan, las tecnicas adecuadas para elaborar programas eficienres, c6mo se lleva al interior del microcontrolador y las principales herramientas de software y hardware para elaborarlos. Esta es una seccion de mucha importancia dentro del curso ya que la programaci6n es donde radica la mayor dificultad de rnuchas personas para acceder a esra tecnologia y por ella, dedicaremos un gran esfuerzo didactico para que codas nuesrros alumnos puedan escribir sus propios program as de una forma co rre eta .. Y para cornplerar la estructura del curso, de acuerdo a la metodologia de CEKIT S.A., hay una secccion de Proyectos y actividades pracricas en clonde se preseman ejemplos cornpleros can aplicaciones de diferenres tipos de microcontroladores. En esta seccion tam bien se induiran los diagramas de pines y las caracterfsticas de los microconrroladores representatives de las principales marcas 0 fabricantes y una explicacion de los componentes y circuitos que los acompafian, desde un simple LED, hasta panrallas de cristal Hquido (LCD), sensores, conversores ND, acondicionadores de serial, etc.

mas

Aunque existen en el mercado una buena cantidad de fabricantes de microcontroladores, cad a uno con una gran variedad de modelos, hemos seleccionado como ejemplos para este curso prindpalmeme los de Motorola y Microchip (PIC) per ser los de mayor difusi6n y aplicaci6n actualmente, can un menor cubrimiento, los de INTEL, ATMEL, PARALLAX y otros, los cuales esperamos tratar en un proximo curso.
Fel.i.pe GonzlI!lez G. Editor General

L
Un microcontrolador (microcontroller, en ingles) es un circuito integrado que contiene toda la estructura de una microcomputadora, 0 sea, CPU (Unidad Central de Proceso), memoria RAM , memoria ROM, circuitos de entradasalida (I/O) y otros rnodulos con aplicaciones especiales. Su nombre nos indica sus principales caracterlsticas: micro por 10 pequefio y controlador porque se utiliza principalmente para controlar otros circuitos 0 dispositivos electrICOS,mecarucos, etc.
• I •

Curso practico sabre Microcontra/adores

dn,fliC"lr.;

0-

Esre maravilloso componente resume, en un solo circuito imegrado, mas de cuarenta afios de tecnologia electronica. Es dificil encontrar en fa actualidad un apararo 0 una aplicacion que no 10 utilice 0 no pueda utilizarlo para optimizar su operacion, Se ha mencionado y eonfirmado m uchas veces que la electronica es la tecnologfa de los componentes. EI desarrollo de cada nuevo dispositive de estado solido trae consigo tecnicas de diseiio diferenres, por 10 general, mas simples. En los afios sesenta, para construir un reloj digital, era necesario acoplar un buen numero de circuitos integrados logicos. AI rnismo tiernpo, el disefiador debia poseer conocimientos muy claTOS sabre cada uno de los elementos, para realizar, con exito, la inregracion.

nexiones, el numero y la cantidad de los diferentes elementos que los formaban a 10 cual se le llama fa logica cableada, figuca 1.1. Con los microprocesadores y ahara con los circuitos Iogicos programables (FPGA), los microcomroladores y los circuiros de DSP (Procesamiento Digital de sefiales), entre otros, es posible modificar cuamas veces se requiera el prograrna, aun en forma remota por la internet, y el circuiro 0 aparato en el cual estan insralados, trabajara de una forma complecamente diferen te sin modificar fisicamente una sola conexion, De esta forma, el lfrnite de los disefios solo 10 establece la imaginaci6n de los program adores y la capacidad de los dispositivos que lancen al mercado los tabricantes especializados en esras tecno.logfas. Consolidadas las recnicas digitales de los afios sesenta, se creo emonces Ja necesidad de profundizar en el estudio y desarrollo de las aplicaciones para los microprocesadores y la programacion en lenguaje de rnaquina 0 assembler. Fue la epoca de oro del 8080, el 8086, el Z-80, el 6809, el 6502, el 68000 Y otros rnicroprocesadores, utilizados como circuiros centrales en las aplicaciones de control. En 1980, aproxirnadarnenre, los fabricames de circuiros inregrados iniciaron la difusion de un nuevo circuito con aplicaciones para control, rnedicion e instrurnentacion, al que llamaron "rnicrocomputadar en un solo chip" 0, de manera mas exacta y concisa: microcontrolador. Para entender mejor la estructura interna, el fucionarniemo y los odgenes de los microcontroladores, repasaremos primero el tema de los microprocesadores.

A partir de 1970, el panorama de la electronica y especial mente el de la electronica digital, cambio radicalrnente cuando aparecio en el mercado un nuevo supercomponeme: el microprocesador. Esto inrrodujo un concepro novedoso que en la acrualidad se eonserva y refuerza cada vez mas, el de la 16gicaprogramada. Antes de los microprocesadores, los circuitos electronicos se disefiaban para una funcion espedfiea la eual no podia modificarse sin cambiar f[sicamente las eo-

.<Z>

Figura 1.1. fjemp/o de un circuito con 16gicacableada

Desde el plmto de vista funcional, un rnieroprocesador es un circuito integrado, 6gura 1.2, que incorpora en su interior una unidad central de proceso (CPU) y to do un conjunto de elementos logicos que per-

ClE4¥rclr.:"curso practico sobre Microcontroladores

Un solo microprocesador, utilizado en el disefio de un sistema digital, puede reernplazar una gran cantidad de circuitos inregrados de pequefia y medianaescala como compuertas,flip-flops, registros, conradores, decodificadores, memorias, sumadores, comparadores, etc, figura 1.3. Esto es ventajoso des de varies puntos de vista: facilidad de disefio, modularidad, versatilidad, flexibilidad, mantenirniento, bajo cosro, confiabilidad, poco consumo de energia, etc.
:1"1- .....•

X2-~. RES~rOLI1f +--1. 500'


Slli}-

Vc~ • .. t--lWllil
.--"f{LM

Evolucioo histOrica e los

-1.

TRAP-

IfST1.s lis:!' 0.5


-

1.
,.
1.

I.
I.

.----+
.--

Cli.K lmn)

• .. --~ t "'~-RfA~'t1

.--.51
.-__-"WR

.. rolM .. Mi

ilm~.5-"""'I.

ADO+-

Am
AIJ2'

I.
. . .
.

__-.AflE __ --I~SIl

AD'41+AIT5
A(ID

Am
VlSS+-

.

Denno de los anales de la electr6nica esta el afio de 1970 como la fecha de invencion del microprocesador. Desde entonees, este dirninuto dispositivo, uno de los adelantos tecno16gicos mas importantes de nuestro siglo, ha revolucionado rodos los campos de la vida humana. Con el microprocesador se inici6 una nueva era de desarrollo de la industria de las computadoras y de la electroriica, la eual hasra el presente ha ido evolucionando con una velocidad que aun serprende incluso a los visionaries mas fururistas. Nadie en esa epoca se imaginaba el impacro tan grande que causarla este desarrollo en la vida del hombre

moderno,
Figura 1.2. Microprocesdor 8085

rniten enlazar orros dispositivos como memorias

y puertos de entrada a de salida (I/O), formando


un sistema complete para curnplir con una aplicacion espedfica dentro del mundo real. Para que el sistema pueda realizar su labor debe ejecutar paso a paso un programa que consiste en una secuencia de nurneros binarios 0 instrucciones, almacenadas en uno 0 mas elementos de memoria, generalmente externos al mismo. La aplicaci6n mas imporrante de los microprocesadores y que cambi6 rotalmenre la forma de trabajar, ha sido la eomputadora a rnicrocompuradora. personal

Los aparates elecrronicos que utilizan microprocesadores, entre ellos las cornputadoras personales y de escritorio, figura 1.4, han cambiado totalmente la forma de trabajar e inves-

Figura 1.3. Tarjela con circuitos integrados individuates vs un Microprocesador

Curso practico sobre Microcontroladores

'IC'T..:.~

~A

<=

presa, Shockley Semiconductor Laboratories, dando nacimiento a una nueva era en la industria electronica y a La ubicacion de esta tecnologia en un sirio de California cereano a San Francisco que tarde se llam6 Silicon Valley 0 Valle del Silicio. En esta compafifa se iniciaron los principales cientificos e ingenieros que mas tarde formarlan sus propias empresas y desarrollarfan los circu itos in regrados y los microprocesadores.

mas

Figura 1.4. Gomputadora personal y su tafjeta principal

tigar de los seres humanos, Ninguna herramienta anterior desarrollada por el hombre le habfa dado tanto poder para crear otras yacelerar su evolucion en todos los campos. Para asirnilar mejor el desarrollo de esra tecnologfa, retrocedamos un poco en la hisroria de la elecrronica, sus componentes y aplicaciones. Sin lugar a dudas, la senda la abrio el invento del rubo de vado por Lee De Forest a comienzos del siglo, basado en el descubrimienro de un fenorneno llamado Efecto Edison. Este dispositive hizo posible la radio, la telefonla, la telegrafia inalambrica, etc., e impulse el desarrollo comercial e industrial de la electronica, Inclusive las primeras cornpucadoras eran fabricadas con tubes de vado. Luego vino la revolucion del transistor, desarrollado en los laboratories de Bell Telephone en 1948 y utilizado a partir de 1950 a escala industrial, con su inclusi6n en la fabricacion de todo ripo de aparatos de radio, television, sonido, computadoras y en la industria rnilitar y espacial, entre otras aplicaciones, De los tres inventores del transistor (W. Brattain, W Shockley y J. Bardeen), figura 1.5, Shockley fue el unico que se dedico a desarrollar rnetodos de fabricaci6n en serie de este revolucionario dispositive en su em-

es el maximo exponeme de la erapa siguiente al transistor: la recnologia de los circuiros integrados. El concepro de circuito integrado, figura 1.6, ernpezo a rondar por los cerebros y memes prodigiosas de quienes trabajaban en el disefio y fabricacion de transistores. El planteamiento fue mas 0 menos el siguiente: si se fabricaban transistores en forma individual y luego se tenlan que unir siernpre de la misma forma entre sf can alambres y con otros componentes ~por que no fabricar de una vez todo eJ conjunto de material semiconductor y aislame, interconecrado internamente para que cumpliera Ia misma funcion del sistema total? Este planreami ento fue desarrollado en la practica sirnulraneamente, pero en forma independiente, por dos empresas muy irn-

EI microprocesador

Figura 1.5. EI transistor y sus inventores

portantes en la historia de la electr6nica: Fairchild Semiconductor y Texas Instruments. En Fairchild dirigia el equipo de trabajo Robert Noyce, y en Texas Jack Kilby. Como anecdota, podemos mencionar que los primeros ci rcui tos in tegrados salieron al mercado en el ana de 1959 a un precio de 450 d6lares y solamente inclufan cuatro transistores y varias resisrencias. Actual mente, un circuito integrado cuestaenrre lOy 20 centavos de dolar y un microcontrolador sencilIo, can muchas mas prestaciones, puede costar hasta un do lar 0 menos en escalas industriales. La explosion de los circuiros inregrados desde el ana 1960 hasta la fecha, ha perrn itido el desarrollo de la electron lea en una forma sorprendente. a [a Fairchild en 1968 y de Gordon Moore y Andrew Grove y con el respaldo econornico de Arthur Rock, la empresa Intel en donde se die ron los primeros pasos para el desarrollo del rnicroprocesador. Esta comparua empez6 a vislumbrar un gran rnercado en el area de las cornputadoras y su investigaci6n se oriento hacia el reemplazo de los circuitos de memoria magneticos can ruicleo de ferrita, pOI circuitos de memoria basados en serniconducteres. La base tecn ica consisti6 en el uso de un simple flip-flop como elememo de memoria. As! se creo el primer circuito de memoria tipo RAM llamado el 1103, con una capacidad de 1024 bits. Noyce renunei6

Despues de un largo trabajo, se llego hasta lograr que redo el circuito fuera reemplazado par rres chips, pero estos resultaron ser de un ramafio mayor de acuerdo a los requerimientos. A Hoff se le ocurri6 que debia agrupar coda la pane de proceso aritrnetico y 16gico en un solo circuito y el resto de la calculadora en los otros dos circuitos, Con la intervencion de otro disetiador, Federico Faggin, el proyeero se llev6 acabo con todo exito, A esre circuito, de 2250 • elementos integrados en un area de 3 x 4 milfmetros, se le llam6 microprocesador. Tambien se Ie dio el nombre de CPU (Centra! Processing Unit) a MPU (Micro Processing Unit). Aunque este circuito tenia rnuchas de las caracterfsticas de una unidad central de proceso integrada, el primer mieroproeesador en un s610 chip, fabricado como tal, fue el 4004 de Intel, disefiado para reernplazar gran des cantidades de eircuitos integrados TTL EI 4004 era un chip muy sencillo que rnanipulaba datos de cuatro bits. Intel desarrollo muy promo, en 1972, el 8008, el cual podia procesar datos de ocho bits. pero era muy lento. Para remediar esto, Intel desarrollo un sustiruto, elB080, y posteriorrnente el8085, corn-

ya

fundo, en eompafiia

El disefio del rnicroprocesador se inicio en un grupo de trabajo de Intel dirigido pOI Ted Hoff, un brillante ingeniero egresado de la Universidad de Stanford. Todo ernpezo cuando Intel se decidi6 a firmar un contrato con una compaiifa japonesa fabrieante de ealculadoras (la desaparecida Busicom Corporation). Esta querfa-que se les fabricara un conjunto de circuiros integrados que reernplazaran la gran cantidad de componentes que tenfan las calculadoras de ese entonees.

Figura 1.6. Estructura intems basica de un circuito integrado

patible con el prirnero, con funciones adicionates y menos circuitos de soporte. Un equipo de disefiadores que antes babia trabajado para Intel en el 8080 forrno la Zilog Inc. y construy6 el rnicroprocesador Z-BO, el cual incorporaba un conjunro de instrucciones ma~ extenso que el8080, aunque era compatible con este ultimo. Este microprocesador ha sido uno de los mas utilizados en el campo de control. Por la misrna epoca en que se presenraba a] mercado el 8080, otra empresa de serniconductores, Motorola, desarrollo el 6800, un microprocesador de 8 bits con un disefio completamenre distinto pero con iguales caracterfsticas, Motorola perfeccionoel tidflf) hacia el 6809, considerado como uno de los mejores procesadores de 8 bits de todas las epocas. A pesar de sus excelenres caractedsticas, el 6809 no tuvo el exira comercial que se esperaba. Dicho exito 10 obtuvo otro derivado del 6800: el 6502, producido por MOS Technology. Con este microprocesador se fabricaron las prirneras compuradoras personales como 1a PET de Commodore y la Apple II de Apple Computer Inc. A partir de ese momento, se establecio una guerra tecn ica y comercial, que aiin subsiste, entre Intel y Motorola, la cual los ha llevado a ser 10.s dos grandes lideres indiscutibles del mercado de los microprocesadores. Pero el desarrollo del microprocesador no se quedo ahi. A principios de la decada de los 80, empezaron a aparecer los microprocesadores de dieciseis bits, rnucho mas potentes. E1 prirnero en salir al mercado fue el 8086 de Intel en 1978, el cual fue adoptado por la IBM para la fabricacion de su famosa IBM Pc. Lo siguieron de cerca e1 68000, el 68020, el 68030 y el68040 de Motorola. Con esros 111,icroprocesadores se inicio en Apple una nueva familia de microcomputadoras: las Macintosh. Luego, en un consorcio entre Apple, IBM y Motorola se desarrollo una nueva fa-

mila de microprocesadores: los Power PC los cuales se urilizan en las computadoras Apple e IBM actuales. Por los lados de Intel se desarrollaron el 8088 utilizado en el IBM XT, el80186, el80286 utilizado para la IBM AT, el 80386, el 80486 y los Pentium. Todosestos microprocesadores de Intel han sido ucilizados para la fabricacion de microcornputadoras de bajo cosro llamadas clones, 10 que ha hecho que esta empresa siga siendo el mayor fabricante de microprocesadores en el mundo. La siguiente generacion Fueron los Pentium II, Pentium III y actualrnenre los Pentium IV con los cuales se han logrado velocidades de procesamiento impresionantes y una enorme capacidad de memoria, 10 que los hace apropiados para moverse sin problemas en entornos como la internet el video, la multimedia, el procesamiento de datos y el trabajo en ri empo real.

L
Denrro de los microprocesadores de la plataforma PC, actualrnente podernos rnencionar los productos de las firma Inrel, AMO, Cyrix y Digital. Las referencias mas novedosas son el Pentium IV, el Althon el 686 MMX y el Alpha, respectivamente, figura 1.7,

<:>

Figura 1.7. Microprocesadores modernos

GE'JfIi[',I'1I:.: Curso practico sobre Microcontro/adores

Son los circuiros inregrados que revolucionaron la e1ectr6nica al permitir el disefio de todo tipo de aparatos programables. Aunque su principal aplicaci6n son las computadoras personales, tambien se encuentran en la mayoria de los circuitos de control.

Curso praclico sobre Microcontroladores

GIID~lz;..

.4<

EI microprocesador. coramn de las computadoras


Una cornputadora digital es un equipo especializado en el procesamiento de informacion, cuyo principio de funcionamienro es relativamenre sencillo, si 10 vemos des de el punto de vista de los bloques que 10 conforman. Cada uno de esos bloques esta formado por varies circuitos integrados faciles de enrender, la parte compleja la encontramos cuando estudiamos el interior de dichos circuitos, pero esto en realidad no es de mucho interes para el usuario comun, Una cornputadora digital se compone de tres bloques fundamentales, figura 2.1: una unidad de entradas y salidas, una CPU y una memoria. A su vez, la unidad de entradas y salidas se divide en un bloque de entrada y otro de salida .. Del mismo modo, la CPU se divide en una unidad arirmerico-logica (ALU), y una unidad de cootrol yel bloq ue de memoria en memoria RAM y memoria ROM, obteniendose seis bloques a unidades con funciones muy especfficas, figura 2.2, euyas funciones describiremos a continuacion. La unidad de entrada es qui en recibe informacion del mundo exterior, ya sea de un operador hurnano 0 un fenomeno fisieo; esta unidad permire llevar esa informacion hacia la unidad de memoria para poder procesarla posreriorrnente; dispositivos de entrada son, POt ejemplo, los teclados y el raton. La unidad de salida entrega los resultados del procesamiento al mundo exte-

IJl1i~adde Entrada/Salida

Mlcroprocesador

o CPU

Unidad de Memoria

Figura 2.2 Estructura general de una computadora digItal

rior. Esta informacion se lleva desde la unidad central de proceso 0 CPU, hacia circuitos 0 aparates externos llamados perifericos que se encuentran fuera de la computadora, por ejemplo monitores, impresoras 0 parlantes.

La unidad de memoria se encarga de almacenar los datos y los programas que operan sabre esos datos y es una de las mas irnportantes de una computadora, Se distinguen dos sistemas diferentes de memoria: la de almacenamiento primario y la de almacenamiento secundario. La memoria de almacenamienro primario se refiere a los circuitos que guardan los programas que se van a ejecutar y los datos que se necesitan durante la ejecucion de estes programas, y la memoria de almacenamiento secundario, se utiliza para alrnacenar gran des canridades de datos que no se requieran con frecuencia para la operacion de la computadora. Sistemas de este tipo son los discos duros y los discos de 3.5". Dentro de la memoria de almacenamiemo secundario se distinguen tres categodas: la ROM (Read Only Memory) 0 memoria de solo lectura, donde se almacenan cierto tipo de programas como el del sistema de arranque de una computadora (BIOS); la RAM (Random Access Memory) o memoria de Iecrura y escritura, donde se alma-

Figura 2. 1 B/oques prine/pales de una eomputadora digital

cenan los datos que los programas van gene rando y la cache que es una memoria RAl.\I1 con tiernpo de acceso muy rapido donde se mantienen los datos mas utilizados durante la ejecuci6n de un programa.

de lineas de entrada (N); los proeesa de acuerdo a las instrucciones secuenciales de un prograrna almacenado en su memoria, y surninistra 0 escribe los resultados del proceso en un cierto mime[0 de llneas de salida (M), figura 2..3 Los datos de entrada pueden provenir de interruptores, sensores, convertidoresND, ted ados, etc. Los datos de salida pueden estar dirigidos a actuadores, inclicadores o displays, pantallas, convertidores DIA, alarmas, impresoras, etc. El prograrna almacenado determina como deben sec procesados los datos de entrada y, en consecuencia, que informacion debe enviarse a las Iineas de salida.

La unidad central de proceso (CPU: Central Processing Unit) reune la unidad de control y la
unidad aritrnetico-logica en un solo bloque. ES[a Ultima tarnbien se conoce como ALU (Arithmetic Logic Unit). En la practica, la unidad central a CPU se encuentra en forma de un circuito inregrade Hamada microprocesador. Dentro de esta CPU, la unidad de control se encarga de la interpretacion y ejecucion de las insrrucciones del programa. Tarnbien control a todos los componentes de una computadora par media de lineas de conexion llamadas buses. La ALU se encarga de realizar las operaciones 16gicas y aritmeticas, Las principales funciones arirrneticas realizadas en la ALU incluyen la AND, la OR,. la EXOR y Ia cornparacion. Como hemas visto, el microprocesador es q uien Ileva a cabo las principales funciones de un sistema de compute, y quien integra a los demas componentes y ejecuta las instrucciones. Es por eso el principal componente de una cornputadora,

Funclonamiento del microprocesador


Desde un punto de vista conceptual, un microprocesador ideal es un dispositivo digital que acepta 0 lee datos aplicados a un cierto numero

El soporre fisico de las instrucciones del programa es la memoria, la cual almacena los datos para que sean procesados. En un momenta dado, los niveles I6gicos (unos y ceres) de [as lfneas de salida de un rnicroprocesador, dependen no solamente del programa en sf sino tambien de la hiscoria de las seriales de entrada hasta ese momento. Mientras que en W1 microprocesaclor ideal no existen restricciones respecto al ruimero de entradas y salidas, los microprocesadores reales s610 pueden acomodar un numero limitado de term in ales 0 pines para estas funciones. Como veremos mas adelante, para simplificar el mirnero de pines, la mayorfa de microprocesadores utilizan las mismas lineas para la entrada y salida de datos.
De otro lado, mientras que un microprocessdor idealtiene, teoricamente, una memoria interna ilirnitada, los microprocesadores reales solo disponen de una cantidad limitada para almacenar

r::~~~.~~; .->~~~ ~~:::..~


~/J < • ": '.~ .'.

-~

';'

:?;"~
Registro de 8 btts

10111001

~~~§\~;;?; \%i;;J-ry~.~~~~\~~1~~~~ "?l?f\I''.:".t~~.:::::(le. ~~~~;.~,.. '1~ f~\t:".:}.- ~ ~ '( <.~._\.,J.:'ll~:" t EI mrcroprtcesanor (Ideal) es un disposi~vo con N Iineasde entraea, M Iineas de salida y un programa almacenado

;r1t·~r%'",~ \
'
,

~~y~~.

~~;!iR;.1_·~,~\~ t""t.;.,;,1;.,,~~~ ~~~~. ....

110

01

°10

i
,
,

11,01011000

Regi81m ,de 16 bits Figura 2.4 Registros de un microprocesador ClIrso pnictico sabre Microcl1IItraladtHes ~

Figura 2.3 EI microproclJsador ideal

IT.;

datos e instrucciones. Por esta raz6n, un microprocesador debe tener la posibilidad de cornunicarse con una memoria externa ..Para lograrlo, necesita disponer tambien de un conjunro de lineas de selecci6n 0 direccionamiento adicionales. Final m enre, para sincronizar su operaci6n con la de los componentes externos conectados al mismo y tener un comrol global de los buses de datos y direcciones, un microprocesador necesita disponer tambien de un conjunto de lfneas de control. Por tanto, un microprocesador

requiere de un bus de datos, un bus de direcciones y un bus de control para comunicarse con los dernas componentes. Naturalmenre, el microprocesador ideal (un dispositive con s610 entradas y salidas y un programa almacenado en el) no existe, Sin embargo, la tendencia de los nuevas disefios es incluir cada vez mas funciones en una rnisrna pastilla, incluyendo unidades de memoria e interfaces entrada/salida como en el caso de los microcontroladores.

A15 ~ Bus de direcciones

Figura 2.5 ArQuitectura interna de un microprocesador 8085 de Intel

un
La organizaci6n inrerna de un microprocesador, es decir, su arquitectura, varia notablemenre de un dispositive a otro. Por esta razon, es dificil definir un modelo de rnicroprocesador que represente todas las alrernativas posibles puesro que cada uno tiene una logica de funcionamiento propia, La arquitecrura, y especialmente el tipo, mimero y organizacion de los registros internos, es una consideracion importante ala hora de elegir un rnicroprocesador para una aplicacion determinada. Un registro es una posicion de memoria conectada a la CPU donde se pueden retener cifras binarias. Esta formado por elementos logicos (compuertas, flip-flops, etc.) que, a1 ser eornados en conjunto, pueden almacenar mimeros binarios de 4 8, 160 bits, figura 2.4. Se utilizan esencialmente para alrnacenamiento temporal, en el que eI comenido cambia continuarnente,

pretar y ejecutar las instrucciones rna almacenado en la memoria.

del progra-

Desde un punro de vista conceptual, la accion de leer e interpretar las instrucciones la realiza una parte del microprocesador denominada unidad de instruccion y su ejecucion corre a cargo de otro circuito especializado dentro del rnismo denorninado unidad de ejecucion, figura 2.6
Unidad central de procesamiento (CPU) G microprooesador

mas

Esto no implica que se deba conocer con demasiado detalle, como funciona internarnente un microprocesador para poder utilizarlo. Existen partes y funciones que normalmente deben estar presemes: un reloj, una AlU, varios registros, un contador de programa, etc. En la figura 2.5 se muesrra un ejemplo de la arquitectura interna de un rnicroprocesador simple, el8085 de Intel. Por ejemplo, el reloj 0 circuiro de oscilacion puede estar 0 no incorporado en el microprocesador, pero es absolutamente necesario puesto que tiene la rnision de sincronizar todas las operaciones de debe realizar el dispositive. Del rnismo modo, para ejecutar un programa, un rnicroprocesador debe tener en su interior registros que le perrniran almacenar informacion, realizar lecturas, rnodificaciones a los datos, etc.

Figura 2.6 Unidades de instruccion y ejecuci6n

La unidad de ejecucion, a su vez, contiene una


unidad aritmetico-logica a ALU y un conjumo de registros auxiliares. La ALU se encarga de realizar una gran variedad de operaciones aritmeticas y 16gicas, y los registros de almacenar temporalmenre informacion. Las distintas funciones realizadas par el microprocesador quedan especificadas por su conjunto de instrucciones.

OperaciOn b8slca de un

- ·croprocesa

Analizando un sistema de compute, nos damos cuenta que el microprocesador 0 CPU es la parte del sistema encargada de leer, inter-

La unidad de insrrucci6n lleva la


cuenta de las posiciones 0 direcdones de memoria donde se encuentran las instrucciones que el microprocesador necesita en cada instante. Normalrnente, las instrucciones se leen y ejecutan
en el rnisrno orden en que fueron almacenadas en la memoria. Sin embargo, la presencia de instrucciones de control de programa puede alrerar la secuencia de ejecuci6n de estas instrucciones, Para llevar la cuenta de las direcciories de las instrucciones, la

Reg istro de status (condici6n de estacoj

Contador del programa

Registro de lnstrucelonas

unidad de instruction incorpora un registro especial Hamado contador de programa a PC (Program Counter) ... Cada vez que se lee una instruccion, el contador de programa
se incrementa auto mar icarnenre para surninistrar la direccion de la posicion de memoria donde se encuenrra Ia siguiente instruccion 0 dato del programa.
Bus de datos Bus de dirscciones Bus del sistema hacia la memoria principal y dlspositivos de E/S Figura 2,7 Arquitectura de Bus de control

un microprocesador

genenco

Cada vez que un microprocesador recibe una instruccion, la almacena en un registro

interne del rnismo llamada registro de instrucciones con el fin de pro ceder a su decodificaci6n 0 interpretacion y buscaren la memoria ROM el conjunto de rnicroinstrucciones necesarios para su ejecucion. Esta funcion la realiza un circuito denominado decodificador de instrucciones, Adernas del coritador de programa y d registro de insrrucciones, un microprocesador contiene usualrnente otros registros para facilitar el acceso a las instruccio nes y a los
datos ..Algunos de esros registros son programables en el sentido de que su conrenido puede ser alterado por software (instrucciones) mientras que arras son inaccesibles des-

La mayorfa de los microprocesadores, par ejemplo, incluyen un registro especial Hamado acumulador (Registro A) que es utilizado por muchas instrucciones como Fuente 0 destine de datos. Tambien es muy cormin la presencia de un regisrro de estado que surninistra informacion relativa a laejecucicn de ciertas instrucclones como sobreflujo, paridad, generacion de acarreo, resultado negativo 0 cera, etc. Muchos rnicroprocesadores poseen tarnbien un conjunto de registros de proposito general que pueden ser utilizados para almacenar direcciones de memoria, datos, resultados intermedios y otros propositos, El mimero y tipos de registros que posee un microprocesador, es una parte muy importante de su arquitectura y programaci6n. En fa figura 2.7 se rnuestra un modele ge~ nerico de microprocesador que ilustra los con-

de el puma

de vista de programaclon y su con tenido s610 10 puede determinar y consulrar el microprocesador.

ceptos anrenores.

Ir.;,.

Curso practico sobre Microcontroladores

Estructura de buses de un
En la figora 2.8 se muestra laesrrucrura de buses generalizada de un microprocesador. Externamente, el dispositivo cuenta con un bus de datos, un bus de direcciones y un bus de control. En las siguientes secciones decribiremos la funci6n y las caracterfsticas de cada uno. Adernas de estos tres buses principales, un microprocesador debe disponer tambien de un bus de alimentacion, el cual haee lJegar la corriente de la fuente a sus disrinros componentes internes,
.w
Q}

ceden siempre de fa memoria rnientras que los datos que procesa u obtiene el programa de instrucciones, puede provenir de 0 ir hacia la memoria 0 los modules de entrada/salida. Generalmente, el numero de lfneas de entrada es igual al mirnero de llneas de salida. Este numero define la longirud de la palabra de datos del microprocesador. Son comunes longitudes de palabra de 4, 8, 16, 32 y 64 bits. En la figura 2.4, por ejemplo, se rnuesrra un microprocesador de 8 bits. En este caso, tanto el bus de datos de entrada como el bus de datos de salida can de un byte, es decir de ocho (8) bits. El mirnero total de pines asignadoen el circuito integrado del bus de datos puede reducirse practicamente en un 50% si se utilizan los mismos puntas de conexion tanto para los datos de entrada como para los datos de salida, perc no para ambos simultaneamente. El bus de datos asf constiruido es bidireccional en elsentido dequela informacion puede circular entrando 0 saliendo del microprocesador. La forma de representar un bus de datos bidirecciona] para un microprocesador de N bits se ilusrra en Ia 6gura 2.9

Bus de control

Erltradas de control Salidas de cornrol Fuente de anmentacien

'C::'

'"

-~

... ~.§
co: ~ '6
:::)c..::!

Figura 2.8 Estructura de tuses generalizada

Las lfneas de los buses de un microprocesador

transportan voltajes que representan mimeros binarios (1's yO's). El microprocesador, los puertos de entradalsalia y 1a memoria, responden unicamente a esos rnimeros binarios codificados elecrronicamente, S El bus de datos lleva datos e insrrucciones hacia y desde eI microprocesador. Las instrucciones pro-

Un bus bidireccional puede construirse con compuertas hi-state para controlar Ladireccion del flujo de informacion. La figura 2.9 (a) represema un microprocesador de cuarro bits con un bus de datos bidireccional. En la figura 2.9 (b) se rnuestra la configuracion de una linea de bus bid.ireccional. Las lineas de seleccion Sly SO proceden del bus de control.
DBOUT

Data OUT

02
Data IN 01

8QB

DBIN

DO

S1-+--

~_~-----~

so_.------------~
(a) (b)

BDB:' Linea. de bus direcctonal de datos I]BOUif: Control de salida de datos DBIN: Control de entrada de datos S1. SO: Control de bus HOLDA: Control de garantia de bus (alta lmpedancaj

Figura 2~9 (a) Microprocesador de 4 bits con bus de datos bidir8ccionaf. (b) Linea de bus btdirecctonal. Curso practtco sobre Mlcrocontrolado.res

CIII."'''.~.lr.;_

-0

salida desde a hacia el bus de datos se realiza, respectivamente, con S 150 = 10 y S 150= a 1. La linea de bus puede inhabilirarse can 5 ISO = 00 para impedir cualquier transferencia de informacion entre el bus de datos y ei microprocesador.
0

La transferencia de datos de entrada

EI bus de dlrecclones. Espacio de memoria


EI bus de direcciones conriene la informacion digital que envia el microprocesador a la memoria y dernas elementos direccionables del sistema para seleccionar una posicion de memoria, una unidad de entrada/salida 0 un registro particular de la misma. El mimero de lfneas disponible en el bus de direcciones (n) dererrnina el tarnafio maximo de memoria que puede set acomodado en el sistema (2n).

Las llneas de seleccion pueden utilizarse para informar a los modules externos que companen el bus de datos el estado del bus bidireccional en un mornento dado. Este es el proposito de las lineas marcadas como DBOUT (bus de datos en el modo de salida), DBIN (bus de datos en el modo de entrada) y HOLDA (bus de datos en estado de alta impedancia) en fa figura 2.9 (b). La informaci6n comenida en el bus de datos puede representarse numericarnente de varias formas: binaria, octal y hexadecimal, principalmenre, Considerese, por ejemplo, un microprocesador de 8 bits can eI byte 10111011 en las lfneas D7 a DO del bus de datos, siendo 07 el bit mas significativo o LSB y DO el bit menos significarivo 0 LSB. Esta palabra de datos represenrada como un mirnero binario es simplemente 10111 0 11 (B) 0 10111011 (2), representada como numero octal es 273Q 62738 y como mimero hexadecimal (la mas usada) es BBH 0 BB 16. La forma de convertir numeros binaries en octales 0 hexadecimales y viceveresa se explicara en detalle en la secci6n de programaci6n. Los sufijos B,Qy H, y los subindices 2,8 Y 16 enfatizan el sistema numerico (binario, octal y hexadecimal) de cada presentacion. A pesar de que el sistema hexadecimal proporciona una forma muy compacta y concisa de expresar el contenido de un bus de datos, no podemos olvidarnos completamente de la representacion binaria. En una aplicacion real, esta ulrima nos perrnite identificar facilmente, pot ejernplo, cual interrupter ha de ser abierto 0 cerrado en un rnornento dado para obtener una condici6n de entrada espedfica 0 cual lampara ha de ser energizada para obtener un efecto de salida determinado.

Asi, par ejernplo, un microprocesador can un bus de datos de 8 bits y un bus de direcciones de 16 bits (tfpico) tal como el Z-80 puede
manejar directamente una memoria de 216 65536 (64K) posiciones, cada una conteniendo un byte (palabra de 8 bits).
'"

Naturalmenre, una vez seleccionada una posicion de memoria, el microprocesador debe estar en capacidad tanto de almacenar informacion en esa localizaci6n (operacion de escritura) como de extraerla (operaci6n de lectura). La cantidad de memoria utilizada en un sistema con microprocesador depende de la aplicacion especffica yes a menudo inferior a la maxima que puede manejar el bus de direcciones. EI conjunto complero de localizaciones de memoria a las que puede tener acceso un microprocesador, se denomina espacio de memoria. Ast, por ejernplo, el espacio de memoria de un microprocesador de 8 bits con un bus de direcciones de 16 bits (par ejemplo el8080) es simplemente 216 = 64K. En el caso de un microprocesador de 8 bits can un bus de direcciones de 16 bits, el espacio de memoria puede ser visualizado graficamenre como un mapa de 65536 direcciones de memoria, eada una conreniendo un byte, la mas baja de las cuales es OOOOH y la mas alta FFFFH, Figura 2.10

FFFF

FOOD EOOO
0000

HlOO

cOoO BODO AOOO


9000
64 K

tema upico basado en microprocesador. Note que consra de cuatro elementos p rinci pales: una memoria, un microprocesador, un puerto de entrada y un puerto de salida.

8000
7000 6000 5000

E1 rnicroprocesador esra conectado a todos los


otros componentes
04£)0r---~
----.-

4(JUO
3000

a tra-

mm2
OClO1

conjumamente con las del Bus de direcciones, deter0000 0000 minan que elementos se comunican con el microFigura 2.10 Espacio de memoria procesador en un momenNote que Ja direcci6n de memoria se incremento dado. Estos tres buses configuran el bus del sista en 1000H cada 4K (=4096) direcciones de espatema y el gobierno del rnismo es responsabilidad cio de memoria. Observe tambien que cada 1K del microprocesador. (= 1024) posiciones de memoria, la direcci6n de memoria se incrementa en 400H. La memoria puede La secuencia de insrrucciones que consdividirse tarnbien en paginas de memoria, cada una tituyen el programa que debe ejecutar el miconriene 256 palabras y cubre 100H direcciones de croprocesador estrin almacenadas en un area memoria. Hay, por tanto, 4 p:lg:inas en lK de mede la memoria. En el mo mento de iniciar el sistema, el microprocesador situa en el bus moria. Las direcciones en la pagina de mas bajo orde direcciones la direcci6n de la posicion de den van desde OOOOH hasta OOFFH, en la siguieme desde OIOOH hasta OIFFH, y as! sucesivamente. memoria donde se encuentra la primera instrucci6n. Como resultado, la memoria enrrega
1K
L... _

:-.----;.

2000 1000 DODO'

_l

ves del Bus de datos. Las sefiales del Bus de control,

D100----l

1 pagina+

.'

El bus de control contiene la informaci6n que envfa el microprocesador los elementos del sistema 0 bien la recibe de estos con el proposito de sincronizar la operacion de los circuitos externos, El mimero de lineas del bus de control es variable y depende del microprocesador particular utilizado.

Org Hizae· e un sistema basado en


En la figura 2.11 se muestra la
estructura organizativa de un sis-

[Iesde dispasitiltos, Haea dispasJtivos ce entrada ds sallda Figura 2.11 Diagrama de blooues de un sistema basado en un micmprocezsoot

esta informacion en el bus de datos. Despues de interpretar y ejecutar la primera instruccion, el rnicroprocesador busca la siguiente instruccion, 1aejecuta y aSI sucesivarnente. La generaci6n de la serie de instrucciones necesarias para que el microprocesador realice una tarea determinada, es 10 que se denomina su programaci6n.

Las insrrucciones que constituyen un programs se almacenan en la memoria del sistema como patrones de unos y ceros, organizados en grupos de 8, 16, 32 y mas bits, dependiendo de la longitud de la palabra de datos del microprocesador.

Secuencia de operaciOn de un sistema basadoen n ·crop OCNado


Hasta aqui hem os visto la arquitectura generica de un microprocesador y de un sistema basado en uno de estos dispositivos; ahora analizaremos con mas detaUe los pasos que sigue un sistema de esta naturaleza para ejecutar las instrucciories contenidas en un programa y aprenderemos como trabajan en conjumo cad a uno de los bloques del sistema para desarrollar estas tareas. es un dirninuro conjunto de miles 0 millones de elementos 16gicos e interconexiones diseriado para responder a las insrrucciones de un programa, el cual le indica 10 que debe hacer en cada instante. Sin un programa que le de vida, un microprocesador y todo el hardware conecrado a su alrededor, seria una masa inerte de componentes electroriicos sin un objetivo especffico. De hecho, la funci6n primaria de un rnicroprocesador es ejecutar programas.

PALABRA: Es un grupo de bits que se traran como una sola unidad. EI mas cornun es el byte, el eual esta formado por ocho (8) bits.

I J

Cuando se trabaja con un microprocesador, es importante comprender su conjunto de instrucciones y ser capaz de utilizarlas en la elaboracion de programas; se debe entender la forma como el microprocesador las ejecura yadquirir la habilidad para ernplearlas eficienrernenre en la manipulacion de datos. Para ejecurar las operaciones indicadas por una instruccion, el microprocesador debe empezar por direccionar 0 encontrar la posicion de memoria donde se encuentra la instruccion, leerla y decodificarla 0 interprerarla por medio de sus circuitos internes. Los pasos anteriores constituyen 10 que se denomina ciclo de instruccion: Durante su operaci6n normal, un microprocesador no hace otra cosa que ejecutar repetidamente ciclos de instrucci6n.
Instrucciones, datos 0000 0001

Un microprocesador

(En hexadecimal)

DlrecciollfS

InstrucciOnes, dato (En binario)

Dlrecciones 0000 0000 0000 0000

--+--+-

1 0

0 0

1 0 0 0 0 0 1

a
0 1

1 0

o o
0 0 0

o
a
0000
Q{)OO NOTA: 0010 0000

0 0 0 1

1 0 0 1

0 ()

0 0

0 0

0110
0011

--+--+-

0
0

0
1

(DGBA) en 18posicion de memoria 2040H.

Este programa Galcula un numero y 81macena el resuIIMQ

Ol00

0000
1111

--+--+-

o! 0 i 0 i o.j~
X

..

a
0

I x I x I x I x I x 1x I x

Figura 2.12 Ejemplo de un programa en lenguaje de maquina

Oirecciones (En hexadecimal)

ContenidD Instruccion, data (Hex)

0 0 0 0

0
0 0 0 0 0 0

0
0

BO 01
E6

0
0

0 0 0
0 0

OF 32
40

0
0

20 76

Figura 2.13 Ejemplo de un programa objeto

dor (opcodes) y datos sobre los cuales ha de operar el rnismo. Cada c6digo de operacion le indica, directa a indirectamente at microprocesador, la direcci6n de memoria donde se encuentra alrnacenada la siguiente instruccion ejecutable. AI recibir un c6digo de operacion, los circuitos internes del microprocesador 10 descifran. La informacion obtenida perrnite al dispositive identificar la naturaleza de los bytes que siguen al opcode.

Para ejecutar un programa, un microprocesador debe tenerlo almacenado en forma biEl conjunto de c6digos de operacion (opconaria (patrones de 1 y 0) en posiciones adyades) a los cuales puede responder un rnicroprocecentes de la memoria de programa del sistema. sador, constituye su conjumo de instrucciones Esta forma binaria del prograrna se denornina (Instruction Set) . Cada rnicroprocesador riene su lenguaje de mdquina yes el unico lenguaje que propio conjunro de instrucciones, cada una reentiende el microprocesador. En la figura 2.12 presentada por un opcode difereme. El mirnero se muestra un ejernplo de un programa en lenmaximo de codigos de operaci6n que puede desguaje de rna quina para un microprocesador cifrar un microprocesador es igual a 2 N, siendo 8085. Para evitar la confusion que, desde e1 N el tamafio de la palabra de datos del mismo. punta de vista del programador, puede generar una larga Iista de unos y ceros, estos cediLas insrrucciones de un microprocesador gas se pueden representar en forma hexadecipueden agruparse en tres grandes categorfas semal, consrituyendo 10 que se denomina un progun su funcion: la primera son las instrucciograma 0 codigo objeto. En otras palabras, un co- nes de rransferencia de datos, las cuales muedigo objeto es, simplernente, una representayen informacion sin alterar su contenido de una cion abreviada de un programa en lenguaje de parte a otra del sistema; la segunda categoria es maquina, flgura2.13. Par ejemplo, 10llU 01 la de procesarniento de datos; estas insrrucciose representa como BD, 00000001 como 01, nes transforman la informacion desde el puntO 11100110 como £6,0000 1111como OF, etc .. de vista l6gico 0 arirrnctico; y la tercer categoria, son las instrucciones de control de prograNo todos los codigos de un programa obrna, ell as determinan la secuencia de ejecucio n jeto a en lenguaje de rnaquina, corresponden de las instrucciones. a instrucciones ejecutables. Muchos de ellos coEn la figura 2.14, observamos un diagrarresponden a datos y direcciones que son utirna simplificado de la arquitectura de un sistelizados par el programa para proposiros particulares. Los codigos correspondienres a instrucma basado en un microprocesador, en el eual basarernos nuestro an alisis de la interaccion enciones ejecutables se denominan comunrnentre cada una de las partes del sistema y la sete c6digos operacionales (opcodes). Par tanto, en un sistema de 8 bits, los programas en lencuencia que presema. guaje de rnaquina se reducen a unas cuantas En este diagram a se pueden norar cuatro secuencias de grupos de 8 bits (I byte) situados bloques fundamenrales: la memoria, la unidad en algun lugar de la memoria. de control, la unidad operativa y el m6dulo de entradas y salidas. Todos ellos conectados a craEstas secuencias representan a su vez una ves de los buses de direcciones, datos y COntrol. mezcla de instrucciones para el microprocesa-

Unidad de control

@
Bus de direcciones

•••
CD
Bus de direcciones Memoria RAM de lectura y escritura, can 256 postcicnes de 8 bitscada una

....
Bus de direcciones

'I

../ ..
Bus de datos 8
• • • • • II .• ..' •

Lecturalescritura

Bus de control

~
"C

'" '"
<Jl

~""'''-E!t!iJJ[tJ!t!liJl c:o
Perifericos del mundo exterior Unidad operativa

Unidad operativa

- ....

Bus de datos

Figura 2.14 Diagrama de bloques simplificado de un sistema basado en un microprocesador

,7:.:,

Curso practico sabre Microcontroladares

El bloque I es la memoria; en ella se alrnacenan una serie decantidades codificadas en ocho 8 bits. Para entender la operacion de una memoria, puede hacerse una analogfa can un casillero de correos, donde existen muchas casillas para diferenres usuaries, cada una can un ndmero 0 direcd6n que la identifica y con la propiedad de almacenar cualquier dase de

La memoria principal de un sistema basado en W1 microprocesador se construyecon mernorias de Gpo electr6nico, que se dasifican en dos grandes grupos:
Memorias ROM (Read Only Memory) ..Son memorias que una VeL grabadas, permanecen can dicha informacion permanenrernente y s610 pueden ser leidas. Son memorias de "s610 lectura" y se utilizan para guardar los prograrnas 0 datos fijos. Memorias RAM (Random Access Memory), EI conrenido de sus posiciones puede ser lefdo y escrito, AI igual que las memorias ROM, son deaccesoaleatorio, es dccir, que para acceder a. una posicion deterrninada no hay que pasar por las anteriores, como sucede en las cintas y discos rnagneticos. Son las mas r:ipidas Ysu riempo de acceso se rnide en nanosegundos.
-

informacion,
Pues bien, una memoria posee un conjun[0 de posiciones cada una con su propia direccion, yen cada una de dichas posiciones puede existir cualquier data de ocho bits. La posicion que se va a acceder es indicada par el bus de direcciories al Decodificador de Direcciones (DI) , el cual es un dispositivo de n entradas y 2n salidas, Dependiendo de la entrada binaria que lea, habilira 1a lectura de una direccion dererminada por media d.e la acrivacion de la Hnea correspondienre, figura 2.15. Los 8 bits de la posicion accedida salen por el bus de datos hasta el Registro de Datos (RD), si se efecnia una operaci6n de lectura. Cuando se nata de una operacon de escrirura, el conrenido digital de las 8 lfneas del bus de dams se carga en el Registro de Datos y. desde el, en las 8 celdas de la posicion direccionada. EI proceso de direccionar una posicion y leer 0 grabar

de las memodas tipo RAM es que son volatiles, 0 sea, al corrarse el suministro de energfa electrica, cuando se desconecta el sistema, pierden [a informaci6n que contenian. En un sistema con microprocesador, se utilizan este tipo de rnernorias para alrnacenar el resulrado de las cperaciones y los datos de las variables que se van creando enel programa. El bloque 2 es la unidad de control cuya funcion primordial es la de interpretar y ejecurar las insrrucciones. EI codigo binario de la operacion que se va a ejecutar, se deposita inicialmente en el Registro de lnstrucciones (Rl) y luego se traslada al Decodificador de Instrucciones CD!)., cuya mision es seleccionaren una memoria ROM un conjunto de posiciones que corresponden al c6digo recibido y en las que seencuenrran los c6digos de las operaciones elernenrales (0 microinstrucciones) que compo-

El principal inconveniente

un dato se denornina ciclo de memoria.

16 peslclanes en 13 memcna

nen las diferentes etapas en las que se divide la


ejecuci6n
Figura 2.15 Segun el data introducido por el bus de direcciones, se habilita /8 comunicacidn con una determinada posicion de memoria

de la instrucci6n

decodificada. van pasando al

Las microinstrucciones

cuenciador (5), que es el circuiro logico de con-

Curso practieo sobre Microcontroladores

d.... _ CIT.:

Se-

Un I dad de control

Memorl a pn nc i pal
...,..".."".....,.,..,._"...,._

I
I I
Figura 2.16 Movimientos de informacion de los contenidos de las unidades que participan en /a fase de bt)squeda de una instrucci6n

tral y tiempos el cual gobierna a todos los elementos del sistema y lleva a cabo la ejecuci6n secuencial de las rnicroinstrucciones. La funcion del Contador de Programa (PC) es enviar par el bus de direcciones la posicion de la memoria donde se encuentra la siguiente instruccion que se va a ejecutar. Normalmenre, este contador se incrementa en una unidad en cuanto la memoria acepra la direccion de la instruccion anterior.

ga ° almacena en un registra auxiliar. Un registro especial, denominado Registro de Estado, contiene una serie de bits que actuan como sefializadores de alguna caracterlstica especial que se haya praducido en la ultima operaci6n efectuada por la ALU. Por ejemplo, un sefializador denorninado Z (cera), pasa a valer uno (1) si el resultado de la operacion que ha hecho la AiU ha sido cera (0). El bloque 4 es el de entradas y salidas y se encarga de suministrar al sistema los datos pracedentes del exterior, asf como de llevar los resultados a los perifericos del mundo real.

El bloque 3 es la unidad operatiua; alli se


ejecutan las operaciones aritmeticas, logicas, de desplazamiento, de rataci6n, de incremento, etc. Uno de los operandos que interviene en la operacion que va a efecruar la ALU (Unidad lcgico-aritmetica), procede de un registro de 8 bits llamado Acumulador. EI OtIO operando llega desde cualquier parte del sistema y se car-

Secuencia de operacion de una

in..

cion

En un rnicroprocesador, el principia de ejecucion de cualquier instruccion tiene caracBus de dlrecclonss Unidad de control

lr=======Memoria

RI

01 MI

Bus de control

.s
(J)

.g '"
::>

::l

'" .s
..."

~I-"'''''
<lJ

ca

PerifeJicos del mundo exterior

..

...

MOdulos de entrada y salida (IIO)

Unidad operative

Figura 2.17

EI contenido del Contador de Programa (PC)pasa a/ Registro de Direcciones (RDlj

Bus de direcciones Memoria Unidad de control


01 MI S PC

Bus de control

Perifericos del mundo exterior

..

Unidad operativa

Figura 2.18 EI contenido de la posicion de /a memoria se deposita en el Registro de Instruccion

similares, En todas elias hay dos tiernpos fundamentaJes Ilamados bu.squeda (fetch) y ejecucion (execute). El diagrama de bloques de un sistema can microprocesador permire un analisis rapido de la forma en que Sf ejecuta una insuucci6n cualq uiera; por ejemplo, la correspondiente a la suma de dos operandos.

terfsticas

sigue can la pane de la ejecucion propiamente dicha que puede tener varios subtiempos, dependlendo del tipo de instruccion.

Es e1 comienzo de lila nuevainstruccion, el Contador de Programa (PO deposita en el bus de direcciones la direcci6n de la posici6n de la memoria principal donde se encuentra el c6digo de la instrucci6n que se va a ejecutar. Dicho c6digo sale de la memoria principal por el bus de datos hasta la Unidad de Control; donde se graba en el Registro de Instrucaones, .6.gura 2.16.
Como la CPU no sabe que tipo de instruccion va a ejecutar, los tiernpos de busqueda son exactamenre iguales. El desarrollo de esta fase es la siguiente:

El contador de programa ernpieza conteniendo la direcci6n de la memoria principal donde est almacenado el c6digo binario de la instruccion de suma. Luego ese conrenido pasa a traves del bus de direcciones basta la memoria principal, donde se decodifica y selecciona la posicion que contiene el c6digo binario de la operaci6n. Dicho c6digo de "rnaquina" sale de la memoria por el bus de dams hasta el registro de instrucciones de la Unidad de Control, dande se deposita. Toda esa fase de localizaci6n del c6digo de la instruccion mencionada, recibe el nombre de lase de busqueda y es la rnisma para cualquier insrruccion.

1. El con renido del Contador

de Programa (PC), a craves del bus interne de la unidad de control, aparece en el registro de direcciones de memoria, figura 2.17.

El riernpo de ejecucion ernpieza por un subtiernpo de decodificacion de la instruccion y pro-

2. EI contenido de Ia posicion de memoria aparece en el bus de datos. Esra informaci6n se deposita en un regisrro de instrucci6n (RI), figura 2.18.

'"

SeiiaJes de control ~ los elementos d 81' sistema

Figura 2.19 Comportamiento de la unidad de control durante /a fase de ejecucion

AI rnismo tiempo, el Contador de Programa (PC)


se incrementa, puesto que il debe siernpre sefialar la direcci6n de la siguiente instruccion que se va a ejecutar, para cuando se necesite. De esta forma se ha cornpletado la operaci6n de bUsqueda de una nueva instrucci6n.
• ... 1811'-1

bits setializadores del Registro de Estado, rornaran el valor correspondiente en funci6n del resultado,

~"OAi6n

Es la primera parte del tiempo de ejecucion y es tarnbien exactamente igual para todas las instrucciones, puesto que aun no se sabe que operaci6n hay que efectuar. De mornento, la parte de la instrucci6n Hamada codigo de operaci6n (opcode) , se transfiere al Decodificador de Instrucciones (DI) yaquf empieza la parte diferente de la instruccion, Al recibir el Decodificador de Instrucciones

En resumen: completada la fase de busqueda, el codigo de rnaquina del Registro de Instrucciones llega al Decodificador de Instrucciones, que se encarga de localizar las posiciones de la memoria de rnicroinstrucciones que correspondan. Dichas microinstrucciones van introduciendose al secuenciador a medida que se realiza el proceso. El secuenciador, con cada microinstruccion, envia una serie de sefiales de control a los elementos del sistema que deben actuar en cada momenta. Ejecutadas todas las microinstrucciones que componen la instruccion, el Contador de Programa se incrementa en una unidad y el sistema pasa a la ejecucion de la siguiente instruccion del programa, figura 2.19. Hay varios tipos de instrucciones bdsicas que pueden agruparse de acuerdo con diferenres criterios, tales como funcionalidad, numero de cidos de memoria utilizados, mirnero de palabras que utiliza, etc, Dependiendo de las caracteristicas de la cornpuradora y de su rnicroprocesador, los diferenres tipos de insrrucciones seran de una, dos 0 mas palabras y necesitaran uno 0 mas ciclos de memoria para llegar a obtenerse enteramente en la unidad de control. En funci6n del nurnero de palabras y del tipo de instruccion, la ejecuci6n tiene caracteristicas diferentes. Esros parametres deterrninan, par ejemplo, el numero de veces que el sistema debe acceder a la memoria para leer toda la insrruccio n,

lee

"

el c6digo de la insrrucci6n en curse, se encarga


de seleccionar en la memoria de microinstrucciones aquel1as que corresponden a dicho cedigo. La llegada de las microinstrucciones al Secuenciador, origina una serie de sefiales de control que regulan la ejecucion de las diferemes etapas en las que se descompone la instrucci6n. En el caso de una suma, uno de los sumandos ha de estar contenido previamenre en el Acumulador, mientras que el OITO llegara del registro auxiliar,generalmente, desde la memoria de datos, cuya direcci6n correspondieme vendra acompafiando al c6digo de la operacion en la instruccion, La ALU efecruaci la suma y el resultado se deen el Acurnulador, al mismo riempo quelos
¥

Xtacl
~

IT.;. CumJ pr.lcliCD sabre Af/crocmllroladores

r ...

El concepto de entrada/salida abarca coda transferencia 0 intercambio de informacion (datos) entre un rnicroprccesador (CPU) y un disposi(iva externo a periferico especffico, Cuando los datos fluyen hacia el microprocesador, se tiene el caso de una operaci6n de entrada y cuando 10 hacen en direcci6n al mundo externo, se tiene el caso de una operacion de salida.

Un puerto 0 interfaz de entrada/salida puede construirse utilizando componentes norrnales de pequefia y mediana escala como compuertas,jlipflops, regisrros, codificadores, decodificadores, etc; a circuitos inregrados de gran escala LSI (Large Scale Integration) especializados como la imerfaz periferica programable (PPJ) 8255 0 el conrroladar programable de interrupciones (CPI) 8259.

En la figura 2.20 se muestra un ejemplo en el disefio de cualquier sistema basado en rnicroprocesadoreses


seleccionar los puertos deentrada/salida 0 circuitos de interfaz cuyo costo y rendimiento sean los mas adecuados para una aplicaci6n dada. La complejidad de un puerto I/O puede variar desde un sencillo flip-flop hasta un circuito integrado altarnente especializado: par ejemplo, un conrrolador para un tuba de rayos catodicos 0 un display gratico tipo LCD ..

Un paso importante

sencilio de un puerto de salida con un flip-flop tipo D cuya funci6n es transferir el estado del bit de datos DO a un diodo LED que acniacorno dispositive periferico, Esto sucede cuando en la linea de direccionamiento A15 hay un nivel alto y la senal de escrirura (WR) es baja. Despues de deshabilitado, el flip-flop retiene la informacion previarnente almacenada mientras el microprocesador se dedica a otras tareas. En la figura 2.21 se muestra un ejernplo senci110 de puerto de entrada can un flip-flop. En este caso, el dispositive periferico es un interrupter y su estado (alto 0 bajo), se transfiere a la linea de datos DO cuando en Ia linea de direccionamienro A15 hay un nivel alto y la lfnea de control de escritura (RD) es baja. Una vez que el microprocesador acepta el bit DO presente en el bus de datos, 10 transfiere al acumulador y sinia la salida del puerto de entrada en estado de alta irnpedancia con d fin de que no inrerfiera con otras rransferencias de datos.

En general,. las funciones que debe realizar un


puerto 0 dispositive de interfaz de entrada/salida se pueden resumir en los siguienres terrninos:

• Identificar direcciones con el fin de establecer la conexi6n con los buses de datos y de control del sistema cuando se selecciona un dispositive periferico de entrada/salida especlfico. • Inrerpretar ordenes, G eneralrne nte, las ordenes enviadas par el microprocesador at puerto 110 Il /( I 1t Una manera mas elese reducen a sefiales de lectura y escrirura. Esgante y eficiente de controlar el transite de informatas sefiales pueden venir ya decodificadas 0 necesitar una decodificaci6n previa. Disp os itivo pe riferi co de Microprocesa[Jor • Adaptar fisicamente el sistema a los requisitos del periferico, Esto incluye fa r-A_1_5 _ _ urilizacion de m anej ado res (drivers) de llneas de transmision, eliminadores de ruido, optoacopladores, etc. • Controlar los tiempos para la rransferencia de informacion con el fin de garantizar que el flujo de datos entre el microUnea de sslecclon procesador y e1 periferico se haga de una manera ordenada yeficiente,

Figura 2.20 Puerto de salida con flip410p

Disp.oSitivo periferico

de entra(ija

cuito y el programa y haee posible funciones que no sedan ejecutables si el microprocesador tuviera que hacerse cargo de todo d proceso de entrada/salida ..Par la funci6n que haeen, los puertos de interfaz program ables se pueden dividir en dos categorfas: interfaces dedicadas e interfaces de prop6sito general 0 interfaces universales, Las interfaces dedicadas se especializan en una funcion espedfica, par ejemplo, conrrolar perifericos, remporizareventos, etc. En estacategoria se encuentran entre otros: el temporizador programable 8253, el controlador de disco flexible 8271, la interfaz programable de teclado y display 8279 yel controlador de tubos de rayos catodicos (TRC) 8275.

Un

A 1 s ".1'10:Bus de direcciones ·
DO-07: Bus de datos

Microprocesador

Figura 2.21 Puerto de entrada con interruptor

cion entre el mundo externo y el rnicroprocesador, es utilizando circuitos integrados de gran escaLa(LS!) disefiados especialmente para el manejo de entradas y salidas, Entre las principales caracrerfsticas de estos circuitos especializados podemos mencionar: • Son faciles de conectar con los buses del sistema puesto que disponen de lfneas de adaptacion directacon las salidas del respective rnicroprocesador. Por ]0 general, solo se requiere un sistema decodificador de direcciones.

Las interfaces de proposito general, como su mas universales y pueden adaptarse a una gran variedad de aplicaciones, Existen interfaces para transmitir darosen paralelo como la intertaz periferica programable (PPI) 8255 y para
nombre 10 indica, son la transmision de datos en serie como el 8251 ..

• Son circuiros de entradas y salidas programables. Esta caracteristica perrnite adaptarlos Hcilrnente a las condiciones de los circuitos externos utilizando unicamente cornandos de programaci6n. Generalmence, la programaei6n consiste en cargar, de una forma predeterminada, un registro interno que define el modo de operaei6n. Este ultimo se puede alterar en cualquier momento por programa. • Algunos modules de enrrada/salida poseen cierta capacidad de proceso propia, independiente del microprocesador. Esta circunsrancia es favorable ya que libera al microprocesador de la ejecuci6n de ciertas tareas rutinarias y de control, las cuales delega en el

Si analizamos un rnicroprocesador tipico como el 8085, observaremos que contiene codas las panes de una CPU funcional asI como un puerto sene, rodo 10 que necesira para completar un sistema

basico es una memoria RAM, una memoria ROM


y puertos paralelos de entrada/salida. Can el fin de minimizar el numero de circuitos incegrados necesarios para configurar un sistema senciUo, Intel, creador del 8085,. ha desarrollado una serie de cornponentes que integran memoria RAM y puertos I/O 6 memoria ROM y puertos I/O en un mismo circuito integrado. Los dispositivos representatives son

mas

el8155, el8355 y el8755. El8155 contiene 256


bytes de RAM, dos puertos 1/0 paralelos de 8 bits, un puerto lIO paralelo de 6 bitsy un temporizador de 14 bits. El8355 contiene 2048/rytt'.!'de ROM y dos puertos I/O paralelos de 8 bits. El8755 tiene dos puerros I/O y 2048 bytes de EPROM. En esta secci6n estudiarernos un sistema basado en mieropro-

dispositive de inrerfaz.

<Q . .rn:

La caracterfstica anterior, denominada algunas veces inteLigencia ditribuida simplificael cirCursD

PIOcW; SDbre Mkroco_fadores

Vee
pc:/.

~Cl

PCO
PB7

cesador, utilizando el circuito integrado 8155. En Ia figura 2.22 se rnuestra la conhguracion de pines, el diagrama interno de bloques y la estrucrura de registros de este circuito, E18155 puede dernultiplexar internamente el bus de datos y direcciones del 8085. Por esta razon, s610 se necesitan ocho [frieas, desde ADO hasta AD?, para rransrnirir datos y direcciones ..las lineas IOIMD, RD y WR se utilizan para el control de la memoria y las lfneas ALE y RESET para el control interne.

PB6
PBS

PB4 PB3 PB2 PBl

PBO
PA7

PAS
PA5

PM PA3

PA2
PAl

Para efectos de la in terfaz se utilizan 22 lfneas program ables como entradas 0 salidas y organizadas en tres grupos asf: desde PAO hasta PA7 para el puerto A, desde PBO hasta PBl para el puerto B y
desde peo hasta PCS para el puerto C. las lfneas 11 (pin 3) y TO(pin 6) son, respectivameme, la entrada y la salida del temp orizador,

fa)

PM

Port A PAD·7

ALE ---+RD-------"

Port C

La memoria RAM del 8155 tiene asignadas las direcciones OOOOH hasta OOFFH yes accesible externamente mediante los ocho bits de direccionamiento de mas bajo orden cuando las lineas CE e 101M son bajas y cualquiera de las Hneas RD 6 WR es baja. Los ocho bits de direccionarnienro de mas bajo orden se almacenan en un regisrro interno durante los Baneos de bajada de la sefial ALE.
La capacidad de memoria RAM del 8155 (256 bytes) es, generalmence, mas que suficiente para sistemas pequefios. En la mayoria de los casos esta memoria se utiliza para almacenamienro temporal de datos y resultados, asi como de informacion de regisrros y direcciones.

-""",;-----.v
PAO-S
fb) TIMER CLK TIMER OUT

II

L_ VCt:!-I-V)

L-GNC(DV]

Figura 2.22 Circuito de.soporte 8155

Los puerws A, Bye se pueden utilizar como tres puertos de entrada/salida independientes; estos puertos sou accesibles externamente a traves de las 8 lfneas de mas bajo orden del bus de direcciones wando CE es baja, Rb 0 WRes baja e 101M es alta. La figura 2.23 muestra las cursopnicticosobre MlcfOcon.troladores

~IZ:.

L¥__

direcciones internas de cada registro y de cada puerto en el 8155. Por ejemplo, para seleccionar el puerto B, Al debe ser alta (1) y A2 y AO deben ser bajas (0).

8 85

Dlseno de un sistema minimo con


Podemos decir que un sistema minima con microprocesador es un dispositive constituido por una serie minima de elementos que permiten el desarrollo de algiin tipo de tare a 0 aplicacion en el mundo real de manera autonorna, inteligente y siguiendo las pautas dadas por un programa. En el esrudio de los microcontroladores, es muy irnportante entender que es un sistema minirno can microprocesadores, ya que es precisamente esta configuracion basica la que se ha reemplazado con esta nueva tecnologia. Como ejemplo mostraremos el disefio de un sistema microcomputador mfnimo desarrollado por CEKIT alrededor de una CPU 8085 y un circuito de soporte 8155. Aunque el 8085 es un microprocesador de ocho bits de las primeras generaciones, 10 hemos utilizado en este ejemplo por la facilidad para entenderlo con fines didacticos
Visualizador binario Visualizador hexadecimal

segiln los objetivos de este curso. De el se origino eI 8086 el cual es la base de toda la familia Intel Ia que siguio con el 80186, el 80286, el 80386, el 80486 y el Pentium. Si usted esta interesado en profundizar en esre terna, le recomendamos nuestro Curso Basico de Microprocesadores. E1 sistema se ha dividido en dos tarjetas: una tarjeta procesadora y una tarjeta programadora, 6gura 2.23. La primera contiene, esencialmente, la CPU, la memoria RA1v1, el rernporizador programable, los puertos de entrada/salida y el registro de comandos. En la memoria RAM reside el prograrna de instrucciones que ejecuta el microprocesador. La tarjeta programadora consta de una serie de funciones de pequefia y mediana escala tales como cornpuertas, drivers, decodificadores y regiscros. Su fimci6n es permitir que el usuario tenga acceso a la memoria del sistema y pueda cargar en la rnisrna datos e instrucciones, asl como visualizar resultados. La informacion se reeibe desde un tedado hexadecimal y se visualiza en diodos LED y displays.

~S

La tarjera procesadora de nuestro microcomputador consta, basicarnente. de una CPU 8085 y un

F Teclado hexadecimal

456 89A CDE

dire colon es
3 7

Bus de datos y

PAO-7

~
PBO-7

RR=:

~~-I~.

Tarjeta programadora

..

Salida de reloj

B085 Tarjeta procesadora

WR: Orden de escntura (ESC)

auxular

RO: Orden de tectum (LEE) ALE: Orden dedi reccionamiento

Figura 2.23 Sistema mf(limo Curso practico sobre Microcontroladores

(a)

+5V

(b)

Bus de direcciones

...........11.:.

Bus de datos

~ It

Registras 808M
NC
RSIN

8155

Salida sene

IOfM

AD
WR

Rl~R2: 4.7Kn R3: 27KQ

R4·R6: 1KQ

NC

C1: 10j.lF D1:1N4001 IC1A,B: 7400

NC
ALE

Sl:SPDT

T1
Ternporizador

Figura 2.24 (a) Diagrama de bloques (b) Diagrama esquemafjco

circuito de sopone 8155. En las figuras 2.24(a) y 2.24(b) se rnuestran, en su orden, los diagramas de bloques y esquernatico de esta parte del sistema. La CPU 8085, cuya configuracion interna se ilustro en fa figura 2.5, proporciona, entre otros bloques fun cionales , una unidad aritmetico-logica (ALU) de ocho bits, una unidad de control y varies registros accesibles al usuario. Aunque el 8085, par disponer de un bus de direcciones de 16 bits, puede direccionar un espacio de memoria de 64K (65536 bytes), los 256 bytes de RA1v1 disponibles en nuestro sistema son sufidentes para soportar la mayorfa de programas sencillos de aplicacion, Todos los blaques Iuncionales que constituyen Ia tarjeta procesadora se comunican entre sf a craves de los buses de control, de datos y de direcciones del sistema. E1 bus de

control, como su nombre 10 indica, transporta las seriales de comrol (ALE,WR, RD, TO/M, etc) que necesita la CPU para comunicarse 0 dinlagar con la memoria y los puertos 110. A traves del bus de direcciones, el 8085 selecciona de manera inequivoca la posicion de memoria 0 el puerto I/O desde el cual trae 0 hacia el cual dirige la informacion del bus de datos. Puesto que eI sistema tiene solarnente 256 bytes de memoria, solo se requieren ocho Hneas de direccionamiento (las menos significativas]: las ocho restantes (las mas significativas), no se utilizan. En el8085 las ocho lineas de direccionamienro de bajo orden (AD hasraA7), se mulriplexan internamente con las ocho lineas del bus de datos (DO hasta D7) formando un bus iinico de datos y direcciones. E18155 decodifica 0 dernultiplexa la informacion transportada

mas

Cuts •• nictioo sf)/1(.MiCfIIC_ores

IT';

sobreestas ltneas para saber cuando se trata de una direccion y cuando de un dato.

Todo microprocesador necesita un generador de pulsos de relo] para controlar e] contador de programa y sincronizar sus funciones internas. En nuestro case, este circuiro de reloj viene incorporado en la CPU 8085 Y BU frecuencia puede controlarseexremamente mediante un cristal a una red RC extern a conectada entre las lineas Xl (pin 1) y X2 (pin 2).

da RESET IN del 8085 cuando el interrupter SIesta en posicion "RESET" y un nivel alto cuando 51 esta en la posicion "RUN" . .. El 8085, 16 lineas, (64K) de a las 256 S ~

"r

t
EI 8085 puede ser facilmeme conecrado 0 desconecrado par hardware manejando adecuadamenre SIl entrada de reset (RESET IN), pin 36. Cuando esta linea recibe un nivel bajo, el rnicroprocesador ingresa at esrado de reset. Bajo esta condi-

de puede direccionar hasra 65536 bytes memoria. Sin embargo, para acceder posiciones de RAl.\1 disponibles en el circnito de sopone 8155 solo se requieren las ocho Hneas de mas bajo orden .. En la figura 2.25 se muestra la forma de interconecrar los buses de datos y direcciones de los circuitos 8085 y 8155. Recuerdeque en eI 80851as ocho lineas de direccionarniento de mas bajo orden esran multiplexadas con las ocho lfneas de datos, formando un bus unico de datos y direcciones. En otras palabras, en nuestro sistema, los datos y direcciones viajan sabre las misrnas

por poseer un bus de direcciones

cion. el contador de programa se carga con ceros y


los buses de datos y direcciones se sinian en el estado de alta irnpedancia, Debido a su naturaleza asincronica, la serial de reset puede afectar el conrenido de los registros intern os de la CPU. inc1uido eI de estados 0 banderas ..Cuando la linea RESET IN se hace alta, el 8085 procede a ejecutar el programa almacenado en la memoria. En el rnomenro de aplicar energia al sistema, el condensador C 1 esta descargado e inyecta, a traves de R4, un nivel bajo a la entrada RESET IN del 8085. Como resultado, este l11rima pasa at estado de reset descrito anteriormente. E1 condensador cornienzaentonces a cargarse a craves de R3. Cuando el voltaje entre los terrninales de Cl alcanza un valor cercano a +5V, fa entrada RESET IN recibe un nivel alto yel 8085 sale del estado de reset, comenzando la ejecuci6n de las instrucciones a partir de la

lfneas (ADO hasta AD7).

El 8155 disringue internamente entre direcciones y datos inrerpretando el estado de la linea de control ALE. Cuando esta Ultima es de nivel baja, entiende que la informacion presence en el bus es un dato y cuando es de nivelalto es una direccion.
Cuando el bus AD acnia como bus de datos, las lfneas ADO a AD7 son bidireccionales, es decir, pueden transportar informacion desde 0 hacia el rnicroprocesador, Cuando este bus se convierte en bus de direcciones, las lfneas ADO hasta AD7 son unidireccionales y llevan informacion de fa CPU haeia la memoria 0 hacia los puenos de entrada/ salida.

posicion OOOOH. EI diodo Dl descarga rapidamente eI condensador cuando se desconecta rnomenraneamente la fuenre de alimemaci6n, incluso como resultado de una falla en la alimen-

tacion. E1 circuito consrituido por 51, Rl, R2, lC1A e ICI B forma un elirninador de rebate
cuyo objetivo es aplicar un nivel bajo ala entraFigura 2.25 Cvnexion multiplexada del bus de datos y direcciones

IT;;'

Cursa practica sabre Microcontroladores

se muesrra en la figura 2.26, la CPU 8085 se comunica con eI circuiro de soporte 8155 a traves de cinco lIneas de control: RESET, ALE, WR, RD e 101M. Otras lfneas de Como control como HOLD, HLDA, READY, erc., no son necesarias para la operaci6n de nuestro sistema rrurumo pero SI se reqUleren en sistemas mas grandes para ejecutar otras funciones.
• ~ • I . •

La salida de reset del 8085 (RESET OUT, pin 3), activa en alto, le cornunica a Ia entrada de reset del 8155 (RESET [N, pin 4) que el rnicroprocesador esra en condici6n de reset, es decir que no esta ejecutando el programa de aplicaci6n. Cuando esto sucede, el 8155 entra tarnbien en est ado de reset y define todas las lineas de sus puertos como entradas. La linea ALE (Address Latch Enable: habilirador del seguro de direcciones) del 8085 (pin 10) esta conectada a 1a linea ALE del 8155 (pin 1 O. Cuando esra serial es alta, [a CPU le informa a la memoria interna del 8155 que la informacion binaria disponible en el bus AD es una direcci6n. Como resultado de la serial ALE, el 8155 almacena en un registro interno, durante el flanco de bajada, la palabra de direccion, En el siguiente cielo de maquina, el microprocesador puede proceder entonces, a leer 0 a escribir en la posicion de memoria direccionada. En este caso, la inforrnaci6n se transmite sobre el bus AD, convertido ahora en el bus de datos del sistema.

La linea WR (write: escritura) del 8085 (pin 31) esta conectada a la linea WR (pin 10) del 8155. Cuando esta linea se hace baja, la CPU le indica a la memoria que el dato 0 la instrucci6n presente en el bus AD va a ser escrita en la posici6n de memoria previarnenre seleccionada. La llnea RD (read: lectura) del 8085 (pin 32) esta conectada a la linea RD (pin 9) del 8155. Cuando esra Ifnea se hace baja, la CPU le indica a la memoria que va a proceder a leer el contenido de la direcci6n previamente seleccionada y a siwar la informacion en el bus AD. Finalmente, la linea

101M (lnputloutput-

del 8085 (pin 34) esra coneetada a la linea 101M (pin 7) del 8155. Cuando esta linea se haee alta, el 8155 reeanoce que la palabra de direeci6n presente en eI bus de datos corresponde a un registro inrerno 0 a un puerto 110. Cuando la linea 101 M se hace baja, la CPU 8085 le infarma al circui to de sapone 8155 quela direccion presen te en el bus AD corresponde a una de las 256 posiciones de memoria a las que es pasible tener acceso. Estas localizaciones rienen asignadas direceiones entre OOH y FFH.
memory: entrada/salida-memoria)

Desde un punto de vista conceptual, el circuito de la figura 2.24 es una microcomputadora complera porque posee una unidad central de proeeso, una unidad de memoria y puerros de enrrada/salida, Sin embargo, le falta 10 irnportante: un programa. Sin un programa que le indique 10 que debe haeer, un micro camp utadar es s610 una masa inanimada de componenres electronicos,

mas

Figura 2.26 Conex!6ndel bus de control

Para almacenar en la memoria los datos e instrueciones que constituyen el programa de nuestra microcornpuradora, necesirarnos asumir remporalmente el control del circuito de soporte 8155 y aislar eI microprocesador 8085 del resto del sistema. De este modo, podemos introducir informacion en la memoria sin intervencion de la CPU. Esta es, precisarnenre la funci6n de la

Curso pnjctico sabre Microcontroiadores

cesadores, Hemos analizado su arquitectura interna, su funcionamiento y la forma de interconectarlos dentro de un sistema para que puedan ejecutar tare as que involucren el manejo de variables reales y cierto grade de inteligencia, Hemas visro que estes dispositivos requieren de componentes adicionales para ejecurar una tarea especffica yque poseen las facilidades para direccionar a manejar gran canridad de perifericos como mernorias, puertos y muchos otros disposirvos. Debido a esta capacidad, los microprocesadores S011 el elemenro fundamental demro de los equipos de computacion modernos, donde se manejan enormes cantidades de memoria y gran variedad de peritericos.
Figura 2.27 Ganexidn de la tarfeta programadora

tarjeta programadora. En 1a figura 2.27 se ilustra fa forma de conectar esra tarjeta a la tarjera proces ado ra .. Cuando e1 interrupter SIde esta ultima se sinia en posicion "RESET", las lfneas de datos y direcciones ADO hasra AD7 del 8085 adoptan el estado de alta irnpedancia y quedan flotames. La mismo sucede con las lineas de control ALE, WR, RD e 101M. La lInea RESET IN de18085 es de nivel bajo. Baja estas condiciones, desde la tarjeta programadora podemos acceder Iibremente a la RAM delS155 y escribir en fa misma el programa que debe ejecutar el microprocesador. As! mismo, podemos direccionar cualquier posicion de memoria y leer su contenido. Una. vez cargado eI programa, el control del 8155 debe retornar al S085 para que este ultimo 10 ejecute (51=- "RUN"). En fa figura 2.28 observamos el aspecro ffsico del sistema rn inirno desarrollado alrededor del microprocesador 8085 'y del circuito inregrado 8155.

Los microcomroladores son disposirivos electronicos que agrupan en un solo circuiro integrado todas estas caracterfsticas, aunque con cierra limitaciones de memoria y perifericos, Sin embargo, su funcionamienro interne sigue siendo basicamence el mismo, Par esta razon hemos querido enrregar esta corta inrroduccion a los rnicroprocesadores, para dar una idea de todo el desarrollo tecnol6gico que involucra esta tecnologia y sentar las bases para el estudio de estos elementos. Tarjeta procesadora

Visualizaci.on de los datos

En esta leccion se ha hecho un repaso general de los aspectos importanres relatives al mundo de los micropro-

mas

Tarjeta programadora Figura 2.28 Sistema microcamputador minima can el 8D85

1"6:.:CUfSO

practico sabre Microcontrofadores

RDeONl OLADO ES
En los ultimos aDOS, un componente electronico ha revolucionado las tecnicas de disefio; se trata del microcontrolador. Es un circuito integrado programable que contiene todos los elementos necesarios para controlar un sistema. A partir de esta lecci6n, iniciamos un estudio detallado de cada una de las partes y m6dulos internes que componen un microcontrolador, desde los mas basicos hasta los mas especializados, al igual que algunas teenicas y algoritmos que permiten su manejo e inclusion dentro de un proyecto.

AI analizar los sistemas basados en microprocesadores mostrados en las lecciones anteriores, se puede deducir que la estructura de un sistema de microcomputadora para aplicaciones de rnedicion 0 control, tiene un caracter constante,

+5V (Fuentede alimentaeiom

es decir, siernpre existira esa misrna estructura (CPU, memorias, puerros, buses, etc.). No es difkilcomprender, entonces, porque los fabricantes de circuitos integrados decidieron producir un supercomponenre que contenga todos los elementos de una compuradora en un solo circuito integrado.

A mediados de los afios 70., los fabricantes de


circuiros integrados dieron a conocer un nuevo dis-

positive denorninado microcontrolador

d cual con-

Entradas

Salidas

tenia toda la estructu:ra de una mlcrocomputadora, es decir, unidad de proceso (CPU), memoria RAM, memoria ROM y circuitos de entrada/salida. E1 pri-

Figura 3.1 Idea general de un microcontro/ador

cutar

un sinnurnero

de tareas

y procesos.

mer dispositive de esta naruraleza fue Ianzado por Texas Instruments y se denorninc TMS 1000, el cual fue el primer microprocesador que incluy6 sufidenre RAM y ROM para el desarrollo de aplicaciones, EI microcontrolador se concibio como un dispositive programable que puede eje-

Desde ese mornenro, el diseiio de pro ducros electronicos cambi6 radicalmente .. Circuitos logicos, manejo de perifericos, remporizadores y estructura de computadoras, todo program able y alojado en un solo circuito integrado; es decir, una pequefia computadora

para todas las aplicaciones.

Microcontrolador

Dispositivos de entrada

Dispositivos de salida Figura 3.2 Diagrama general de un sistema basado en un microcontrolador

Curso practico sobre Microcontro.ladores

Ahora, para un disefiador, la idea de una microcomputadora, en aplicaciones de control 0 en la fabricaci6n masiva de aparatos modernos, se asimila al esquema mostradoen la Figura 3.1, donde tenemos una fuente de alimentacion, un circuito de reloj y un microcontrolador. Una vez configurado el sistema en cuanto al hardware, 50lamente se requiere grabar el programa en la memoria ROM; los puertos ya estin listos pau

conectarse al rnundo exterior. Un microcontrolador puede definirse entonces como un sistema cornplero de compute, que induye una CPU, memoria RAM y ROM, un oscilador y puertos IIO, todo dentro de un mismo circuito integrado.

r
Aunque un usuario cormin no 10 perciba, hoy en ilia es muy cornun encontrar uno 0 varies rni-

Teclaco

aaoo aaDa

Dallil

aaOQ
Sensor de

11""'""'",'

temperatura

Alimentaci6n

T+
_L.
,..--

Entradas dlgltales

Reset

Figura 3.3 Estructura Msica de un microcontrolador y de los dispositivos que pueden hacer parte de un sistema

crocontroladores en rodo tipo de aplicaciones desde los electrodomesticos y aparacas caseros como las cafeteras, los homos microondas, las videograbadoras y las alarmas, hasta los circuiros de control sofisticados de los automoviles, los aviones, las naves espaciales, los barcos, los sistemas de automatizacion industrial, etc. Las aplicaciones para los microcontroladores son inrinitas; el unico limite es la imaginaci6n. La posibilidad de manejar sefiales de entrada y de salida, asf como su capacidad para procesar datos y tamar decisiones, 10 convierte en uno de los elementos electr6nicos mas versariles que existen. El diagrama general de un sistema microcomrolado serfa el que se muestra en la figura 3.2. Cuando se habla de dispositivos de entrada, se hace referencia a todos los elementos que pueden cambiar su estado ante una deterrninada condici6n y generar una serial que pueda ser utilizada poc el microcontrolador para tamar alguna decisi6n; por ejemplo, un reclado, un interrupter, un sensor, un transductor, ere, Los dispositivos de salida pueden sec indicadores visuales, audibles 0 actuadores, entre otros,

Los indicadores visuales mas comunes son las pantallas de cristal llquido, los diodos LED) las himparas incandescentes, etc. Los indicadores audibles pueden ser parlantes, zumb ado res , etc. Los acruadores son muy importantes ya que se utilizan para manejar las "cargas" como los reles, las electrovalvulas, los motores, etc., figura 3.3. Un ejernplo practice puede ilustrar mejor todas las posibilidades. Veamos el caso de un homo microondas, figura 3.4. En este ejemplo tenemos tres clases de dispositives de entrada: el teclado, por media del cual se programa la funci6n que se desea, los sensores internes para controlar variables como la temperatura y, SI el homo tiene esa funci6n, un receptor de control remoto para captar las 6rdenes dadas por el usuario sin accionar el teclado. Como dispositivos de salida estrin: el display, que puede ser de diodos LED 0 de cristal liquido, el motor que hace girar los alimentos y algunos reles que se encargan de conrrolar 0 desactivar los circuiros del horno, 10 cual perrnite, por ejemplo, cambiar la potencia y el tiempo de coccion, entre orros, En este caso tenemos un microcontrolador programado especfficarnente para esta fullcion acompafiado de una serie de circuiros complemenrarios de entrada y salida y sus respectivas interfaces. ejemplos de aplicaci6n de esta tecnologia, desde algunos muy simples como un temporizador, hasta sofisticados robots con cierto grade de inreligencia artificial. En la seccion de proyectos de este curso , presenramos una serie de aplicaciones reales que el alumno podra construir, y as! aprender y verificar el poder y la versatilidad que ofrecen estos disposirivcs,

Hay innumerables

Figura 3.4 Ejemplo del uso de un microcontro/ador en un homo microondas

Dfferenclas entre sistemas basados en ~ill.!,[] ry ntro' r


Existen varias diferencias importantes entre estas dos tecnologfas, cada una tiene venrajas y desvenrajas, y su uso depende de las necesidades de cada aplicacion. Para aclarar las ideas sobre este tema, vearnos cuales son estas diferencias: 1.

La CPU del rnicrocontrolador es simple y sus instrucciones estan orientadas, principalrnente, a la operacion de cad a una de las Hneas de entrada y salida.

mas

2. La memoria RAM (de dams), que ofrecen los


microcontroladores, es de baja capacidad. La razon es simple: las aplicaciones de control e instrurnentacion comunes no necesitan almacenar grandes cantidades de informacion temporal. En cambio, los microprocesadores pueden acceder, a traves de los buses, a grandes bancos de memoria RA1v1 exrerna de acuerdo a las necesidades del sistema.
Figura 3.6 Dispositivo de luz ultravioleta para el borrado de microcontroladores can memoria EPROM

3. En los rnicroconrroladores, la memoria ROM (de programa) es Iimitada. Por 10 general,


no mayor a 4 Kilobytes. De esta memoria hay (res tipos: EPROM, OTP y EEPROM.

figura 3.5. Los microcontroladores


moria EPROM

con mese utilizan basicamenre para

el desarrollo de prorotipos; con este tipo de memoria. es posible programar y reutilizar el microcontrolador a la manera de las memorias 2716, 2732, etc., esto es, borrando el programa mediante un haz de luz ultravioleta aplicado sobre una ventanita. En cambio, los circuitos inregrados OTP (One Time Programable) 0 programables una sola vez, no permiten que se altere 0 borre la informacion escrita, Este tipo de dispositivos es mas econ6mico, par 10 tanto es el mas utilizado para la producci6n en serie de apararos electronicos, cuando el prototipo ya ha sido cornpletarnenre probado. Los dispositivos EEPROM, que han hecho su aparici6n en los ultimos afios, se caracterizan par permirir el almacenamiemo de un prograrna y su borrado par medios electricos. Este metoda es muchornas rapido que el borrado can luz ultravioleta de las mernorias EPROM, adernas de no necesirar dispositivos adicionales como el que se rnuestra en la figura 3.6. Una variedad de la memoria EEPROM es la memoria FLASH; los microcomroladores can este tipo de memoria, tambien son borrables y reprogram ables electricarnente, pero pueden soportar un mirnero mucho mayor de estos procedimientos, En un sistema con micro pro-

I.. I I

EEPROM

OlP

'1

EPROM

Figura 3.5 Tipos de memoria en los microcontroladores

cesador, se pueden tener memorias ROM externas de diferentes tecnologias y capacidades, de la misma forma que las memorias RAM.

En resumen, algunas de las principales ventajas cuando hacemos el disefio de un circuito utilizando un microcontrolador son:

4. Con los microcontroladores

no es necesario diseriar complejos circuitos decodificadores porq ue el mapa de memoria y de puertos I/O estan induidos internamenteo Por la razon anterior, el circuito irnpreso de las aplicaciones es muy simple y, en algunas ocasiones, puede ser de una sola capa 10 cual es una ventaja sobre los rnicroprocesadores.

• E1 circuiro impreso es mas pequefio ya que rnuchos de los cornponenres se encuentran dentro del circuiro inregrado.

• El

del sistema es mucho menor, al reducir el numero de eomponentes.


COSto

5. La mayoda de los microconrroladores no tienen accesible al usuario los buses de direcciones, de datos y de control de la CPU. Algunos modelos 10 hacen a traves de los puenos de entrada/salida (lIO) , utilizando sefiales especiales de sincroriizacicn. Esros buses y seiiales se pueden emplear para construir expansiones de memoria RAM y ROM por fuera del microcontrolador. Como ya vimos, esta funci6n es mucho mas facil de utilizar en los microprocesadores.

• Los problemas de ruido que pueden afectar los sistemas con microprocesador se eliminan, debido a que todo el sistema principal se encuentra en un solo eneapsulado.

• El tiernpo de desarrollo de un sistema se reduce notablemente. Cuando una aplicacion 0 problema que se va solucionar, sobrepase las caracterlsticas de un microcontrolador como capacidad de memoria, velocidad de proceso, nurnero de pines 0 llneas de entrada y salida, etc., se debe recurrir a un sistema con microprocesador 0 a una microcomputadora completa.
+5V

6. La velocidad de operaci6n de los rnicrocontroladores es mas lema que la que se puede lograr con los sistemas de microprocesadores. Sin embargo, actualmente existen microcontroladores que funcionaD por encima de los 50 MHz 10 que es suficiente para rnuchas aplicaciones. 7. De manera similar a los sistemas utilizados con los microprocesadores para escribir, ensarnblar y depurar programas en lenguaje de rnaquina, se requiere un sistema de desarrollo para cada familia de microcontroladores. Esta cornpuesto por un paquete de software con editor, ensamblador y simulador de programas y, al mismo tiempo, se necesita un hardware para "quemar" 0 almacenar el programa en la memoria del microcontrolador.

Figura 3.7 M6dulos especializados en los microcontroladores

Muchas aplicaciones requieren algo mas que las simples entradas y salidas de tipo digital. Pensando en ello, los fabeicames de microcontrolado res han adicionado internamente algunos circuitos especiales en algunos de sus modelos. Las posibilidades son ampHsimas y el usuario puede escoger a la carta, A conrinuacion, enunciaremos algunas de las posibilidades, las cuales iremos estudiando progresivamente en este curso. • Si los fenomenos que se necesitan medir 0 controlar son de naturaleza analoga como temperatura, voltaje, etc., se debe disponer de un convertidor an:ilogo-digital (ND) de varios canales. • 5i hay que medir periodos de tiempo 0 generar, en las salidas del circuito, tiernpos, tonos 0 frecuencias, hay que tener uno 0 mas contadores programables (timers). • Si la informacion obtenida en un proceso de medida 0 control, a el resultado de los calculos del programa, se deben enviar a otro microcontrolador, a una computadora 0 a una red, es muy iitil tener un circuito RS-232 para comunicaciones seriales.

• Para quienes requieren salidas PWM (rnodulacion por ancho de pulse) para el control de motores CC 0 cargas resistivas, existen rnicrocontroladores que pueden ofrecer varias de elias. • Cuando se requiere atender eventos en tiernpo real 0 exisren procesos que no dan espera, se debe utilizar la tecnica Hamada de "interrupciones". Cuando una seiial externa activa una linea de interrupcion, el rnicrocontrolador deja de lado la tarea que se encuentra ejecutando para atender una situacion especial y luego puede regresar a continuar con la labor que esraba desernpefiando.
Reterencia 81151 81152 8031 8032 8751 Memoria ROM Memona RAM 4K 8K 128 256 128
256

I TImers
2 3
2

Extema Extema
4K (Eprom)

3
2

128

Tabla 3.1 Microcontroladores de la familia INTEL 8051

En la figura 3.7 se presenta el diagrama de un posible circuito con microcontrolador que inc1uye la mayoria de los elementos que se utilizan en aplicaciones de medici6n, instrurnentacion y control.

Puerto serial

P1 I P2 Direcciones/Datos

I PO

P3

TXD

RXD Figura 3.8 Nucleo del 8051

Curso pr;ictico sobre Microcontroladores

17:.:

Principales famllias de d
Actualmenre existen en el mercado varias marcas reconocidas como las mas importantes dadas sus caracterfsticas, comercializacion, soporte teenico, diFusi6n, usos en la industria yen la fabricacion de producros de consumo masivo, etc. Entre ellas estan Motorola, Microchip, Intel, Philips, National y ATMEL.

• (" < Los componentes de esta familia de microcontroladores tienen una caracterfstica en cornun que los hace diferentes al componamienw conveneional de un microprocesador: tierien un espacio para las direcciones de datos (lectura/escritura) y otro para las direcciories de programa 0 de lectura solamente.

de Intel fue el8048, en el coal la memoria RAM estaba dentro del circuito integrado, pero eI programa debfa almacenacse externarnente; posterior a el, en los afios 80, nacio el 8051. Esta familia de microcontroladores ha sido una de las difundidas en el mundo e incluye varies miernbros, cada uno de eIlos acondicionado para aplicacionesespecfficas, Todas las versiones existenresestan conformadas segun un micleo basico (8051 Core) cuyo diagrarna de bloques se rnuestra en a figura 3.8.

EI primer microcomrolador

de programa puede ser hasta de 64 Kbytes. En las versiones que tienen ROM y EPROM, los 4K, 8K 0 16K inferiores de program a, estan alojados en el microcomrolador. Todos los rniembros de la familia ejecutan las misrnas instrucciones. Este conjumo de instrucciones ha sido disefiado pensando en optirnizar aplicaciones de control de 8 bits. Ofrece una variedad de modos de direcionamiento para accesar la memoria RAM interna con el fin de facilirar las operaciones de 8 bits en una estructura de datos pequefia.
I r
L

La memoria

mas

Tienen la misma CPU, memoria RAM, ternporizadores, puertos paralelos y entradaslsalidas de tipo serial, segun la distribucion que se rnuestra en la tabla .3.1.

El 8051 tiene 4 kilobytes de memoria ROM


que se deben programar durante el proceso de fabricaci6n del circuito inregrado, En el 8751, la memoria ROM se ha reemplazado par una memoria EPROM que el usuario puede programar can un aparato especial y borrar con Iuz ultravioleta. EI 8031 es un caso especial; no tiene capacidad para memoria ROM interna y, por 10 tanto, la memoria de programa se debe colocar externarnente. Para realizar lacornunicacion con la memoria externa, se deben ernplear tres de los cuatro puertos paralelos de entrada/salida que tiene. Esta posibilidad de expansion de la memoria RAM y ROM con circuitos exrernos, es una caracterfstica propia de los microcontroladores de esta familia.

de instrucciones proporciona un sapone fiUY amplio para variables de un bit. De esta manera, se puede lograr la manipulaci6n en los sistemas Iogicos y de control, que necesitan operaciones de algebra de Boole. La informaci6n sabre el nucleo del 80S 1 se hizo publica y en ella se han basado orros fabricantes para llevar a1 mercado versiones actualizadas can mejores caracterfsricas en cuanto a velocidad, consumo de corrienre, funclones adicionales, etc., como el caso de Phillips y ATMEL.

EI conjunco

Los microeontroladores Motorola se derivaron del microprocesador 6800 y han sido oprirnizados para aplicaciones de control especializado, formando parte de aparatos de produccion masiva como juguetes, equipos de video, irnpresoras, elecrrodomesticos y son de amplio usa en la industria aurornotriz.

Curso pr;icticosobre MicrocDntroladores

<::;~

#~

.,f> '\."'~

!f

t:-{}!

1:>"'~

","
<,._<:>

,,#

~§' §-'Ii

MG611HC05B6 MC68HC05B3.2 MG68 HG705SR3 MC68HCV05L 16 XG68HC908GP20 MCtiSHC90BGP32 MC611HC90llJ K1 MC68t!C90&JK3 MC68HCI200 MC68HC811E2 )(CS8HC812A4
)(C68HC91 ZB32

8 ·8 8 8 8

6K
32K

76
528 192 512 512 ·512 128 12B 192 256 2114&EEPROM 4K EEPROM 768Ea'ROM 32K FlASH 3.75K 16K 20K FlASH 32KFlASH 1.5KFlASH

2 (16 Bits) :2 ue Bits)


.I {B Bits]

32 32 32 39 33 33 15
15

SCI SCI

B can al1l6l8 Bits 8 canales 4 canales

3,3 - 5,5 3,3 - 5,5 3,3" 5,0 3,3 - 5,0

4.0 2.1 2.1


2.1

56S0lP 56SDIP 40 DIP aOQFP 40 DIP 40 DIP 20 DIP 200lP 40PDlP 4BOIP

2 (16 Bltl) 1 (8 BilS) 2 (16 Bits)


2 (16 Bits)

SlOP

SCIISf'1
SellS?1

8 canales 8 canales 10 canales 10canaiBs

3,0- 5,0 3,0 - 5,0 3,0 - 5,0 3,0 - 5.0 3,0 - 5,0

8.0 8.0 8.0 8,0

~
8 8 8 8 16
1'6

:2 (l6 Bits) 2 (16 Bits) 11.16 Bits)


1 (168its)

4K FLASH

16 Exp.
38122EJ;p.

SCII~PI Sel/Sfl SCVSPI SGVSPI 8 canales 8 tanales 8 canales

5 3,3·5 5

lK lK

8 (16 Bits) 8 If6 Bits)

+ de91 + de '63

BID
8

112 LaFP
80QFP

Tabla 3.2 Microcontro/adores Motorola

Exisren cinco familias principales: la 68HC05, la 68HC08 y la 68HCll de 8 bits, y la 68HC12 y la 68HC16 de 16 bits; cada una de ellas con una CPU diferente .. Dentro de la familia 68HC05 existen mas de 30 microcontroladores disrimos, todos construidos a partir de la misma CPU de 8 bits e incluyen RAM, ROM, puerros I/O y ternporizadores, algunos rienen adernas, puertos seriales, convertidores analogo-digirales y mernorias EEPROM 0 EPROM como 10 describe la tabla 3.2. Los micro control adores de la familia HC08 poseen puertos seriales, conversion AID, interfaces para cedes CAN, PLL, P"W1v1,erc., dependiendo de la referenda.

vard .. Este tipo de arquitectura fue ramada par General Instruments para su CPU CP1600, y de esta empresa surgi6, alrededor de 1985, una division que se ubicoen Arizona y que tomo el nornbre de Microchip Technology, con el microcontrolador PIC como su producto principal. Los microcontroladores PIC se dasifican en tees grupos dependiendo de la longirud de la palabra de instruccion que pueden manejar (I2, 14 6 16 bits), romando las referencias 12CXXX, 16XXXX, 17XXX Y 18XXX. Nota: Las X en estes nornbres quieren decir que en esos espacios se ubican divers os mimeros y letras, segun el ripo de integrado. ___ ~_-"J Sus fabricantes definen a los PIe como microcontroladores de 8 bits tipo RISe (Reduced Instruction Set Computer Computadora con un CODjunto reducido de instrucciones) de bajo costo, bajo consumo de porencia y alta velocidad de operaci6n.

. ip

Las rafces de los microcontroladores de esta empresa, se hallan en la Universidad de Harvard cuando se desarrollaba LIn proyecto para el Departamento de Defensa de E.E.U.U. en el cual se utilizaba un nuevo disefio en cuanto a fa disposicion e interaccion de LaCPU con la memoria, el cual tom6 el nornbre de arquitectura Har-

Noestan muy alejados de la realidad: ya estmen desarrollo microcontroladores PIC de hasta 40 MHz y el consumo de potencia es de 50

T1EMPO

MEMORIA

PmIJ'ERICOS

AJENTES

PlCl6C54 PlCl6e56

20 512 20 lK

25 25
36

TMAO

12 2.5-6.25 12 2.5--6.25 3 13 3.0"6.0

. 16-pil1 DIP, Is-pin SOle, 20 pi~ SSOP lS"pin DIP. 18-pin sole. 20 pin SSOP lS-.pin DIP, IS-pin sec 16-pln OfP.16-pln

TMRO
TMRO

PIC16C61 20 lK PlCl6C71 PlC16C74 P!Gl6C84

20 lK
20 4K 10 lK

36 192 36

64

TMRO
ThlRO, ThlAl,TMR2 l'MAO TMRO,1MAI , TMR2, TMRa l'MAO, TMR1, TMIl2, lMRS TMRO,TMRI. ThlR2 ThlRO, TNJR1,TMR2 2 2· 5i 81 2 SPIl12ClliC~

4ch

4 • 13 3.0-6.0 12 33 3.. -6.0 0 4 1133 11 13 2~n-6.0 4.5-5_5 33 2.Hi.O 22

sac
sOle

5i 8 ch

4O"pin DIP, 44-pin RLCC. 44 pin OFP' IS-pin DIP. IS-pin

PIC17C42 25 2K PlC17G44 25 8.K

232
454 192 128 369 258

4O-pin DIP. 44-pin PLCC. 44 pin QFP .40-.pin DIP. 44-pin PlCC. 44 pin OFP 51 28-pln DIP SOIC Si 4O"pin DJP

4K 8K

PIC16F873 20 PlCl6fSn 20

2 MSSP tJsar( No 2 .MSSP Usat1 Si

5 eh 51 B ch 5i

13

14 . 33

soie

Tabla 3,3 Algunos mode/os de microcantroladores PIC

rnicrowatios a 32 Khz de operacicn y 6 rnicrowatios en modo de reposo 0 standhy.


La arquitectura de los PIe se basa en registros con mernorias y buses separados para las instrucciones y los datos, llamada arquitectura Harvard .. La memoria y el bus de datos (RAM) son

p
Esta empresa maneja [res grandes grupos de microcontroladores RISe cuyas CPU llegan hasta los 32 hits. EI primer grupo tiene una arquitectura basada en el 8051 de Intel can memoria de programa tipo Flash. El segundo grupo son los microconrroladoresAT91, los cuales 50portan compilador en C, emulador, etc. EI ultimo grupo 10 conforman los rnicrocontroladares AVR, de arquitectura RISe y epu de 8 hits, y modules USART, SPI, ADC, etc. En la tabla 3.4 se rnuestran las caracrerfsticas principales de algunos modelos de esta marca,

de 8 bits de ancho, rnlentras que Ia memoria (EPROM) y su bus tienen 12 bits. La tecnologfa de los microcontroladores ha permanecido en constante evolucion en cuamo a tecnologia de fabrlcacicn y cualidades ofrecidas. Los microcontroladores PIC de ultima generacion son rnaquinas asombrosas; par ejemplo se tienen proyectados PIC de tan solo 8 pines can converser AJD y memoria Flash .. Algunos llegan a poseer hasra 100 pines, y segun la referenda, incluyen una buena variedad de modules internes que curnplen can una gran cantidad de funciones como puertos seriales, PWM, comparadores, etc. En la tabla 3.3 renernos una Iista de algunos rnodelos de estes microconrroladores con algunas de sus principales caracrerfsticas.
Curso pr:acl;ca sabre MicrocantroJadores

AT91M40aoo AT91F40B16 AT91M404oa

4K

2 1

32 2.7·3.6 32 ,4.0·6.0
15

33 24 24

A189C51 A189Cl051 A189C2051

41< 12B 22

1K 64

2.7-6.0

2K 128 2

15 2.7·6.0

24

<S> a.¥-rc'7:::'

Tabla

3.4 Microcontrofadores

ATMEL

La familia de microcontroladores PIC ha


conquistado, en los ultimos afios, un espacia importante entre los disefiadores de tada dase de circuitos de instrumentacion, medicion y control, as! como entre los experimentadores y estudiantes de esra tecnologia, par 10 tanto, vamos a dedicar parte de este cursa a explicarlos.

El crecimiento de fa participaci6n de estos microcontroladores en el rnercado mundial ha sido posible debido ala capacidad de estos dispositivos de satistaeer las necesidades, cada VeL mas exigentes, de los ingenieros y tecnicos de todo el mundo, Este ere-

de codigo 2. Depuracion de los programas 3. Dispositivos program adores 4. Tarjetas de evaluacion de los productos 1. Generad6n Todas las herrarnientas de desa:rrollo de Microchip operan bajo el entorno del programa MPLAB. Las herramiemas de generaci6n de codigo son MPASM, MPLAB-C y .MP-DriveWayTM. Las herramientas para depuracion del codigo son: PIClvIASTER® emulador In-Circuit, ICEPICt Emulador In-Circuit y el MPlAB-SIM 0 simulador de programas. Despues de generado el codigo de la aplicacion, el dispositive debe ser programado. Microchip ofrece dos niveles de programadores: el PICSTART Plus yel PROMATE II. Las tarjetas de demostracion permiten al usuario evaluar la capacidad y disponibilidad del dispositive para una aplicaci6n determinada. Ellas son: PICDEM-l, PICDEM-2, PICDEM-3 y

cimiento tambien se alimento par Ia variedad ofrecicia en sus presentaciones y tipos de memoria, Algunas de las razones que justi£caron esta aoogida son:
• Sencillez de manejo por su juego reducido de instrucciones • Buena informacion: noras tecnicas, proyecros en mternet, etc. • Precio y disponibilidad en el mercado • Herrarnientas de desarrollo faciles y baratas

La empresa Microchip fabrica, entre otros rnuchos productos, microconrroladores de Sbia de proposito general de arquirecrura RISe (conjumo reducido de insrrucciones), bajo consumo de potencia y una distribucion interna en donde la memoria de programa (ROM) y la memoria de datos (RAM) se encuenrran en bloques separados, cada una con su propio bus de acceso (estrucrura Harvard).
Ellos se clasifican dependiendo de la longirud la palabra de sus instrucciones. Actualmente tres families de microcontroladores PIC son: Linea Base 0 basica palabras de 12 bits de Iongirud Rango Media; palabras de 14 bits de longitud Rango Alto: palabras de 16 bits de longitud

PICDEM-l4A.

r
Podemos estudiar cada microcomrolador PIC teniendo en cuenta tres aspectos fundarnentales: 1. El ruicleo 2... Los perifericos 3. Las caracterfsticas especiales

de

las 1.
2.

3.

Los disposidvos de la linea basica cienen las referencias 12CXXX los de rango medio 16CXXX y los avanzados se nombran como 17CXXX y 18CXXX; figura4. I. Cuando desarrollamos un proyecto con microcontroladores PIC, debemos elegir e1 microcontrolador mas adecuado dependiendo de sus caractedscicas. Estas se relacionan direcramente con las funciones que se puedan ejecurar con cada microcontrolador y su tecnologia de fabricaci6n.

mas

Se refiere a las caracterfsticas fundamentales que se requieren para realizar su operacion basi ca... nE tre ellas estan:

Es un circuito que se utiliza para generar la sefial de reloj del dispositive. Esra sefial es necesaria para que el rnicrocontrolador ejecute las instrucciones y para que funcionen los perifericos. Entre los circuitos de oscilacion mas comunes estan los basados en crisral, en red RC y los de resonador.
J Se usa para Ilevat al microcontrolador a un estado conocido. En este esrado se establecen por 10 general las condi-

r
Microchip y otras empresas, ofrecen un amplio rango de herrarnientas de desarrollo que perrniten agilizar la elaboracion y depuraci6n de los programas. Estas pueden dividirse en cuatro categorfas:

'1r..:. CUrso practico

sobre Microcontroladores

ciones de inicio con que siempre empieza el sistema y con las que un producto electronico garantiza un buen funcionamiento de todas sus tareas, Es la responsable de tamar la informaci6n de la memoria de prograrna (instrucciones) para controlar la operacion de todo el sistema.. En un sistema con microcontrolador muchas de las instruceiones operan sobre la memoria de datos. Para operar en esta memoria, se requiere de la ALU, la eual permite el desarrollo de las operaciones artimeticas y logicas sobre ella.
Or
r

Los perifericos son los elementos que en realidad diferencian a los microcontroladores PIC de un microprocesadar. Ellos hacen posible la comunicaci6n con el mundo exterior (puertos I/O, rnanejadores LCD, entradas A/D, PWM, etc.) y la realizaci6n de divers as tareas tales como (ener diferentes bases de tiempo. Los principales perifericos de un microcontrolador PIC son: 1..lSlin a
)

Existen dos bloques de memoria que se tratan en este pun to: la memoria de prograrna, la cual se divide en baneos se1eccionables por programa, y la memoria de datos; cada bloque cuenta con su propio bus. La secuencia de las instrucciones esta controlada por el contador de programa (PC), el mal se incrementa en cada paso, para ejecurar las instrucciones grabadas en la ROM. d nit: . Los microconrroladores PIC rienen varias fuenres de interrupci6n. Estas Fuentes incluyen a los rnodulos perifericos,
L

r Permiren que el PIC reciba y envie sefiales desde y hacia el mundo exterior. Ademas, se utilizan para vigilar y controlar otros disposirivos. Para dade mas flexibilidad al dispositivo, algunos pines se multiplexan con funciones alternas. Esro quiere decir que en unos casos las mismas llneas pueden sec pines de entrada/salida. o en arras casos, realizar otra funci6n. Se urilizan para esrablecer bases de tiempo confiables, medir el tiernpo entre eventos, contar eventos exrernos, etc. En los rnicrocontroladores PIC pueden existir diferenres tipos de temporizadores como: TimerO. Temporizador de 8 bits. Timerl. Temporizador de 16 bits. Timer2. Temporizador de 8 bits.
10<'; III UI.. Lil

Cada instruccion

se divide en un c6digo de operacion (OPCODE), que especifica el ripo de insrruccion, y uno 0 mas operandos que especifican la operaci6n de la instruccion. En el siguiente ejernplo observarnos el codigo de operaci6n de la instruccion MOVLW 06H: ,.

. Cada modulo CCP conciene un regisrro de 16 bits que opera como registro de captura, como un registra de comparaci6n 0 como un registro de PWM de 10 bits. Estos modules son muy utiles en distintas aplicaciones tales como el control de motores 0 cargas resistivas, comparacion de sefiales y otras.
I I! Este m6dulo es una interfaz serial para la comunicaci6n con otros micracontroladores U otros perifericos tales como rnernorias seriales, regisrros de desplazarnienro, conversores ND, etc.

13
OPCODE MOVLW 30

7 ... 0 k (literal)

(bits)

06H

06

instruccion c6digo operative

Es una inI terfaz serial para eomunicarse con orros disposir Curso practlco sobre Microcontroladores

rives. Puede operar en dos modos distinros:

SPITM 0 12

CTM.

cacion ..Cuando el circuito se alimenta, e1 estado de estes bits dererrninan su modo detrabajo.

r r O!\ ri· I '{n~"{li rna ~ (\1 ". Esre es otro modulo para comunicaci6n serial tipo SSP.
Se denomina m6dulo universal receptor transmisor asincrono, Es uno de los dos ripos de puertos seriales (el orro es el SSP). Puede conEgurarse en modo foll duplex 0 como half duplex.
~('J .

~S.\RT

1 I Cuando se aliments el sistema, se puede generar unestado de reset que 10 obliga a llevar el contador de programa a la posicion inicial.

"

~I t

..,(.

reset en el memento en el voltaje de alirnentacion,


'" rr"

Origina un estado de en que se detecra una Falla

tEste modulo se usa nOImalmente en conjunto can el modulo comparadar. Se puede entender como una red de resistencias que proporciona un voltaje de referencia seleccionable.
Relere
s ,It: o
I

C J ~ J .. ores.Algunos PIC contienen dos camparadores anaJogos de sefiales. Las entradas a los cornparadores se rnuhiplexan con pines I/O.
,(l ,..., ~ (

Es un oscilador tipo RC ubicado en el interior del circuiro integrado que no requiere eomponentes externos, Se utiliza para prevenir fall as carastroficas en la operacion de un sistema, cuando el PIC se bloquea par alguna razon. Tambien se puede urilizar para temporizar a como detector de pulsos perdidos.
I' ( (> r
\
I

e~

Convierten una se-

-1

Ir'

(.

'1

1rl (J

\J

\'

1)

fiat

aniloga en un dato digital de 8 bits.

ve "it) 1!!I 0\ 'D ~tJ ,1,'1 Convierten una sefial analoga a un data digital de 10 bits. Manejadores c d f L (u II.. e C qi iuo ( C·)\ Este modulo genera eI control

c."

En este modo de trabajo el oscilador del PIC es desactivado y se presenta un consumo minima de potencia. Cuando el sistema 10 requiere, el microconrrolador vuelve a s-u estado de consume normal. '1 ' Cuando no se tienen requerirnienros exigenres de manejo en la precision del riernpo, se puede utilizar una red RC como oscilador externo 10 que permire un dise<;.

de tiernpos para manejar un panel LCD. Tambien proporciona el control para los pixeles de datos del LCD. Pue 003 .1. J • es h .. .J"r~l.Algunos PIC poseen un puerto paralelo de 8 bits.
n /

fio ruuy economico,

at,

·s·C s

ec' les

Las caracterfsticas especiales ayudan a disrninuir el costo del sistema ya incrementa! su funcionalidad y su flexibilidad. Los microconuoladores PIC de rango media ofrecen algunas caracteristicas que curnplen can esos objetivos: Bit. ue c ).l!:bdraci.Jl. de uisp )s·.: C' Permiten que cada usuario personalice ciertos aspectos del microcontrolador que va a utilizar para su apli-

Program ..It _ [r> cl c ' ) Es la posibilidad de programar los mieracomroladores demro de la aplicacion 0 circuito final. Esro se haee mediante cinco Ifneas: una para el reloj, orra para los datos y arras rres llneas para la alimentacion y el voltaje de programacion ..
L

Con todos estos factores, podemos establecer un diagrama de bloques generico de un microcontrolador PIC, como el que se muestra en Ia figura 4. I..

Bus de datos

MCLR

voo, VSS

Modulos peritericos

Figura 4.1 Diagrama de b/oques general de un microcontrolador PIC de rango media

de

... t~' i ,

Una vex se han analizado los requerimienros funcion ales del dispositive, se deben estudiar arras aspectos como: tecnologia de la memoria, voltaje de operacion, ran go de temperatura de operaci6n,
frecuencia de operacion yencapsulado. Microchip

posee una buena cantidad de opdones entre las cuales podemos escoger la mas indicada.

m
grarnacion,

Dependiendo de fa aplicacion y el modo de prohay varias tecnologfas para la memos

Curso .,ictlCD slJlJre Micro __

4ic,z:. <Z>

ria en los rnicrocontroladores PIC. Esta tecnologfa de fa memoria no afecta la operacion Iogica deldispositivo, Debido a los diferemes procesos de fabricacicn y las distinras tecnologfas, algunas caracrerfsticas elecrricas pueden variar entre dispositives, a pesar de que tengan las mismas fun. . crones y ptnes. Cada uno de los tipos de memoria que estan en los dispositivos, hace que cada uno de elias presence una variedad en la respuesra de frecuencia yen las opciones de encapsulado, Dependiendo de los requerimienros de la aplicacion y de la produccion, las opciones propias del dispositive pueden idenrificarse usando las hojas de datos suminisrradas por los fabricanres.

Ra "go de vo Itaje

EPROM
C LC

ROM

FlASH 4.5 - 6.011 2.0·6.0

Estindar ExlemlidD

4.5 - 6.0\1 2.5·6.0

cn
LCR

4.5 - 6.011 F
2.5·6.0 LF

Tabla 4.2 Ral1gos de voltaje tfpicos para cada tipode dispositivo

~t
Estes dispositivos son borrables electricamenre y se ofreeen en un encapsulado plastico de bajo coste; pueden borrarse y reprogramarse.

Opcione~ de rango de voltaJe de


Todos los microcontroladores PIC de rango medio operan sobre un rango estandar de volraje. Algunos modelos pueden trabajar sabre unos rangos extendidos de volraje (y rango reducido de frecuencia). La tabla 4.1 muestra la designaci6n para los tipos de memoria y rangos de volraje en los microcontroladores PIC 16CXXX. Los designadores estan en negrilla. En la tabla 4.2 podemos apredar las especificaciones dadas pm Microchip para los volrajes de los distinros microcontroladores, Estos valores estan comprobados. r Dependiendo de la fase de desarrollo de un proyecto, se debe usar uno de los tres tip os de encapsulado. El primero es un dispositive can una ventana de borrado. Normalmente poseen un encapsulado cerarnico y se usan en la fase de desarrollo, debido a que permiten borrar y reprogramar la memoria de prograrna muehas veees. EI segundo tipo de encapsulado es eI plasrico de bajo coste. Por ultimo estan los dispositivos DIE (dado) los cuales se earacterizan por no tenet encapsulado. Se utilizan en aplicaciones de muy bajo costo donde el espacio de las tarjeras deba ser minima. En la Figura 4.2 se muestran los tres tipos deencapsulados ..

EI tipo de memoria utilizado en cada dispositivo se puede idenrificar en su nurnero de parte por la primera(s) letrats) asi:
1. C, como en PICI6CXXX.
Estos dispositivos tienen memoria EPROM 2. CR, como en PIC I6CRXXX. Dispositivos con memoria ROM 3. F, como en PICI6FXXX. Dispositivos can memoria Flash

Es la memoria borrable (EPROM: Erasable Programmable Read Only Memory) para que los disefiadores [engan fl.exibil1dad en el desarrollo los prototipos. de

RO

q
en version ROM (Read Only Memory) la eual es la apropiada para utilizarse en casos de produccion en serie, ya que es la economica del mercado. Microchip ofrece dispositivos

mas

"PO de memoria
EPROM

Rang 0 lie voltaj e

Estindar
PIC16C)[XX PIC16CRXXX PIC16FXXX

Extelldido
PIC16lCXXX PIC16LC RXXX PIC16lFXXX

ROM
FLASH

Tabla 4.1 Tipos de memorias y rangos de vo/tajs

.IT':"

Curso nractico so.bre Microcontroladores

vez .. Si el program a se dafia 0 se tiene que earnbiar, hay que programar e instalar en eI circuito un nuevo dispositive.

Un rnicrocontrolador

tipo FLASH perrnire modificar eI contenido de su memoria mediante una carga electrica .. Esto significa que el sistema puede ser disefiado para programaci6n dentro del circuito, Como no requieren de una venrana de borrado, estos dispositivos tienen encapsulado plastico, 10 que los hace muy economicos,

Figura 4.3 Principafes encapsufados de los microcontroladores PIC

Un dispositive EEPROM perrnite que su memoria sea borrada mediante una earga elecrrica, Esto significa que el sistema puede disefiarse para que e1 borrado yel reprogramado puedan hacerse dentro del circuito. Tampoco requieren ventana de borrado y se eneapsulan en plastico,

Dispositivos borrables con luz


La version borrable UV de dispositivos de memoria de programa EPROM es optima para el desarrollo de prototipos y programas piloto. Esros dispositivos pueden programarse una y otra vez. La cantidad de tiernpo requerida para borrar compleramenre un dispositive UV depende de La Longitud de onda del haz, su intensidad, distancia entre la fueme y el microcontrolador, y de la tecnologia del dispositive (que tan pequefias son las celdas de memoria). Nota: las bombillas fluorescentes y Ia luz del sol, erniren luz ulrravioleta can una longitud de onda que permite el borrado. Si en un dispositive de este tipo no se protege Laventana, puede ocurrir, can el riernpo, que las celdas de la memoria se borren, El tiernpo de borrado can una 102 fluorescente es aproximadamente de tres afios, mientras que con la luz del sol se requiere de aproximadarnente una semana. Para prevenir la perdida de los datos, se debe colocar una superficie opaca (p. ej. einta ais[ante) sabre la venrana de borrado.

Los dispositivos ROM tienen su memoria de programa esrablecida desde el momenrode su fabricad6n. Como ella. no puede carnbiarse, estos dispositivos tienen la presentacion en plasrico mas economics del rnercado.

Esta opcion perrnire el desarrollo de tarjetas muy pequefias, La fabricacion con DIE requiere equipas y conocirnienros especiales, 10 que implica que el mimero de casas fabricantes que soportan esta tecnologfa sea Iimitado.
..,1

Disposltivos programables
~

una vez
I

Para algunos usuaries que in corp oren la tecnologia OTp, debido a un codigo fijo para sus productos, Microchip ofreee dosencapsulados especiales: fa programaei6n rapida para produccion y la programaci6n serial rapida para produccion ..Ellas les permiten a estos usuaries ahorrar mucho tiempo en d proceso de fabricaci6n de sus productos.

y perrniten

Los dispositivos OTp, se encapsulan en plastico que el usuario los programe una sola

a. Programad6n rapida para producci6n (QTP: Quick Turn Production)


Curso practico sobre Microcontroladores

• Ir.:..<S'>

Microchip ofrece este servicio de programacion para ordenes grandes de producci6n de empresas a usuaries, que no posean un media masivo de programaci6n de Esros disposirivos son identicos alos OTP pero con todas las posiciones de Ia EPROM, y las opciones de configuraci6n ya programadas,

Mev.

b. Programaei6n serial rapida para produeci6n

(SQTP: Serialized Quick Turn Production)


Microchip ofrece este servicio de prograrnacion en el eual a eada dispositive se Ie prograrna un numero serial unico, Esros ruimeros sedales pueden ser aleatorios, pseudoaleatorios 0 secuenciales. Este tipo de prograrnacion se hace para que cada dispositive tenga un rnirnero unico que pueda urilizarse como c6digo de entrada, password 0 numero de identificacion.

(~ Ine

PROGRAMADORES Y E TRENADORES

Los programadores son disposirivos que permiten grabar en la memoria del microcontrolador eI programa escrito y ensamblado en 1a compucadora. Algunos programadores trabajan conectindose al puerto paralelo como el K-220 de CEKIT, figura 4.4; y otros, conectandose al puerto serial como los que se muestran en la figura 4.5. Un entrenador es un dispositive que perrnite realizar una serie de pracricas con microcontroladores. Se compone de una serie demodulos independientes que se pueden interconectar entre si y con los cua1es se facilita el aprendizaje de las practicas

Figura 4.5 Programadores par el puerto serial a) Programador K-224 de CEKIT


b) PIGSTARTPlus de Microchip

c) Programador Clear View Mathias

mas

comunes y fundamentales que se deb en asimilar en esta tecnologia. El K-148 de CEKIT,. 6gura 4.. , es un entrenador que tiene modules como el 7 de rnanejo de displays de siete segmemos, la adquisicion de variables analogas y cornunicaciones seriales, entre arms.

Figura 4.6 Entrenador para microc-ontroladores PIC, referencia Figura 4.4 Programador par puerto parafelo, K-220 de CEKIT K-148 de CEKfT

LOSMIC 0

01
Esta familia de microcontroladores es una de las mas difundidas y utilizadas en todo el mundo. Sus aplicaciones incluyen las cornunicaciones, el control, la electronica automo-

triz, etc. En esta leccion haremos una introducci6n a sus aspectos mas importantes como las familias en que estan divididos, sus caracterisricas, sus ventajas yen general, daremos un rapido vistazo a esta tecnologfa.

Los rnicrocontroladores Motorola tienen la reputacion de ser muy confiables, faciles de programar y, ante todo, ser unos de los mas utilizados en redo el mundo. Y no es de extrafiar ya que esta firma es lider en la fabricacion de semiconductores, especialmenre microprocesadores, microcontroladores y productos de alta tecnologia. La canddad de familias y referencias que poseen estos disposirivos perrniren que los dise-

riadores puedan escoger el mas apropiado para cada tarea especffica que se deba realizar. Como dato curiosa, pew que a la vez conflrma la calidad y versatilidad de estos microcontroladores, es que en un autornovil moderno se encuentran hasta 50 de ellos, realizando diferentes funciones como el control de frenos (ABS), en el sistema de seguridad, en las computadoras deviaje (GPS), en el control del aire acondicionado, etc. Motorola 68HCll, 68HC12, 68HC16, 683XX, MPC5XX y la familia de nucleo M (Core M). Cada una de elias tiene much as referencias distintas, las cuales pueden varia! por el tarnafio de la memoria que poseen, el numero de pines, caracterfsticas especiales como convertidores NO,. ternporizadores, inrerrupeiones, etc. Como un ejemplo de esta gran variedad, la familia de microconrroladores 68HC05 posee mas de 100 miembros ..Como el terna es tanamplio, en Iecciones posreriores trataremos principalrnenre la familia 68HC08, que es la mas indicada para iniciarnos en esta tecnologia y haremos una breve descripcion de las familias 68HCI I Y 68HC12. Las familias de microcontroladores mas eonocidas son: 68HC05, 68HC08,

aun aSI torresponder a un disposirivo 100% compatible. Por ejernplo, hay un rnicrocontrolador 68HC705K]1, otro 68HC80SK]1 y otro 68HC90SK]1. La diferencia radica en que el prirnero (705) tiene memoria de programa tipo EPROM, el segundo (805) memoria de programa tipo EEPROM y el rercero (905) memoria FLASH ..Lo que sf queda daro es que exisre una gran variedad de referencias para escoger; esto irnplica que el disefiador debe esrudiar a fonda para decidirse por la mas adecuada. En la figura 5.1 se muestra el diagrarna de pines de uno de estos microconrroladores. RESET
05'(;1

OSC2
PB3 PB2
VOD PA3 PA4 PA5

Vss
PA7

PA6

Figura 5.1 Diagrama de pines del 68HC705KJ1

Los aparatos en que se pueden encontrar esros microcontroladores son muy variados yen rarnas bien diferenres ..Esras caregorfas induyen dispositivos para aplicaciones automotrices, pwductos de consumo, cornunicaciones, computadoras y aplicaciones industriales, entre otras, A continuacion haremos una breve deseripei6n de algunas subfamilias 0 divisiones que riene Ia familia HC05. 6~·· ,",' Es un dispositive de proPOSlto general cuyas principales ventajas son un poderoso ternporizador y una memoria para daros tipo EEPROM de 256 posiciones, Otras caracrerfsticas incluyen memoria de programa desde 4K hasra 32K, memoria RAM desde 176 hasta 528 bytes, 8 canales AID, comunicaci6n serial no sincronica, etc. ~ ( ( Ih. Son elementos de prop6sito general cuya principal vemaja es su temporizador de 16 bits, eI eual esta acornpariado por un modulo de captura y un modulo de

CD....
Esta es una de las familias de microcontroladores mas populares en el mundo, con mas de 2 billones de unidades vendidas. Posee una ventaja adicional y es la compatibilidad de sus programas can la familia HCOS, 10 que perrnite hacer migraei6n de disefios hacia dispositivos de alto rendimiento de una manera facil y rapida, Cuando se especifica una referencia en particular, esta puede sufrir algunas variantes y

mas

_'1'::.

Curso practic(} sabre Microcontroladores

comparacion, Adernas, ofrece tamafios de memoria de pro gram a des de 4K hasta 16K, que 10 capaciran para realizar (areas basrante complejas. Posee interlaz de comunicacion no sincr6nlca SCI (Serial Communications Interface), con velocidad ajustable por programa. desde 75 Hz hasta 13 I KHz; tambien incluye una inrerfaz SPI (Serial PerifericaL Interfoce) de 4 hilos y alta velocidad .. El watchdog timer 0 circuiro de vigilancia tambien es una de sus caracterfsticas importantes. ( (( Estas son las familias de bajo costo y vienen enencapsulados de 20 y 16 pines. E1 tarnafio de su memoria de programa va desde O,5K hasra 2K, con memoria RAM de 32 hasta 128 bytes. El rnicrocomrolador 68HC705K]I es el mas econornico de todos, .t < Es una familia de rnicroconrroladores de proposiro general de 28 pines, poseen memoria de prograroa desde 2K hasta 8K con memoria RAlvf des de 96 hasta 192 bytes. Tienen cornunicacion serial no sincronica, temporizador de 16 bits con modulo de caprura y de comparacion, convertidor AID de 8 bits con 4 canales de entrada y capacidad de manejar alta corrienre en algunos pines. IJ Su principal caracteristica es que posee un controlador para manejar una pantalla de cristal Hquido a LCD, can un tamafio que va desde 8 caracteres por 4 Bias hasra 16 caracteres par 60 BIas. La memoria de programa va des de O,6K hasta 24K con memoria RAlvI de 32 hasta 768bytn Incluye rernporizador de 16 bits con m6dulos de capwra y comparacion, cornunicacion serial sincronica y no sincronica,

IRDl
VSS

RST
PTD4 PTIl5 PT02 PTD3 PTllO

OSCl OSC21 PTAo IIDD PTB7 PTBS PTBS PTD7

PTB2

mas

Figura 5.2 Oiagramade pines del 68HC908JK3

Las principales
{ : (ij .

subfamilias

de la He08 son:

La principal caracterfstica de esta

C06
Estos microcontroladores permiren una f;kiI migracion del ccdigo desde el He05, poseen una velocidad in terna hasta de 8 MHz, una pila de 16 bits, instrucciones de multiplicacion y una memoria de 64K para programa y datos; SLl disefio rninirniza el consume de potencia. Hay versiones con memoria FLASH y EPROM. En la figura 5.2 se muestra el diagrams de pines de uno de esros microconrroladores.

subfamilia es que in corpora un controlador de bus mulriplexado que perrnire una avanzada cornunicacion serial. Una aplicacion npica de este sistema esta en los automoviles, donde muchos microcontroladores se pueden cornunicar sobre un bus de uno 0 dos hiles para el diagn6sdco de cada una de las operaciones del vehiculo con un riesgo minimo de interferencia 0 ruido en los datos. (r IJ Esta subfamilia contiene una interfaz CAN. Esta es un protocolo muy popular en redes de autornatizacion industrial y redes autornotrices. o( Esta familia es muy recornendada para aplicaciones de proposito general, cuenra con memoria FLASH, convertidores AID, puertos seriales sincronicos y no sincr6nicos, PLL, ternporizadores y PWM. 1- 0 Esta subfamilia brinda unas poderosas caracterfsticas y es especial para aplicaciones de pro~ posito general donde se requieran disefios de bajo costa. Se encuentran disponibles en encapsulados de 20 y 28 pines, memoria FlASH 0 ROM, conversores ND, entre otros. Las versiones JK, par ejernplo el68HC908]K3, son parte de ella.
" !

I\'l

Esras subfamilias incorporan

un sistema avanzado de PWM de 6 canales y 12 bits, convertidores AJD y puerros seriaies, que las haec ideales para el control de motores trifasicos. ( L 8. 2. Esta subfamilia posee integrados con memoria FD\SH de 2 hasta 8Kbyres, 196 bytes de memoria RAlvf, un ternporizador de 2 c;,us ••

_CD $"'" ... ""'-""'."'" __

,T":

canales y 16 bits, cuarro canales de conversion AlD, intertaz de comunicaci6n serial no sincronica y de 13 pines 110. tth IC)(, HRK) Esta subfamilia menta con 2K de memoria FlASH programabledencro del sistema, 128 bytes de memoria RAM, un temporizador de dos canales y 16 hits, Y III voltaje de operaci6n de 1.8 V

VOD PD51SS
PD4iSGK PD3lMOSI PD2fMISO PDlfhD PDOiP..D IRQ XIRO

mas

La hlmir

He

RESfT PC71A7lD7 PC6rA6JD6 PC5tASiD5 PC4IMID4 PC3IA3ID3 PGVA2ID2


Pel/A1101

Esta es una familia de microcontroladores de 8 bits de muy alto rendimienro, su arquitecmra es compatible con fa HCOS y su programacion es compatible
con la familia de rnicrocontroladores de 16 bits 68HC12; esto hace que la migraci6n de disefios de una familia a otra sea bastanre rapida Dentro de sus caracterfscicas sobresalientes se encuentran:

mas

PGIlIAOfOO

EXTAL

• Ha sido optimizada para un bajoconsumo de potencia • Posee un sistema de interrupciones muy avanzado • Muchos de sus miernbros poseen memoria

STRBlRW STRNAS MOD


MODAILIR

EEPROM
• los ultimos miembros de esta familia incluyen un coprocesador matematico can Unidad Aritmetica Logica (ALU) de 16 bits para rapidas operaciones de rnultiplicacion y division • Un registro acumulador de 16 bits, 0 dos de 8 bits • Seis modos de direccionamiento La familia 68HCII posee un rniernbro llamado 68HCI1E9, el cual fue el primer microcontrolador en incorporar memorias EPROM y EEPROM en el mismo circuiro integrado; ademas, incluye otras caracterfsticas como son 12K de memoria EPROM, 512 bytes de EEPROM, 512 bytes de RAM, interiaz SCI, converridor ND de 8 eanales/S bits y 38 pines de entrada/salida. Este microcontrolador es muy utilizado por los experirnentadores en robotica, Denno de los 68HCll se tienen seis principales series de rnicrocontroladores; todas cuentan con puertos seriales SCI y SPI, memoria EEPROM y ADe; ellas sao: -;qp ,

Figura 5.3 Diagrama de pines del 68HC11

•(

Fue la primera en cornbinar EEPROM

50]0 circuito inregrado, Tienen buena capacidad de pines U 0, memoria RAM de 1K y un bus de SMHz. 8 Son dispositivos muy poderosos; el 68HCllK4 y el 68HCIIKWI ofrecen alta velocidad, MMU (unidad para el rnanejo de memoria) y P\X'M. Esta serie ofrece PLL, buena memoria y tres puerros seriales. En 13 figura 5.3 se muestra el diagrama de pines de el rnicroconrro-

y EPROM en un

lador MC68HC lIAS.

Este es un poderoso microcontrolador de 16 bits y segun Motorola reune 10 mejor del 68HCll y mucho mas .. Entre sus principales caracterfsticas seencuenrran: • Bajo consume de potencia y operacion a bajo

volraje

Esta serie ofrece una alternativa econo-

mica para aplicaciones donde no se requieran funeiones avanzadas, ni mucha canridad de memoria.

• Mernorias Flash y EEPROM en un solo cireui to integrado ·lnsrrucciones de 16gica difusa (Fuzzy Logic)

• Bus de datos de 8 6 16 bits • 64 nuevas instrucciones adicioriales a las ya conocidas del 68HCll • Unidad Aritrnetica Logica (&U) de 20 bits • Convertidor AID de 8 canales/8bits

·PWM
Dos de los principales rniernbros de la farnilia 68HC12 son el 68HC812A4 (A4) yel 68HC912B32 (B32). Ambos se basan en una CrUl2, una serie de modulos perifericos adicionales, El B32 fue el primer microcomrolador de 16 bits con memoria FLASH EEPROM en su interior ..En la 6gura S.4 se rnuestra d diagrama de pines de uno de estos microcontroladores,

128K de flash EEPROM, 2K de EEPROM, 8K de RAM, dos eonversores A/D, dos temporizadores de 8 canales y 10 bits de resolucion, filtro pasabajo, modules CAN, cuatro canales PWM, modulo contador de 16 bits, inrerfaces seriales SCI, SPI, I2C, etc.

mas

Tambien se basa en una CPU de 16 bits. Su conjunco de instrucciones soporta lenguajes de alto nivel, La CPU de 16 bits es compatible con los rnicroconrroladores HCl l , algunas de sus principales caracterfsticas son: • Funciones de procesarniento digital de sefiales (DSP) • 1 Mbyte deespacio para memoria de programa • 1 Mbyte de espacio para memoria de datos • 2 acumuladores de proposito general de 16 bits • 3 registros Indice de 16 bits • Rapids respuesta ante interrupciones • Modulo CAN • Versiones de 16, 20 Y 25 MHz

flU I Q , Sus principales caracterfsricas son una CPU de 16 bits, 1 K de RAM, 4 K de EEPROM, dos interfaces seriales (SCI) y una interfaz serial periferica (SPI), un tern porizador y co nverso res AID. () -II Tarnbien posee una CPU de16
~T _ ,

bits, 32 K de flash EEPROM, lK de RAM, 768 bytes de EEPROM, interfaces SCI y SPI, un ternporizador de 8 canales, conversoresAJD, y PW1vl de emma canales .. tIL'}11 ")(-J!8. CPU de 16 bits, altamente compatible con el HCIl, ALU de 20 bits,

• Convertidor NO L1s principales variaciones de lafamilia HC16 son:


('1' {.....I ~} Es 1a mas adecuada para aplicaciones can mucha memoria y que utilicen comunicaciones seriales y funciones analogas, I _~ _ I Esra familia integra en los circuitos memoria FLASH 0 ROM, unidad de procesarnienro de tiernpo, (res interfaces seriales (dos SCI y un SPI) yconvertidores AlD. ~~ Son de bajo costo, memoria

FLASH, rnodulos seriales y funciones analogas.

,
Estos poseen una arquitecrura RIse de 32 bits, instrucciones de 16 bits, perrniten la emulacion gracias a su arquirecrura interna y poseen un diserio para bajo consume de porencia,

Figura 5.4 Diagrama de pines d'3168HC912832

Tienen arquitectura

de 32 bits, relo] a 40 MHz,


¥~

Curso praaticosobre Microcontroladores

. IZ;.~

unidad para el trabajo de operaciones de puntO flotante, interfaz para la emulaci6n, etc.

Estos microcontroladores estan disefiados para soportar lenguajes de alto nive], cuentan can 16 Mbytes de memoria de programa, poseen un bus dinamico de 8 6 16 bits, y vienen en versiones de 16MHz, 20MHZ 6 25 MHz. Las principales subfamilias de esta categoria son: Son subfamilias especiales para aplicaciones donde se requiere mucha memoria, cuentan con puertos seriales y m6dulos avanzados de temporizacion: Ia 68CK338 cuenta ademas con un reloj en tiempo real y un modulo ternporizador de 20 canales. Las l 10 se componen de dispositivos disefiados para trabajar bajo condiciones arrnosfericas complicadas, al igual que donde se requieran altas velocidades, cornunicaciones seriales, redes CAN y sistemas sofisricados de adquisicion desde multiples Fuentes.

bladores y depuradores, Todos estes elementos permiten desarrollar, monitorear, probar y depurar su c6digo, para que las aplicaciones funcionen bien y dpido. Existe una gran cantidad de modelos, los cuales se ajustan a las necesidades y presupuestos disponibles, figura 5.5. Algunos de estos disposicivos son de bajo costo, pero a pesar de ello ofrecen muchas venrajas, como por ejemplo capacidad de ernulacion en el circuito de la aplicaci6n y, aunque esra tarea no se ejecute en riernpo real, es de gran ayuda para agilizar el trabajo y disrninuir el tiempo de desarrollo de los programas. Orras caracterfsricas son: • Ambiente de desarrollo toralmente integrado bajo Windows • Se puede examinar y modificar la memoria, los registros y los pines de entrada/salida • Acepta hasra 64 breakpoints (puntas de parada) • Diferentes modos de ejecuci6n en pasos 0 de corrido • Programa rnicrocomroladores OTP y EPROM • Conexion serial ala computadora CEKIT S.A., como empresa lfder en el diseno y fabricaci6n de material didactico, tiene disponible un sistema de desarrollo muy ecoriomico y facil de utilizar para la familia 68HC908]K3, figura 5.6, cuya construccion, ensarnblaje y urilizaci6n seran explicados en detalle en uno de los proyectos que forman parte de este curso.

Motorola y muchas empresas independientes de desarrollo electronico, tienen disponible una gran variedad de herramiemas para trabajar can estes dispositivos, Entre ellas se cuentan, ernuladores, analizadores logicos, programadores, tarjeras de evaluac.i6n, simuladores, compiladores en lenguaje C, sistemas operatives en tiempo real, ensam-

MGSH 705Jl

Figura 5.5 Sistema de desarrollo de Motorola para el68HCOS

Figura 5.6 Sistema de desarrollo CEKITpara e/ mieroeontrolador


6BHC9DBJK3

LOS

o os

Daremos un vistazo rapido a estas tres marcas que tambien son ampliamente utilizadas, algunas par su potencia, otras par su facilidad de manejo. De cualquier manera, se constituyen en excelentes opciones para el desarrollo de productos electr6nicos. El microcontrolador 8051 de INTEL y las versiones que de el se derivan, han obtenido en el media industrial un exito indiscutible, los ATMEL son muy utilizados en aplicaciones medicas y en redes de automatizacion, y los BASIC Stamp son muy apetecidos por la facilidad en su programaci6n.

o
A comienzos de los afios 80 Intel propuso el modelo de rnicrocontrolador denominado 8051. Esta primera version tenia tres varianres: el 8051 propiamente dicho, dorado de una memoria ROM interna programada en fabrica: el 8751, equipado con una EPROM; y el 8031, desprovisto de cualquier tipo de memoria permanente (ROM). Esta primera serie se complete rapidamente con la version 8052. A este ultimo microcontrolador, muy parecido al 8051, se Ie aiiadi6 un periferico (un tercer temporizador) y 128 bytes de RAM interna. Tarnbien existe una version del 8052 que contiene un inrerprete de lenguaje BASIC en su memoria ROM.

Figura 6.1 Microcontroladores PHILIPS.Su nue/eo es el8051

bricar mierocomroladores basados en la misma arquirecrura 8051 a a producir nuevas versiones mejoradas del misrno circuito integrado, incorporandoles nuevos perifericos, figura 6.1.

Asf naci6 la famosa familia 51, la eual se completo con otros rniembros. Todos estos microcontroladores se han concebido bajo un mismo nucleo, Esta caracterfstica motive a varios fabricantes (SIEMENS, MHS, OKl, PHILIPS, etc.) a firmar acuerdos gracias a los cuales pueden faEn la figura 6.2 se aprecia el diagrama de bloques y e1 diagrama de pines del 8051. En el se puede apreciar la CPU Y una RAM inrerna de 28 bytes; adicionalrnenre hay que disringuir aquf la posibilidad de direccionamiento
MCS-51 de INTEL (1991)

Garna de miorocontroladores

B031 B032AH B3GS1FA 83C451

8051 8052AH 80C51 FA BOC451

4K 8K 8K 4K

12B

2 3 3+PCA 2

4 4 4 7

612 8/2
7/2

1 1

3.5 a 12
3.5a 12

Version NMOS

8752BH 87C51FI\

256 256 128

1
1

Posibilidad de salldas PWM. entradas con capfura y WDT 7 puertos

512

Gama de rnicrocontroladores 80535 80515 BK


2.56

SIEMENS (1991) 1
1.2a 12

3+WDT

1/4

B entradas anal6glcas de 8 bitS; 4 salidas PWM 4 entradas con captura; 4 nlvales de prioridad de interrupciones 12 entradas analOgicas; B punteros de 16 bi , unidad aritmetica .1001ca de 16 bits. 21 salldas PWM; 5 entradas con captura; 2 puertos serle; 4 temporizaclores de 16 /}i!i, waT programable RAM interna de 2.25 Kb convertidor NO de 10 bits 2 3TWDT 3+WDT CAlD 8E/lO 1JitS; 2 salidas PWM e interfaz de bus CAN

80G537

BOC517

8K

256

3+WDT

1414

1 a 16

BOC17A 80C451 80C592 BOC528

83C517A5 83C451 83Gs92 B3C528 87C451


B7C592

32 K 4K 16 K 32 K

2.25K 4+2WOT 128 512 512

7 7 6 4

14/4

2 UART UART + CAN UART +PC

1 a 18 12 Y 16 16 16,20y24

Garna de rnicrooooooladores

PHILI PS (1992)

B7C52B

Tab/aB.1 Gama de microcontroladores 8051 y algunos deri'lados

'E;.

Curso pract;co sabre Microcontroladores

Interrupc i6 n e xte rn a

~ ~ sus versiones ..00


l.U '-'

"'",

Todos los fabricantes tienen disponibleslos microconrroladores 8051, 8052 Y

CMOS en en-

ES

-g ~

capsulado DIP de 40 pines 0 patillas, Algunos los ofrecen en otros encapsulados. Dentro de sus pines podemos destacar el pin EA el cual es una en-

I I. -T2 Pl,O
T2EX P1.1

PO

P2

Pl

D i recciones/Datos

vee
PO. a liDO ro.1 1101
P02 A02

Pl,2 PI,3 PIA PI.5 PI.S


Pl.7 RST RXD P3.0 TXO P3.1 It·no P3.2 I~Tl P3.3

trada que perrnire configurar e] microcontrolador para sistemas con buses externos. Posee tres puertos: el puerto 0 cuyas Ifneas son de colector abierP3 TXD RXD to, el puerto 1 quien posee resistencias internas de puLL-up, el puerto 2 tambien can puLl-up y el eual es utilizado durante el acceso a la memoria externa, Par ultimoesta el puerto 3 que posee funciones adicionales aS1:
• P 3 ..0 RXD entrada de imerfaz serie

PO.3 A03 PO.4 I\D4 PO.5 AD5 PO.S ADS P07 AD7 ENvpp ALElPROIJ
PSEN P2,7 1115

• P3.1 TXD salida de inrerfaz serie


• P3.2 INTO entrada para inrerrupcion externa • P3.3 INTI entrada para interrupci6n externa • P3.4 TO entrada de conrador para el ternporizador 0 • P3.5 Tl entrada de contador para el temporizadar!

TO P3,4

P2,6 1\14 P2,5 1113 P2,4 1112 P2.3 All P2.2 1110 P2.1 A9 P2.n AB

WR P3,6

fID3.7
XTAL 2 XTALI

• P3.6 WR salida de escrirura de la memoria externa • RD salida de lectura de fa memoria externa En una leccion posterior explicarernos en detalle este microcontrolador,

vss

Figura 6.2 Diagrama de bloQues y de pines del 8051

s ATM
Los micrccontroladores ATMEL, figura 6.3, han tenido una gran acogida en el mercado: de ell os se pueden destacar tres farnilias, la primera esta basada en el 80S 1, 1a segunda es la AT91 ARM Thumb y par ultimo, los AVR ..Veamos ahora un poco de cada uno de estes grupos.

de memorias exrernas, en esos casas uno de sus puerros debe utilizarse en esa funci6n, eambiando su caracterfstica como puerto a bus externo. El 80S 1 contiene, entre otros, un puerto serial y dos temporizadores de 16 bits. En la tabla 1.1 se encuentran algunos de los modelos mas representarivos de esta familia.

ClJrso practico sobre Microcontroladores

RESET PDO PDl


)(TAL 2

vee
PB7 (SCK) PBS (MISO) PB5 (MIS1)

XTALl
(INTO) PD2 PD3 (TO) PD4

PB4 PB3
PB2 PB1 (A1N11 PBO (AINO) POB

ran con osciladores internes, rernporizadores, U.ART, SPI, resistencias de pull-up, PWM, ADC, comparadores analogos, etc. Dentro de los represenrarivos estan los A Ttiny 10, 11 y 12, rnicrocontroladores FLAS H de 1K de memoria de programa, 64 bytes

mas

de

RAJv1 y programables dentro del circuito,

PD5 GI>lD

RESET PB5 (HAL 1) PB3 (XTAL 2) PB4 I


GND

1
2

vee
PB2 [TO) PBl IlmOIAINl) PBO IArNO)

3
4


!;;(

:: >.

7 6

Figura 6.3 Microcontroladores ATMEL AVR

;I

ATMEL Ofrece una linea de rnicrocontroladores basados en la arquitectura 8051, con memoria de programa FLASH denrro del circuito inregrade, al igual que versiones OTP.

La empresa Parallax Inc. produce estos microconcroladores que son muy potenres y poseen unas herramientas de programacion que los hacen muy faciles de manejar. Con ellos el disefiador no requiere de conocimiemos avanzados en electronica digital, ni en microprocesadores, ni en el desarrollo de programas en lenguaje ensamblador, entre otros, Por esta razon estan siendo ampliameme utilizados por estudiantes desde el colegio hasta la universidad, por aficionados, tecnicos e ingenieros de diferentes ramas y, ademas, se han popularizado mucho en eI campo de la roborica experimental. Los BASIC Stamp son pequeiias compucadoras construidas en una tarjera de circuito impreso, figura 6.4 y su principal caractertsrica es que ejecutan programas escritos en un lenguaje muy similar al rradicional lenguaje BASIC, Hamada PBASIC. Su forma de trabajo es muy simple: segun el circuito que se

IT'

Los microcontroladores AT-91 son microcontroladores de 32 bits 10 que permite el desarrollo de protocolos de cornunicacion, compresi6n de datos y control. Cuanda se construye un producto electronico alrededor de un nucleo ARM se garantiza la durabilidad y calidad del rnismo ..

quieta controlar, el disefiador escribe su proLos rnicrocontroladores AT91 son muy apetecidos para aplicaciones de bajo consume de potencia y otrasen tiempo real; se han hecho aplicaciones rnuy exitosas en automatizacion industrial, dispositivos MP3, productos para la adquisicion de datos, equipos medicos, GPS y sistemas de redes, La serie AT91 cuenca con un amplio congrama en la computadora, 10 compila y 10 Ileva hacia el microcontrolador a traves de un cable de conexio n que se ha preparado previarnente, El microconrrolador recibe dichas instrucciones y las almacena en una memoria

junto de herrarnientas de programacion de alto


nivel, como compiladores de lenguaje C, ernuladores y sistemas operatives en tiernpo real.

Son microcanrroladores de 8 bits cuyas instrucciones se ejecntan en un solo cido de maquina, Cuen-

Figura 6.4 MicrocontroJadores BASIC Stamp

IZ:"

Curso practico sobre Microcontroladores

EEPROM, de donde secuencialrnente.

las lee para ejecutarlas

Los BASIC Stamp I y II induyen un microcomrolador de la familia Microchip 0 Scenix, el cual esta grabado previamente con un interpretador de codigos que le perrnite WIDar los datos que se han pasado desde la computadora y ejecurar las 6rdenes correspondientes. Tambien poseen una memoria EEPROM serial donde se almacena el programa recibido y que se debe ejecurar; un regulador de voltaje, su respectivo circuito oscilador y un sistema de reinicializar (reset) rnuy eficiente. Los BASIC Stamp han evolucionado rapidamente desde su creacion. El primer modelo disponible, conocido can el nornbre de BASIC Stamp simplernente, posee un PIC16C56 como chip interpretador y una memoria EEPROM serial 93LC56 donde se almacena el programa. Este sistema, induye un conector para baterfa de 9 voltios, donde se debe conectar la alirnenracion exrerna: tambien induye un area de circuito impreso, libre para hacer prototipos y, por supuesto, los pines donde se conecta el cable que viene desde la computadora y a traves del cual se descarga el programa que ha escrito eI usuario. Este cable se conecta al pueno paralelo de la computadora. En la figura 6.5 se m uestra este rnodelo de BASI C Stamp con su respective cable de programaci6n.

construido con tecnologla de monraje superficial, 10 que significa un ahorro de espacio muy importance en la aplicaci6n final. En la figura 6.6 se m uestra su aspecto fisico. Como se puede apreciar, posee ~n circuito integrado inrerpretador basado en un PIC16C56 y una memoria serial, un regulador de voltaje que perrnite alimentar el sistema con una fuente de 6 a 15 vo ltios y un sistema de reset que reinicializa el funcionamiento del microcontrolador en caso de que la Fuente del sistema caiga por debajo de 4V.

.-.
~

~~,'f

'"

~, .

.. ,
~ ... ~

Ut
"

:::

:.
J~

-'

1i1 ~ 2 .... '-~®

i~ !,,' ,.;. ·w· ......... ..:",

'

.. §! 11

.'ftJ

..

Figura 6.6 BASIC Stamp I

Este microcontrolador presento sustancial respecro a su antecesor

un avance ya que estd

Como se puede apreciar en la Figura 6.7, este sistema posee 14 pines organizados en una sola fila; de elios, ocho se pueden utilizar como entradas 0 salidas individuales, posee un pin de reset, una entrada para alimentacion can Fuente regulada de 5V, una entrada para alimentacion can Fuente no regulada de 6 a 15 volrios, pin de tierra. y los pines de programacion a HaVeS de los cuales se comunica con la computadora. En la figura 6.8 se muestra la configuracion del cable necesario para la programaci6n; este se debe co nectar al puerto paralelo de Ia computadora. Una alternativa muy practica para montar los prototipos 0 circuitos de prueba con el BASIC Stamp I, es utilizar la tarjeta de prototipos (carrier board) disefiada por Parallax, en la cual se dispone de un conector para la Fuente de alimentacion, un circuito impreso para montar otros componentes y el conector para la eespectiva programacion, En la figura 6.9 se muestra el disefia de dicha tarjeta,

Figura 6.5 Modelo original del BASICStamp con su cable de programacion

Cursa practica sobre Micracontroladores

• IT':"~

VIN

GND PCO PCI VUD

RES

PO-P7

Entrada de allrnentaclen no regulada. Aceota de 6-15 VCG TIerra Coneetar al pin 11 del puerto paralelo para proqrarnacien (BUSy) Gonectar al pin 2 del puerto paralelo para pmgramacion (DO) 5 voltios de entrada 0 de salida. Si se apllea una fuente no regulada al pin VIN, en este pin se obtienen 5 voltios. SI el pin VIN se deja al are, se debe conectar aqulla fuente de 5V del sistema Reset de entrada/salida. Cae a un nivel balo cuando la fuente de +5V esta por debajO de 4V. Pines de entrada salida de prop6sito general. Pueden manejar 25 mA en modo source. Figura 6.7 DistribuciOn de pines del BASICStamp I

Otro aspecto importante de la programaci6n es el conocimiento que se debe rener sobre la capacidad de memoria del rnicrocontrolador, Para el caso del BASIC Stamp I, se ticnen 256 posiciones de memoria de programa y 16 bytes de memoria RAM· dentro de esta ultima esta el control de los pines de entrada/salida y de las variables que se utilicen dentro del programa. Como dijimos anteriormenre, la caracterfstica mas importante de los BASIC Stamp es la posibilidad de ejecutar programas en un lenguaje muy parecido at tradicionaI BASIC. Se trata de un lenguaje desarrollado par Parallax y que se denomina PBASIC. Con base en esto, el disefiador de aplicaciones puede utilizar muchas herramienras de programaci6n que son diflciies de conseguir cuando se trabaja can microcontroladores corrientes, los cuales son programados en 1enguaje ensamblador. Dentro del grupo de instrucciones se encuende hacer ciclos condicionales, de generar sonidos, de hacer lecturas de botones o pulsadores, de medir riernpos a de generar pulsos con una sola instrucci6n, etc. Como se puede apreciar, son instrucciones muy poderosas y que disminuyen notablemente el riempo de desarrollo de una aplicaci6n.

En 10 que respecra a 1a programacion del microcontrolador, se deben tener en cuenta varios aspectos. El primero, tiene que ver con el prograrna (software) que se ejecuta en la cornputadora y que permite hacer todo el desarrollo de la aplicacion. Este es un programa diseriado pDf Parallax y es muy similar a los editores detexto sencillos. En esre sistema, se escriben las insrrucciones para la aplicacion particular y, mediante unos comandos definidos por combinaciones de reclas especiales, se puede compilar el programa, revisar la simms y descargarlo hacia el rnicrocontrolador,

tra la posibilidad

Esre posee el mayor ruimero de caracterlsticas especiales. Su aspecto fisico se puede ver en la FIgura 6.10. El chip inrerprerador 0 controlador que posee es un PIC16C57 y la memoria serial que recibe el programa que se va a ejecutar es una 24LC 16. Este sistema po see ademas, 1 V1N 2 VSS un sistema de reset bastante sofisticado y 3 pca 4 PCI una Fuente de alimentaci6n regulada que 5 VOO 6 RES garantizan su eorrecto funcionamiento 7 PO 8 P1 aiin en dificiles condiciones. 9 P2
10 11 12 13 P3 P4 P5 P6

Esta disefiado de tal forma que pareee un circuito integrado de 28 pines, de los cuales 16 son programabJes como

L-

--"'''-!....!.''---'

14 P7 BS1-le

Figura 6.8 Cable de programacion del BASIC Stamp I

Puerto serial PC 28 27 126

25 8
v.J
t'\I
I

24
I

23
22 21

Q:I

20
19 18 Figura 6,9 Tarjeta para desarrollos can BASIC Stamp I 17 Figura 6.11 Distribucion de pines y cable de conexion del BASIC Stamp II

entrada a salida; adernas, posee entrada para una fuenre de ahmentaci6n regulada de 5\1, una fuente de alimentacion no regulada de 6 a 15 voltios, pin de reset y pines de comunicacion serial que

soporran niveles de voltaje RS-232. A traves de


estes ultimos se hace la prograrnacion desde 1a computadora y se puede esrablecer comunicaci6n con otros dispositivos externos. Como se acaba de rnencionar, la programacion de este dispositive se hace desde el puerto serial de la computadora, figura 6.11, a diferencia de los dos modelos anteriores que 10 hadan desde el puerto paralelo. AI igual que el BASIC Stamp I, en este casu tarnbien se dispone de una tarjeta para el desarrollo de protoripos (carrier board), en la cual se pueden desarrollar aplicaciones particulares ala vez que

se dispone menracion En la figura totipos del

de conexion para la fuenre de aliy para el cable de programaci6n. 6.12 se puede ver Ia tarjeta de proBASIC Stamp II.

En 10 que respecta a su programacion, esre dispositivo tarnbien posee su propio programa de desarrollo donde el disefiador crea sus programas, los compila y los descarga hacia el micro co n trolador. Inclusive, existe un ambiente de desarrollo especial para trabajar bajo Wmdows que presenta las faciliclades propias de este tipo de aplicaciones,

La memoria de este microconrrolador es rnucho arnplia que la de sus predecesores; en la memoria de programa menta can 2048 posiciones de EEPROM y en la memoria RAM cuenra con 32 byter.. Sus insrrucciones, aparte de las mismas del BASIC Stamp I,. incluyen comandos especiales que le permiren manejar tonos DTMF, comunicaciones seriales RS·232 y PWM, entre otros.

mas

Figura 6.10 BASIC Sfamp II

Un aspecto muy importance que se debe tener presente a la hora de iniciar un disefio con los BASIC Stamp es que Ia frecueneia 0 reloj efecrivo de operaciones es relativamente baja cornparada can un microcontrolador normal. Es decir, si en un PIC con reloj de 4 MHz se ejecutan un millen de instrucciories cada segundo, en un BASIC Stamp que posee el mismo crista!
. •

CwsopracDc. sobre&fic":onVomd~

IT:' ~

Figura 6: 12 Tarjeta.para Oesarrol/os con BASIC Stamp /I

de 4 MHz, se ejecutan alrededor de 2000 instrucciones, Esto se debe a que cada instrucci6n del programa en PBASIC, se debe ejecutar en varias insrrucciones de ensamblador del chip interpretador,. que hace parte del BASIC Stamp. Las versiones mas actualizadas de los BASIC Stamp son el BS2p24-IC y el BS2p40-IC,. que vienen en presentaciones de 24 y 40 pines, figuca 6.13. Presentan toda una serie de nuevas funciones y comandos (55 distin tos) y es muy interesante saber que las pistas de su circuito irnpreso esran hechas en oro para mejorar su conductividad .. Las principales caracrerfsricas las podemos apreciar en la tabla 6.2. Ahora poseen un microcontrolador SCENIX SX48AC a 20 MHz, en Jugar del PIC y manejan facilmence los proroeolos PC, DALLAS I-WIRE Y modules LCD. Hasta aquf hernos vista los aspectos generales de algunas de las principales familias de mrcrocontroladores. Ahara estamos Iisros para iniciar un estudio detallado, siguiendo el orden de familias que se ha mostradoen las primeras lecciones, sobre la estructura basica, el funcionamienw y el rnanejo de cada una de las partes y m6dulos que hemos enunciado anreriormente y que forman parte de un microcomrolador. jMucha dedicaci6n y exitos, son nuesrros deseos para usted, que se inicia ahara de lleno en este maraviIloso mundo de los microcontroladores!

Figura 6.13 Microcontrolador€s BASICStamp BS2p24 y BS2p40. Presentacion Temperatura del ambienre Microconrrolador Velocidad del procesador RAM 24 a 40 pines 0 - 70 C

SCENIX SX48AC
20 MHz 38 bytes 8 x 2K bytes. 16/32 40 mAen modo RUN y 400 uA en modo SLEEP

EEPROM
Pines I/O
Consume de corriente

Tabla 6,2 Caracteristicas mas representativas de los nuevos BASIC Stamp BS2p y BS2p40_

CEKIT S,A,. tiene disponibles una serie de entrenadores y tarjetas para practices con este ripo de microcomroladores, figura 6.14.

Tabla 6,14 Entrenador para SASIC Stamp II, modelo K-202

oc

C C ITO DE -----DORE PIC

en

Can esra leeci6n iniciamos el estudio detallado de los principales componentes de cad a una de las familias de los microcontroladores mencionados anteriormente en cuanto a su estructura electrica y funcionamiento. Empezamos con los circuitos de oscilaci6n y de reinicializaci6n (reset) de los PIC, dos elementos basicos para su funcionamien to cuyo conocimiento es esencial para el desarrollo de los circuitos de aplicacion, Tambien es muy importante conocer como cambian los parametres de un sistema dependiendo de la configuraci6n de estos dos circuitos.

Todos los microcontroladores tequieren de un sistema que genere una serial de reloj que le perrnita a la CPU ejecutar secuencialmente las instrucciones. Ese sistema se puede conectar externarnente al rnicrocontrolador a naves de pines especfficos destinados para tal fin formandc un pequefio circuito externo cuya configuraci6n y el valor de sus cornponentes dererrninan la velocidad can la que el microcontrolador ejecutara el programa que tiene almacenado en su memoria.

Cicio 3

I Cicio 4

OSC 1

Ejecucion de una lnstruccion Figura 7.1 CicIode instrucci6n

Cada VeL que el microcontrolador se energiza debeesperar un riernpo para que esa oscilad6n se estabilice y el pueda empezar a funcionar correctamenre, Esos dos importantes factores son los que estudiarernos enesta lecci6n: como configurar loscircuiros de oscilaci6n y el circuito de reinicializacion (reset). En terrninos generales; esta teorfa es valida para todos los rnicrocontroladores de esta rnarca; en el caso de que algun mode10 renga requerirnienros especiales a1 respecto, 10 estaremos explicando en su debido momemo.

• XT (ganancia media): Cristal/Resonador. • HS: Crisral/Resonador de alta frecuencia. Es la que per mite trabajar ntpido y por 10 tanto la que corriente consume.

mas

mas

• RC: Red RC externa, Es una solucion muy


econornica.

• INTRC

Red RC interna, Es la solucion mas

economica en que se puede pensar para el circuito oscilador. Cada que se vaya a trabajar con un microcontrolador determinado, se debe mirar en su hoja de datos si tiene disponible este tipo de oscilador. En el interior del microcontrolador existe un circuito que, dependiendo de fa selecci6n hecha entre L~ XT Y HS afecta su ganancia intern a y debido a eso se presentan los distintos rangos de frecuencia. Entre aha sea la frecuencia de operacion del microcontrolador, mas alto sera. su consumo de potencia. Este es un concepto fundamental dentro del desarrollo de proyectos can microcontroladores, por 10 tanto es aconsejable elegir el oscilador que proporcione la baja frecuencia

En el interior de los microcontroladores PIC existe un circuito de oscilaci6n que permite generar fa sefial de reloj necesaria para que todo el dispositive trabaje correcramente, Cada cuatro perfodos de esa sefial de reloj se genera un ciclo de instruccion, en arras palabras, se ejecura una insrruccion, Figura. 7.1. En estes rnicrocontroladores existen varios ripos de conflguraci6n para eI oscilador con el eual va a funcionar la aplicacion, algunas mas rapidas que otras.esa configuracion se e1 puede establecer dentro del programa 0 manualmente en el momento de programar el dispositive.

mas

mas

r-------'---,
OSC1

I
Xli

Los tipos de oscilador mas utilizados son:


• LP (baja potencia): cristal a baja frecuencia. Es la que menos corriente consume dentro de las tres opciones de trabajo can cristal.
OS[;2

r----------,

lITl:

Cristat 0 resonadOT ceramlGO

PIC16XXX

Figura 7.2 Conexi6n del osci/ador bessdo en cristsi o resonador cedmtco

facrores como la calidad del crista!' la tempe~' rarura del sistema, los valores de los coridensadares urilizados, la frecueneia del crista] 0 resonador utilizado, la seleccion del modo de oscilador, el ruido del sistema, etc., 6gura 7.5.

La seleeei6n de los elementos que componen el circuito de oscilacion no esal azar. Los
valores de cada uno de esos elementos altera la salida final del circuito; par eso se debe hacer una cuidadosa seleccion de estes elementos teFigura 7.3Aspecto flsico de un cristal comOn

niendo en cuenta la velocidad de ejecucion que requiera la aplicaci6n que se este desarrollando.

posible con el que nuestra aplicacion y los dispositivos extern as, puedan funcionar correctarnente,

Osclladores basados en cristal Den resonado s ceramicos


En este caso, para generar la serial de reloj, se debe conecrar un pequerio circuito conformado por dos eondensadores (CI y C2) y un cristal 0 un resonador a los pines OSC 1 y OSC2 del microcontrolador quienes se cornunican internamente can un circuito logieo que genera Ia oscilacion, FIgura 7.2. Cuando se hace uso de cristales, estos se pueden conseguir en una gran variedad de encapsulados y frecuencias que par 10 general vienen marcadas en su capsula exterior,figura 7.3. Cuando se configura el modo de operaci6n en XT, LP 0 HS, el microcomrolador puede rener una Fuente excerna de los pulsos de reloj conectada a1 pin aSCI. En la figura 7.4 se aprecian algunas posibles configuraciones de elementos externos que ellector puede ensayar para generar la sefial de frecuencia externa, Estas configuraciones constan principalmente de compuertas logicas, resisrencias y condensadores . Cuando el circuito de reloj recibe la alirnentacion, el oscilador empieza a trabajar, pero la realidad es que no 10 hace de manera inrnediata; requiere de cierto tiernpo de estabilizacion, Elriernpo requerido para que el oscilador opere normalmente depende de

SeRal de rale] desce un sistema externo

NOTA(ll· Una.reslstenclaa tierra puilde usarse para disminuir el ruido . del ~istem!l. Ellio qulZli incremente lacornente del sstsma.

+5V

Hacia otros dis positivos

330 Kn

330Kn

Hacia otros dispositivos

Figura 7.4 Conexion de diversos asci/adores extemos CUrso pr;ictjco sobre Ml'crocontroladores

~~

17:.;.~

Mru.:irno VDD

del sistema

Alimentaci6n del sistema (VDO)

OSC1

cext

ov~~--------------------~~~ I... _- "I Tiempo


Tlempo para el iniGio de operaclon del cristat

1IS$

r
:.....
OSC2/CLKOUT

F05Ci4

Figura 7.5 Comportamiento del oscilador at recibir /a alimentacion

Figura 7.6 Config.uraciondel oscilador RC extemo

e iniciar su operacion En las tablas 1 y 2 se aprecian los valores upicos para los condensadores ely C2 para rrabajar con un circuiro basado en resonador yen cristal. Cuando se desarrolIen aplicaciones que no tengan requerirnienros exigentes de remporizacion, se puede urilizar un oscilador RC externo como se muestraen la figura 7.6. En un oscilador de este ripo, la frecuencia depende direcramente del valor de la resistencia y d condensador (Rext, Cext) y de la temperatura. Si la resistencia Rext es rnenor de 2.2K, la oscilacion puede set inesrable a derenerse cornpletamente: si es demasiado grande, por ejernplo 1M, la oscilacion se hace muy susceptible al En realidad esre circuito puede funcionar inclusive sin condensador (Cext ::; 0) pero se recomienda utilizar valores por encima de 20pF por razones de estabilidad e inmunidad al ruido, Cuando el condensador es muy pequefio 0 no existe, la frecuencia de oscilacion puede carnbiar bruscamente debido a capacitancias creadas externarnente como por ejemplo, la creada en el trazado del cirCUlWlmpreso. La frecuencia del oscilador, dividida par 4, se encuentra disponible como salida en el pin OSC2 y se puede utilizar para sincronizar otros dispositivos que trabajen en paralelo en el rnisrno circuito .. ~I

ruido y la humedad.
Por eso es recomendable que Rext tenga un valor comprendido entre 3K y lOOK. En fa tabla 3 se pueden apreciar las frecuencias generadas par distintas configuraciones de la red RC.

I'

Modo

FreclJencia

C1/CO!

Modo

frecuencia
32 KHz

C1
68-100pF

xr
HS

455 KHz 2.D MHz 4.0 MHz 6.0 MHz 16,0 MHz

Z2-100pF 15 - 58IlF 15 -58 pF 10-6IIpF 10 -22pF

LP

200KHz
2MKz 4 MHz BMHz

15-30pf 68 -l50IIF
15-30pF

Xl
HS

100 KHz

15-30pF
15-30pF

En los microcontroladores PIC existe un pin denominado MeLR. Cuandoeste pin se lleva a un nivel logico bajo, el PIC entra al estado de reinicializaci6n (reset). En este esrado codas las salidas se apagaran y el reloj se desactivara, Todos los nuevos microcontroladores PIC poseen unfiltro contra el ruido en el pin MCLR para derectar e ignorar G2 pulsos pequefios, razon que facilira la incorporacion de estes dis68-100pF 15-30pF positives en ambiences ruidosos a 150-200 pF contaminados. 15 - 30 pF
15 - 30 pF 15-30pF

Tabla 7.1 Va/ores t{picos de los condensadores cueodo se trabaja can resonadores

10 MHz 20 MHl

Hi- 30 pF
15· 30 pF

15 - 30 pF 15 - 30 pF

Tabla 7.2 Valores tipicos de los condensadores wando se frabaja can cn"stafes

Dentro del mapa de memoria existe una direcci6n denorninada vector de reset, en esta di-

,7:.;_

Cursopractic{J sobre Microcontroladores

+5VOC

Tabla 7.3 Frecuenciasde osci/acionpara dfstintos Figura 7.& Circuito extemo de va/oresde la red He POR

Figura 7.8b Ofro circuito para POR

controladores PIC, par las ventajas que ofrecen. Analicemos cada uno de ellos.

Reinicializacion al encendido (Power


I
NOTA: R es opcional

Este estado de reset se origina en el momenta

de

Figura 7.7 Configuracion para utifizar el POR

reccion es donde e] PIC ernpieza fa ejecuci6n del programa. Esta direcci6n es la 0 para los PIC de media yalta rango y corresponde a la ultima direccion para los PIC de rango bajo, Par ejemplo, el vector de reset de un PIC16C54 tiene la direccion OxO1FF. Cada vez que el PIC entra, par alguna razon, en estado de reset, la CPU del microcontrolador se dirige a esta posicion de Ia memoria para iniciar nuevarnente la ejecuci6n de codas las instrucciones del programa. Existen varias razones que pueden rnotivar un estado de reset adedel estado logico bajo en el pin MCLR, elias se conocen como ripas de reset, y son: la reinicializacion al encendido (Power On Reset), y la reinicializacion por caida en la alimenracion (Brown Out Reset). Tambien es importante analizar la secuencia de inicio que presentan los PIC cada que se da un estado de reset ya que allf exisren algunos rerardos que se han incorporado como caracterfsticas estandar en los micro-

detectarse un esrado alto en la alimentaci6n. Para aprovechar esta caracterfstica, se puede conectar una resistencia des de el pin MCLR hasta el voltaje de alimentacion (VDD), figura 7.7. Esto aseguIa que cada vex que el sistema es alimentado adecuadarnente, el programa inicia su operacion desde el punto exacto desde donde debe iniciar,

PQR

MCLR

mas

Tierrpo'Dst

II

~
TPWRT

....: 0111----

Tiernpo muerto

Beset interno Figura 7.9 Diagrama de tiempa del inicio de operacion del asci/ador

~=-~.---

u l1t:::dlC1QUl- ~

!/ VDD----~:/~~------------~-MCLH POR Interna

JI---~:---TPWRT

rnentacion de baja rampa de crecimiento. Un circuito externo para POR s610 se requiere si el tiempo de VDD es demasiado Iento, El diodo D ayuda a descargar rap idamente el condensador cuando VD 0 se desacriva. Otra variaci6n de este circuito y que evira problemas en el arran que se rnuestra en la figura 7.8b.

PWRT Ti me out
,

I.. lQst ,. ~

I
j-' _

Temporizador al encendido (Power Up Timer: PWRT)


El PWRT es lUl.a caractedstica que se puede incorporaren el momenta de grabar WI programa en la memoria del microconttolador.

Ost Time out

Esto proporciona un retardo de aproximadamente 70 ms a la reinicial.izaci6n POR 0 a Figura 7.10 Secuencia seguida a/ alimentar e/ sistema y e/ pin MLCR conectado directamente a VDD 1a BOR El PWRT se basa en un oscilador RC interno dedicado. El rnicrocontrolador Cuando el dispositive sale del estado de reset permanecera en estado de reset mientras el PWRT se encuentre activo. E1retardo proporciona(comienza su operaci6n normal), los parametros do por el PWRT le permite al voltaje de alimentade operaci6n del dispositive (voltaje, frecuencia, ci6n VDO alcanzar un nivel aceptable, temperatura, etc.) deben encontrarse dentro de sus rangos normales de operaci6n; de otra manera el Temporizador de oscllacion al rnicrocontrolador no funcionad. correctamente. encendi OSn EI retardo originado con el POR permite que se Este ternporizador proporciona un rerardo de establezca un retardo 10 suficientemente largo para 1024 cidos del oscilador (de acuerdo a la enque estos parametres se normalicen. trada en aSCI) despues de que el retardo PWRT ha terminado. Esto asegura que el 05En la figura 7.8 se aprecia un posible circuito cilador de cristal 0 resonador se encuentra opePOR basado en una red RC y un diodo; recomenrando en su modo esrable. dable para un sistema que posea una fuente de aliReset interno ----1

Voo

R1

R2

Figura 7.11 Circuito 1 extemo de Brown out

Figura 7.12 Circuito 2 extemo de Brown out

Beset intetno

--------~--------------------------~I :~ ~~I ~
72ms

Cada vez que el pin MCLR tome un nivel alto, el procesD se


repite automaticamen-

VOD ----------_

Reset Inlerno VOD ijVOD' -

-\
-

•. -

I
,-

Esa caracterfstica es muy uti], par ejemplo, en aplicaciones donde se necesiten sincronizar vari os micraconrroladores que rrabajen en paralelo.
teo

I
_____ ..1

I.

I, I'~
I

72 ms

~L_
.

Si eI voltaje final del sistema no cumple can las especificaciones electricas del microcontroladoc (las cuales se pueden hallar en las

Figura 7.13 Comportamlento del BOR

....

En la figura 7.9 se observa la operaci6n del circuito OST en conjunto can el PWRT. Allf podemos apreeiar como a medida que el voltaje VDD erece tarnbien 10 hace la sefial en MCLR; a partir de cierto nive1 el POR ernpieza su operaci6n y el PWRT se activa durante un tiernpo: cuando este rerrnina, habilita al oscilador para que empieze su operacion, Para cristales de baja frecuencia este riempo de inicio puede ser un poco mas largo. Esto se debe a que el tiernpo que toma el oscilador de baja frecuencia para empezar a oscilar es mayor que el retardo del PWRT. Asf, el tiempo tornado desde que el PWRT se acaba hasta cuando el oscilador empieza a oscilar, se
denomina tiernpo rnuerto.

hojas de datos del fabri . ncante ) eI pm MCLR debe manrenerseen bajo hasta que el vo ltaje sea eI adecuado. El usa de un retardo con una red RC externa debe ser suficiente para este proposito,

o \,
Dentro de los microcontroladores PIC existe esteotro tipo de reset denominado Brown-out, el cualpuede ser habilitado 0 deshabilirado por el usuario, Este permite llevar el PIC a un estado de resetcuando el voltaje de alirnentacion cae par
No implantados

Bit 7

Bit 0

S~cuencla seguida al alimentar el


I

En el momenta de alimentar d microcontroladar, se desarrolLa la siguiente secuencia: primero se derecra el POR; si esra habilitado, se invoca eI PWRT. Despues de que terrnina el tiempo del PWRT, se activa el OST, figura 7.10.

bit 6:3 No implantados bit 1 POR: Bit de estado del reset Power-on 1 ::::No ha ocurrido reset par Power-on 0:::: Ha ocurrido un reset Power-on bit 0 .BOR: Bit de estado del reset Brown-out 1 ::::No ha ocurrido un reset Brown-out

0= Ha ocurrido un reset Brown-out


Figura 7.14 Registro peON Cursu practico sobre Microcontroladores

debajo de un voltaje dererrninado (BVDD). Esto asegura que el dispositive no continue con Ia ejecucion del programa mientras se encuentre por fuera del rango de operaci6n valido .. El reset Brown-out es muy utilizado en aplicaciones de lIneas CA 0 en aplicaciones donde se conmuren cargas y donde el voltaje puede caer ternporalmente, Algunos microcontroladores no poseen este tipo de reset, para los que 10 poseen es necesario ajuscar el voltaje de Brown-out al nivel deseado. Para esre proposiro, en las figuras 7.11 y 7.12 se muestran dos ejemplos de circuitos externos que se pueden implantar. En la figura 7.13 se muestra un diagrama de tiernpo donde se ilusrran los rnomentos en que se origina una reinicializacion BaR. Cada uno de ellos debe ser comprobado en la practica para verificar que cum plan con los requerirnientos de la aplicaci6n. En el caso del circuito 1 acrivara el resetcuando VDO se encuentre por debajo de VZ + 0.7. Donde Vz es el voltaje zener. AI urilizar este circuito la configuraci6n Brown Out Reset debe deshabilirarse en el momento de la programacion. Las resisrencias se deben ajustar dependiendo de las caracterfsticas del transistor.

El circuiro 2 es mas economico pero menos preciso; el transistor Q1 se desactiva cuando VOD
se encuentra par debajo de cierto nivel, de acuerdo ala siguiente formula:

VOD *-----

R1

R1 + R2

0.7

Registro de control de potencia (Powe


twc~'

POI

En los nuevas microconrroladores PIC es posible detectar la Fuente de un estado de reset, a craves del regisrro PCON. Este registro conriene un bit de estado que perrnite deterrninar que esra originando el esrado de reset. Por ejemplo, determina si fue un paR, un reset externo, etc. Esre regisrro 10 podernos observar en la FIgura 7.14, juntO can los estados de los bits en el memento que se originan los disrintos tipos de reset. En la figura 7.15 se muestra un diagrama de bloques generico sobre como interacnian las diversos ripos de condiciones que originan un estado de reset.

Detection de : encendido "' Pill <MCLR

POR

Reset tiel 'PIG

Figura 7.15 Esquema general de los tipos de RESETen /05 microcontroiadores PIC

0_=======1
Harvard

Memoria

de datos

'41

..

.. /1

..

14

En esta lecci6n estudiaremos aspectos basicos de la estructura interna a arquitectura de los microcontroladores PIC, tales como la manera en que ejecutan las instrucciones teniendo en cuenta Sll arquitectura basica y el funcionamiento de la CPU y la ALU.

Los rnicroconrroladores PIC poseen caracterfsticas que los hacen muy cornpetitivos dentro del rnercado global de la electronica. Entre elias se encuentran su arquitectura Harvard Y Sll reducido conjunto de instrucciones (ruSe: Reduced Instruction Set Computer), veamos los puntas representatives de esta tecnologfa,

par un m ismo bus, se or iginara congestion en esre.

demasiada

mas

Esre tipo de arquitectura se caracteriza par tener la memoria de programa (ROM) en un bloque separado de la memoria de datos (RAM). De la misma manera, cada una posee su propio bus para cornunicarse con los dernas elementos del microcon trolador. Los disefiadores han aprovechado esta caracrerfsticas para implamar un bus de 8 bits para conectar la memoria de datos y un bus de mas de ocho bits para ser conectado a la memoria ROM donde se encuentran las instrucciones, De esta forma se hace un uso mas eficiente de Ia memoria de programa, porque ella puede estar optimizada para los requerirnientos de Ia arquiteetura. Por esta razon, esta arquitecrura permite un mejor manejo de las instrucciones que la tradicional arquitectura von Neumann, en Ia eual el programa y los datos se ubican en un mismo bloque, el cual se comunica mediante un solo bus. Para ejecutar una instruccion, una maquina de arquitectura von Neumann debe realizar uno 0 mas (norrnalmente mas) accesos al bloque de memoria a traves de un bus de 8 bits; la razon es que exisren insrrucciones cuya dimension a longirud en bits es mayor de 8 bits, superando la longitud del bus de datos. Adicionalmente, los datos deben buscarse dentro de la RAM y llevar a cabo operaciones de distinros tipos, rodo par el misrno bus de 8 bits. Asl, al trabajar instrucciones y datos

Caso contrario ocurre en la arquitecrura Harvard, en la eual una insrruccion puede buscarse en un solo ciclo de instruccion, debido a que el bus que conecra la memoria de programaes de 14 bits. AI tiernpo que Ia memoria de programa se esta aceediendo, 1a memoria de datos, como cuenta con su propio bus, puede ser ldda a escritao Esta configuracion de buses separados perrnite que una instrucci6n se ejecure al rnismo tiernpo que se busea la siguiente instrucci6n. En la figura 8 ..1 podemos apreciar el diagrama basieo de ambos tipos de arquitecturas ..

Instrucclones de palabra sencilla (sin dJ


Los microcorroladores PIC rnanejan instrucclones de palabra senciUa (singLe word). Estas instrucciones se codifican y almacenan dentro de la memoria de programa con un tamafio de 14 bits;ese numero las haee ideales para ser transmitidas par el bus conectado a dicha memoria, eI eual es precisamenre de 14 bits. El hecho de que el bus y las instrucciones tengan ambos 14 bits, perrnire que en un solo cicIo se ejecute una instrucei6n. Caso contrario oeurre en fa arquitectura von Neumann; en ella las instrucciones par 10 general son de multiples bytes por 10 que no es seguro que en cada posicion de memoria exista una instruccion valida,

Ma eo

eei

-0 4ic'T":'

Para agiliz_ar el proeeso de ejecucion de las 10Strucciones en los sistemas digitales, se ha diseriado un sistema en el eual se empieza la biisqueda de una instruccion a medida que Von-Neumann Harvard se va completando 1aejecuci6n de la instruccion precedence 0 anterior. Esce tipo de conexi6n 0 secuencia se conoce can el nombre de pipeline (enrubar, encauzar, diFigura 8.1 Diagrama de tJloques de las arquitecturas Harvard y von Neumann rigir 0 distribuir por rubes).

au"" pracY""

sobre MicrocantrolBdores

En los microcontroladores PIC se utiliza esta tecnica y los procesos de busqueda y ejecucion se rraslapan, La busqueda de una instruccion toma un cicio de rnaquina y la ejecuci6n se torna otro ciclo. Pero, en lugar de buscar 1ainstrucci6n actual yejecutar 1ainsrruccion previa, en cada cido de rnaquina se busca una instruccion al ciernpo que se ejecuta otra.

Estr:~r

Intema dlvldld en

La memoria de datos de los microcontroladores PIC se divide en registros, cada uno can una ubicaci6n deterrninada, 10 que perrnite que pueda accederse a cualquier parte de ella a traves de direcciones, Existen algunos registros que cumplen funcianes especiales los cuales tambien se

encuentran ubicados denrro de ella en posicioDebido a que el bus de la memoria de programa tiene un tamafio de 14 bits, una llSUUCci6n se torna en un solo ciclo de rnaquina, y se ejecuta en otro ciclo. Si eI resultado de Ia instruccion modifica el contenido del comador de programa,. puede existir un pequefio rerardo de un ciclo, el cual debe corregirse dentro de la secuencia, este easo 10 esrudiarernos adelante,
nes deterrninadas, como verernos en la siguiente lecci6n deriominada "La memoria en los microconrraladores PIC". ~ Las insrrucciones de los microcontroladores PIC han sid a disenadas para que cumplan con dena ortogonalidad 0 simerrfa; esto quiere decir que para cada instruccion existe otra insrruccion sirnetrica que cumple la labor cornplernenraria; esta caracterfstica tambien ayuda a facilirar el aprendizaje de las instrucciones .. Las instrucciones ortogonales hacen posible Ilevar a cabo cualquier operacion sabre cualquier registro usanda algun tipo de direccionamiento. La naturaleza simetrica y la ausencia de instruc-

mas

C nj

do de i

Los microcontroladores PIC se clasifican derrtro de 1a caregoria RIse (Reduced Instruction Set Computer);esto quiere decir que se requieren poeas instrucciones para llevar a cabo cualquier (area. Es de resaltar aqui que un conjunto reducido de insrrucciones puede ser aprendido mas nip ida por el usuario.

a4 ~
I

I
PC

PC ~
I

X
I I

I
l'C'f-l

~
I

I
PC+2

T
I I
I
I,~

~'iii

'" f':o

'" .If
'

"'W Q>D

....

~ ~
I
I

OSC2!CLl<QUT

I
B u sea instru eel on (PC) Ejecuta lnstructlon (PG-1)

I
Busca instruGci6n (PC+ 1) Ejecuta instruccion (PC)

I
I

I
I

I,

I I

Bu sea lnstru eei on (PC+ 2)

I I

ae cum Insnuccon
FiguraB.2

(PC+ 1)

Flujo de ffjecucion de una instrucci6n


¥~

Cuts. ,factico sfJbfe Mlc".,."lrlJlad<lnls

IT';'

ciones especiales, (como ocurre en otros microcontroladores ripo CISC, quienes cuentan can numerosas instrucciones, donde algunas de ellas cumplen can labores muy punruales 0 especiales) , hacen que la programaci6n sea muy simple yeficiente, ala vez que la curva de aprendizaje se reduce significativameme.

buscada es almacenada dentro de un registro de instruccion (lR) en el cielo Q 1. En ese momenta ella se decodifica y e ejecura durante los cidos Q2 Q3 y Q4. La memoria de datos se ha lefdo durante el ciclo Q2 y se ha escrito durante el cielo Q4. En el ejernplo 1 se muestra la secueneia de operaci6n (pipeline) de una insuucci6n. En TCYO se busea la primera instruccion en la memoria de programa; en TCYI esta se ejecuta rnientras se busca la segunda. Durante TCY2, la segunda instrucci6n se ejecuta mienrras se busca la tercera. Durante TCY3 se busca la cuarta instruccion rnientras se ejecuta la tercera (CALL S_I). Cuando se ha terrninado Ia ejecuei6n de la tercera instruccion, la CPU hace que la direeci6n de la cuarra instruccion se lleve a la pita carnbiando el contador de programa (PC) a 1a direcci6n de 5_1. Esto significa que la instruccion que se busco durante TCY3, debe ser nivelada desde el pipeline. Durante TCY4 se nivela la cuarta ins truecion (se ejecuta como un NOP: instruccion de no operacion) y se busca la insrruccion ubicada en la direccion S_I. Finalmenre, durante TCYS, se ejecuta la quinta instruccion y se busca la instruccion presente en 1a direccion S_1 + 1.

EI

clo de "nstrucclbn

La sefial de entrada de reloj (pin aSCI) se divide internamente por cuatro, generando cuatro pulsos periodicos en euadratura (desfasados) denorninados oi, Q2, Q3 y Q4. Inrernamente el eonradar de programa (PC) se incrementa cada vez que apareee Q1, la insrruccion se busea en la memoria de programa y se almacena dentro del registro de instruceiones en Q4. Luego la instruceido de Q1 a Q4. En la figura 8.2, se ilustra el flujo de la ejecucion de una instruccion, Un cido de instrucci6n esta formado por cuatro cidos Q Q2, Q3 y Q4). La operacion de busq ueda req were de un cielo de instruccion mientras haee la decodificacion y 1a operaci6n de ejecucion toma otro cido de instruccion. Debido a1 manejo que se le haee a las instrucciones (pipeline), cada instruccion se ejecura efectivameme en un cielo. Si una instruccion hace que el contador de programa se modifique, (par ejemplo un GOTO) entonees se requiere de un cido extra para completar 1a instrucci6n, ver ejemplo 1.

cion se deeodifica y se ejecura durante el siguienre

«».

e
Las instrucciones en los rnicrocontroladores PIC de rango medio pueden ser dasificadas seglin cuarros formatos generales, como se rnuestra en lafigura8.3. Los c6digos operatives (opcodes) de las instrucciones varian entre 3 y 6 bits. Esre camano variable de los

La operacion de busqueda de 1a instruccion ernpieza en Ql incrememado el contador de programa. En d cielo de instruccion, 1a instruccion TCYO TGY2
TCY4

opcodes permire establecer 35 instrucciones.


TCVS

Carla ciclo de insrruccio n (TCY) comprende cuatro ciclos Q (Q 1Busea 2 Ejecuta 2 Q4). EI tiernpo del cielo Q es el rnisBUSC33 EJeeuta 3 rna que el ciclo de riernpo del osciBusea 4 Nivelar ~OVLW 55h lador del dispositive (TOSC). Los OVVjFPDRTB Busea 8_1 Ejecuta 8_1 9. CALL S 1 ciclos Q son los que dan la pauta 4. B~F IWRTA, BIB (Forced NOP) Busca 8_1+ 1 6 lnstruecioaes en la direcci6n S~l para 1a ejecuci6n de cada uno de los procesos de decodificaci6n, lectura, Ejemplo 1 Secuencia de busqueda y ejecucion de las instrucciones
Busea 1 Ejecuta 1

TCY1

TCY3

~.

Operaeiones de registro orientadas a Byte 13 8 7 6 0

Operaeiones de reg Isllo orientadas a bit 13 10 9 76 0

d = 0 para que W sea 91 destino final del resultado d =: 1 para que f sea el destino del resultado f = 7- bit registro de la dlrecclen de un archivn
b 3- bit posicion de un bit (3 bits) f = 7-bit registro de la direccion de un archivo

Ope raclon es de control 13 8 7

o
K = valor literal (8 bits)

CALL Y GOTO iinieamente


13 11 10

o
K -valor literal (11 bits) Figura B.3 Formato general de una instrucci6n

procesamienro de datos, escritura, ciclo de insrruccion, FIgura 8.4.

etc., de cada

Los cuatro cidos Q que conforman un ciclo de insrruccion (TCY) se pueden generalizar asf:

Q1: Ciclo de decodificacion de la instruccion


Q2: Ciclo de lectura de datos de la instruccion
Q3: Procesarniento de datos Q4: Ciclo de escritura de datos de la insrruccion

cion del dispositive. Muchas de estas insrrucciones operan sobre la memoria de datos para 10 cual se requiere de la unidad aritrnetico logica (ALU, Arithmetic Logical Unit). Para llevar a cabo las operaciones arirrneticas y logicas, la ALU controla los bits de estado (los cuales se localizan en un regisno especial denorninado regisrro de estado). E1 resulrado de algunas instrucciones obligan a los bits de esrado a cambiar su valor, depencliendo del resultado de la operaci6n. La CPU puede considerarse como el cerebra del microcontrolador. Ellaes la responsable de buscar la instruccion correcta que se va a ejecutar, decodificarla y ejecutarla. En algunas ocasiones, la CPU trabaja en conjunto can la ALU para completar la ejecuci6n de la instruccion (en los casas que se efectiien operaciones 16gicas a aritrneticas). La CPU controla el bus de direcciones de la memoria de programa, el bus de la memoria de datos y el acceso ala pila,

ci
Los c6digos de maquina 0 conjunro de ins trueclones que la CPU reconoce, se rnuestran en la tabla 1 (al igual que los nernonicos que el prograrna ensamblador usa para generar estes codigos).

L
La unidad central de proceso (CPU) es la responsable de utilizar la informaci6n de la memoria de programa (instrucciones) para controlar la opera-

01 roSG

02

08

I I

01

(}2

031

04

02

I I

03

041

lCY1

TCY2

Figura 8.4 Cic/as Q Curso pnictico sabre Microcontroladores


-.;R-...¥ ..

,T';

<E>

Operaciones orientadas a registros Nemotecnico ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ t,d f,d f f,d t,d t,d
f,d

Operacion SumarW y f AND entre W y f Limpiar f Limpiarw Complementar f Decrementar f Decrementar f, saltar si cero Incrementar f Incrementar f, saltar si cero OR entre W y f Mover f MoverW a f No operacon Rotar a la izquierda a naves del carry Rotar a la derecha a naves del carry RestarW de f Intercambiar nibbles de f OR exclusiva entre W y f

Cicles 1 1 1 1 1 1
1 (2)

COd. de operacionEstades msb Ish 00 0111 dfff ffff 00 0101 dfff ffff 00 0001 1fff ffff 00 0001 OXXX XXXX 00 1001 dfff ffff 00 0011 dfff ffff 00 1011 dfff 00 1010 dfff 00 00 00 00 00 1111 0100 1000 0000 0000 ffft

afectados C,DC,Z Z Z Z Z Z Z Z Z

t,d

1, 1 (2)

ffff

IORWF t,d MOVF f,d MOVWF f NOP RLF t,d RRF SUBWF SWAPF XoRWF
f,d

1 1 1

1 1

dfff ffff dfff ffft dtff ffff 1fff ffff OXXO 0000
ffff ffff

00 1101 dfff 00 00 00 00 1100 0010 1110 0110 dfff dfff dfff dfff

G
C,DC,Z Z

t,d f,d t,d

ffff
ffff ffff

Operaciones orientadas a bits BCF BSF BTFSC BTFSS f,b f,b


f,b

f,b

Limpiar bit b de f Activar bit b de f Probar bit b de f, saltar si es cera Probar bit b de f, saltar si as uno

1 1 1 (2) 1 (2)

01 OObb bfff 01 01 bb bfff 01 10bb bfff 01 11 bb bfff

ffft ffft
ffff ffff

Operaciones Iiterales y de control ADDLW ANDLW CALL CLRWDT GOTo IORLW MoVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k Sumar literal k a W AND entre k y W Llamar subrutina LimpiarWDT Salta a dlrecclen k OR entre k y W Cargar a W con literal k Retornar de lnterrupcton Retornar y cargar a W con k Retornar de subrutina Ir al modo de bajo consumo Rastarle k a W OR exclusiva entre k y W 1 1 11 11 10 00 10 11 11 00 11 00 00 11 11 111X kkkk 1001 kkkk Okkk kkkk 0000 0110 lkkk kkkk 1000 kkkk OOXX kkkk 0000 0000 01XX kkkk 0000 0000 0000 0110 110X kkkk 1010 kkkk kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk C,DC,Z Z TO,PD

2 2

k k

1 1 2

2 1 1

TO,PD C,DC,Z

fabla 1 Conjunto de instrucciones de los microcontroladores PIC de rango medio

<S>

1-,;.. Carso practico :.

sobre Microcontro/adores

(palabrade instruccion)
Valor en 8 bits

Literal en 8 bits

Registro

operaciones aritmeticas utilizan el metoda numerico del cornplemento a dos. En ins truecio nes que manejan dos operandos, normalmente un operando es el registro de trabajo (denominado W) yel otro operandoes un registro 0 una constante, Figura 8.5.

d='O'

Figura 8.5 Operaci6n de la ALU y e/ reglstra W


I

EI registro W es un registro no direccionahie de 8 bits utilizado para las operaciones de la ALU. Dependiendo de 1a instruccion que se va a ejecurar, la ALU puede afectar los valores de los bits carry (C), d£git carry (DC), y zero (Z) del registro de estado. Los bits C Y DC, indican ei momenta en que en una operacion de substrac. in CIOn se d a un caso d e "11· " a " tomo presta d a " . eva
Los dams de la memoria RAJ\.1 inreracnian con las palabras de instruccion a1lIegara laALU. Dependiendo del valor de d en la correspondiente insrruccion, el resultado final se dirige a W 0 al registro de la RAM, f.

Los microcontroladores PIC comienen una ALU y un registro de trabajo de 8 bits. La ALU es la unidad lOgica y aritmetica 1a cual desarrolla operaciones aritmeticas y funciones booleanas entre los dacos del registro de trabajo y cualquier registro, La ALU es capaz de hacer sumas restas, desplazamientos y operaciories logicas. Las

EI registro

de estado, figura 8.6, contiene el estado aritrnerico de la ALU,. eI estado del proceso

Registro: STATUS IRP


bit 7

RPlj

RPII
03h

c
bit

1
a

Direccion: Comlicion de reset.


IRP:

OOO??XXX

AP1,0:

TO:

po:
Z: DC: C:

Selector de pagina para direccionamiento indirecto Este bitoo se utiliza efectivamente en el PIC16F84, por 10que se puede utilizar como un bit de proposlto general. Selectores de pagina para direccionamiento directo. Solamente RPOsa utlHzaen el PIC16F84. RPl sa puede utilizar como un bit de proposito general. Time Outo B/tde finalizaclon del temporizador. Se coloca en a cuando el circuito de vigilancia Watchdogfinaliza la ternporlzacien. Power Down 0 Bit de baio consu me. Se coloca en 0 par la lnstrucclon SLEEP. Zero 0 Bitde cera. Sa coloca en 1 cuando el resultado de una coeracon logica 0 arnrnenca es cero. Digit Carry 0 Bit de acarreo de dfgito. En operaciones srnmencas se activa cuando hay acarreo entre el bit 3 y el 4. Carry a Bit de acarrreo. En instrucciones arltmettcas se activa cuandn se presenta acarreo desde el bit mas significativo del resultado. Figura 8.6 Registro de estado

de reinicializacion y los bits de selecci6n de los bancos de memoria. Este concepto se esrudiara en la siguiente lecci6n: La memoria en los rni-

crocontroladores PIC.
El registro de estado puede servir para alrnacenar los datos de una instruccion, es decir, puede trabajar como cualquier otro registro. Si el registro de estado sirve de destino para una instruccion que afecre los bits C, DC 0 Z, entonces se deshabilita la escrirura en estes rres bits. Esos son puestos en uno o en cere de acuerdo a la 16gica del dispositive y a las operaciones que ejecute. De hecho, los bits TO y PD no son escribibles. El resultado de una instruccion que tenga como destine el registro de estado, puede arrojar un resultado distinto al esperado. Por ejernplo si se ejecuta la instruccion CLRF ESTADO se bo-

Es recomendable que solo se utilicen las instrucciones BCF, BSP, SWAPP y MOVWF para alterar el registro de estado, ya que estas insrrucciones no afectan los bits z, DC 0 C. En la tabla 1 se muestran arras instrucciones que no afectan los bits de esrado,

Este es un registro fundamental para establecer las condiciones can las que va a trabajar nuestro programa. En el podemos llevar a cabo operaciones de lectura y escr itura. Can riene varios bits de control que configuran m6dulos como los temporizadores, las inrerrupciones y las resisrericias de pull-up imernas del microconrrolador, figura g.7.

Los bits PSA, PSG, PSI, PS2, INTDEG y RT


configuran el funcionamiento del temporizador inrerno (esto 10 estudiarernos mas adelante), eJ bit RBPU perrnite que habilitemos una resistencias de pull-up inrernas conectadas al puerto E.

rraran los tres bits mas significativos y Z se pondra en uno .. Esto deja al regisrro de estado con OOOn nlnnn (donde n significa: no cambia).

Registro:

OPTION (OPCIOt.J)
INTEDG RTS
bit 7

RYE

PSA

PS2

PS1

PSO
bit 0

Direocion: Condicion de reset.


RBPU:

81h l1111111b

INTEDG:

RTS:

RYE:

PSA:

PS2,1,O:

PortB Pull-up Enable 0 Habilitaci6n de pull-up del puerto B. 0: habilita las pul/-ups internas 1: las deshabilita INT Interrupt Edge Select Q Selector de flanco de la lnterrupclen INT 0: flanco de bajada 1: flanco de subida TMROSignal Source 0 Fuente de serial de TMRO. 0: cicl.o de instrucciones interno (Temporizador) 1: translclon en el pin RA4fTOCK (Contador) TMROSignal Edge 0 Hance de la senal TMRO a; incremento en translcion de bajo a alto 1; incremento en translcton de alto a bajo Prescaler Assignment o AsigrJacion del preescalador 0: lRMO (ContadorfTemporizador) 1: WDT (Circuito de vigilancia) Prescaler Value 0 Valores del preescalaoor.

Valor 000 001 010


011

TMRO 1 :2 1:4
1:8 1 :16

WDT 1:1
1 :2

1:4
1 :8

100 101 110 111

1:32 1:64 1:128 1:256

1 :16 1:32
1:64

1:128

Figura 8.7 Registro Ope/ON

PC
Conocer como esta estructurada la memoria dentro de los microcontroladores es un paso fundamental para desarrollar aplicaciones optimas y aprovechar al maximo 10 que estos circuitos integrados nos pueden ofrecer. En esta leccion analizaremos la disposicion y manejo de las memorias RAM y ROM internas de los microcontroladores PIC.
Curso practico sobre Microcontrofadores

Podemos resefiar dos bloques principales en los que se divide la memoria en los microcoritroIadores PIC: la memoria de programa (ROM) y la memoria de datos (RAM). Tarnbien existe una memoria rnuy importance denominada la EPROM de datos; ella sed terna de estudio en la siguiente lecci6n. Como vimos en la leccion anterior, cada bloque cuenta con su propio bus de acceso, de manera que ambos pueden consultarse durante un mismo cielo del reloj. de datos, a su vez se divide en dos bloques: los registros de proposito general y los registros de funciones especiales (SFR: Special Function Registers). Los regisrros de proposito general son los que el usuario tiene a su disposicion para ubicar las distinras variables de SlL programa, rnientras que los regisrros SFR coonolan muchas funciones del microcontrolador y de sus modules perifericos,

Von Neumann, una memoria de programa de 8K puede llegar a tener s610 alrededor de 4K para almacenar instrucciones, La memoria de programa en los rnicrocontroladores PIC se divide en cuatro paginas de 2K cada una (Oh-7FFh, 800h-FFFh, lOOOh-17FFh, Y 1800h-1 FFFh), figura 9.1. Dependiendo de la referenda del rnicrocontrolador PIC, se deterrnina que porciones de este mapa de memoria posee internamenre. Para ello debe referirse a la hoja de dams del PIC especifico can el fin de establecer su memoria disponible. Para sal tar entre las paginas de la memoria de programa, se deben modificar los bits altos del conrador de programa (PC). Esro se hace escribiendo el valor deseado en un regisrro SFR denominado PCLATH (Program Counter Latch High). Sin embargo, si se ejecurari instrucciones secuencialmente el con-

La memoria

El Lon do d , 0 'Ill" El contador de programa (PC) es un registro de 13 bits que especifica la direccion eo la memoria
de programa de la insrruccion que debe buscarse para ser ejecurada. EI byte bajo del PC se denornina registro peL y sabre el se pueden realizar procesos de lectura y escritura. EI byte alto se conoce como registro PCB, contiene los bits 8 al 12 <12:8> del PC y no puede leerse ni escribirse de manera directa,

PC<12:0>

Nlvell de la pila t;~Nivt:18'_dela plla

m mo
E1 comador de programa de los microconrroladares PIC de rango media puede direccionar un espacio en la memoria de programa hasta de 8K y 14 bits de longitud. Como todas las instrucciones son de palabra simple, un dispositiva que posea una memoria de programa de 8K x 14 bits tiene espacio para albergar 8K en i11Strucciones, ES(Q facilita al usuario establecer si un dispositive tiene suficienre memoria de programa para una aplicacion determinada. Esta aclaracion es importante hacerla deb ida a que, al trabajar en un dispositive de CPU CISC Y
8K 6K 4K 2K

OOOOh 0004h 0005h 07FFh OBOOh OFFFh lOOOh l7FFh loaOh

....... 1FFFh
Figura 9.1 Memoria de programa

a) En dispositivDS hasta de 2K de memoria de programa

Direcci6n hexadecimal

000

Memoria de programa

c~~~~~~~~e10 11 11 t 11 0 11 XX
L______J

II

1210

I I01 1 1 If
0 101 5

3A5

'12K" dlrecciones (11-bit rango de direcciones)

7FF

............ _j

b) Dispositivos hasta de 4K de memoria de programa

Direccion hexadecimal

000

Memoria de programa

12 11

c~~~g~:~~e 1X 11

1 I' 11 111 a 11 IaI~ ~ 11 I


0

"4K" direcciones (12-bitrango de direcciones)

FFF

~~':;it:~';;"";;~
----.. -'0 ..... ..::.._~_ ... ....:.'.;_ _._~_ • ...........,._

Figura 9.2 Trabajo del contador de programa a/ acceder a /a memoria de programa

tador de programa puede llegar a sobrepasar los lirnites de la pagina sin ninguna intervencion del usuario, Todas las actualizaciories que se hacen sobre el registro PCH afectan inrnediatarnente al registro PCLATH_ Para dispositivos can menos de 8K el acceso a una posicion par encima de las establecidas fisicamente originad. llna sobreposici6n. Esto es, en un dispositive de 4K acceder a la direcci6n 17FFh en realidad direcciona la 7FFh, Dispositives de 2K 0 menos no requieren pagi~ar la memoria de programa. Una memoria de programa de 2K s610 necesita de un contador de programa de 11 bits para acceder a cualquier direcci6n (211 = 2048 = 2K), figura 9.2a. Un microcontrolador con una memoria de programa de 4K necesita de un comador de programa de 12 bits, figura 9.2h.

Este Ultimo tipo de microcontroladores utiliza un contador de programa de 13 bits, permiriendo manejar hasta 8K de memoria de programa sin cambiar para nada la estructura de la CPU. Los dispositivos de 2K 0 4K ignoran los bits mas significativos del conrador de programa durante los procesos de btisqueda en la memoria de programa. Existen dos direcciones dentro de la memoria de programa que reciben un trato especial por parte de'la CPU. CUaJ1do la CPU inicia su operaci6n desde su estado de reset, su contador de program a autornaticarnente toma el valor de cero. Esta direcci6n se denornina vector de reset debido a que a ella llegara la ejecuci6n del prograrna cuando ocurra W1 estado de reset.

En este punto se borrara el contenido del registro PCIATH. Esto significa que cualquier salto hacia La
Curso prelctico sobre Microcontro/adores

Direcci6n hex.

Memoria de proprama

000 001

002 003

SERVICIO_INTERRUP se puede asignar a esra posicion para que la CPU salre a una subrutina donde se establezca que hacer al aparecer la inrerrupcion, la cual puede estar en cualquier punto delespacio de la memoria de programa. Como verernos mas adelanre una de las teenicas mas urilizadas dentro de [as microconrroladores es el manejo de tablas, Denrro de la memoria de prograrna es conveniente ubicarlas en el rango de direccianes de 005 H a OFFH; estas 250 posiciones son mas que suficienres para la rnayorfa de las aplicaciones. El programa PRINCIPAL iriicia su ejecucion cuando el P1C sale del estado de reset v continua funcionanda hasra que una de [as fue;res de interrupci6n ha aparecido y requiere atencion inmediata: en ese momento la ejecuci6n del programa PRINCIPAL se suspende temporalmente, La CPU ernpieza a ejecutar la subrutina del servicio de inrerrupcirin cuando se carga automaticarnente el conrador de programa con 004H ..Cuando se cornplera la ejecucion del servicio de inrerrupcion, la CPU retorna al mismo punto donde abandon6la ejecuci6n del programa PRINCIPAL. La escritura de programas se cornplica un poco wando entre el codigo principal, tablas, subrutinas e inrerrupciones, se acupa mas de 2K.

004
005

}blas
] Programa PRINCIPAL y sus subrutlnas Servicio de inte.rru.pci6n y sus subrutlnas

SERVICIO INTERRUP Fin del c6digo

J.

Figura 9.3 Vbicaei6n en /a memoria de programa

direcci6n del vector de reset (Oh) llevara a la pagina 0 de la memoria de programa. Esro 10 podemos apreciar en la 6gura 9.3, donde el conrenido de la direcci6n OOOHes la instruccion goto PRlNCIPAL. La segunda direccion especial es 1a004H, la que se carga auromaricarnente en el camador de progra-

el momenta en que ocurre una interrupcion. Esta direcoon se conoce como vector deinterrupci6n.
rna en Cuando el PC torna la direcci6n del vector de interrupcion, eI registro PClATH no semodifica. Como se rnuestra en la Ggura 9.3, una instrucci6n goto

Ins'~~~~I~,i6n

I [I II I I I I I I I I I I

13

10

Direcd6n hex.

Memoria de programa de 2K (rango de direcciones

PCLATH Contador de programa

n:
~

11 blts

II

000

PCLATH.3 = 0

.
7FF 800
FFF

Micros

de 11
bits)

Micros de 4K (rango de dlrecclonss de 12 bits)

PCLATH,3 ;;;;1

Figura 9.4 Direceionamiento usado par /lamado

a subrutinas

Como se rnuestra en la figura 9.4, los bits 0 al 10 de la instruccion call se cargan dentro del contador de pIOgrama y los bits 4 y 3 del registro PCLATH se cargan en los bits 11 y 12 del contador de programa. Mientras la memoria de programa utilizada sea menor a 2K los bits 4 y 3 del PCLATH pueden ser dejados en OOH, de manera que los 11 bits de direcciones en la instrucci6n call idenrificaran la direccion de inicio de cualquier subrutina ubicada hasta la direccion 7fFH. Para pragramas de mas de 2K es necesario asegurarse de que el bit 3 del PCLATH se ponga en cera 0 en uno de acuerdo a la porcion de la memoria de programa que estemos utilizando, cada vez que se llama una subrutina. La instrucci6n GOTO tarnbien tiene un campo de direcciones de 11 bitsy requiere un trararniento idenrico, ver figura 9.5. ORG 0x500

parte ni de la memoria de programa ni de la memoria de datos y para acceder a sus posiciones se utiliza un regisrra especial conocido como PUl1rero a la pila (stack pointer), en el cual no puede escribirse ni leerse. Los PIC de rango medio poseen una pila (en hardware) de 8 niveies y 13 bits de ancho; esro quiere decir gue permite la combinaei6n de hasta 8 llamados de subrurinas e interrupciones.

El contador de programa es puesto en 1a pila


cuando se ejecura una insrruccion de llamada a subrutina CALL 0 cuando aparece una interrupci6n. E1valor presente en la pila es rescatado cuando se ejecura una instrucci6n de retorno como RETURN, RETLW 0 RETFIE. En niuguno de estos dos casas se modifica el PCU\'TH. Despues de que la pila se ha almacenado en acho ocasiones, el novena alrnacenarniento sobreescribe el valor que fue alrnacenado en la prirnera ocasion. El decimo almacenamiemo sobreescribira el valor almacenado en la segunda ocasion, como se rnuestra en la figura 9.6. Es imporrante resaltar que no existe ningun bit en el registro de ESTADO que nos indique cuando se ha llenado la pila, de manera que es labor del pragramador verificar que dentro del programa no se hagan mas llamadas a subrutinas que las soponadas par el microcontrolador. PILA
Sobreescrlbe nivel1 Sobreescribe nivel2

BSF PCLATH,3 CALL SUBLPI


ORG 0x900
SUBLPl;

;Selecciono pciginalC800h-FFFh) ;11amo subrutina ubicada en 10 ;paginol (800h-FFFh)

;subrutina 110moda en 10 ;pagina 1 (800h-FFFh) ;retorno 01 11amado de 10 ;subrutino en 10 pagino 0 ;C000h-7FFh)

RETURN

Figura 9.5 Ejemplo del /lamado de una subrutina en la pagina 1 desde /8 pagina a

pi

j ~ ~ t"

La pila es un espacio de memoria que contiene la direccion de retorno antes de que ocurra un salta dentro de la ejecuci6n de un programa. Al momemo de ocurrir un salto denrro de un pragrarna en 1a pila se almacena 1a direcci6n en donde se estaba llevando a cabo la ejecucion, tornando el valor del comador de programa. De esta rnanera, la CPU cuando rermina de ejecutar la subrutina, puede consulrar en la pila la direcci6n de retorno para continuar con el desarrollo normal del programa. El espacio de la pila no forma

Figura 9.6 Comportamiento de la pila •

Ourso.,acfic, so"," Mic_ntr,ladores

IT';'

dd Contadnr de Prograrna (PC) La figura 9.7 rnuestra cuatro situaciones en donComportamientc de podemos estudiar el comportamiento del contador de prograrna (PC). La situacion 1 muesrra como se carga el PC a1 escribir en el 5ituact6n1: instrueci6n con pel como eesrno

peL ( y par consiguiente el PCLATH<4:0> --> PCH), el PCH no puede rnodifiregistro carse (escribirse) direcrarnente perc puede modificarse cuando varia PCL, y cualquier modificacion que sufra PCH se refleja inmediaramente en el PCLATH. La siruacio n 2 muesrra como se carga el PC durante una instrucci6n GOTO (PCLATH<4:3> --> PCH) Yvemos como los bits 3 y 4 del PCLATH (establecidos par el usuario) afectan el contenido del contador de programa. Como vimos anteriorrnente, de esta manera accedemos a paginas superioresen 1amemoria de programa. La siruacion 3 rnuestra como se carga el PC durante una instruccion CALL (PCLATH <4:3> --> PCH), cuando el PC se ha cargado en fa cima de la pila (stack) y como, al igual que can la instruccion GOTO, el PCLATH afecta al comador de programa. La situacion 4 muestra como se carga el PC durante una instruccion

12

PCH 87

pel

..

Situacion 2: comportamiento ante uea instmcllion (iOTD PCH pel a 12 11 10 8 7

lncorporanoo un cMigo operative en pel dO;O>

de retorno (RETURN), donde el PC es cargado con el valor que hay en la


sltuaclon 3: instruceion CALL 13
Pila (13·bits ~ 8)

eima de 1a pila. En muchos programas en Ienguaje ensamblador es necesario construir tabIas de datos para disrintas aplicaciones. Uno de los metodcs comunes para aeceder a estas tablas es sumac un valor dererrninado al contador de programa (ADDWF PCL). Cuando invocamas una rurina de tabla el PC coma esa direccion inicial y al sumarle un valor fijo llega a la posicion de la tabla indicada par dicho ruimero. En un caso

pel

t ~}
Pdr ejemplo, Rerum,. Raffia, 0: RETlW .ReH 12 1110 87 _

mas

Incorporando LIn codigo operativod 0:0>

Situac;:ion 4~componafuiento ante una irstruceion de retrone, .


13

.~ Pila (13'-olts x

como este, a1 sumarle un numero de 8

·t_!!_ .

bits, la tabla solo podra Uegar hasta 256


posiciones de longirud. escritura q lie se haga sabre el contador de programa (PCL), oriCualquier ginara que los 5 bits bajos de PCLATH se cacguen en PCH.

Incorporando un c:6digo operativodO:O>

Figura 9.TComportamlento delcontadordeprograma

IE:'

Curso practicosobre

Microcontroladores

La

morl

Como habiamos mencionado anreriorrnente, esta memoria se divide en dos partes fundamentales: el area de registros con Funciones especiales (SFR: Special Function Registers) yel area de registros de proposiro general (GPR: General Purpose Registers).
INDF
OOh

el area disponible para que el usuario almacene sus


datos y desarrolle sus operaciones. Los registros can fimciones especiales controlan la operacion del dispositive; par ejernplo, poseen los puertos y los regisuos de control para establecer el tuncicnamienINDF
OPTlON_REG

Los registros de proposito general representan

INDF
OPTION_REG

80h

100h
101h 102h

TMRO PCl STATUS


F5R
PORTA PORTS PORTe PORTO PORTE

01h
02h

81h
82h B3h
,

OPTDt__
PCL STAlUS FSR PORTB
PORTF PORTG

.,

180h 181h
182h 183h 184h 185h 186h 187h 188h

03h 04h OSh 06h 07h 08h 09h


OAh

PCl STAniS FSR


TRISA TRISB TRISe TRISO TAISE PCLATH

PCl STArns
FSR

103h
104h

84h

85h
86h

laSh

PORTB
PORTF
PORTS PCLATH INTCON

106h 107h

87h 88h
8911 8Ah

108h
109h 10Ah

189h PCLATH INTCON 18Ah


18Bh

PCLATH INTCON
PlRl PlR2 TMR1L TMR1H neON TMR2 T2CON SSPBUF SSPCON CCPR1l CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2l CCPR2H CCP2CON ADRES
I

OBh OCh
ODh

INTCON

8Bh
8eh

108h
lOCh

PlE1
PIE2 peON
OSGCAL

18Ch 180h
18Eh

80h 8Eh
8Fh

100h
lOEh

OEh OFh
10h 1111

10Fh
110h l11h 112h

l8Fh 190h 191h


192h

90h 91h
PR2 SSPAOD SSPATAT 92h

12h
1311 14h 15h

93h 9411
9511
,

113h 114h
115h 116h

193h 194h 195h 196h


197h

16h
17h

9611 9711
98h

117h
118h

18h 19h
lAh

TXSTA
SPBRG

198h 199h 19Ah 198h


19Ch

99h
9Ah 9Bh

119h l1Ah l1Bh


l1Ch l1Dh
i

18h

ten
1 Dh 1 Ell

9Ch 90h 9Eh


ADCONl Registros de pr0p6sito general (3) Mapeadoen el Banco 0 9Fh AOh Registros de propasito general (3) Mapeadoen el Banco 0 70h - 7Fh(4)

190h
19Eh ~istrosde

llEh 11En

ADCON{)

lFh
20h

120h 16Fh 170h


FFh

Registros de prop(lsito

EFh

general (2) 7Fh

70h _7Fh(4) Banco 1

FFh

=~
lEFh

=(3)~
70h -7Fht\t} Banco 3

19Fh

lAOh

lFOh

1FFh

Banco 0

Banco 2

Figura 9.8 Estrur:tura general de la RAM Curso pUletieo sobre Microeof1troladores

to de cada uno de los pines como entrada 0 como salida. Contienen tambien regiscros que perrniren Laentrada y salida de datos para la variedad de rnodulos del rnicroconrrolador, como temporizadores, puertos seriales, conversores analogo-digitales, etc. Tarnbien conrienen bits de control que seleccionan el modo de operacion de los modules del microcontrolador, al igual que pueden habilirar 0 deshabilitar su Iuncionamiento.
Esrrucrura en bancos

gistros con el cual se va a rrahajar,

La memoria de datos (RNvI) de los microcontroladares PIC se ha dividido en cuatro bancos. Cada uno de ellos conriene registros SFR y GPR Para poder trabajar con cualquiera de estes registros, nay que estar ubicado dentro del banco correspondienteo La conmutacion entre bancos requiere con6gurar los bits RPO y RPI del registro de estado (STATUS <7:5» de acuerdo a 10 mostrado en la tabla 9.1. La figura 9.8 muesrra un mapa general de la RAM para los microcontoladores PIC, que cortesponde a una organizacion escindar para todos los dispositivos de esta familia.Los 13 6 registros que se encuentran en 1111111101011101110101 negrilla siempre se encontraran en cualquier dispositive. Los bitRPO en el registro de estado demas registros dependen de la cantidad de perifericos que po- Oirecciones 0 0 0 1 etecnvas sea el PIC; par eso conviene mirar en las hojas de datos [as caractensticas de cada dispositivo en particular. de los regisrros que se muestraen la figura 9.8, se puede apreciar que ellos poseen direcciones en 8 bits que van desde la direccion OOH hastala FFH. E1 modo de direccionamiento directo utiliza solo 7 bits de la instruccion para identificar Ladireccion de un registro, el octavo bit de la direccion debe venir de un bit (RPO) que selecciona el banco de reEn la estrucrura
13 6

o En general, para mover valores 2 de un regisrro hacia otro, el valor L 3 debe pasarse a traTabla 9.1 Configura cion de Jos bits RPO y RP1 ves del registro de trabajo (W). Esto significa que para cualquier movimiento de datos entre registros se requieren dos cidos de instruccion,
Toda Lamemoria de datos puede accederse directa 0 indirectarnente. El direccionamiento directo requiere de la configuraci6n de los bits RPO y RPI. El direccionamienco indirecto requierela utilizacion de un registro especial conocido como FSR (File Select Register) y el bit IRP (Indirect Register Pointer) que hace parte del registro de estado. Mediante ellos se puede acceder a los bancos 0, 1,203 de la memoria de datos.

:r:::=

Directo (RPl :RPO)

Indirecto (RPl :RPO)

a
Direcci6n hex.

oj ;::
0 1 0 0 /' hex 1F
0

Contenido del archivo

1111111101011101110101
bitRPO en el registro de estado Oirecciones

80
7i>
Q)

'" e .0 u
C

"0

c::

etectivas

CI:I

11:1

LJ.J

><

r;:

:2

...: 0;

FF
Figura 9.98 Modo de direccionamiento directo

informacion del c6digo 6 operativo codigo. 0 . ...

IIIIIIIII
01 10 11

la inseruccion (OPCODE) son utiiizados para direccionar las posiciones de memoria y los bits RPO y RP I del registro de estado, pueden ser urilizados para direccionar a seleeeionar los distinros bancos.

Cada banco se extiende hasta 7FH (128 bytes). Las posiciones mas bajas de cada banco se reservan para los regisrros can func:iones esMemoria de datos peciales (SFR). Debajo de los SFR se encuen7Fh tran ubicados los registros de proposito gene7Fh ral. Es de resaltar que algunos registros SFR Banco .0 Banco 1 Banco 2 Banco:l del banco 0 se han puesco rambien en otros Figura 9.9b Esquemageneral del modo de direccionamiento directo bancos (posiciones espejo) para faeilitar su acEn la Figura 9,9a se muescra la utilizacion ceso. En fa figura 9.10 se rnuesrra un mapa de del direccionamiento directo para acceder al memoria de datos correspondiente a algunos registro ubicado en la direccion 14H o 94H, microcontroladores PIC de 18 pllles, en dondependiendo del valor de RPO, yen la figura de podemos apreciar algunos registros quema9.9b se muestra un diagrama general de esre nejan la ubicaci6n en Espejo. Pot ejernplo el retipo de direccionarniento, en el eual observagistro de estado (STATUS) se encuentra ubicamos como los 7 bits del codigo operative de do en las direcciones 03h y 83h. Direeeionando cualquiera de estas dos posiciones podemos acDiretclones Oirecci onus ceder y rrabajar con dicho registro, INDF
TMRO

OOh
01 h

INDF OPTIONJlEG

BOh

81h S2h
83h

Pel
STATUS FSR

02h
03h

PCl STArus
FSR TRISA TRiSB PCON
AOCON1/

04h 05h 06h


i

84h

Direccioeamier, 0 indirecto Este modo de direccionamiento sobre la memoria de datos es apropiado en casos doncle las direcciones de memoria que se manejan denrro de una insrruccion no son fijas, es decir cuando se tiene el easa de que querarnos rrabajar con datos que se encuenrren disrribuidos a 10 largo de varias posiciones de memoria. En este caso el direccionamiento indirecto nos brinda una manera rap ida de acceder a rodos esos datos, utilizando un regisrro especial (FSR) como apuntadora La posicion en la memoria de daros que se quiere aeceder. Cornoesre apunrador es un registro en RAM, sus eontenidos pueden modificarse dentro del programa y de esta manera apuntar a muchas posiciones disrintas: esto puede ser muy utilcuando crabajamos con tablas de datos ubicadas en la memoria de programa;. un ejernplo de este manejo ]0 podemos apreciar en el proyecto 5 de este curso tirulado

PORTA
PORTH

aSh
86.h

07h
aSh 09h

87h

ADCONOI
EEDATA(2) ADREs/ EEADR(2) PCLATH INTCON Registros de pr0p6sito general (3)

aah
89h 8~h
aBh
8Ch

EECON1(2) ADRESJ EECON2(2) PCLATlt


,

OAh OBh
OGh

INTCON
RegiGtros de prop6sito gen!;lral (3)

7Fh
Banco 0

FFh

Figura 9.1 0 Mapa de fa memoria RAM de microcontroladores PIC de 18 pines

Aviso Luminoso con Diodes LED.


Curso practico sobre Microcontroladores

d.-¥IC'T.;.

<S>

Dlrecclon

hex,

Contentdos

00

Instruccion orentaoa a bito a byte 13 6 0

I II I I I I I 0 I 0 I 0 I 0 I 010 10 I
La direccion de INDF nos dice que el FSR se usa como aputador 7F 80 94 9

hex

ccesa cualquier posicion en 1odo el espaclo de dlrecclonas

FF Figura 9.11 Modo de direccionsnuento indirecto

En ese proyecto se escribi6 una serie de datos en diversas posiciones de la memoria de prograrna, los cuales debfan ir rnostrandose secuencialmente en la panralla de diodos LED. Para resolver ese problema, simplemente se acudi6 al registro FSR para que hiciera un recorrido par todas esas casillas y pudieramos tornar el dato.

Si intentarnos

leer manualmente

el regis-

rro FSR, solo leeremos

DOH, y si intentamos

escribir un dato sobre el, resulrard un estado de no operaci6n (NOP). Podemos generar direcciones hasta de 9 bits, concatenando el bit IRP (STATUS <7» con los 8 bits del regisrro FSR, como se muestra en la figura 9.12.

En este modo de direccionarniento, la direcci6n (en 8 bits) del regisrro que se


va a acceder, se escribe en un registro especial (FSR) que sirve de apunrador a cualquier punta del mapa de memoria RAM. Despues de haber escrito en ese registro, se puede consul tar otro registro

IRP

II. I JIIIIII
I.

Registro FSR

11sele",]

bancoSaleemr e postclonas d

especial llamado INDF el cual acceded

OOh

00

01

10

OOh
Memoria de datos 7Fh
Banco 0 Banco, Banco 2 Banco 3

el regisrro usando ei contenido

del FSR como apuntador a la posicion de memoria deseada par el operando, figura 9.11. Cualquier msrruccion que utilice el regisrro INDF puede acceder al regisrro ~mado

tor

FSR.
Curso practico sobre Microcontroladores

Figura 9.12 Direccionamiento indirecto concatenando el bit IRP

'Ie171:.:

D(------~-=======;

DE IDS ROLAB

En la lecci6n anterior estudiamos los bloques de memoria RAM y ROM de los PIC. Ahora estudiaremos la memoria EEPROM de datos. Esta es una memoria que ocupa un bloque separado de las dos anteriores y que ha representado la soluci6n a muchos problemas dentro del disefio electr6nico. Al final hablaremos un poco de las memorias seriales que tambien ocupan un Lugar relevante en una gran variedad de sistemas electr6nicos.

Hernos vista las distinras recnologfas que tienen los microcontroladores para su memoria de programa: FlASH, EPROM, EEPROM, OYP, ere, Una vez se ha programado un rnicroconrrolador, independiente de su tecnologfa, la memoria de programa puede ser considerada como una memoria ROM, ya que no podemos escribir sobre ella en e1 transcurso normal del sistema, a pesar de que luego podamos retirarla del circuito y programarla nuevamente, En muchos casos varnos a necesitar, par ejemplo, recolectar datos del mundo exterior y almacenarlos, para 10 cual necesitaremos una memoria en la cual podamos grabar los dams y tener la certeza que permaneceran alll y no se perderan, Exisren muchos dispositivos EEPROM disponibles en ei mercado. Estos se pueden clasificar en tres tipos generales: EEPROM seriales, EEPROM paralelas y microcontroladores con EEPROM de datos inrernas, como por ejemplo los PIC16F84, 16F870 Y 16F87X de Microchip. Analicernos el funcionamiento y usa de las memorias EEPROM que se encuentran en algunos microcontroladores PIC y de las mernorias EEPROM seriales, por ser estas ulrirnas muy comunes en mucha aplicaciones,

Tamaiio de la EEPROM de datos 64 128

Rango de direcciones
Oh - 3th Oh - 7fh Oh - ffh

256

Tabla 10.1 Tamanode /a EEPROMde datos y su fango de direcciones

Algunos dispositivos programadores pueden grabar la memoria EEPROM de datos. Esra memoria puede ser lelda 0 escrita durante la ejecucion del program a, siendo un bloque completamenre separado de la memoria de programa y de los archives de registros (RAM), y puede usarse para almacenar cualquier tipo de datos.

El rango de direcciones de esta memoria es accedi do colocando la direccion en un registro especial (EEADR) y comunicando los datos por medio de otro regisn-o especialllamado EEDATA. Los datos son leldos 0 escritos en un byte al tiempo, Un solo bit no puede ser leido a escrito, Se usan cuarro registros de funciones especiales para leer y escribir en la EEPROM de datos, los cuales se rnuestran en 1a tabla 10.2.

I Registro
EEADR EEDATA EEGONl EEGON2 OX08

Direccion OX09 -c-dlreccon 8 del banco 0 OXB8 -c-dlrecclon 8 del banco 1 OXB9

amorias EEPRO
La memoria EEPROM de datos puede leerse y escribirse durante la operacion normal de un sistema. En esta memoria se pueden almacenar data y variables para que no se pierdan cuando se desconecra la alimentacion del sistema. Analizando los requerimientos de la aplicacion, puede ocurrir que esta memoria sea suficiente y no se renga que recu. . rnr a memonas exrernas.

Tabla 10.2 Registros esoecisies para el manejo de la EEPROM de datos

Este tipo de rnemorias soportan hasta 1.000.000 de cidos de escritura/borrado y pueden guardar la informacion sin alterarla por mas de 40 afios, Esra memoria no se encuentra en el espacio normal de archivas de regisrra; en lugar de eso, debe ser direccionada indirectarnente a craves de regisrros especiales. En la

El tiempo de escritura es de aproximadamente 10 milisegundos y es controlado por el temporizador que hay dentro del circuito imegrado. En realidad ese riempo resulta muy largo para la velocidad del procesador, par este rnotivo existen varios bits en otro regisrro especial denominado EECONI para supervisar Lacompleta y correcta terrninacion del cielo, figura 10.1. Analicemos los registros asociados al manejo de esta memoria: J ... El registro de 8 bits EEADR es capaz de direccionar un maximo de 256 posiciones. El rango de direcciones utilizable 10 podemos vet en la tabla 10.1.

acrualidad los rnicrocontroladores PIC 16xxx ofrecen


hasta 256

trytes de memoria

EEPROM; ver tabla 10.1.

EECONl
o __ __ _

EEIF

WRERR

WREN

WR

RD

RD: tectura 1: Se pone en uno euando se va a realizar un elclo de lectura de la EEPROM.Luego pasa a cero automatcamerne.

WR: Escritura

1: Se pone en uno euando se inieia un cicio de escrilura en la EEPROM.Cuando se completa el clclo pasa a cero aetornatlcamente.

WREN: Permiso de escrltura 1: Permite la escritura en la EEPROM 0: Prohibe la escritura

WRERR: Sefializador de error de escrltura

1: Se pone en uno cuando una operaclon de escritura ha terminado prematuramente 0: La operation de escritura se ha completado correctarnerrte,

limpia cada vez que se enciende el sistema. EI bit WRERR se pone en uno cuando un cido de escrirura se inter rumpe par un reset debido al pin MCLR 0 al watchdog. Despues de un reset, par medio de un programa, se puede chequear el bit WRERR y reiniciar e1 cielo interrumpido de escritura. Las direcciones y los datos se rnanrendran sin cambios en los registros EEADR y EEDATA.

Se inicia un cido de lectura colocando la direcci6n que se va a acceder en el registro EEAD R Y poFigura 10.1 Registro de control de la EEPROMde datos niendo el bit RD = 1 en el regisn Es un regisuo de 8 bits que se usa para tro EECONl. En el siguiente cielo de instrucpasar datos des de y hacia la memoria EEPROM cion, los datos estaran disponibles en el registro de datos. EEDATAy perrnaneceran allf hasta que se realice una nueva lectura 0 escritura en 1a EEPROM. " Este no es un registro fisico, sin embargo la direccion Ox89 es asignada a el, Alleerlo EEADR se localiza en el banco 0 (RAM) y todos sus bits son cero. S610 se emplea como un EECON 1 en eI banco 1, de manera que se redispositive de seguridad durante el proceso de quiere seleccionar cada banco dentro del codiescritura de la EEPROM, para evitar las interfego, figura 10.2. rencias en ellargo intervale de tiernpo que precisa su desarrollo. En el se escriben dos palabras de control y forman parte del cielo de escritura.
I"

EEIF: Sefializador de final de operaci6n de escritura 1: Cuando este sefiallzador se pone a 1 indica Que la operacion de escritura sa ha completado can exlto, Se pone a a por programa. 0: La operaclon de escritura no se ha completado.

Ie dele

y tiene la funci6n de controlar las operaciones en 1a EEPROM; su distribucion de bits se muestra en la figura 10.1, y su descripci6n es la siguiente. Los bits de control RD y WR inician 1a leetura y la escritura. Se deber tener en cuenta que esros bits s610 pueden ser colocados en uno (no se pueden colocar en cere) por software para que inicien el cido de escritura/Iecrura. Estos se limpian automaticamente al cornpletarse un ciclo de lectural escr i tura. Una operacion de escrirura es valida cuando el bit WREN se pone en uno. WREN se

Este es el registro de control

Figura 10.2 Diagrama de fluiD del CicIo de fectura en la EEPROM de datos Curso prActico sobre Microcontroladores

IE:.