Vous êtes sur la page 1sur 323

TEO

ffi,
@
Capa.c:ita,nlos lrara. uiuir nteiot

A,

gGlleraL LffisLLrn

S.A. presentar a todos nuestros Es muy placentero y satisfacto,io p"," CEKIT y en general tcnicos,profesionales lectoresy amigos,estudites, profesorer,"fi.iorr"dos, obra didctica en el camPo de la electra la comunidad tcnica int.rnacional, una nueva de'Aprendertraciendo" que no: F:t::t:tl* p-iio yi" ;i;"-;;J.r,ito el -.,oaologa sobreMICROCONTROLADORE$ do por anros aos. Se trata del Cursoprfutii .orrocer y ensear, de una manera ficll y cual tiene como oUioirro principal d-", " agradable,esta maravillosa tecnologa' como una microcomputadora Los microcontroladores, que pueden considerarse en el diseo un avancesin par en los ltimos_aos en un slo empaq,,., t,"'p.,-i.iao electrnicas' Haciendo un smil y la fabricacin de todo tipo de aparatosy aplicaciones microcontrolador es un Pequeocerebro con el ser humano, pod.-o, decir que un entre sl tal como las neu,.".rri.,or., interconectados electrnicofor*"do'po, como la memoria' uno o -.r.ho, especializadas ronas y que tiene rr"ri", zonas con funciones teclados, interruptottt y,:t"::l:tl^:l*' varios circuitos para recibir informacin de externos como motores, rels' lndlcaoores otros, y secciorr.spara activar elementos por medio de un Programao conjunto sonoros,pantallas,.t..; ado esto coordinado de instrucciones. un componente haba permitido Nunca antes, en la historia de la electrnica, de una forma tan fcil' en tan corto tiempo "nra creatividad y J.r"r.ollo de productos y fabricar casi Con los microcontroladores es posible disear f" lo.ro. ,"r, ,.rr.iJos. est dado slo por la imaginacin y cualquier aparato que se nos ocurra; el lmite t.r.rir" capacidad de hacerlo' no lo es y pafa demostrar lo Aunque el tema parece difcil y complejo, realmente ." u-n lenguaje simple acompaado de contrario, lo iremos explicando p"ro " p".o tal forma qut los lectores lo puedan ir muchas figuras, di"gram"s e ilusiracione. de dificultades. Paraentender v de aprendizajesin asimilando r" p;;i;;i;;" -"y."r:: " Electrnica Digital' de los siste- ' ..,"...rrloi", ,. requierenconocimientos de bsi"pfi."t ,rum.racirrl .rp..i"l-.nte del sistema binario y hexadecimal' y nociones mas de de algunos rePasaremos durante .l cassobre los micropro."dor.r. Sin embargo, "rr,,o los lectores que no los con el fin de que los concepto, f,rrr"-.ntales de estos ,.-, una de las lecciones' .orror."t, puedan comprender mejor cada incluyen uno o vanos microLa mayorade los aparatos electrnicos modernos de estecurso en estemundo tecnolcontroladores y de ah la importancia y necesidad d_igitald:.p."f.t1lo utiliza para contabilizar gico en el cual nos encontr"rrror. un reloj y recibir las rdenesen los botones para el tiempo, mostrarlo en una pequeapanta[ lo utiliza para coordinar sus princiejecutar dif.r.rrt., furr.iorr... Una vid.og."b"o," do, el cambio de los canales' el avancey pales funciones como el encendido y ,llp^g remoto, etc. En un horno microondas el retrocesode ta cint", las funcione, d.l .orrrr mostrarlas de recibir las rdenesque le damos en el teclado' microcontrot"o.r.'*.arga el calor en los alimentos' en la pantalla y accionar .f.lemerrto que produce
Microcontroladores cursoprctico sobre

&i.r::

Pero sin restarle importancia a este tipo de aplicaciones, es en otro c:rmpo a donde queremos orientar estecurso. Se trata de la utilizacin de los microcontroladores en sistemas de control y en el diseo de aparatos aparentemente sencillos pero con una gran cantidad de usos en la vida diaria ya seaen el hogar, en la industria, en la oficina, en el camPo o a nivel experimental y sobre todo para ensearlesa nuestros lectores cmo desarrollar su propia aplicacin partiendo de sus necesidades particulares. Paraenseary explicar mejor esa tecnologa, hemos dividido estecurso en variasseccionesasl:

Una seccin de Teoraen dondesepresentan los conceptos bsicos de los microcontroladoresiniciando con su origen basado en los microprocer"dor.s,su esrructura o arquitecturainterna, su funcionamientoelctricoy lgico, la operacinde susbloquesinternos,etc. En fin, toda la informacin necsaria para poder configurar un circuito con un microcontroladory entendersu funcionamiento. Una seccin de Programacinen donde seexplicar qu esun programade microcontrolador,los diferentes lenguajes que seutilizan, las tcnicas adecuadas paraelaborar programas eficientes, cmo sellevaal interior del microcontroladory lasprincipales herramientas de software y hardwareparaelaborarlos. Estaesuna seccin de mucha importancia dentro del curso ya que la programacines donde radica la mayor dificultad de muchaspersonas paraacceder a estatecnologla y por ello, dedicaremos un granesfuerzo didcticoparaque todosnuestros alumnospuedanescribir suspropios programas de una forma correcta. Y para completarla estructuradel curso, de acuerdoa la metodologlade CEKIT S.A., hay una secccin de Proyectosy actividades prcticas en donde se presentan ejemploscompletoscon aplicaciones de diferentes tipos de microconrroladores. En estaseccintambin se incluirn los diagramas de piriesy las caracterfsticas de los microcontroladores msrepresentativos de lasprincipales marcas o fabricantes y una explicacinde los componenres y circuitos que los acompaan,desdeun simple LED, hastapantallasde cristal llquido (LCD), sensores, conversores A./D, acondicionadores de seal,etc.

Aunque existenen el mercadouna buenacantidadde fabricanres de microcontroladores, cadauno con una granvariedad modelos, de hemosseleccionado comoejemplos paraeste cursoprincipalmente losde MotorolayMicrochip (PIC) con un menor cubriPor ser los de mayor difusin y aplicacinactualmente; miento, los de INTEL, ATMEL, PARALLAX y oos, los cualesesperamos rratar en un prximo curso.

Felipe G. Gonzlez Editor Generd

#<lE:.

prctico Curco Microcontrotadores sobre

-.. <a * _ \ -] , L

-'-:-: -c:. . dI I

el --- ---:d -

- _rn::t o l- o : JN

ller, tIn microcontrolador (microcontro en ingls)esun circuito integrado que contiene todalaestructura de una microcomputadora,o sea,CPIJ (unidad Central de Proceso),memoria RAM , memoria ROM, circuitos de entradasalida(IIO) y otros mdulos con apliSu nombre nos inespeciales. caciones midica susprincipalescaractersticas: cro por lo pequeo y controlador porque seut llizaprincipalmente Paracontrolar otros circuitos o dispositivoselcetc. tricos, mecnicos,
prctico Microcontroladores curso sobre &*, E.:.db

\,f

a
I

-) '*
\- s - \' \/

en un solo resulne' componente Estemaravilloso msde cuarentaaosde tecnolocircuito integrad,o, la actualidad ga electrn. Es difcil enconffar en o no un apararoo una aplicacinque no 1outilice oPeracin. prr.dl" utilizarlo paraopdmizar su se ha mencionado y confirmado muchas de los vecesque la electrnicaes la tecnol oga disnuevo componenres.El desarrollode cada de tcnicas poriii,ro de estadoslido trae consigo simples' ms diseo diferentes,pot lo general, a, pafaconstruir un reloj digiE,nlos aossesenr acoplarun buen nmero de cirtal, eranecesario cuitos integradoslgicos.Al mismo tiempo,_el muy cladiseadorJeba por., conocimientos , paa realiros sobre cada uno de los elementos zaf,con xito, l" integracin'

ei nurt;rtr.. ^:.:itri,Jadde los diferenneriones. a lo cual se le que los formab''an tes elementos llam la lgica cableadtt,figura 1' 1' y ahora con los con los microprocesadores micircuitos lgicos programables(FPGA), los (ProcecrocontrolJores y los circuitos de DSP entreotros' esposisamientoDigital de seales), serequierael prograveces ble modifi cafcuantas el ma, an en forma remota Por la internet, y traen el cual estninstalados, circuito o aparato sin baprd. ,rn" forma completamentediferente esta una solaconexin' De modifi caflsicamente la forma, el lmite de los diseossolo lo establece imaginacin de los programadoresy Ia caPacrlos dad de los dispositivr q.t. lancen al mercado en estastecnologas' alizados fabricantesespeci

consolidadas las tcnicasdigitales de los A partir de 1970' el panoramade la electrde se cre entoncesla necesidad aos sesenta, .1 . la electrnicadigital' nica y especialmente las de en el estudio y desarrollo en el mer- profu ndizar cuando aPareci cambi radicalmente y la p^fa los microProcesadores el micropro- aplicaciones cad,oun nuevo supercomPonente: dssembbr. o programacin.n l.rrguajede mquina Esto introdujo un concePto novedoso cesad.or. oro del 8080, el 8086, el Z-80, erza cada f,rJt" pocade que en la actualidad se conservay refu el 68000 y otros microProde los el 6809, el 6502, Antes programada. lgica la de el vezms, utilizados como circuitos centrales cesadores, los circuitos electrnicosse microprocesadores, de control' en las aplicaciones diseaban Par^una funcin esPecual no Poda modificarse cfi,cala losfabriEn 1980,aproximadamente, colas fsicamente cambiar sin canresde circ.ri,o, integradosiniciaron la difusin de un nuevo circuito con aplicacionesparaconffol,medicin e instrumentacin, al que llamaron "microcomputador en un slo chiy'' o, de manera ms exacmy concisa: mirocontrolndnr. Para entendermejor [a estructurainterna,el fucionamiento y los orgenesde los microprimero el controladores,rePasaremos tema de los microProcesadores'

' :5
-,rrrr

il

Desdeel punto de vistafuncional,un miesun circuito integrado,ficroprocesador grrt" l.Z,que incorporaen su interior una unidad ..ntral de ptottto (CPU) y todo lgicosque Perun conjunto de elementos
cableada contgica deuncircuito Figura1.1. Eiempto
,4L *ii' #

{+ b \yZ

&

Microcontroladores sobre prctico nffi.:. curso

-l

'','"lffiluffi'
)s ,Jiterencuil se le un solo microprocesador, utilizado en el diseode un sistemadigital, puede reemplazaruna gran cantidad de circuiros integradosde pequer^y mediana escala como compuerras,flip-flops, registros,contadores,decodificadores, memorias, sumadores,comparadores,etc, figura L.3. Esto es ventajoso desdevarios punros de vista: facilidad de diseo, modularidad, versatilidad, flexibilidad, manrenimienro, bajo cosro, confiabilidad, poco consumo de energa,etc.
X1 vcc H OLD HLDA cLK(0ul nEser N READY ron S1 RD WR ALE SO 415 A 14 413 At2 All A 10 A9 AB

ra con los l',. los mi;P t,Proce)s.esposiel progra:rnet, y el lados, tfaferente sin ,n.De esta stablece la la capaciercadolos rologas. les de los esidadde llo de las lo res y la :sembler. ,. el Z-80, nicroprocentrales

x2
RESET OUT

,oots
slD+ > TRAP --+ RST 7.5-* RST 6.5-+ RST 5.5-> INTR -f>

iM+ADa { - { AD1 +) AD2 AD3 { * \ AD4 A DS{ * AD6 AD7

,1. :- losfabririciaronla on aplicaT]STIUITICN-

Vss

Dentro de los analesde la electrnica est el ao de L970 como la fecha de invencin del microprocesador.Desde entonces,estediminuto dispositivo, uno de los adelanrosrecnolgicos ms imporranres de nuesrro siglo, ha revolucionado todos los campos de la vida humana. Con el microprocesador se inici una nueva era de desarrollode la industria de las computadoras y de la electrnica, la cual hasta el presenreha ido evohrcionando con una velocidad que an sorprende incluso a los visionarios ms futurisras. Nadie en esa pocase imaginaba el impacro ran grande que causaraeste desarrolloen la vida del hombre moderno. Los apararoselectrnicos que utilizan microprocesadores, entre ellos las computadoras personales y de escritorio,figura L.4, han cambiado totalmenre la forma de trabajar e inves-

Figura 1.2, Microprocesdor 8085

romputaurera ms rdor. Para rna. el fuhr microdmero el

!e.t-un ml-

es:ado,fi.t-:ror una L- ',-rodo Isc ue Per-

miten enlazarotros dispositivoscomo memorias y puertos de entradao de salida(I/O), formando un sistemacomplero para cumplir con una aplicacin especficadentro del mundo real. Paraque el sistemapueda realizar su labor debe ejecutar paso a pasoun programa que consisteen una secuencia de nmeros binarios o instrucciones,almacenadas en uno o ms ,i elementos de memo ria, generalmente externos al mismo . La aplicacin ms importanre de los microprocesadores y que cambi totalmente la forma de trabajar,ha sido la computadora personal Figura| '3' Tarieta concircuitos integrados individuales vsun Microprocesador o microcomputadora.

pr cu rso cti cosob reMic roco ntro Iado res &a,

l:.:.#

&d

ffi

presa, Shockl.y Semiconducror Laboratories, dando nacimiento a una nueva era en la industria electrnica y a la ubicacin de estatecnologaen un sitio de California cercanoa San Franciscoque ms tarde se llam Silicon Valley o Valle del Silicio. En estacom parase iniciaron los principales cientficos e ingenieros que ms tarde forma ran sus propias empresasy desarrollaranlos circuiros integrados y los microprocesadores.
I

-- tl t

. '":
I
-

:
.,. {llu
-il

El microprocesadores el mximo exponente de la erapa siguienre al transisperslnal y sutarjeta Figura 1.4.Computadora principal tor: la tecnologa de los circuiros integrados. El concepro de circuito integrado, tigar de los sereshumanos. Ninguna herra- figura I.6, effipez a rondar por los cerebrosy mienta anterior desarrolladapor el hombre le mentes prodigiosas de quienes trabajaban en haba dado tanto poder para crear orras y ace- el diseo y fabricacin de transistores. El planlerar su evolucin en todos los campos. Para teamiento fue ms o menos el siguienre: si se asimilar mejor el desarrollo de esra tecnolo- fabricaban transisroresen forma individual y ga,retrocedamosun poco en la historia de la luego se tenan que unir siempre de la misma electrnica,sus componentesy aplicaciones. forma entre s con alambresy con otros componentespor qu no fabricar de unavez todo Sin lugar a dudas, la senda la abri el inel conjunto de material semiconducror y aisvento del tubo de vaco por Lee De Forest a lante, interconectado internamenre para que comienzos del siglo, basado en el descubri- cumpliera la misma funcin del sistematotal? miento de un fenmeno llamado Efecto Edison. Este dispositivo hizo posible la radio, l" Este planteamiento fue desarrollado en telefo na, la tele grafa inalmbrica, erc., e iml" p rcticv simultneamenre, pero en forma puls el desarrollocomercial e industrial de la independiente, por dos empresasmuy imelectrnica. Inclusive las primeras compuradoras eran fabricadascon tubos de vaco. Luego vino la revolucin del transisror, desarrollado en los laboratorios de Bell Telephone en 1948 y utilizado a partir de 1950 a escalaindustrial, con su inclusin en la fabricacin de todo tipo de aparatosde radio, televisin, sonido, computadorasy en la industria militar y espacial,entre otras aplicaciones. De los tres invenrores del rransistor ('S7'. Brattain, \(/. Shocklry y J. Bardeen), figura 1.5, Shockley fue el nico que se dedic a desarrollar mtodos de fabricacin en serie de este revolucionario dispositivo en su emgWrE:. ,,, --,,ts#*tt XOCIX
cs. \, ll , z<S' |

-*l
.!

'

.' .'

..-

.. r-

{llul

''',

- .
.

l
*..

'1lFrl llu

','
_, n

-.-,*t -.,

"" :'" ;i, r

* . "-' Ttr
"" ''ll! -.. : j,: :TT[ ,il[ ,r-.. ll tl
. .dlll.rl

":::,: n q
,, ,,,,

-q

-,,,r

;w

Figura1.5, El transistor y sus inventores

r' ^

Cursogrctico sobre Microcontroladores

borara era rbica.eCae ms le del cn los $ que rnPretegra-

no exransisltegragrado, :brosy Danen I plane: si se idual y misma


IS COITI-

ez todo r v ais.ra que a total? lado en r forma ru)' im-

portantes en la historia de la electrnica: Despus de un largo rrab"jo, se lleg hasta Fairchild Semiconducror y Texas Insrrulograr que todo el circuito fuera reemplazado ments. En Fairchild diriga el equipo de tra- por tres chips, pero estos resultaron ser de un bajo Robert Noyce, y en Texas Jack Kilby. tamao mayor de acuerdo a los requerimienComo ancdota,podemos mencionar que los tos. A Hoff sele ocurri que deba agrupar toda primeros ci rcuitos integrados salieron al la parte de proceso aritmtico y lgico en un mercado en el ao de 1959 a un precio de solo circuito y el resro de la calculadora en los 450 dlaresy solamente incluan cuarro tran- otros dos circuiros. Con la intervencin de otro sistores y variasresistencias. Actualmenre, un diseadot, Federico Faggin, el proyecro se llev circuito integrado cuestaenrre l0 y 20 cen- acabo con todo xito. A este circuito, de 2250 tavos de dlar y un microcontrolador senci- elementos integrados en un reade 3 x 4 milllo, con muchas ms prestaciones, puede metros, se le llam microprocesndor. Thmbin costar hasta un dlar o menos en escalas inse le dio el nombre de CPU ( Central Processing dustriales . La explosin de los circuiros inUnit) o MPU (Micro Processing(Jnit). tegrados desde el ao 1960 hasta la fecha, ha permitido el desarrollo de la electrnica Aunque esrecircuito ten ayamuchas de las en una forma sorprendente. caractersticas de una unidad central de proceso integrada, el primer microprocesador en un Noyce renunci a la Fairchild en 1968 y slo chip, fabricado como tal, fue el 4004 de fund, er comp aa de Gordon Moore y AnIntel, diseado para reemplazar grandescantidrew Grove y con el respaldo econmico de dadesde circuitos integrados TTL. El 400 4 era Arthur Rock, la empresa Intel en donde se un chip muy sencillo que manipulaba datos de dieron los primeros pasos para el desarrollo cuatro bits. Intel desarroll muy pronro, en del microprocesador. Esta comp a.a empez 1972, el 8008, el cual poda procesardatos de a vislumbrar un gran mercado en el reade ocho bits. pero era muy lento. las computadorasy su investigacinse orienr hacia el reemplazo de los circuiros de mePararemediar esto, Inrel desarroll un susmoria magnticos con ncleo de ferrita, por tituto, el 8080, y posteriormenre el 8085, comcircuitos de memoria basados en semiconducrores. La base tcnica consisti en el uso de un simple flip-flop como elemenro de memoria. As se cre el primer circuito de memoria -ipo RAM llamado el 1 103, con una capaci:rd de 1024 bits. El diseo del microprocesador se inici Lrngrupo de trabajo de Intel dirigido por -- Hoff, Te..i un brillanre ingeniero egresadode universidad de Stanford. Todo emp ez 'a cuando Intel se decidi a firmar un conrraro ccn una compafiajaponesafabricante de calculadoras(la desaparecida Busicom Corpo rarion ). sraquera'quese les fabric araun coniunto de circuitos integrados que reemplazaran la gran cantidad de componentesque reran las calculadoras de eseenronces.

Figura 1.6.Estructura internabsicade un circuitointegrado

s inventores

prctico curso sobre Microcontroradores &ar-r#

los Power Pc los adicio- mila de microprocesadores: funciones con primero, el Apple p",ibl. con cuales se utilizan en las comPutadoras equipo un soporte. de nalesy meno, .ir.uitos actuales. trabajado Pafa e IBM de diseadoresque antes haba el 8088 Intel en el 8080 form la Ziloglnc. I:otstruPor los lados de Intel se desarrollaron incorpocual el z-80, 80286 utili?ay el microprocesador utilizado en el IBM )(L el 80186' el extenms raba un corr,ttr,o de instrucciones el 80386, el 80486y los Peneste do par alaIBM Ar, con to-Patible era aunque de Intel han so que el 8080' de dm. Todos estosmicroProcesadores uno sido ha microcomPultimo. Este micropro..sador sido utilizados Parala fabricacin de control' de campo el * ha lo los ms utilizadot tadoras de bajo costo llamadas clones, 9!1 el mayor fabrihecho que esraempresasigasiendo se que en poca Presentaba misma Por la en el mundo. microprocesadores de semicon- cante de al mercado el 8080, otra emPresa el 6800, ur milos Penductores,Motorola, desarroll Lasiguienre generacin fueron comdiseo un con croprocesadorde 8 bits tiumll,PentiumlllyactualmentelosPenvelocipl.t"-ente distinto Pero corl,'q:{:t^caracteIV con los cual.s se han logrado el 6800 hacia el tium rsticas.Motorola p.if..cion impresionantesy una meiores dadesd. procesamiento los de uno como que los hace 6309, considerado enorm. ."p"cidad\e memo tia,lo pocas' las todas de de 8 bits en enprocesadores apropiados paramoversesin problemas la multirornos como la internet, el video, trabajo el y A pesar de sus excelentes caactersticas' datos de se es- media, el procesamiento que comercial xito el ruvo el 6309 no real' otro derivado en tiemPo peraba. Dicho xito lo obtuvo '.ru MOS Tel+ # +r $'{,* S p ffi 4"fi {3 del 6800: el 6502, producido Por g ;fr u$ t*. {;{# f t# $:$* # * fiP &t m il# fase de la plachnology. con .rr. microProcesador Dentro de los microProcesadores comPutadoras Personamencionar primeras podemos bricaro 1", Pc, actualmente y la ApPle taforma cyrix Ies como la PET de commodore los productosde las firmas Intel, AMD, Inc' son ComPuter ms novedosas II de APPte

an .una guerra tcnicay comercialr Q la cual los ha siste, enrre Intel y Motorola, lderes indiscullevado a ser los do, grandes tibles del mercado d. lot microProcesadores' pero el desarrollo del microProcesador no se la dcada de los q,r.d ah. A principios de 80,emPezaonaaParecerl:tmicroProcesams potentes' dores d; dieciseisbits, mucho fue el 8086 de El primero en salir al mercado la IBM Intel en 1 978, el cual fue adoptado PoI IBM Pc' Lo p^*^la fabricacin de su famosa el 68020, el siguieron de cerca el 68000, con estosmi630 30 yel 68040 de Motorola. se inici en npplt una nueva croProcesadores las Macinfamitia de microcomPutadoras:

, t,rital. Las referencias MMX y el el Pentium IV el Althon' el 686 estableci S momento, ese de A partir figura l'7' sub- Alpha, resPectivamente'

tosh.LueEo,enunconsorcioentreApPl..' una nueva faIBM y Mtorola se desarroll

Micro7rocesadores 1.7. Figura

& \{1>' ,v' 8FC T[at


V\ ,.)z

Microcontroladores sobre prctico ,:.2. curso

XNX

.os ll.

'i

'l

EE
L

tl

';n' 3 n--: una I lc e a n.t.i


-.L l _

r.1 lo

^t . . t,4 " ,

rix .-.
:ult

:. el

Son los circuitos integradosque revolucionaronla electrnicaal permitir el diseode todo tipo de aparatos Aunque su programables. principal aplicacinson las computadoraspersonales, tambin se encuentranen la mayora de los circuitosde control.

prctico curso sobre Miuocontrotadores &icmt

delas corazn Elmicroprocesador, computadoras


digital esun equipoespecialiUna computadora zadoen el procesamiento de informacin, cuyo principio de funcionamiento es relativamente sencillo,si lo vemosdesdeel punto de vista de los bloquesque lo conforman.Cadauno de esos bloquesestformado por varios circuitos integradosficilesde entende la parte complejala el interior de encontramoscuando estudiamos dichos circuitos,pero estoen realidadno es de mucho intersparael usuariocomn. digital secomponede tres Una computadora figura 2.L: una unidad bloquesfundamentales, y salidas, una CPU y una memoria. de entradas y salidas sedivide A suvez,la unidad de entradas en un bloque de entraday otro de salida.Del mismo modo, la CPU se divide en una unidad aritmtico-lgica(ALU), y una unidad de control y el bloquede memoriaen memoriaRAM y o uniseis bloques memoriaROM, obtenindose muyespecficas, figaru2.2, dades con funciones a continuacin. cuyasfuncionesdescribiremos

Unidad de Entrada/Salida

Microprocesador o CPU

Unidad de Memora

&

general Figun2.2 Estructura deuna computadora digital rior. Esta informacin se lleva desde la unidad central de proceso o CPU, hacia circuitos o aparatos externosllamados perifericosque seencuenffan fuera de la computadora, por ejemplo monitores, impresoras o padantes.

La unidad de memoria se encarga de dmacenar los datos y los programas que operan sobre La unidad de entradaesquien recibeinfor- esos datos y es una de las ms importantes de macin del mundo exterio ya seade un opera- una computadora. Se distinguen dos sistemas dor humano o un fenmenoftsico;estaunidad diferentes de memoria: la de almacenamiento permite llevar esainformacin hacia la unidad primario y la de almacenamiento secundario. La posteriormen- memoria de almacenamiento primario se refiere de memoriaparapoderprocesarla entrada son, por ejemplo,los a los circuitos'que guardan los programas que se te; dispositivos de y el ratn. La unidad de salidaentrega van a ejecutar y los datos que senecesitanduranteclados al mundo exte- te la ejecucin de estosprogramas, y la memoria los resultados del procesamiento de almacenamiento secundario, se utiliza para almacenar grandescantidades de datos que no se requieran con frecuencia para la operacin de la computadora. Sistemasde este tipo son los discos duros y los discosde 3.5". Dentro de la memoria de almacenamiento secundario sedistinguen tres categorlas:la ROM (Read Only MernorT) o memoria de solo lectura, donde se almacenan cierto tipo de programas como el del sistema de arranque de una compuMemory) tadora (BIOS); la RAM (RandomAccess o memoria de lectura y escritura, donde sedma-

principales compubdon digibl Figun2.1 Bloques deuna

&n;

prcticosobrctticrocontotadorcs cutso

,.

van generancenanlos datosque los programas do y la cache queesunamemoriaRAM con tiemmuy rpido donde se mantienen po de acceso de durantela ejecucin los datosmsutilizados un programa. (CPU: Central La unidad centralde proceso Processing Unit) reine la unidad de control y la unidad aritmticolgicaen un solobloque.Esta ltima tambin seconocecomo ALU (Arithmetic Logic Unit). En la prctica,la unidad central en forma de un circuitoino CPU seencuentra tegradollamadomicroprocesador. Dentro de estaCPU, la unidad de control se encargade la interpretaciny ejecucinde las Tambin controla instrucciones del programa. los de una computadora por todos componentes llamadas buses. La mediode lneas de conexin lgirealizar las operaciones ALU seencarga de Lasprincipalesfuncionesaritcasy aritmticas. mticasrealizadas en la ALU incluyen la AND, Como hela OR, la EXOR y la comparacin. es mos visto, el microprocesador quien lleva a de un sistema de cabolas principales funciones integra los a demscompocmputo, y quien Es por esoel nentesy ejecutalas instrucciones. de una computadora. principalcomponente

de lneas de entrada (N); los procesade acuerdo a las instrucciones secuencialesde un programa almacenadoen su memoria, ysuministra o escribe los resultados del proceso en un cierto nmero de lneas de salida (M), figura 2.3 [.os datos de entrada pueden provenir de interruptores, sensores, convenidores4,./D, teclados,etc. Los datos de salida pueden estar dirigidos a actuadores, indicadores o displays,pantallas, convertidores D/A, alarmas, impresoras, etc. El programa almacenado determina como deben ser procesados los datos de entrada y, en consecuencia,que informacin debe enviarsea las llneas de salida.

ht dad rPaenmo-

lrnaobre sde :mas nto o. La fiere ue se rannoria Pera no se de la s dis-

El soporte fisico de las instrucciones del programa es la memoria, la cual almacena los datos para que seanprocesados. En un momento dado, los niveles lgicos (unos y ceros) de las llneas de salida de un microprocesador,dependen no solamente del programa en s sino tambin de la historia de las seales de entrada hastaesemomenro. Mientras que en un microprocesador ideal no existen restriccionesrespectoal nmero de entradasy salidas,los microprocesadoresrealesslo pueden acomodar un nmero limitado de terminales o pines para estasfunciones. Como veremos ms adelante, para simplificar el nmero de pines, la mayorla de microprocesadores utilizan las mismas Funcionamiento delmicroprocesadorlneaspara la entrada y salida de datos. De otro lado, mientras que un microprocesador ideal tiene, tericamente, una memoria interna ilimitada, los microprocesadores reales solo disponen de una cantidad limitada para almacenar

Desdeun punto de vista conceptual,un microideal es un dispositivodigital que procesador a un cierto nmero aceptao lee datosaplicados

Registro de I bits

ento

ROM
crurat ralnas )mPu(ideal) Elmcroprocesador esun con Nlneas deenfada, M dispositvo y programa lneas desalidaun almacenado

mory)
alma-

Registro de16bits Figun2,4 Registros deunmicroprocesador

Figun2.3 Elmicroprocesador ideal

prctico curco sobre Microcontotadores &tt

datos e instrucciones. Por esta razn, un mlcroprocesador debe tener la posibilidad de comunicarsecon una memoria externa. Paralograrlo, necesitadisponer tambin de un conjunto de lfneas de seleccino direccionamiento adicionales. Finalmente, para sincronizar su operacin con la de los componentes externos conectados al mismo y tener un control global de los buses de datos y direcciones,un microprocesadornecesita disponer tambin de un conjunto de lneas 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 dems componentes. Naturalmente, el microprocesador ideal (un dispositivo con slo entradas y salidas y un programa almacenado en l) no existe.'Sin embargo, la tendencia de los nuevos diseos es incluir cadavez ms funciones en una misma pastilla, incluyendo unidades de memoria e interfaces entrada/salida como en el caso de los microcontroladores.

415-48 Bus dedirecciones

RESET IN

delntel Figura 2.5 Arquitectura interna deunmicroproceudor 8085 q12 F

&

&fl

A(t;

."(

prctico sobrcMicocontoladores Curso

ciocon

interna deun '.,r''Janizacin :.:: icroprocesador


[a organizacin interna de un microprocesador, es decir, su arquitectura, vara notablemente de un spositivo a otro. Por esta razn, es dificil definir un modelo de microprocesador que representetodas las alternativas posibles puesto que cada uno tiene una lgica de funcionamiento propia.I.aar quitectura, y especialmenteel tipo, nmero y organizacin de los registrosinternos, esuna consideracin imponante a la hora de elegir un microprocesador para una aplicacin determinada. Un registro es una posicin de memoria conectada a la CPU donde se pueden retener cifras binarias. Est formado por elementos lgicos (compuertas,flip-flopt,etc.) que, al ser tomados en conjunto, pueden almacenarnmeros binarios bits, frgan2.4. Seutilizan esende 4, 8, 16 ms cialmente para almacenamiento temporal, en el que el contenido cambia continuamente. Esto no implica que sedeba conocercon demasiado detalle, cmo funciona internamente un microprocesador para poder utilizarlo. Existen partes y funciones que normalmente deben estar presentes:un reloj, unaAL(J, varios registros,un contador de programa, etc. En la figura,2.5 se muestra un ejemplo de la arquitectura interna de un microprocesadorsimple, el 8085 de Intel. Por ejemplo, el reloj o circuito de oscilacin puede estar o no incorporado en el microprocepuesto que sado pero esabsolutamentenecesario las la misin sincronizar todas operaciotiene de nes de debe realizar el dispositivo. Del mismo modo, para ejecutar un programa, un microprocesadordebe tener en su interior registros que Ie permitan almacenar informacin , realizarlecturas, modificaciones a los datos, etc.

pretar y ejecutar las instrucciones del programa almacenado en la memoria. Desde un punto de vista conceptual, la accin de leer e interpretar las instrucciones la realiza una parte del microprocesador denominada unidad de instruccin y su ejecucincorre a cargo de otro circuito especializadodentro del mismo denominado unidad de ejecucin,figan2.6 Unidad central deorocesamiento ICPU o mrcr0pr0cesaoor

deal asy :Si n sos misroria ode

F
i& lntel

y ejecucin Figura 2,6 Unidades deinstruccin l unidad de ejecucin,a su vez, contiene una unidad aitmtico-lgica o ALU y un conjunto de registros auxiliares. t^a ALU se encuga de realizar una gran variedad de operacionesaritmticas y lgicas, y los registros de almacenar temporalmente informacin. l-as distintas funciones realizadaspor el microprocesador quedan especificadas por su conjunto de instrucciones.

iperacin bsica deun


,:,iifiroprOcesfld0r
Analizando un sistema de cmputo, nos damos cuenta que el microprocesadoro CPU es la parte del sistema encargada de leer, inter-

prctico curco ticrrcontotadores sobre &rrr"#

I unidad de instruccin lleva la cuentade las posiciones o direcciones de memoria donde se encuentranlas instruccionesque el microprocesador necesiaen cadainstante. Normalmenseleen y ejecuan te, las insuucciones enel mismoordenen quefueronalmacenadas en la memoria. Sin embago, la presencia de instrucciones decontrol de programapuedealterarla secuencia instrucciones. de ejecucin de estas Parallevar la cuenta de las dila reccionesde las instrucciones, unidad de instruccinincorporaun registro especialllamado contador de programa o PC (PrograrnCounter). Cade vez que se lee una instruccin, el contador de programa se incrementa automticamente para suministrar la direccin de la posicin de memoria donde se encuentra la siguiente instruccin o dato del programa. recibe Cadavez que un microprocesador una instruccin, la almacenaen un registro interno del mismo llamado registro de instruccionescon el fin de procedera su decodificacin o interpretacin y buscar en la memoriaROM el conjunto de microinstruccionesnecesarios parasu ejecucin.Estafuncin la realizaun circuito denominado decodificador de instrucciones. Ademsdel contador de programay el registrode instrucciones, un microprocesaotros registros dor contieneusualmente para facilitar el acceso a las instrucciones y a los datos.Algunos de estosregistros son programables en el sentido de que su contenido (instrucciopuede ser alteradopor software nes)mientrasque otros son inaccesibles desde el punto de vista de programaciny su contenido slo lo puede determinar y consultar el microprocesador.

istro destatus

Bus dedirecciones principal Bus del sistema hacia lamemoria y dispositivos delS genrico Figun2,7 Arquitectura deunmicroprocesador

La mayorlade los microprocesadores, por ejemplo, incluyen un registro especial llamado acumulador (RegistroA) que es utilizado por muchas instrucciones como fuenteo destinode datos.Thmbinesmuy comn la presencia de un registro de eitado que suministra informacin relativaa la ejecucinde ciertasinstrucciones como sobreflujo, paridad,generacin de acarreo,resultadonegativoo cero, etc. Muchosmicroprocesadores tambin poseen un conjuntode registros depropsitogeneral que pueden ser utilizados para almacenardireccionesde memoria,datos,resultados intermediosy otros propsitos.El nmero y tipos de registros queposee un microprocesador, esuna partemuy importante de su arquitecturay programacin. En la figura2.7 se muestraun modelo genrico de microprocesador que ilustra los conceptos anteriores.

errr"

cu,' prco nbrcMtcoantohthtu

ma

,:.lt'0Ff0ce$fid*E' datos que procesau obtiene el programa de insEn la figura2.8 semuestra la estrucna de buses trucciones, puede provenir de o ir hacia la memogeneralizada deun microprocesador. Externamenre, ria o los mdulos de entrada/salida. el dispositivo cuenta con un busdedatos, un busde Generalmente, el nmero de lneas de endiecciones y un bus de conuol. En las siguientes secciones decribiremos la funciny lascaractersticas trada esigual al nmero de lneasde salida. Este decada uno.Adems de estos uesbuses principales, nmero define la longitud de la palabra de daun microprocesador debedisponertambinde un tos del microprocesador.Son comunes longitubusde alimentacin, el cualhacellegarla coriente des de palabrade 4,8, 16,32 y 64 bits. En la figura 2.4, por ejemplo, se muesrra un microdela fuentea susdistintoscomponentes internos.
q

-::ilrctura fuses eie rieun

ceden siempre de la memoria mientras que los

bnes

Bus de control I

Cu,o,,o, control
oe I satioas control l_

.^'w=

procesadorde 8 bits. En este caso, tanto el bus de datos de entrada como el bus de datos de salida con de un byte, es decir de ocho (8) bits.

tico t Por nado D Por no de cia de 0rma$rucn de

El nrimero toul de pines asignadoen el circuito integrado del bus de datospuede reducirse prctrcamente en un 50olosi se utilizan los mismos puntos de consrin mto para los daros de enrada como Fuente de para los datosde salida,pero no para ambossimultalimentacin namente.El bus de datos asconstituido esbidireccional en el sentidode que lainformacin puedecircugeneralizada la entrando o saliendodel microprocesador. Figura 2.8 Estructura debuses La formade represenafun busde datosbidireccional paxa un ls lneas de los busesde un microprocesador microprocaadorde N bis seiltstraen lafrgn2.g ansportan volajes que representannmeros binarios (1's y 0's). EI microprocesador,los puertos de Un busbidireccionalpuedeconstruine con comentrada/salia y la memoria, respondennicamente a puertastri-sa*pancintrola la direccin del flujo de esos nmeros binarios codificadoselecrnicamente. informacin. l figura 2.9 (a) represenaun microprocesadordecuatro bits con un bus de datosbidirecrl busdm datas. Lineas fiSireccionalfis cional. En la figum 2.9 (b) se muesrrala configuraEl busde datosllevadatose instrucciones haciay cin de una lnea de bus bidireccional. Ias llneasde desde el microprocesador. Lasinstrucciones pro- seleccinS1 y S0 procedendel bus de conuol.
DBOUT

rrbin ral que rcccioadiosy gistros te muy cin. blo ge(}s conBDB: Lnea debus direccional dedatos DB0UT: Control de salida de datos DBIN: Control de entrada de datos 51,S0: Control debus H0LDA: (alta Control degaranta debus impedancia) (a) Figura 2,9 (a)Microprocendor de4 b'tts conbusdedatos bidireccional.
(b)Lnea de busbidireccional.

prctico curco sobre Microcontotadores rrrr.&

'-*%c

Los,,
La transferencia de datos de entrada o salida desde o hacia ei bus de datos se realiza,respecticon S1S0= 10 y S1S0=01. La lneade vamente, bus puede inhabilitarse con S1S0 = 00 para imde informacin enpedir cualquier transferencia tre el bus de datos y el microprocesador. Las lneasde seleccin pueden utilizarsepara informar a los mdulos externosque comparten el bus de datos el estadodel bus bidireccional en un momento dado. Este es el propsito de las como DBOUT (bus de datos en lneasmarcadas el modo de salida), DBIN (bus de datos en el modo de entrada) y HOLDA (bus de datos en estadode alta impedancia) en la figura 2.9 (b). la informacin contenida en el bus de datos puede representarsenumricamente de varias formas: binaria, octal y hexadecimal,principalmente. por ejemplo, un microprocesadorde Considrese, D7 a D0 8 bits con el byte10111011en laslneas del bus de datos,siendo D7 el bit ms significativo o LSB y D0 el bit menos significativo o LSB. como un Esta palabra de datos representada nmero binario es simplemente10111011(B) como nmero octal 10111011(2),representada es273Q 2738 y como nmero hexadecimal(la ms usada)esBBH 8816. La forma de convery tir nmeros binarios en octaleso hexadecimales se explicar en detalle en la seccin de viceveresa programacin.Los sufijosB,Qy H, y los subndices2, 8 y 16 enfatizanel sistemanumrico (binario, octal y hexadecimal)de cada presentacin. A pesarde que el sistemahexadecimalproporciona una forma muy compacta y concisa de expresarel contenido de un bus de datos, no podemos olvidarnos completamente de la representacin binaria. En una aplicacinreal,esta ltima nos permite identificar fcilmente, por ejemplo, cual interruptor ha de ser abierto o cerrado en un momento dado para obtener una condicin de entrada especficao cual lmpara ha de ser energizadapara obtener un efecto de salida determinado.
4 ^@^ ,t

r$ i: i,::= ..-::' j,1:=l:::: .jr"1gg!:-!:1q5.


iiilillflt;a:; 1:

El bus de direcciones contiene la informacin digital que enva el microprocesador a la memoria y demselementosdireccionablesdel sistema para seleccionaruna posicin de memoria, una unidad de entrada/salida o un registro particular de la misma. El nmero de lneasdisponible en el bus de direcciones (n) determina el tamao mximo de memoria que puede ser acomodadoen el sistema(2"). As, por ejemplo, un microprocesador con un bus de datos de 8 bits y un bus de direcciones de 16 bits (tpico) tal como el Z-80 puede manejar directamente una memoria de 2t6 = 65536 (64K) posiciones,cada una conteniendo un byte (palabra de 8 bits). Naturalmente. una vez seleccionadauna posicin de memoria, el microprocesador debe estaren capacidadtanto de almacenarinformacin en esa localizacin (operacin de escritura) como de extraerla (operacin de lectura). La cantidad de memoria utilizada en un sistema con microprocesador depende de la aplicacin especfica y es a menudo inferior a la mxima que puede manejar el bus de direcciones.El conjunto completo de localizaciones de membria a las que puede tener acceso un microprocesador,se denomina espacio de memoria. As, por ejemplo, el espacio de memoria de un microprocesadorde 8 bits con un bus de direcciones de 16 bits (por ejemplo el 8080) es simplemente 216= 64K. En el caso de un microprocesador de 8 bits con un bus de direcciones de 16 bits, el espacio de memoria puede ser visualizado grficamente como un mapa de 65536 direcciones de memoria, cada una conteniendo un byte, la ms baja de las cuales es 0000H y la ms alta FFFFH, figura 2.10

te F fi<ti.

prcco Microcontroladores Gurco sobre

&fl

o ;ra :r

tn ode :n-

ma :be narru). un ela


Dra

diiza'a c '

El microprocesador estconectado a todoslos otros comPonentes a tra0400 vs del Bus de dzns.l-as seales delBus dc con rol, conjuntamentecon lasdel 01 00 Bus d direcciones, deter0000 minan que elementosse comunicancon el microFigun2.10 Espacio dememoria procesadoren un momenNote queladireccindememoriase incremen- to dado. Estos tres busesconfiguran el bus del sisa en 1000H cada4K(=4096) direcciones de espa- tema y el gobierno del mismo es responsabilidad cio de memoria.Observe tambin que cada lK del microprocesador. (=1024)posiciones dememoria la direccin dememoria seincrementa en 400H. l memoriapuede La secuenciade instrucciones que consdividirseambin en pginas de memoria,cadauna tituyen el programa que debe ejecutar el micontiene256 peJabrasy cubre100H dirccciones de croprocesador estn almacenadas en un rea memoria-Hay, por tarrto,4 pginas en lK de me- de la memoria. En el momento de iniciar el moria-las direcciones en la pginade msbajoor- sistema, el microprocesador sitrla en el bus denrandesde 0000H hasa 00FFH, en la siguiente de direcciones la direccin de la posicin de dade 0100H hasa01FFH,y assucesivamente. memoria donde se encuentra la primera instruccin. Como. resultado, la memoria entrega

FFFF F000 E000 D000 c000 8000 4000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0000

tema tpico basado en microprocesador. Note que constade cuauoelemenros principales:una memoria, un microprocesador, un puerto de entrada y un puerto de salida.

sPa-

pria bus 080)

d e8 ts, el tgrcciooun lvla

, i}ri;,1 ii{l il:f}trfii El busde control contiene la informacin queenvla elmicroprocesador a loselementos del sistemao bienla recibe conel deestos laoperapropsito desincronizar cin de los circuitosoctemos. El nmerodelfneas delbw deconuol esvariableydepende del microprocesadorparticular utilizado. rii'irfl{lt} {ie un .:i'ils tl;Jf;ft#0 Sfl .,':ir;-:.i*gSfltlSf En la figura 2.11 semuestra la esrucnrra organizativa deun sis-

Desde disoositivos deentrada

Hacia dispositivos desalida

enunmicroprocesador Figun2.ll Diagnma basado debloques deunsistema

prctico cuso sbreMicrocontotadow &tr*#

Los tnicturt'or:esatj.oruas
estainformacin en el bus de datos. Despus de interpretar y ejecutar la primera instruccin, el microprocesador busca la siguiente La instruccin, la ejecutay asl sucesivamente. generacin de la serie de instrucciones necesariaspara que el microprocesadorrealice una tarea determinada, es lo que se denomina su programacin. Las instruccionesque constituyen un programa se almacenan en la memoria del sistema como patrones de unos y ceros, organizados en grupos de 8, 16, 32y ms bits, dependiendo de la longitud de la palabra de datos del microprocesador.

PAIABRA: Es un grupo de bits que se traran como una sola unidad. El ms comn es el byte, elcual es1 formado por ocho (8) zrs. Hasta aqu hemos visto la arquitectura genrica de un microprocesadory de un sistemabasado en uno de estosdispositivos;ahora analizaremos con ms detalle los pasos que sigue un sistemade estanaturalezapara ejecutar las instrucciones contenidas en un programa y aprenderemoscomo trabajan en conjunto cada uno de los bloques del sistemapara desarrollar estastareas. Un microprocesadores un diminuto conjunto de miles o millones de elementos lgicos e interconexiones diseado para responder a las instrucciones de unprograma, el cual le indica lo que debe hacer en cada instante. Sin un programa que le de vida, un microprocesador y todo el ltardware conectado a su alrededor, serla una masa inerte de componentes electrnicos sin un objetivo especfico. De hecho, la funcin primaria de un microprocesadores ejecutar programas.
_:" ,,.j.i:,:f

i.uf,
l

:.L-*

Cuando se trabaja con un microprocesador, es importante comprender su conjunto de instrucciones y ser capazde utilizarlas en la elaboracin de programas;se debe entender la forma como el microprocesadorlas ejecutay adquirir la habilidad para emplearlaseficientemente en la manipulacin de datos. Para ejecutar las operaciones indicadas por una instruccin, el microprocesadordebe empezar por direccionar o encontrar la posicin de memoria donde se encuentra la instruccin, leerla y decodificarla o interpretarla por medio de sus circuitos internos. Los pasosanteriores constituyen lo que se denomina ciclo de instruccin. Durante su operacin normal, un microprocesador no hace otra cosa que'ejecutar repetidamenteciclos de instruccin.

-::..:
- -frfir! :-l-.::1{

,{

:," -:; -ir

Direcciones Instuc'cones. datos I 0000 0000 0000 0000----+ 1 0 1 1 I 0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001--> 001 0 --+ 0 0
I

I I 0 I 0 0 0 0

'*-::i;r
_ l! ' il

0 t u
1

0 0 0 1 0 0
I

0 0 1 0 0 0 0

0 1 1 0 0 0 I

0 1 1 1 0 0 1

001 1 ----+ 0 0 ---+ 0100 01 10 _--> 0 0

: lj":u

0101 ----+ 0 1 0 0

0 1

001 1 ----+ 0 1 0 0 X 0

1{OTA: 0010 0000 0100 0000--+ programa y almacena Este calcula unnmero elresullado (DCBA) enlap0sicin dememoria 2040H. --> 1 1 1 11 1 1 1 1 1 1 1 1111

x x x lx lx lx lx

Figura 2.12 Ejemplo deunprograma enlenguaje denquina

&fl

rrr*

prctico curco sobre Microcontrctadores

o:eA-

Conbnido . Direc'ciones Insuccin, (En hexadecimal) datD (Hex) BD 00 0 0

:ntos

00 00 00 00 00 00 ..00

01 0 2 0 3 0 4 0 5 0 6 0 7

01 E6 OF 32 40 20 76

an el

2.13 Ejemplo objeto deunprognma '.Figura Para ejegutar un programa, un microprocesadordebe tenerlo almacenado en forma binaria (patrones de I y 0) en posiciones adyacentes de la memoria de programa del sistema. Esta forma binaria del programa se denomina lenguaje de mquina y es el nico lenguaje que entiende el microprocesador. En la figara 2.12 se muestra un ejemplo de un programa en lenguaje de mquina para un rnicroprocesador 8085. Para evitar la confusin que, desde el punto de vista del programador, puede generar una larga lista de unos y ceros, estos cdigos se pueden representar en forma hexadecimal, constituyendolo que sedenominaunPrograrna o cdigo objeto. En otras palabras, un cdigo objeto es, simplemente, una representacin abreviada de un programa en lenguaje de mquina,figura 2.l3.Por ejemplo,10111101 se representacomo BD, 0000 0001 como 01, 1110 0110 como E6, 0000 111lcomo 0F, etc.

dor (opcodes) y datos sobre los cuales ha de operar el mismo. Cada cdigo de operacin le indica, directa o indirectamente al microprocesador, la direccin de memoria donde se encuentra almacenada la siguiente instruccin ejecutable. Al recibir un cdigo de operacin, los circuitos internos del microprocesador lo descifran. La informacin obtenida permite al dispositivo identificar la naturaleza de los bytes que siguen el opcode. El conjunto de cdigos de operacin (opcodes)aloscuales puede responder un microprocesador, constituye su conjunto de instrucciones (Instruction Set) . Cadamicroprocesador dene su propio conjunto de instrucciones,cada una representada por un opcodediferente. El nmero mximo de cdigos de operacin que puede descifrar un microprocesador es igual a 2N, siendo N el tamao de la palabra de datos del mismo.

dor, insabo,rma uirir te en

cadas debe posie ins,fetaf-

s. Los deno)Pera hace ciclos

Las instrucciones de un microprocesador pueden agruparseen tres grandescategorlassegn su funcin: la primera son las instrucciones de transferencia de datos, las cuales mueven informacin sin alterar su contenido de una parte a otra del sistema;la segundacategoraes la de procesamiento de datos; estasinstrucciones transforman la informacin desdeel punto de vista lgico o aritmtico; y la tercer categora, son las insdruccionesde control de prograNo todos los cdigos de un programa ob- ma, ellas determinan la secuenciade ejecucin jeto o en lenguaje de mquina, corresponden de las instrucciones. Muchos de ellos coa instruccionesejecutables. rresponden a datos y direcciones que son utiEn la figura 2.14, observamosun diagralizados por el programa para propsitos partima simplificado de la arquitectura de un sisteculares.Los cdigos correspondientesa instruc- ma basado en un microprocesador, en el cual ciones ejecutablesse denominan comnmen- basaremos nuestro an lisisde la interaccin en(opcodes). Por tanto, te cdigos operacionales tre cada una de las partes del sistema y la seen un sistema de8 bits,los programasen len- cuencia que presenta. guaje de mquina se reducen a unas cuantas secuencias de grupos de 8 bits (1 bte) situados En este diagrama se pueden notar cuatro en algn lugar de la memoria. bloques fundamentales: la memoria, la unidad de control, la unidad operativa y el mdulo de Estas secuenciasrepresentan a su vez una entradasy salidas.Todos ellos conectadosa tramezcla de instrucciones para el microprocesa- vs de los buses de direcciones, datos y coritrol.

prctico Micocontotadorcs curco sobe &n;#

ru=s Los tnirt'uttucesad.o


Bus dedatos
o

decontrol Unidad

instrucciones

W
BUS de direcciones
.'+
l: ,

'-

W
y escritura, una con256posiciones de8 bifscada delectura RAM Memoria Lectura/escritura
Bus dedirecciones

. ri
--. :.:ri

:
,:.-

.: I
- :E

- : .- .u -u
.:!

-i
:. .

Stu.r

,,,: N *i
:l

tb.

{ ;,( -( ,{

....o

del Perifricos mundo exterior

{>

operativa Unidad
:.r:.r ". .,1:,,ii''i:.l!;':rftlij

unidadoperativa

Seleccin deoperacin m de un sistema basado en un microproceador sinplificado debloques Figura2,14 Diagrama

dto$

&d

Qft:.

prctico Microcontroladores curco sobre

.,1 o

iones

F
). .

El bloque 1 es la rnernoria; en ella se almacenan una serie de cantidades codificadas en ocho 8 bits. Para entender la operacin de una memoria, puede hacerseuna analogacon un casillerode correos,donde existen muchas casillaspara diferentesusuarios,cada una con un nmero o dieccin que la identifica y con la propiedad de almacenar cualquier clasede l informacin. Puesbien, una memoria poseeun conjunro de posicionescada una con su propia direccin, y en cada una de dichas posicionespuede existir cualquier dato de ocho bits. La posicin que se va a acceder es indicada por el bus de direcciones al Decodfficador de Direcciones (DI), el cual es un dispositivo de n entradasy 2" salidas.Dependiendo de la entrada binaria que lea, habilita la lectura de una direccin determinada por medio de la activacin de la lnea correspondiente, figura 2.15. Los 8 bits de la posicin accedida salen por el bus de datos hasta el Registro de Datos (RD), si se efecta una operacin de lectura. Cuando se trata de una operacn de escritura, el contenido digital de las 8 lneas del bus de datos se cargaen el Registro de Datos desde1, en las 8 celdasde la posicin direccionada.El procesode direccionar una posicin y leer o grabar un dato se denomina cicln d mmtoria.

ii't*uilkF{i:}# {Jtf*
il memoria pti".tprl de un sistemabasadoen un , l-ic.oprocCIadorse constnrye con memorias de tipo ; ielectrnico, que sedasifican en dos grandesgrupos: :

,MemoriasROM (RtaOnlyMeno4T). Sonme'moriasqueunavezgrabadas, permanecen con di- . lchainformacinpermanentemente y slopueden: ,serleldas. Sonmemorias de 'tlo lectura"v seuti- l lizan paraguardar [os program", o d"to, i!o.. i (Random Memorias RAM Access Memory\. El', rcontenido de susposiciones puedeserledoy es-i crito. Al igualquelasmemorias ROM, sonde ac- i aleatorio, esdecir,queparaacceder a unapoiceso sicindeterminada no hayquepasar por lasantelriores,como sucede en lascintasy discos magn- Sonlasmsrpidas y su tiempo de acceso se : rticos. :mideen nanosegundos. i : El principal inconveniente de las memorias, tipo RAM esque sonvoltiles,o sea,al cortarse. el suministrode energa elctrica, cuandosedes-: conctxel sistema,pierden la informacin que : contenlan.En un sistema con microprocesador, , seutilizan estetipo de memoriasparaalmacenar el resultadode las operaciones y los datosde las i variables que sevan cr1n{o en elprograma. , El bloque 2 esla unidad de control cuya funcin primordial es la de interpretar y ejecutar las instrucciones. El cdigo binario de la operacinque seva a ejecutar, sedepositainicialmente en el Registrode Instrucciones(RI) y luego setrasladaal Decodificador de Instuc(DI), cuyamisin esseleccionar ciones en una memoriaROM un conjunto de posiciones que corresponden al cdigo recibido y en las que se encuentranlos cdigosde las operaciones elementale s (o microinstrucciones) que componen lasdiferentes etapas en lasque sedivide la ejecucinde la instruccin decodificada.

16 posiciones enl a memoria

ocegdor

porel busdedirecciones, Ftgura introducido 2.15 Segn el dato Lasmicroinstrucciones van pasando al Sposicin la comunicacin conunadeterninada de cuenciador sehabilita (S),queesel circuito lgicode'conremora

prctico cuso sobe Microcontotadorcs &n;#

principal Memoria

Bus de I datos e I instrucciones

Unidad decontrol

que participan de las unidades enIa fase debsqueda deuna instruccin de los contenidos deinformacin Figun2.16 Movinientos

trol y tiemposel cual gobiernaa todos los eley lleva a cabola ejecucin mentosdel sistema I,a funsecuencial de las\microinstrucciones. (PC) es ende Prograrna Contador cin del la posicinde la viar por el busde direcciones memoria donde se encuentrala siguienteinstruccin que se va a ejecutar.Normalmente, estecontadorseincrementaen una unidad en cuanto la memoria aceptala direccin de la instruccin anterior. El bloque 3 esla unidad operdtiadi allf se aritmticas,lgicas,de ejecutanlasoperaciones de rotacin, de incremento, desplazamiento, que intervieneen la etc. Uno de los operandos va la ALU (Unidad que a efectuar operacin lgico-aritmtica),procedede un registrode 8 bits llamado Acumulador. El otro operando y secarllegadesde cualquierpartedel sistema

ga o almacena en un registroauxiliar. Un registro especial,denominado Registrode Estado, contieneuna seriede bits que actan como sealizadores especial de algunacaracterfstica que sehayaproducido en la ltima operacin efectuada por la ALU. Por ejemplo,un sealizadordenominadoZ (cero),pasaa valer uno (1) si el resultadode la operacinque ha hecho la ALU ha sido cero (0). El bloque 4 esel de entradasy salidasy se encarga los datosprode suministraral sistema cedentes del exterior,ascomo de llevarlos resultadosa los perifricosdel mundo real.

*qecuen*ia deuna deoperacin instruc*in


En un microprocesador, el principio de ejecucin de cualquier instruccin tiene caracBus dedirecciones

Perifricos del mundo exterior pasa (RDI) (PC) delConbdor Figun2.17 Elcontenido dePrograma al Registro deDireccilnes

&tn #

sobre Microcontoradores cw", petico

Bus dedirecciones

I
tin

re'ttrt)mo rial cin aliuno r he-

Bus decontrol

tvse iProreDS

Figun 2'18 Elcontenido delaposicin delamemoria sedeposita enetRegistro detnstruccin tersticas similares. En todas ellas hay dos tiempos fundamentales llamados bsqueda (fttth) y ejecucin(execute). El diagrama de bloquesde un sistemacon microprocesador permiteun anlisis rpido de la forma en que se ejecuta una instruccin cualquiera; por ejemplo,la correspondiente a la suma de dos operandos. siguecon la parte de la ejecucin propiamente dichaquepuede tenervarios subtiempos, dependiendodeitipodeinstruccin. Fase de busru*rla Eselcomienzodeunanuevainstruccin,el futador dePngrana(PQdeposia enelbus dedireccionesla direccin delaposicin dela memoria principaldondeseencuentrael codigodela instruccin quesevaa ejecuar. Dicho .gdigJuk de la memoria principal pordzsdedatoshasala UniadeContmldond. segrabaen elRegittude Instruccions,frgra'2.l.

e ejec fac'

c*nes(RDI)

El contador de programa empiezaconteniendo la direccin de la memoria principal donde estalmacenado el cdigo binario de la instruccinde suma.Luegoesecontenidopasa atravs delbusdedireccioneshastalamemoria Como la CPU no sabeque tipo de insprincipal, donde se decodificay selecciona la truccin va a ejecutar, los tiempose bsqueposicinque contieneel cdigo binario de la da son exactamente iguales.El desarrollode operacin. Dicho cdigode "mquina"salede esrafaseesla siguiente: ia memoriapor el busde datoshastael registro de instrucciones de le Unidad d Control, don- 1. El contenidodel Contadorde Programa (PC), de sedeposita.Toda esafasede localizacindel a travsdel bus interno de la uniad de con:digo de la instruccin mencionada,recibeel trol, aparece en el registro dedirecciones de menombredefasede bhqueda y esla mismapara moria, gara2.l7. :ualquierinstruccin. 2. El contenido dela posicin de memoriaaparece El tiempo deejecucinempieza por un suben el busde datos.Estainformacinsedeposita iempo de decodificacin de la instrucciny proen un registro de instrucci" 2.1& fllt* curcoprcticosobreMicrocontotadoes&t;.drtb

&

E-

i:iilsii333tx3i#T
Figun 2.19 Comporkmiento delaunidad decontrol dunnte lafase deejecucin (PC) Al mismotierpo,el Conador dePrograma seincrementa, puestoque l debesiempresealar la direccindela siguienteinstruccinque se De esa paracuandose necesite. va a ejecutar, forma seha completadola operacinde bsqueddeunanuevainstruccin. bit seaJuzdores del Registro de Esado,tomannel valorcorrespondiente en funcin del rCIulado. Eiecucin dg una i*strtt**inn En resumen:completadala fasede bsqueda,el cdigo de mquina delRegistrode Instrucciones

ir*ir:**irn :'i:ilI?:f:!K;#,{:Xt:i?S:i: #*i;n; Dec*rfirica*i*n


de microinstrucciones q.r. rpondan.Dichas "ott microinstrucciones van introducindose al secuenciador a medidaquese realizeel proceso. El secuenciador, con cadamicroinstruccin,envfa una senede seales de control a los elementos De momento,la partede la instruccinllama- del sistema que debenactuaren cadamomento. se transfiere Ejecutadas todaslasmicroinstrucciones da cdigo de operacin (opcode), quecomal Decodificador de Instrucciones(DI) y aqu ponen la instruccin,el Contador de Programa seincrementaen una unidad y el sistema pasaa empiezala parte diferente de la instruccin. la ejecucinde la siguienteinstruccindel proAl recibir el Decodificadorde Instrucciones grama,figura 2.19. el cdigo de la instruccin en curso,se encrrga Hay varios tipos de instrucciones bsicas en la memoria de microinstrucde seleccionar que corresponden a dicho cdi- que puedenagruparse de acuerdocon diferencionesaquellas d Se- tes criterios, talescomo funcionalidad, nmego. La llegadade las microinstrucciones de con- ro de ciclos de memoria utilizados, nmero de cuenciador, origina una seriedeseales de lasdiferenteseta- palabrasque utiliza, etc. Dependiendo de las trol que regulanla ejecucin carecterlsdcas la instruccin. pasen las que sedescompone de la computadora y de su microprocesador, los diferentestipos de instrucEn el caso de unasuma,uno de lossumandos ciones sernde una, dos o ms palabrasy neen el Acumu- cesitarnuno o ms ciclos de memorie, pa ha de estarcontenidopreviamente auxi- llegar a obtenerseenteramenteen la unidad de Iador,mientras queel otro llegar delregistro cuya control. En funcin del nmero de palabrasy liar,generalmente, desdelamemoriadedatos, vendracompaando del tipo de instruccin, la ejecucin tiene cadireccincorrespondiente ractersticasdiferentes. Estos parmetros deen la instruccin. al cdigode la operacin terminan,por ejemplo,el nmerode veces que la sumay el resuladosede- el sistemadebe accedera la memoria para leer lALU efatrar en el Acumulador, d mismotiempoquelos toda la instruccin. ,osiar:
^s{h.

Es la primera parte del tiempo de ejecucin y igual para todas las es tambin exactamente instrucciones,puesto que an no se sabeque operacin hay que efectuar.

dz} W

-( &t:

prctin o,be Mictocottfrotadorcs cwso

Un pueno o interfazde entrada./salida puede El concepto de entrada/salida abarcatoda trans- construirse utilizandocomponentes normales de ferencia o intercambio de informaci n (datos) pequea y mediana escala como compuertas,flipentre un microprocesador (CPU) y un disposi- /hps, regisuos, codificadores, decodificadores, etc; tivo externo o periferico especlfico.Cuando los o circuitosintegrados de gran escala LSI (Large datos fluyen hacia el microprocesador,se tiene Scale Integration) especializados como la interfaz el caso de una operacin de ennada y cuando periferica (PPI) 8255 o el controlaprogramable lo hacen en direccin al mundo exrerno, se rie- dor programable (CPI) 82j9. de interrupciones
ne el caso de una operacin de salida.
iiin nel

Lel lnes
3Se

oria *ras se-

Un paso importante en el diseo de cualquier sistema basado en microprocesadoreses seleccionarlos puertos de entrada/salida o circuitos de interfaz cuyo costo y rendimienro sean los ms adecuados para una aplicacin dada. La complejidad de un pueno I/O puede variar desde un sencillo flip-flop hasta un circuito integrado altamente especializado; por ejemplo, un controlador para un tubo de rayos catdicos o un display grfico tipo LCD.

En la figura 2.20 se muesrraun ejemplo sencillode un puemode salidacon un flip-flop tipo D cuya funcin es transferirel estadodel bit de datos D0 a un diodo LED que actacomo dispositivo perifrico. Estosucede cuandoen la llneade direccionamiento A15 hayun nivelalto y la seal (m) esbaja.Despus de escritura de deshabilitad o, elflip-flop retienela informacin previamente almacenada mientrasel microprocesador sededicaa orrasrareas.

. El
nva ntos nto. )omelna
$a a

Pro-

sicas :renrnero de le las mif,rucy nePara ad de )ras y le car de:s que ra leer

En la figura2.21 semuesrra un ejemplo sencillo de puerto de entrada con un En este En general,las funciones que debe realizarun flipfup. caso, el dispositivoperifericoesun interruptor y su puerto o dispositivo de interfaz de entrada/salida (alto estado o bajo), serransfiere a la lneade datos pueden resumir en los siguientestrminos: 'e D0 cuandoen la lneade direccionamiento A15 . Identificar direcciones con el fin de esra- h"y,m nivel alto y la lneade control de escritura (RD) esbaja-(Jnavezqueelmicroprocesador acepa blecer la conexin con los busesde datos y el bitD} presenre en el bus de datos,lo transfiere al de control del sistema cuando se seleccioacumulador y sinia la salidadel puerto de entrada na un dispositivo perifrico de entrada/saen estado de alta impedancia con el fin de que no lida especfico. interfiera con . Interpretar rdenes.Generalmente, las rdenes otr transferencias de datos.
enviadaspor el microprocesador al puerto I/O se reducen a seales de lectura y escritura.Esus seales pueden venir ya decodificadaso necesitar una decodificacin previa. . -{.daptarftsicamenteel sistemaa los requisitos del periferico. Esto incluye la utilizacin de manejadores(driuer) de Lneasde transmisin, eliminadores de ruido, optoacopladores, etc. . Cnrolar los tiempos para la transferen.ja de informacin con el fin de garanrirr que el flujo de datos entre el micro:rocesador y el periferico sehaga de una rnnera ordenaday eficiente.

(Jna manerams elegantey eficiente de controlarel trnsitode informaMicroprocesador Puerto desalida


Dispositivo perifrico de salida

Figura2.20Puefto denlida confiip-flop

prctico curco sobre Microcontotadores &l:#

ii
perif Dspositivo rico deentrada

cuito y el programa y haceposiblefuncionesque no serfanejecutables si el microprocesador tuviera que hacerse cargode todo el procesode entrada/salida. Por la funcin que hacen,los puertos de interfaz progamables se pueden dividir en dos categorlas: interfaces dedicadas e interfacesde propsitogeneral o interfaces universales.

Las interfacesdicaas se especidizan en una funcin especlfica, por ejemplo, controlar perifricos,temporizareventos, etc. En estacategorlase encuentranentre otros: el temporizador programable8253, el controlador de disco A1 Bus 5-40: dedirecciones Microprocesador Bus Bus Do_DZ: D0-D7: dedatos de datos " flexible827l,la interfazprogramable de teclado y disphy 8279 y elcontrolador de tubos de rayos con intenuptor Hgun221Pueto deentada catdicos(TRC) 8275. cin entreel mundo rcemoy el microprocesador, (S4 I-as intrfata deprcpna gmeral como su intqradosde granescal esutilizandocircuitos nombre paraef manejode enuadas lo indica, son ms universdesy pueden disearlos deestos adaptarse a una granvariedad Exisysalidar.Entrelasprincipala caacterlsticas deapcaciones. ten interfaces podemos mencionar: paratransmitirdatos enparalelo como circrritos (PPD8255y para la interfazperifrica programable . Son fcilesde conectarcon los buses del siste- la transmisinde datosen seriecomo el 8251. ma puesto que disponen de llneas de adapta(|/O-RAM) desoporte 8155 cin directa con las salidasdel respectivomi- Elcircuito Por lo general,slo se requiere Si analizamos un microprocesador tfpico como l croprocesador. 8085, observaremos que contienetodaslaspartes un sistemadecodificador de direcciones. . Son circuitos de entradas y salidas programa- de una CPU funcioryl asfcomo un puerto serie; f- todo lo que necesitapara completar un sistema permite adaptarlos bles.Estacaracterlstica esuna memoriaRAM, una memoriaROM cilmente a las condicionesde los circuitos ex- bsico y puertosparallos de entrada./salida. ternos utilizando nicamente comandos de programacin. Generalmente,la programaCon el fin de minimizar el nmero de circin consisteen cargar,de una forma predepara configurar un terminada, un registro interno que define el cuitos integradosnecesarios se puede_ alsistema sencillo, Intel, creadordel 8085, ha demodo de operacin.Este ltimo sarrolladouna seriede componentesque inteterar en cualquier momento por programa. . Algunos mdulos de entrada/salidaposeen gran memoria RAM y puertos I/O memoria cierta capacidadde procesopropia, indepen- ROM y puertosI/O en un mismo circuito inteEstacircunstan- grado. Los dispositivos ms representativos son diente del microprocesador. El8155antene256 cia es favorableya que libera al microproce- el 8155,el 8355y eL8755. byta de RAM, dospuenosI/O paralelos de8 bit, sador de la ejecucin de ciertas tareasrutide6 biny un temporizador narias y de control, las cuales delega en el un puefto I/O paralelo 14 de hit. Et 8355 contiene2M8 bt6 de ROM y dispositivo de interfaz. dospuertos I/O paralelos de8 bir. H,8755 tienedos puertos llO 2048 secy La caracterfstica anterior, denominadaalgufuta eEPROM. En esta un sistema bCIado en microproditibuida,simplifica el cir- cin estudiaremos nasveces inteligencia

&tn

pctingobre Micoowttutattups cueo

PC3

Vcc PC2 PCl PCO P87 PB6 PB5 PB4 PB3 P82 P8 1 PBO PA7 PA6 PA5 PA4 PA3 PA2 PAl PAO

lue ruenler-

PC4 TII\4ER IN RESET PC5 T[\,1ER 0UT

cesador, uillizando elcircuitointegado8155.En la frgm2.22 semuestra la configuracin depines,el diagrama interno de bloques y la estrucnrade registrosde este circuito. El 8155 puededemultiplexar internamente el bus de datosy direcciones del 8085. Por estarazn, slo se necesitan ocho llneas,desde ADO hasta AD7, para transmitir datosy direcciones. Lasllneas IOiMD, RD y'WRse utilizan parael control dela memoriay laslneas ALE y RESET parael conol interno. Paraefectos de la interfazseutilizan 221neas programables como entradas o sdidasy organizedasen tresgruposasl:desde PAO hastaPA7 panel puertoA, desde PBOhastaPB7 pxael pueno B y desde PCOhasa PC5 parael puerto C. ls llneas TI (pin 3) y To(pin 6) son, respectivamenre, la entraday la salidadel temporizador. La memoriaRAM del8155 tieneasignadas lasdirecciones 0000H hasta 00FFH y esaccesible externamente mediantelos ocho bits de direccionamientode ms bajo orden cuando las lneasC-Ee IO/M son bajasy cualquierade las lneasRD S. esbaja. Los ocho bits dedireccionamiento de ms bajo orden se almacenan en un registro interno durante los flancos de bajadade la sealALE. La capacidad de memoriaRAM del 8155 (256 byns)es,generalmente, msque suficiente para sistemas pequeos.En la mayora de los casos esta memoriaseutilizaparaalmacenamiento temporal de datosy resultados, ascomo de informacin de registros y direcciones.
.. , -.1.1 :: :t,i ;:i i ,l 'i ri :,: r',,1

idir ,rfarles.
l en

rolM ; UE
RD WR ALE ADO AD1 ADz AD3 AD4 AD5 AD6 AD7

rolar e,carizalisco :lado ravos

no su ueden . Fxisrcomo )'Para il.


t'

(a)

GND

lO/M+

wewlw
I podA
n tr+

{, omo el s Partes .o serie; sistema a ROM

A LE + RD+ - W R+

Port B , PAO-7

RESET+

clofr -*d,...i; ; - - 1 . ; " - , *I$ @e

, de cirprar un ,. ha deue intenemoria ro inteir-os son d.ene256 de8 bit, porizador eROMY i denedos n esrsecmicroPro-

tD)

,,"r*r,*l I iiMER our-l


I

| | |-GND

vcc r.vr
(0V)

!+-'.
I I

MODO TIMEB

Figura 2.22Circuito desoporte 81 55

Los puertosA, B y C sepuedenutilizar como tres puertosde entrada/salida independientes; estos puertossonaccesibles externamente a travsde las8 lneas de msbaio ordendel busde direcciones cuandoG ., aja, RD o ffi.., baja e IO/M esalta.La figura 2.23 muestra las

prctico Curco sobre Microcontotadores &<r*#

direccionesinternas de cadaregistroy de cada puerto en el 8155. Por ejemplo,paraseleccionar el puerto B, A1 debeseralta (l) y A2y A0 debenserbajas(0).

rlnunsistema rnn*l* **" Disenn y S1s5 S0*$


Podemos decir que un sistetnamlnitno con miconstituidopor esun dispositivo croprocesador que permiten el una seriemlnima de elementos desarrollode algn tipo de tarea o aplicacin en el mundo real de maneraautnoma,inteligentey siguiendolas pautasdadaspor un programa.En el estudiode los microcontroladores,esmuy importanteentenderqu esun sisya que es temamfnimo con microprocesadores, estaconfiguracinbsicala que precisamente con estanuevatecnologla. seha reemplazado

los objetivos segn de estecurso.De l seorigin el 8086 el cualesla base de toda la familia Intel la que siguicon el 80186,el 80286,el 80386,el 80486 y el Pentium. Si usted estinteresadoen profundizar en estetema,le recomendamos nuestro Curso Bsico de Microprocesadores.

El sistema seha divido en dos tarjetas:una tarjetaprocesadora y una tarietaprogramadora, fila gan2.23. I.a primera contiene,esencialmente, CPU, la memoria RAM, el temporizadorprogramable,los puertosde entrada./salida y el registrode comandos. En la memoriaRAM resideel programa de instrucciones que ejecutael microprocesador. Ia arjeta programadora constade unaserie de funcionesde pequeaymedianaescala ales como compuertas, y registros. Su dTium,decodificadores funcin espermitir que el usuariotengaacceso a la memoria del sistema y pueda cargar en la misma el diseode un datose instrucciones, Como ejemplomostraremos as como visualizarresulasistemamicrocomputadormnimo desarrollado dos.la informacinserecibe hexadesde un teclado por CEKIT alrededorde una CPU 8085 y un decimal y sevisualiza en diodosLED y d"pkyt circuito de soporte8155. Aunque el 8085 esun procesdrrr de ocho bix de las primerasge- {.3isrfi* microprocesador tt* lr*tarjeta ejemplopor Ia tarjeta procesadora de nuestro microcompuaneraciones, lo hemos utilizadoeneste la facilidad para entenderlo con fines didcticos dor consa, bsicamente, de una CPU 8085 y un
VisualizadorVisualizador hexadecimal binario

ffi@W1#
l- C- l --(LEE) RD: orden delectura dedreccionamiento ALE: orden

ffiffi t t t E=-

tr:si

programadora Tareta dereloi Salda t*lil"'"' (ESC) wR:oroen o-e escritura

F@ffir
:

Figun2.Zl Sistema nnimo

&n; ::,*

r**

sbrcMicromntotadoes

o
ta

(a)

el
in

s-

na

@! ffiill
*

Bus de Cirecciones

A1 A2 A3 A4 ResetL 1 ICl B A5
F

fila

il

rade T^5a-

#:ffiI HSl"
EI EI
:- : . JJ

+5V

rb g L
-c

A6

lrsl 7.

Entrada sene 8155

:de
,lO

!;:854

Salida sene f#
AD7

f"-

lo s l L*l

.Su ala sma ltag-

AD6 AD5 AD4 AD3 ADz AD'1 ADO

r.
PuraY trn

,-tI
T1 T0 Temporizador

(b)Diagrama Figun2.24(a)Diagrama debloques esquemtico

:cuito de soporte 8155. En lasfiguras2.24(a) y f.24(b) semuestran, en suorden,losdiagramas de y esquemtico rloques de esta partedel sistema.

control, como su nombre lo indica, transporta las (ALE,ffi., RD,IO/M, etQ que sealesdecontrol necesitala CPU para comunicarse o dialogar con la memoria y los puertos I/O.

interna La CPU 8085, cuyaconfiguracin A travs del bus de direcciones, el 8085 ses ilustren la figura2.5, proporciona, entreotros :-oquesfuncionales, una unidad aritmtico-l- lecciona de manera inequlvoca la posicin de (ALU) ocho bits, una unidad de control memoria o el puerto I/O desdeel cual trae o hade ;;a -.--.-arios cia el cual dirige la informacin del bus de datos. registros accesibles al usuario.
7

tmnimo

Puesto que el sistema tiene solamente 256 bytes ,{.unque el 8085, por disponerde un bus de de memoria, slo se requierenocho lneasde diun espa- reccionamiento (las menos significativas); las ::eccionesde 16 bits,puededireccionar ocho restantes(las m:s significativas), no se uti,;a- de RAM disponibles son lizan. En el 8085 las ocho lneas de direccionaen nuestrosistema parasoportarla mayorade programas miento de ms bajo orden (A0 hastaAT), semul--jcientes srcillos de aplicacin. Todoslos bloques funcio- tiplexan internamente con las ocho lneas del la tarjetaprocesadora :;,s queconstituyen seco- bus de datos (D0 hasta D7) formando un bus ::rican entres a travs de los buses de control, nico de datos y direcciones.El 8155 decodifiEl bus de ca o demultiplexa la informacin transportada ros y de direcciones del sistema.

prctico curco sobre Miuocontrotadores *tn#

1t

i'
lfneaspara sabercundo se trata de sobreestas una direccin y cundo de un dato. d" FRF del 8085 cuando el interruptor Sl esten posicin "RESET" y un nivel alto cuando Sl esten la posicin "RLIN".

Elcircuito dereloj
Todo microprocesadornecesitaun generadorde pulsosde reloj paracontrolar el contador de programa y sincronizar sus funciones internas. En nuestro clso, estecircuito de reloj viene incorpuede porado en la CPU 8085 y su frecuencia controlarseexternamentemediante un cristal o Xl entre laslfreas una red RC externaconectada (pin l) yX2 (pin2).

y direcciones Losbuses dedatos

El 8085, por poseerun bus de direcciones de 16 llneas,puededireccionar hasta 65536 bytes (64K) de memoria.Sin embargo,paraacceder a.Ies256posiciones en el de RAM disponibles circuito de soporte8155 slo se requierenlas ocho llneas de.ms bajo orden. En la figura 2,25 se muestrala forma de interconectarlos busesde datos y direccionesde los.circuitos 8085y 8155.Recuerde queen el 8085 lasocho Elcircuito de reset de msbajo orden El 8085 puedeserfcilmenteconectadoo desco- llneasde direccionamiento nectado por hardwaremanelt{o adecuadamen- estnmultiplexadascon las ocho lfneasde da(RESET IN); pin36. Cuan- tos, formando un bus nico de datosy directe su entradade rasar en nuestrosistema, do estallnea recibeun nivel bajo, el microproce- ciones.En otraspalabras, viajan sobrelas mismas Bajo estacondi- los datosy direcciones sador ingresaal esado de reset. y lfneas(ADO hastaADT). cin, el contadorde programasecargacon ceros sesitrlan en el eslos buses de datosy direcciones El 8155 distingue internamenteenue directado de alta impedancia.Debido a su naturaleza y datosinterpretando el esadodelallneade la sealde reset puedeafecar el con- ciones asincrnica, tenido de los registrosinternos de la CPU, in- conuol ALE. Cuandoestariltima esde nivel bajo, en el bus es o banderas.Cuando la lfnea entiendeque la informacin presente cluido el de estados FBEmi sehaceaka, el 8085 procedea ejecu- un dtoy cuandoesde nivel dto esuna direccin. en la memoria. ar el prograrnaalmacenado Cuando el bus AD actrla como bus de daEn el momento de aplicar energfaal siste- tos, laslfneasADO a AD7 son bidireccionales,es e inyec- decir, pueden transportar informacin desdeo ma, el conderisador Cl estdescargado Cuando este bus se ta, a travsde R4, un nivel bajo a la entrada hacia el microprocesador. las lfneasADO estel- convierteen bus de direcciones, RFfm del8085. Como resultado, timo pasaal estadode resetdescrito anterior- hastaAD7 son unidireccionalesy llevan informente. El condensadorcomienza entonces a macin de la CPU haciala memoria o hacialos cargarse a travsde R3. Cuando el voltaje entre puertos de entrada/salida. a los terminalesde Cl alcanzaunvalor cercarro +5V la enrradaRBS-ff W recibeun nivel alto comenzando y el 8085 saledel estadode reset, la ejecucinde las instruccionesa partir de la rpidaposicin0000H. El diodo Dl descarga mocuandosedesconecta menteel condensador la fuente de alimentacin, inmentneamente cluso como resultadode una falla en la alimentacin.El circuito constituidopor Sl, Rl, R2, ICIA e ICIB forma un eliminador de rebote cuyo objetivo esaplicarun nivel baio a la entra- Hgun2 hnexin nuWptexadadetbus dedatosy direcciona

&tt

pr*i,, cuw ct*wnotturw

i
I

:::-'!-rl

:j

:or Ito

Como se muestra en la figura 2.26,Ia CPU 8085 se comunica con el circuitb de soporte 8155 a travs de cinco lneas de control: RE-

de Ites :der nel r las Fra r los ritos rcho rden e da[irec:ema, $mas

SET, ALE,'Sf-R, m e IO/M. Otraslneas de erc., ;ontrolcomoHOLD, HLDA, READY,


no son necesarias para la operacin de nuestro sisremamnimo pero s se requieren en sistemas ms grandes para ejecutar otras funciones. La salida de resetdel 8085 (RESET OUT, pin 3), activa en alto, le comunica a la entrada Je reset del8155 (RESET IN, pin 4) que el mi:roprocesadoresten condicin de reset, esdecir que no est ejecutando el programa de aplica:in. Cuando esto sucede,el 8155 entra tambin en estadode resetydefine todaslas lneasde suspuertos como entradas. La lnea ALE (AddressLatch Enable: habi-irador del seguro de direcciones)del 8085 (pin 10) estconectadaa la lneaALB del 8155 (pin . I ). Cuando esta seal es alta, la CPU le in:orma a la memoria interna del 8155 que la :nfbrmacin binaria disponible en el bus AD .s una direccin. Como resultadode la sealALE, el 8155 al:rlacenaen un registro interno, durante el flanco ie bajada,la palabra de direccin. En el siguiente ,^iclode mquina, el microprocesadorpuede pro:eder entonces,a leer o a escribir en la posicin de ::remoria direccionada. En este caso,la informain setransmite sobreel busAD, convertido aho: en el bus de datos del sistema.

La lneafr. Qrrite: escritura) del 8085 (pin 31) est conecada a la lnea ffi. 1pi" l0) del 8155. Cuando estalnea se hacebaja, la CPU le indica a la memoria que el dato o la instruccin presenteen el bus AD va a ser escritaen la posicin de memoria previamente seleccionada.La lnea RD (read: lecatra) del 8085 (pin 32) est conectadaa la lnea-RD (pin 9) del 8155. Cuando estalnea se hace baja, la CPU le indica a la memoria que va a proceder a leer el contenido de la direccin prgviamente seleccionada y a situar la informacin en el bus AD. Finalmente, la lnea IO/M (Input/outputmemor!: entrada/salida-memoria) del 8085 (pin 34) es conecradaa la lnea IO/M (pin 7) del 8155. Cuando esta lnea se hace alta, el 8155 reconoce que la palabra de direccin presente en el bus de datos correspondea un registro interno o a un puerto I/O. Cuando la lnea IO/ M se hace baja, la CPU 8085 le informa al circuito de sopome8155 que la direccin presenre en el bus AD corresponde a una de las 256 posiciones de memoria a las que es posible tener acceso. Estaslocalizacionestienen asignadas direcciones entre 00H y FFH. :' . :' -:.'., Desde un punto de vista conceptual, el circuito de la figura 2.24 esuna microcomputadora completa porque posee una unidad central de proceso, una unidad de memoria y puertos de entrada/salida. Sin embargo, le falta lo ms importante: un programa. Sin un programa que le indique lo que debe hacer, un microcomputador esslo una masa inanimada de componentes electrnicos.

direcnea de

I baio,
bus es eccin. de danles,es lesdeo bus se s ADO n inforacialos

y direcciones

Para almacenar en la memoria los datos e instrucciones que constituyen el programa de nuestramicrocomputadora, necesitamos asumir temporalmente el control del circuito de soporte 8155 y aislar el microprocesador8085 del resto del sistema.De estemodo, podemos introducir informacin en la memoria sin intervencin de la CPU. Esta es, precisamentela funcin de la Figura 2,26Conexin delbusdecontrol

prctico curco sobre Microcontrotadores tklZt #

Lostnict-ot rt'gcesadoL'es
cesadores. Hemos analizado su arquitectura interna, su firncionamiento y la forma de interconectarlosdentro de un sistemapara que puedan ejecutar tareas que involucren el manejo de variables realesy cierto grado de inteligencia. Hemos visto que estos dispositivos requieren de componentesadicionales para ejecutaruna tarea especfica y que poseenlas facilidadespara direccionar o manejar gran cantidad de perifericos como memorias, puertos y muchos otros disposiwos. Debido a.esta capacidad,los microprocesadoresson el elemento fundamental dentro de los equipos de computacin modernos, donde se maneian enormes cantidades de memoria y gran variedad de perifericos. programadora Figura 2.27Conexin dela tarjeta tarjeta programadora.En la figura 2.27 seilustra la forma de conectar esta tarjeta a la tarjeta procesadora. Cuando el interruptor S1 de esta ltima se sita en posicin 'RESET", las lneas de datos y direccionesADO hasta AD7 del 8085 adoptan el estado de alta impedancia y quedan flotantes.Lo mismo sucedecon laslneasde control ALE, \fR, RD e IO/M. La lnea RESET IN del 8085 es de nivel bajo. Bajo estascondiciones, desde la tarjeta programadorapodemos accederlibremente a la RAM del 8155 y escribir en la misma el programa que debe ejecutar el microprocesador.As mismo, podemos direccionar cualquier posicin de memoria y leer su contenido. Una vez cargado el programa, el control del 8155 debe retornar al 8085 para que este ltimo lo ejecute (Sl = "RUN"). En la figura 2.28 observamos el aspecto fsico del sistema mnimo desarrollado alrededor del microprocesador8085 y del circuito integrado 8l 55. Los microcontroladoresson dispositivoselectrnicos que agrupan en un solo circuito integrado todas estascaractersticas, aunque con cierta limitacionesde memoriay periftricos.Sin embargo, su funcionamiento interno sigue siendo bsicamente el mismo. Por estarazn hemos querido entregar esta corta introduccin a los microprocesadores, para dar una idea de todo el desarrollo tecnolgico que involucra estatecnologay sentar las basespara el estudio de estoselementos.
procesadora Tarjeta

f,

Visualizacin de losdatos

En estaleccin se ha hecho un repaso ms importangeneralde los aspectos tes relativosal mundo de los micropro-

programadora Tarjeta

Tarjetas de l/0

Figura 2.28Sistema nicrocomputador mnimo conel 80

&g

<t;

prctico Microcontroradores curco sobre

-d

in'codan \-aHerde area .rec'icos sPo'oceode rnde ria y

^t ^^ <lcL-

:egracierta nbarbsirerido oProrollo sentar

- 8085 - - 155

En los ltimos aos,un componente electrnico ha revolucionado las tcnicas de diseo;se rraradel microconrrolador. Es un circuito integrado programableque contiene todos los elementosnecesarios pafacontrolarun sistema. A partir de estaleccin,iniciamosun esrudio detalladode cada una de las partesy mdulosinternos quecomponen un microcontrolador,desde los msbsicos hastalos msespecializados, al igual que algunas rcnicasy algoritmos que permirensu maneio e inclusindentro de un proyecro.
prctico curso sobre Microcontrotadores &irl *t #

I
. el 80

Lad-ol-s LoslnlctccctrLt'o
Al analizar los sistemasbasadosen micromostradosen las leccionesanterioprocesadores res,sepuede deducir que la estructurade un sisde tema de microcomputadora para aplicaciones constante, medicin o control, tiene un carcter es decir, siempre existir esa misma estructura (CPU, memorias, puertos, buses,etc.). No es difcil comprender, entonces, porqu los fabricantesde circuitos integradosdecidieron producir un supercomponenteque contengatodos los elementosde una computadora en un solo circuito integrado. A mediados de los aos 70, los fabricantesde circuitos integados dieron a conocer un nuevo dispositivo denominado microcontrolador el cual contena toda la estrucnrra de una microcomputadora, esdecir,unidad de proceso(CPU), memoria RAM, El primemoria ROM y circuitos de entrada./salida. mer dispositivo de esta naturaleza fue lanzado por TexasInstruments y sedenomin TMS 1000, el cual fue el primer microprocesadorque inclu suficiente RAM y ROM para el desarollo de aplicaciones. El microcontrolador se concibi como un dispositivo programable que puede eje+5V (Fuente dealimentacion)

O _O EG

o- -

x= '== C-) ;-G

6o

Entradas

Salidas

general deunmicrocontrolador Figura 3,1 ldea cutar un sinnmero de tareas y procesos. Desde esemomento, el diseo de productos electrnicoscambi radicalmente.Circuitos lgicos, manejo de perifricos, temporizadores y estructura de computadoras, todo programable y alojado en un solo circuito integrado; es decir, una pequea computadora para todas las aplicaciones.

Microconolador

Dispositivos deentrada

desalida Dispositivos general basadlen un micrlcontrolacllr Figura3.2 Diagrama de un sistema

34

&t.:.

Curcoprctico sobreMicrocontroladores

1-i:ti
la idea de una -i]:ora. para un diseador. :r-:rocomputadora. en apiicaciones de conrrolo =: ia tabricacinmasivade aparatos modernos, ,.= al esquema mostradoen la figura 3.1, "imiia :::r,ie tenemosuna fuente de alimentacin,un (Jna vez :-::uiro de reloj v un microcontrolador. : -:rgurado el sistema en cuanto al hardtaare,so:j::nte serequieregrabarel programa en la me:-::ia ROM; los puertos ya estn listos para conectarseal mundo exterior. (Jn microcontrolador puede definirse entonces como un sistema completo de cmputo, que incluye una CPU, memoria RAM y ROM, un oscilador y puertos I/O, todo dentro de un mismo circuito integrado.

Aunque un usuario comn no lo perciba,hoy en da es muy comn encontrar uno o varios mi-

.1*n a,,,aH
U

.0,

o/n

o oc F z

';;:?:'x?'ffi

ffi*,,..
Salidas digtales

9,ffi.

Entradas digitales

y delosdispositivos que pueden Figura 3.3Estructura pafte bsica deunmicrocontrolador hacer deunsistema

prctico curso sobre Miuocontrotadores &<lr*#

descrocontroladores en todo tipo deaplicaciones como y aparatos caseros de los electrodomsticos las cafeteras, los hornos microondas,las videograbadorasy las alarmas,hasta los circuitos de control sofisticados de los automviles,los aviolos barcos,los sistemas nes,las navesespaciales, industrial, etc. Lasaplicaciode automatizacin son infinitas; el nesparalos microcontroladores nico lfmite esla imaginacin. La posibilidad de manejarseales de entrapara proda y de salida,asl como su capacidad lo convierte en cesardatosy tomar decisiones, uno de los elementoselectrnicosms verstilesque existen.El diagramageneralde un sistema microcontroladoserlael que semuestraen lagura,3,2.

ls indicadores visuales mscomunessonlas pantallasde cristal Uquido, los diodos LED, las lmparas incandescentes, etc. Los indicdores audiblespuedenserparlantes,zumbadores, etc. Los actuadores son muy importantes ya que seutilizan paramanejarlas "cargas" como los rels,las electrovlvulas, los motores,etc., figura 3.3. Un ejemplo prctico puede ilustrar mejor todas las posibilidades.Veamosel casode un horno microondas,gura 3.4.

En esteejemplotenemos tresclases de dispositivos de entrada: el teclado, por medio del cual se programala funcin que se desea, los sensores internos para controlar variables Cuando se habla de dispositivosde entrada, como la temperatura), si el horno tiene esa a todos los elementos que pue- funcin, un receptor de control remoto para sehacereferencia con- captarlas rdenesdadaspor el usuariosin acanteuna determinada den cambiarsu estado una sed que puedaserutilizada cionar el teclado. dicin y generar por el microcontrolador para tomar algunadecisin; por ejemplo, un teclado,un interruptor, ln Como dispositivosde salidaestn:eI dissensor, un transductor,etc. I-osdispositivosde sa- play que puede ser de diodos LED o de crisvisuales, audibleso ac- tal lfquido, el motor que hace girar los alilida puedenserindicadores tuadores,entre otros. mentos y algunos rels que se encargande controlar o desactivarlos circuitos del horno, lo cual permite, por ejemplo, cambiar la potencia y el tiempo de coccin, entre otros.
En este caso tenemos un microcontrola-

dor programadoespecfficamente paraesta cin acompaadode una serie de circui complementarios de entraday saliday sus pectivasinterfaces. Hay innumerables ejemplosde de estatecnologla,desde algunosmuy simp como un temporizador, hasta sofisticados bots con cierto grado de inteligencia artifici En la seccinde proyectosde estecurso, sentamos una seriede aplicaciones reales el alumno podr construir,y aslaprender y FiguraS.4Ejemplo delusodeunmicrocontrolador rificar el poder y la versatilidadque estosdispositivos. enunhorno microondas

&tn #

prctico cwgo sbrcMicrocontotadotes

r.x las D. Ias


15 auta. Ir esya :omo s, etc., Esten varias diferencias imporrantes enrre esras Jos tecnologas,cadauna tieneventajas y desveniajas,y su uso dependede las necesidades de cada aplicacin.Paraaclararlas ideassobreesrerema, i-earnoscualesson estasdiferencias: 1. La CPU del microcontroladores ms simple y sus instrucciones estn orientadas,principalmenre, a la operacin de cada una de las lneasde entrada y salida. l. La memoria RAM (de datos),que ofrecenlos microcontroladores,es de baja capacidad.La razn es simple: las aplicacionesde conrrol e instrumentacin comunesno necesitan almacenargrandescantidades de informacin temporal. En cambio, los microprocesadores pueden acceder,a travs de los buses,a grandes bancosde memoria RAM externade acuerdo a las necesidades del sisrema. la memoria ROM -1. En los microcontroladores, (de programa) es limitada. Por lo general, no mayor a 4 Kilobytes. De esra memoria hay tres tipos: EPROM, OTP y EEPROM, figura 3.5. Los microcontroladores con memoria EPROM se utilizan bsicamente Dara

: mejor Je un

\'\

o
\h

t.\ \

\li Figura 3.6Dispositivo deluzultravioleta para elborrado demicrocontroladores conmemoria EpR1M

ie dismedio : desea, ariables iene esa )o Para : sin ac-

: el dis, de cris: -os alii:gan de ,iel hor,nbiar la ::e otros.


{utItIOh-

el desarrollode prototipos; con estetipo de memoria, es posible programar y reutilizar el microcontrolador a la manera de las memorias2776,2732, erc.,esto es, borrando el programa mediante un haz de luz ultravioleta aplicadosobreuna ventanita. En cambio,los circuitosintegradosOTP (One Time Programable)o programables una sola vez, no permiten que se altere o borre la informacin escrita.Este tipo de dispositivoses ms econmico,por lo tanto esel ms utilizado para la produccin en serie de apararos ^ha electrnicos, cuando el prototipo ya sido completamenteprobado. Los dispositivos EEPROM, que han hecho su aparicin en los ltimos aos,se caracterizanpor permitir el almacenamiento de un programay su borrado por medioselctricos. Este mtodo es mucho ms rpido que el borrado con luz ultravioletade lasmemoriasEpROM, ademsde no necesitardispositivosadicionales como el que se muesrra en la figura 3.6. Una variedad de la memoria EEPROM es la memoria FTASH; los microconrroladores con estetipo de memoria, tambin son borrables y reprogramables elctricamenre, pero pueden soportar un nmero mucho mayor de estos procedimientos.En un sistema con micropro-

i :sa func ircuitos 1'susres'

G
GCTT

,PO i ls
l1
EP R OM

rrlicacin
j V Sl mP tes
,t

i:ados ror ertificial. Pre-i-:rso, :ealesque :nder y ve:e ofrecen

I
E E P R OM

OTP

I I

Figura3.5 Tipos de memoria en losmicrocontrlladores

prctico Curso sobre Miuocontrotadores &rt

'& 7E:qF)

cesador; sepuedentenermemoriasROM exEn resumen, dgunasde lasprincipdesveny capacidades, tajascuando hacemosel diseo de un ternasde diferentestecnologlas de la mismaforma que lasmemoriasRAM. utilizando un microcontroladorson:

4 . Con los microcontroladoresno es necesa-

El circuito impresoesmspequeo ya quemurio disearcomplejoscircuitos decodificachosde los componentes seencuentran dentro dores porque el mapa de memoria y de del circuito integrado. puertos I/O estn incluidos internamente. Por laruzn anterior, el circuito impreEl costodel sistema esmucho menor,al reduso de las aplicaciones es muy simple en cir el nmero de componentes. algunasocasiones, puede ser de una sola capa lo cual es una ventaja sobre los mi- . Los problemas de ruido que puedenafectarlos croprocesadores. sistemas con microprocesador seeliminan, debido a que todo el sistema principal seencuentra en un solo encapsulado. 5 . La mayoa de los microcontroladoresno tienen accesible al usuario los busesde direcciones, de datosy de control de la CPU. . El tiempo de desarrollo de un sistema sereduAlgunos modelos lo hacen a travsde los ce notablemente. puertos de entrada/salida(I/O), utilizando sealesespeciales de sincronizacin. Cuando una aplicacino problema que se Estos busesy sealesse pueden emplear va solucionar,sobrepase las caracterfsticas de un para construir expansiones de memoria microcontrolador como capacidad de memoria, RAM y ROM por fuera del microcontro- velocidadde proceso, nmero de pines o llneas lador. Como ya vimos, esta funcin es de entraday salida,etc., se debe recurrir a un mucho ms fcil de utilizar en los micro- sistema con microprocesador o a una microcomprocesadores. putadoracompleta.

6. La velocidadde operacinde los microcontroladoreses ms lenta que la que se puede lograr con los sistemas de microprocesadores.Sin embargo,actualmente microexisten controladores que funcionan por encimade los 50 MHz lo que es suficientepara muchasaplicaciones. 7. De manerasimilar a los sistemas utilizados con los microprocesadores para escribir, ensamblar y depurarprogramas en lenguaje de mquina, se requiereun sistema de desarrollopara cada familia de microcontroladores. Estcompuestopor un paquete de software con editor, ensamblador y simulador de programas al mismo "qr.tiempo, senecesita un hardwareparemar" o almacenarel programa en la memoria del microcontrolador.
7'i CurspAco srlbre Micrwntotadorcs

Cristal r

Figun3.7Mdulos especializados en los

L\J\-:,1 LTJ.

venuito

mu:ntro

:edu-

\fuchas aplicacionesrequieren algo ms que las .imples entradasy salidasde tipo digital. Pen.endo en ello, los fabricantesde microcontrolajores han adicionado internamente algunosciren algunosde susmodelos. Las :uitos especiales :.rsibilidadesson amplsimasy el usuario puede :::oger a la carta.A continuacin, enunciaremos aqunas de las posibilidades,las cualesiremos es:-:diando progresivamente en estecurso. . Si los fenmenos que se necesitanmedir o con:rolar son de naturalezaanrlogacomo tempera:ura, voltaje, etc., sedebedisponer de un converddor anlogo-digital(A/D) de varios canales. . Si hay que medir perodos de tiempo o generat en las salidasdel circuito, tiempos, tonos o hay que tener uno o ms contadofrecuencias, res program ables(timers). . Si la informacin obtenida en un proceso de medida o control, o el resultadode los clculos Jel programa, se deben enviar a otro microontrolador, a una computadora o a una red, muy til tener un circuito RS-232 para co-s municaciones seriales.

Paraquienes requieren salidasP\fM (modulacin por ancho de pulso) para el control de motores CC o cargasresistivas, existenmicrocontroladoresque pueden ofrecervariasde ellas. Cuando serequiereatendereventosen tiempo real o existen procesosque no dan espera,se debe utilizar la tcnica llamada de "interrupciones". Cuando una seal externa activa una lnea de interrupcin, el microcontrolador deja de lado la tarea que se encuentra ejecutando para atender una situacin especialy luego puede regresar a continuar con la labor que estaba desempeando. lf lljilll!,Tf'Jf I'ilr'lif{llnE!'ill!?lif'Tf flliili til

ar los n. decuen-

redu-

que se de un moria, lneas faun ocom-

Tabla dela familia INTEL 3.1Microcontroladores 8051 En la figura 3.7 sepresentael diagramade un posible circuito con microcontrolador que incluye la mayora de los elementosque seutilizan en aplicacionesde medicin, instrumentacin y control.

4'g
lP0 P1l P2 Direcciones/Datos
toladores

gH <oo
N

TXD

RXD Figura3.8

prctico Curco sobre Microcontroladores

i
$,

li

Mapa de memoria.Los componentes de esta familia de microcontroladores rienen una caActualmente existen en el mercado varias mar- racterfsticaen comn que los hacediferentes crsreconocidas como las msimportantes dadas al comportamiento convencionalde un misuscaractedsticas, comercializacin, soportetc- croprocesador: tienen un espaciopara las dinico, difusin, usosen la industria y en la fabri- reccionesde datos (lectura/escritura)y otro cacindeproductos deconsumomasivo, etc.En- para las direcciones de programao de lectura tre ellasestnMotorola, Microchip, Intel, Phi- solamente. lips, National yAIMEL. La memoria de programa puede serhastade 64 Lafamilia Intel Kbytes.En las versiones que rienen ROM y 8051 El primer microcontrolador de Intel fue e[8048, EPROM, los 4K 8K o 16K inferioresde proen el cual la memoria RAM estabadentro del grama,estrinalojadosen el microcontrolador. circuito integrado,peroel programadeblaalmacenarse externamente; posteriora 1,en los aos Conjunto de instrucciones. Todoslos miem80, naci el 8051. Estafamilia de microcontro- bros de la familia ejecutanlasmismasinstrucladoresha sido una de las ms difundidas en el ciones.Esteconjunto de instrucciones ha sido mundo e incluye varios miembros, cdauno de diseadopensando en optimizar aplicaciones ellosacondicionadoparaaplicaciones especfficas. de control de 8 bits. Ofrece una variedadde Todaslasversiones existentes estnconformadas modosde direcionamiento paraaccesar la mesegnun nrlcleobsico(8051 Core)cuyodiagra- moria RAM interna con el fin de facilitar las ma de bloquessemuestraen a figura 3.8. operaciones de 8 bits en una esrructurade datos pequea. . Tienen la mismaCPII, memoriaRAM, temporizadores, puertosparalelos y entradas/salidas El conjunto de insmucciones proporciona un de tipo serid, segnla distribucinque semues- soportemuy amplio paravariablesde un bit. De tra en la tabla 3.1. estamanera,sepuedelograr la manipulacinen los sistemas lgicosy de control, que necesitan El 805I tiene4kilobpes de memoriaROM operaciones de lgebra de Boole. que se deben programar durante el procesode fabricacindel circuito integrado.En el 8751, La informarin sobreel ncleo del 8051 la memoria ROM se ha reemplazado por una se hizo pblica y en ella se han basadootros memoria EPROM que el usuario puede pro- fabricantespara llwar al mercadoversionesacy borrar con luz tualizadascon mejorescaractersticas gramarcon un aparatoespecial en cuanultravioleta.' to a velocidad, consumo de corriente, funcionesadicionales, etc., como el casode PhiEl 8031 esun casoespecid;no tienecapaci- llips y ATMEL. dad paramemoriaROM internay, por lo tanto, la memoria de programase debecolocarexter- Motorola namente.Para realvar la comunicacincon la Los microcontroladoresMotorola sederivaron memoria externa, se deben emplear tres de los del microprocesador 6800 y han sido optimicuatropuertosparalelos de entrada./salida que tie- zadosparaaplicaciones de control especializane. Estaposibilidadde expansin de la memoria do, formando partede aparatos de produccin RAM y ROM con circuitosexternos, esuna Gl- masivacomo juguetes,equiposde video, imracterstica propia.de los microcontroladores de presoras, electrodomsticos y son de amplio estafamilia. uso en la industria automotriz.

Principales de familias microcontroladores

rr* #

prctico cutw sbrcMictwn*ad,w

I t-t

rt l,r

es t a l c a' en tes I m ie s d i- o t ro tc t ur a

.".."
s9o\"

a"t-'

of'
76 528 192 512 512 512 128 128 192 256 1K 'tK 4KEEPROM 768EEPROM 32KFI.ASH 3.75K 16X 2OK FI-ASH 32KFI.ASH 1.5KFLASH 4KFI,ASH

$s

u:68HC0586 8 ffi8HC05832

2 (1 6 Bits) 2 (16 8ib) 1 (8Bits) 2 (16Bits)1 (8Bits) 2 (16 Bib) 2 (16 Bib) Bits) 2 (16 2 (16 Bit$) 1 06 Bils) 1 (16 Bits) 8 (16 Bits) I06 Bib)

32 32 32 3S

scl scl sr0P

8 canales/8 Bts 3,3- 5,5 8 canals 4 canales

M
4.0 2 8/0 I

56SDIP 56 SotP 40 DIP 80 0F? 40 DIP 40 DIP 20 DIP zODIP 40 PDIP 48 DIP

3,3- 5,5 2.1 3,3 - 5,0 2.1 3,3- 5,0 2.1

v:8HC705SR3 I m8fic705116

de 64

: -.a3HC908GP20 I E8lrc908GP32 I

SCUSPI

8 canales I canalos 10canales 10canales

3,0 - 5,0 8.0 3,0- 5,0 8.0 3,0 - 5,0 8.0 3,0- 5,0 8.0 3,0 - 5,0

fM v
.e Pro,dor. miemrstrucra sido .ciones .iad de Ia meirar las , de da-

33 15 15 I 6 Exp.

sct/sPl

u:b8HC908JKl I ms{c908JK3 v:68HC1 200 G8IJC811E2 : :aHC81 244 I I I 16

scr/sPl scvsH
SCI/SPI

8 canales I canales I canalG

+de91 +deffl

3,3-5 5

I 12 LOFP 80 OFP

L58r.1c912832 1 6

scilsPl

Tabla 3,2Microcontroladores Motorola Existen cinco familias principales: la : -:1C05, la 68HC08 y la 68HC11 de 8 bits, y : :SHC12 y la 68HC16 de 16 bits;cada una de : -:! con una CPU diferente. Dentro de la familia 68HC05 existenms j,l :microcontroladores distintos,todos cons---.ios a partir de la misma CPU de 8 bits e -,---rrenRAM, ROM, puertos IIO y temporivard. Este tipo de arquitectura fue tomada por General Instruments para su CPU CP1600, y de estaempresasurgi, alrededorde 1985, una divisin que se ubic en Aizona y que tom el nombre de Microchip Technology,con el microcontroladorPIC como su producto principal.

ona un oir.De rcinen <esitan

.l 805 1
[t-ottOS J n es ac'n cuan -

Los microcontroladoresPIC se clasificanen tres grupos dependiendode la longitud de la pa..: - :es;algunostienen adems, puertosseriales, labrade instruccinque puedenmanejar(12,I4 anlogo-digitales y memorias EE- 16 bix), tomando las referencias12CXXX, - :-'..ertidores : l\f o EPROM como lo describelatabla.3.2. 16)000(, 12OO(y 18)OC( os microcontroladores de la familia HC08 ::.r puertos seriales, conversin A/D, interredes PLL, P'$7M, etc., depenrara CAN, --:, .:. io de la referenci,. Nota: Las X en estosnombres quieren decir que en esosespaciosse ubican diversos nmeros y letras,segn el tipo de integrado. Susfabricantes definen a los PIC como microcontroladores de 8 bits tipo RISC (Reduced Insnacon Set Computer Computadora con un conjunto reducido de instrucciones) de bajo costo,bajo consumode potenciay altavelocidadde operacin. No estnmuy alejadosde la realidad:ya estn en desarrollomicrocontroladores PIC de hasta 40 MF{z y el consumo de potencia es de 50

r-. fun,le Phi-

irlvaron .-'ptimie; ializa'iuccin ieo, imrmplio '

.:es de los microcontroladores de estaemhallan en la Universidad de Harvard 'e : -. se desarrollabaun proyecto para el De::r-nto de Defensade E.E.U.U. en el cual -,:abaun nuevo diseo en cuanto a la dis. :r e interaccinde la CPU con la memo,:al tom el nombre de arquitectura Har-

prctico curco sobre Microcontrotadores &kl

,.t #

Lad-c r,-=s [croco trt-rc Lo s LLr


PERIFERICOS

wK
20 \t Ptc16C54 20 1 K Ptc16C56 Ptcl6C6120 1 K 20 1 K Ptcr6c71 20 4K Ptc16C74 10 Ptc16C84 25 2K Ptc17C42 25 8K Ptc17C44 20 ,tc1 20 6F87; 1K 25 25 36 36 192
o
J

'//,' ."ttt* (.'

ia :s'
t

TMRO TlI,|RO TMBO TMRO TMRO, TMR.I , TMR2 64 TMRO TMR3 TMRO, TMRI , TMR2, TMR3 TMRO, TMRI , TMR2, TMRO, TMRl , TMR2 TMR2 TMRO, TMR1,
JI

' lo"l
sPt/t2clscl

! l.l

lz

1.5-6.25

pint 18-pin Dle18-pn SolC,20 SSOF 18-pin 20pnS SSOF 18-pinDIB SolC, 18-pin DIB 18-pin S0lC '18-pin 18-pin DIR S0lC 40-pinDIR 44-pinPLCC, 44 pin 18-pin 18-pin S0lC DIB 40-pin Dle44-pin PLCC, 44 pinOF pinur 40-pin DIB44-pin PLCC,44 28-pn DIP SolC 40-pin DIP SolC

1 2 2.5-6.25
3 4 12 4 1l 11
IJ

1 3 3.0-6.0 1 3 3.0-6.0
Q1

454

si

4K 192 128 8K 369 250

MSSP Usart

I l' ' l' I8ch I S i

-l,l

''l'"1 ll

3.0-6.0

1 3 2.0-6.0 33 4.5-5.5 2.5-8.0 22

5chsi

14

Pmldells de microcontroladores labla 3.3 Alaunos

microwatios a 32 Khz de operacin y 6 microwatios en modo de reposoo standby.

Estaempresa manejatresgrandes gruposde m crocontroladores RISC cuyasCPU llegan ha, La arquitecturade los PIC se basaen regis- ta los 32 bix.El primer grupo tieneuna arqu para lasins- tecturabasada en el 8051 de Intel con mem, tros con memoriasy busesseparados ria de programa ripo Flash. El segundo gru; truccionesy los datos,llamada arquitecturaHar' s: AT9 1, los cuales uard. La memoria y el bus de datos (RAM) son son los microcontroladores de 8 bits de ancho, mientras que la memoria portan compilador en C, emulador,etc. El '* (EPROM) y su bus tienen 12 bits. timo grupo lo conforman los microcontro-. doresAVR, de arquitecturaRISC y CPU de La tecnologade los microcontroladores bits, y mdulos USART, SPI, ADC, etc. En , prin: ha permanecido en constante evolucin en tabla3.4 se muestranlas caractersticas cuanto a tecnologade fabricaciny cualida- palesde algunosmodelos de estamarca. PIC de Los microcontroladores desofrecidas. a;,/ ltima generacinson mquinasasombrosas; /g PIC de tan por ejemplo se tienen proyectados solo 8 pines con conversor AID y memoria T_, Flash.Algunos llegan a poseerhasta 100 pi81 11.8-3.6 8K 3 AT91 M40800 nes, y segn la referencia,incluyen una buena 85 | 2.7-3.6 8K 3 AT91 F4081 6 variedad de mdulos internos que cumplen 4K 3 3212.7-3.6 4T9 1M40400 con una gran cantidad de funciones como 32 I 4.0-6.0 AT89C51 4Kt1?8 etc. En P\'M, comparadores, puertosseriales, 15 12.7-6.0 AT89C1 051 1K 164 una lista de algunosmola tabla 3.3 tenemos 15 12.7-6.0 2K1128 AT89C205t delos de estosmicrocontroladorescon alqunas de sus principalescaractersticas. ATl"i
\q,

Y)

Tabl a 3. 4 Microcontroladores

^\ {nb \"'rl

{ ln:. &f

prctico Microcontrotadores sobre curso

vi

PIC -: adores

Eosde mi.leganhasuna arquiLrnmemondo gruPo sos cuales . etc. El lrLrControla'CPU de 8 ,. etc. En la :i;as princi-

pIC ha La familia de microcontroladores conquistado, en los ltimos aos,un espacio imporranreenelos diseadores de toda clase de circuitosde instrumentacin, medicin y control, ascomo enrrelos experimentadores y estudiantes de esratecnologa, por lo tanto, vamosa dedicarparte de estecursoa explicarlos.
ATMEL ,CTES

prctico curco sobre Microcontroradores &Ot #

mide estos El crecimieirto de la participacin mundialha sido poenelmercado croconuoladores dispositivos de de estos sibledebidoa la capacidad cavams o<igentes, de lrs necesidades, satisfacer losingsnieros y tecnicos detodo el mundo.Estecreofrecicimientoambin sediment porlavariedad y tipos de memoria Alguda en suspresentaciones son: nasde lasrazones quejustificaronesa acogida . Sencillez de manejopor su juego reducidode instrucciones . Buenainformacin: notas tcnicas, proyectos en internet, etc. . Precioy disponibilidaden el mercado o Herramientasde desarrollofcilesy baratas la empresa Microchip tabrica entreotrosmude8erdeprodrosproducos,microcontroladores puitogeneral de arquitecnuaRISC (conjunto rebajoconsumo depotencia ducidodeinstrucciones), y una disuibucinintemaen dondela memoriade (RAM) se (ROM) ylamemoriadedatos programa sepaxados, cadauna con su en bloques encuentran (atuauraHarvardl. propio busde a@eso Ellosseclasifican dependiendo de la longitud de la palabrade sus instrucciones.Actualmente PIC son: lasues familias de microcontroladores 1. LlneaBase o bsica palabras del2 bit delongn de 14 bitsde longitud 2. RangoMedio: palabras Alto: 16 bitsde longitud Rango pdabras de 3. dela llneabsica tienenlasrefelos dispositivos rencias12C)OO( los de rangomedio l6ClOO( y se nombran como 17OOO( y los ms avanzados un p-ro. I SOOOCfigura4. 1.Cuandodesarrollamos PIC, debemos elegir con microcontroladores yecto msadecuado dependiendo de el microconuolador Estas direcamente suscaractedsticas. serelacionan que spuedanejecuar con cada con lasfunciones y su tecnologa de fabricacin. microcontrolador

1. 2. 3. 4.

Generacin de cdigo Depuracinde los programas Dispositivosprogramadores Terjetas de los productos de evaluacin

Todaslas herramientas de desarollo de Microchip operan bajo el entorno del programa MPIAB. Ias henamientas de generacin de cdi' go sonMPASM, MPIAB-Cy MP-Drive\l'ayru. ls herramientas parrdepuracindel cdigoson: PICMASTER@emulador In-Circuit, ICEPICT Emulador In-Circuit y el MPIAB-SIM o simulador de programas. Despus el cdigo de generado de la aplicacin,el dispositivodebeserprogramado. Microchip ofrecedos nivelesde programadores:el PICSTT\RTPlus yel PROMAIE II. Las tarjetas de demostracin permiten al usuarioevaluar la capacidad y disponibilidaddel dispositivoparauna aplicacindeterminada. Ellas son: PICDEM-I, PICDEM-2, PICDEM-3 y PICDEM-14A.

Arquitectura delosPIC
Podemosestudiar cada microcontrolador teniendoen cuentatresaspectos 1. El ncleo 2. Los perifricos especides 3. Lascaracterlsticas

El ncleo
Se refierea las caracterlsticas fundamentales serequieren bsica. panralizar su operacin tre ellasestn:
F.lcircuito oscilador. Es un circuito que se

z.apafagenerarla sealde reloj del disposi


Esta seal es necesariapara que el mi

Herramientas dedesarrollo

lador ejecute lasinstrucciones y paraque nen los perifricos. Entre los circuitosde cin ms comunesestnlos basados en en red RC y los de resonador.

ofrecen un amplio Microchip y otras empresas, (Reset). rangodeherramientas de desarrollo que permiten Fllsistemapara reanuclar Seusapara y depuracinde los progra- var al microcontrolador a un estado conocido. agl:varla elaboracin por lo general las Estas pueden dividirse en cuatro categorfas: esteestado seestablecen mas.

rr* #

prctico ttricroantotadores curso sobre

L\J U L Li 1

de inicio con que siempreempiezael siste--:ones :: \'con lasque un producto electrnicogaranti::. un buen funcionamiento de todassustareas. Flsla res:.rnsablede tomar la informacin de la memoria :: programa (instrucciones)para controlar la ope:.:in de todo el sistema.

e Miirama : cdi-

,yru.
io son: EPICT ;imulacdigo qralnaamadoiL riten al idad del da. Ellas

Los perifericosson los elementosque en realidad diferencian a los microcontroladoresPIC de un microprocesador.Ellos hacen posible la comunicacincon el mundo exrerior(puertosI/O, manejadoresLCD, entradasA/D, P'$?'M,etc.) y la realizacin de diversastareastales como tener diferentesbases de tiempo. Los principales perifericos de un microcontrolador PIC son:

EM-3 y

dor PIC nentales:

rules que arica.En-

re seutiliLspositivo. :rocontroue funciode oscila:n cristal,

En un sisre::-.:con microcontrolador muchasde las insrruc:.-,nesoperan sobre la memoria de datos. Para Permiten que el PIC recibay enen esta memoria, se requiere la ALU, de ve seales desdey hacia el mundo exterior.Ade-:irar .. :ual permite el desarrollo de las operaciones ms, se utilizan para vigilar y controlar otros disy lgicassobreella. positivos.Paradarle ms flexibilidad al dispositi--.-nticas vo, algunos pines se multiplexan con firnciones alternas.Esto quiere decir que en unos casoslas Existendos bloquesde memoria que se mismaslneaspueden ser pines de entrada/salida .:::n en estepunto: la memoria de programa,la o en otros casos, realizarotra funcin. : -"1 se divide en bancosseleccionables por proy Ia memoria de datos;cadabloque cuenta a-.:i-na, Se utilizan para establecer : - : su propio bus. La secuencia de las instruccio- bases de tiempo confiables,medir el tiempo en-=. estcontroladapor el contador de programa tre eventos,contar eventosexternos,etc. En los - ,- . el cual seincrementaen cadapaso,paraeje- microcontroladoresPIC pueden existir diferen:-:a las instrucciones grabadas en la ROM. tes tipos de temporizadorescomo: Timer0. Temporizador de 8 bits. Los mlcro- Timerl. Temporizadore 16 bits. ::roladores PIC tienen varias fuentes de inTimer2. Temporizador de 8 bits. =::.rpcin.Estasfuentesincluyen a los mdu, :erifericos. ' Cada mdulo CCP contiene un registro Cada instruccin de 16 bits qte opera como registro de caprura, = ::r'ide en un cdigo de operacin(OPCOcomo un registrode comparacin o como un re- : . que especificael tipo de instruccin, y gistro de P\fM de 10 bits.Estos mdulos son talescomo el - . o ms operandos que especificanla ope- muy tiles en distintasaplicaciones '.:. rn de Ia instruccin.En el siguienteejem- control de motores o cargasresistivas, compara, observamos el cdigo de operacin de la cin de seales y orras. ., ::uccin MOVL\X/ 06H : Estemdulo esuna interfaz serial para la comunicacin con otros 13 (btfs) 7 ... o I microcontroladores u otros periftricos talescomo memorias seriales,registrosde desplazamienro, , . CODE k (literal) conversores A/D, etc.

-.apara llenocido.En I lscondi'

1l\L\ :06

06H

instruccin cdigo operativo

Es una interfaz serialpara comunicarsecon otros disposi-

prctico curso sobre Miuocontrotadores &kl,t #

t,

tivos. Puede operar en dos modos distintos: SPITM I2CTM.


iilleriti nirfsf ; i i L'i5,\i} l" Este es srl'irli srlr.l'.i;r{l

cacin. Cuando el circuito se alimenta, el estado

de estosbits determinan su modo de trabajo.


i':,t/.'r'' t;; /lcso'il)L)l{. Cuando se alimenta el sistema, se puede generar un estado de resetgue lo obliga a llevar el contador de programa a la posicin inicial.

otro mdulo paracomunicacinserialtipo SSP

-.i remdulo universd il.','!.i'.i 1",t r. Sedenomina los tipos aslncrono. Esuno de dos ceptoruansmisor (elouo esel SSP). Puede configu- .[i'ou.'-rt Rrsrr {l]{.)ltj. Origina un estado de seriales depuertos lmo halfduplac. reset en momento en que se detecta una falla rarse el en modofull duplmo
en el voltaje de alimentacin.

i.cjert:nci;rs i'l':;o!raii'.Estemduloseusanormalmenteen conjunto con el mdulo comparador. Se puede entendercomo una red de resistencias que proporcionaun voltaje de referencia seleccionable. doscom{,o:nrr"r{,,r,"',r. Algunos PIC contienen Lasentradas a los anlogos de seales. paradores semultiplexan con pinesI/O. comparadores
i,i:rr'urrrli s ,'ii I ) rit: li /,','-'. Convierten una se-

'1.:rn:orizrdr\Y'htthtl,. Es un osciladortipo RC ubicadoen el interior del circuito integrado que no requierecomponentes externos. Se
utiliza para prevenir fallas catastrficas en operacin de un sistema,cuando el PIC se b

queapor alguna rezn. Tambin sepuedeuti


lizar pan temporizar o como detector de sos perdidos. fu1<do rie bajo -.{}{1srlr1ro dc potencia (52,r, En este modo de trabajo el oscilador del PI es desactivado y se presenta un consumo

al anloga en un dato digital de 8 bits.


{, ir!:"!,r.r'1{!rs. 11,/[ii* ltl /rs,Convierten unase-

nimo de potencia.Cuandoel sistema lo requi


re, el microcontrolador vuelve a su estado consumo normal. {.}scilatJor irtcrlo R(,. Cuando no se tienen querimientos exigentes de manejo en la

al anloga a un dato digital de l0 bits.


'\'i ;i ll {: l.i{i t}4r, .:r,*y,i;'t1r.t ;, iii:li ti}i i rs il,, c risi.;;i

r i i.l-"i. Estemdulo genera el control ,1l;r:i,-ii-. de tiempos para manejarun panel LCD. Thmbin proporcionael control para los pixelesde datosdel LCD.
l;l Algunos PIC poi'u':ri,r irurlti,ri,t*;r-:.lr'{- i j:.(r

sin del timpo, se puede utilizar una red como osciladorexternolo que permite un o muy econmico.
!rl ogr' ;rmi rc,i uscri al c{ cntro del c i rcuit <r

seenun puerto paralelode 8 bits. $ti.ib ;;s$i{;r}ii. $ :gr**tu:r ayudana disminuir Lascaracterlsticas especiales y a incrementarsu funcionael costodel sistema lidad y su flexibilidad. Los microcontroladores PIC de rango medio ofrecendgunas caractersobjetivos: ticasque cumplen con esos
] efmitgn li{ ' *'ii. "1; r li;r lr i r ii. ii. - ,, , i: , ,'. , - .P ilt:. n .i. , . - , 1. ' t lii r

{"'ir.uiti. Es la posibilidadde programar microcontroladores dentro de la aplicaci


circuito final. Esto se hace mediante ci neas: una para el reloj, otra para los da otras tres lneas para la alimentacin y el taje de programacin. Con todos estosfactores,podemos es

del ciertosaspectos que cadausuariopersonalice microcontroladorque va a utilizar para su apli-

cer un diagramade bloquesgenricode un croconoladorPIC, como el que se en la figura 4.1.

rrr" #

prctico Microcontotadores curco sobe

t*otrui.iijitui,'
I estado baio. nenta el resetqtJe rma a la
Bus dedatos

RAO RA1 RA2 RA3 RA4 RA5

stado de una falla


a o o

rdor tiPo r integraernos.Se ,casen la tC sebloruedeutirr de pul-

PUEBT0 n

r del PIC rsumo mr lo requieestado de

OSCl /CLKIN -]SC2/CLKOUT

MCLR Voo,Vss e tienen re:n Ia precina red RC te un dise{wfws*

rgramar los rplicacino nte cinco l. Ios datos Y in y el volperifricos Mdulos

Figura4.1Diagrama general debloques deunmicrocontrolador PIC derango medio

:mos establerco de un mire se muestra

, -,: ';tz sehan analizadolos requerimientos fun: .:-,-les del dispositivo, se deben estudiar orros i;.r::os como: tecnologa de la memoria, voltaje -. rango de temperatura de operacin, -racin, r:Jr-ncia de operaciny encapsulado. Microchip

poseeuna buenacantidadde opcionesentre las cuales podemos escoger la msindicada.

Dependiendo de la aplicacin y el modo de programacin, hayvariastecnologas paralamemo-

prctico curso sohre Microcontroradores &t*#

I
ria en los microcontroladores PIC. Estatecnologa de la memoria no afectala operacinlgica del dispositivo.Debido a los diferenres procesos de fabricacin y lasdistintastecnologfas, algunas caractersticas elctricas puedenvariar entredispositivos,a pesarde que tenganlasmismasfunciones y pines. Cadauno de los tipos de memoriaque estn en los dispositivos, haceque cada uno de ellos presente unavariedaden la respuesta de frecuenciayen lasopciones de encapsulado. Dependiendo de los requerimientos de la aplicaciny de la produccin,lasopciones propiasdel dispositivo pueden identificarseusandolas hojas de datos suministradas por los fabricantes. El tipo de memoriautilizado en cadadispositivo sepuedeidentificar en su nmero de parte por la primera(s)letra(s)as:

labla4,2Rangos pan cada devottaje tpicos tipode dispositiw

Memoria Flash
Estosdispositivos y son borrables elctricamenre se ofrecenen un encapsulado plstico de baio costo;puedenborrarse y reprogramarse.

0pciones derango develtaje de 0peracin


Todoslos microcontroladores PIC de rangor dio operansobreun rango estndarde rrolta Algunos modelospueden trabajarsobre rangosextendidosde voltaje (y rango reduci de frecuencia).

EPROM

L tabla 4.1 muestrala designacin para los posde memoriay rangos devoltajeen los mi 1. C, como en PICI6C)OO(. Estosdispositivos conuoladoresPIC 16C)OOCLos desi tienen memoriaEPROM estn en negrilla. 2. CR, como en PICI6CruOOC Dispositivos con memoriaROM En la tabla 4.2 podemos apreciar lases 3. F, comoen PIC16F)OOC Dispositivos conme- ficaciones dadas por Microchip paralos rroi moa Flah de los distintos microcontroladores. Esros resestncomprobados.

proEs la memoriaborrable(EPROM: Erasable grammable ReadOnly Memory)paraque los diseadores renganflexibilidad en el desarrollo de los prototipos.

Variedades deencapsilladCI
Dependiendo de la fase de desarrollo de proyecro, se debe usar uno de los tres ri de encapsulado. El primero esun disposit
con una ventana de borrado. Normalm

ROM
Microchip ofrecedispositivosen versinROM (ReadOnly Memory)la cud,es la apropiada para utilizarse en casos de produccinen serie, ya que esla mseconmica del mercado.

poseen un encapsulado cermico y seusan la fasede desarrollo, debido a que permi borrar y reprogramarla memoria de ma muchasveces.

El segundotipo de encapsulado es el de bajo cosro.Por ltimo estnlos diiposi vos DIE (dado) los cualesse caracrerizan no tener encapsulado. Seutilizan en aplica< nesde muy bajo costo donde el espacio de tarjetasdeba ser mlnimo. En la figura 4.2 Tabla 4.1Tpos y rangos dememoias devotkje muestranlos tres tipos de encapsulados.

ffiffi

rr*

prctim curco e Micrwnfrotadorcs

'l 1., r r -i-. LL- SL Lr 1

EI

E
:tsPositivo nlente y

: E P ROM

vez. Si el programa se daa o se riene que cambia hay que programar e insralar en el circuito un nuevo dispositivo.

de baio

Un microcontrolador tipo FLASH permite modificar el contenido de su memoria mediante una cargaelctrica.Esto significa que el sisremapuede ser diseado para programacin dentro del circuito. Como no requieren de una ventana de borrado, estos dispositivos tienen encapsulado plstico, lo que los hace muy econmicos.

angomee voltaje' ,bre unos reducido

=gura4.3Principales encapsulados delosmicrocontroladores PIC

ti'ara los Itrsmicrosiqnadores

Iasespecivoltajes i."'s Estosvalo-

'rsin borrable UV de dispositivos de me::,r de programa EPROM es ptima para el ..:rollode prototiposy programas piloto. Esiispositivospueden programarse una y orra . La cantidad de tiempo requerida para bo: completamenteun dispositivo [fV depende .e longitud de onda del haz, su intensidad, :ncia entrela fuentey el microcontroladoy .: recnologa del dispositivo(qu ran pequeson las celdas de memoria). \t-ra: las bombillas fluorescentes y la luz del emiten luz ultravioleta con una longitud -. :- onda que permite el borrado.Si en un dis: ,sitivo de estetipo no se protege la ventana, ::ede ocurrir, con el tiempo, que lasceldas de . memoria se borren. El tiempo de borrado - n una luz fluorescenteesaproximadamente -- rresaos,mientrasque con la luz del sol se -=quierede aproximadamenteuna semana. .:a prevenir la prdida de los datos, se debe - .ocar una superficie opaca (p. .j. cinta ais.::e) sobrela ventanade borrado.

Un dispositivo EEPROM permite que su memoria seaborrada mediante una cargaelctrica. Esto significaque el sisrema puededisearse para que el borrado y el reprogramadopuedan hacersedentro del circuito. Thmpoco requierenvenrana de borrado y se encapsulanen plstico.

Los dispositivosROM tienen su memoria de programa establecidadesde el momenro de su fabricacin. Como ella no puede cambiarse,estos dispositivostienen la presentacinen plstico ms econmica del mercado.

oilo de un i rres tiPos Cispositivo 'rmalmente ,-se Llsanen .e permiten de progra-

Estaopcin permite el desarrollode tarjetasmuy pequeas. La fabricacincon DIE requiereequipos y conocimientosespeciales, lo que implica que el nmero de casas fabricantesque soporran estatecnologasealimitado.

:s el plstico os dispositi.;rerizanPor en aplicaciospaciode las gura 4.2 se uiados.

Paraalgunosusuariosque incorporen la tecnologa OTB debido a un cdigo fijo para susproductos, Microchip ofrece dos encapsulados especiaIes:la programacinrpida para produccin y la programacin serialrpida para produccin. Ellas lespermiten a estos usuarios ahorrarmucho tiempo en el procesode fabricacinde susproductos. a. Programacin rpidaparaproduccin (QTP' Quich Turn Production)

:ispositivosOTB r. encapsulan en plstico :.:rliten que el usuariolos programeuna sola

prctico curso sobre Microcontrotadores &rr*t #

Microchip ofreceesteserviciode programacin para ordenes grandes de produccin de empresas o usuarios,que no poseanun medio masivode programacin de MCU. Estos dispositivos sonidnticosa los OTP perocon todaslas posiciones de la EPROM, y las opcionesde configuracinya programadas. b. Programacin serial rpidaparaproduccin (SQTP: Serialized Q"ith ThrnProducon) Microchip ofreceeste servicio de programacin en el cual a cada dispositivo sele programa un nmeroserialnico.Estos nmeros seriales puedenseraleatorios, pseudoaleatorios o secuenciales. Estetipo deprogramacin sehace para que cadadispositivotenga un nmero nico que pueda utilizarsecomo cdigo de entrada, passwordo nmerode identificacin.

PROGRAMADORE$ Y ENTRENADOHES (Trainers|


Losprogramadores sondispositivos quepermiten la memoriadelmicrocontrolador el prograbaren en la computadora. grama escritoy ensamblado Algunos programadores trabajanconectndose al puerto paralelocomo el K-220 de CEKII figura 4.4; y otros,conectndose d puerto serialcomo los que semuestran en la figura 4.5. Un enuenadores un dispositivoque permite rahzaruna serie de prcticas con microconuoladores.Secomponede una seriede mdulosindepeninterconectar dientes quesepueden entresly conlos cuales sefacia el aprendizaje ms de las pncticas

porelpuerto Figun4.5 Prognnadores a) PrognmadorK-224de PIus de O PICSTART c)Prognmador Clear View

comunesy fundamentales que sedeben asi en estatecnologla. El K-148 de CEKII


4.7, esun entrenador que tiene mdulos como

de manejode display de sietesegmentos, la quisicin de variables anrlogas y serides, entreotros.

para Hgun46 Entrenador microcontroladores PlC, porpuefto paralelo, Figun4.4Progranador K-220 deCEKIT

<rr"

prctico curco sotue tticrocotttotadoes

r
*

"F"
?t,
FT

TE E

E Ut

serial r : ouerlo , .,-224 deCEKIT ,-s deMicrochP Mathias E'/tew [.'en asimilar -EKIT, figura d.'os como el n.ntos' la adtmunicaciones

tE

$Eufiu

referencta n-':s PlC, deCEKIT K-l48

es una Esta familia de microcontroladores de lasms difundidasy utilizadasen todo el incluyenlascomumundo. Susaplicaciones automoel control,la electrnica nicaciones, una introtriz, etc.En estaleccinharemos ms importantes duccin a sus asPectos divididos,sus como lasfamiliasen que estn susventaj"t y en general,dacanactersticas, remosun rpido vistazoa estatecnologa.
prctico Microcontrotadores sobre curso &ktnt #

Los Ln [cruco trr-t'o Lati.o ru.sLVloto roLa


Los microcontroladoresMotorola tienen la reputacin de ser muy confiables,fcilesde programar y, ante todo, ser unos de los ms utilizados en todo el mundo. Y no es de extraar ya que estafirma es lder en la fabricacin de semiconductores, especialmentemicroprocesadores, microcontroladoresy productos de alta tecnologa. La cantidad de familias y referenciasque poseenestosdispositivospermiten que los diseadores puedan escogerel ms apropiado para cada tarea especfica que se deba realizar.Como dato curioso, pero que a la vez confirma la calidad y versatilidad de estos microcontroladores, es que en un automvil moderno se encuentran hasta50 de ellos,realizandodiferentesfunciones como el control de frenos (ABS), en el sistema de seguridad, en lascomputadoras de viaje (GPS), en el control del aire acondicionado. etc. Las familias de microcontroladores Motorola msconocidas son:68HC05, 68HC08, 68HC11, 68HCl2,68HCl6, 683)C(, MPC5)O( y la familia de ncleo M (Core M). Cada una de ellas tiene muchas referenciasdistintas, las cualespueden variar por el tamao de la memoria que poseen,el nmero de pines, caractersticas especiales como convertidores A/D, temporizadores, interrupciones, etc. Como un ejemplo de esta gran variedad, la familia de microcontroladores 68HC05 poseems de 100 miembros. Como el tema estan amplio, en leccionesposteriorestrataremosprincipalmentela familia 68HC08, que es la ms indicada para iniciarnos en esratecnologa y haremos una breve descripcin de las familias 68HC11 y 68HC12.

an as corresponder a un dispositivo 100: compatible. Por ejemplo, hay un microcontr-lador 68HC705KJl, otro 68HC805KJl y or:. 68HC905KJ1. La diferencia radica en que : primero (705) tiene memoria de programa tir,. EPROM, el segundo(805) memoria de prosr.ma tipo EEPROM y el tercero (905) memor-. FLASH. Lo que s queda claro esque existeu:; gran variedad de referenciaspara escoger;es:implica que el diseadordebe estudiara fonc: para decidirse por la ms adecuada.En la figura 5.1 se muestra el diagrama de pines de u:--: de estosmicrocontroladores.
RESET OS C l OS C 2 PB3 P82 VDD VSS PA7
tR0/i/PP PA(] PA1 PA2 PA3 PA4 PA5 PA6

Figura5,1 Diagrama depinesdel68HC

Los aparatosen que se pueden enconr estosmicrocontroladoresson muy variadosrramasbien diferentes.Estascategoras inclur dispositivospara aplicaciones auromorrices,p ductos de consumo, comunicaciones,comF tadorasy aplicaciones industriales,enrre orr A iontinuacin haremosuna brevedescripcic de algunassubfamiliaso divisionesque tiene familia HC05. Es un dispositivo de propsr generalcuyas principales ventajasson un deroso temporizador y una memoria para

Esta es una de las familias de microcontroladores ms populares en el mundo, con ms de 2 billones de unidades vendidas. Poseeuna ventaja adicional y esla compatibilidad de sus programas con la familia HC08, lo que permite hacer migracin de diseos hacia dispositivos de ms alto rendimiento de una manera fcil y rpida. Cuando se especificauna referencia en particular, sta puede sufrir algunasvarianresy

tos tipo EEPROM de 256 posiciones. Or:


caractersticas incluyen memoria de progra desde4K hasta32K, memoria RAM desde1 hasta528 bytes,S canalesA/D, comunicaci, serial no sincrnica.erc. Son elementos propsito general cuya principal venta.iaes temporizador de l6 bits, el cual estacompa do por un mdulo de captura y un mdulo

&t,: #

prctico curco sobre Microcontroradores

ts--

I t- l

I r

)0o/o ttrootro e el . tipo 0granoria e una ; esto iondo figt uno

y1c705KJ1 rcontrar idosy en rncluyen proices, comPuue otras. scripcin ,etiene la

propsito )n un Por para dares. Otras Programa desde176 .unicacin rnentos de ntaia es su acomPaamdulo de

:rmparacin. Adems, ofrece tamaos de me::oria de programa desde4K hasta 16K, que lo :.i paci tan p ara r ealizartareasbastante complej as. losee interfazde comunicacinno sincrnicaSCI Seri aI CommunicationsIn terface), con velocidad :.'ustable por programa desde75 Hz hasta 131 l{Hz; tambin incluye una interfaz SPI (Serial ?:riferical Interface) de 4 hilos y alta velocidad. lI u,atchdog timer o circuito de vigilancia tamimportantes. :in es una de sus caractersticas Estasson las famide ms bajo costo y vienen en encapsula-:. ios de 20 y 16 pines.El tamao de su memo:ia de programava desde0,5K hasta2K, con ::emoria RAM de 32 hasta 128 bytes.El mi::ocontrolador 68HC705KII es el ms eco:mico de todos. Es una familia de microcontrolado:=sde propsito generalde 28 pines, poseenme::roria de programa desde2K hasta 8K con meroria RAM desde96 hasta I92 bytes.Tienen co::runicacin serial no sincrnica, temporizador te 16 bits con mdulo de captura y de comparade :in, convertidor A/D de 8 bits con 4 canales =ntraday capacidadde manejar alta corriente en pines. "Jqunos Su principal caracterstica es que rosee un controlador para manejar una pantalla ie cristal lquido o LCD, con un tamao que va j:sde 8 caracteres por 4 filas hasta 16 caracteres :or 60 filas. La memoria de programa va desde -,.6K hasta24Kcon memoria RAM de 32haxa -68 bytes.Incluye temporizador de 16 bits con ::dulos de captura y comparacin, comunica-in serialsincrnicav no sincrnica.

l B 01 VSS OS C l OSC2 / PTA6 VDD PTBT PTB6 PTB5 PIDT PTD6 PTEO PTBl PTB2 PTB3 PTB4

Figura5.2 Diagrama depinesdel68HC908JK3

Las principales subfamiliasde la HC08 son: La principal caractersticade esta subfamilia esque incorpora un controlador de bus multiplexado que permite una avanzadacomunicacin serial.Una aplicacin tpica de estesistema esten los automviles.donde muchos microcontroladores se pueden comunicar sobre un bus de uno o dos hilos para el diagnstico de cada una de lasoperaciones del vehculocon un riesgo mnimo de interferenciao ruido en los datos. Esta subfamilia contiene una inrcrfaz CAN. sta es un protocolo muy popular en redesde automatizacin industrial y redes automotrices. Esta familia es muy recomendada para aplicacionesde propsito general, cuenta con memoria FIASH, convertidores A./D, puertos serialessincrnicos y no sincrnicos, PLL, temporizadoresy P\7M. Estasubfamiliabrinda unaspoderosas caactersticas y esespecial para aplicacionesde propsito generaldonde se requierandiseosde bajo costo.Seencuentran disponibles en encapsulados de 20y28 pines,memoria FIASH o ROM, conversoresA"/D, entre otros. las versiones JK, por ejemplo el 68HC908JK3, son parte de ella Estassubfamiliasincorporan un sistema avanzado de P\WM de 6 canales y 12 bits, convertidores ND y puertos seriales, que las hace idealespara el control de motores trifsicos. Estasubfamilia posee integradoscon memoria FTASH de 2 hasta8Kbytes,196 bytesde memoria RAM, un temporizador de 2

:'ros microcontroladorespermiten una fcil mi=acin del cdigo desdeel HC05, poseenuna -. interna hasta de 8 MHz, una pila de -locidad -- bits, instrucciones de multiplicacin y una :::emoriade 64Kpara programay datos;su dise--' minimiza el consumo de potencia.Hay ver:-,rnes con memoria FTASH y EPROM. En la foura 5.2 se muestra el diagrama de pines de *:o de estosmicrocontroladores.

prctico curso sobre Microcontrotadores &<t't #

Lostnict
canalesy 16 bits, cuatro canalesde conversin A./D, interfaz de comunicacin serial no sincrnica y ms de 13 pines I/O. :..-:;:1 :,1 ;1irii'= l. Fsa subfamilia cuentacon 2K de memoriaFIASH progmmable I 28 dentro del sistema, bytes de memoria RAM, un temporizador de dos canales y 16 bin, y un volaje de operacinde 1.8V
VDD PD5/SS PD4lSCK PD3/0Sl PD2lMISO PD1fixD PDO/RXD tR0 XIRO

'qn

'{t

'iilXt i i ';+,r+l,i,
Esta es una familia de microconuoladores de 8 bits de muy alto rendimiento, su arquitectura escompatible con la HC05 y su programacinescompatible con la familia de microcontroladores de 16 bits 68HCl2; esto hace que la migracin de diseosde una familia a oua seabastantenpida. Dentro de sus caractersticas ms sobresalientes seencuentran: . Ha sido optimizada para un bajo consumo de potencia . Posee un sistemade interrupciones muy avanzado . Muchos de sus miembros poseen memoria

RESET PC7/47 tD7 PC6/A6/06 PC5/A5/05 PC4tA4/D4 PC3/A3/03 PC2tA2/D2 PC1/A1/D'l PC0/A0/00 XTAL EXIAL STBB/BW E STRfuAS MOD/LIR

EEPROM . [s ultimos miembros familia incluyen deesta un


coprocesadormatemtico con Unidad Aitmtica Lgica (ALU) de 16 bits para rpidas operaciones de multiplicacin y divisin . Un registro acumulador de 16 bits, o dosde 8 bits . Seismodos de direccionamiento I familia 68HC11 poseeun miembro llamado 68HCl lE9, el cual fue el primer microcontrolador en incorporar memorias EPROM y EEPROM en el mismo circuito integrado; adems, incluye otras cuactersticascomo son 12K de memoria EPROM, 512 bytes de EEPROM,5I2 bytes de RAM, interfazSCl, convertidorA/D de 8 canaleslS bits y 38 pines de entrada./salida. Este microcontrolador esmuy utilizado por los experimentadores en robtica. Dentro de los 68HCl1 se tienen seisprincipales seriesde microcontroladores; todas cuentan con puertos seriales SCI y SPI, memoria EEPROM yADC; ellasson:

Figura5.3 Diagrama depinesdel68HC"

'' FuelaprimeraencombinarEEPRolI yEPROM en un solo circuito integrado. ,1:-1i : 1 ; Tienen buena capacidad de pines I O, memoria RAM de lKy un bus de 5MHz. ,.,;: i: . ; j. . '.. Son dispositivos muy poderosos;el 68HC1lK4 y el 68HC1lKWl ofrecen alta velocidad, MMU (unidad para el ma nejo de memoria) y P\lM. ;:.ri ii ;: Esta serie ofrece PLL, buena memoria y tres puertos seriales. En la figura 5.3 sc muestrael diagramade pines de el microcontrolador MC68HC11A8.
.; .:i J;ri ,-:1i i q rt ? tl -'

Este es un poderoso microcontrolador de I bits y segn Motorola reune lo mejor d

68HCll y mucho ms.Entre susprinci


caractersticas se encuentran:

. Bajo consumo de potencia y operacin a ba voltaie . MemoriasFlashy EEPROM en un solo c {i l i i.r Estaserieofreceunaalternativaecon'il,i mica para aplicacionesdonde no se requieran funcuito integrado .Instrucciones ciones avanzadas. ni mucha cantidad de memoria. de lgicadifusa(Funy Logicl

&<1r,, #

prctico Mi*ocontrotadores curco sobre

l-

leorta
' : -. : datosde B 16 bits . : rue\'s instruccionesadicionalesa las ya del68HCl I - :.-.idas . - ..:id Aritmtica Lgica (ALU) de 20 bits . bix :.,'erridorA/D de 8 canaleslS
. - -.r:\\f

l28K de flash EEPROM, 2K de EEPROM, 8K de RAM, dos conversores A/D, dos temporizadores de 8 canalesy 10 bits de resolucin, filtro pasabajo, mdulos CAN, cuatro canales P\WM, mdulo contador de 16 bits, interfacesseriales SCI, SPI, I2C, etc.

miembrosde la famiJos de los principales .SHC12 . son el 68HC8l2A4 (A4) y el (832). Ambos se basanen una :-C9l2B32 - - i L ms una seriede mdulos perifericosadi: :-: .s. EIB32fue el primermicrocontroladorde . r'i.-icon memoria FTASH EEPROM en su in-:: :. En la figura 5.4 se muestrael diagramade microcontroladores. - .=. de uno de estos son Susprincipalescaractersticas K 4 K de EECPU de 16 bits,l de RAM, --: (SCI) y una interseriales . a,.,r\f, dos interfaces -,- ,,:ial perifrica (SPI),un temporizador y con::: lresA/D, Tmbin poseeuna CPU de16 jl :. K de flashEEPROM, lK de RAM, 768 ' ,-,..de EEPROM, interfaces SCI y SPI, un temA/D, y PVM de 8 canales, conversores :, :-udor canales. -: --rtro CPU de 16 bits, altamente HC11, ALU de 20 bits, ::patible con el -

Thmbin sebasaen una CPU de 16 bits.Su conjunto de instruccionessoporta lenguajesde alto nivel. La CPU de 16 bits es compatiblecon los microcontroladores HCI 1, algunas de susprincipalescaractersticas son: ' Funciones de procesamientodigital de (DSP) seales . 1 Mbyte de espacio para memoria de programa . 1 Mbyte de espacio para memoria de datos de propsito generalde 16 bix ' 2 acumuladores . 3 registrosndice de 16 bits ante interrupciones ' Rpida respuesta . Mdulo CAN . Versiones de i6, 20 v 25 MHz . Convertidor A/D Lasprincipaiesvariaciones de la familia HC16 son: Es la ms adecuadapara aplicacionescon mucha memoria y que utilicen comunicacionesseriales y funciones anlogas. 'Esta familia integra en los circuitos memoria FLASH o ROM, unidad de procesamientode tiempo, tres interfacesseriales (dos SCI y un SPI) y convertidoresA"/D. Son de bajo costo, memoria FIASH, mdulos seriales y funciones anlogas.

Et 68HC11

IROM I/ pines ,\lHz. r\. PodeI-1 ofrea el malena me-

ryrF
': 2 t 3 " ;; r5

Pueo 0[C

Puedo S

tj:"= A

:: i.6 a

ua 5.3 se rocontro-

lor de 16 neior del rrinciPales

l=
vss voo
Puedo t

cin a bajo rn solo cir=t Logic)

Estosposeenuna arquitecturaRISC de32 bits, instruccionesde 16 bits, permiten la emulacin graciasa su arquitecturainterna y poseen un diseo para bajo consumo de potencia.

2832 Tienen arquitectura de 32 bits, reloj a 40 MF{z, Fgura 5.4 Dagrama de pnes det6BHC91

prctico curso Microcontrotadores sobre &<t't

&

&d

LUtoi-oL LcsLnlcrocotri-roLad.otcs oLa


unidad para el trabajo de operacionesde punto flotante, interfaz para la emulacin, etc. bladoresy depuradores.Todos estos element permiten desarrollar, monitorear, probar y dep-rar su cdigo, para que las aplicaciones funci.nen bien y rpido. Existe una gran cantidad ;: modelos, los cualesse ajustan a las necesidade. figura 5.5. presupuestos disponibles,

Estos microcontroladores estn diseadospara soportar lenguajesde alto nivel, cuentan con 16 Mbytes de memoria de programa,poseenun bus de dinmico de 8 16 bits,y vienen en versiones 16MHz, 20MHZ 25 MHz. Las principales subfamiliasde estacategorason:

Algunos de estosdispositivosson de b costo, pero a pesarde ello ofrecenmuchasve:.tajas,como por ejemplo, capacidadde emu..cin en el circuito de la aplicacin aunq-: para apli- esta tarea no se ejecute en tiempo real, es :Son subfamiliasespeciales cacionesdonde se requiere mucha memoria, gran ayuda para agilizar el trabajo y dismin:-y mdulos avanza- el tiempo de desarrollode los programas.Ot:cuentan con puertos seriales dos de temporizacin; la 68CK338 cuenta ade- caractersticas son: ms con un reloj en tiempo real y un mdulo temporizador de 20 canales. Las Ambiente de desarrollo totalmente se componen de dispositivosdibajo'!7'indows . seadospara trabalarbajo condicionesatmosfeSepuede examinary modificar la memoria. ricas complicadas,al igual que donde se requieregistrosy los pines de entrada/salida . (puntos de parac ran altas velocidades,comunicaciones seriales, Acepta hasta64 breakpoints redesCAN y sistemas sofisticados de adquisicin . Diferentes modosde ejecucin en pasos o de con. . desdemltiples fuentes. ProgramamicrocontroladoresOTP y EPRCI . Conexin seriala la computadora independientesde Motorola y muchas empresas desarrolloelectrnico,tienen disponibleuna gran variedadde herramientaspara trabajar con estos dispositivos.Entre ellasse cuentan, emuladores, lgicos, programadores,tarjetasde analizadores en lenguasimuladores, compiladores evaluacin, je C, sistemas operativosen tiempo real, ensam-

lderen el dCEKIT S.A.,comoempresa


o y fabricacin de material didctico, tiene c ponible un sistemade desarrollomuy econ: coy fcllde utilizar parala familia 68HC908Ji figura 5.6, crtyaconstruccin, ensamblajer-'lizacin sernexplicados en detalle en uno dr proyectosque forman parte de estecurso.

(f

parael 68HC05 deMotorola Figura5.5 Sistenade desanollo

parael Figura5.6 Sistema de desarrollo CEKIT

&ictr,i.

prctico sobre curco Microcontrotadorcs

lIO S

:Purciodde y Jes

--\,,

/l

baio
i vennrulalnque es de ninuir . Otras

reg,rado los t-ria, : parada) ie corrido

EPROM

:n el disetienedis<conmi-

ceoBJK3'
:hie Y utiuno delos so. -rr

, -icrocontroladot 68HCgO8JK3

Daremosun vistazorpido a estas tres marcas que tambin son ampliamenteutilizadas, algunas por su potencia,otras por su facilidadde manejo. De cualquier manera, seconstituyen en excelentes opcionespara el desarrollo de proEl microcontrolador ductoselectrnicos. 8051 de INTEL y lasversiones que de l se derivan, han obtenido en el medio industrialun xito indiscutible, losATMEL son muy utilizados en mdicas aplicaciones y en redes de automatizacin, y los BASIC Stampson muy apetecidos por la facilidaden su programacin.
prctico Curso Microcontroladores sobre &fr(frT"^
A *

1 57 7 \,2

,/,^\

y Bllsl S'i-airLr LosLnlcL'ar:oLri-Lolad.cr.es'lt LtrEL iL

gO Intel propuso el A comienzosde los "nos modelo de microcontrolador denominado 8051. Esta primera versin tena tres variantes: el 8051 propiamente dicho, dotado de una memoria ROM interna programada en fbrica;el8751, equipado con una EPROM; y el 8031, desprovistode cualquier tipo de memoria permanente (ROM). Esta primera seriese complet rpidamentecon la versin 8052. A este ltimo microcontrolador, muy parecidoal 8051, se le aadi un perifrico (un tercer temporizador) y 128 bytes de RAM interna.Tambin existeuna versin del 8052 que contiene un intrprete de lenguaje BASIC en su memoria ROM. fu naci la famosafamilia 51, la cual secomplet con otros miembros. Todos estos microcontroladoresse han concebido bajo un mismo ncleo. Esta caracterstica motiv a varios fabricantes(SIEMENS, MHS, OKI, PHILIPS, etc.) a firmar acuerdosgraciasa los cuales pueden fa-

Figura PHILIPS. 6.1 Microcontroladores Suncleo esel 80:' bricar microcontroladoresbasadosen la mism. arquitectura 8051 o a producir nuevasversione , mejoradasdel mismo circuito integrado, inco:porndolesnuevosperifericos,figura 6.1.
,]i "I il

En la figura 6.2 seaprecia el diagrama de blcquesy el diagrama de pinesdel 8051. En . sepuedeapreciar la CPU y una RAM internde 28 bytes;adicionalmente hay que disti:guir aqu la posibilidad de direccionamien:.

(1991) de microcontroladores MCS-51 Gama de INTEL

1.," %-) ffi


rZu)

4.r)
tt,/ <'< 3.5a 12 3.5a 12

"#
S\ ^q9 ,/ ,.$" z/

//

q.o.

"\9' \-

Versin NMoS

y \1:Posibilidad desalidas PWM, entradas concaptura 7 puertos (1991 Gama de mcrocontroladores SIEfUEilS

8 entradas analgicas deI bits; 4 saldas PWM 4 entradas con captura; 4 niveles deprioridad de interrupciones 12 entradas analgicasi I punleros de16 ,,b looca 21salidas PWM unidad aritmtca de16brffi 4 5 entadas con capfura; 2 puertos serie; programable de16,r& WDT
RAM interna de2.25Kbconvertidori/D de 10 ,lls

80c451 80c592 80c528

12y 16 16

3+WDTC/D 8U10 bfic 2 salidas Pl/M e interfaz de busCA

y 24 3+WDT 16,20

y algunos Tabla 6.1 Gama de microcontroladores 8051 der,z

&krr,I.

prctico sobre Microcontrotadores curco

Todos los fabricantes tienen disponibleslosmicrocontroladores 8051, 8052 v

a et8051 r misma rersiones o. incor.1.

ra de blo51. En l lf interna ue distinrnamiento

T 2 P1 .0 T zEX P1 .1 P1 .2 Pl.3 Pl.4 Pl.5 P1 .6 P1 .7 RST RXDP3.O TXDP3.1 ItrlfOPS.Z

E 8 neso patillas.Algunos los ofrecen en otros encapsulados. Dentro de sus pines podemos destacar el pin M. el cual es una entrada que permite configurar el microcontrolador para sistemascon buses externos. Poseetres puertos: el puerto 0 cuyas lneasson de colectorabierPO P2 P1 P3 TXD RXD to, el puerto 1 quien posee resistencias internasde Direcciones/Datos pull-up, el puerto 2 tamvcc binconpull-upy el cual esutilizado durante el PO.O ADO accesoa la memoria externa. Por ltimo est el PO.1 AD1 puerto 3 que poseefunciones adicionales as: PO.2AD2
PO.3 AD3 PO.4 AD4 PO.s ADs PO.6 AD6 PO.7 AD7

t H r*r,.rrionesCMOS..,.nDIP de 40 piEE capsulado

\ \ I \

fupp ALVPMG
PSEN P2.7415 P2 .6 414 P2 .5 Al3 P2.4A12 P2 .3 A 11 P2.2A10 P2.1A9 P2.0A8

mT]ps.
T0 P3.4 T1 P3.5 wR p.0

no:.2
TAL 2 XTAL 1 VSS

' P3.0 RXD entrada de interfaz serie ' P3.1 TXD salidade interfaz serie . P3.2INTO entrada para interrupcin externa para interrupcin externa ' P3.3lfl.nttada P3.4 T0 entrada de contador para el tempori' zador 0 . P3.5 Tl entradade contador para el temporizador 1 'P3.6 \7'-R salida de escritura de la memoria externa . ffi salidade lectura de la memori"."r.rn" En una leccinposteriorexplicaremos en detalle estemicrocontrolador.

y depines Figura 6.2Diagrama debloques del8051 Je memorias externas, en esos casosuno de ius puertos debe utilizarse en esa funcin, :ambiando su caracterstica como puerto a bus :\terno. El 8051 contiene, entre otros, un ruerto serial y dos temporizadoresde 16 bits. ln la tabla l.l se encuentranalgunos de los :rodelosms representativosde esta familia.

i*;; i qr:tr;r Ifiri{ir*$ Arfr4HL :'fi Losmicrocontroladores ATMEL, figura6.3,


han tenido una gran acogida en el mercado; de ellos se pueden destacartres familias, la primera est basadaen el 8051, la segunda es la AT91 ARM Thumb y por ltimo, los AVR. Veamos ahora un poco de cada uno de estosgruPos.

JrigldebusCN derivadw l Y algunos

prctico curco sobre Microcontrotadores &kt

,.t #

y L:-ISL tl{fEl, lfLtLEL LcsLnlcrccLrtrcld-ctes St-anir


RESET PDO PD] XTAL 2 XTAL 1 ( r NT 0 ) PD2 PD3 (T0)PD4 PD5 GND VCC P B 7IS C K ) PB6(t\4tS0) P B 5(t\4tS 1) PB4 PB3 P82 P B 1(A l N )l P B 0(A tN 0) PD6

tan con osciladores internos, temporizadores, UAR SPI, resisten cias depu Il-up, P\X44, ADC, compar.doresanlogos, etc. Dentro de los ms representa:.vosestn losATtiny 10, 11 y 12, microcontrolad-resFLASH de 1K de memoriade progralna,64 h:, de RAM y programables dentro del circuito.

La empresaParallax Inc. produce estos micrcontroladoresque son muy potentesy pose. _^^. VCC unas herramientasde programacin que i. P B 2{T0) (XTAL 1) PB3 P B r (tN T0/A |N 1) (XTAL hacenmuy Fciles de manejar.Con ellosel dis. 2) PB4 (A tN 0) PBO GND ador no requiere de conocimientos avanzaC'. en electrnicadigital, ni en microprocesador. ATMEL AVR Figura6.3 Microcontroladores ni en el desarrollode programasen lenguajee. samblador,entre otros. Por estarazn estnsie: do ampliamenteutilizadospor estudiantes d., ATMEL Ofrece una lnea de microcontrolado- de el colegiohastala universidad,por aficior-: resbasados en la arquitectura8051, con memo- dos, tcnicose ingenierosde diferentesramas adems, sehan popularizadomucho en el ca: ria de programa FLASH dentro del circuito inpo de la robtica experimental. tegrado, al igual que versionesOTP.
rt I Tt)

Al:9 1 son microcontroLos microcontroladores ladoresde 32 bix lo que permite el desarrollode protocolosde comunicacin,compresinde datos y control. Cuando se construye un producto electrnico alrededor de un ncleo ARM se garantizala durabilidad v calidad del mismo. AI91 son muy apeteL,osmicrocontroladores de bajo consurnode potencia cidosparaaplicaciones y otras en tiempo real; se han hecho aplicaciones muy exitosas en automatizacinindustrial, dispositivos MP3, productospara la adquisicinde datos, de redes. equiposmdicos,GPS y sistemas La serie Af91 cuenta con un amplio conjunto de herramientasde programacin de alto nivel, como compiladoresde lenguajeC, emulaoperativosen tiempo real. dores y sistemas

Los BASIC Stamp son pequeascomFtadorasconstruidasen una tarleta de circu.: impreso, figura 6.4 y st principal caracte:. tica es que ejecutanprogramasescritosen lenguaje muy similar al tradicional lengu"

BASIC. llamadoPBASIC.Su forma de r. bajo es muy simple:segnel circuito qu. escribe su p: quieia controlar, el diseador
grama en la computadora,lo compila y lo . . va hacia el microcontrolador a travs de cable de conexin que se ha preparado p: viamente. El microcontrolador recibe dic: instruccionesy las almacenaen una memc

de 8 bits cuyasinstruccioSon microcontroladores nesseejecutanen un solo ciclo de mquina. Cuen-

BASIC Figura 6.4Microcontroladores "<:ar

&kro.i. #
E-

prctico Microcontrotadores sobre curso

l rr1 1 -l r.

.\RI,
:rPara3ntatiolado* hytes

mtcroPoseen 1uelos eldiseLnzados ;adores' en,raie n siendesrres J'icionarmasy, ,el cam-

... .1edonde las lee para ejecutarlas construido con tecnologade montaje super, _..-:]ente. ficial, lo que significa un ahorro de espacio muy importante en la aplicacin final. En la figura , : \SIC Stamp I II incluyen un microy 6.6 se muestrasu aspecro fsico.Como --- .=r,rr de la familia Microchip o Scenix,el se puede apreciar,poseeun circuito integra-.-, ::rr :rabado previamentecon un interpreta- do interpretador basadoen un PIC|6C56 y ' - :: , rjiqos que Ie permitetomar los datosque una memoria serial, un regulador de voltaje .: - .-. r-rrdo desde la computadora las que permite alimentar el sistema con una y ejecutar --: -:) ;orrespondientes. Thmbin poseenuna fuente de 6 a 15 voltios y un sistemade reset : -- . ia EEPROM serial donde se almacenael que reinicializaelfuncionamiento del micro- :--:r.1 recibidoy que se debeejecutar; un r- controlador en casode que la fuente del sisi'oltaje, .,: Je su respectivo circuito oscilador tema caiga por debajo de 4Y. --- -. (reset) muy eficiente. - ,:semade reinicializar .'s BASIC Stamp han evolucionadorpida-:r.r: desdesu creacin. El primer modelo dis:, .-:ie. conocidocon el nombrede BASIC Stamp :-.:-emente, posee un PIC16C56 como chipin':::::rador y una memoria EEPROM serial Estesisel programa. '-Ci6 dondesealmacena -::-.,. incluyeun conectorpara baterade 9 vol- ,. Jonde se debe conectarla alimentacin ex-:::.-r:tambin incluye un reade circuito impre. .:5repara hacerprototipos y, por supuesto, los : :.-s donde seconectael cableque viene desdela : :rputadora y a travs del cual sedescarga el pro:..:ra que ha escritoel usuario.Este cablese co:-:a al puerto paralelode la computadora.En la -sua 6.5 semuestraestemodelo de BASIC Stamp cablede programacin. - :. su respectivo

Figura 6.6BASIC Stamp I Como se puede apreciar en la figura 6.7, estesistemaposee14 pines organizados en una sola fila; de ellos,ocho sepueden utilizar como entradas o salidas individuales, posee un pin de reset,una entrada para alimentacin con fuente regulada de 5V una entrada para alimentacin con fuente no regulada de 6 a 15 voltios, pin de tierra, y los pines de programacin a travs de los cualesse comunica con la computadora. En la figura 6.8 se muestra la configuracin del cable necesariopara la programacin; stese debe conectaral puerto paralelo de la computadora.

compucircuito rracters:osen un lenguaje a de trato que se )e su Pro[a v lo lleis de un rado Prerbe dichas Lmemoria

microcontrolador present un avance ':e ya que est -rancial respectoa su antecesor

StamP x BASIC

Una alternativa muy prctica para montar los prototipos o circuitos de prueba con el BASIC Stamp I, es utilizar la tarjeta de prototipos (carrier board) diseadapor Parallax,en la cual se dispone de un conector para la fuente de alimentacin, un circuito impreso para montar otros componentesy el conector para la respectiva programacin.En la figura 6.9 semuesrrael Figura6.5 Modelo original delBASIC Stamp consu cablede programacin diseode dicha tarjeta.

prctico Curso sobre Microcontrotadores &kl":

&d

LosLulctacotri-t
BSl-lC Rev.B

vttl

Entrada dealimentacin noregulada


Acpnf do A-16 Vnfl

Otro aspecto importante de la programacin esel conocimiento que sedebe tener sobrela capacidad de memoria del microcontrolador. Para el casodel BASIC Stamp I, se tienen 256 posiciones de memoria de programa y 16 bytesde memoria RAM; dentro de estaltima estel control de los pines de entrada/saliday de las variables que se utilicen dentro del programa. Como dijimos anteriormente,la caracterstica ms importante de los BASIC Stamp es la posibilidad de ejecutarprogramasen un lenguaje muy parecido al tradicional BASIC. Se trata de un lenguaje desarrollado por Parallax y que se denomina PBASIC. Con baseen esto, el diseador de aplicacionespuede utilizar muchas herramientas de programacin que son difciles de conseguir cuando se trabaja con microcontroladores corrientes, los cualesson programados en lengua.ie ensamblador. Dentro del grupo de instrucciones seencuentra la posibilidad de hacer ciclos condicionales. de generarsonidos,de hacer lecturasde botone o pulsadores, de medir tiempos o de generarpulsoscon una solainstruccin,etc. Como se pue\de aprecia son instruccionesmuy poderosas que disminuyen notablemente el tiempo de desarrollo de una aplicacin.
jr::il .:' lL!!ll

GTID Tierra paralelo PC0 Conectar al pin11 delpuerto paraprogramacin (BUSY) paralelo PGI Conectar al pin2 delpuerto

Dara orooramacin lD0) UDD 5 voltios deentrada o desalida. Sise aplica una fuente noregulada alpin pin VlN, 5 voltios. eneste seobtienen VIN alaire, sedebe Sielpin sedeja conectar aou lafuente de5Vdel sistema RES Reset deentrada/salida. Cae a unnivel por bajo cuando lafuente de+5V est debaio de4V. PO.HT Pines deentrada salida depropsito general. Pueden manejar 25mA en
modn snrrrce

I Figura delBASIC Stamp 6.7Distribucin depines En lo que respectaa la programacin del microcontrolador,se deben tener en cuenta varios El primero, tiene que ver con el prograaspectos. ma (sofiware)que se ejecuta en la computadora y que permite hacertodo el desarrollode la aplicacin. Este esun programa diseadopor Parallaxy En esmuy similar a los editoresde texto sencillos. estesistema,se escribenlas instruccionespara la aplicacinparticular mediante unos comandos definidos por combinaciones de teclasespeciales, se puede compilar el programa, revisarla sintaxis y descargarlohacia el microcontrolador.

I o oo o oo if o o oo oo oo oo oo o

E
E
q

ste poseeel mayor nmero de caractersticas especiales.Su aspectofsico sepuede ver en la figura 6.10. El chipinterpretadoro controlador que poseeesun PlCl6C57 y la memoria serial que recibe el programa que se va a ejecutar c 1 VIN una24LCI6. Estesistemaposeeademi 2 VSS sofisticado', 3 PCO un sistemade resetbastante 4 PCI 5 VDD una fuente de alimentacin reguladaqu. 6 RES garantizan su correcto funcionamienr 7P 0 8P l an en diftciles condiciones. 9P 2
10 11 12 13 14 P3 P4 P5 P6 P7

delBASIC Figura6.8 Cable deprogramacin Stamp I

Est diseadode tal forma que prece un circuito integrado de 28 pinei de los cuales16 son programables corn.

&i<rr*

prctico Microcontrotadores curso sobre

L\JU L Lr1

ffiacin

Puerto PC serial
1 2 4
6

)rela calor. Para 6 poside b.t,fts :el conlasvariaa. rractersrmp es la r lengua.ie e trata de \' que se r. el diseuchasher difciles nicrocon!rograma-

SOUT SIN ATN VSS p0

VIN VSS RTS VDD p15

28 27
o

25
+

6 7 I 9

P i? n 4 N P2 a
P3 p4 P5 P6 P7

23

P 1 3 22
P12 Pll 21 20 P 1 O 19 1B P9 PB 17

10
11

para Figura 6.9Tarjeta con BASIC I desarrollos Stamp . - -.,.Jo salida; adems, posee entradapara una - , : :::cde alimentacin regulada de 5V una fuen.- :: limentacin no regulada de 6 a 15 voltios, : , ie reset y pines de comunicacinserialque :.rrran nivelesde voltaje RS-232.A travsde : . liltimos se hace la programacin desde la comunicacin y sepuedeestablecer - :t'r1dota , r, trtrosdispositivos externos. Como se acabade mencionar,la progra--,,in de este dispositivo se hace desde el . -rrro serialde la computadora,figura 6.11, que - ::tlrencia de los dos modelosanteriores :rr1can desdeel puerto paralelo.Al igual que , 3 \SIC Stamp I, en estecasotambin sedis: :re de una tarjeta para el desarrollode pro- ::pos (carrier bonrd), en la cual se pueden aplicaciones a la vezque particulares -:r.r.rrollar

12

y cable Figura 6.11Distribucin de pines deconexin ttlr:#;i se dispone de conexin para la fuente de alimentacin y para el cable de programacin. En la figura 6.12 sepuedever la tarjetade prototipos del BASIC Stamp II. En lo que respecta a su programacin,estedispositivo tambin poseesu propio programa de desarrollodonde el diseador creasusprogramas, los compila y los descarga hacia el microcontrolador. Inclusive,existeun ambiente de desarrolloespecial para trabajar bajo Vindows que presentalas facilidadespropiasde estetipo de aplicaciones. La memoria de estemicrocontrolador es mucho ms amplia que la de sus predecesores; en la memoriade programacuentacon2048 posiciones de EEPROM y en la memoria RAM cuentacon 32 bytes.Sus instrucciones,aparte de las mismas del BASIC StampI, incluyencomandosespeciales que le permiten manejartonos DTMB comunicacionesseriales RS-232y P'S7M,entreotros. Un aspectomuy importante que se debe tener presente a la hora de iniciar un diseo con los BASIC Stamp esque la frecuencia o reloj efectivo de operacioneses relativamentebaja comparadacon un microcontrolador normal. Es decir, si en un PIC con reloj de 4MHz seeiecutan un milln de instruccionescada segundo, en

seencuendicionales, le botones pulenerar mo sePuey ,trderosas npo de de-

esreristicas 'en la figura .1or que Poial que recir eiecutares adems' osee y s.-'t-isticado reeuladaque cionamiento
i

)rn-Iaque Padr 28 Pines, nlebles como

// un BASIC Sramp,que posee Figura6.10BAS\CStamp cristal I 1tr-o prctico curso (( 63 ) sobre Microcontrotadores &rc1tr"'.

\q

t' l-:ll.Sl LL\LIEL, lt.lLVLEL StaLntl LosLLL[crocoLr-t-roLad-oru=s

para ll Desarrollos conBASIC Stamp Figura 6.12Tarjeta de 4 MHz, se eiecutan alrededor de 2000 instrucciones. Esto se debe a que cada instruccin del programa en PBASIC, se debe ejecutar en variasinstruccionesde ensambladordel chp interpretador,que hace parte del BASIC Stamp. de los BASIC Las versionesms actualizadas quevieStampson el BS2p24-ICy eIBS2p4O-IC, nen en presentaciones de 24 y 40 pines, figura toda una seriede nuevasfuncio6.13. Presentan nesy comandos(55 distintos)y esmuy interesante saberque laspistasde su circuito impresoestn hechasen oro para mejorar su conductividad. las podemos Las principales caractersticas apreciaren la tabla 6.2. f,horaposeen un microcontrolador SCENIX SX48AC a 20 MHz, en lugar del PIC y manejan fcilmente los protocolos I2C, DALLAS 1-\7IRE y mdulos LCD. Hasta aqu hemos visto los aspectos generales de algunas de las principales familias de microcontroladores.Ahora estamoslistos para iniciar un estudio detallado, siguiendo el orden de familias que se ha mostrado en las primeras lecciones,sobre la estructura bsica,el funcionamiento y el manejo de cada una de las partesy mdulos que hemos enunciado anteriormente y que forman parte de un microcontrolador. Mucha dedicacin y xitos, son nuestrosdeseos para usted, que se inicia ahora de lleno en estemaravilloso mundo de los microcontroladores!
paraBASIC Tabla ll, 6.14Entrenador Stamp Figura6.13Microcontroladores BASIC S:=-:

Presentacin

24 o 40 pines

Temperatura del ambiente 0 - 70 C Microcontrolador Velocidaddel procesador SCENIX SX4SAC 20 MHz 38 bes 8 x 2K bytes 16132 40 mA en modo RUN. 400 uA en modo SLEEI Tabla 6.2 Caractersticas msrepresentativas de los y BASIC Stamp BS2p

RAM EEPROM Pines I/O


Consumo de corriente

i. CEKIT S.A.tienedisponibles unaserie con es:: entrenadores y tarjetas paraprcticas gara6.14. tipo de microcontroladores,

$ I-_

&d

&kt".i.

prctico Microcontrotadores sobre curco

\.i/

/\

StamP ;2p40.

_-\ y LEF-P s 1uev]s 352P40. rie de n este

Con estaleccininiciamosel estudiodetallado de losprincipales componentes de cadauna de lasfamiliasde los microcontroladores mencionadosanteriormente en cuantoa su esrructura elctrica Empezamos y funcionamiento. con los circuitosde oscilacin y de reiniciilizacin(rott) de los PIC, dos elementos b:sicos parasu funcionamientocuyo conocimientoesesencial para el desarrollo de loscircuitosde aplicacin. Thmbinesmuy importanteconocer comocambian losparmetros de un sistema dependiendo de la configuracin doscircuitos. de estos
prctico curso sobre Microcontrotadores &in.t #

c:to K-202

(Liu.sL'[) PL Ls L(Liu.roruntrLid-tL-es u=n t, eL d.crelLLicil[:loll EL clLL'uil-u usriluor


Todos los microcontroladoresrequierende un sistemaque genereuna sealde reloj que le perlas insmita a la CPU ejecutarsecuencialmente trucciones.Ese sistemase puede conectarexternamenteal microcontroladora travsde pinesespara tal fin formando un pepecficosdestinados queo circuito externo cuya configuracin y el valor de sus componentesdeterminan la velocidad con la que el microcontrolador ejecutarel en su memoria. programaque tiene almacenado Cadavez que el microcontrolador seenergiza debe esperarun tiempo para que esa oscilay l pueda empezara funcionar cin seestabilice son Esosdos importantesfactores correctamente. en estaleccin: como conlos que estudiaremos figurar los circuitos de oscilaciny el circuito de (reset). esta En trminos generales; reinicializacin teora es vlida para todos los microcontroladoresde estamarca; en el casode que algun modelo al respecto, lo tenga requerimientosespeciales explicando en su debido momento. estaremos
I I I I I I

Ciclo 1

Ciclo 2

Ciclo 3

Ciclo 4

OS C l r

:: Errrrionffi Figura 7.1Ciclo deinstruccc' . XT (gananciamedia): Cristal/Resonador. . HS: Cristal/Resonadorde alta frecuencia.E, la que permite trabajarmsrpido y por lo tantc la que ms corriente consume. . RC: Red RC externa. Es una solucin mu' econmica. . INTRC: Red RC interna. Es la solucin ma, econmica en que se puede pensarpara el circuito oscilador.Cada que sevayaa trabajarco-un microcontrolador determinado, se deb. mirar en su hoja de datos si tiene disponibl. estetipo de oscilador. En el interior del microcontroladorexisteu: circuito que, dependiendode la seleccinhech. entre LB XT y HS afectasu gananciainternadebido a esose presentanlos distintos rangosc: de opefrecuencia. Entre msaltaseala frecuencia racin del microcontrolador,msalto sersu cor-sumo de potencia.Esteesun conceptofundamertal dentro del desarrollode proyectoscon micrcelegir controladores, por lo tanto esaconsejable osciladorque proporcionela mrs baja frecuenc'

En el interior de los microcontroladoresPIC existeun circuito de oscilacinque permite gepara que todo el nerar la sealde reloj necesaria Cada cuatro dispositivotrabajecorrectamente. perodosde esasealde reloj se generaun ciclo seejecutauna de instruccin, en otras palabras, instruccin, figura 7.1. En estosmicrocontroladoresexistenvarios tipos de configuracin para el osciladorcon el cual va a funcionar la aplicacin,algunasms rpidas que otras; esa configuracin se dentro del prograpuede establecer ma o manualmenteen el momento de programar el dispositivo. [.os tipos de osciladormsutilizadosson: . LP (baja potencia): cristal a baja frecuencia. Es la que menos corriente consumedentro de las tres opcionesde trabajo con cristal.

A la lgca interna XT1: Crstal o resonador cermico

- - - -prcxxx- -

cerff: Figura7.2 Conexin basado en crstal 0 resqnad1r deloscilador

&rrr,.i. #

prctico sobre Microcontrotadores curso


.---.d

tl -U L Lr1

factorescomo la calidad del cristal,la temperaturadel sistema, los valoresde los condensadores utilizados, la frecuenciadel cristal o resonadorutilizado,la seleccin del modo de oscilador,el ruido del sisrema, erc., figura7.5. La seleccinde los elementosque componen el circuito de oscilacinno es al azar.Los valoresde cada uno de esoselementosalterala salida final del circuito; por eso se debe hacer una cuidadosaseleccin de estoselementosreFigura 7.3 Aspecto fsico deuncristal comn niendo en cuentala velocidadde ejecucinque requierala aplicacinque se estdesarrollando.

'struccn
r. L-)

iia. Es
.r-lt[tO

a;

ln muy in ms :.rel cir\llar con .e debe ;ponible

.ile con el que nuestraaplicaciny los disposij i\ternos, puedanfuncionar correctamente.


Seal dereloj desde unsistema externo

a\lsteun .on hecha :nternay ;angosde ::ade oPe:: sucon-.:ndamen:.-,nmicrorle elegirei iecuencia
l I I I

-- ;ste caso,para generarla sealde reloj, se - : r; Corectar un pequeo circuito conforma(C1 y C2) y un cris- :or dos condensadores . , un resonador los a pines OSC1 y OSC2 , i ::ricrocontrolador quienessecomunican in:-r.r.rrrente con un circuito lgico que genera ,ilacin, Frgara7.2. estosse pueden -.rdo se hace uso de cristales, .,:quir en una gran variedadde encapsulados y -- - encias vienen marcadas en que por lo general - --lpsulaexterior,figura 7.3. Cuando se confi- - . el modo de operacin en XI LP o HS, el -:ocontroladorpuedetener una fuente externa al pin OSC1. En -: , ,spulsosde reloj conectada :gura 7.4 se aprecian algunasposibles configuexternosque el lector pue-. res de elementos -: :rs?/at para generarla seal de frecuencia ---lla. Estasconfiguraciones constan princi- - -,:ntede compuertaslgicas,resistencias y 330Ko - :-nsadores. -uando el circuito de reloj recibe la ali: .rcifl, el osciladorempiezaa trabajar, ' .r realidades que no lo hacede manera - jiata; requierede cierto tiempo de esta,:in. El tiempo requerido para que el . .dor opere normalmente depende de

para resstencia a terapuede usarse disminuir el ruido NoTA { , Una delsstema. Esto incremente lacorriente ouiz delsistema.

Haca otros dispositivos

,nlema

330Kl)

Hacia otros dispositivos

I I I I

r rnterna : . . X XX

0.1F XTAL

I
Figura7.4 Conexin de diversos osciladores ertern0s

'+:ndor cermrc

prctico Curso sobre Microcontrotadores &icW":

&4

LrL Los Nticrocuttl-L'olad.ores y eL u=Lt re=iLrie'iali:acln uc= ciLcui[o EL osciLauor Lteset


VDD MXmO del delsistema Alimentacion

(VDD) sistema

r-

k+l

ilft
RC externc deloscilador 7.6Configuracin Figura En realidad estecircuito puede funcionar inclusive sin condensador (Cext = 0) pero se recomienda utilizar valorespor encima de 20pF por razones de estabilidade inmunidad al ruido. Cuanesmuy pequeoo no existe,Ia do el condensador frecuenciade oscilacin puede cambiar bruscaexternatnente creadas mente debido a capacitancias como por ejemplo, la creadaen el trazado del circuito impreso. La frecuenciadel oscilador,dividida por 4, se encuentradisponiblecomo salidaen el pin OSC: y sepuedeutilizar parasincronizarotros dispositivos que trabajenen paraleloen el mismo circuito.

para el nrcio de Tiempo delcristal operacin

,:i:#,,;!#:;2ifli det oscita"r, 7.5 Compoftamiento Fisura


En las tablas I y 2 seaprecianlos valorestpiCl y C2 para trabajar los condensadores para cos y en cristal. con un circuito basadoen resonador que no Cuando sedesarrollenaplicaciones temporide exigentes requerimientos tengan zacin, se puede utilizar un oscilador RC externo como se muestra en la figura 7,6. En un oscilador de este tipo, la frecuencia depende y el condel valor de la resistencia directamente densador (Rext, Cext) y de la temperatura. Si Rext es menor de 2.2K,la oscilala resistencia cin puede ser inestable o detenersecompletamente; si es demasiadogrande, Por ejemplo 1M, la oscilacin se hace muy suscePtibleal ruido y la humedad. Por eso es recomendable que Rext tenga un valor comprendido entre 3K y 100K. En la tabla por 3 sepueden apreciarlas frecuenciasgeneradas de la red RC. distintasconfiguraciones

En los microcontroladoresPIC existeun pin denominado frrfCln. Cuando este pin se lleva " un nivel lgico bajo, el PIC entra al estadodreinicializacin (reset).En este estado todas la-' Tosalidasse apagarny el reloj se desactivar. posee:PIC microcontroladores nuevos dos los un filtro contra el ruido en el pi:trrrcI-n para detectar e ignora-pulsos pequeos,razn que fac:lita la incorporacin de estosdispositivos en ambientesruidosos : contaminados.

Frecuencia

c1lcz
?Jl-1lJ9F 15-68pF 15-68pF

Modo i Frecuencia I 32 KHz 2m KHz 100l $z 2 tlHz 4 MHz

c1 68 - 100pF 15-30pF 68 - 150pF 15-i l l pF 15-l l pF 15-:0pF 15-30pF pF 15-:10

c2 68 - 100pF 15-30pF 150- 200 pF 15-30pt 15-30pF 15 - :il} pF t5-30pF 15-30pF

455 K'llz 2.0MHz 4,0MHz

Dentro del mapa de memcdelos tpicos ria existeuna direccin denom,fabla7.1 Valores tpicos deloscondensadores 7.2Valores cuando setrabaia Tabla condensadores nada vector de reset,en esta d-cuando setrabaja concristales conresonadores

8,0MHz 16.0 MHz

10- 88pF 10- 22pF

d&
}"

&fl

&icm.i.

prctico Microcontrotadores sobre curco

1OrLA
\, 'lN4148

ffi,*tr':+iftffiffi
|W.'*SI t0 K 220 80KHz of"#E*k'i,* m*i':?'g+l$ -S

f neset

pan disfintos Figura 7,8a Circuito externo de Tabla 7.3Frecuencias deosilacin POR valores RC delared

para Figura 7.8b 1trocircuito POR

exErn0 rar in3 recopF por CuanIa riste, bruscaemente delcir-

controladoresPIC, por las ventajasque ofrecen. Analicemos cada uno de ellos.

H?ltp,on,r
para Figura 7.7Configuracin utilizar elP)R

pr 4, se n OSC2 lispositicircuito.
I

n pin deselleva a stado de todas las n'ar.ToC poseen , en el Pin e ignorar que faciestosdisruidososo

-=,-:ines donde el PIC empieza la ejecucin :-- programa. Esta direccin es la 0 para los - -C de medio y alto rango y correspondea la --:ima direccin para los PIC de rango bajo. de un PIC16C54 - ,: ejemplo, el vector de reset .=:e la direccin 0x01FF. Cada :: que el PIC entra, por alguna -rJn, en estado de reset,la CPU :=- nicrocontrolador sedirige a esta :.-;icin de la memoriapara iniciar -- :\-amente la ejecucin de todas VOO insrrucciones del programa. '.

Este estado de reset se origina en el momento de detectarseun estadoalto en la alimentacin. Para aprovechar esta caracterstica,se puede conectar una resistencia desdeel pin MCLRhasta el voltaje de alimentacin (VDD), figura 7.7. Esto u;egura que cada vez que el sistema es alimentado adecuadamente,el programa inicia su operacin desdeel punto exacto desdedonde debe iniciar.

de memon denomien estadi-

LXrSren vanasrazones que PueMCLR ::: motivar un estadode resetade-*-:sdel estadolgico bajo en el pin 0scilador ::LR, ellasse conocen como ti:,- de reset,y son: la reinicializa' - - r al encendido (PowerOn Reset), .. reinicializacinpor cada en la Tiempo Ost (Brown Out Reset). --:rentacin la -'::bin es importante anaJizar *:'-:ncia de inicio que presentan Tiempo PWRT ., ?lC cadaque seda un estado de -r .: \'a que all existen algunos reReset interno :--:ls que sehan incorporadocomo estndaren los microFigura7.9Diagrama de tiempo deliniciode operacin deloscilador --=--rersticas

prctico curco sobre Microcontrotadores &<tn.#

y u=L EL osciluar ciLcui[o ur.reinidali:acin eLrLosltLicL tl','aLtLclarj.oL es Lrl Lieset-)

voo cLn
P0R Interno

mentacin de baja rampa de crecimiento Un circuito externopara POR slo se requiere si el tiempo de Voo es demasiadc lento. El diodo D ayudaa descargar rpidamente el condensador cuando VDD sedesactiva. Otra variacin de este circuito -. que evita problemas en el arranQues; muestra en la figura 7.8b.

PWBT Timeout

EI P\fRf esuna caracterstica que sepued: incorporaren el momento de grabarun prcgramaen la memoria del microcontrolado: Esto proporciona un retardo de aproximaReset interno damente70 ms a la reinicializacin POR o . Figura7.10Secuencia seguida al alimentar y etpin MLCR el sistema la BOR. El PVRT se basa en un osciladc conectado directamente a VDD RC interno dedicado.El microcontroladc: Cuando el dispositivo saledel estadode reset permanecer en estadode resetmientras. (comienzasu operacinnormal), los parmetros P\fRf seencuenrre activo.El retadoproporciona. de operacindel dispositivo (voltaje,frecuencia, do por el P\MRI le permite alvoltaje de alimenu. temperatura,etc.) debenencontrarse dentro de sus cin Von alcanzar un nivel aceptable. rangosnormalesde operacin;de otra manerael microcontrolador no funcionar correctamnre. El retardo originado con el POR permire que se establezca un retardo lo suficientemenrelargo para Este temporizador proporciona un rerardo c. que estosparmetros se normalicen. 1024 ciclos del oscilador(de acuerdoa la er.. trada en OSCI) despusde que el retari. En la figura 7.8 seapreciaun posible circuito P\RT ha terminado. Esto aseguraque el o,POR basadoen una red RC y un diodo; recomen- ciladorde cristalo resonador seencuentra oD.dable para un sisremaque poseauna fuente de ati- rando en su modo estable.
Ost Time out

voo

Figura 7.11 Circuito 1erterno deBrown out

Figura 7.12 Circuito 2 erterno deBrown :,

&kt*i. #

prctico curco sobre Microcontroradores

lrrrllr. I l-t tt

.r

nto. iado rida: desito Y ue se

Cacla r.ez que el pin MCLR tome un nivel alto, el procesose repite automticamente. Esa caracterstica es muy til, por ejemplo, en aplicacionesdonde se necesiten sincronizar varios microcontroladoresque trabajen en paralelo. Si el voltaje final del sistemano cumple con las especificaciones elctricas del microcontrolador (las cuales se pueden hallar en las hojas de datos del faFigura7.13Comportamiento delB1R bricante) el pin MCLR figura 7.9 se observa la operacindel debe mantenerseen bajo hasta que el voltaje sea el adecuado. El uso de un retardo con ::.^iro OST en conjunto con el P\RT. All --:ros apreciarcomo a medida que el vol- una red RC externa debe ser suficiente para - . \-DD crece tambin lo hace la seal en este propsito. - .'Rr a partir de cierto nivel el POR empie- : .. operacin y el P\7RT se activa durante - - ..-mpo; cuandostetermina,habilitaal os.:,,rr para que empiezesu operacin.Para ' :=iesde baja frecuencia estetiempo de ini: -iedeser un poco ms largo. : .e debea que el tiempo que toma el osci- : Je baja frecuenciapara empezara osci-' :) mayor que el retardo del P'WRT. As, el :-=ro tornzdo desde que el P\RT se acaba - :. :uando el osciladorempiezaa oscilar,se tiempo muerto. -: . :r'rina

puede
m Proolador. 'orimaORoa scilador uolador entrasel orcionaIimenta-

,rardode lalaenI retardo os1ueel :nrraoPe-

Dentro de los microcontroladoresPIC exisreesteotro tipo de reset denominado Broun-out, eI cualpuede ser habilitado o deshabilitado por el usuario. Este permite llevar el PIC a un estado de resetctando el voltaje de alimentacin caepor
Noimplantados POR BitT

BFn
Bit0

-J

cdeBrown

:. rrrolnnto de alimentar el microcontrola,: desarrolla la siguiente secuencia: primero -:i:Cta el POR; si esthabilitado,seinvocael Despusde que termina el tiempo del --.T. ..1 se activael OST, figura 7.10.

bit6:3Noimplantados bit'1POR: Bitdeestado Power-on delreset por 1 = Nohaocurrido reset Power-on 0 = Ha Power-on ocurrido unreset bit0 BOR: Bitdeestado Brown-out delreset 1 = Nohaocurrido unreset Brown-out 0 = Ha ocurrido Brown-out unreset
Figura7.14Registro PC0N

prctico Curso sobre Microcontrotadores &rt

& /z:%3

y e=L Los LVLiuroi-:uniloLad"oL'es LrL t'ircuii-u uu. t'einlclall:adn u=n EL osr:llauor Liese[)
debajode un voltajedeterminado(BVoo). Esto que el dispositivono contine con la ejeasegura cucin del programa mientras se encuentre por fuera del rango de operacin vlido. El reset Brown-out es muy utilizado en aplicacionesde dondeseconmuten crlneasCA o en aplicaciones gasy donde el voltaje puedecaertemporalmente. Algunos microcontroladoresno poseeneste tipo de rset,paa los que lo poseen es necesario ajustar el voltaje de Brown-out al nivel deseado. Paraestepropsito, en las figuras 7.lI y 7.12 se muestrandos ejemplosde circuitos externosque sepuedenimplantar.En la figura 7.I3 semuestra un diagramade tiempo donde seilustran los momentos en que se origina una reinicializacin BOR. Cada uno de ellosdebesercomprobadoen la prcticapara verificar que cumplan con los requerimientosde la aplicacin. En el casodel circuito 1 activarel resetcuando Voo se encuentrepor debajo deYZ + 0.7. Donde Vz es el voltaje zener.Al utilizar estecircuito la configuracin Broutn Out Reset debe deshabilitarseen el momento de la programasedebenajustardependiencin. Las resistencias del transistor. do de las caractersticas EI circuito 2 esms econmico pero menos preciso; el transistor Ql se desactivacuando VDf seencuentrapor debajo de cierto nivel, de acuerdo a Ia siguienteformula:

* VDD

R1 Rl+ R2

= 0.7

En los nuevosmicrocontroladores PIC es pcsible detectar la fuente de un estado de rese: a travsdel registro PCON. Este registro cor.tiene un bit de estado que permite determ-Pc. nar que estoriginando el estadode reset. ejemplo, determina si fue un POR, un rei:. externo, etc. Este registrolo podemos obse:var en la figura 7.14, junto con los estadc de los bits en el momento que se originan lc distintos tipos de reset. En la figura 7.15 :. muestra un diagrama de bloques genric. sobre como interactan las diversostipos c: condicionesque originan un estadode res:

1 Pin OSC

Reset del PIC

general er : Figura7.15Esquema delostipos de RESET ) microcontroladores

&<t,i. #

prctico Microcontrotadores curco sobre

l )

PreVDD cuer-

esPoe reset, :o con:rermitet.Por rn reset obserestados nan los 7.15 se enrico :ipos de le reset.

14

En estaleccin estudiaremosaspectosbsicos de la estructura interna o arquitectura de los microcontroladores PIC, tales como Ia manera en que ejecutan las instrucciones teniendo en cuenta su arquitectura bsicay el funcionamiento de la CPU y la ALU.
enlw e RESET PIC ntotadores

prctico Curso sobre Microcontrotadorcs &krr,.:

dN

\f,

,,*il#lll

r ll lr"lrllfrH{#3lr^..*

Los microcontroladores PIC poseen caractersticas que los hacen muy competitivos dentro del mercado global de la electrnica. Entre ellas se encuentran su arquitectura Harvard y su reducido conjunto de instrucciones (RISC: RrducedInstruction Set Computer),veamoslos puntos ms.representativosde esta tecnologa.

por un mismo bus, se originar demasiada congestin en ste. Caso contrario ocurre en la arquitectura Harvard, en la cual una instruccin puede buscarse en un solo ciclo de instruccin, debido a que el bus que conecta la memoria de programa es de 14 bits. Al tiempo que la memoria de programa se est accediendo, la memoria de datos, como cuenta con su propio bus, puedeser leda o escrita. Esta configuracin de buses separados permite que una instruccin se ejecute al mismo tiempo que se busca la.siguiente instruccin. En la figura 8.1 podemos apreciar el diagrama bsico de ambos tipos de arquitecturas.

ilti. lilti: LJuli;l

1ry

Harvard Arquitectura
por tener Este tipo de arquitectura se caracteriza la memoria de programa (ROM) en un bloque separadode la memoria de datos (RAM). De la misma manera, cadauna poseesu propio buspara elementosdel microcomunicarse con los dems controlador. los diseadoreshan aprovechadoesta caractersticaspara implantar un bus de8 bits para conectar la memoria de datos y un busde ms de ocho bits para ser conectado a la memoria ROM donde se encuentran las instrucciones. De esta forma sehace un uso ms eficiente de la memoria de programa, porque ella puede estar optimizada para los requerimientosde la arquitectura. Por esta rczn, estaarquitectura permite un mejor manejo de las instrucciones que la tradicional arquitectura von Neumann, en la cual el programa y los datos se ubican en un mismo bloque, el cud se comunica mediante un solo bus. Para ejecutar una instruccin, una mquina de arquitectura von Neumann debe realial zar uno o ms (normalmente ms) accesos bloque de memoria a travs de un bus de 8 bits;la razn esque existeninstruccionescuya dimensin o longitud 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 distintos tipos, todo por el mismo bus de 8 bits. As, al trabajar instrucciones y datos Harvard

Instrucciones sencla depalabra (singlewor


Los microcotroladores PIC manejan instrucciones de palabra sencilla (single taord). Esras instrucciones se codifican y almacenan dentro de la memoria de programa con un tamao de 14 bits; ese nmero las hace ideales para ser transmitidas por el bus conectado a dicha memoria, el cual es precisamente de 14 bits. El hecho de que el bus y las instrucciones tengan ambos 14 bits, permite que en un solo ciclo se ejecute una instruccin. Caso contrario ocurre en la arquitectura von Neumanri; en ella las instrucciones por lo gene-

ral sonde mltiplesbytes por lo que no essegu


que en cada posicin de memoria exista una instruccin vlida.

Manejo delasinstrucciones {pipelne:


Para rgilizar el procesode ejecucinde las i seha dise digitales, truccionesen los sistemas la bsq do un sistema en el cual seempieza

de una instruccin a medida q seva completando la ejecucin la instruccin precedente o an rior. Este tipo de conexin o cuencia se conoce con el nom de p ip elin e (entubar, encavzaf, rigir o distribuir por tubos). y von Harvard Neumann delasarquitecturas debloques Figura 8.1 Diagrama Von-Neumann

rrr* #

prctico Micmcontotadoes sobre curso

leorta
.siada , :nicrocontroladores PIC se utiliza esta . s procesos de bsqueday ejecucinse : ; bsqueda de una instruccin toma un l^ ^i- - ,,^iA - -,,:- ^ -- .:quina ^,*^ ^:^l ^ y ciclo. , la ejecucinse toma otro de buscar la instruccin actual ejecuy Srr -- - -,:--r*-iin previa,en cadaciclo de mquinase - -.- -j--r :nsiruccinal tiempo que seejecutaotra. La memoria de datos de los microcontroladores PIC se divide en registros, cada uno con una ubicacin determinada,lo que permite que pueda accederse a cualquier parte de ella a travsde direcciones.Existen algunos registrosque cumplen funciones especiales los cuales tambin se encuentran ubicados dentro de ella en posiciones determinadas,como veremosen la siguiente leccindenominada"La memoria en los microcontroladores PIC".

a HarI S CATSC

que el aesde )grama . como o escri, permiro tiemn. En la ,absico

: instruc.d. Estas rn dentro nrao de s Para ser dicha met+ bit' El res tengan rlo ciclo se

- :::io a que el busde la memoria de pro:-:ne un ramao de 14 bits. una instruc:--: - :: ir-rrrrx en un solo ciclo de mquina, y se : :- --. otro ciclo. Si el resultadode la ins:--: - , : -n modifica el contenido del contador de - - :::::r.1. puede existir un pequeo retardo de Las instruccionesde los microcontroladoresPIC dentro de la se- han sido diseadas para que cumplan con cierta -.- - :,:. el cual debe corregirse - :-,. esrecasolo estudiaremos ms adelante. ortogonalidad o simetra; esto quiere decir que -i para cada instruccin existeotra instruccin si':. : mtricaque cumple la labor complementaria; esta :-..;rocontroladores PIC se clasifican dentro caracterstica tambin facilitar ayuda a el apren:: . :-rregora RISC (ReducedInstruction Set dizajede las instrucciones. , ,::,:er)i esto quiere decir que se requieren Las instruccionesortogonaleshacen posible :' -:, ::srrucciones para llevar a cabo cualquier Es resaltar aqu conjunto redullevar de que un a cabo cualquier operacinsobrecualquier ---:. jinstrucciones puede ser aprendido ms registro usando algn tipo de direccionamiento. - -' : ,por el usuario. La naturalezasimtricay la ausenciade instruc-TCYl 021 031
04 I

TCY2 021 03|


04 1

TCY3 011 02t 031

tecturavon ror Io geneno esseguro istauna ins-

01
Q2
cl

03
Q4

,n de las insseha disear la bsqueda r medida que de r eiecucin dente o anteonexin o se:trn el nombr dir. encauzar, rr tubos).

PC

-(OUT

(PC) Busca instruccin


(PC-1 Ejecuta instruccin ) (PC+1) instruccin Busca (PC) Ejecuta instruccin (PC+2) Busca insfuccin (PC+1 Ejecuta instruccin )

Figura8.2 Flujode ejecucin de unainstruccin

prctico Curso sobre Microcontrotadores &rrr"t #

(como ocurre en otros mlcrociones especiales, buscada es almacenada dentro de un registro de controladorestipo CISC, quienes cuentan con instruccin (IR) en el ciclo Ql. E t esemomento numerosas instrucciones, donde algunas de ellas ella sedecodificayse ejecutadurante los ciclos Q2. cumplen con laboresmuy puntuales o especides), Q3 y Qa. [.a memoria de datos seha leldo durante hacen que la programacin seamuy simple y efi- el ciclo Q2 y seha escrito durante el ciclo Q4. ciente, alavez que la curva de aprendizajese reEn el ejemplo I se muestra la secuenciade duce signifi cativamente. operacin (pipelin) de una instruccin. EnTCY0 sebuscala primera instruccin en la memoria de Elciclo deinstruccin (pin La seal reloj se divide de entrada de OSCI) programa; en TCY1 sta se ejecuta mientras se internamente por cuatro,generando cuatro pul- buscala segunda.DuranteTCY2, la segundainsdeno- truccin se ejecuta mientras se busca la tercer sosperidicosen cuadratura(desfasados) minados yQa. Internamente el con- Durante TCY3 se busca la cuarta instruccin Ql,Q2,Q3 (PC) tador de programa se incrementacadavez mientras se ejecutala tercera(CALL S-1).

en la meque aparece Ql, la instruccinsebusca moria de programay se almacena dentro del reen Q4. Luegola instrucgistro de instrucciones cin sedecodifica y seejecuta duranteel siguiente ciclo de Ql a Q4. En la figura 8.2, seilustra el flujo de la ejecucin de una instruccin. formadopor cuaUn ciclo de instruccin est de tro ciclosQ (Q1, Q2, Q3 y Q4). l,a operacin busqueda requiere deun ciclodeinstruccinmientrashacela decodificacin y la operacinde ejecucin toma otro ciclo de instruccin.Debido al manejo a lasinstrucciona(pipeline), quesele hace instruccin en un cicada seejecuta efectivamente clo.Siunainstruccin hace queel contador depro(por modifique, ejemplo un GOTO) engramase toncesserequiere de un ciclo extraparacompletar la instruccin, ver ejemplo1.

Cuando seha terminado la ejecucin de la tercerainstruccin, la CPU haceque la direccin de la cuarta instruccin se lleve a la pila cambiando d contador de programa (PC) a la direccin de S_lEsto significa que la instruccin que se busc durante TCY3, debe ser nivelada desdeel pipeline.

Durante TCY4 se nivela la cuarta instruccin (se ejecuta como un NOP: instruccin

no operacin) y sebusca la instruccinubi


en la direccin S-1. Finalmente, duranteT se ejecutala quinta instruccin y se buscala i truccin presenteen la direccin S_l + 1.

general Formato deunainstruccin


las instncciones en los microcontroladores PIC rango medio pueden ser clasificadassegn Formatos como semuestraen la figura generales,

(opcodzs) la operacin de bsqueda de la instruccin [,oscodigos operativos de lasi en Ql incremenado el contadorde pro- varan entre 3 y 6 bin. Este tamao variable de empieza grama.En el ciclo de instruccin,la iristruccin opcodzs permite esablecer35 instrucciones.

Relaj delasinstrucciones
1 Busca Ejecuh 1 Busca 2 1. 2, 3. 4. 5. Ejecuh 2 Busca 3 MOVLWSSh MOWF PORTB CALLS_1 (torced BSF PORTA, BlT3 NOP) Instrucciones enladireccin S_1 Ejecuh 3 Busca 4 Nivelar Busca S_1 Ejecuta S_1
Busca S_1 +1

Cada ciclo de instruccin (T comprende cuatro ciclos Q (Ql Q4). El tiempo del ciclo Qes el mi mo que el ciclo de tiempo del osci lador del dispositivo(TOSC). ciclos Q son los que dan la

para la ejecucin de cada uno de procesos de decodificacin, lectu y ejecucin Ejemplo I Secuencia debsqueda delas instrucciones

&rr-r #

prctico Microcontrotadores curco sobe

de nto

deregso orientadas a 8,'fe operacones 87 13 6 0

12,
]nte
operaclones dergso orientadas a ,it 13 109 76 0

que d = 0 para Wsea eldestino finaldelresultado que d = 1 para f sea eldestino delresultado f =7-bit registro deladireccin deunarchivo b = 3-brtposicin deunDff(3 Drb) f =7-bit registro deladireccin deunarchivo

rde ]Y0 ade


NSC

operacones decontrol

(8bits) K= valor literal

rinscefa.

rin

(11bits) K=valor literal

Aterrde l a do el : S-1. duwe, sucbn de bicada [CY5, la ins-

general Figura 8.3Formato deuna instruccin Muchasde estas instrucciode datos,escritura, etc.,de cada cin del dispositivo. srocesamiento nesoperansobre la memoriade datosparalo cual .iclo de instruccin, figura 8.4. serequiere de la unidad aritmticolgica (ALU, LoscuatrociclosQque conforman un ciclo AritbmecLogicalUnb). Parallevara cabolasopearitmticas y lgicas, IaALU controlalos ,Jcinstruccin(TCY) sepuedengeneralizar as: raciones bitsde estado(loscuales selocalizan en un registro especial registro denominado deestado). El rede la instruccin Ql: Ciclo de decodificacin sultado de algunas instrucciones obligan alos bits Ciclo de lectura de datos de la instruccin Q2: de estado a cambiar suvalor,dependiendo del rede datos Q3: Procesamiento sultado de la operacin. la instruccin Ciclo de escritura de datos de Q1: La CPU puede considerarse como el cerebro del microcontrolador. Ella esla responsable Lrascdigos de mquina o conjunto de instruciones que la CPU reconoce, se muestran en la de buscarla instruccincorrectaque seva a ejey ejecutarla. En algunas ocaEbla I (al igual que los nemnicos que el progra- cutar,decodificarla la CPU trabajaen conjunto con la ALU ma ensambladorusa para generar estoscdigos). siones, paracompletarla ejecucin de la instruccin(en los casos que se efectenoperaciones lgicaso -: i,- i Jy la G P U aritmticas). La CPU controlael busde direccio(CPU) esla respon-' [.unidadcentralde proceso sble de utilizar la informacinde la memoriade nesde la memoriade programa,el busde la mea la pila. prcsrama(instrucciones) paracontrolarla opera- moria de datosy el acceso

($e0deinstrucciones - - i .sts

n
PIC de
cuaos Era8.3. rcciones e de los

(TCY) I (Q1el misJelosciC). Los h pauta p de los lectura,

TCY1

TCYz

ICY3

Figun8.4Ciclos A

prctico curco sobre Microcontotadores &tl..#

ilemotcnico 0peracin
ADDWFf,d ANDWFf,d CLRF f CLRW COMF f,d DECF f,d f,d DECFSZ INCF f,d INCFSZf,d IORWFf,d MOVF f,d MOWVF f NOP f,d RLF RRF
f,d

Giclos
1

SUBWFf,d SWAPFf,d XORWFf,d

yf SumarW ANDentreWyf f Limpiar Limpiar w f Complementar Decrementar f f, Decrementar saltar sicero Incrementar f Incrementar f, saltar sicero 0R entreW y f Mover f MoverW af No operacin Rotar a laizquierda atravs del carry Rotar a laderecha carry atravs del RestarW def nibbles lntercambiar def Wy f entre 0Rexclusiva

Cd. deoperacinEstados lsb msb afectados ffff 00 0111dfff C,DC,Z


00 0101dtff 00 0001lfff

000001 Onfi xxxx


00 1001dfff 00 0011dfff dfff 00 1011 00 1010 dtff tfff ffff ffft tfff

tfff tftf

1(2)
1 1 (2)

z z 7 z z
7

ftff 00 1111 dfff tfff 00 0100dtff 00 1000 dttf ffff ffff 00 0000lfff 00 00000xx0 0000 00 1101 dttf 00 1100 dttf dfff 00 0010 00 1110dtff dfff 00 0110 tfff fttf ffi tfff fftf

z z

BCF f,b f,b BSF BTFSC f,b BTFSS f.b

Limpiar bitb def Activar bitb def Probar bitb def, saltar si escero Probar bitb def, saltar si esuno

101 101 1( 2) 1( 2)

00bb btff 01bbbtff

ttff tfff tfff ffff

01 10bbbfff 01 11bbbfff

ADDLW k ANDLW k CALL k CLRWDT GOTO k IORLW k MOVLW k RETFIE RETLW k RFTURN SLEEP SUBLW k XORLW k

k aW Sumar literal A N D entrek y W Llamar subrutina LimpiarWDT k Salta a direccin 0R entrek y W literal k Cargar aWcon Retornar deintenupcin y cargar k Retornar aWcon Retornar desubrutina lr almodo debajo consumo Restarle k aW k yW 0Rexclusiva entre

1 1 2 1 2 1 1 2 2 2 1 1 1

11 111X kkkk 11 1001 kkkk 10 okkkkkkk 00 0000 0110 10 lkkk kkkk 11 1000 kkkk 11 00xxkkkk 00 0000 0000 11 01XX kkkk 00 0000 0000 00 0000 0110 11 110X kkkk 11 1010 kkkk

kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk

c,Dc,z

TO,PD

TO,PD C,DC,Z

Tabla I Conjunto PIC deinstrucciones delosmicrocontroladores derango

&<n:: #
l-

prctico sobre Microcontrotadores curco

I-eoria
Literal enB blfs (palabra denstruccin)

r=.

operaciones aritmticasutilizan el mtodo numrico del complemento a dos. En instrucciones que manejan dos operandos,normalmente un operando es el registro de trabajo (denominadoV) y el otro operando es un registro o una constante,figura 8.5.

-=,1

El registro '$'esun registro no direccionable de 8 bits utilizado para las operaciones de la ALU. Dependiendo de la instruccin que seva a ejecutar,la ALU puede afectarlos valoresde los bits carry (C), digit carry (DC), y zero (Z) de| registro de estado.Los bits C y DC, indican el momento en que en una operacin de substracy elregistro W Figura 8.50peracn deIaALU cin se da un casode "llevo" o "tomo prestado". Los datos de la memoria RAM interactan con laspalabras de instruccin al llegara laALU. Dependiendodel valor de d en la correspondiente instruccin, el resultado final se dirige a w o al registro de la RAM, f.

I
I

PIC contienenuna ALU - , :ricrocontroladores -. ::qistro de trabajode 8 bits.La AIU esla unioperacio- . rgicay aritmticala cual desarrolla -: y funcionesbooleanas entrelos da--irmticas :=l registro de trabajoy cualquierregistro.

.'r ALU es capazde hacer sumas, restas, El registrode estado,figura 8.6, contiene el esta::,:.zamientos y operacioneslgicas. Las do aritmtico de la ALU, el estado del proceso

Registro: STATUS
IRP
bit7

RPl

RPO

TO

PO

DC

c
bit0
l

I
:,7 D

Direccin: Condicin de reset IRP:

03h OOO??XXX

,PD

fr,7

para indirecto direcconamiento Selector depgina porloquesepuede Este enel PlCl 6F84, llnoseutiliza efectivamente utilizar como unb general. depropsito para directo. RP1,0:Selectores depgina direccionamiento RP1 sepuede utilizarcomo Solamente RPOse utilizaen elPlC16FB4. unDlf depropsitogeneral. deltemoorizador. T0: Time OutoBlfdefinalizacin Watchdogfinaliza elcircuito devigilancia latemporizacin. Secoloca en0 cuando Power Downo Blfdebajo consumo. Secoloca en0 porla instruccin PD: SIEFP Bitdecero. 1 cuandoel resultadode unaoperacin lgicaoaritmticaescero. Z: Zeroo Secolocaen Dgt de dgito. Enoperaciones aritmticas DC: Carry o Bit de acarreo se activa cuando hay acarreo entre el bif3 y el 4. Eninstrucciones aritmticas seactiva CanyoBitde acarrreo. cuando sepresenta acarreo G: delresultado. desde el Dlfms significativo Figura8.6 Registro de estado

medtc E rango

prctico curso sobre Microcontrotadores &k,

n,l" &

%c

de reinicializacinylos bits de seleccinde los bancos de memoria. Este concepto se estudiar en la siguiente leccin: La memoria en los microcontroladoresPIC. El registro de estadopuede servir para almacelos nar datos de una instruccin, es decir, puede trabajar como cualquier otro registro.Si el registro de estadosirvede destino para una instruccin que afectelos bits C,DC o Z, entoncessedeshabilitala escrituraen estostresbits. Esosson puestosen uno o en cero de acuerdoa la lgica del dispositivo y a las operaciones que ejecute.De hecho, los bixTO y PD no son escribibles. El resultado de una instruccin que tenga como destino el registrode estado,puede arrojar Por ejemplo, si un resultadodistinto al esperado. se ejecutala instruccin CLRF ESTADO se borrarn los tres bits ms significativos y Z se pondr en uno. Esto deja al registro de estado con 000n nlnnn (donde n significa: no cambia).

Es recomendableque solo seutilicen las instrucciones BCF, BSF, S\APF y MOVWF par. alterar el registrode estado,ya que estas instrucciones no afectanlos bits z,DC o C. En la tabl. I semuestran otras instruccionesque no afecta:. los bits de estado. '':r..jistfsj:," :rr, Este es un registro fundamental para establecer las condicionescon las que va a trabajar nuestro programa.En l podemosllevar a cabo operacionesde lectura y escritura.Contiene vario, bits de control que configuran mdulos com: los temporizadores, las interrupcionesy las resistencias pull-up internas del microcontrode lador, figura 8.7. Los bits PSA, PS0, PS1, PS2, INTDEG y RT: configuranel funcionamientodel temporizadc: interno (esto lo estudiaremos ms adelante),c. bitP.BPUpermite que habilitemosuna resistenciasde pull-up internasconectadas al puerto B

(0PC|ON) Registro: OPT|ON


:,
i-

i- - ':" " - - ':- - '

- :- .- - t" * '*

RTS : RTE I RBPU INTEDG


h+ 7

PSA i PS2 1 PSl

i PSo i
bit0

Direccin: Condicin dereset RBPU:

81h 1'1111111b

PortB Pull-up Enable o Habilitacin depull-up delpuerto B. pullups 0:habilita las internas 1:las deshabilita delainterrupcin INTEDG: INT lnterrupt Edge Select o Selector deflanco INT 0:flanco debajada 1:flanco desubida TMR} o Fuente deseal deTMR0. RTS: Signal Source (Iemporizador) interno 0:ciclo deinstrucciones (Contadofl 1:transicin enelpinRA4/IOCK TMRO RTE: TMR} Edge o Flanco delaseal Signal 0:incremento entransicin debajo a alto 1:incremento dealto a bajo entransicin PSA: PrescalerAssignmenfoAsignacindelpreescalador (Contador/temporizador) 0:TRM0 (Circuito 1:WDT devigilancia) preescalador. PS2,1,0: PrescalerValueoYaloresdel

: Valor i TMR0; ,r* f'.'* **.-*-,-*s.*' *"" "." -. 1 000 i 1:2 T"-I'i1:4 1:2 i ool ;010 1:B 1:4 0 1 1 1:'l 6 1:8 ; r 100 1:32 1 : 16 'l:64 1 : 32 : 101 ; illo 1 : 1 2 8 1 : 64 l 1:128 , 111

a=

''

--:---''----..'

1.2-56

Figura 8.7Registro 1PC\N

&d

tkt,:

prctico Microcontrotadores curco sobre

I lls-

P1rr
.-l Ltl-

\ _* //

:,rbla
ac t1ll

: b le' l lL les-

,-' oPe'.'rrrios
a0 lTl o

.s ret r lt r o-

te{.
E-l .$ Fl f,

-t

t
t

. I1TS
- rz,rclor :'. i c ) , e I . .is t e t t :.rto R.

t*
+

IDT '2 .
1O J'

'64
. rq

': )PC\)N

Conocer cmo estestructuradala memoria dentro de los microcontroladoreses un pasofundamental para desarrollaraplicaciones ptimas y aprovecharal mximo lo que estoscircuitos integradosnos pueden ofrela disposicer. En estaleccin analizaremos cin y manejo de lasmemoriasRAM y ROM internasde los microcontroladores PIC.
Cu rsoprctico sobre M icrocontro ladores &k m; d;\ \-,,2

Podemosreseardos bloquesprincipalesen los que sedivide la memoria en los microcontroladoresPIC: la memoria de programa (ROM) y la memoria de datos (RAM). Thmbin existeuna memoria muy importante denominada la EPROM de datos; ella sertema de estudio en la siguiente leccin. Como vimos en la leccin anterio cada bloque cuenta con su propio bus de acceso, de maneraque ambos pueden consultarsedurante un mismo ciclo del reloi. La memoria de datos, a su vez se divide en dos bloques: los registrosde propsito general (SFR: y los registros de funciones especiales Los registros de proSpecial Function Registers). psito general son los que el usuario tiene a su disposicin para ubicar las distintas variablesde SFR consu programa,mientrasque los registros trolan muchasfunciones del microcontrolador y de susmdulos perifericos.
jil F.l r,orrl-l lt" {1r".' l}r{:}:::'.ri,

Von Neumann, una memoria de programa d. 8K puede llegar a tener slo alrededor de 4l'. para almacenar instrucciones. La memoria de programa en los microcontroladoresPIC sedivide en cuatro pginasde 21.cadauna (Oh-7FFh,800h-FFFh, 1000h-17FFh y 1800h-1FFFh),figura 9.1. Dependiendode l. referencia del microcontrolador PIC, sedetermina qu porciones de estemapa de memoria poseeinternamente.Paraello debereferirse a la hor fin de datos del PIC especfico con el de establecer su memoria disponible. Para saltar entre las pginas de la memoria de programa, se debn modificar los bi: altos del contador de programa (PC). Esto s. hace escribiendo el valor deseado en un r(gistro SFR denominado PCLATH (Progra,t Counter Latch High). Sin embargo, si se ejecutan instrucciones secuencialmenteel con-

(PC) esun registro de El contadorde prograrna la en la memoria 13 bitsqueespecifica direccin quedebebuscarse de programa de la instruccin El bytebajo del PC sedenoparaserejecutada. PCL y sobrel sepuedenrealizar mina registro El byte alto secoy escritura. procesos de lectura nocecomo registroPCH, contienelos bits 8 al ni escribirse 12 42:8> del PC y no puedeleerse de manera directa.

PC<'12:0>

rJe Larnemoria Sr{igrrrlr;i


El contador de programa de los microcontroladores PIC de rango medio puede direccionar un espacioen la memoria de programa hasta de 8K y 14 bits de longitud. Como todas las instruccionesson de palabrasimple, un dispositivo que poseauna memoria de programa de 8K x 14 bits tiene espaciopara albergar 8K en instrucciones. Esto facilita al usuario establecersi un dispositivo tiene suficiente memoria de programa para una aplicacin determinada. Esta aclaracin es importante hacerla debido a que, al trabajar en un dispositivo de CPU CISC y 8K 6K

rr

0004h 0005h OTFFh 0800h OFFFh 1000h 1TFFh 1000h 1FFFh

Figura 9.1Memoria de

&irr*t.

prctico Microcontrotadores sobre curso

ade i4K

hasta de2Kdememoria deprograma a ? dispositivos nroJl???lilr' Memoria deprograma 000

EOn-

h2K 'FFh, ,dela ermiia poa hoja ;table-

l.cntador de lf0grama

345

Ildirecciones I""*l*"direcciones)
Memoria deprograma

7FF

asta de4Kdememoria deprograma | )sposlfivos

Dheccin hexadecimal

000

0emo-

os bits isto se un retugram seejeel con-

12 11 Contador de pr0grama "4K" direcciones (1 2-bitrango dedirecciones)

FFF

Figura 9.2Trabajo delcontador deprograna alacceder a lamemoria deprograma ="-i6r . programa puede llegar a sobrepasar l*: lmites de la pgina sin ninguna interven;:'cn del usuario. Todas las actualizacionesque ie hacen sobre el registro PCH afectan inme:',ramente al registro PCLATH. Para dispo:jr-os con menos de 8K el accesoa una posi---lr por encima de las establecidasflsicamenr originar una sobreposicin.Esto es, en un c;positivo de 4K acceder a la direccin :-FFh en realidad direcciona la 7FFh. Dissitivos de 2K o menos no requieren paginr la memoria de programa. Este ultimo tipo de microcontroladores utiliza un contador de programa de 13 bits, permitiendo manejar hasa 8K de memoria de programa sin cambiar paranadala estructurade la CPU. Los dispositivos de 2Ko 4Kignoran los bix mssignificativos del contador de programa durante los procesosde bsquedaen la memoria de programa. Existen dos direccionesdentro de la memoria de progama que reciben un trato especid por parte de la CPU. Cuando la CPU inicia su operacin desdesu estado de reset, su contador de programa automticamente toma el valor de cero. Esta direccin sedenomina aec-tor d resetdebidoa que a ella llegarla ejecucin del programa cuando ocurra un estado de reset. En estepunto seborrnel contenido del regisuo PCIAIH. Fsto significa que oulquier salto hacia la

m04h m05h OTFFh 0800h


OFFFh 1000h

Una memoria de programede2Kslo nece*r.un contador de programa de I I bits para de 1TFFh 1000h (211= 2048 = 2K), r '-.eder a cualquier direccin ll FF Fh 3rra 9.2e.Un microcontrolador con una met nrria de programa de 4K necesitade un contade programa de 12 bits, figara-9.2b. adePrograma -mr

prctico curco sobre Microcontohdores &n*#

Direccin nex.

000 001 002 003 004 005

se puede asignar a est; SERVICIO-INTERRUP posicinparaquela CPU saltea unasubrutinadonla interrupcin. qu haceral aparecer de seestablezca la cual puedeestaren cualquier punto del espaciod. la memoria de programa.

ilt

,.q

-1,*,*
I
I I

Findelastablas PRINCIPAL

Como veremosms adelanteuna de las tcnicas ms utilizadas dentro de los microcontroladoreses el manejo de tablas.Dentro de la memoria de programa es conveniente ubicarlas erel rango de direccionesde 005H a OFFH; esta-. ,ronrrr.PRINOIPAL 250 posicionesson ms que suficientespara l; ysus subrutinas mayora de las aplicaciones.

deinterrupcin El programa PRINCIPAL iriicia su ejecuI servicio y sus subrutinas I cin cuando el PIC sale del estado de resetr Findel cdigo contina funcionando hastaque una de lasfuentes de interrupcin ha aparecidoy requiereatendepragrama enla memoria Figura 9.3Ubicacin cin inmediata; en ese momento la ejecucin direccin del vector de resa(0h) llevar a la prgina0 del programa PRINCIPAL sesuspendetempo' delamemoriade programa.Estolo podemosapreciar ralmente. La CPU empieza a ejecutar la subru en la figura 9.3, donde el contenido de la direccin tina del servicio de interrupcin cuando se car ga automticamente el contador de progra 000H esla instruccin goto PRINCIPAL. con 004H. Cuando secompleta la ejecucin esla 004H, la que la segundadireccin especial seqrga automticamente en el contador de programa en el momento en que octure una interrupcin. Estadireccin secono@como wam dc intemtpcin. Cuando el PC toma la direccin del vector de interrupcin, el registroPCIAIH no semodifica. Como se muestra en la figura 9.3, una instruccin goto Instruccin "call" Micros de2K (rango dedirecciones de11 de4K(rango btg Micros direcciones de12

sERVtCt0_ INTERRUP

servicio de interrupcin,la CPU retornaal mi


mo punto donde abandon la ejecucindel p grama PRINCIPAL. La escritura de programas se complica poco cuando entre el cdigo principal, subrutinase interrupciones,seocupa ms de 2

t,

I
l-

porllamado a usado Figura 9.4Direccionamiento

&rr* #

prctico Microcontrotadores sobre curco

a esta tdonpin, rio de

estcontrola merlas en [; estas para la

Como semuestra en la figura 9.4,los bits0 r i0 de la instruccincall secargan dentro del ;.nrador deprograma y los bits4y 3 del registro {L{TH secargan en los bitsII y 12 delcontar'r de programa. Mientrasla memoriade proutilizada menora 2K los bix 4y 3 del sea sema I\-L\TH pueden serdejados en 00H, de manen quelos ll bitsde direcciones en la instruccin ^-f identificarnladireccinde inicio de cualhasta la direccin7FFH. r;:ersubrutinaubicada Paraprogramas de ms de 2K es necesario scsurarse de que el bit3 del PCLATH seponga cero o en uno de acuerdo a la porcin de la rcmoria de programaque estemos utilizando, .-'ls vezquesellamauna subrutina. La instruc:,on GOTO tambin tiene un campo de direca-,nes de lI bitsy requiere un tratamiento idn=o. \'er figura 9.5.
DG 0x500 F PCLATH,3 :I.1 SUB1-P1

parteni de la memoriade programa ni de la memoria de datosy paraacceder a susposiciones se utiliza un registroespecial conocidocomo puntero a la pila (stach pointer), en el cual no puede escribirse ni leerse. LosPIC de rangomedioposeen unapila (en hardware)de 8 nivelesy 13 bits de ancho; esto quieredecirquepermitela combinacin de hasta 8 llamadosde subrudnase interrupciones. El contadorde programaespuesroen la pila cuandoseejecuta una instruccinde llamadaa subrutinaCALL o cuandoaparece una interrupcin. El valorpresenre en la pila esrescatado cuanse do ejecutauna instruccin de retorno como RETURN, RETL\ o RETFIE. En ninguno de estosdos casos semodifica el PCIATH. Despus de que la pila seha almacenado en ocho ocasiones, el noveno almacenamiento sobreescribe el valor que fue almacenado en la primera ocasin.El dcimo almacenamienro sobreescribir el valor almacenado en la segunda ocasin, como se muestraen la figura 9.6. Es importante resaltarque no existeningn bit en el registrode ESTADO que nos indique cuando seha llenadola pila, de manera que eslabordel programadorverificar que dentro del programa no se haganms llamadasa subrutinasque las soportadas por el microconrrolador.
PILA

ejecureset y s fuenre aten:cucin temPor subru) se carograma cin del r al misdel pro-

; Selecciono Wgirc L(W1-FFFh) ;l1ono subrutino ubicodo en 1o ;p g i n o L (8 0 0 h -F F F h ) , ;subrutino llomodo en 1o ;p g n o 1 (8 0 0 h -F F F h ) ; retorno o1 llomodo de to ;s u b ru ti n o e n l o p g i n a 0 ;(000h-7FFh)

Ox900 s.81_P1:

plica un l, tablas, s de 2K.

delllamado deuna subrutina enlapgina 1 fttra 9.5Ejemplo


desde la pgina 0
i ti t'!{l

Dcimo nivel

Sobreescribe nivel 1 Sobreescribe nivel 2

de K (rango 12bifs) de

b a subrutinas

; pila esun espaciode memoria que contiene la :eccin de retorno antes de que ocurra un salto .-ntro de la ejecucin de un programa. Al mo::nro de ocurrir un salto dentro de un prograi: en la pila se almacenala direccin en donde ;e estaballevando a cabo la ejecucin, tomando = r-alor del contador de programa. De esra mar.ra. la CPU cuando termina de ejecutar la suinrrina, puede consultar en la pila la direccin ie retorno para continuar con el desarrollo nor=.I del programa. El espaciode la pila no forma

Figura 9.6Comportamiento delapila

prctico Curco sobre Microcontrotadores &arr*#

L)L Lruemcrie elrLcs tniclccctru'clec.n-.s


registro PCL ( y por consiguienteel PCL.I TH<4:0> --> PCH), el PCH no puedemodir carse(escribirse) directamentepero puede m, dificarsecuando vara PCL, y cualquier moc ficacin oue sufra PCH serefleiainmediatame: te en el PCLATH. La situacin muestra como se cargael PC duran , 1:instruccin PCL destino Situacin con c0m0 (PCL.(13-bits Pila x 8) una instruccin GOTO PCH PCL TH<4:3> --> PCH) yvemos como l, 12 B7 bits 3 y 4 del PCLATH (establecid por el usuario) afectanel contenido c. A 4:o' | 8 contador de programa. Como vim incorporando un anteriormente, de estamaneraacceiresultado delaALU mos a pginassuperiores en Ia mem enPCL ria de programa.La situacin 3 mu. PCLATH tra como se cargael PC durante u: Situacin 2: c0mportamiento ante unainstruccin G0T0 instruccinCAIL (PCIAIH <4:3> -(13-bits Pila x 8) PCH PCL PCH), cuando el PC seha cargado.12 1 1 1 0 8 7 0 la cima de la pila (stack)y como. I I igual que con la instruccin GOTI el PCLATH afectaal contador de pr 2 / PCLATH<4:3>t 1 1 grama. La situacin 4 muestra cor' Incorporando uncdigo < 10:0> operativo enPCL secargael PC durante una instrucci,-' [rrr]-l-l-T i r I rlr rrli de retorno (RETURN), donde el f PCLATH es cargado con el valor que hay en cima de la pila. Situacin CAL3:instruccin (13-bits Pila x B) 13 # PCH PCL En muchos programasen lengu. '12 1110 87 I 0 ensamblador es necesario construir :blas de datos para distintas aplicac. nes.LJnode los mtodosms comur.. t1i para accedera estastablases sumar Incorporando uncd tg0 operativo<10:0> valor determinado al contador de p: grama (ADD\F PCL). Cuando in'. PCLATH camos una rutina de tabla el PC to, 4: comportamiento ante unainstruccin deretrono Situacin esadireccininicial y al sumarleun' , (1 Pila 3-bits x 8) Por ejemplo, Return, Retfie, o RETLW. lor fijo llega a la posicin de la ta: PCH indicadapor dicho nmero. En un c12 1 1 1 0 B7 como ste,al sumarleun nmero d. I bits,latablaslo podr llegarhastai' I A posiciones de longitud. | 11

La figura 9.7 muestracuatro situaciones en donde podemos estudiar el comportamiento del contador de programa (PC). La situacin 1 muestra como se carga el PC al escribir en el

m_tiTil
PCLATH
.(ffi' a t

Cualquier escrituraque sehaga, bre el contador de programa(PCL), c' Figura9.7 Comporlamiento delcontador deprograma ginarque los 5 bitsbajosde PCIAI se carguenen PCH.

Incorporando uncdigo operativo<'l 0:0>

dttb

&f,

&fm).

prctico Curso sobre Microcontrotadores

1'eor[
,LA,difimo10dimenn2 .rante :abamosmencionadoanteriormente, esta -' . :e se divide en dos partesfundamentales: '. . je registros (SFR: con funcionesespeciales FtntctonRegisters) y eI reade registros de .i:o (GPR: Purpose general Genera/ Register). IIIDF IfrlR0
PCL 00h 01h 02h
]IIDF

Los registrosde propsito generalrepresentan el readisponibleparaque el usuarioalmacene sus datosy desarrolle susoperaciones. Los registros con funcionesespeciales conrrolanla operacin del dispositivo;por ejemplo,poseenlos puertosy los registrosde control para establecer el funcionamienIHDI
PCt 100h ffiF 180h 181 h 182h

-L Ano los :cidos do del r-imos ccedenemomuesrteUna t3> --> :adoen lmo, al rOTO' de proa como .ruccin le el PC .av en la

80h

OPTIOII-BEG B1h
PCt SIAIUS FSR 82h 83h 84h B5h 86h 87h BBh 89h

OPTION_BEG 101h 102h

fFfrftl_ffi ?9.

STATUS 03h
FSR 04h

STATUS 103h
FSR 104h 105h PORTB PORTF 106h 107h '109h PCI.ATH 1OAh 10Bh 1Och 10Dh 'l0Eh 1OFh 11 0 h 111h 112h 11 3 h 'I14h 11 5 h 11 6 h 117h 1l 8 h 11 9 h 1lAh 11Bh 'l 1 c h 11Dh 11Eh 'I1Fh

,sfmw' 1B3h
184h 185h

PORTA 05h
POHfB 06h

TRISA
TRISB TRISC TRISD TRISE

' ,P0Xm
P0f6:,;

186h

PORTC 07h PORTO 08h PORIE


09h

POfilF,;,' 187h
188h 189h 18Ah 4ff11i lIfGffi':r ' 1BBh 18Ch 18Dh 1BEh 18Fh 190h 191 h 192h 193h 194h 195h 196h 197h 198h 199h 1gAh 1gBh 1gch 1gDh 1gEh 1gFh 1Aoh 1EFh 1Foh

PORTG 108h

PCLAITI 0Ah ilfTcltf{ 0Bh PIRl PIR2 TMR1L TMRIH


TlCON 0ch 0Dh 0Eh 0Fh 10h 11h 12n

PCLATH BAh {TC0f{ BBh


PIEl 8Ch BDh 8Eh

rNTCot{

PIEZ PC0l{

OSCCAL 8Fh 90h 91h PR2 92h

I[4R2 T2CON

SSPBUF 13h

ssPcoN
lenguaje struir tarplicaciocomunes sumarun lr de Prondo invoPC toma ule un vaie la tabla En un casc mero de E hasta25(

14h

SSPADD 93h SSPATAT 94h


95h 96h 97h

CCPR1L 15h CCPR.IH 16h

ccPlcoN 17h
RCSTA 18h TXREG 19h RCREG 1Ah TXSTA
SPBRG

98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh

ccPR2t ccP2c0N
ADRES

1Bh

CCPRzH 1Ch
1Dh 1Eh

ADCONO 1Fh
20h

Registros de oroosito 'geherdP)

ADCONl 9Fh Registros de A0h propsito^. (r, general Mapeado en el Banco 0 79- 7p(+)
Banco 1

Registros de 120h propsito^.


generallq

EFh

sehagasoPCL), ort' : PCLATF

Mapeado en elBanco 0 76 - 7rl)


Banco 2

16Fh 170h FFh

neo*:r
Banco 3

sm'0 70it -7$i{f 1FFh

Banco 0

general Figura9.8 Estructura de la RAM

cu rsoprctico sobre M icrocontrotadores &k,

*:

&

&d

to de cadauno de los pinescomo entradao como que permiten salida.Contienentambin regisuos de my salidade datosparala variedad la entrada comotemporizadores, dulosdel microcontrolador, etc. conversores anlogo-digitales, seriales, puertos Thmbincontienenbits decontrolqueseleccionan el modo de operacinde los mdulos del microcontrolador,al igual que puedenhabilitar o deshabilitar su funcionamiento. fistrtcturr en bancos la memoriade datos(RAM) de los microcontrolaCada bancos. doresPIC se ha didido en cuItro SFR y GPR Paa uno de elloscontieneregistros hay estos registros, con cualquiera de podertrabajar que estarubicadodentrodel bancocorespondienrequiere corgute. [ conmuacin entrebancos (STAde estado rar los bits RPOy RPI del registro la tabla <7:5>) lo mostrado en TUS de acuerdo a de la un mapageneral 9.1. t figura 9.8 muestra PIC, correslos microcontoladores que RAM para esundar para todos los ponde a una organizacin l,os esa familiadispositivos de en regisuos queseencuentran seencontrarn negrilla siempre RPO enel en cualquierdispositivo.lns Dff registro de estado dependen dela demsregisuos quepo- Direcciones cantidad deperiftricos seael PIC; por esoconene efectivas mirar en lashojasde datoslas caractersticas de ca dispositivo en panicular. En la estructura de los registros en la quesemuestra figura 9.8, sepuedeapreciar direcciones que ellosposeen la dien8 bitsquevan desde El reccin 00H hastalaFFH. modo de direccionamiento directo utiliza slo 7 bits de la instruccinparaidentifi car la direccinde un registro, el octavo bit de la direccin debevenir de un bit (PoD) el bancoderequeselecciona

gistroscon el cual seva a trabajar. En general, paramovervalores de un regisuohacia otro, el valor debepasarse a travsdel regisuode trabajo(\X/).Fsto

Tabla de losb= 9.1 Configuracion y B> RP1

significa que paracualquier movimiento de datose:ue regisuosserequieren dos ciclos de instruccin. d. Toda la memoria de datos puede accederse recta o indirectamente. El direccionamiento direc-

to requirede la configuracinde los bits RP} RPl. El direccionamiento indirectorequiere la uo lizacindeun registro especial conocidocomo (Fih Selct fugtttu) y el bit lW (IndirectRegi Pointer)que hacepartedel registrode estado. dianteellossepuede acceder a losbancos 0,1,2o de la memoriade datos.
Dreccn nex. Contenido delarchivo

000

@ E

/',i

.9. g)
o) CE

o
@

./ii

q)

x U

=
CE

Figura Modo dedireccionamiento 9,9a

&m #

prctico sobe Microcontotadores cuso

leor[a
)ct0 1P0)

delcdigo informacln cdigo oFerativo O U

dela posicion Selector

osbts l yRPl iosen:in. di:rse direcr RPOY e la utino FSR Regixa' io. Met.1,2 o3

Cada banco se extiende hasta 7FF{ (128 bytes). Las posicionesms bajasde cada banco se reservanpara los registroscon funciones esMemoria de datos (SFR).Debajo de los SFR se encuenpeciales de propsito gene7Fn tran ubicadoslos registros registros SFR Es algunos ral. de resaltar que 3 I Ba n co 2 Banco Ba n co 0 Ba n co genenl directo del banco 0 se han puesto tambin en otros del modo dedireccionamiento Esquema lta 9.9b espejo)para facilitarsu acbancos(posiciones :r la figura 9.9a se muestrala utilizacin ceso.En la figura 9.10 se muestraun mapa de a algunos -::eccionamiento directo para accederal memoria de datos correspondiente PIC de 18 pines,en donmicrocontroladores - ,::o ubicado en la direccin 14H o 94H, : -::diendo del valor de RPO,y en la figura de podemos apreciar algunos registrosquema: : . muestra un diagrama generalde este nejan la ubicacinen espejo.Por ejemplo el re:- direccionamiento,en el cual observa- gistro de estado (STATUS) se encuentra ubica03h y B3h. Direccionando ,,,mo los 7 bits del cdigo operativo de do en las direcciones cualquiera de estasdos posicionespodemos acDirecciones cedery trabajarcon dicho registro.
IIIDF 00h 01h

Ia instruccin (OPCODE) son utilizadospara de memo ray los bits direccionar lasposiciones RPO y RP I del registrode estado,pueden ser los utilizados para direccionar o seleccionar distintosbancos.

IIIDF
PCL

80h 82h

Este modo de direccionamientosobre la memoria de datos es apropiado en casosdonde STATUS 83h STATUS 03h las direccionesde memoria que se manejan rsn 84h FSR 04h dentro de una instruccin no son fijas, es deTRISA 85h PORTA 05h cir cuando se tiene el caso de que queramos TRISB 86h trabajar con datos que se encuentren distriPORTB 06h buidos a lo largo de variasposicionesde mePC0l{ 87h 07h moria. En este caso el direccionamiento inADCONI/ 88h ADCONO/08h e) directo nos brinda una manera rpida de acEECoN1 EEDATAE) ceder a todos esosdatos, utilizando un regisADRES/ 89h ADRESi 09h tro especial(FSR) como apuntador a la posi(2) EECoN2(2) EEADR cin en la memoria de datos que se quiere PCLATH 8Ah PCLATH 0Ah acceder. Como esteapuntador es un registro lltTcoll 8Bh r1{TC0N 0Bh en RAM, sus contenidospueden modificarse 8Ch 0ch dentro del programa y de sta manera apunRegistros de de Registros tar a muchas posicionesdistintas;esto puede propsito^, oroosito (r' (s) general geheral ser muy til cuando trabajamoscon tablasde datos ubicadasen la memoria de programa; FFh 7Fh un ejemplo de estemanejo lo podemos apre1 Banco Banco 0 ciar en el proyecto 5 de este curso titulado 3igura9.10Mapade la memoria RAM de microcontroladores Aviso Luminoso con Diodos LED. PIC de 18pines
PCL

TMRO

0Pftoil_REG8 1 h

02n

directc - ento

prctico sobre Microcontrotadores curso &fff't

$)

Lnreincr[ euLs nrlcrcccrruclares L)L


Drecc n hex

00

nstrut cron orientada a bito a byte

que L ad rre c c i d oe nIN D F nos di ce el FSR seusa como aputador 7F BO


OA

posicin Accesa cualquier entodo e lespaci de o di recci ones

FF

Figura 9.11Modo dedireccionamiento indir:: En eseproyectoseescribiuna seriede datos en diversas posicionesde la memoria de programa, los cualesdeban ir mostrandose secuencialmente en Ia pantallade diodos LED. Pararesolver eseproblema, simplementese acudi al registro FSR para que hiciera un recorrido por todasesas casillas y pudieramostomar el dato. En estemodo de direccionamiento, la direccin (en 8 bits) del registroque se va a acceder, se escribeen un registro especial (FSR) que sirve de apuntador a cualquier punto del mapa de memoria RAM. Despusde haber escrito en ese registro, se puede consultar otro registro especial llamado INDF el cual acceder el registrousando el contenido del FSR como apuntador a la posicinde memoria deseada por el operando,figura 9.1 l. Cualquier instruccin que utilice el registro INDF puede accederal registro apuntado por FSR.
,4.;' a #

Si intentamosleer manualmenteel reg tro FSR, solo leeremos00H, y si intentam escribir un dato sobre 1,resultarun esta de no operacin(NOP). Podemosgenerarc reccioneshasta de 9 bits, concatenandoel ,. IRP (STATUS <7>) con los 8 bits del regisr: FSR, como se muestraen la figura 9.12.
IR P

n-rT-[-__
I I

Registro FSR

Selector debanco Selector deposicio

.___l
Memoria de datos 7Fh
B anco 0 B anco I B anco 2 B aco 3

Figura9.12Direccionamiento indirecto clncatenandlel bt :

Ito"b

\.. z

&lcl".L

prctico curso sobre Microcontrotadores

R87 RB6 RB5 RB4

v0D

T RB3 t.

RB2
RBl RBO

(0

E O-

3 indirecto

0sc1 0sc2

RESET

Vss

:l regisntamos l estado lerardiJo el bit registro 12.

e-r =

TA EEPR|M IIEDATfl$ EIU tf|S MISR|G|IUTR|TfiII|RE$ PIG


En la leccin 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 separadode las dos anterioresy que ha representado la solucin a muchosproblemas dentro del diseo electrnico.Al final hablaremos un poco de las memoriasseriales que tambin ocupan un lugar relevanteen una electrnicos. gran variedadde sistemas

ndo etttRP

pnctico curco sobe Mictocontotadoes arr*#

I
Hemos visto las distintas tecnologas que tienen los microcontroladores para su memoria de programa: FIASH, EPROM, EEPROM, OTB etc. Una vez se ha programado un microcontrolador, independiente de su tecnologa, la memoria de programa puede ser considerada como una memoria ROM, ya que no podemos escribir sobreella en el transcurso normal del sistema,a pesarde que luego podamos retirarla del circuito y programarla nuevamente. En muchos c:uos vamos a necesitar,por ejemplo, recolectar datos del mundo exterior y dmacenarlos,para lo cual necesitaremosuna memoria en la cual podamos grabar los datos y tener la ecern all y no se perderin. ceftezaque \erm Existen muchos dispositivos EEPROM disponibles en el mercado. EstoSse pueden clasificar en tres tipos generales:EEPROM seriales, EEPROM paralelasy microcontroladores con EEPROM de datos internas, como por ejemplo los PICl6F84, l6F870y l6F87X de Microchip. Analicemos el funcionamiento y uso de las memorias EEPROM que seencuentran en algunos microcontroladores PIC y de las memorias EEPROM seriales,por ser estasltimas muy comunes en muchas aplicacionei.
Tamao de la EEPR0iil de datos Rango de direcciones

64 128 256

0h- 3fh 0h- 7fr1 0h- ffrl

Tabla l0.l Tanaio delaEEPB1M dedaWy sunnp dediecciae.

Algunosdispositivos programadores puede: grabar la memoria EEPROM de datos. Esu memoriapuedeserledao escritadurantela ejecucin del programa, siendoun bloquecompler tamenteseparado de la memoriade programa (RAM), delosarchivos deregistros ypuedeusarss paraalmacenar cudquier tipo de datos. El rangodedirecciones de esta memoriaesac
cedido colocando la direccin en un registro

cial (EEADR) y comunicando losdatospor deouo registro especialllamado EEDATA ls tos sonledoso escritos en un ba il tiempo.U slobitno puedeserleldo o escrito.Seusan registros de funcionesespeciales paraleery escriti enIaEEPROMdedatos. loscuales semuestran la tabla 10.2.
Dircccin EEADR 0X09->direccin 8 delbanco 0 EEDATA OXOS EECON10X88->direccin 8 delbanco 1 EECONzOX89 para Tabta 10.2Registros especiales etmanejo h
EEPR0M de

internas Mernorias EEPROM


y esla memoria EEPROM de datospuede leerse cribirsedurante la operacinnormal de un sistema. En esta memoria se pueden almacenar datos.y variables para que no sepierdan cuando sedesconecta la alimenacin del sistema. Analizando los requerimientos de la aplicacin, puede ocurrir que estamemoria seasuficiente y no setenga que recurrir a memorias externas. Estetipo de memoriassoporan ha$a 1.000.000 de cidos de escritura/borradoypueden gurdar la informacin sin alterarlapor rrrs de 40 aos.Esa memoria no seencuenaen el espacionormal de archivos de registro;en lugar de eso,debeserdireccionada En la indirecamente a trav6 de regisuosespeciales. ofrecen acn:alidadlos microconuoladoresPIC 16oor hasta256bytesde memoria EEPROM; vertabl 10.1.

El tiempode escritura esde te 10 milisegundos y escontroladopor el


rizador que hay dentro del circuito integrado.

realidadese tiempo resultamuy largoparala cidaddel procesador,por estemotivo existen rios bits en otro registro especialdenomi EECONI parasupervisar la completay terminacin delciclo,figura 10.1.Analicemos
registrosasociados d manejo de estamemoria:

Irt'.AllR. El registrode 8 bits EEADR es de direccionar un mximode256 posiciones. rango de direcciones utilizable lo podemos en la tabla 10.1.

leor[a
limpia cada vez que se enciende el sistema.El ir'STRERRsepone en uno cuando un ciclo de escri:: tura seinterrumpe por un reset de- . : t ur a :.:neenunocuando seva a realizar unciclo de lectura de la EEPR0M. Lueoo bido al pin MCLR o al watchdog. : =; - : :eroautomticamente. Despus de un reset,por medio r : i- . : ' t ur a i; :,:-e enunocuando se inicia unciclo de escritura en la EEPR0M. Cuando se de un programa, se puede chepasa :::-- r.a elciclo a cero automticamente. quear el ir \fRERR y reiniciar r, q? r r:.- sodeescritura el ciclo interrumpido de escritula escritura enla EEPR0M ra. Las direcciones y los datos se :-i --'-e=elaescritura mantendrn sin cambios en los u: : : : : : ializ a d o dree n o r d ee s c ri tu ra registrosEEADR y EEDATA. prematuramente :.:"eenuno cuando una operacin deescritura haterminado
EECONl deescritura sehacompletado conectamente. - ' :aeracin

ecct0nes ueden . Esta la ejermpleramay I usarse

ia esaco esPer medio Los darpo. Un n cuatro 'escribir stran en

-.1

0l

I rl
-)

:1: :.' . zador definal deooeracin deescritura que sealizador sepone laoperacin a 1 indica deescritura seha Se inicia un ciclo de lectura colo-.-:-:oeste programa. :::'-: etado con xito. Sepone a 0 por . :ceracin cando la direccin que seya a acdeescritura'no sehacompletado. ced" en el registro EEADR y poFiguratl.t Regstro decontrol detaEEpR\M dedrto, niendo el bit RD = 1 en el resisEs un registrode 8 bits queseusapara tro EECONI. En el siguienteciclo de insrruc-iatos desdey hacia la memoria EEPROM cin, los datos estarndisponibles en el registro -.,: :::OS , EEDATA y permanecern all hastaque se realice una nuevalectura o escrituraen la EEPROM. Este no es un registro fsico, sin em- ---: la direccin 0x89 esasignada a 1. Al leerlo EEADR se localizaen el banco 0 (RAM) y ': : sus bits soncero.Slo seempleacomo un EECON1 en el banco 1, de manera que se recada banco dentro del cdi-. :. .irivo de seguridad durante el proceso de quiere seleccionar : : :'ra de la EEPROM, para evitarlas interfe- go, figura 10.2. ': - :.r-ien el largo intervalode tiempo que preci- - jesarrollo. En l seescribendos palabrasde -::ri r- forman parte del ciclo de escritura. Este es el registro de control y tie. incin de controlar las operaciones en ::lROMl su distribucin de bits se muestra - . ligura 10.1, y su descripcinesla siguiente. bits de control RD y \lR inician la lec"- -. " .a escritura.Sedeber tener en cuentaque jtsslo pueden ser colocadosen uno (no :: '., , : -:len colocar en cero) por sofiwarepara que - - -: el ciclo de escritura/lectura. Estosselim- -.- ,ltomticamente al completarseun ciclo - : :::ura/escritura. - :ra operacinde escrituraesvlida cuan\WREN se - tit \REN se pone en uno. '-

dela nneio )Mdedatos radamen:ltemporado.En ia la,reloristen varominado \- correcta i..-o, lo, emoria: { es caPaz EI iciones. lemos ver

''

Figura 10,2Diagrama de flujodelciclodelectura en la EEPB1M de datos

prctico curso sobre Microcontrotadores &irr*:

&

f:.jernplo tlc lectur de la F]tr.l]ROM:


movlw direccion mowf eeodr bsf bsf bcf movf stotus,rpO eeconl,rd stotus,rpO eedoto,w ; ; ; ; ; ; ; defini.r dtreccin o leer infornor lo direccin o1 regi.stro bonco 1 bit de tecturo banco 0 dotos hoci.o ly

DE LA EEpRfi-;-+,|ANEJo tist P=16c84 ' radtx hex

ticlo deescritura
El ciclo de escrituracomienan cargandoen EEADR la direccindela posicinqueseva a escribiry con el regisuoEEDATA el vdor queseva a grabar. Despus sedebeaadir una secuencia de instruccionesque inician la escritura, en la cual participa el registroEECON2. Esteregisuo,queenealidad no sehallaestablecido fisicamente, sloasume funcionesde seguridad en el proceso cargndose en l dosvalores concreros:55H y AAH. El tiempo de estos pasos esun rspecto crtico, de maneraque se recomienda quesesigaestasecuencia. las interrupciones debendeshabilitarse mienuasseejecuaesre procedimiento. El zr\[RENen EECONI debe ponerse en uno parahabiliar el't7RITE. Estopreviene escriturasaccidentales en la memoria EEPROM de datos. El z\IREN debeponerse en ceroen todaslasocasiones, excepto cuandoseejecuta\7RITE, ver figua 10.3. AI escribirun dato en estamemoria,seborra automticamente el dato anterior y segraba

; lllAPEoDE MEITORIA stotus equ portb equ eedoto equ eeadr equ direccion equ byte equ tri sb equ eeconl equ eeconz equ DE BITS ;I.OPEO rd wr wren ?P0

Ox03 Ox06 OxQS 0x09 OxOc OxOd 0x86 0x88 0x89

equ equ equ equ oro bsi novlw mowf bcf cl rf movlw mowf rovlw movwf colt bsf btfsc goto bcf coll mowf

0 1 ? 3 OXWO stotus, rpo b,W' trisb stotus, rpo portb s'ow LO, byte OxO0 direccion escrituro stotus, rpo eeconl,wr escrcompleto stotus, rpo lecturo portb ciclo direccion,w eeodr ;direccion hoci.o ; boncol ; leer ;doto de to EEPKT ;doto-> r ;retorno doto ;en ,

i ni ci o ' '

;bonco 0 ;byte de iryueba a g?abor

escrcompleto

ciclo lecturo

goto movf novwf bsf bsf

;mostror ;doto en el puerto

stotus,rpo eeconl, rd

Figun 10.3 Diagnma deflujo detcclo deescritura enlaEE1R1M

ffi

ry ry

bcf stotus,rpo movf eedoto,w return


escrttura movf novwf movf novrrf bsf bsf movlw mowf novlw novrvf bsf bcf escrituro bcf return stotus,rpo direcci.on,w
eeodr byte,w eedoto

stotus,rpo
eeconl,vyren

0x55 eeconz Oxoo eeconz eeconl,wr eeconl,wren

;hobilito

escri

; deshobilito ;bonco0

end ; FUSIBLES: MEI.ORIA DESPROTEGIDA ; DESHABILITADo ; WATCHDoG 4 l.lttz ;CRISTAL ;P0ltERUP TIttlER0ll

frgun lM dip deejmicio y esritunenta detectun

&n;

cuso pnctico sobre nicmcor,frotado?s

I
permiteahorrarpinesdel microcontrolador;al igual que ocupanpoco espacio y consumen pocapotencia. Cuandoseha decididopor el uso de estetipo de dispositivos, el paso siguiente esseleccionar uno delosdos protocolos posibles decomunicacin con la EEPROM serial( 2 o 3 hilos). La eleccinde los dos hilos se
debe hacer para aplicaciones que reqrta 10.5 y escritura Diagrama esquemtico delectura entaEEPRyM des quieran bus IzC (este es un mtodo ' :iEvo. El tiempo de escritura es controlado de comunicacin de datos serial que estudiare:.:r =i temporizador (timer 0) del PIC. Este tiemmos ms adelante),inmunidad al ruido y dispo: :uede variar segnlas condicionesde voltaje nibilidad limitada de pines. La eleccin de los ; =:'rperatura, al igual que entre diversos tipos tres hilos esconveniente en casos de requerimien.r ::cuitos integrados. tos limitados de protocolos, un protocolo SPI (otro mtodo de comunicacin serial), alta frecompletar el ciclo de'IIRITE, el bit\XIR cuencia de reloj o en aplicaciones de 16 bits. -\l ;r :\f,ne en cero automticamente y se activa la n:.lera de escritura completa en EE. El prograBrs clc tr*s hilos. En estegrupo se encuentran puede detectar si el ciclo de'SIRITE se ha los dispositivos con la nomenclatura 93)OOO( -,' :, -rplido habilitando estainterrupcin, miranEn ellos se requierencuatro pines. o - banderaEEIF o el ir\MR.Los bits EEIF y Tf.E\ deben ser limpiados por programa. En llus dc clos hilos. La nomenclaturacomn es Egura 10.4 vemos un ejemplo de manejo de 24)CCCK,y 85)OOO(, ver tabla 3. El protocolo ",le -e-:rra v escritura en la EEPROM y su diagrama IzC utiliza comunicacin bi-direccional maestro/ s-emtico se ve en la figura 10.5. esclavo.Thnto el maestro como el esclavo pueden operar como transmisor o como receptor. Una buena precaucin consisteen verificar La operacin dd bus debe ser manejada por el ; escriturade la EEPROM ha sido correcta, maestro, quien generala seal de reloj serial y las : lo cual se suele restar el dato escrito con el condicionesde inicio de detencin. orr existe en el registro EEDATA. Si no se ha r:.lucido erro el sealizadorZpasaavaler 1. Estas memorias tienen un pin o terminal llamado SCL que recibe los pulsos generados hr:' :.3s HH)fitM serrales por el maestro, y otro llamado SDA que maha surgi- neja el flujo de datos bidireccionalmente.Este L:ecnologa de las memorias seriales ,o: ;omo una solucin para sistemasque requie- dispositivo no requiere de un pin habilitador, rr baio tamao y poca potencia. Entre susprinya que en este esquema la transferencia de in:rles ventajas se cuentan: formacin slo SE puede iniciar cuando el bus estlibre. Cada memoria tiene su direccin de. pueden conectar fcilmente con microproterminada mediante los pines A0, A1 y A2; en ;:sadores o microcontroladores, incluso algu- una red slo responderla memoria cuya di:os de ellos tienen oines dedicados a esalabor. reccin coincida con la direccin que va enca. l:ansferenciade daios de maneraserial,lo que bezando la trama de informacin.

prctico curco sobre Microcontrotadores &<n:.#

:l
+5V +5V

RB7 RB6 RB5 RB4 RB3

VDD

^ vcc^
od

2b lc 7E
c:l

d
e f

ctt (0

RB2
RBl RBO

A.

GND

F lrl
=

osc1 0sc2
VSS

a
memoria Figura 10,6 Ejemplo delmanejo deuna muestra en el display se va a almacenar sim tneamenteen una memoria 24LC0I.En caso,los pines de la direccin se conectaro: tierra, al igual que el pin \lP La resistencia 4.7 Kohm conectada al pin SDA es neces dado que dicho pin tiene salida de colec abierto. El display se conecta al puerto A '.' pulsador al pin RBO, figuras 10.6 y 10.7. El programalleva el control de la cuenta mal y almacenaen la memoria el mismo dato se enva aJdisplny, El cdigo de este ejercicio disponible en nuestra pgina en la internet, er
enlace , *! ' ! : '. .

entablar Cuando un'microcontrolador desea comunicacin con la memoria, debeenviadeuna seriede bits que lleven la siguiente informacin: 1.Seenva el bit de arranque 2. El cdigo 1010 (propio de estasmemorias) 3. La direccin del dispositivo (A2, A1, A0) escribir ('0') en 4.Un bit que indica que sedesea la memoria Despus de esto, la memoria debe enviar un reconocimiento para informarle al microcontrolador que recibi la informacin. Dicha seal, llamada ACK, consisteen poner el bus en un nivel bajo (lo hace la memoria). Despus el microcontrolador debe enviar los bits que.corresponden a la posicin de memoria que se quiere leer o escribir; nuevamente la memoria enva un reconocimiento. El paso siguiente depende de la operacin que se vaya a ejecutar.
. I , i : ,,j,:" I .

En esteejemplose har un contadorde 0 a 9 de siey un display con uh interruptorpulsador figura 10.6. El nmero que se te segmentos,

Figura 10.7Montaje del

&<t,, #

prctico sobre Microcontrotadores curso

,b x'

//

seral 'oria

simulEn este :rarona :nciade ecesaria colector oAyel

0.7.
:nta decidato que :cicioesta
TIet, en e.

mstilesque Una de lasherramientas nosproporcionan losmicrocontroladores es la posibilidad de manejar interrupciones. Las tcnicas disponibles muy paramanejarlas debenentenderse al mximo bien parapoderaprovechar los recursos que nos y posibilidades puedenbrindar estos dispositivos.
z e delelerctc

prctico curso sobre Microcontrotadores &kr*l #

LJnainterrupcin es un evento que obliga a un sistempro..r"do. a desatende,io, .rn omenro la accin que se encuenrre ejecutando dentro del desarrollo normal de un progr"-" y llamar a una subrutina. la cual ,rr,r"l-.rrt. ,. denomina rutina o servicio de interrupcin.

un estado de reset(o estado de volve: :tigiil inicializar el sistema),el Contadar dz Prograt dirige la CPU a la direccin 000H; un Prograi que incluya interrupciones generahlerlte Se: tructura como se muestra en la figura I l.l.

1[f, l i rl l

,ill,ill[

ilt

I|tlltu

| Lasfuentes de interrupcinmsutilizadas I I incluyencambiosde nivel, flancosde sul ' ' de bajadaen algunos pinesy desbordes::"il lror*, es temporizadores, decir,cuandosellenancom- I principol ; p.o groma (FFH) y pasande nuevoa 00H. pletamente ; | La cantidad y el tipo de interrupciones depen- IINT-SERV: ; rutino de interrupcin den de cadareferencia de microcontrolador; | la lista es la siguiente: Figura Figura ll.1 ll.l Ubicacin nvrmal normal ubicacin dela de larutina rutna de de intenup:t intenup:w . Por el pin INT (denominada interrupcinexterna). Es cuando al microcontrolador ingresa un flanco por un pin determinado(INT).

oRG oooq G0T0MArN oRG @o4H G0T0rNT-SERV

Al retornar a la direccin donde se e:


contraba antes de la interrupcin, se pueir perder la informacin de algunos registrr,

TMRO del temporizador ' Por desborde . Por cambio de nivel en el puerto B (pines RB7:RB4). . Debidaal mdulo comparador ' Debidaal puertopardeloesclavo ' Debidaal mdulo USART . De fin de conversin del mdulo A/D . Debidaal mduloLCD en la memoria EEPROM ' De fin de escritura de datos
. Por desbordede los temporizadoresTimerL y Timer2 . Debida al mdulo CCP

como el de trabajo (W y el de esrado,por cual es responsabilidad I del programador cer una copia de ellos. Tal vez la manerams adecuada de ha; estaoperacines a travsde un segmento , cdigo dispuesto en el interior de un lrl CRO. En la figura 11.2 se muesrraun ejer plo en dondesealmacenan y restauran los: gistrosW y ESTADO. El registro\_TEI
debe definirse en todos los bancos y en misma posicin tomando como referencia direccin base (por ejemplo, 0x70, 0x7F

. Debidaal mduloSSP
Cuando apareceuna interrupcin, el procesadorguarda en la pila (stach)la direcein de la instruccin en donde seencontraba y el control del programa se dirige hacia la direccin donde se encuentra la rutina de interrupcin. Cuando sta termina, recupera la direccin de la pila y vuelve al lugar exacto donde abandon el programa. En el mapa de memoria de programa de los

el banco0). Los pasos que se siguenpara


solucina esteproblemason los siguientes: 1. 2. 3. 4. Almacenar\W'en el banco actual Almacenarel registroESTADO en el Ejecutar la rutina de interrupcin RestaurarESTADO (y el bit de seleccin banco) 5. Restaurar'W

Cada uno de los tipos de interrupcin den habilitarseo deshabilitarse, el usuario es

microcontroladores PIC existe unadireccin asig- controlalasfuentes de interrupcina travs de nada(0004H) paraubicarla rutina. Cuandose registro especial llamado INTCON, figura 1l dtt%

&fl

kt,:

prctico Microcontrotadores curco sobre

Lorla ': :
r'ef a 'arnd rama ;e es-

l
j
terruPcin se enpuede gis tros' . Por lo dor haie hacer rento de un MArn eiemrn los resvenla Ia -'rencia 0x7F en n para dar .ientes:

;CPIARIt{ B,l.N REGISIR0 ;TEMPOML ,-1iDAREL ESTADO NO ES TANSENCILLO .T :I..JE MOVF ESTADO,W AFECTARA LOSBITS ::- VISMO REGISTRO ESTADO, PERO LA :\)-RUCCION NO LOSAFECTA SWAPF :,-i ESOLA PODEMOS UTILIZAR

mina el habilitadorgeneral o global.Es decir, las interrupciones se habilitan si se escribe BSF INTCON,GIE o se deshabilitan si se escribe BCF INTCON.GIE.

Registro: INTCON

I|'::tr ESTAD.,1 EL REGISTRO ; GUARDAI',|DO GIEPEE TOIE INTE RBIETOIF INTFRBIF I::E ESTAD',0 ;DE ESTADO {"'IF ESTADO-TEMP bit7
bit0

SERRESTAURADOS. --:50 DEBEN l'rrtr ESTAD0-TEMP, 1 ESTADO ; RESTAURAND0


:ill.tF ||f'.tF :il:ttr :ilT'F ESTADo_TEMP,0 ESTADo ff-TEMP, 1 lll ;RESTAURANDO W-TEMP, O

Direccin: condicin de reset GfE:

()Bh 0000000Xb

guardar Figura 11 .2 Ejemplo donde seilustra como las PE|E: copias deseguridad :. importante aclararque los microcontro.-: , :-s que solo cuenten con una interrupcin - -,:Julo periferico (por ejemploel 16F84),han -=-.:.azado el bit 2 (PEIE) por otros como el ::-: el ADIE, que corresponden a interrup-..i .como la de la EEPROM de datos.
T0lE:

fNTE:

RBfE:

'-TEMP

lambin hayqueteneren cuenta queen al(INTF) microcontroladores el 1 no se TOf bit -,s ---. F: : - =flt contemplado. Por estas razones es . -'..:nienteverificar el mapa real del registro . - CON paracada tipo de microcontrolador. t ada una de lasinterrupcionespuedeusarse : puedenhabilitarvarias, dependiendo de " l S - =jcacin. En cualquierpunto del programa, . .uaio puede desactivar alguna de esas inte*-:riones borrandoel bit correspondiente:
-: INTCON, INTE; int. externa -: INTCON, RBIE; int. en RB -: INTCON, TOIE; int. por el TMRO

general Global lnterrupt Enable o Habilitador de interrupciones. 0: deshabilita todas lasinterruociones 1:habilita lasinterruociones Peripheral lntenupt Enable Blfo Habilitacin de perifricos interrupciones debidas a losmdulos 0: ladeshabilita 1: la habilita TMR1 lnterrupt Enable o Habilitacin de interrupcin deltemporizador TMR0. 0: ladeshabilita 1: la habilita INT lntenupt Enale o Habilitacin dela interrupcin lNT. 0: ladeshabilita 1: la habilita RBIF lntenupt Enableo Habilitacin delaintenupcin RBIF 0: ladeshabilita 1: lahabilita TMR}1verflow Intenupt Flag o Bandera de la porsobrefujo interrupcin delTMR0. pasa Secoloca en1 cuando elTMR0 de0FFh a 00h; sta debe serpuesta a 0 porprograma.

INT lnterrupt Flag o Bandera deinterrupcin lNT. (RB<0>) Secoloca en1 cuando lainterrupcin INT programa. ocurre; sta debe serpuesta a 0 por RBIF: RB Port Change lnterrupt Flag o Bandera de por interrupcin cambio enel puerto B. Secoloca en1 cuando una delasentradas RB<7:4> programa. cambia; sta debe serpuesta a 0 por Figura | | .3 Regstro INTC1N

el banco Ct eieccinde

c,E f-"
| .rpcinPueario esquie: de u: travs figura 11.3

luando ocurre un estadode reset todos es:-r;jtoman un valor de cero (limpiados). lara habilitar cualquier interrupcin, es ::-:!ario activar vn bit (GIE) que se deno-

^-,PaocESADoR

Figunll'4Funcionamientodelahabilitacindelasintenupciones

prctico curco sobre M icroconttotadores &<t

"t #

Para entender este concepto, podemos hacer una analoga con un circuito serie, figura I1.4. Asumamosque GIE, RBIE, INTE y TOIE son interruptores en un circuito elctrico y una corriente quiere circular desde el punto A hasta el procesador. Para que este fenmeno seaposible el interruptor GIE debe estar activado, al igual que cualquiera de los bits que habilitan a cada uno de los tipos de interrupcin. Cuando se ha configurado correctamente algn tipo de interrupcin, existeuna bandera asociadapara cada tipo que se pone en "uno" cuando ella se ha presentado. Para determinar el tipo de interrupcin basta leer cada una de esasbanderas. En el momento que ocurre una interrupcin, el procesadorlimpia el bit GIE impidiendo que ocurra una nueva interrupcin. Este bit se habilita de nuevo con la insrruccin RETFIE cuando se retorna de la rutina de interrupcin. El programador no debe preocuparsepor esahabilitacin ya que estoocurre automticamente. i:.ri;1;.;"' rriil';;,1i': :: -La interrupcin externa se genera cuando llege una $eal externa al pin INT. El bit 6 del
011 021 031 0sc1
CLKOUT PinINT

registro OPCION determina si esta int. rrupcin la generarun flanco de subida un flanco de bajada.Cuando aparece un flar.. co adecuado en el pin INT, la banderaINT: (bit 4 del registro INTCON) sehabilita.E'. banderadebe desactivarse mediante un ccdigo en el programa dentro de la rutina c interrupcin, antesde habilitar de nuevoei. interrupcin. Adicionalmente, si el dispositivotien, otrosperifericos que puedanoriginarinterrurciones, entonces poseer internamente algunc. registros adicionales que permitan habilitarl y otros registrosdonde se almacenen los ;: que actuarncomo banderas indicadoras. D.pendiendo del dispositivo, los registros son:

. PIE1y PIRI . PIE2y PIR2


Estos registros no mantienen una ubi cin estnder para cada uno de sus bits. tipo de microcontrolador posee algunas vari ciones sobre la ubicacin de ellos dentro d registro. Por esta razn, cuando hablemos uno de los bits de estos registros no darem

su posicin exacta.Dependiendo de la ret! renciadel microcontroladorPIC, sedebe car su posicinen lashojasde datos.
021 031 011 021 031

01 |

021 031

011 021 031

INTF ;Bandera I |NTC0N,1 i aitel i rNTcoN,7

dela interrupcin : I Latencia

e i rruo

i instruccln
i Instruccin ; buscada Instruccin enPC lnstruccin enPC-1 lnstruccin enPC+1 Instruccin enPC Inslruccn en0004h lnstruccin en0005h lnstruccin en0004h

, Instruccin eiecutada

Figunll.5 Diagrama detienpos delcompoftamiento delmicrocontrolador frente a una

rrr" #
l.

prcco Mtcrocontotadores curco sobre

L\:U L L

inteida o f'lan,NTF a. Esa r n c, na de \-o esa

: :. el futuro es muy posible que se desa:: mdulos adicionales que puedangene' - --rrupciones, de maneraque no serararo - , :.::r ms adelanteparesde registros como don. i-l r'el PIE3. En apartados siguientes .:::- grogromocuento el nmerode .---srciones en lo entrodo RBO,/INT = - resultodo 1o muestro en 4 LED -: - ::odos en RB4. . RB7 --i st D=16c84 =rnclude <c:\p16c84. inc> : 11H -CONFIG

de hablaremos sobrelos temporizadores TMRI y TMR2, notaremosla influencia de estosregistrosPIE y PIR. Existe un trmino conocido como latencia de la interrupcin, que se define como el tiempo que transcurre desde que apareci la interrupcin (la banderaseha puestoen uno) hastael momento en que la instruccinubicada en la posicin 0004H empiezaa ejecutarse , estetiempo esde 3 TCY (ciclosde instruccin) para interrupciones sincrnicas(como por ejemplo las provenientes de un temporizador).

r tiene rerruPrlgunos ilitarlas los bits :as.Des son:

ubicaCada r-'.. variaras :ntro del lemos de daremos e la refeJebebus-

= OCH .',:-ANT BASE-VAR BASE-VAR+1 .i,-:l0R EQU ORG 000t1 GOTO INICIO OO4H ORG Para interrupcionesno sincrnicas(norGOTO SERV-DE-INT malmente las externas), como la INT o la del STATUS,RPO - --3: BSF MOVLW 1 cambio en el puerto B, el tiempo de latencia MOVWFTRISB est entre 3 y 3,75 TCY (ciclos de instruc0 BCF STATUS,RPO;BANC0 cin), figura 1 1.5. CLRF CONTADOR PORTB.4 BCF PORTB,5 BCF En estafigura podemos observarel proceso BCF PORT8.6 que ocurredesde que sepresenta una interrupcin PORTB,7 BCF INTDEG BSF OPTION, BCF INTCON, INTF DEIl.tfERRUrcIO,l ;MRM BAIIDEM INTCON, INTE; BSF : INT. EXTERNAS ;ENMASCARA INTCON, BSF GIE INTERRUPCIONES : HABILITO GOTO PT1 ::, -DE-INT: F INCF CONTADOR, BTFSS CONTAD0R,0 PoRTB BCF ,4 BTFSC CONTADOR, O PORTB,4 BSF 1 BTFSS CONTADOR, BCF PORTB,5 BTFSC CONTADOR, 1 PORTB,5 BSF BTFSS CONTADOR,2 BCF PORTB,6 2 BTFSC CONTADOR, PORTB BSF ,6 BTFSS CONTADOR,3 BCF PORTB,7 BTFSC CONTADOR, 3 PORTB,7 BSF BCF INTCON, INTF CORRESPOND. ; LIMPIA LA BANDERA RETFIE END
1 Figural l.6a Cdigo detejemplo

-l

031 0 :

.,ru1J-

I i"'
deaplicacin delejemplo1 Figura 11.6b Circuito
Regisho 0PCl0N
B ITT

BIT 6 INTEDG

BIT 5 GRTS

RBPU

-0n

tOn il -1

Selector deflanco I : Flanco desubida 0:Flanco debajada quese vaa leerporelpin INT Figura11.7Configuracin delflanco

l" 'a rnterruPcin

prctico Curso sobre Microcontroladores &km:

S\

ruff

un flanco de subidapor el pin originada.por seactivaal siguienINT. La banderaasociada hastaque en eseestado te ciclo Qy permanece no seaborrada.Desdeall hastaque el microcontroladorllegaa la direccin0004H, han transcurridode 3 a 4 ciclosde instruccin.El en alto (de lo contrario no bit GIE que estaba sehubierapodido haberledo la interrupcin) por la CPU espuestoen bajoautomticamente para evitar leer otras interrupcionesmientras la actual.La mejor manerade enejecutamos esa tratenderel manejode lasinterrupciones vsde un ejemplo.

donde nos ubicamos en la direccin de la rur na de interrupcin. Mientras nos encontramos ejecutand. una rutina de interrupcin, el bit GIE ser; deshabilitado por lo cual no se atiende a nir.guna otra interrupcin hastaque no salgamc de esa rutina (esto puede ser una desventa'; ya que es posible que en un diseo especi;deseemosesa caracterstica). En la rutina de interrupcin, bloque D, e contador se incrementa y se visualiza en lo, diodos LED. En este caso se us una tcnic un poco dispendiosa para.activar o desactiva: los bits y4 que en el siguiente ejemplo se usan el bit P.B3 para otros propsitos.

externa deinterrupcin Eiemplo


en la figura II.6a, El programaque observamos en el positivas cuentael nmero de transiciones (pin 6) de un PICI6F84 y muestra pin RBO/INT de la cuentaen cuatro diodosLED el resultado RB4 a RB7, figura 11.6b. colocados en lassalidas seconfigurael puerto En la parteA del programa RB0/INT como entraday los demspines del El bit INTDEG del regispuerto B como salidas. en "uno" ponerse uo OPCION,figura11.7,debe ocurraen el flanparaquela interrupcinexterna en 'tero" en RB0,o ponerse co positivodela seal paraque Ia interrupcinocurraen el flanconegativo de la sed. Luego, el ir INTE se activa, bloque B del entraen estado programa.Cuandoel procesador selimpian automtitodaslasbanderas de reset, y sin embargo,esmejor serprecavidos camente; "cero" (no todas las ponerlasmanualmenteen ejecutanun reset marcasde microcontroladores tan limpio como los de Microchip). Finalmente,el bit GIE se pone en uno para habilitar las interrupcionesy luego el programa entra en modo SLEEP, bloque C del programa. Al ocurrir la interrupcin, el contador de programase almacena,ylaejecucindel programa se direccionaala posicin 0004H, en

El bit banderaasociadocon la interru cin externase limpia para permitir que


procesadorse entere de que la peticin de i

terrupcin ha sido atendida.La instruccic RETFIEhace variascosas. Ella habilita de vo el bit GIE y configura el contador de
grama a su antiguo valor (el que tenfa antes

la interrupcin). El procesador entra en do de SLEEPhasta que ocurra una nueva sicin en el pin RBO/INT. El estadode SLEEPesuna posibilidad brindan algunosmicrocontroladores, por el
se entra a un modo de baio consumo; este cepto lo estudiaremos en una leccin

porcambio Interrupciones en unpnRB


El PICI6F84, il, igual que muchosotros,
mite establecer como fuente de interrupcin

cambio de nivel en algunos pines determi dos. En el PICl6F84 (al igual que en 16C5541556), la interrupcinsegenera en

pines RB4,RB5,RB6y RB7.Esta


ca puede usarsecomo una buena tcnica de

rro en el consumode potenciade un si El procesador se puede poner en reposo( modo SLEEP) y se despiertaslo cuando

errr"

prftco tticrrcontotadores sbre curso

'uti-

. -=:io cambia el estadode alguna de esasen' .:.s. El procesador entoncesejecutadetermi'- -:s rareas y luegovuelvea reposo. El procedimiento generalpara activar este - Je interrupcin es similaral que se sigue : -ndo se va activar la del timer} o la inte-::pcin externa(lNT). Se debe activaral bit L8IE del registro OPCION y luego activar . ::,irhabllitador global de interrupciones GIE). La operacin interna del procesador, : r. iste tipo de interrupcin, consisteen leer . ,:ibblealto del puerto B y hacer una copia; . .rrerrupcin segeneracuando la lecturadel i ole afto del puerto B difiere de esa copia. - -ntro de la rutina de interrupcin es im: :rante que se lea el puerto B para actuali-.: la copia. Para hacerlo, utilizamos las si. --intes instrucciones:

ndo ser nintmos ntaja


.l

Si tenemosun programadonde debemos atenderlas (TAinterrupcionesmientrasseejecutanvariastareas REA_l), perono deseamos que seatiendaninterrupcionesmientras seejecutanotras tareas(ll{REA_2), sepuedepensaren el cdigo de la figura 11.8. De manera inesperada fuimos interrumpidos mientras ejecutbamos el cdigo de la TAREA_2. Por alguna razn la instruccin BCF INTCON,GIE no esthaciendo su rrabajo. Que pas entonces? ocurriuna interrupcin mientras se estabaejecutandoBCF

)eclar

D, el :n los icnica ctivar usar

INTCON,GIE?
Cuando ocurre una interrupcin, la instruccin que se estejecutando en el momento termina de cumplirse y luego el programa se dirige a la direccin 0004H donde se encuentrala rutina. AI ejecutar RETFIE el programa retornar a la primera lnea de TAREA_2 con las interrupcionesan habilitadas . Por esoel bit GIE debe limpiarse,pero debido a que la ejecucin de la rutina de interrupcin causaque dicho bit se ponga en uno, cuando ejecutamos la rutina TAREA-2 las interrupciones an se encuentranhabilitadas.La solucin se muestra en la figura 11.9. LAZO: TAREA-I: BSF INTCON,GIE TAREAS ; SE REALIZAN INTERRUPCIONES ; ACEPTANDO VAN EN ESTA ;LAS TAREAS DEL PROGRAMA ;PARTE BCF INTCON,GIE SE DESHABILITAN TODAS LAS ;AHORA ; INTERRUPCIONES TAREA-2: VARIAS ; SE REALIZAN INTERRUPCIONES SIN ATENDER ;TAREAS TAREAS VANEN ESTAPARTE DEL ;ESAS ; PROGRAMA GOTO LAZO
Figura11 1 .8 Cdigo delproblema

erruPque el de inuccin le nuele prontes de :n estara tran-

BCF MOVF

INTCON,RBIF PORTB,\r

dad que rr el cual ste conosterior.

Seobservaque selimpia la banderade inte---:cin en RB, pero el estado del nibble ako -:- rurto B an siguesiendo diferente a la anti:-. copia, por eso el procesadorinmediatamen-: .crivar la banderaRBIF y se activarde nue-a interrupcin. Por estarazn el cdigo ante- -: esincorrecto, la manera adecuadaes as:

MOVF BCF

PORTB,\T INTCON.RBIF

:fos,Perupcin el :terminare en los era en los racterstica de ahon sistema. ePoso(en cuando el

MOVF PORTB,'W',la antigua -\l ejecutar del nibble alto toma el estado actualy lue:ia De estamanera, la si: selimpia la bandera. ocurrircuandoeI nbble :--:nre interrupcin -: del puertoB cambiede nuevo.

--,--,1 ra analizaremos algunos inco nven ientes - -- se pueden presentar al trabajar con inte"--ciones, con lo cual posiblementeahorre* . muchas horas de trabaio.

prctico Curso Microcontroladores sobre

llr lls r.uicllc ulttulalutes?)C hrerrupui:tJreJ


LAZO: TAREA-]-: BSF INTCON, GIE ACEPTANDO VARIAS TAREAS ; REALIZA ; INTERRUPCIONES : APAGO-INTERRUPS EL GLOBABCF INTCON,GIE;APAGO INTCON, BTFSC GIE APAGO-INTERRUPS GOTO TAREA-Z: VARIAS TAREAS ; REALIZA INTERRUPCIONES ;SIN ATENDER pero en realidadrecuperamos los valoresque buscaronen A0 y A1. En el casoparticularun 16F84, esto no es un problemagrande, que la RAM del usuariosedivide en dos banc los cuales uno esespejo del otro. Esto es,2(' y AOH de hecho estnen la misma posicin. : problema real es cuando se utilizan microco: troladoresdonde los bancosno son espejos e. tre ellos.En ellos20F{y AOH son registros cor: pletamentediferentes.

Parasolucionar eseproblema,sepuedenpe mitir interrupciones slocuandonuestroprogr. LAZO GOTO ma se trabajando en el banco 0. I encuentra 1 Figura 11 .9Solucin alproblema hecho, usualmenteutilizamos el banco I pa: configurar los registrostri-estado lo cual tor' Notemos que el bitGIE seha limpiado yvedeshabi seguros de que muy poco tiempo, y en muchoscasos, rificado,paraestarcompletamente tar las interrupciones lapso durante este de tie: El procesodebereseha limpiado correctamente. para que est po no nos trae ningn problema,figura l1.lt. petirsecuantasvecesseanecesario deshabilitado. As,si una interrupcinocurremientrasseejecuta BCF INTCON,GIE, la rutina de serviciode bit, pero el programaconinterrupcin activarese tinuarcon la instruccinBTFSC INTCON,GIE donde detectaque GIE estactivadoy por lo tanto sedebehaceralgo para apagarlo.De estamanerael de que programa slo llegaraflA.REA-2 despus que el bitGlE ha sido limpiado. seha constatado | ;voy ol bonco lI APAGO-INTERRUPS: ' BCF INTCON,GIE i ; DESHABILITO ; INTERRUPCIONES ; BTFSC INTCON,GIE APAGO-INTERRUPS GOTO I BSF STATUS,RPO;BANC0 1 I TRISAO TRISB CON ;TRABAJO BCF STATUS,RPO;BANCO 0 BSF INTCON. GIE HABILIT0 ; AHORA. : INTERRUPCIONES Figura 11.10 Proble-.

Al inicio de la rutina de interrupcin,los regisen'W-SEGUR tros'Wy ESTADO sealmacenan y ESTADO-SEGUR. Asumamos que estasvariables son 20H y 2lH. Si la interrupcin apareen el banco 0, ellos ce cuando nos encontramos 20Hy 21H. Pero en lasdirecciones sealmacenan si la interrupcin ocurre cuando nos encontrase almacenan mos en el banco 1, esosregistros A0 v AlH. en las direcciones Nuestro serviciode interrupcin debeconmutar al banco 0 y luego restaurar'W.y ESTi\DO,
ffi\^ a

Todos las observaciones que aqu se analizar ' pueden resultarmuy obviasdespus de ver su , lucin. Perosi no la conocemos seguramente E* taremosvariosdasaveriguandoque pas. Cuando se desarrollan productos (sobretc : de calidad comercial)es muy importante .tender los problemasque sepuedanpresen:En ese procesode entendimiento se puec: emplearvariosdas (meses, aoso tal vez n-ca). Cuando no se logra un entendimiento: tal del problema, es cuando empiezan a fa los productoscon el transcurrirdel tiemp,

dt&

&fl

fu<m:.

prctico Microcontrotadores curco sobre

L-

l-

)e ra i.l _

).

:" 'z

tn

so-

,do
3nta r .
t --lg l t
Jll -

to lla r

Como hemosvisto en lecciones anteriores, dentro de los microcontroladores existenunos mdulosque podemosutilizanparafunciones exactasde medicinde tiempo, llamados temporizaEn estaleccin analizaremos dores. estos elementos internospresentes en los microcontroladores PIC. En la seccin de programacin, desarrollaremosejemplosprcticosparael manejo de estos importanteselementos.
prctico curso sobre Microcontrotadores &<rr,.t #

En la frmilia de los microcontroladores PIC aparecen tresmdulostemporizadores denominados:Timer0(TMRO), Timerl (TMRI) y Zrnn2 (TMR2). Posiblementeel Tirnerl sea el ms verstilya que puedeusarse para monitorear el tiempo entre las ffansiciones de una sealocurridas en un pin de entradao para controlar de manera precisa el tiempo de transicinen un pin de salida.El Timer0puedeutilizarse paracontar (transiciones eventosexternos de seales) o generar interrupcionescuando ha ocurrido un nmero deseado de eventos. Existela maneraincluso,a travsde un mdulo interno denominadoprescalador, de leer entradasa una rata de velocidad de hasta 50 Mhz, esdecir,que podemos lograrmuchams velocidad que cuando leemos normalmente entradas por los pines;esteejerciciolo analizaremosen el proyectodel frecuencmetro incluido en estecurso. El Tirner2tiene mucha ms libertad en su funcionamiento y ademsde temporizado\ puede usarsepara manejar el perodo de una sealde salidaen formato de modulacin por ancho de pulso (P\7M). En estetipo de seal, la salidade un pin permanece en estadolgico alto duranteun porcentaje determinadode cada periodo.

lador y nos sirven para crear basesde tiemp' muy precisaso para contar eventos externos. Por este motivo a estemdulo se le ha d=nominado temporizador/contador, ya que pueft configurarse para que sirva de temporizador o q'!c acte como contador de eventos.

Cuando el Tirner} inicia su operacin, s incrementacon cadaciclo de mquina o con cadapulsoexternointroducidopor el pin RA+ TOCKI; la eleccin de cualva a serla fuente sealse configuraen el registroOPCIN. registro TIMER0 (de 8 bix) seva llenandoh
ta llegar a FF; si en esemomento llega otro i

crementopasaa 00 y justo ahl puedege una interrupcin,con lo cualpodemos gen una basede tiempo confiable. El nmero de veces que el contador llega
cierto valor puede ser contado usando offo

tro. El TMR0 esun mdulo autnomo.de nera que el procesador puede estarejecu cualquiertareamientrasque el tempori TMR0 seencuentratrabajando. [,asposibles salidas quepodemos obtener TMRO son dos: la primera, esla lectura del gistroTMRO (H'01'), el cual podemosleer cudquiermomentoy tomardecisiones sobre lectura, y la segunda,es generaruna in cin por desborde del registro,es decir, sellena tomando el valor de FF y pasaa 00.

El porcentajese controla escribiendo en el registro CCP (CapturelCornparelP'WlVI), y el periodo de la sealde salidase controla por el Tirner2.Estetipo de seales esmuy utilizadoen El registro OPCIN (OPTIOII) cuya luces, el control de rnotores, etc.;el mduloCCP tructura la estudiamos en la leccin 8 de lo analizaremos en detalleen la siguiente leccin. curso, es el que utilizamos para configurar funcionamientode estemdulo de te Temporizador 0 (Timer TMR0) cin. El bit 5 (TOCS) lo configuramos Este temporiztdor puede entenderse como un que elTMRO funcionecomo temporizador registro de 8 bits, con el cual podemos hacer incremente con el reloj interno de la mqui operaciones de lectura o escrituraen cualquier o como contador (se incremente con los momento. Puedeincrementarse auromtica- sosexternos ledospor un pin determinado mente ya seapor medio de los ciclosinternos microcontroladorllamadoTOCK). Parade del reloj o poq rnedio de pulsos externosque tar cul es el pin que corresponde a estaf entranpor un pin especlfico del microcontro- cin en cada tipo de micro, debemosrefe

&t* #

prcco curco sobre Microcontotadores

mPo )s. r deuede ) que

Pindeentrada porizador/Contador Tem

Figura l2.l Esquema enbloques delTMR0

'n, se , con RA4/ rtede N. EI r hasro in:nerar :nerar

llegaa rregisle martando izador

nerdel del releer en rbreesa terruPcuando 00. uya esde este 5urarel tporizarospara ador(se quina) los pulradodel radetecsta fun; referir-

nosa lashojasde datos.Con un cero(0) en este valor determinadopor los bits 0, I y 2 del al vairelTMR0 funcionacomo temporizadoty con registroOPCIN, que corresponden lor PSO, PS1y PS2,segnla tabla I2.1. La un uno (l) funciona como contador. cuentao la tempozacindel TMRO puede Hay que tener en cuentaque si el TMR0 hacerse sin la intervencin del prescalador; l slofun- para hacerlo,debemosponer un uno (1) en como contador, seha configurado es decir, el bit 3 del registroOPCIN: PSA. :ionar con flancos,no con niveles; de ceroa uno queslocontarlastransiciones Paratener una lectura confiablecuando t'lanco de subida),o de uno a cero (flancode ra.iada).Por esta razn se le debe decir al vamosa tabajar con una sealde reloj exterque cuente na, esmejor teneren cuentalassiguientes reTMR0 qu transicinqueremos comendaciones: ninado TOSE; poniendo exe bit en cero (0), la entrada :lTMR0 contartodoslos flancosde subida 1. Si no seva a utilizar el prescalador, -.-ponindoloen uno (1), el TMRO contar debepermanecer en alto (o en bajo) durante al menos dos (2) perodosde oscilacindel :odoslos flancosde bajada. reloj del microcontrolador(Tosc). Paramodificar los contenidosdel registro el periodode enOPCIN, existendos opciones:la primera 2. Si seva a utilizarel prescalador, tradadebeserdeal menos en el bancocorresponcuatro(4)Toscdividi:onsisteen ubicarnos ente, cargar'W'con el nmeroque llevaremos 0Pcr0N OPCIN y pasarlos contenidosde \7 a di3210 :ho registromediantela instruccinMOVWF OPCION, luego se debe retornar al banco :nicialparacontinuar trabajandonormalmenno requiere movernos de ban:e. La segunda :o, simplementeconsisteen dar la instruc2 0 0 OPTION, la cual mover in:in especial 1 4 nediatamentelos contenidosque tengamos 0 0 8 en el registro esemomento almacenados -n 1 16 T al registroOPCIN. lo

lo
1

La fuente de sealhaciael TMRO puede ier sometidaa un proceso de divisin de fre,uenciaa travsde un mdulo denominado figura 12.1. En estemdulo .l prescalador, frecuencia de entradaes dividida por un -e

lr 'l
1

0 1 0 I

32 64 128 256

lablal2.l Valores configurados enelregistro pan elprescatador hPC\N

prcco curco sobe Microcontotadores &n;#

En elmomento del desbordeocurre una nterrupcin

Cuenh hash FF-N Elcontador se incrementa desde aqu


ElTMR0 secarga con (N)y desde este valor aqur empreza a conrar

de oscilador externoque msseajuste;en el proyectoRelojDigitd con PIC presente en esre curs: observaremos comosecreun intervaloeXcto c: un segundo medianteun cristalde 1.87MH2.

..sr(l q{

La nica manerade no prescalar el temporizadoresasignarlo al perro guardin(uatchdog Setrata de un registrode 8 bitsque cumple cor t- it'fif8'.t (como veremosma: una labor muy especfica adelante) al cual podemosasignarestefactor dr divisin.Algunos autoresmencionanque cuanFigura 12.2Esquema deltuncionamiento delTMR0 do se asignaal TMR0 funciona como prescalador y cuandoseasigna al uatchdogfunciona comc dos por el valor del prescaladot y los nivelesaltos postescalador. Sin embargoen muchasfuentes y bajos deben sermayoresa 10ns de duracin. bibliogrrficas seconoce simplemente como prescaladorsin distinguir si haceel trabajo depre o Si existe una operacin de escritura sobre depost.El manejo del watchdogloanalizaremo el TIMER0, el incremento se inhibe por los detenidamente en una leccinposterior.
siguientes dos ciclos de instruccin. Esto puede compensarseajustando el nmero cargado en el registro.

Veamos ahoraalgunas recomendaciones el usodel TIMERO.


i { i .l ;{ r:rt' ar' ' ,!,u,' i l,i h' tl :t{i

HlFres*aladnr
Como ya se mencion, el prescaladores un mdulo interno que divide la frecuencia de reloj de entrada al temporizador. Para ejecutar esta tarea utiliza como factor de disin el nmero configurado en OPCIN en los bits 0,1 y 2. De esta manera el usuario puede jugar con este factor de divisin para lograr un intervalo de tiempo preciso (en el casode que trabaje como temporizador). En este punto cabe resaltar que para ajustar un intervalo de tiempo (por ejemplo I segundo) se puede manipular, adems del prescalador, el tipo

Los pasos sonlos siguientes: . fuignar elprescakdor . Configurarel temporizadorcolocando bits adecuados en el registroOPCIN
o Para inicializar el temporizador, sim

mentedebemos escribirun nmeroen el gistro TIMER0, o borrarlo. Cuando se


cargado.con un nmero el tempori

cuentadesde esenmero, figam,L2.2. . IJna vezha empezado a trabajarno es sibledeteneral TMRO.

Figura 12.3 Diagrana debloques del

&r* #
L

prctico curco sobre Microcontotadores

ProlrrsO ode
L

pri-

lod.
: con ms or de uanrcAaDmo Entes

El temporizadorsemantendrcontando siempre y cuando no se haya borrado o escrito mediante instruccionesdel programa o el microcontrolador no sehaya inicializado de nuevo. . El temporizador/contador debe ser recargado despusde cada sobreflujo para repetidos intervalos de tiempo. Si esto no se ha hecho, FF resultar en cada ocasin. . :r;ors c{rn{s c*{nta rllrt'rI tin-er{-} *sr. :-:r-:ii:ndu rlgoi . Mediante repetidas lecturas en el registro, o chequeando un bit de eseregistro. . Mediante interrupcin en el momento del sobreflujo de FF a 00. Asl es como nos damos cuenta que el temporizador ha terminado de contar. La bandera de interrupcin es la salida.

da con el valor contenido en el registrodel periodo, seorigina un pulsohaciael postescalador. En l se ejecutauna nueva divisin de la salidadel comparador y puedeacrivarla bandera de interrupcin dentro del registroPIR1 (recordemosde la leccin 11, que el registroPIR es propio de cadatipo de microconrroladorsegn las interrupcionesque poseainternamente,razn por la cual,el lectordebeubicaren cadahoja de datos, dnde se encuenrrala banderadel TMR2 dependiendo del microcontrolador). De la mismamanera,cuandoel valor del TMR2 es igual al registro PR2, la salida del comparador inicializa de nuevoel TMR2, lo cual es muy utilizado para la generacin de P\fM cuandose usael mdulo CCP (lo veremos ms adelante),al igual que en aplica(SSP). ciones seriales Lasposibles sdidasdelTRM2 sonla lectura que se puede haceren cualquiermomento del registroTMR2o la bandera de interrupcin originadapor el TMR2, la cual segeneracrda.vez que seigualanPR2 yTMR2. EITMR2 puede activarse o desactivarse encualquiermomento,median te un bit de conuolubicado

Pres?re o mos

5 Para

rs12
El Timer2 es un temporizadorde 8 bits que slopuedeconfigurarse para que su fuente de seal seael reloj interno, de maneraque slo sirvecomo temporizador. Cuentacon un mdulo prescalador, un mdulo postescalador y un registropara el ajustedel periodo. El prescdador divide el tren de pulsosque le llegan (I,4 o 16). por un valor determinado

rdo los

t
lmplen el relseh a zador

t.
t esPo-

El diagramade bloques del TMR2 es el que seapreciaen la figura 12.3. Como pode- Registro: T2C0l. cot{TRoL rime mos observar, el TMR2 se incrementapor el flxfiPs IIX'IP$I IotrPst rlltfPs rtR2(n rzc|osl T2G-tCgl reloj interno (fosc/4)desde0x00 hastael n- il7 O mero establecido por el registro del periodo 0 tPR2).Si en esemomenro ocurreorro incre- bitT: Seleedesde Dif6-3: T0UTPS3 - TOUTPS0 o Difs deseleccin dela salida del postescalador del Time mento,la cuentapasade nuevoa 0x00.
= 1-1postescala 0000 = 1-2postescala 0001
a a

El registrodel periodosedenominaPR2, el cuelesde 8 bitsy sobrel podemos haceroperadonesde lecturao escritura, de maneraque pobit2: demos modificarel momentodel desborde.

= 1-16 1111 Postescala TMR2ON o bffde activacin delTimer2 1:Time2 est encendido 0:Timer2 estapagado bitl-0': T2CKPS1 o bibdeseleccin - T2CKPS0 delprescalador del En el registroPR2 configuramos un nmeTime12 00= prescalador est en1 ro determinadoel cual esvigilado permanente01= prescalador est en4 1 = prescalador mentepor un mdulo de comparacin, est en16 y cada para Figura 12.4 RegistroT2C0N el control delT\MER2

a delTMR2

su que el valor contenidoen elTMR2 concuer-

prctico Curco sobre Microconotadorx ar"#


P -t

NombreBitT
PIRl

Bit6

BitS

Bit4

BitS

Bitz I Bitl

Bit0

TMR2IF PIEl TMR2IE Registro TMR2 TMR2 TOUTPS2 r0uTPsS TOIJTPSl TOUTPSO TMR2ON T2CKPSO IT2CKPSI T2CON 2 PR2 Registo deperiodo delTimer Figura 12,5 Registros asociados conelmanejo delTM?en el registro T2CON. [s valores presentesen el seborran por tres raz'ones fundapre y postescalador menules: la escriturasobreTMR2, una escriturasoque cuando bre T2CON, o por un estadode reset, ocurre, llena a PR2 con unos. En la figura 12.4 vemos el registro de control del TMR2; all podemos ver el bit 2 denominadoTMR2ON con el cual activamoso desactivamosel funcionamiento del temporizador, los bits 3 al 6 que configuran el valor que va a tener el postescalador y los bits 0 y I los cuales establecernel valor del prescalador. Veamos los pasospara configurar el modo de operacin de estetemporizador; en la figura 12.5 apreciamos una tabla con todos los registrosasociados al manejo del TMR2. cacin tambin depende del microcontrolado:

En la figura L2.6 observamos un cdigo pr. inicializar el TMR2.

:l tillter"t
El temporizador Timerl esun mdulo de 16 b:: quesedivideendosregistros de9 bits(TMRIH TMRI L), sobre loscuales sepueden ejecutar optraciones de lecturay escritura. Estepar de reg:=

AL TMRz, ; DETENGO = 1:1, PRESCALAD0R = 1:1 ; P0STESCALAD0R CLRFTMRZ REGISTRO T}4R2 ; BORRO CLRFINTCON ; DESHABILITO INTERRUPCIONES t BSF STATUS, RPO; SALTO AL BANCO 1 CLRFPIE]INTERRUP; DESHABILITO CIONES DE MODULOS t En el registroT2CON debemosseleccionar PERIFERICOS. i el valor del pre y postescaladory la activacin del BCFSTATUS, RPO; REGRESO AL BANCO O TMR2. Para habilitar la interrupcin de este CLRFPIRI' BANDERAS DE INT. I BORRO mdulo debemos activar el bitTMR2IE del re, PERIFERICAS. gistro PIEI; la ubicacin de este bit denvo del M0VLW 0x72 1:15, ; POSTESCALADOR= = 1:16 PRESCALADOR registro no siempre es la misma. MOVWF TZCON ; TIMERzAPAGADO BSFTZCON, T},R2ON A ; TIMERzEMPIEZA Depende de la referenciadel microcontrola, INCREMENTARSE dor que estemosusando, por eso es conveniente ESPERO-DESBORDE verificarlo en las hojas de datos. BTFSS PIR1,TI8ZIF; HA 0CURRIDO UNAINTEPORTTI4R2? ; RRUPCIN CON Del registro de control de interrupciones G0T0ESPERO-DESBORDE ;N0, C0NTINUO EL CICLO. ; INTCON debemos activar los bits 6 y 7 que co. SE HA DESBORDADO EL t. rrespondenal habilitador global (GIE) y al habi; TIMER? litador de interrupciones de otros perifricos BCF PIR1,Tlt4RzIF LA BANDERA ; SI, B0RR0 (PEIE). La bandera indicadora de la aparicin ; Y CONTINUO. de estainterrupcin se encuentra dentro del registro PIR1 y se denomina TMR2IF; cuya ubiparael manejo Figura 12.6 Cdigo del
t

CLRF TZCON

ticmt #

prctico curco sobre Microcontrotadores

= Temporizador/ TMR1 contador

TMRI= Modo caDtura

= Modo TMR1 comoaracin

16- 8ls

Figura 12.7Modos defuncionamiento delTlMERl sido cargado previamente con algn valor. Cuando los contenidos del TIMERI se incrementan y llegan a un valor igual al valor almacenado en dicho registro de comparacin, se produce una salida, que puede ser un cambio de nivel en el pin de salida del mdulo CCB una interrupcin o ambos, figura I2.7c. La utilizacin del mdulo CCP permite leer el TIMERl y almacenarel resultadopara utilizarlo posteriormente cuando se detecta un flanco de entrada externo, todo esto mientras el microcontrolador estocupado haciendo otras tareas.

dTMR2

'lador. ) Para

rrosseincrementan desde 0000H hastaFFFFH y al pasar por esteltimo valor,regresan a 0000H. Al igual que el Timer0, el Timerl puedegenerar interrupcinpor desborde, prlo cual requiere que un bit dehabilitacin,presente en el registro PIE, seencuentre activado. El Timerl puedeserempleado de diferenresmaneras. En primer lugar,lo podemos utilizar de la maneratpica para leer los contenidos del registroTIMER1, en cualquiermomento del programa,figura I2.7a.

16 bits RlH y rr oPe: regis-

-1
L Izl R
IUP-I

'u l

La segundaposibilidad que se tiene es la de capturar (grabar)los contenidosdel regisrro TMR1 paraserrecuperados en el momenCon el mdulo CCP tambin es posible ro en que un flancosealedo externamente por manejar un pin de salida cuando los contenidos el microcontrolador, figura L2.7b.Los pulsos del TIMERI se incrementan hasta un valor deque entranal TMRI incrementanel contador. terminado, de manera totalmenre independiente de otras tareasque el microcontrolador se en-

EINr. I :1 5 , I :16 I

rNrEI 2?l
'cON ) EL I I DERA
I

Cuando un flanco llega por el pin CCP, cuentre ejecutando. ios contenidosson capturados y se activauna bandera de interrupcin.El valor capturado nnnr sl*iTEVIH#"{ r rlninrl seencuentra ahoradisponible En la figura,12.8apreciamos paraserledo. un diagrama generalde la estructura delTMRI. Podemos noLos contenidosdel TMRI puedencom- tar quela fuentede seal parael TIMERI puecon los contenidos fararsecontinuamente de de ser una sealexternapara aplicaciones de un registroespecial de comparacin, el cual ha cuenta,o los pulsosinternosde reloj paraapliBlt1 delregistroTlCON

TKITIMER2

Evento disparado especial desde elmdulo CCP Figura 12.8 Diagrama debloques delTIMER|

prctico curso sobre Microcontrotadoles &l;#

l][c .LliS
fico cuyo nombre dentro del encapsulac TlCKI, figura L2.10.

Los pulsosexternosque entran al Tl. pueden serde dostipos.El primero,espof : 0 Selee desde bitT-G Deshabilitado. del valordel sosque entranpor T1CKI, asel TMR1 ,. o bibde seleccin Dff6-3: TlCKPS1 -T1CKPS0 prescalador del Timerl crementaen cadaflanco de subidaque se: prescalador 11 = 1-8 valor del prescalador = 10 1-4 valor del senteen estepin (dividido por el valor espe : 01= l- 2 valor delprescalador cado Este modo de o:, en el prescalador). delprescalador 00= 1-1 valor Timerl cin se habilitacon el ir TMR1CS per:. habilitacin del oscilador del o Dffde bitSt Tl0SCEN 1:0scilador est encendido ciente TICON. Cuandosedese al registro est apagado 0:oscilador de delaentrada externa bit2: TTSYNOo Dffde seleccin pulsos por el pin TlCKI (bit 0 del puerrc
alTimerl sincronizacin =1 CuandoTMR1CS 1:laentrada externa nosesincroniza 0:laentrada externa sesincroniza =0 TMR'ICS Cuando Esta esignorada para Timerl o Dlfs deseleccin delafuente TMR1 CS porelpin (flanco T1 0S0fi1CKl 1 = entrada externa desubida) (F0SC/4) interno 0 = reloj habilitacin delTimerl TMR10N o Dlfde 1:habilita Timerl Timerl 0:detiene este pin debe estar previamente configu: como entrada.

bitl:

bit0t

El segundo al TIMEF. tipo de entrada a travsde un circuito oscilador conecralo s p in e s T 1 O S CI y T I O S CO , e l c ua lp serhasta de 200 KHz, figura,l2.l1. La ap

cin clsicade esta conexin que se encuen gran cantidad de notas de aplicacin. . (TlC0N) creacin de un reloj de tiempo real utilizFigura 12.9Registro decontrol delTIMERI

este y un cristalde 32.768l: temporizador


cacionesde temporizacin,la entrada ingresaa un mdulo prescaladorque divide los pulsos de entradapor 1, 2,4 o 8. La seleccin de la fuente de seal para el TIMERI se hace mediante un bit especfico del registro TICON, figura 12.9. Setrata del bitTMRlCS con el cual se establecesi la entrada va a ser externa o van a ser los ciclos de reloj internos. De igual manera, a travs del bit 0 denominado TMR1ON de este registro, podemos activar o desactivarel TMRl en cualquier momento del programa y mediante los bits4y 5 (TICKPSl yTICKPSO) seestablecen los valores que tendr el prescaladorpara dividir la seal de entrada. Cuando el TMR1 se desborda, se activa un bit de bandera del registro PIR1 y se genera una interrupcin, si staltima se ha habilitado previamente mediante el bit correspondiente dentro del registroPIEl. Los pulsos externos deben entrar por un pin espec-

_rL
-

Figura12.10 Entrada de

Figura l2,ll Conexin del TMRIconun circutloscilat:

lacreacin deunreloj detier:

&<nt #

Microcontotadores curnprcco sobre

I KI

)ulinPrecifiraeneleer

c),
rado

11es doa uede rlicaentra es la ando KHz.

il TMR|

bdorPara emporeal

En la leccin anterior conocimoslos mdulos temporizadores de los microcontroladores PIC que son la base para trabajarcon los mdulos CCP.Ahora estudiaremos el manejo y funcionamiento de estosltimos, los cualespueden ser de gran utilidad en muchasaplicaciones en Hablamosen plural sobreestos electrnica. mdulosdebidoa que en un microcontroladorpuede existirms de un mdulo CCP.
prctico curso sobre Microcontrotadores &kt=t #

(cartura/ [Vt uulo s CL'[] u/LrV IVt) courr ataui


El modo de comparacin permitemane.iar Registro decontrol: CCPxC0N de maneramuy efectiva la salidasobreun pin determinado del microcontroladory el modo de iloinucncnbdos ocxBl DCXB0 CCpxM3 CCpxM2CCpxMl CCpxMo cpturapermitehacermediciones muy precisas ffi7 H0 de losinstantes en queseproducen flan- bitT-6: Sn algunos implementar. Seleen como 0 Ciclo tildelPWM cosde entrada.Ambos modos sehan diseado bitS-4: DGxBI:DCxB0. bit3-0: GCPxM3:CCPxM0. Bitdeseleccin delmodo CCPx (reinicia paratrabajar con el Timerl; si un microcontro0000: Captura/compara/apaga PWM elmdulo CCh 01 00:Modo decaptura, cada flanco de bajada lador poseevarios mdulos CCP fi.-rncionando 01 01:Modo decaptura, cada flanco desubida 0110: Modo decaDtura decada 40flanco en modo de capturao comparacin, desubida ellosdebe01I |: Modo decaotura decada 160flanco desubida rn comrartirel mismo temporizador.El modo 1000: Modo decomoaracin pinCCP Inicia bajo, cuando lacomparacin indica de PVM (modulacin por ancho de pulso) es pone (se igualdad, el pinCCP enalto activa el ftCCP: muy utilizado paracontrolar motores,lmparas 1001 : Modo decomoaracin pinCCP Inicia alto, cuando lacomparacin indica u otras cargasresistivas y estdiseadopara el pone igualdad, elpinCCP enbajo seactiva el bffCCPI: Timer2, de maneraque ningrnotro temporiza1010: Modo decomoaracin porsoftware, Genera interrupcin lacomparaciccuando dor puedeejecutar esta fi-rncin, ver Thbla 13.1. (seactiva indica igualdad el bCCPIF, el pinCCP no Cada mdulo CCP contieneun registro de 16 seafecta) 101 1:Modo decomoaracin bits el cual. puedetrabajar-como registrode cap(seactiva Disparador deeventos especiales el b CCPID tura de 16 bits, como un registrode compara11xx: Modo PWM cin dc l6 bitso como un registro[)a-ra generar Figura l3.l Registro de control de losmdulos C. P\M en 10 bits.Todoslos mdulosCCP trabajan prcticamente de la misma manera. controlado independientede las ra-reas que se c. Cada mdulo CCP posee tres registros cuentreejecutandola CPU. Algunos microconrr . para los cualesutilizarernosnombres genricos,como se muestraen la Thbla 13.2. En ella vemos que, cuando dentro de cada registro colocamosuna x, quiere decir que hablamos indistintamentedel mdulo I o del mdulo 2. En la Tabla 13.3 se muestranlas interacciones entre l os mdulos CCP; en esta tabla, CCPx esun mdulo CCP y CCPy esotro mdulo CCP. En la figura 13.1 tenemosel registro de control de estosmdulos CCP con la funcin de cada uno cle susbits constitutivos. ladores como el l6C62A, el l6C64A y el 16C-solocuentan con un mdulo CCB ellossolopuec1.controlarlos tiemposde salida del pin RC2/CC| mientrasque los microcontroladores que poseen c mdulosCCP puedencontrolatambinel pin RC CCP2. Elnombre quereciben estos pinesnosind-la rncin alternaque cumplen, staesla de pines, propsito generaldel puerto C. Recordemosde , leccinanteriorque elTimerl incluyeun prescl., dor quedividela frecuencia internadel relojpor l. 4 o B; si seleccionamos la divisinpor 1 obtend:, mos la resolucinms fina paraa.iustar el tiempo salidade un flanco de salida.Esto significaque, c, ' un cristalde 4MHz, el tiempo de los flancosde -' pulsopuedecontrolarse con una resolucin de 1u

TT

El Timerl junto con el CCI pr-reden controlarde manera muy precisala salidade un pin del micro-

Funcin ,:::-::--:::*.:. Timerl Captura Comparacin Timerl Modo CCP


- :..^**i;:::." :;;.:: _

PWM

Timer2

genrico CCPI Nombre CCP? Comentario CCPxC0N CCPICON CCP2CON Control deregistro CCF CCPRxH CCPR1HCCPR2HByteCCP alto CCPRxL CCPR1L CCPR2LByte CCP bao CCPx CCP1 CCP2 PinCCP
genrica lahla 13.2Nomenclatura de losregistros C

Tabla 13.1Fuente decada modo de 0Deraa0n


/.1\ L +

(1o ) @<ln:.

prctico curso Microcontrotadores sobre

DCPX)

3 DCPI 3 DCPID mcin Pno T

fuCCP !seenDntfo-

r6C72
pueden CCPI, cendos nRCl/ indica de nes md e l a escalaporl,2, endrempo de
|le, con

rde u n lde lus.

r-l

cabounaaccin determinada por losvalores establecidos enlosbits de conuolCCPIM3:CCPIMO (CCPICON<3:0>); dicha acqsry ry*::.' arM*l rita entrada de conteo cin puedeserponeren alto,en 0: deshabilta entrada deconteo a TMRl ccPlcoN bajo o permanecer sin cambiar (H'17) el estado del pin. Cuandoseorilabandera tEn cualquer caso, activando en el Timerl gina un desborde CCPI lFenlacomoaracin: el pinRCZCCPIen la comparacin o el comparadorha establecido 0 0 actva 0 1 borra el pinRCZCCPI enla comparacin iguddad entreelTMRl y los repinRCZCCPI 1 0 noafectael enlacomparacin gistros CCPRI, seoriginaun es(H',oE) TIR1L TLRIH (H'oF) TlrRloN tado de interrupcin y seactiva la bandera correspondiente en el registro PIRI. Si secumpleque el habilitadorglobd (GIE), el habiador deintemrpciones deperiftricos y los bix corrapondien(H'16) CCpRIL CCPR1H (H'1s) tesdel registroPIE1 seencuentran activados, segenerar en la CPU un esadode interrupcin. Para microconuoladores queposean dosmdulosCCB el circuito y los registrosasociados al CCP2 semuesuan elfigura 13.3, perosu funcionamientoesprcticmenteel mismo del circuito anterior;en estafigura podemos apreciarlos registrosexactos Figura 13.2 CCPI enmodo decompancin quesedebenconfiguraren este Enlafigura l3.2semuestrangrficamentelos caso, con lasrespectivas direcciones de cadauno seguir pasos quesedeben parainiciarel mdulode de ellos.Cuandoun microcontrolador mposee los registros dulo CCP2 debeincluir en su mapade memoria CCPI; all observamos comparacin eITRISC, elTlCONyel todosestos quesedeben configurar: registros. en el valor almacenado CCPICON. En estecaso conshs regisros CCPRI H y CCPRI L secompara Paramicrocontroladores PIC que posean dos mdulosCCB si ambosmdulosse usanpara nrementeconlosregistrosdelTMRl,loscales por su fuentede .comparacin o captura, deben compartir el seincrementan progresivamente adems degene- TMR1 y en estecasoel TMRI no debemodifisoniguales, ral. Cuandoambos rarse una interrupcin,en el pin CCPI sellevaa carse(escribirsobrel). Perosi el TMRI slo se

,Fl?!$E

FdcFl

hd
|strosCCP Tabla lS.Slnteraccin entre los mdulos CCP

prctico curco sobrc nictocontotadoes &l;#

l-@
ilffii ry
t-

;;::',,ita

ccP2coN
(H',1D)

0: deshabilita enfadadeconteo aTMRI

entrada de conteo arMRl

labandera En cualquier caso, activando CCP2IF enlacomparacin:


la comparacin 0 0 activa el pinRCl/CCPzen 0 I borra el pinRC1/CCP2 enla comparacin 'I 0 noafectael pinRC1/CCP2 enlacomparacin TMRIH (H'0F) L (H',oE) TMRI TIi|RlON

zaitn de la figura 13.2 se h; cumplido con el registr: TICON cargado con H'01', e. registroCCPICON se ha ca:gadocon H'09'y el pin RCJ CCPI sehapuesto inicialmenr en bajo,entonces observemos cl cdigo,en la siguiente pginaEn estaslneas de cdigo

configurainicidmenteel
de comparacin, para iniciar pulso que permanecehasta

ciclo despusde que sehabi la entrada deseal alTMRl.


(H'1C) ccPR2H (H'18) ccPR2L

mediatamente despusde q eseevento ha ocurrido. se

figura el segundoco el cual desactiva el pulso.Si TMRI estsiendoutili paraotra funcin adems de de comparador,no podr nerseni modificarse.En caso elTMRl slopuede ser do y a partir de esalectura
tener dos vdores para
Otras interrupcones
t Registro INTCoN actim la nteruDcn

rar el registro CCPRI, para ciary detener el pulso.


TMRIIE

la combinacin delTimerl elCCPI oelCCP2permite Figun 13.3CCP2 enmodo comparacin el PIC seutilice para usaparauna funcin,su usosepuedesintetizar el tiempo en que ocrrreun flanco de enui en los siguientes pasos: Timerl y suprescalador puedenutilizarse para l. Detener sureloj(borando el TTMRION del dir direcamente intervalos de alto rango; la registroTlCON) resolucin en la medida se obtiene omitiendo 2. Borrarel TMRI uso del prescalador.De estamanera, con un cri de 4MHz y omitiendo el prescalador, 3. Configurar el registroCCPRI se 4. Iniciar de nuevola cuentadel TMRI medir tiempos de aparicin de una entrada en
rango de lus. Es importante tener claro que en

PIE2 (H',8D) PIE 1 (H'8C)

Modo decaptura

el siguienteejemplo.Asumiendoque Veamos el TMRI no seutiliza paraninguna otra funcin, originarun pulsopositivode 100usenel pin RC2/ CCPI en un microcontroladorPIC funcionando con un cristalde4MHz.Asumamosquela iniciali-

modo de captura,el pin CCPx debeesar radocomo entrada. En la figura 13.4 se muestrael circuito los respectivos registros asociados al usodel

EI

prcticosrtbre Micrcontotadorcs Curco

eha rstro l', el


. caf-

BCF T1C0N,TMR1oN

DEL ;DETENCTN ;RELoJDELTltlRl

\c2l
rente ros el ina' 80 se nodo iar un [a un ilita i.l.InE que e conuador rSiel lizado sdela deter este rser leobrra rnfiguaraini-

CLRF TMR1H CLRF T1I,IR1L CLRF CCPR1H MOVLII' H'01' MOWFCCPR1L BCF CCP1CON,0 ;CO'{FIQR0 PIN RCZ,zCCP1 ;PARACOMPARACIN BCF INTCON,GIE;DESHABILITAMOS LAs ; i,I0i,iENTANEMENTE

; INTERRUPCIONES B TFS C IN TC ON ,GIE GOTO PULSO1 BSF T1C0{,1},Rt0.l ;INICIAN LAS SEALES ;AL Tlt'lRl MOVLW 101 SEGUNDO ;CONFIGURAR ; COMPARADOR MOWFCCPR1L BSF CCP1C0N ;LIMPIAR PIN RC1/CCP1 EL SEGUNDO ;EN ;COttpAMD0R BSF INTCON,GIE ;HABILITAR NUEVAMENTE INTERRUPCIONES ;LAS

erl con nite que rrminar

nejo del mdulo CCPI en modo de captura. El riempo entre dos flancos de entrada se determina hac iendo dos capturas y restando el riempo que hubo entre ambas. Este modo de operacin consiste en que los registros CCPRI H:CCPRl L .apturan el valor de l6 irspresente en el regisrro TMRI en el momenro en que se Preienta un evento en el pin CCPl. Este evento seleccionacnlos bits 'e Je control CCPlM3, CCP1M2, CCP1M1,

.I$qMEE
...@
L entrada deconteo aTMRI runl ol 1: habilita
0: deshabilita entrada deconteo a TMR1

@
labandelra En cualquier caso, activando CCP1 lFenmodo caotura:
0 0 tiempodecadaflanco de bajada en el pin RCZCCPI 0 1 tiemDo de cadaflancode subida en ei pin RCZCCPI 1 0 tiempode cada4oflancodesubida en el pin RCZCCP'I 'I 1 tiemoo de cada 16oflancode Sobref subidaen el oin BCZCCP1

PnRC2ICCP1

(CCPICON CClPMO
<3:0>), entre las si:uientes posibilidades:

rida. El
erameh mejor iendo el m cristal pueden da en el re en el configu-

. . . .

Figun 13.4 Mdulo CCPI enmodo decaptura

Cualquierflanco de bajada Cualquierflanco de subida Cada4" flancode subida Cada16" flancode subida

que seespecificanclaramente en esta figura. El circuito de la figura 13.4 puede configurarseinicialmente para capturar el tiempo del flanco de subida cargandoel registroCCP1CON con H'05'.

rcuito y rdel ma-

En la figura 13.5podemos observar el circuito asociados al funcionamiento y maneCuando se ha ejecutado una captura, se acti'los registros ,r del mdulo CCP2, parafuncionaren modo de vael bitCCPlIF, el cual debelimpiarsemediante :eprura; suprocedimiento essimilaral circuito para el programa. Si seejecutauna nueva captura antes =rnejarel CCP1, perodifiereen algunos registros de que el valor del registro CCPR1 se haya ledo,

prctico curso sobrc Micrrcontrotadores &at*#

se perder el valor capturado anteriormente. Luego de borrar la ban.lTu w{*:::,,ita dera CCPIIF del registro PIR1, sedebeactivar ccP2c0N el bit CCPIIE del regis(H',1D) tro PIEl para habilitar labandera cualquier caso, activando las interrupciones debi- En lFenmodo captura: CCPI das al mdulo CCPl. cadaflanco debajada 0 0 tiempode enel oinRCI/CCP2 De igual manera los bits desubida 0 1 tiemDodecadaflanco RC1/CCP2 el Din GIE y PEIE deben estar 1 0 en tiemDode cada4oflancodesubida enel oinRC1/CCP2 activados. Cuando apa- 'I 1 tiemoo 16"flancode decada Sot subida enel oinRC]/CCP2 recela interrupcin debido a la aparicin del flanco seleccionadopara el pulso de entradaen el pin RC2/CCP1, se limpia la banderaCCPlIF. En este momento seborra el bitj de CCP1CON paraconfigurar la captura del tiempo de ocurrenciadel flanco de baiada de la entrada. Finalmente el registro de 2 bytesCCPRI secopia en dos posiciones dememoriaRAM. Cuando ocurre la segundainterrupcin, el prinier valor capturado se resta del nuevo valor capturado para proporcionar el ancho del pulso. Cuando la medicin seha culminado, sepuedeborrar el bit CCPIIE del registro PIE1.

,lfi?e,ry

H
entrada de conteo aTMR.

0: deshabilita enfadadeconteo a TMRI

*T-

(H'oF) T14R1H

(H'oE) TMR1L

Figura 13.5Modulo CCP2 en modode

Modo de PWM
En el modo de modulacinpor anchode pulso(PVM), el pin CCI\ produceuna satida P\7'M de l0 bir.Debido aqueelpin comopin unafrrncinaltema CCPxposee I/O, sedebe configurar por mediodela instruccinTRIS paraque rabajecomo salila salida de da En la figura 13.6semuestra (P\XA4) oriporanclo depulso modulacin PIC; all desde un microconuolador ginada quese losprincipales elementos seobservan

t'PwM = -l (a)Forma deonda PWM de la salida

Periodo

deseada debanda dela seal defrecuencia dePWM Comoonentes

Seal f.* (b)Espectro de la frecuencia

Figura 13.6 formade ondade unaseal

kt; #

prctico Microcontrotadores sobre curco

leor[
el periodo, el distinguenen estetipo de ondas,a saber: ciclo y la frecuenciade la sealde P\flM. En muchas aplicaciones prcticases necesario Lrnperiodo de la sealcono. Por ejemplo,el circuito de la figura 13.7 ulinuna salidavariablede P\XA4 paragenerarvoltajesentre 0 y 5 voltios, utilizando un filtro pasabajo para conformar un valor promedio a partir de la forma de onda. Entre mscono sea el periodode la P\lM, msrpido podr cambiarel ',.alor promedio. Si los cambiosen la sealP'!M se .-aracterizan por una frecuenciamxima,fnax como semuestraen la figura 13.6b, setiene: fmax << fcorte del filtro << f pwm la frecuenciade corte del filtro necesita esra por debajode la frecuencia de la onda P]/M,fpunn, para removersu componentefundamentaly susarmnicos en 3 fowm, 5 fpwm, 7 fowm, etc. y dejar solamentelos componentesCC que varen lentamente. De estamanera,acortarel periodo de la seal de la P\X/M esla manera ms simple de acomoda seales de frecuenciacon un filtro que las deje pasary remuevalos efectosde la modulacin PVM. En algunas otrasaplicaciones el filtrado esinnecesario. En la figura 13.8 semuestraun circuito que puede usarse para controlar temperaturao la intensidad de una fuente de luz mediante un MOSFET; dispositivoque paraestos casos esideal. Este elemento se caracteriza por poseeruna entrada de alta impedancia que lo hacef,cil de manejar.Paracontrolar adecuadamente un motor CC senecesita un nmero o magnitud y un signo; el signo nos indica la direccin hacia la cual va a girar el motor y la magnitud esla cantidad de energa que sele va a aplicaral movimiento; en el circuito de la figura 13.9, eI signo se origina por el pin RD6. Cuando dicho bit seencuentraen alto y la salidade la P'SIM activada,la parte izquierda del circuito seactivahaciendoque la corrientefluya haciala derecha. Si el bit 6 sepone en bajo y la salida de la P\X/M se encuentra activada, la corriente fluye de derechaa izquierdaen el motor.

. . .CCP2

K
It

' i l4

Figura 13.7 Circuito D/A de conversin

I caprura

Resistencia < 0.040Q = 4.5VlD= 2.54 VGS con

Figura 13.8 Manejo de unacargaconmutada


- empo

salPWM

El concepto del funcronamiento de la P\7M es el que se muestra en la figura 13.10.EITMR2 essomeddo a dos comparaciones con dos registros distintos,la primera escon el registrodel ciclo til y la segunda escon el registro del periodo. Cuando el TMR2 y elciclotil soniguales,la salidadel pin CCPx se pone en bajo, pero el TMR2 contina incrementndose hasta igualar al registrodel peFigura13.9 Control de un motorCCconun puente H

prctico Gurso sobre Microcontrotadores &i*r*:

db

\d

lVtrlutus l]VtJ L{t) IGPr(catl-utt:Jourluate$ln/


riodo; cuandoestoocurre,el pin CCPx seponeen alto y seborraelTMR2 parainiciar de nuevo.

En la figura 13.11semuestra un diagrama en bloquesdel mdulo CCP funcionandoen modo Las bir DC-xB9:DCxBO pueden serescrircar P\7M. El periodo delaP\lM se especifica enelregiscualquier momento, pero el valor del cido til nmediante la siguiente tro PR2y secalcula formula: almacena enCCPRxHhasadespudequelos o o o tenidos PR2yTMR2 sean de iguales,lo cualma: = KPR2) Periodo dela PWM + lt 4 Tosc finaldelperiodoacrual. En elmodoP\[M el (valor delprescalador delTMR2) CCPRxH solopuede serledo.El registro Cuandoel TMR2 esigual a PR2, en el siguiente y rn kxh intemo de2 bia configuranel bufe cido til, el cual, al igualar el contenido del T\ los siguientes ciclo sepresentan eventos: . El TMR2 esborrado concatenadocon dos bir desu prescalador, . El pin CCPx seponeen alto pin CCI*, esableciendo el final del cido til. . El ciclo til de la P\7M es almacenado en CCPRXLpasa a CCPRXH Paraconfigurarel mdulo CCP para que: cione en modo P\fM se debenejecutar lo, El ciclo til de la P\ilflM seespecifica en el registro guientespasos: el periodoen el registro PR2. CCPRxL y en los bits DCxBI:DCxB0 (CCPx- 1. Establecer CON<5:4>).Sepuede lograrunaresolucin hasta 2. Bablecer elcido til enlos bitsDCyBg: a los8 de CCPRxLy a los bits4 y 3. Configurarel pin CCPx como salida. de l0 bitsgracias 4. Establecerel valor del prescalador 5 de CCPxCON que actancomo los bitsI8. TMR2 y habilitar elTimer2 medianteeEste valor de I0 bits en definitiva queda en gistroT2CON. DCxB9:DCxBO. Para calcular el ciclotil nospoConfigurarel mduloCCPpanel modo 5. remitir a la siguiente demos formula:

Giclo tr d e la PWM (valor los fB . lssc o (valor DCxB9:DGxBO) delprescala delTMR2)

%t'1'ry
lsud* Pin ccPl bajo
SALIDA PWM

Registros de ciclo til

CCPxC0N<5:4> (DCxBl:DCxB0)

MdtlloCCP

lgual

PinCCPI alto TMR2 borra

l{ota1: Eltimer deLifses con2 lb delprescalador la base crear detiemoo de'I

y Borrar el temporizador almacena el ciclo til

Figura

Figura 13.10 Concepto delfuncionamiento de la salidaPWM

Mdulo Tme12

Diagrama de

$tle

&d

&ktf",

prctico Microcontrotadores curso sobre

en
SC In'

rel
o

I del R2 nel

' #,. t

'

/+l
-rI

{
lCPx

aiena00 I pata e 10 Dlts

a 13.11 bloques ,aPWM

La utilizacin de las comunicacionesseriales seencuentrapor doquier en el mundo digital ya que nos ofrece una solucin econmicay de alta calidad para una gran variedad de aplicaciones.
,) CursoprcticosobreMicrocontroladores&*tt<ilT";

En los sistemas con microcontroladoressiempre existe la necesidadde conectar elementos internos entre sf como los microcontroladores con las memorias, con conversoresA./D, conversores D/A, etc. o entre el microcontrolador y elementos externos al sistema como teclados, displays e interfaces de potencia, entre otros.

Las familias de rango alto de los microcortroladores PIC tienen incorporados mdulos ir* ternos de comunicaciones con sus pines o minales especializados para estafuncin y sus rrespondientesinstrucciones de programacin

quefacilitaestos procesos. En lasfamiliasde


nivel (pocos pines), las comunicaciones se

(I/O por medio de los pinesde entrada/salida puertosy los protocolos(reglas de juego) se ben establecer en el programalo que hace poco mscomplejasu elaboracin.

Figura l4.l Comunicacin enparalelo En trminos generales,hay dos maneras de interconectar elementoselectrnicos digitales: en paralelo y en serie. Se dice que una comunicacin es en paralelo cuando se conectan varias lneas entre los dispositivos (internos o externos) y los datos se envfan simultneamente por ellas; en la mayorla de los casos,en valores mltiplos de 8 bits (8, 16, 32, 64, etc.), figura 14.L. El otro tipo de comunicacin, la serial, se hace bsicamente por una sola lnea (o muy pocas) y los bits se envfan uno detris de offo, gara 14.2. En el primer caso, la comunicacin es ms rpida y ocupa muchas llneas o pines del microcontrolador y en el segundo, es ms lenta y utiliza pocos pines lo que nos permite realizarotras funciones con los pines libres. Actualmente, debido ala altavelocidad que se ha logrado en la operacin de estoscircuitos, la comunicacin serial es la ms utilizada ya que conviene ms ahorrar pines, que tener en cuenta la velocidad de transmisin que se lograrla con la conexin en paralelo.

(half Figun 14.3 Comunicacin unidireccional Por otro lado, las comunicaciones

(half duplex)o puedenserunidireccionales (frrll duplex).En lasprimeras reccionales se fierenlos datosen una soladireccinal seutilizan dos cables, uno parala sealy el
para la masa o tierra, figura 14.3. Con este ma hay que enviar primero los datos y

I
i

recibirloso viceversa. Con lasbidirecci puedeenviar y recibir informacin al ti se requierencomo mnimo tres cableso pi
uno para eirviar, otro para recibir y.otro

masao tierra, figura L4.4. En las comuni nesseriales hay dos mtodosprincipales:las y municaciones sincrnicas o sincronizadas
asincrnicas o no sincronizadas lo cual remos ms adelante.

enserie o serial Figun 14.2 Comunicacin

(full Figura 14.4 Comunicacin bidireccional

&<lr* #

prctico Microcontotadores curso sobre

conbin) ter6 CO-

n lo rbajo ecen lO) " B deFun


t

Otro faetor que se debe tener en cuenta en Ias comunicaciones serialeses la velocidad de transmisin de los datos la cual se mide en bits por segundo o baudios que es en realidad la velocidad con que cambian los estadosde la seal (de I a 0 o de 0 a 1). A estavelocidadsele llama generalmenterata de baudios ( Baud rate) o simplemente rata. Por lo general, se utilizan ratas con valoresnormalizados de 2400, 9600 y 19200 baudios. Esto es muy imporrante ya que en una comunicacin serial entre dos o ms elementos, se debe conocer la velocidad de transmisin de los datos con el fin de que sta se logre. Para que dos equipos se comuniquen sarisfactoriamente, ambos deben manejar un mismo conjunto de normas que indiquen los parmeuos y la manera correcta de realizar la transmisin y la recepcin.Este conjunto de normas es lo que se conoce con el nombre de protocolo. Cuando efectuamosuna comunicacin serial, los grupos de datos que sevan a rransmitir se deben descomponeren bitslos'cuales son transmitidos uno por uno desdeel emisor hastael receptor en donde seestablece de nuevo el grupo original. Un carcter lo podemos definir como la unidad mnima de informacin compuesta de varios bits. El emisor puede generar unidades de informacin de ms de 8 bits, pero como un microcontrolador PIC tiene una CPU de8 bits, Iasunidades de informacin deben dividirse en r-aiossegmentos de 8 bits para ser enviados por rparado. El dispositivo recepror se encarga de ensamblar de nuevo los segmentos para recuperar el mensajeoriginal. Parapropsitos de la uansmisin, cada segmenro de 8 bits se trara

como un carcter, sin importar que no sea la unidad final de la informacin. El ejemplo ms clsico de estecasoson los conversores A/D de 10,12 o ms bits. Cuando se transmiten cuacteresserialmente, los bits queconforman cedacarcterseenvlan de manera secuencial,distribuidos en el tiempo. Cuando un dispositivo rransmisor e nva estosbits, el receptor debe estaren capacidadde: . Determinar el momento exacto en que deben llegar. . Reconocer cundo empieza y curndo termina cada uno delos bits. . Reconocer cundo empieza y cundo termina la serie de bits que conforman el carcrer. Parafacilitar el reconocimiento claro de todos los caacteres, seha establecidoun sistema de sincronizacin por medio de algunos bits de delimitacin y separacin.Como ya lo mencionamos, exis. ten dos mtodos de demiacin que definen los dos tipos bsicos de uansmisin de datos: la transmisin sincrnica y la transmisin no sincrnica.

I
I duplex)

priales bbidi-

:uansmP oy
el otro E siste-

Tra nsmisin sinerniea


En estetipo de transmisinse asociaun pulso de reloj con cada bittansmitido. En esre casose requieren (usualmendoslneas decomunicacin te cables), uno para los bits de datosy orro para los pulsosde ieloj. El receptor puedereconocer fcilmenrclosbix de datosdebido a que ellosocurrende manerasimuluineacon los pulsosde reloj, de estamanera sabremos sacrarnenrecuandoleerlos zr dedatos correctos sin imporar quela seal dereloj no mantengauna frecuencia esable,figura 14.5.

bpus [es, se
I

FPO Y r pines, parala icacio: lascohs y las :xplica-

Reloj thhs Erts decaracter

r1ll duplex)

Hgun | 1.5Carcter serial sincrnico

pnctico Curco sobrc Microcontotadores arr"#

capacidad de reconocer cuando erpieza un bity cuando termina. Si: receptor puede determinar cuan llega el primer bit de un carcter conociendo el hecho de que cada Figura | 4,6Transmisin nosincrnica poseeun periodo fijo, el recr

puede anticiparcuandollegar:n
Cuando un dato se codifica en determinado nmero de bits, para separarlos distintos caracteresel receptornecesita contar bits,empezandocon el primer bitreclbido. Este tipo de transmisin es internacionales adoptado por algunos estndares como el protocolo SPI, I2C y Microwire. uno de los bits. Cuando no existen datos en medio de transmisin, se dice que se encue en estado vaco o desocupado y el receptor encuentra esperando que llegue un bit.

Cuandollegael primer bit el receprcrlo

noce y esperaun tiempo determinado para leer nuevo el siguiente bit, esteprimer bitforma Fste tipo de transmisin asociaunos irsespeciales de la estructura y se le llama bit de sincroni a cada carcterconformando una estructua o pa- cin. El receptor repite esteproceso de quete; incorpora w bit jttsto antes de empezar el esperahasta que se hayan ledo todos los bits. czrctery otro bit despuesdel carcter.Todos los .bits, incluyendo los de la estructura,s'eenvan a la El transmisor y el receptor poseencada misma velocidad (todos los bits con un mismo pe- su propio reloj para medir el tibmpo de cada riodo) y cuando llegan al receptor, &te ya sabeque Es posible queestos dosrelojes en un el primer bitrecibido correspondeal bitde estruc- dado se desajusteny rio queden co tura y que despus de 1, en intervalosfijos de tiem- sincronizados entre s? En realidad s, y si el caso, po, encontrarlos bits de datos, frgra,14.6. sepuedeoriginar un desfase y ear blemascomo el del receptoresperando un Thnto el emisor como el receptordeben tra- el instante incorrectobajar a la misma velocidad, es decir, a la misma rata de bitsi como el primer bit es quien-informa Esteproblernaseresuelve sincroni la aparicin de un paquete y despusde l se ridicamente, haciendofija la longitud dd localizan los bits de datos a una rata cnstante, el rcter y transmitiendo nuevam ente el bit de carcterpuedeserenviadoen cualquier momen- cronizacin al ihicio de cada carcter de to. Por ello, estemtodo se conoce como carc- o fijo. De esta manera los relojes slo ter no sincrnico y bit sincrnico. tan estar en fase durante un corto ti que ellos se ponen en fase nuevamente en Otro mtodo paralacomunicacin no sincr- bit de sincronizacin. nica consisteen transmitir a ratasde bitvariabla. Este mtodo no requiere una longitud fija de los Con un nmero fijo de bits por ca cnacteresni de los bits de estructura, aunque a ve- receptorcuentalos bitspara delimitar cess seutilizan; estetipo de comunicacin lo utircter permitiendo recibir correctamente liza un protocolo denominado Dallas l-Vire. uno de ellos, sin importar que sean tra dos a intervalos irregularesde tiempo (t

nosincrnica Transmisin

seriales no Somunicaciones slncrnicas

sin no sincrnica). Debido a que el pri


de la estructura es un cambio del estado

Ya sabemos serialdistribuye al estadode ocupado, por lo mends tn bi Quela transmisin los bits en el tiempo y el receptordebeestaren estadovaco debe seguir al ltimo bit del

&lt. #

prctico Microcontrotadores curco sobre

miel rdo rry bit


ftor ada

+Tiempo

r.I

Estructura delcarcter-r Tiempo deun blf

+l

l*

+ +

Estado desocupado Estado ocupado

nel [tra rse

Bitde sincronizacin Figura 14.7 Estructura delcarcter

eco:r de
ta-rte tt A-

ter, el cual tambin corresponde a un bit fundamental para conformar la estructura.

;otocolc nosincrnico serial


Este protocolo es utilizado por la mayora de los mdulos especializados para comunicaciones (UART) que existen dentro de los microcontroladores en comunicaciones serialesno sincrnicas.La transmisin se describe en la figura 14.7: caracteres transmitidos a intervalos indeterminados pero a una rata fija de bit icarcterno sincrnico, bit sincrnico). Segnesteprotocolo, el estadovaco de la transmisin esun I lgico, y sele conoce como estado de marca. El estadode ocupado esun 0 lgico y se le denomina estadode espacio.N bitde sincronizacinse le llama bitdeintdoy aI bitefinal de la estructura bit de parada. El bit de inicio es una ransicin desdeel estadode marca hacia el estado de espacioy el bit de parada esel estado de marca. Slo puedeexistir un bitde inicio, pero pueden existir varios de parada. El protocolo especi-

ray

fica que deben serl,l12 o 2 bits de paradacomo mnimo y 5, 6,7 u 8 bits de datos en el carcter. El carcter de datos se transmite empezando por el bit menos significativo y ? continuacin del ltimo bitde detosdel carcterpuede haber (aunque no escompletamente necesario)un bit especial denominado bit de paridad. El bit de paridad es un mtodo bsico para la deteccin de erroresen la transmisin. La paridad es una caracterstica definida sobre cada carcter de datos. Se determina por el nmero de unos (1) lgicos en los datos. El primer paso es decidir si se va a trabapr con paridad par o paridad impar. Paraparidad impar el nmero de unos en el carcter de datos debe ser impar. Esto es, se cuenta el nmero de unos presentes en el carcterde datosy si la cuenta esimpar entonces el bitdeparidad sepone en cero. Si el nmero de unos en el carcter de datos es par, entonces el bit de paridad se pone en uno para hacer el nmero de unos de nuevo impar, figura 14.8. Igual metodologa se aplica para el caso contrario, es decir para paridad par.

.uno r bit. rcnto lente gse es I Probiten

lo peel cah sintamarcesiPo ya n cada

cter, el da cae cada rmitirnsminer bit o vaco tren el lcarc-

+ +

('ltgico Marca Espacio(0lgico)

parada Elfde
Blfdeinicio

Figura Formato 14.8 delcarcter prctico Curso sobre Microcontroladores

t
i

{
i I

Figun l4.9lnErtaz serial dedos lneas

En la comunicacin por medio de dos caneles, los datos pueden viajar en ambas direccione simultneamente, o pueden viajar en ambas direccionespero no simultneamente. Como.z lo dijimos anteriormente, un canal de comu cacin que es capazde operar en ambas di cionessimultneamentesedenomina y un canal capazde operar en ambas di

pero no simultneamente se denominahalf


plex, en estos dos casosla rata de los datos ser la misma en ambas direcciones. Un canal una sola lneacapaz de operar en una sola direc

cin sedenomina canalsirnplex. Paraun canelhalfduplr se debe hacer sistema de control paraprevenirque ambos
minales intenten transmitir al mismo tiempo que un terminal enve cuando el otro no est

paratransmitir.Esteflujo de control requiere


14.10lnbrtu serial dedoshilos conlneas otras llneas adicionales,utilizadas para cont Figura adicionales decontrol de manera adecuadael flujo de los caracteres

mitidos por lasllneasde datos,figura l4JO.

Elcanal decomunica*in
sedesarrollan en dosvlas Muchascomunicaciones y de un receptoral y requierende un transrnisor final de lasdosvasdel canalde comunicaciones. En muchos casos se acostumbra dar el nombre de equipo terminal a cadauno de los equiposde y laslneasde transmisinseles comunicaci.r " denominaruta de los datos.

Elestndar RS-232
Una aplicacinrealde la comunicacin serial sincrnica esla que seha definido en el
internacional EIA RS-232. Se trata de una ma que define las caracterfsticas ffsicasque tener el canal ylas funciones de las lneasde trol y de datos. No seenfoca en el formato de tr datos, de manera que cada usuario es libre construir suspropios formatos.

de dos La comunicacin en dosvasrequiere llneas, una para cada direccin de viaje de los datos.El transmisorde un terminal se conecta Dentro de estanorma, los equipos por medio de la lneaA d receptordel segundo lestoman unos nombresespecfficos terminal y de la mismamanerael transmisordel do de su labor dentro del canal de com segundoterminal seconectaal receptordel pri- cin, ellospuedenser:Equipo Terminal de mero, frgara14.9. DTE DCE

I
rrr" #

lnterfaz RS-232

Interfaz RS-232 Figun l4.ll Canalde conunicacin

prctico sotue Microcontotadoes curso

tl :U L L

nanes ditya lnirectlex; )nes '-dulebe Lide


I T CC -

PIN

(conector Lneas RS-232 de25pines) ' Nombre Direccin DTE DCE

Funcin

r un
, terPoo listo re de :rolar ranst.

1 2 3 4 5 6 7 I 20 22 23

PG Tiena deproteccin Tiena deseguridad TD Datos TX Datos desalida Satida Entrada RD Datos RX Datos deentrada Entrada Salida para quiere RTS Peticin enviar Salida Entrada DTE enviar para para que CTS Listo enviar Entrada Salida DTE 0K enve para DSR Datos listos DCE listo comunicarse Entrada Salida Comn -Tiena DCDDeteccin depoftadora decomunicacin Entrada Salida Enlace enproceso para DTR Equipo listo Salida' Entrada DTE terminal listo comunicarse RJ Indicador dellamada Entrada Salida Anuncia enllamado entrante DSRD Rata delaseal de datos delarata dedatos Cualquiera Cualquiera Indicador
Tabla l4.l Lneas RS-232 enunconector DB-25 estnda el equipo DTE debe tener un conector tipo macho y el DCE un conectortipo hembra. Estaslneasse puede clasificaren dos grupos: las de funcionesde datosy las de funciones de control. Solo hay dos lneaspara funciones de datos, por la lnea 2 se transmiren los datos y por la lnea 3 se reciben. Las dems lneasse utilizan para efectosde control del flujo de los datosy el nombre de cada una de ellas refleja su funcin desdeel punto de vista del equipo DTE.

ialno indar r nor'de be


3COn-

de los rre de

Conector DB-9 IBM.PC Lnea Conector RS-232 RS-232 Gonector 25pines I pines TD?3 RD32 RTS47 C T S s8 D SR . 6 6 Comn 7 5 D C D8 1 DTR 20 4 ,, Rl 229

nllna-

rdienunicale Da-

: nserial

La interfaz RS-232 ha llegadoa estandarizar (DB-9) la comunicacin entre dos terminales de datos labla14.2Conector RS-232 deI pines por medio de un mdem, un enlace de comunirs (DTE) o Equipo de Comunicacin de Dacacin y otro mdem, figura 14.12. .,,s(DCE). Inicialmentepodemosentenderun ITE como una computadora y un DCE como .:r mdem,figura l4.ll. El estndarRS-232 se aplica a ratasde datos de hasta 20.000 bits por segundo y hasta 15,24 El estndardefine 25 lneascon sus corres1r,:s{-,fi. : rndientes nmeros de pines dentro de un co.:ctor. De las 25Lneas 11 tienen que ver con la :i-i-& - nunicacin no sincrnicay se pueden apreen las Tablas l4.l y 14.2, donde se muestra -.rr Intefaz RS-232 . distribucin para conectores de 25 (DB-25) y ' plr medl de un mdem Figura14.12 Comunicacin seral rines (DB-9). De Ia misma manera,segnel
talF
'+i:i

.E
'*

!_

t4Fl.{t

prctico curso sobre Microcontrotadores &tcfn:

&d

i. a laseuntuuicaeiuttes st'ttates . ,'' :tttttutiuut-ltt

Entrada RS-232

Salida RS-232

Cuando utilizamos comunicaciones ser.i les externas microcontrolador, las en un s das digitales de 0 y 5 voltios deben aconi cionarsepara llegara los nivelesRS-232. E,:, problema se puede resolver fcilmente p medio de una configuracin de transistore , por medio de un circuito integrado espec.; al cual se le entregan los nivelesTTL y arr-

los niveles RS-232,figura 14.13.De ester::


de integrados existe una gran variedad y n-chas empresasfabricantesde circuitos los l: desarrolladosatisfactoriamente. lnbrtaz Figura 14,13 RS-232 conunmicrocontrolador Cuando queremos transmitir caracteres que metros de longitud del cable,aunque estalongihumanos podamos leer y entender,debemos:: tud sepuede extenderpor medio de unos dispo- dificarlos por medio de una combinacin de : sitivosrepetidoresde sealque corrigen los nive- El cdigo de texto de ms aceptacinse llam" les de voltaie. cdigo ASCII. Como estamostrabaiando con comunicacionesbinarias,solo se han definido dos posibles estados para la seal:marcay espacio.Una marca es un uno lgico y su seal de voltaje, para que seacomprendida correctamente, debe estar en el rango de -3 hasta 15 voltios. esun cero lgico y su voltaje debe Un espacio estar entre +3 y +l5V para que el receptor lo pueda leer adecuadamente. Si una seal se encuentra en el rango comprendido entre -3 y +3Y se entiende como un estadoindeterminado. ASCII es un coniunto de caracteres cadosen 7 bits que cuenta con 95 caracteres primibles y 33 no imprimibles. Los primeros cluyen letrasminsculas,maysculas, los n: ros del 0 al 9, caracteres de puntuacin y otr Los segundos se denominan caracteres control y sirven para manejar la comunicac-: Los caracteres imprimibles tambin se con como caracteres grficoso leblespor human:.:

son codificados desde$20 hasta$7E comr muestra en la Thbla 14.3.

Nibble bajo

Tabla14.3 Cdigc

&<rct. #

prctico curso sobre Microcontrotadores

riarlidiiste Por
35O

Jumperde seleccin

:ial, roja ripo muhan

RD RTS GND COM

e los
6 CO-

; bits. mael

odifis imosinrumeDOS.

I
22pf

r[|4MHz

22pF

res de acin. nocen y. rnos tmo se

rgun t.tEsq*i *, ,**o La mejor manera de aprender el manejo y el establecimientode comunicacionesseriales con microcontroladoreses a travsde algunosejemplos bsicos.Ahora entraremos a analizar dos casostpicos sobre microcontroladores PIC de 18 pines: las comunicaciones Half-Duplexy FullDuplex. Daremos algunasrutinas bsicasgenricasque no estnligadasa ningn microcontrolador en particular y que pueden ejecutarse sobre la configuracin de circuitos mostrada en la figura 14.14.

para comunicacin seriat

,: 1!unicacin n*

embargo,esas funciones sepueden desarrollarcon algunaslneas'decdigo. En muchas ocasiones, estaopcin representa una efectivay econmica solucin, y por lo tanto debe serconsiderada.El circuito de la figura 14.14 puede utilizarse con muchos microcontroladoresPIC de18 pinesy el objetivo siempreserel de comunicarnos con una computadora por medio de su puerto serial,que har las vecesde equipo DTE y quien deber estarejecutandoun programa terminal que permita monitorear todos los datos que transmita o reciba por estepuerto. Si el lector no tiene amplios conocimientosen algun lenguajede programacin,no hay problema: 'l7indows ofreceel programa hypertermina/quelo podemos utilizar fcilmente.

"qi'r:rnic;r . 0c fl r.!li{i ! a d il r?-:.

er

WoASCtt

Como ya lo mencionamos, los microcontroladores ms pequeos no cuentan con mdulos especializados de comunicacin (UART). Sin

prctico curco sobre Microcontrotadores $tn.#

h*
\4

lnirudur,"ulu a lasrutuuulgciouss seltiiles


: -----LIB1 . GRP---MDULO RECIBE DE 8 UN CARCTER ;ESTEPRIMER ; B I T S , 1 DE IN IC IO , 1 D E Y SIN PARIDAD ;PARADA FINAL: CARACTER RECIBIDO EN EL ;RESULTADO REGREC ;REGISTRO REC-ASINC BCF BANDERA,l; ; BCF BANDERA,0 ; ; MOVLW 09 ; ; MOWFCUENTA-BIT DE TX DEBE EN ; AL SALIREL PUERTO QUEDAR ; ALTO. TM-ASINC BCF P0RTA,TX ; BIT DE INICI0 CALL BIT EL TIEMPO DE1 ; ESPERO BIT MOVLW 08 ;8 BITS DELCAMCTER I'OIF O,EITA-BIT EN ESTE ;SE CARGA ; REGISTRO TRA-AS]NC1 RRF REGTX,F ;ROTABIT A TRAV.-S DEL ; CARRY = 0 ? BTFSC ESTAD0,C ;CARRY trT0 TMiSII\IZ ;N0 -> C = 1, PA1 =1 = 0. BCF P0RTA,TX ;BIT DE DAT0S ;P A l = 0 OT0 TRA-ASII.(3 ;Y SALT0 TRA-ASINC2 = 1, BSF PORTA,TX ;BIT DE DATOS ;P A l = 1 TM-ASINC3 CALL BIT DECFSZ EL TIEMPO DE 1 Bff ;ESPEM CUENTA-BIT,F ;YASE E ;L0S 8 BITS? GOIO TM-ASnf1 ;N0 -> IR POREL BIT ;SIGUIENTE BSF PORTA,TX EL BIT ;SI -> HACER ;DE PAMDA CALL BIT EL TIEMPO DE1 ;ESPEM RETLW O

L]MPIA BANDERA DE ERR0R DE INICIO LIMPIA BANDERA DE ERROR DEL PAQUETE + 1 8 BITS DE DATOS DE PARADA

REC-ASINCl BTFSC PORTA,RECE BIT DE ; LLEGO ; INICIO? G0T0 REC-ASINCI ; N0 -> REGRES0 CALL MEDIO-BIT ; SI -> ESPER0 UN DE I/2 BIr ; TIEMPO BTFSS PORTA,RECE SE TIENEEL BIT ; AUN ; DE INICIO? G0T0 REC-ASINCZ A ; SI -> SALTO ; REC-ASINCZ BSF BANDERA,I ; N0 -> ACTIVO BIT 1 ; DE BANDERA (Urc RECISII'IJIN;Y SALG0 REC-ASINC2 ELTIEMPO DE1 BIT CALL BIT ;ESPERO tEcFv 0EIIA_BrT,F ; ACTUALIZO EL E BITS ; CONTADOR GOTO REC-ASINC3 ; SI NO HA TERMINADO SALTO. ; EL PAQUETE BTFSS PORTA,RECE ; BIT DE ST0PLIST0? BSF BANDERA,O BIT 0 ; N0 -> ACTIVO ; DE BANDERA REC-ASIK-FIN Om ; Y SALGO REC-ASINC3 BSF ESTADO,C ACTIVO EL CARRY BTFSS PoRTA,RECETOMO EL BIT DE DATO.ES1? B CF E ST A D O,C NO -> BORRO CARRY RRF R EGR EC ,F ROTO EL CARRY CONEL REGISTRO DE RX PARA ESPEMR GOTO REC-ASINCZ SALTO EL SIGUIENTE BIT REC-ASINC-FIN RETLW O ; SALIDA

, UTILIZADO PARA TEMP0RIZAR LOSBITS ; RETARD0


RET MOVF MOWF RETl MOVF 1r,l0wF RETz DECFSZ GOTO DECFSZ GOTO RETLW MEDIO-BIT MOVLW MOWF i,t0vLtv MOWF CALL RETLW BIT MOVLW MOWF MOVLW MOWF CALL RETLW CoNTAB,W CONTAC CoNTM,y{ CONTAD F CONTAD, RET C0NTAC, F RETl 0 D ' ,3' CONTAB D'20' CONTAA RET 0 D ' ,3' CONTAB D ' 43' CONTAA RET 0

ESTESEGUNDO MDULO ENVAUN CARCTER DE BITS, 1 DE INICIO, 1 DE PARADA SIN PARIDAD ENTM: CARCTER A SERENVIADO EN EL REGISTRO REGTX Y PORTA.lDEBE ESTAR EN ALTO

y transmisin Figura 14.15 Rutinas derecepcin no

&*ni. #

prctico Microcontrotadores curco sobre

En la figura sepuedeapreciar que el microcontroladorse conectaa Ia computadorapor medio de un transceiuer, conformadopor el circuito integradoMAX232 ylos pinesde conexin entre esteltimo y un conectorParaPuertosede sealizacin rial tipo DB-25;como elementos diodosLED en los puertosdel sehan conectado microcontrolador.

freuepcion ll aI| -uple.


Con el objeto de tener el control sobre la transmisin, se ha definido un registro de banderas (BANDERA) cuyos bits se activan o desactivan de acuerdo a los errores encontrados. Si el microcontrolador detectaun bitdeinicio cuya duracin es menor al tiempo normal de l12 bit,lo

omunica Dupl cionHalfex


la aplicacinde una comunicaEn muchoscasos cin Half-Duplexesmsque suficienteparasalas exigencias de un sistema tisfacerplenamente se transmiten datos. en donde Desdeel punto de vista del receptorsepueel primero, escuando el miden dar dos casos: la lleesperar debe obligadamente crocontrolador gadade un carcterpara poder ejecutarsustareas,casoen el cual podemoshacerque el proen un ciclo hastaque llegueel gramaseencierre cuando el El segundocasose presenta carcter. microcontrolador posee un tiempo limitado para (tirneout), ya que debe estar esperar el carcter pendientede otrasactividades. mostrados en la Los mdulos de sofiutarr figura 14.15, conformanlas subrutinasde recepciny transmisin.La velocidadde transposee un misinesde 2.400 bpsy cadacarcter formatocompuesto por I bitdeinicio, 8 bitsde figura L4.16. datosy I bitde parada,
I i

; I t ff deinicio LSB

parada Blfde MSB


Figun 14.16 Formato delcarcter

3andera

Disponibles
EANDEM Fgura 14.17Registro

estructura Error de inicio


Figura 14.18 Diagrama de deflujo dela rutina recepcin nosincrnica

Bitde

prctico curso sobre Microcontmtadores rrr*#

!i

t tx

lnuduuuin srttales a lusL'onrunluGlunes


ms probableesque setrate simplementede un ruido que aparecien la lnea y en esemomento se activa el bit I de BANDERA. Si por alguna raznel bit de parada no llega en el momento exacto que se esperaba,se genera una nueva situacin de error y se activa el bit 0 de BANDERA, figura 14.17. [a estrucnrradel programa esla que semuestra como inien la figura 14.18. All podemosapreciar del cual no sale cialmente entra en un ciclo de espera hastaque seha detectadola llegada del primer bit Al detectar la presenciade un cero lgic. en la lnea, se presume que se trata del bit c. inicio, sedebe esperar un tiempo (I12 bit) y c: nuevo comprobar que ese nivel permanece e: la lnea;si la comprobacin no es exitosase e!tablece un estado de error en la transmisir activndose el bit I de BANDERA. Si se h; comprobado la llegada del bit de inicio, se e=pera el tiempo gastadopor un bit para hacer - primera lectura; en estepunto se ha esperai: un tiempo de lt l, bits desdeque se detect : bit de inicio hasta que se ley el primer bit. .!. partir de esemomento sehacen 9 lecturas,cac: una separadapor el tiempo gastadopor un :; Si la novena lectura es un uno lgico se asun:: una lectura correctay el valor ledo secoloca e: el registro REGREC. Si el noveno bit no ctrresponde a un uno, se configura un estadoc: error denominado error en la estructura ), s activa el bit0 del registro BANDERA. El registro de recepcin toma el dato de transmisin por medio de un procedimiento cr el cual el bitledo se coloca en el bit carry ca. registro de estadoy se hace una rotacin del r.gistro REGREC. La subrutina de retardo la podemos apr:-

ciar en la figura 14.19.Secomponede un c,


clo embebido dentro de otro ciclo que se rep

= (3. Contadorl . Contador2 Retardo + 5 . ContadorB)fl-iempo del ciclo dereloj)


deretardo Figura14.19Diagrama de lujodela subrutina

Tiempo de1 ff Tiempo 112 bit [r s) [t s) 110 4545,5 9090,89 300 166,7 3333,3 600 1666,6 833,3 1200 833,3 416,7 2400 416,7 208,3 4800 208,3 104,2 9600 104,2 52,1 19200 52,1 26 Rata Bits/s
paradistintas Tabla14.4Tempos empleados velocid de

$g23

&d

&rct".i.

prctico Microcontroladores Curco sobre

aldecrementado te un cierto nmero de veces En la tabla 14.4 se.muestran gunos registros. los distintosperiodosde tiemposque emplean un bit, y ll2 de bit paralas distintasvelocidadesde transmisin. La instruccinRRF: roteel contenido del regisusandoel carry tro "f" a la derecha, Sintaxis: RRF [,d una casilla l-os bit del registrof son desplazados la posicin y el bitque ocupaba haciala derecha, ceroesahorael bit carry.Si d=0 el resultadofinal en f seguarda seguarda en\1, si d=l el resultado

no Transmisin sincrnica

plex :1n$mf ll a lf-u srn


Para desarrollar esta funcin se debe tener el cuidado de manejar la misma velocidad y formato de los caracteresque los utilizados en la recepcin, pero en este caso no se han establecido banderasde error. El dato que se va a enviar serialmentedebe estar almacenado en un registro denominado registro de transmisin. La transmisin debe empezarcolocando un cero lgico por la lnea de salida que correspondeal bitdeinicio, luego esperael tiempo correspondiente a un bit para que el tiempo de dicho bitsea el apropiado y a partir de ese momento se hacen ocho rotaciones (a travs del carry) del registro de transmisin, figura 14.20. Cada vez que se hace una rotacin a la derechadel registro de transmisin, cada uno de los bits de datos empieza a circular secuencialmente por el carry. De esta manera solo necesitamoschequear el estado de dicho bit para saber el estado que debe tomar la lnea de transmisin en cada instante de tiempo, figura 14.21.

Figun 14.20 Transmisin nosincrnica

iiplii:;i*rr:r re*epcion itc ins ri-tlu]rr; de,


, l! t t iilin ir5 iirl : : l s ilrc ' ' 0 t iic a s Estudiemos ahorauna situacin en la cualsimse recibe byte carcter desdeuna plemente un terminal (PC) y esemismo carcter seenvade (es hacia nuevo ella lo que seconocecomo eco); paravisualizar el proceso sepuedeutilizar el programa hyperterminalde \Tindows 95198.El diagrama de flujo del ejerciciolo podemos aprela ciar en figura 14.22.

prctico curco sobre Microcontroradores rl;#


.J

; ------sERrAL1.ASM------ .----DECoMUNTCACToN SERTAL ;EJERCTCTo ; z4oo BPs, 1 BIT DEINICIo, 1 DEPARADA


DE DATOS:PA3 ; ENTRADA : PA1, ; SALIDADE DATOS RADIXHEX LIST P=16F84 PA2

c E Q U0 Z E Q U? l1 E Q Uo F E Q U1 RECE EQU 3 TX EQU L ESTADo EQU 03 PoRTA EQU 05 TRISA EQU 85 Estableciendo delalnea detransmisin PoRTB Figun 14.21 el dato EQU 06 TRrSB EQU 86 BANDERA EQU OC
A_CHAR EQU 1C

A-BIT EQU 1D
C0NTAA EQU 1E C0NTAB EQU 1F C0NTAC EQU 0D C0NTAD EQU 0F REGREC EQU LO REGTX EQU 11 ORG O INICIO CLRF PORTA BSF ESTADO,S ;SALTAAL BANCO MOVLW B'OOOOLLLL' MOWF TRISA MOVLIV OXOO i,IOWF TRISB BCF ESTADO,5 ;SALTA AL BANCO BSF PoRTA,2 ;DESACTIVA DTR Figura 14.22 Ejercicio decomunicacin BSF PORTA,1 ;SALE ESTADO DE Cuando el sistemaestlisto para recibir un LAZOCLRFBANDERA BCF PoRTA,Z DTR carcter, activa la lnea de DTR (Data Terminal REC-ASINC CALL Ready);al recibir el dato, el microcontrolador BSF PoRTA,2 ;DESACTIVA DTR deshabilitala lnea DTR (PA2) y envael mismo PERIffi DE 1 CALL BIT W ;ESItM carcter hacia el terminal. Deshabilitar DTR BTFSS BANDERA,0 EN LA ES ;ERROR equivale a decirle al terminal que no enve ms LAZO1 GOTO caracteres porque el microcontrolador estocuMOVLW 10 ; NAK MOWF REGREC ahora l recibir ms datos porque ;Y LO DEVUELVE pado y no va a LAZO1 MOVF REGREC,W es quien va a transmitir. MOWF REGTX CALL TRA-ASINC Este es un ejemplo muy sencillo de control LAZO GOTO del fluio de la comunicacin en una transmisin INCLUDE LIB1.GRP Half-Duplersi el microcontrolador recibeun bit END retorna un carcde error en el registrobandera, Figura 14,23 digofuente deleiercicio decomunicacin

rr-i #

prctico Microcontrotadores sobre curso

ter ASCII indicadorde que reconoci el error. En lasredes de comunicacin, cuandoel emisor seha enteradode estecarcter, puedetomar accionestalescomo enviarnuevamente el dato. El cdigo fuente del ejerciciolo podemos apreciaren la figura,14.23 El microcontrolador habilitala lneaDTR parainformarqueest listo p a r a recibir datos y llama la ru t in a Al hacer REC-ASINC paratomar el carcter. la recepcin y si no seha activado ningunabanderade error,el dato pasa del registro de recepRECcin REGRECal registro de transmisin TX y setransmite. Recordemos que la rutina de recepcin en realidadlee el bit de paradacuando stean esten la mitad de su periodo.Paraevitarconf'lictos esconveniente esperar un periodode un ir despus la lnea de que seha deshabilitado DTR; de estamaneraevitaremos algunosriesgoscomo por ejemplo,que el microcontrolador enve datos cuando el terminal an esta emitiendoel bitde parada.

Estetipo de comunicacin se caracterizapor desimultneamente los procesos de recep'arrollar :in y transmisin. Debido a que los microTiempo de 114de bit +l_t l+ I
iiiiiiliiiiiii

controladores son dispositivos que ejecutanuna seriede instrucciones de manera secuencial a travsdel tiempo,estetipo de comunicacin debe implantarse dividiendoel proceso de recepcin y transmisinen distintastareas. Como hemos visto anteriormente, la unidad bsica de transmisindentrode lascomunicaciones no sincrnicases el bit, si el tiempo empleadopor cada una de estas unidades sedivideen pequeos intervalos de tiempo, podemoshaceruna buena simulacinde operaciones simultneas de ffansmisiny recepcin. Para ello,simplemente seejecutala tareade recepcin en un instantede tiempo y la tareade transmisin insen el siguiente tante; estemodo de trabajo esviable siemprey cuando se tengaun estrictocuidado en el control de los tiempos,el cual sehacemediantesubrutinas de retardo basadas en ciclos anidados de programa. En la gura 14.24podemos apreciar el manejoque sedebehacerdel tiempo de recepcin y transmisin; all podemos observar como el tiempo de cada bit se ha dividido en pequeos intervalosque sirven para definir el instante exacto en quedebenoperar cadaunade las tareas. Observemos como la transmisin se llevaa cabosloa partir de que la recepcin ha reconocido satisfactoriamente cada uno delos bits de datos,mostrandouna especie de intercalado en la ejecucin de ambosprocesos.

iii
1 BIT NRA?

Lectlra el prinler &T fledgto$

'ansmrst0n

macena
ffdeinicio

lmacena primer ffde datos Figura 14.24 Tenporizacin delas tareas

prctico curso sobre Microcontotadoes rrr*#

l-l

try lry
t-@

mero un archivo (full.grp) con las distintas .-brutinas que se requierenpara transmitir y r.: bir estilo Full-Duplex. Para controlar los distintos estadosde la ;: municacin se ha establecidoun registro b'-

deras BANCOM, cuyadistri':'r denominado


cin se muestra en la parte de abajo.

En la figura 14.26podemos apreciar el : digo del programa el mtodc que desarrolla lastareas de tiempc paradistintosinstantes 14.25 Lazo detareas cual podemosincluir dentro de nuestrop: Figura
yecto particular. En este programa podec distinguir claramentela manera como secc truyeron las dos tareas. Existe una tarea :. cional denominada la tarea del usuario. E contiene, como su nombre lo sugiere,los p: cedimientosespecficos que l requierepara proyecto particular. En cualquier programa que utilice esta: brutinas, la tarea del usuario debe primero quear la existenciade nuevosdatos recibidos r'

Una segundaposibilidad para hacer la disen instantes de tiempo escontribucin de tareas figurando una interrupcin del temporizador, la rebajo la cual se ejecutan secuencialmente la transmisin. cepcin y Estudiemosun programa de ejemplo donde Se podamos visualizar mejor estos esquemas. compone de tres partes o tareasprincipales: la tarea de recepcin, la tarea de transmisin y la tareadel usuario.Todasellasseejecutansecuencialmente por estar dentro de un ciclo que se cumple indefinidamente, figura 14.25. Parafacilitar el desarrollode esteprograma se cre pri-

deraBANUDA) v si seha recibidoun nue'c


rcter debe moverlo hacia el registro de datos: bidos; de estamanera,el registrode recepcin usuario queda disponible para nuevaslectura-..

BIT BANDERA DE
0 t (BANRECE) Recibiendo ltimo rl (BANULB)

INDIGACN
I al recibir el ir de inicio 0 al recibir el bit de parada I al recibir el ltimo il de datos 0 al recibir elbit de parada

en el dcimoperiodo Error en la estructura @ANEST) I si no serecibibit de parada 0 por el usuario Nuevodatorecibido(BANUDA) I al recibirel bit de parada 0 por el usuario (BANRES) la bandera no seactiv I si al recibirel ltimo ir de datos, Error en la recepcin (BANTX) Transmitiendo listos Datosde transmisin (BANDATR) (BANDG) Transmi sincompleta
0 por el usuario I al inicio del it de inicio 0 al final del bit de parada I por el usuario 0 al inicio del i de inicio I al final del irde parada 0 por el usuario

tk

t "i.

prctico sobre Microcontrotadores curco

L\.:L.!L Ltl

; =====FULL. GRP=======

;----------------; RECEPCION

;----------------RETA sET RETA1 FREC BTFSSBANCOM,BANRECE ; GOTO FRECz LAZORECE DECFSZ GOTO ETz BIT? BTFSCBANCOM,BANULB BANDERA DE ULTIMO SI _> IR A FREC3 GOTO FREC3 NO_> LEER BIT BSF ESTADO,C EN EL RRF REG REC, F ROTAR CARRY BYTEDE RX MOVLW CARGO CONTADOR 04 MOWF LAZORECE ROTABIT ACTUALIZA CONTADOR, DECFSZ SALTA SI SON OCHO. GOTO RETA1 ; SI NO-> IR A RETARDO DATO BTFSSBANCOM,BANUDA; EANDERA DE NUEVO RECIBIDO? BSF BANCOM,BANRES ; BANDERA DE BSF BANCOM,BANULB ; ACITVAR ULTIMO BIT MOVF REGREC,v MOVER BYTERECIBIDOAL REGISTRO DEL RECEPCION DELUSUARIO, MOWF RECE IR A RETARDO GOTO RETA2 :REC2 BTFSCPTOENT,PINENT ; BIT DE INICIO? GOTO RETA3 ; NO-> RETARDO BANRECE BANDERA BSF BANCOM, ; 5I ->ACTIVAR ; DE RECEPCION INICILIZAR CONTADOR DE MOVLvf 0 8; ; BITS DE RECEPCION MOWF ROTABIT MOVLIII 05 MOVWF LAZORECE ; INICIALIZR CONTADOR DE RX ; DE LAZOS GOTO RETA4 ; IR A RETARDO

RETA4 NOP GOTO RETA1 GOTO R3 GOTO R4 GOTO RETA2 NOP

:
RETA1 R3 R4 RETAz

; -----------------; TRANSMISION

; -----------------TXON BTFSS BANCOM,BANTX TRANSMITIENDO? GOTO TXONz NO-> IR A TXONz DECFSZ LAZOTX,F SI_> ACTUALIZAR DE LAZO CONTADOR SALTO GOTO RETA5 BIT AUNNO ESTA COMPLETO. IR A RETARDO MOVLW 04 MOWF LAZOTX TIMEOUT.INICIALIZAR DE LAZO CONTADOR DECFSZ ACruALIZAR DE CNTBITX,F COiITADOR GOTO TXON4 NO SE HANENVIADO TODOS LOSBITS-->IRA SIGUIENTE BIT B C F BANCOM. BANTX SEHAN ENVIADO TODOS LOS BITS, B S F BANCOM, BANTXF; ACrIVAR RMEMtE TXCO,PLETA GOTO RETA6 TXON2BTFSS BANCOM, BANDATR DE LA TX LISTOS? ; DATOS GOTO RETAT NO-> RETARDO BSF BANCOM,BANTX 0AT6 115T6. ACTWAR BAMERA MOVLI{OA MOWF CNTBITX CO.ITADOR DEBrrS ; INICIALIZAR MOVLW 04 MOWF LAZOTX IMCI,ALIZJR COTAMR ffi LAZ0S MOVF REGDAT,$i MOVER DATO DEL USUARIO AL REGISTRO DE TX B C F BANCOM, BANDATR; LIMPIAR BANDERA DE DATOS DE TX LISTOS ET3

:-

)-

urenc!J= t

BCF PTOSAL, PINSAL; BIT DE INICIO GOTO TXON8 TXON4BSF E5TAD0, C RRF REGTX, F I.O/ER BIT DEDATOS AL = O? TXON5BTFSCESTADo, C CARRY GOTO TXON6 :18 C3 B C F PTOSAL, PINSAL SI -> BIT DE DAT0= 0 BTFSCPTOENT,PINENT; BIT DE PARADA? LIMPIARPIN PA1 GOTO FREC4 GOTO TXONT I BANDERA BSF BANCOM,BANEST ; NO_>ACTIVAR PINSAL PONER EN UNO PIN PA1 I TXON6 B S F PTOSAL, EN ESTRUCTURA ; DE ERROR NOP I :REC4 FINALIZAR LA TX I TXONT GOTO TXON8 LIMPIAR BANDERA DE BCF BANCOM,BANRECE; Inrrls NOP ; RECEPCION RETATGOTO ET4 BANDERA DE BCF BANCOM,BANULB ; BORRAR GOTO ET5 'E r 4 BIT RECIBIDO ; ULTIMO ET5 GOTO RETA6 BANDERA DE BSF BANCOM,BANUDA; ACTIVAR RETA6 GOTO ET6 ' DATO RECIBID0 FTE I NUEV0 GOTO Ef7 GOTO R ETA ; EI RARETARDO Ef7 GOTO TXON8 :_-2 NoP 'TXoN8 NOP SALIR DE LA TRANSMISION ::TA3 G0T0 R1 i LASO DECFSZ CONRET,F :: I GOTO R2 GOTO LASO l :. GOTO RETA4 RETLI1I O

y transmisin Figura 14,26 Subrutinas derecepcn

prctico curco sobre Microcontrotadores &kt

".t #

tiuuru'l tr a laseu nrunleacio tres lnu serlalc's


BANRES EQU BANTXEQU BATR EQU BANTXF EQU PToSAL EQU PINSAL EQU PTOENT EQU PINENT EQU ORG ' INICIO CLRF BSF CLRF BSF r.,rovlll ItloWF BCF CLRF BSF @+;SOBEFLUJO EN LA RX DE TRANSMISION OS;BANDEM OG;BANDERA DE DATOS LISTOSPARA TX DE TRANSMISION 07;BANDEM COMPLETA PoRTA OI PORTA 03

SERIAL N0 SINCR0NICA::= ;==== C0MUNICACION ; ====:========= FULL DUPLEX=========:=::= RADIX HEX LIST P = 16F84 EQU O EQU 2 EQU 1 EQU 3 EQU 4 EQU 5 EQU 6 EQU A EQU 1 DE LA CPU ; REGISTROS EQU EQU L EQU IADOEQU EQU A EQU EQU EQU EQU TH EQU NTCON EQU OO OL 02 03 04 05 O6 08 09 OA QB

O PORTA PTOSAL,PINSAL; ENVIAR MRCA PORTE ESTADO,RPO 00E9 TRISA; CoNFIGURANDo PINESPTo A ESTADO,RPO BANCOi,I BANC0i,I,BANTXF; ACTMR BANDERA DETI ; COMPLETA GOTO FREC include FULL.GRP

TAREADEL USUARIO

BANCOIi,BANUDA DATO RECIBIF? ; NUEV0 LOSDATOS SI_> TOMAR RECIBIDOS Y LLEVARLOS AL REGISTRO DE DELUSUARIO BANCOT,I,BANUDA; BORRAR BANDERA DE RECIBIDO ; DATO BANCOM,BANTXF; TX COMPLETA? RETAS BANC0III,BANTXF; BoRRAR BANDERA DE F ;DETX BANCOM,BANDATR; ACTIVARBANDERA DE ; DAT0SDE TX LISTOS RETA9 RETA8 Q1.

EQU ISA EQU rsB EQU c0N1 EQU

0t 85 86 08

DE TRABAJO ; MEMORIA EQU EQU EQU 0C OD OE

cE

EQU 0F

EQU 70 EQU 11 EQU 72 EQU 13 EQU T4 EQU 15 EQU T6 BANCOM :BIT5 DELREGISR0 EQU OO;BANDERA DE RECEPCI0N B EQU OI;BANDERA DE ULTIMO BIT T EQU OZ;BANDERA DE ERROR EN LA ESTRUCTURA DE NUEVO DATO RECIBIDO 03:BANDEM

RETA9 D '1 4 ' CONRET LASO Q3 FREC

Figwa14.27 De la misma manera, el usuario no debe mover ningn dato al registro de transmisin hasta que esta tarea haya activado la bandera de transmisin completa (BANTXF).Todas las banderas se encuentran disponibles para el usuario; algunas de ellas son activadaso desactivadas por las distintas tareas, pero otras requieren de la intervencin para modificarlas.

El programaque podemosapreciar en la 14.27aplica,las subrutinas delprograma

.&
tgSF

dAI<r,:,

.(

&d

prctico Microcontrotadores Curco sobre

lI
\

I
\ \

con ellas se encarga de recibir un carcter, proveniente de un termind y lo devuelve (envla un eco) hacia este ltimo. Si el terminal enVa continuamente caracteres, los cualessederruelvende la misma manera, se configura un sistema funcionando cornoFull-Dup lm. El formaro del carcterpara este ejemplo esde ocho bits de datos, sin bit de paidad y un bit de parada; los datos viajan a una velocidad de2.400 bps, si el cristal esde 4MHz. Como se anot anteriormente, el programa hace un lazo cuyo tiempo de ejecucin equivale al tiempo de duracin de un bit dividido entre cuatro. Si estamos trabajando a una velocidad de 2.400 bps, cada bit es'de 4126,66 microsegundos y por tanto el lazo se debe demorar 104,17 microsegundos, es decir 104 ciclos de instruccin (si se trabaja a 4MHz). La tarea.del usuario tiene un nmero limitado de ciclos, de acuerdo a los empleadospor las otras dos tareas;en la Tabla 14.2 se muestran algunos resultados que nos dicen cuantos ciclos se emplean para la tarea del usuario. Como se puede ver en la figura 14.28,la tareadel usuario indaga por la existenciade nuevos datos recibidos; si no los ha esperaun tiempo hasta que se completa el nmero de ciclos requerido y luego entrega l control a la tarea de recepcin mediante la instruccin goto frec.

Si sehan recibido nuevosdatos,el carcter recibidosemuevedesde el registrode datosrecibidos del usuariohaciaun registrodenominado registrode datosde transmisin y sedesactiva la bandera BANUDA(BAndera de NUevo DAto recibido)indicandoal usuarioque seha tomado el nuevo carcter. Si el transmisorno seencuentra ocupado, se activa la banderade datos de transmisinlistos (BANDATR) lo que le indica a la subrutinade ansmisinque puedeempezarsu trabajo.Despus de estoel control del programapasaa la tareade recepcin. Tareas delusuario

t-\

"\

1
I

porlazo Giclos detareas

Frckio ndor

para Tabla 14.2 la tarea delusuario Ciclos

Figura 14,28 Subrutina o tarea delusuario

prctico curso sobre Mictocontotadores &irr*#

sertales tesuunrunic'aciunes ,Lulruduq*xua


La tarea de recepcin, figura 14.29, recibe el dato que llega y las sealesque le indican al usuario que ha llegado un carctr y que se encuentra disponible para su uso. Despusde detectar una condicin de bit de inicio. la tareaesfrec

pera cinco miniperiodos de bit antesde lee: primer bit de datos.Los demsbitsde datos:
ledos cada cuarto miniperiodo de bit. Esta subrutina reconocey sealizapor dio de banderas dos tipos de error: si el d mo bit (bit de parada) no se encuenrra en do de marca (1 lgico), entonces se acir-

+
NO

i ,i r :1:i ' iftfuiT*E

recitdrtb?

+r'
Si

ttit? $ttmo

lvfro

----+r,rrT

+q

ffiry
8 bflF,l

Figura14.29 Tarea de

&kr-,.L #

prctico curco Microcontotadores sobre

L\--UL LL:,

TXON

I
No Transmiendo actualmente? deTx Dahs listos?

J'
Blisto?

+ +

Si

enviaron Se todos los biE?

Usuario (BANEST); y si :ir de error en la eetructura a bandera de nuevosdatosrecibidos no est borradacuando el noveno bit (:kimo bit de Jatos)se ha ledo,se activala bandera oe so'rreflujo en la recepcin. Ambasbanderas debenserlimpiadas por el programador.

Figura 14.30 Tarea detransmisin La subrutina o rarea de transmisin se encarga especficamentede transmitir un byte de datos y las seales para el usuario, cuando las sealesse han completado. El transmisor ejecuta la estructura mostrada en la figura L4.30.

prcco curco sobre Microcontotadores ti<tl:t

u's nc's scl.tal r.,tniuuicacio l,eS iF:iii


Existen nueve registros especiales PIC po- con la UART, contando con un registro de microcontroladores Muchosmodelos comuni- que se utiliza en programas donde las comu seen un mdulo interno paraestablecer denominadoReceptor/Tiransmi- ciones manejan interrupciones. Estos regi caciones seriales

conforman el control, el estado sor universalsincrnicoy no sincrnia (Uniuer- especiales parael co Tiansmitter. interfaces de los datosrequeridos Receiuer Asynchronous salSynchronous los comuto de programas. funcionamiento USART).Estemdulopermitedesarrollar o coFull-Duplrxno sincrnas seriales nicaciones Por ejemplo, existe un registro denomi eshalf duplexslncronas. municacion la SPBRG que se utiliza paraestablecer (bits EI mdupor segundo). dadde la transmisin La principal ventajaque setienecon es que le ahorran mucho tenido que debe tener esteregistrodebe los de estanaturaleza un se antesde habilitar la UART y se calcula teniendoa su disposicin trabajoal usuario, de llevar diante la siguiente formula: calidadencargado mdulo de excelente a cabotodaslas rutinasque vimos anteriormenFosc- 64 (vel) que el cdigoque sedebadesate y asegurando SPBRG= 64 (vel) del prograrrollar selimite a los requerimientos es decir,es un mdulo especialima especfico; en del oscilador lo que garantiza dondeFoscesla frecuencia tareas paraestas zadoydiseado y vel es la velocidadde trasnmisinen bits funcionamiento. su correcto (bps). segundo ... Muchos autores,cuandoutilizan la USARI para (como en estecaso), no sincrnicas aplicaciones AsynUARI (Uniuersal denominarla acosnrmbran El formato de los Receiuer/Tiansmitter). chronous datosde la UART a I bit de inicio, 8 o 9 bitsde En la figura 14.31obsery un bitde parada. datos paravisuaque utilizaremos vamosel circuito base lizar algunosalgoritmostomadoscomo ejemplo. PIC sehan En los microcontroladores parala transmisi blecidodospinesespecides
la recepcin a travsde la UART; se trata de

pinesdelpuertoC: RC6 parala transmisin y RC7 p."rala recepcin(RX).


aunque inicidmente no parecelgico, ambos

debenconfigurar paraquefuncionencomo TRI de entrada(por mediode la instruccin


DTE pin) (25

para los del circuito Figura 14.31 Diagrama esquemtico

ict; #
-

prctico Microconfrotadores sobe curco

l ,r ,r l - t- .

L \--\-' L L\.:.

los cial rca:ros Ias rec-

ado oci:onrcarme-

En la figura 14,33 se muestranlos regisLos registrosRCSTA y TXSTA respectivamente,son los que finalmenteconforman trosde control configurados paraestablecer una con 8 bitsde datosa 2.400 bps el estado y control de la recepcin y el estado comunicacin y control de la transmisin, respectivamente. (y un reloj de 4MHz) y en la figura 14.34 se muestran los registros de control de interruprequeridos Losregistros RCSTA,RXSTA y PIR1 infor- ciones paraconfiguraruna interrupFinalmente, man el estado en la figura de la comunicacin y los registros cin en la recepcin. RCREC y TXREC sonlos registros de datosde 14.35,se muestranlosbits de estado(banderas)de la UART. la recepcin y la transmisin, figura 14.32. Los registros PIEI e INTCON establecen el control de interrupciones en los casos donde seutilicenestas tcnicas.
t65431

de ryp_ " - Interrupcin transmisin habilitada Interrupciqn RCtE_ 9q... . recepcr0n naDrlrtaoa

cuando RCIF est activado

INTCON Interrupcin de ^-,rtrrtrperifricos habilitada

,lHz
i Por

Registro derecepcin: eneste registro Se escribr TXIF solo cuando est activado
esta-

global de 6_Habilitador Inlerrupcr0nes

iny e dos (TX)


lente, )OS SC

Figura 14.32 Registros dedatosdela UART

para Figura 14.34 Registros decontrol activar una interrupcin enlareceDcin

Frrnr nnr

"-"" sobrepaso enla ,roo_ Error '-"" estructura

rsc).
TXSTA

Prnes

-XSTA
- is in - 3 lts TX9 ,, - isin TXEN
: _ idud

prRl BRGH: Bi:ffifde


Seleccin demodo "'" nosincrnico " "un,". 0 Buffer detransmisin -,,,r^rrvaco ITXREG 0*Cuandosecargan nuevos datos enTXREG 1*Cuando seactiva TXGN Seactiva si el Bufferde recepcin RCIF'18/IE porlo menos tiene

76 5 4 3 2 1 : ) B RG

= *6 '""qO4-IBAIA) CONTENIDO (RR'A) Figun 14,3l Configuncin de losregistros decontrol dela UART

i ejemplos

Figura 14.35 Registros deestado dela UART

prctico curco r sobre Microcontrotadores ti<

-t #

Unacaracterstica muv interesante dela UART esque tiene mdulos intrnos en hrdwarecompletamente independientes paralaiecepcin y pa la recepcin, lo que permite establecer fcilmente comunicacio ne fa ll-D uphtc.El proceso fi ndmente estan simplecomo colocarel dato que seva enviar en el registrode transmisin y leerel dato recibido en el registrode recepcin; todo lo demslo hacenlos circuitosdela UARL En esa leccindaremos las rutinas prototipo para la recepcin,la transmisiny la interrupcin, con el fin de que se puedanutilizar en otrosprogftimas.

miento se encuentravacfo, a l llegan los

nidos del registrode transmisin y se inicie transmisindel dato. Si el registrode desp


miento no se encuentra vaco, la ansmlsi

de los contenidosdel nuevo registro de t misin no empieza hastaque el byte hayatransmitido completamente.

pormedio Recepcin dela UAHT


Cuandotrabajamos en comunicaciones no nicas,no sepuedepredecirel momentode da de un dato.Al recibirun carcter se nerar una interrupcin notificando este figura 14.37. Cuando configuramosla i cin por recepcinen la UARI ella se el momento en que seha recibido la toalidad
carcter. En ese momento la subrutina de i

pormedio Transmisin dela UART


l^arutina detransmisin, figura l4.36,inicialmen-e entra en un lazodel cual no salehastaque haya detectado vacoel registrode transmisin.Estolo hace chequeandola banderaTXIF del registro PIRI; cuando ella se encuentraen estadoalto, quieredecirqueel registro estvaco. Cuandoesta condicinseha cumplido,el datoqueseva a transmitir se pone en el registrode transmisiny la rutina termina.

rrupcin debetomar el carcter del registrodc cepciny trabajarsobrel dentro de una subrutina,figura 14.38. Lo primero que sedebehacerdentro de rutina es comprobarque la interrupcin se
bi a una recepcin, de lo contrario

Un registrovacoindica que ya seha envia- Dentro de la nueva rutina de recepcin se do el carcteranterior hacia el registro de des- el carcter del registro de recepcin. plazamientoque ejecutarfinalmente la transmisin. Si seha habilitadola interrupcinpor transmisin(bitTXIE del registroPIEI en alto) segenerar una interrupcin cuandoel registro se haya desocupado. Si el registrode desplaza-

Figura l4.fiTnnsmisin la UART con

Figun 14.37Servicio de

&t; #
f-

prciico cwso sbeMtctocontotad,w

e-

UREC

la
A.

in
$-

se

o-

raBeLfo,

Pen del
rteI fegva

El diagrama de flujo de la figura 14.38 correspondea una subrutina perteneciente al archivo COM.GRP, el cual podemos incluir dentro de nuestro proyecto particular en cualquier momento, como se mostrar a travsde un ejemplo. Esta subrutina trabaja con baseen el carcterrecibido en el registrode recepcin,para asegurarnos que el dato se lee correctamente, como se explica a continuacin. Adicionalmente, la misma subrutina se encarga de generarlasbanderas, tabla l4.3,lx cuales sealizanel funcionamiento del programa principal. Todas las banderasde esta tabla se encuentran ubicadas dentro del registro BANREC. El registro de recepcin que maneja la UART esde dos bytesyesdel tipo FIFO (First In First Oux el primero que entra es el primero que sale).Esto quiere decir que antes de poder leer este registro de recepcinsedeben haber recibido con anterioridad por lo menos dos caracteres. Si se lee el registro cuando un tercer carcter est llegando, no se perder la informacin almacenada. Sin embargo, pero si el registro se lee antes de que hayan llegado los dos caracteresse presentarun error denominado de sobrepaso, en el cual los datos se perdern. Si se presenta esta situacin seactivaruna bandera(OERR) del registro RCSTA.

I
I

esta dema. )ma

Los microcontroladores PIC ofrecen una ventaja para no correr riesgosen la lectura del registro de la UART. Cuando el dato del registro estlisto y disponible, se activa una bandera (RCIF) del registro PIRI. Al momento de esta activacin se debe leer inmediatamente el registro antes de que llegue el tercer carcter y se pueda perder informacin. En la figura 14.39 se observael cdigo fuente de estearchivo, el cual usted puede descargarde nuestra ppor medio de la UART gina en la internet. Figura14.fi Diagrama de flujodela recepcin

prctico curco sobre Microcontrotadores irr-t #

lnttutiuccl n a lasconrunlcaclo [rc=s sc+'[a[c=s


BIT BANDERA
byterecibido (NUBYTE)

FUNCIN
activada al recibir un byte borrable por el usuario activada al recibir los dos bytes borrable por el usuario activada por error en el primer byte borrable por el usuario activada por error en el segundo byte borrable por el usuario activadapor sobrepaso en la recepcin borrable por el usuario
Tahla14.3Registro de

recibidos(DOSBYTE) dosbytes

error en la estructuradel byteI

error en la estructuradel byte2

(ERSOB) errorde sobreflujo

El programaque semuestraen la figura 14.40 corresponde a una porcin de un ejercicio con la Full-Duplcx (por razonesde espacio no se incluy en su totalidad, pero estdisponible en nuestra pgina de la internet). En estec:$o serecibeun carcter proveniente de un terminal y de nuwo seretorna el ecohaciael terminal. Esteprogramasirvepara demostrarla interfazde sofataraentre la UARI y el programa de aplicacin.

Comosedijo al principiodeesaleccin, una


nicacinserialsincrnicasecaracterizapor asocia con un pulso de reloj transmitido por una l separada de la lnea de datos. [a comunicacin crnicapuedeonotener birdeestrucnrrayellosp den o no, estarsincronizados con el reloj.

UARI en el cual sedesarrolla una comunicacin multipla bindedatos, dondecadabb:.u:rcmtn

La transmisin serial de datos distribur-e bits en el tiempo y el receptor debe estar en pacidad de reconocer el momenro en que El programa empiezaenviando los caracteres pieza y el momento en que termina. Cuando da utilizar como referenciapara ubicar de ra precisa los bits de datos, ellos pueden diversas duraciones, lo importante es que la nea de reloj delimia el bit exacro.

ASCII de la palabra OK haciael terminal.Desde tienea disposicin una sealde reloj quesep:
esemomento, cualquier carcterrecibido del terminal es devuelto como un eco hacia este.Si por alguna razn en el carcterrecibido se detecta un error en su estructura,el microcontrolador retorna el cdigo ASCII SUB (1A) en lugar del carcter

recibido. Conello,elterminalpuedesaberquehubo En la figura 14.4I se muestraun un errory puede tomarmedidas al respecto, como de transmisinsincrnica en dondelos ciclos por ejemplo, enviarde nuevoel dato.Si ha ocurri- reloj juegan un papel fundamental.Los bir do un errorde sobrepaso, loscaacteres recibidos se datosempiezan a servlidoscadaque ocurre devrelven perojunto con el carqer ASCII NAK flanco de subidade la sealde reloj y son le
(15). De estamanera,el terminal estara en capaci- en el receptor cadaque ocurre un flanco de daddedeterminarqucaracteresseperdieronypro-da de la misma seal.Podemosnotar que la ceder a ena los que sedetecuon. al de reloj puede ser simtrica o asimtrica.

dt&

&d

irr-t

prcco curco sobre Microcontoradores

L\:Lj L L

DE TRANSMISION ;MODULO MMTX BTFSSPIRI.,TXIF MMTX GOTO MOVF CATUS,W MOWF REGTX ; RETURN MODULO DE RECEPCION RX CLRFBANREC BSF BANREC, NUBYTE BTFSC ESTREC, FERR BSF BANREC, ERRESTl MOVF REGREC,lv MOVWF REGl BTFSS PIRl, RCIF RXX SALTAGOTO BSF BANREC,DOSBYTE BTFSC ESTREC, FERR ERRESTz BSF BANREC, REGREC,W MOVF MOVWF REG2 ESTREC,OERR RXX BTFSC BSF BANREC, ERSOB BCF ESTREC, CREN RETURN -:-------, SERV-INT BTFSS PIRl., RCIF GOTO SALINT MOWFTEMPW W ESTADO, SWAPF BCF ESTAD0,RPO MOVllllF TEMPST CALL RX SERV-INT1 TEMPST, W SWAPF MOVWF ESTADO F TEMPW, SWAPF TEMPW, W SWAPF SALINT RETFIE BORRA BANDERAS DE RECEPCION BANDERA ACTIVAR DE BYTERECIBIDO EN LA ESTRUCTURA? ERROR SI -> ACTIVAR BANDERA DE ERROR EN EST. 1 TOMAR CARACTER RECIBIDO Y LLEVARLO AL BYTE1 (BYTEz)EN EL BUFFER? EL DATO AUNESTA LA BANDERA SI. ACTIVAR DE RECEPCION DEL BYTE 2 ERROR EN LA ESTRUCTURA? BANDERA SI -> ACTIVAR DE ERROR 2 TOMAR EL 2 CARACTER RECIBIDO AL BYTE Y SE MUEVE 2 DELREGISTRO DELUSUARIO ERROR PORSOBREPASO SI -> ACTIVAR BANDERA DE SOBREPASO BORRAR BANDERA DE SOBREPASO DE LA UART DE TX VACIO? ; BUFFER EL CARACTER A TRANSMITIR ; SI -> TOMA

ia t<;-JC-

i senvrcro DETNTERRUPcToN
LOSDATOS ESTAN EN EL BUFFER DE RECEPCION? N0 -> N0 RECTBIo TNTERRUPCToN, SALrR SI GUARDAR COPIADE SEGURIDAD DEL CONTEXTO

TOMAR LOSDATOS RECIBIDOS RESTAURAR CONTEXTO

para Figura 14.39Cdigo fuente delalibrera comunicacin nosincrnica utilizando la UART

prctico curco sobre Microcontrotadores &kr

r," d%

&d

lrers serlalt's u a Las touruulcaclo Ltrtt'utiucci

MOWF ESTTX MOVLW OT9 RADIX HEX MOWF spbrg LIST P=16F873 ESTADO,RPO BCF ot EQU optreg MOVLW OLO 05 EQU tri so MOWF ESTREC EQU 06 trisb ESTREC,spen BSF EQU 07 trisc BSF ESTADo,RPO piel EQU 0c BSF ESTTX,TXEN pe2 EQU 0d piel,RCIE BSF pcon EQU 0e BCF ESTADO,RPO pr2 L2 EQU INTC0N,peie BSF 13 EQU sspodd BANREC CLRF 1.4 EQU sspstot INTCON,gie BSF DE LA TX EQU 18 ; ESTAD0 ESTTX MOVLW OH EQU L9 spbrg MOWF CATUS o rbif EQU CALL MMTX MOVLIV KAY 0020 TEMPST EQU MOVWF CATUS EQU 00zr TEMPW CALL MMTX DE RX OO22; BANDERA BANREC EQU LAZO BTFSS BANREC,NUBYTE EQU 0O23; REG1 DE LA RX REGl LAZO GOTO EQU 0024; REG2 DE LA RX REG2 BCF BANREC,NUBYTE EQU O026; CN. DETX DE CATUS BTFSS BANREC,ERRESTI. RECEtr[t) 0 ; BANIME BYIE NUBYTE EQU GOTO LAZOL 1 ; BN.tE RKffiN tE 2 DOSBYTE EQU MOVLW SUB 2 EQU threbyt REG1 MOVWF 3 ERRESTl EQU LAZOl MOVF REG1,w 4 ERREST2 EQU MOWF CATUS POR 6 ; ERROR ERSOB EQU MMTX CALL o4f EQU OH BTFSS BANREC,DOSBYTE o4b KAY EQU LAZO GOTO ASCII 01o ; CARACTER EQU SUB BTFSS BANREC, ERREST2 EQU 015 NAK GOTO LAZOZ MOVLW SUB 0x0O org MOVWF REGz INICIO GOTO INI LAZOZ MOVF REGZ,W 0072 dw MOWF CATUS dw 006c MMTX CALL 0073 dw BANREC, ERSOB BTFSS GOTO SERV-INT LAZO GOTO PORTA INI CLRF MOVLW NAK PORTB CLRF MOWF CATUS PORTC CLRF MMTX CALL ESTADO,RPO BSF LAZO GOTO M0VLW 0c0 MOWF trisc Movllll 000 M0WF trisb MOVLW OOT MOVWF triso INCLUDE END
FulhDuplex Figural4.tl0 Cdigo ejemplo de comunicacin

l.lRr DECCIvINICACIChES RJLLPLEKCCN ; UERCICO

MovLw 080

*-ii-

.-

COM. GRP

$le

&d

*kt'i.

prctico Microcontrotadores sobre curco

L\J U L Lr 1

Reloj

+
Datos vlidos

I r--

Figura 14.41Protocolo serial sincrnico Cuando los bytes poseenuna longitud fija, el receptor solo necesitacontar bits empezandocon el primero que recibe con el fin de delimitarlos. Estetipo de transmisin es utilizada por un protocolo o bus denominado SPI. En algunos casosse utilizan bits de acompaamiento que conforman una estructura que delimita los datos,como en los busesI2C y Microwire. El bus I2C es muy utilizado para conectar al microcontrolador diversosperifericosque complementen el sistemay poder cumplir con tareasms exigentes. Este bus permite incluir dentro de una misma tarjeta un gran nmero de dispositivosserialessin que el hardwaredeba complicarsedemasiadoy empleandopocaslneaspara la conexin. Dentro del bus sincrnico solo puede existir un dispositivoque gobierneel funcionamiento y control de las comunicacionesen cada instante de tiempo; a este dispositivo se le denomina el maestro, los dems dispositivos se les llama esclavos. El maestro tiene como rareas iniciar y terminar la transmisin, generar las seales de reloj y direccionar (elegir) el dispositivo esclavocon el que se va a comunicar.

Por lo general los dispositivos seriales desarrollan unatarea periftricaespecfica; losmscomunes son: . Dispositivos de memoria(RAM, EPROM) r Conversores A/D . Conversores D/A . Multiplexores . Relojes de tiempo realy calendarios . Puertos I/O . Generadores de tono (DTMF y tonosmusicales) . Manejadores de dispkys o Funciones (por lo general especficas I2C)

.c':'

El comportamiento de todos los dispositivos que se conectan en el bus serial se rige por las normas dictadas por el protocolo del bus. Como se dijo anteriormente, un protocolo es un conjunto de normas y procedimientos ne;esariospara asegurartransferencias de datos :xitosas. Este define el formato de los bits de datos,la forma de la seal de reloj y las medidas de seguridad ante posibles errores en la ransmisin o prdidas en la informacin.

Dentro de la transmisinserialsincrnicasehan establecidotres esquemasmuy representativos: Philips desarrollel I2C (Inter IQ, Motorola el

prctico curso sohre Microcontotadores &kn.t #

leaciu Lres ILri-L'o Lra L iis cutnuLr se'[.[als=s uur-:r-l[


SPI (Serial PeriphericalInterface) y National Semiconducto r lanz lainterfaz Microwire, figura muchas 14.42. Partiendo de estos estndares empresashan desarrolladocircuitos integrados adaptadospara funcionar con estastecnologas. EI protocolo I2C es en realidadmuy sencillo;lc datos son vlidos cuando la lnea de reloj este. estadoalto y slo puedencambiarcuando la ln., de reloj seencuentraen estadobajo.

Estebus empleados lneas:una parael reloj y otra paralos datos.En estecasosehaceuna comunicacnHalf-Duplexdebido a que por la misma lnea (SDA) circulan los datos de entraday de salida. Cada periferico es direccionado por sofiware de de chip. maneraque no existenlneasde seleccin

Emplea tres lneas:entrada de datos, salidac. datosy reloj.Adicionalmenterequiere de una l.nea de seleccinde chip para cadadispositivo e. el bus; en estecasolas comunicaciones son -Fr,.Duplex.El bus SPI define variosesquemas de sir' cronizacin,pero bsicamente los datosson \':.lidos en una transicinv ouedenmodificarse e la transicinopuesta.

Es similar al bus SPI: requieretreslneas, ms .lnea de seleccin de chip. En estecasolos datc son vlidosdurante la transicinde estadoba' a estadoalto. Profundizemos un poco en el bus ItC, el cu, esampliamenteutilizado en todo el mundo y b. sndonos en l desarrollaremos una seriede ejerc ciosen la seccin de programacin de estecurso.

BUSI2E

(Reloj) scK

I2C (Inter-IntegrdtedCircuit) es un bus serial c, dos hilos utilizado para transferencias de datos. 8 bits, figura 14.43. Los dos hilos (reloj serial datosseriales) la informacin entrel,transportan dispositivos conectados al bus, los cuales seclasi: can entre maestros y esclavos. La lnea de datos. bidireccionalpero la informacin solo puedeflu en una soladireccin en un tiempo dado. En un bus I2C todoslos dispositivos puedr funcionar como transmisoro como receptor, pe: no simultneamente; sin embargo,algunosdr:positivos slo sirven como receptores y otrcomo transmisores;por ejemplo, un displal , un dispositivoque slo puedeser receptor.

Dentro del bus I2C el dispositivo mae,lnterfaz microwire tro es el encargadode iniciar la transferenc. serialsincrnica de informacin, generarla sealde reloj y 1lFigura 14.42 Esquema de comunicacin

,/\ tsD \,7

@Efr(flT".L

prctico Microcontrotadores sobre curso


I I

(Reloj) SCL (Datos) SDA

c fn

L
F

ts
lr

Solo undispositivo ouede ser elmaestro

Figunl4.iB Configuncin tpica delbus PC El inicio ylaptadadel proceso sonseales de control generadas por el maestro; cadatransferencia deinformacindebepresentarse primero con una condicin de INICIO, seguida de la direccindel esclavo, los bytes de datosy finalmente una condicin de PAMDA. La condicin de INICIO se define como una transicinde alto a bajo en la llnea SDA, mientrasla lnea SCL se encuentraen alto; y una condicin de PARADA sedefinecomo una transicinde estado bajo a estado alto en la lnea SDA, mientrasla llnea SCL se encuenrra en alto, figura .L4.44.

h
fE

t"
d
l-

ri
I

var el control de las operaciones. Para facilitar esta tarea, cada dispositivo dentro del bus posee una direccin nica por medio de la cual el maestro puede entablar una comunicacin precisa con ellos. Es de resaltar que en el mismo bus pueden existir varios dispositivos maestros, pero no al mismo tiempo. Para evitar que se presenten colisiones por este concepto, se debe poner en claro un procedimiento de arbitramento. .';.rril,riq;;ifi{te f- LiiSi a: Las dos lfnes del bus I2C: la de reloj (SCL) y la de datos (SDA) son bidireccionales y se conectan a una fuente de voltaje positiva a travs de resistenciasde pull-up, de manera que cuando el bus est libre, ambas llneas se encuenrran en estado alto. Las velocidades que maneja el bus IzC se encuentran en el rango de 0 hasta 100 Kbits/segundo.

&
tcll

ly :loc

G5

It'r

dcn dfot}5

tt e5

Eret-

nc llc-

Cadabytequesepongaen la llneaSDA debe serde 8 bits,pero sepuedentransmitir todoslos bytes quesedesee. Cada uno de ellosdebeestar acompaadodel bit de reconocimiento(ACK) generado en el receptor, el cud indica que el receptorpudo leery procesar el dato correctamenLa generacinde las seales de control es te, y cadauno setransmiteempezando por el bit responsabilidad del maestro.El generala seal MSB. Los datosson vlidosdurante el periodo de reloj cuandola informacin esenviadahacia alto del reloj y puedencambiarduranteel perioel bus, y cuandohay comunicacin entre dos do bajodel reloj. dispositivos, sedebeestablecer una seriede condiciones de reconocimiento entreamboselemenLa sealde ACK necesita de la sealde tos, pero igualmentesincronizadas con el reloj. reloj enviadadesdeel maestro.Para conforParaello seutiliza un bit de reconocimiento de- mar estaseal,una vez terminadoslos datos, nominado ACK (ac hnowledgm t) . en el transmisordebeponer en alto la lnea SDA

prctico cuso sbeMicwuttotadoes rr*#

>

lalt=s [re's se.f Itrtt'o tiuccl lr a las eutuunlcacio


y el dispositivo receptor debe ponerla de nuevo en bajo. Este estadobajo ocurrido durante el periodo alto de la seal de reloj, es el reconocimiento de la recepcin.
Transferencia de Dts en l2C

tOO

Si se presentaalgn error en la recepcin,e. receptor debe dejar la lnea SDA en alto, estc determina un estado de no reconocimientc (NOACK). Si un esclavoenva un NOACK, e. maestropuede generaruna condicin de PARADA para abortar la transmisin, figura L4.45.
(Datos)

scl

_J

Datos vlidos I

tt

\-/
L-

\-/

\_

{Reroj)

pueden Datos cambiar

Condiciones de inicioy parada en l2C

sDAl-,,(\t
SCLIJ\|-

Reconocimiento en l2C Salida dedatos deltransmisor Salida dedatos delreceptor

Despus del INICIO, el primer byte enviado por el maestrc es la direccin del esclavocon ecual desea entablar comunicacir y establece la direccin que tendrn los siguientes datos.Paraellc los siete bits mssignificativos de la direccin del esclavoindican l direccin del dispositivo y el bi: menos significativo (LSB) determina el flujo de la informacin. LJn cero en eI bit LSB quiere decir que el maestro transmitir erlos siguientes bytesyun uno en emismo bit indica que transmitir" el esclavo,figura 14.46.

ElSCL desde el maestro

Observemos en la figura 14.47 unagrtficadondesemuestra una transmisin I2C donde e. dispositivo esclavoes una memoReconocimiento ria EEPROM. La sealACK generadapor el esclavoes lo que sigue despus de la direccin del esclavoy a partir de ella deben esta: para Ios bytes de datos;luego va la se Pulso dereloj rec0nocimento ACK generada por el receptor.
del bus PC Figura 14.t14 Funcionamiento

: l:,.1, i

i"':

?-r:

--l l-

iLL,L-f-

.rii-l g'1
-fi ; r-!

*'ffi
t

ill-.,4- r-l

L ,n,.,0

-t---T--Reloj deRcxJ L Si,l .r'ol pr.*

:ii -

-,1

PC de datos Figura14.t15Transferencia

&kr.L #

prctico Microcontrotadores sobre curco

\LL-U L L

Si en un momento dado se deseacambiar .a direccinde los datos,sedebeenviar de nue'.'ouna condicin de INICIO y la direccin del esclavopara establecer el cambio. Finalmente

la comunicacin con el esclavose termina con el envo de una seal de PARADA. El esquemamostrado en la figura 14.47 corresponde a un ejemploconcretode una comunicacin por medio del bus I2C, entablada con una memoria EEPROM, la cual esun dispositivo que puede enviar o recibir datos. De la misma manera este esquemase cumple para otros dispositivoscomo visualizadores, decodificadores, controladores,etc. En la seccinde programacin analizaremos un ejemplo en el que, a travs del bus I2C, incorporamos una memoria serial a un sistema microcontrolado.

ffi

t_ L----> RW

I = Lectura 0 = Escritura

Figura14.t16 Formatlde la direccin delesclavo

Inicio--
I

NO Direccin delesclavo (desde el maestro) Eyle dedatos (desde elesclavo) C K

Parada

I f

tI
para 1010 EPROIM

Desde elesclavo

Figura 14.47Transmisin FC

productos, PARA MS SABER sus logrando reduccin una encOsy produccin. Breve historia dellz0 tos aumentando los volmenes de Elbus l2C 80e inmediasedesanoll enlosaos gatamente fueclasificado dentro delacategora de Deesta manera numerosas surgieron (por millones deproductos redes LAN. Enlaactualidad deteleviso- mas ejemplo, convertid0y y entr res A/D, radi0s otros este sistema D/A, res, aparatos utilizan memorias RAM, etc.) al ensus circuitos internos: esta mercado delatelefona moderna, decomunicacin donde son que indispensables alalto inters despertaron tales las adopcin sedebi elementos c0mo megeneradores los sus ventajas dentro delmundo delamicroelectr- morias, defrecuencias, las pantallas protocolo lgual tuvo decomunica. acogida este decristal lquido, etc, Ahora lamira para puesta nicacin automotor comu- est lamultimedia. enlaelectrnica encampos c0m0 nicar lamayora delosequipos instalados enlos Enlatabla 14.4 semuestran algunas delas posibilidades l2C motiv Elaltoimpacto delbus a decobertura automviles. enmercados de tecnologa en componentes muchos fabricantes a adoptar esta delbus l2C,
prctico Curso sobre M icrocontrol adores &k m' 153 \ \ .../,/ 2

F.

lnilotiuut:l n a laseonrunleaelo nesst.t'[a[u=s

w
Recepcin deW' Recepcin deradio Tratamiento deaudio Mando infranojo Mando dedisplaysLCD Mando dedisplaysLED Sintetizador devoz DTMF
a

Radio AudioTelfono Industria A utomvil


a

a a a a

a a a a

a a a a

a a

a a a a a

o a

a a a

o a a o a a a a
O

a a a

a a a a a a a a a a a a a o a

r/0

a yA/D Convertidor D/A Reloj/Temporizador a a MM O EEPROM Microcontroladores de8 blfs a Microcontroladores de16Drfs a

o o a a a

(.)
a a a a

Tabla 14,4Cobertura decomponentes con busFC

-2 .1

que interco- Enlasiguiente Enresumen, l2C esunbus rpido tabla semuestran algunos cirperifricos que necta varios dentro de unsistema cuitos integrados cumplen los requerimienpor para hilos medio dedos decomunicacin. tos incorporarse l2C. al bus
Integrado PCD331 1n 2 PCF8200 PCF8570 PCF8573 PCFB574 PCFB579 PCF8581 PCF8591 sM7199

Funcin Generador detonos DTMF/modem/musicales devoz Sintetizador 256.8 RAM Reloj/Calendario Convertidor del2C a BDlfs Manejador deLCD EEPR0M bytes de128 y D/A Convedidor de8 DdsffD Encoderdigital Manejador decorriente Procesador devdeo estreo Hl-Fl Procesador deaudio Decodificador decolor lnterfaz desintonizacin defrecuencia Sintetizador
A6 A5 01

A4 00 10 10 01 00 11 10 01 1'l 00 00 00 00 00 00

Direccin A3 MAlAO

'r

0u
00 UU UU UU OU UU UU 00 UU 00 OU OU 01 UU UU
U:Usuario

sM1300
TDA468O TDA8421 TDAB461 TEA61 OO TSA551 1 TSA6O57 ,A\-r

00 10 11 01 01 10 10 10 01 10 10 10 11 11
1

0 U 0 U 1 U U 0 0 1 0 1 0 0
U

para TV PLL pana PLL nadio 'l Sintetizador defrecuencia

du&

\r'

&rctt".i.

prctico sobre Microcontrotadores curco

'\i/

*fr

,r*

,J$gflg-"
,*_t{.

*, #'I
I

,,.'

Estosmdulos son muy importantes para la en instrumentacin gran mayora de diseos y control de procesos industriales, debidoa que permitenleervariables anlogas de sistemas realesy registrarlas En esta leccin en la memoria. analizaremos el funcionamiento y el manejode estemdulo interno.
./ prctico Curso GEllffiT,,. sobre Microcontroladores

( tSS )

En los microcontroladores ms modernos de Microchip tenemosla posibilidad de leer seales anlogas por medio de'un mdulo interno espec ializado. Susp rincipales caractersticasson: Entre 5 y 8 canales de entrada(dependiendo de la referencia del microcontrolador) . Un multiplexor anlogo . Un circuito de ajustey retencinde la sealde entrada . Variasalternativasde fuentesde reloj para llevar a cabola conversin . Velocidadde toma de muestras(muestreo) ajustable . Seleccin de un voltajede referencia interno o externo . Conversina 8 a l0 bits (dependiendo de la referencia) . Generacinde interrupciones cuando se ha completadola conversin

que que internamente lnternamente se haga haga esta conexlon conexln y nc


tengamos que emplear un pin para aplicar ur

voltaje de referencia externo; de estamaneri se logra que los PIC puedan utilizar hastat canales de entradaA/D. El caso m:sapropiado parahacer der el voltaje de referencia con el voltaje de alimentacindel PIC, escuandose trabaja un transductorcuya sdida esproporcionala propiafuentedealimentacin, permitindose amplio rango de voltajes anlogosde entre 0V y el voltajede referencia:

Vr**oosV*rrr*r".o

Para configurarel funcionamiento delos vertidores A"/D debemos seguirel procedi

Caractersticas del convertidor AD


Analicemos el caso dela conversin a8 bits.El convenidoranlogo/digital manejala funcin de transferenciamostrada en la figura 15.1, en donde seconvierteel voltaje de entrada en un nmerode 8 bits. La sealanloga de entradaal convertidor se acondicionamedianteun factorde escala denominadovoltaje de referencia, produciendo una sdida en 8 bits como semuestraen dicha figura. Una de lasopciones msutilizadaspara configurarel voltaje de referencia parael convertidor, esque stecorresponda al voltaje de alimentacindel PIC. Para hacer uso de estaopcin, debemos haceralgunas configuraciones dentro del programa para'

Salida digihl

H',04'

123 256 256

256

4 256

252 256

253 256

254 256

255 256

Volhle deentrada Voltaie dereferencia

frgun l5.l Funcin detansferencia delconversor A/Dde los

prcticosbe Micrrcontotadotes curso #

l l -l

"

Entradas anlogas l/0 digitales

para Slo entradas . a n l ogas

para Slo l/0 di gi tal

sfo NE lo(J <l

-s

<r

ADCONl
Noestablecidos

765432 TRISA (H'85')


Entradas anlogas 1:Entrada digital 0:Sa l i dd ai g i t a l 1:Entrada anloga o digital 0:Sa l i dd ai g i t a l

(ADRES) y dos de control (ADCONO y ADCONl), figuras 15.3 y 15.4; el mdulo A/D de l0 bits tiene cuatro registros asociados, dos para almacenar el dato (ADRESH yADRESL) y dos de control (ADCONO y ADCONI). En algunoscasoses ms aconsejable utilizar una referenciade voltaje externa de 3,0 voltiosparaproporcionar una mayor resolucinen la salida(paramedicionesde voltajesanlogos por debajode 3,0 voltios). Esto es especialmente llamativo para medicionesde voltajesdiferenciales.
s
N

Noestablecidos

TRISE (H'84')
Deshabilitar f unciones alternatvas delpuefio E

'l:Entrada analooa Io o disital |= 0:Salida digital | ;


l

l@

Noestab ecidos | ;
6

La figura 15.5 muestrala conexin de una referenciade voltaje externa al PIC y adicionalmente, la configuracin de los registros para su funcionamiento.

= Voo Figura 15,2 Entradas anlogas cln Vrr, Resumamos las principalescaractersticas de funcionamiento de los convenidores A,/D internos de los microcontroladores PIC. Intemo: V*r.r*.*a^ = Voo (voltaje de alimentacin) Externo: 3,0V 5 V*r..**.^ SVoo + 0,3 V

nostrado en la figura 15.2.Enestafigurasemues:ran inicialmente los pines con funcionesND y asociados. Cual-a configuracinde los registros :.uierpin al que Ie seaasignada la funcin de en:radaanlogao digital puedeleerse como una en:radadigital o como una entradaanloga. El mdulo AiD de 8 bits tiene tres registros .sociados, uno para almacenar el resultado

Tpicamente 180 uA.

, ( pracnco Curso soore Mrcroconotadores @ricttr".,

r.\ 1 1577 \//

Lus li-ales ccuvt;trluot'es anlou o/ulu


Regis t r o: A D C 0 N 0
ADSCI ADSC0 Res. bir 7 CHS1 CHS0 Go/Done ADIF ADON bit 0

Registro: ADC0N1 UUUUU bit 7


U P C FGI P C FGO

bir 0

Direccin: 08h condicin deresef 00000000b ADSCl,0; A/DConversion Clock Select selector delreloj del convertidor 00 01 '10 '11
Res: CHS1,0:

Direccin: Condicin de reset U:

88h 00000000b

fosc/2 fosc/8 fosc/32 frc

Unimplemented Noestablecidas. Estos blfsseleen como ceros. PGFG1,0: Configuracin delospines RA0-RA3 PGFGI,O RAO,RAI 00 01 10 11 RA2 RA3 Vref

E.anlogas E.anloga E.anlogaVdd E.anlogas E.anloga Referencia RA3 E"anlogas US digital E/S digital Vdd E/S digitales E/S digital E/S digital Vdd

Reservado Este lfnoseutiliza Analog Channel Select selector del canal an l o g o

00 01 10 11

canal 0 (AINO) canal 1 (AlNl) canal 2 (AlN2) canal 3 (AlN3)

Figura15.4Registro ADC1N: sos de conversi n, es tener en cuenta el ti em po de muestreo que se acaba de l i star en las anteriores caractersticas y cuya estructura ge-

la conversin cuando secoloca en GO/D0NE: Comienza neral se apreci a en l a fi gura 15.6. 1.Alfinalizar laconversin espuesto en0 por hardware. Cuando seleccionamos un canal de entrada ADfF: A/DConversionCompletelnterruptFlagbandera por finalizacin deintenupcin delaconversin. al convertidor A/D, un interruptor de muestrec termina laconversin; debe que funciona como multiplexor anlogo lo coSe coloca en1cuando programa. serpuesta en0 por necta a un condensador de muestreo (C*urun). laactivacin AD0N: BtDa'a controlar delconvertidor. figura 15.6a. y porlo 0: mdulo delconvertidor desconectado tanto noexige corriente. El voltaje de retencir V*uru,u debe mante'1 : mdulo del convertidor IilDenooeracin. nerseel suficientetiempo para que el condensador de retencin C*u'u* tome el voltaje de la ADC)N0 Figura 15,3Registro fuente V.uu.rro y alcanceuno de los escalones 12 us. stees el de voltajemostrados en la figura 15.1. tiempo transcurrido desdeque el canal se ha seEntre mayor seala resistencia de la fuente. leccionadoy antesde que seinicie la conversin. mayor serel tiempo de cargadel condensador. figura 15.6b. Una resistencia alta en la fuenr . 15 usparaun oscilador se puede reducir mediante un amplificador en de 20 MHz configuracinde seguidor,figura 15.6c. un oscilador de 10 MHz ' 30 us para

. 19 usparaun oscilador de4MHz

ms importanUna de las caractersticas tes que debemosconsideraral utilizar proce/A\ uD \,/ \Z : &ifctf,2.

Despus de esperarel tiempo de muestreo, se puede iniciar la conversin.El circuito AiD abrir el interruptor de muestreo l

prcticosobre Microcontrotadores curso

L r, t ' l r'

L\,-L]L L

+5V

para para EntradasSlo l/0 Slo entradas anlogas anlogas digital

l 0 rF

1uF

I
t

3 '10,rF
0 l pF

Circuito integrado de referencia devoltaje. Analoo Devices Refl 93

ADCONl (H'eF')
Noestablecidos

TRISA (H'85')
t-lconfigurar enfadas anlogas "ra
Para la entrada configurar dela
rofaranai da vltai

1:Entrada digital 0:Salida digital 1:Entrada anloga o dgital 0:Salida digital Noestablecidos

TRISE (H',gg')
!-J^ Deshabilitar funciones_ | E| alternativas delpuedo A A y digital 1:Enkada anroga 0:Satida digital Noestablecido

Figura 15,5 Entradas//D voltaje con dereferencia externo


ilevara cabo la conversindel voltaje de enrada en el momento en que el interruptor se abre.Si el A/D se utiliza para tomar muestras en un solo canal a igualesintervalosde tiempo, se puede hacer uso de interrupciones.

sosmostrados en las figuras15.2y 15.5,en dondese configuran los registros ADCONl, TRISA y TRISE paraseleccionar el voltajede referencia y los canales de entradadeseados. Luego, seinicializa el registro ADCONO mediantelos pasos que se muestranen la figura,15.7. El primer paso es seleccionar la fuentede reloidel convertidor A/D enrrecua-

Paratrabajar con el convertidor interno de los nicrocontroladoresPIC debemosseguirlos pa-

prctico Curso sobre Microcontrotadores &kt

,., +

ita|.u=s Luscuuve'trlriu t'u's anlo cu/ri.ia

Activar elADC Bllnoestablec c N oi ni ci ar a n conversin


Tic m po de m!estre0

por: Dividir 0 0 1

obtener unperiodo Osc Para delreloj del ADC de: 20MH z 10MH z 4MH z 1,6 rs 3,2ts 2 ts

76543210

iflETim
t t- t
0 0 0 0
0 0 1 1 0 0 I 1

t t

Nocambi ar es r os o

por anloga el blf0delpuerto: 0:Entrada : por 1:Entrada el bll1 delpuerto anloga : porel bif2 delpuerto 0: Entrada anloga porel blt3delpuerto 1:Entrada anl0ga porel bll5 delpuerto 0: Entrada anloga porel blt0 delpuerto 1: Entrada anloga porel bl 1 delpuerto 0: Entrada anloga porel bit2 delpuerto 1: Entrada anloga

de muestrel Figura 15.6 Consideraciones sobreel tiempo

ADCONO (H'1F',)
Nocambiar

F':
Iniciar convers

(OSC/2, OSC/8, OSC|32y tro posibilidades RC). Las opciones mostradas en la figura 15.7a permiten la mayor velocidad posible bajo la restriccin de que el periodo del A/D debe ser de 1,6 us o mayor. La seleccinde RC (activando los bits 6 y 7 del registroADCONO) se utiliza cuando el microcontrolador trabajacon un cristalde frecuenciarelativamentebaia. Si slo vamos a utilizar una entrada anloga, podemos seleccionarlacomo se ilustra en la figura 15.7b y la seleccindel periodo mostradaen la 15.7a.S yamos a utilizar varias entradasanlogas,es importante esperar un tiempo de muestreo como se apreci en la el figura 15.6b. Esto es, una vez seleccionado muescanal, debemos esperarun tiempo de

y utilizacin Figura 15.7Configuracin delregistro ADC}Ntreo y luego iniciar la conversinactivando e^ bitGO-DONE del registroADCONO. Cuando GO-DONE se pone de nuevo en bajo, la conversinha terminado, y podemos leer eresultadodel registroADRES (H'1E'). Cuando se presentala necesidad de tomar muestras peridicamentede uno o ms canales de entrada,un excelente recursoespensaren la posibilidad de incorporar dentro del funcionamiento del convertidor el mdulo timerl CCP2, del cual ya analizamossu operacin en las leccione s 12y 13 de estaseccin,para que peridicamente seencargue de iniciar el proceso de conversin.

_.1.

: : 'S
-: -Y

.aa --l

/A\,; <tt) &-frffiT"I. prctico Miuocontrotadores curso sobre

El tempo rizadorwatchdog y el modo sleepson dos conceptos que, si sesabenmanejarcorrectamente,pueden traernosenormesbeneficios parala estabilidad y optimizacinde los sistemaselectrnicos que desarrollemos con microEn estaleccin analizaremos controladores. estos factores y observaremos como insertarlos correctamente dentro del cdigo del programa.

prctico Curso sobre Microcontrotadores tf": &i< #

y Gl.niodo E[vtatclroog slec:


llilsdoa fuente rcloj clol Ti\,4R0

Como su nombre lo sugiere,el watchdog o perro guardin esun mdulo interno que una vezactivado, permanecealerta para que los programasno caiganen fallas inesperadas Fundae indeseables. tI mentalmentesu vigilanciaconsisBitde te en generarcada cierto tiempo habilitacin del WDT un estadode reset paraque el programa inicialice nuevamentesu operacin desde la direccin 0x0000. De estamaneracombatimos problemastalescomo caer en ciclos infinitos o alteraciones debidasal ruido. Muchos usuariosacostumbran emplear dentro de sus aplicaciones,alguno de los temporizadorespara que hagan las funciones del watchdog. El temporizador watchdog (WDT) es un oscilador interno basadoen un sencillo circuito RC, cuyo funcionamiento es absolutamente independiente del oscilador generaldel microcontrolador de manera que, aunque este ltimo se detenga,el watchdog (\lDT) continuar funcionando. En la figura 16.1 podemos observaruna estructuraen bloquesdel \WDT en donde vemos que el temporizador se activa mediante las lecun bit de configuracin;si recordamos ciones anteriores,en la posicin 3 del registro OPCION se encuentrael bitPSA, figura 16.2. Si esrcbit se encuentraen uno, el prescaladorse asignaal \7DT y si esten cero, se del presasignaal TMR0; haciendola asignacin calador al VDT hacemosque los pulsos de entrada al TMR0 no seansometidosa ningn procesode divisin de frecuencia. De estamanera el \7DT puede ser sometido a un procesode divisin para variar su tiemel cual se rige por los mismos po de respuesta, factores configurados por los bits PSO, PSI y

ln L"

-------+

<-

PS2,PSI

Ar TrvrRo
V'

l--"---*
<-PSA

V Salida del WDT Figura 16.1Estructura en bloques del watchdog

{
Registro: 0PCl0N RBPU INTEDG GRTSRTE PSA PS2 PS] PSO BT7 Direccin: condicin de reset RBPU: 81h 11 111111b
Bit0

PortB Pull-up Enable o Habilitacin de pull-up delpuerto B. 0: habilita laspull-ups internas 1: lasdeshabilita INTEDG; INT lntenupt Edge Select o Selector deflanco

RTS:

RTE:

PSA:

delainterruocin INT 0:flanco debajada 1:flanco desubida TMR} Signal Source o Fuente deseal deTMR0. interno 0:ciclo deinstrucciones ffemporizador) (Contador) 1:transicin enelpinRA4[0CK TMR} Edge Signal o Flanco dela seal TMR0 0:incremento entransicin debajo a alto 1:incremento entransicin dealto a bajo Prescaler Assgnment o Asignacin delpreescalador (Contador/Iemporizador) 0:TRM0 Valor 000 001 010 011 100 10t '1 10 111
TMRO 1:2 1'.4 .l :8 1:16 'l:32 1:64 1:128 1:256 WDI 1:l 1:2 1:4 1:8 1:16 1:32 1:64 1:128

Figura 16.2Registro )PAA,

kt;. #

prctico Microcontrotadores curco sobre

tenermuchocuidadoeneste punto, porquesi dentro del programadesactivamos elwatcldog, pero en el entorno de programacin seactiva,estemen dulo definitiva habilitado y estosepuequedar Uno de los problemasms comunesque se enproblemas defuncionamiento denuesencuentran cuando depuramos unprogramaesque dereflejar (\fDD tro dispositivo electrnico. uatchdog esthabiliado el temporizador y el circuito programado no hace inadvenidamente su trabajoadecuadamente. El'S7DT sepuedeactiseprograma PIC,denun microcontrolador var mediantela configuracinesablecidadentro Cuando uo del codigo se suele colocarlapalabra de configuradel entornode desarrollo,figura 16.3; ambin se a unatcnica quenospermite puedehacerdentro del cdigo del programapor cin quecorresponde configurar dade elprogramalos par:meuos conque medio de la pdabra de configuracin. Debemos vaa funcionar elcircuito;parahacer esaoperacin se pude coloca nmero un binarioo ciertas aiqueras habiadas, como semuestra en la figura l6,4.Un ejemplode estaconfiguracin la podemos observar en el proyectoAviso luminosocondiodosLED publicadoen e$ecurso. Paa especificar losparmeuos deseados seutilizaladirectiva delensamblaclor confrg, la cud permiteespecificar cada uno deestos rdeno del *digo del programa" Fstadirectiva hace una (6) operacin AND concada unadelasaiquetas de la figura 16.4,por ejemplo: PS2.Cuandoel prescalador esasignado al \DT seacostumbra denominarlo post-escalador. & -\7DT-OFF -config (-XT-OSC _PWRTE_OFF E{ _BODEN_OFF & 6c

_cP_oFF)
En la sintaxisde estadirectivapodemosobservardgunos caracteres underline ( - ) que se Figun 16.3 hrmetros deconfiguracin debenescribirobligatoriamente.Como hemos

Efl0ugtA

DESCRtPctol{

_r.P_osc Crlsbldob4opoder domngo modlo _xf_osc Cdsbl ) )

0SCs200KHz 08C < 4l,lH 0SC<20MHZ _HS_oSC Crishldonangoab porcondensador 06C _RC_OSC Gcllador < 4 iftlz -WDT-OFF lAr@doshabl[hdo _wDT_Ot{ [ldN@haHlluo _PwRIE_ot{tuwetWtln|,thllffi fo 1|or rpItnrdsshbilfrado -PI['RTE_OFF Bronr, drtlEsaf doshabiliHo -BODEN-OFF 8,owna.ltrcthabllido -BODEN_ON -CPJLL _cP_75 _cP_50 _cP_0fF probgido panbdalamomoria Cdigo doprograma p@ldo par0175% & laEmoria Cdlp deprogramr probgldo para el50% dob momdta Cdigo doprograma para Cdigo sinprobccn h memorb d6programa

Figun 16.4tulabndeconfiguncin

prctico curco sobre Miuonnfrotadores rrr*#

ELvtatclruog slerur: l, Gttuodo


Bitl Bit0 WDTEFOSClFOSCO config.Difs MPEEN BODEN CP1 cP0 FWFTE Tabla16.1 Registros ]PTIONREG RBPU INTEDGTOCS TOSE PSA PS2 PS1 PSO asociados al WDT Nombre BitT Bt6 BitS Bit4 Bit3 Bit2
mencionado anteriormente,muchos programadores acostumbran incluir dentro de sus programas una serie de archivos que contienen subrutinas, definiciones, libreras, etc., que los hacen ms comprensibles,alavez que permiten reutilizar componentes de sofiwarr en futuras aplicaciones. El ms utilizado es el archivo INC. el cual contiene todo el mapa de direccionesRAM v la ^ t I t , I t.. | | descripcin de cada uno de los bits de los distintos registrosde cada tipo de microcontrolador, lo cual nos ahorra el trabajo de repetir continuamente las mismas definiciones;ejemplos de estos archivos son el Pl6C74A.INC, P16F84.INC, etc. Debido a la gran utilidad de estosarchivos,ellos se encuentrandisponibles en la pgina del fabricante para que sean descargadosy utilizados libremente. Dentro de estos archivosINC tambin se encuentrantodas las definiciones de la palabra de configuracin, lo que nos permite utilizar las etiquetasen el momento que vayamos a programarla. En muchasocasiones seencontrar que un mismo microcontrolador aparece con el sufijo A, por ejemplo PICL6C74 y PIC16C74A. Esa diferencia sever reflejadaen la palabrade configuracin. Los bits de configuracin del cdigo protegido son tiles cuando se trabaja en el modo de programacin serial. Cualquier seccin de la memoria de programa a la que no se le pro^., teja el cdigo, Lrr..p,ible de ser leda serialmente desde un dispositivo externo. Esto permite verificar la integridad del cdigo en un microcontrolador programado y de cierta manera, permite tener en secretoel programa guardado. En la tabla 16.1 podemos apreciar un resumen de los registrosasociadosal funcionamiento del temporizador watchdog. $*3

En condiciones normales, el \fDT se encarga de generarun estadode reset al microcontrolador cada que se alcanzaun tiempo de espera. Cuando se trabaja con el post-escalador, el \fDT tiene un periodo de esperade 18 ms el cual puede variar con parmetros externos como la temperatura. Si deseamos unos tiempos de espera ms largos,debemosutilizar el post-escalador seleccionando uno de los factores de divisin disponibles. Si seleccionamosun factor de 1: 128, podemosllegara periodoshastade 2.3 segundos.
Registro: ESTAD0 IR P R P 1 BitT Direccinl condicin de reset 03h OOO??XXX RPO TO PD DC

c
BtO

:Lr^4

para IRP: Selector depgina direccionamiento indirecto Este lfnoseutiliza efectivamente enel PlCl6F84, por propsito loque sepuede utilizar como unDffde generar. para RPl,0: Selectores depgina direccionamiento directo. sepueoe general. utilizar como unDdepropsito fimeOut o 8 definalizacin deltemporizador. Secoloca en0cuando elcircuito devigilancia Watchpori dogfinaliza la tem zacin.

z: DG: C:

Power Down o Sltde bajo consumo. Secoloca lainstruccin SIEEP. elresultado deuna lgica operacin o aritmtica escero. Digit Blfdeacarreo Canyo dedgito. En operaciones aritmticas seactiva cuando hay acarreo entre elblf 3yel4. Carry Eninstrucciones o Bitdeacarrreo. aritmticas seactiva cuando seoresenta acarreo desde elDlTms significativo delresultado. Figura 16.5 Registro deestado

&d

fti.

prcticosobre Microcontrotadores curco

'

. . 3 iI

i ) :'; rr"{.1 r i jr iJ', ;"t i 1}it{ij" S iri,:j,

Dependiendo de cmo se despierta el PIC, el programainiciar su operacinen determinada posicinde la memoriade programa; por ejemplo,si la salidadel sleepse origin por una seal en el pin M-CLRo portm"leal del \fDI el PIC iniciar su operacinen la direccin0x000, que corresponde a la posicin normal del reset. Si esteesel caso,los bits y TO y el registroPCON puedenanalizarse para Estemodo de bajoconsumo sellamasleep, identificar la causa de estaren la direccinde que en inglsquieredecir "dormir"; de hechose inicio, comolo veremos msadelante en el eierpuededecir que el microcontrolador se pone a cicio de estaleccindormir. Cuandode nuevoserequiereque el microcontroladorfuncione normalmentese debe El registro PCON (Power CONnol) condespertar, paralo cual debeexistir algunade las tiene una seriede banderas que,junto con los condiciones que secitan msadelante. bits TO y PD puedenutilizarse paradeterminar el origen del estadode resetdel microconParaentrar al modo sleepbastaejecutar trolador,figura 16.6. la instruccinSLEEP;desde esemomento el osciladorse desactiva, se almacena el estado El microcontroladorpuede despertardel actual de todos los registros,los temp oriza- modo sleeppor algunade lassiguienres razones: doresse detienen(a excepcin del TIMERI, si ste se encuentrafuncionando con reloj l. Reset del dispositivo externo),los puertospermanecen con el es- 2. Sealdel VDT tado actual,el bit PD del registrode estado 3. Algrin mdulo periferico quepuedaactivauna sepone en bajo y el bit TO se pone en alto, banderade interrupcin mientrasestamos en figura 16.5. modo sleepcomo: a Pin externoINT a El watchdog s contina funcionando;de Cambio en un pin de entrada a hechocuandoel dispositivose encuentraen Comparadres a modo sleep puedeserdespertado por el VDT. A/D a Paraasegurar que el VDT estlimpio, sedebe Timerl a ejecutarla instruccin CLR\DT antesde la LCD a instruccin SLEEP. SSP a Captura Un aspecto imponanteque sedebeteneren cuentadentro del modo sleep,escuantotiempo 8 IT 1 BffO sedemoraun microcontrolador PIC parasalirde BlT0 BoR:8,?de estado deresetlot Brown - out 1. Debido a que entrelasfunciones 1:No ocuni resetpor Brown - out del PIC que 0:ocurri unestado de rcsetgor Brown - out sedesactivan seencuentra el oscilador, cuandose porencendido BlTl F0R.gtOeestadodel resef pretende normalizar denuevoel funcionamiento, (Power-oA power-on 1:No ocuni resetoor sedebenesperar 1.024oscilaciones paraasegurargotPower-on 0:Ocuni reset nos que la seales estable y a partir de esemomento empezar la ejecucin normal. Figura 16,6Registro PC0N
Registro PCON

Cuando en un procesoen el cual inlerviene un microconrroladoresreno opera durante algn perlodode tiempo,esposiblellevarloa un esrado en el cual se desactivan algunas de susfuncionesy consumirmenosenerga. Estacaracterstica esmuy til sobretodo en dispositivos autnomoso porttilesque requieranahorrar al mximo el consumode susbateras.

prcco curso sob,e Microcontotadoes &n;#

or l oz l orl o+

o+ rlo io r lo zr lo r loo +rlo | z lo sl o + lo z lo s lo l z lo s lo + |o

-:f,)E -:\ E : ll9l

f.|rl
pin INT
(|NTCON<1>)l
- *aaa{

GtE bir

I I :

(|NTC0N <7>)|
I

rruLo rrusrnucuNlor
PC
= SLEEP lnstruccin INST(PS) dada

;
I

Inst(0004h) fantasma Ciclo

Inst(0005h) Inst(()004h)

lnstrucin ejecutada

lnst(PC-l)

ciclo fantasma I

interrupcionx 16.7 Despertando mediante Figura


Tambin se pueden utilizar interrupctones para salir del estadode sleep. Si el bit GIE se encuentra en alto, el PIC saldr de esteestadohacia la direccin 04. Si esto no sedebe a una interrupcin, el PIC continuar el progralna en el punto donde sedetuvo antesde entrar al modo sleep. El diagrama de tiempos que tiene lugar cuando se despiertapor medio de una interrupcin, se puede apreciar en la figura 16.7. Cuando se ejecutala instruccin SLEEP siempresebuscala siguienteinstruccin (PC+1); como siempreocurre ese fenmeno, es conveniente colocar siempre despusde la instruccin SLEEP una instruccin NOP.

Dependiendo que lo hizo desde la causa a la en PC+2o salta ejecuta la instruccin pertar, instruccin en la direccin04. ubicada

SI-F.EP: Entra al modo dormido (standb) Sintaxis: SLEEP SLEEPy sedetiene su oscilador Ejemplo: SLEEP

CLRWDT'; Borra el contenido del dor watchdog

Sintiuiis: CLR\IDT Si observamos cuidadosamente la figura Descripcin; Inicializa de nuevo el temporiza16.4 podemosapreciarcomo la ejecucinde la dor watchdog, al igual que el prescalador del instruccin SLEEP y la bsquedade la instruc- \TDT. cin en PC+ 1, seencuentranen el mismo espa- Ejemplo:CLR\7DT cio de tiempo. En PC+2 el procesadorya se Antes de la instruccin Contador 'WDT=? encuentra en modo sleep. Si el bit GIE se enla bandera que incuentra habilitado y aperece Despus de la instruccinContador dica la aparicin de una interrupcin, el proceWDT = 00 sador esperaun tiempo mientras se estabilizala TO= 1,PD=l seal del reloj y de nuevo est en capacidadde ejecutar instrucciones.

rr* #

prctico Microcontotadores sobe curco

'" 1 'r
I/r ,tt- t L VVL F LU

. * * * {. r rF rl. * * {. rf *:1. * * * * * * * * * * * * * t * t* * tF 1.tl. tl. }:1. {. * *

CLRFTRISB SALE ; LA DIRECCION CON EL MODO SLEEP ;EXPERIMENTANDO B ;POREL PUERTO PODEMOS EL OBSERVAR ;EN ESTEPROGRAMA BCF STATUS,RPO DE LoS BITS PD Y T0 ;COMPoRTAMTENTo DEL !m SLEEP LAZOCOMF EL MIffiO{IR0-Am SESALE ;cua VALORES DE STATUS,W ;MOSTRAR . * * * * * * * * * * * * * * * * * x * ,1. * * * * * * * * * * * * * {. * {. * 'F 'F ;TO Y PD i'/O/V',F PORTA LIST P=16F84 BSF INTCON,INTE ;HABILITA RADIX DEC POR RBO ;INTERRUPCION IN C LUDE "C:\P 16C84.INC" SLEEP EL PIC A ;PONE ; DORMIR NOP PARA EL ;PRECAI.KIN & -XT-OSC -CONFIG WDT_OFF ; SLEEP TESACTIVD GIRIIN ;ffi Mlr/LW 0X0FB ;ESTASALIDAINDICA WDT-ON & IVOVWF PORTB EN MODO -XT-OSC -CONFIG ;QUEESTAMOS ACIVAD ;PEm G.URDUN ; SLEEP ORG O BSF STATUS,RPO A CLRFTRISA ;POREL PUERTO Y PD TO ;SALEN GOTOLAZO EN ;NOSENCASILLAMOS ;UN CICLO

END

y el modo Figura16.8Ejercicio delWDT sleep delmanejo +V

Figura 16.9Diagrama delejercicio esquemtico

prctico curso sobre Microcontrotadores kmt #

ELvriltchuog s[.e.r !, r'[ tLruriu

m m
I I I

RBl
I
I I

R82 0 0
I I

Descripcin
Powr on rcsed MCLR durantela operacinnormal Sealde -MCLR durante el modo sleep

0 0 0

0
0

Seal en RBO Despertando por mediodel \X/DT


y T0 Tabla 16.2 BitsPD

En el programa de la figura 16.8 podemos Al alimentar el circuito podemos obseranalizaralgunos detallesimportantes de mane- var que los diodos LED que correspondena jo del modo sleep; para ello observemosel TO y PD y RB1 se activarn. Si esperamos algunos segundoslos tres LED se apagarn. diagrama esquemticode la figura 16.9. Inicialmente se despliegapor el puerto el estado pero el LED en RB2 permaneceractivado. de los bix TO y PD que debe ser alto debido a Observemos en la tabla 16.2 el resumen de sealimenta el sistema y el programa los resultadosobtenidos. gue apenas empiezaen la direccin 0x0000. Se habilita la interrupcin INT e inmediatamenteseentra al Estesencilloejerciciopuedeilustrarnosacerca modo sleep. de muchosdetalles que sedebenteneren cuenra parael manejosdelwatchdog y del modo sleep. Si se entrega una seal de reset,Ia seal en Para experimentar, podemos montarlo en un PD desaparecer debido a que seestinicializan- protoboard y hacer toda clasede modificaciones al programa y visualizarlos resultados. do de nuevo el PIC estandostedormido. Ahora, si se enva un estadoalto al pin RBO el LED en RBI se apagary =LL1b:i*doen RB2 se enComplementa el contenido del registro ,rfr, cender. El estadoenTO/PD indica que el modo . sleep se interrumpi y el LED en RB2 indica COMF [d que la ejecucin termin. COMF regis,O Si colocamosun punto y coma delante de la instruccin BSF INTCON,INTE para indila interrupcarlacomo comentario,sedesactiva cin INT y de nuevo ponemos a funcionar el ejercicioen el cual observaremos que, como era no pasanada aunque se oprima el de esperarse, pulsador en RB0. En las primeras lneasdel programa podemos observardos directivasCONFIG una de las cualesest comenrada.En la primera lnea sedesactiva el \lDT, ahora quitemos el comentario de esa lnea y coloqumosloen la otra para activarlo. En estepunto tambin podemos hacer el ensayode desactivarel\7'DT desde el programa pero habilitarlo en el entorno de programacin para visualizarel resultado.

= 13 , Antesde la instruccin regis Despus de la instruccin regis= \7=EC

Decrementael contenido del registro"f".

DECF f,d DECF regis,l


Antes de la instruccin regis = l3 Despusde la instruccin regis = 12

Incrementa el contenido del registro "f"

rNCF [,d INCF regis,l


Antes de la instruccin regis= 24 Despus de la instruccin regis= 25

"fu $Ogb %.9

4( &lctt:I.

prctico Microcontrotadores Curso sobre

En estaleccin estudiaremos la estructurainterna o arquitectura, y el flujo de informacin entre la unidad centraly los perifericos de los microcontroladores de la familia 6BHC08, los cuales son muy representativos dentrode la amplia gamade estos circuitosintegrados, fabricados por MOTOROLA.
prctico curso sobre Microcontrotadores &fu ty,.t

A,ttl uiteuttLtrdo'[os tret oeorrtroliiri.o L i.o I olri cs [(ro


Desde la aparicin de los primeros microcontroladores fabricados por la empresa estadounidenseMOTOROLA de la familia 68XX, su popularidad ha ido creciendo a pasosagigantados en virtud de sus magnficas caractersticas, talescomo inmunidad al ruido elctrico,facilidad de programacin,velocidad,compatibilidad, flexibilidad,y una amplia gama de caractersticasy referencias disponibles. Ellos han contado con una gran acogidaen la industria especialmente en reascomo: el desarrollo de dispositivoselectrnicosy sistemas de comunicacin telefonica analgicao digital, las redesde transmisinde datos,vdeo y sonido, los sistemas de rastreoylocalizacin satelitalestglobal positionrtstmGPS), los sistemas inteligentes para el control del trfico terrestre, los dispositivosdigitales para el almacenamiento,reproduccin y reconocimientode voz, y la construccinde dispositivos para el control automtico de algunas funcionesdentro de los automvilesmodernos. Actualmente los microcontroladoresde Motorola cuentan con cinco familias principales: la 68HC05, la 68HC08, la 68HCll, la 68HCl2 y la 68HCl6, cadauna con una uni(CPU) particular dad centralde procesamiento y un amplio y completoconjunro de instrucciones.Adicionalmente,cuentan con un excelente nivelde compatibilidadde cdigoenrretodassus familias, lo cual los hace de f;cil uso y flexibles. permitiendo el intercambiode programas enrre microcontroladoresde diferentesfamilias. Entre las diferenciasms significativasde estas cinco familiasseencuentran: lasnuevas instrucciones, la longitud de palabra(8 16 bits), la disponibilidadde temporizadores (1 a 8 timers), los tipos de puertosde comunicacin(SCI, SPI, I2C, MBUS, USB, SIOP y CAN), el espacio v tipo de memoria (EEPROM, FLASH y RAM), el nmero de canalesAID (4 a 10 canales), y el nmero disponiblede puertosdigitales de entrada y salida(entre 15 y 91). En este curso se estudiarn tres de las familias ms popularesy representativas de los microcontroladores de Motorola, la 68HC08. Ia 68HCl I y la 68HC12, que rienen una gran acogidapor parte de los fabricantes y estudiantes de esta tecnologa en muchas industrias. centros educativos y universidadesdel mundo; debido a su disponibilidad, variedadde ca-

&x
MC68HC908AS60 2K 1K 1K 2K 6OK FI-ASH 2OK FLASH 32KFIASH 4KFLASH 1.5K FI.ASH 4KFLASH FLASH 6OK 1K 512 512 1K

,/*s.
i\s
IJ

/
TIM 5,0

* ,,'u*if
48
48 48 33 2 (16Bits) |

8,0 8,0 8,0 8,0

52 PLCC/64 oFP 1OO LOFP 64 OFP 64 QFP 40 DIP 10 DIP 28DIP 20 DIP 2ODIP 144LOFP 64 QFP 64 OFP

xc68HC08M0 xc68HC08M32

2 06 Bits) |
2 (16Bits)| 2 (16Bits) |

I canales TIM I canales TIM t5


TIM

5,0 5,0

Y Y Y

5,0

xc68HC908GP20

512 512

I canales TIM I canales TIM

3,0- 5,0 8,0 3,0- 5,0 8,0 3,0- 5,0 8,0

2 (16 Birs) I 33
2 (168fts) | 2 (16Bits) | 2 (16 B i ts) | 23 15 15

MC68HC90 MC68HC908JK1 MC68HC908JK3 xc68HC08LN56 708MP1 6

128 128 128 1?8 512 512

12 l0 l0

TIM TIM TIM

3,0- 5,0 8,0 3,0- 5,0 8,0

2 (16 Bits) |
16K OTP 24KFI.ASH 2 (16Bits) |

a2
44

4 canales TIM SCYSPI I 0 canales TIM

3,3- 5,0 8,0 5,0 5,0

8,0 8,0

sct/sPl l0

TIM

principales TablalT.l Cuadro de caractersticas de losmicrocontroladores Motorola de la familia68HC08 ,A. t +

zdb \\/

frKlT".i.

prctico curso sobre Microcontrotadores

' 1 rt l -l L\:UL L(a

L.

ractersticas, reducido costo y facilidad de programaciny depuracinpor medio de sus herramientasde desarrollo. En la tabla l7.l semuestran de maneraresumida las principales caractersticas de algunos de los microcontroladores ms populares de la familia 68HC08 de Motorola.

. .

. . Los microcontroladores MC68HC908JXX son miembros de la familia 68HC08 de rango medio, bajo costoy alto desempeo. Todos los microcontroladores de estafamilia poseenuna palabra de un byte (8 bits), y usan la misma unidad central de procesamientoconocida como CPU08. Las principalescaractersticas con las que cuentan,y que son tpicas para la mayora de los microcontroladores de Motorola son: . .

. CPU08 con arquitectura Von Neumann y bus interno de BMHz. . Amplio y completo conjunto de instrucciones . (poseenms de 90 instrucciones con funcionessimplesy especializadas). . Cdigo de programay tecnologacompatible con familias de rango inferior, talescomo las .

M 6 8 0 5H , C0 5y M1 4 6 8 0 5 .
. DiseiroCMOS con bajo consumode potencia y con un rango de alimentacin entre 3 y
. Bus de8MHz, con cristal XT, resonador conreloj externo, + . Bus de2MHz, con oscilador RC. . FLASH de4 kbytes (JL3/JK3), . FLASH (JKl), de1,5kbytes . RAM de128bytes.

5,5VCC, idealparala fabricacin de dispositivos porttiles. Dos tipos de osciladores: con red RC o con cristalde cuarzoexrernos. Memoria FLASH para el usuario de 1.536 4.096 bytes, con estrategiade seguridad que dificulta la lecturao copia no autorizada de los datoscontenidosen ella. MemoriaRAM concapacidad entre128y 5 12 byn. Dos mdulos de temporizacin de 16 bits cada uno (TIMA y TIMB). Doce canales, cada uno con convertidor anlogo/digital de 8 bits. y salidas digitales de Quince lneasde entradas propsito general,dentro de las que se cuentan las interrupciones para el manejo de teclado con resistencias internas depull-up,los driuerso amplificadoresde corriente para diodos LED, las entradas o salidas de drenadorabierto (open-drain)de 25mA cada una, las lneas para trabajar en el modo de captura (ICAP/ OCAP), la salidadel generador de P'!lM. Cuatro sistemas de proteccin para el cdigo del programa,que son: COP (sistema de vigilancia Watchdng), LM (inhibidor de bajo voltaje),detector de cdigo ilegaly detectorde direccin ilegal. (MSE7) acSistema maestrode restablecimiento tivo en nivel bajo, con resistencia interna de sujecin aVdd, e interrupcin de restablecimiento a la conexinde la alimentacinPOR (power on reset).
28-pin PDIP 68HC908JL3CP 28-pin S0lC 68HC908JL3CDW 20-pin PDIP 68HC908JK3CP 20-pin S0lC 68HC908JK3CDW 20-pin PDIP 68HC908JK1 CP 20-pin S0lC 6BHC908JK1CDW +y salidas Entradas flexibles . 7 entradas para deinterrupcin teclado. r I 0 enfadas y salidas del0mA. . 2 entradas y salidas drenadero abierto de25mA. y resef LVI(lnhibidor devoltaje bajo) Convertidores A,/D . 12Canales (JL) deBbifs . 10 Canales (JK) de 8 its

Mdulo decaplura, -> y PWM comparacin (2Canales de16bits).

e +-

principales Figura17.1Sumariode lascaractersticas dentro de losmicrocontroladores dela familia68HC08

GurcoprcticosobreMicrocontrotadores rt'&

/z:qF)

1Lt'r1t-Litr.=t'tLt[ |.o a dc= s tutct'o cotrttoladoL tls l(to toL olii

=
l

AI

-39

EE

IV

EH
:r

ts v<----} F

gq
G (J CJ

(0
N

ts
u

ct

l)

z, ory tsF z. r z,

- =.u =c E

iHH =

CJ)

-*'
oir '

cc5: xtr'

-= u) =6=

E = .o

{,

que Figura 17.2 Diagrama enbloques muestra laarquitectura delosmicrocontroladores dela familia 68HC08

d7$

YV

&Iclf".i.

prctico Microcontrotadores curso sobre

. Llna entrada.deinterrupcin maestra no sincrnica IRQ activaen nivel bajo, con.resistencia de schmitt- trigger,progamables. sujeciny tecnologSa La figura 17.1 muestra de manera simplificada las principales caractersticas de la familia de microcontroladores68HCO8, y los principales subsistemas en los que se divide.

,,.'

- . i , ', , t 'l , . i t i , . r t - l - - . : i l :

i i l,

q U e e St

;rqI irtruturafl* l*s nlr*rrn{}i.r li*i iiri'i'}res i;lntircl


En el diagrama en bloques que se muestra en la figura 17.2vemos la estructura,disposicin interna e interconexin que hay entre las diferentes partes que conforman un microcontrolador Motorola tpico de rango medio, tal como los de la familia 68HC08. En la figura se puede apreciar con claridad la manera como estninterconectadoslos principalesbloquesdel microcontrolador; all puede verseque entre todas sus partes hay un flujo de informacin bidireccional que se hace por medio de un sistemade bus nico, tal como en la arquitectura Von Neumann, y que est controlado y sincronizadodesdela CPU. Todo microcontrolador puede dividirse en tres grandessubsistemas, que en el caso de los Motorola se pueden apreciar claramente en el diagrama de bloques y son: el ncleo de procesamiento, el sistemade memoria y los mdulos perifericosinternos.

representada por un conjunto de registrosde propsito particular e instruccionesespecializadasdisponiblespara el usuario; estconstituida por un mdulo sumador completo (con acarreointermedio y final) de 8 bits, un multiplicador de 8 bits por 8 bits, y un mdulo de divisin binario de 16 bits en 8 bits. La tarea de la ALU, como su nombre lo indica, consiste en procesar todas las operaciones aritmticas o lgicas que debe hacer la CPU, tales como las sumas, divisiones, multiplicaciones,rotacionesy desplazamientos, entre otras.

Sin embargo, cumpletambinun papelfundamental para poder accedera los datos disponibles en memoria directa, o indirectamente a travsdel registro contador del programa (PC), cuando se ejecutan instruccionesde salto,llamadosy retornosde otras funcioneso de subrutinase interrupciones. De su velocidad de ejecuciny buenas canactersticas tcnicassedesprende la disponibilidad que ofrece el microcontrolador para efectuar clculos con grandes volmenes de datos, de una manera gil y segura,tal como se requiere en las aplicacionesde manejo y reconocimiento de voz y vdeo. l. [-.1 reeistrodc control de la (]Ptl, que est conformado por un grupo de bits que generan las sealesde sincronizacin y control necesarias para que el flujo de datos a travs del bus se efecte sin contratiempos y en la direccin correcta ene los diferentesbloques del microcontrolador. i l'l r,:qisrroacunrul:rtlor A, figura 17.3, esun registro de propsito generalde lectura y escritura con una longitud de 8 bits, que esutilizado por la CPU para almacenartemporalmente los operandosy resultadosobtenidos en las operaciones aritmdcasy lgicasrealizadaspor la ALU.

ff ncleo de procesamento
Es el "corazn"del microcontrolador,tambin sele conoce como la Unidad Centralde Proce(CPU); cuentacon un bus de datos samiento interno y propio con un ancho de banda de SMHz (rango de frecuencia dentro del cual el los mbus tieneganancia unitaria)y contiene dulosy registros fundamentales parael buendes(los registros empeodel microcontrolador de la CPU soncincoy sonindependientes delmapa Las partes de memoriadel microcontrolador). la CPU son: que conforman

prctico curco sobre Microcontrotadores <n;#

Lectura: Escritura: Reset X X


X:valor indeterminado. noesafectado Dor el rese

La direccin contenida en el SP disminuye en uno con cada dato que entra a la pila, y aumenta en uno cadaque un dato esextrado de la misma; de estamanera el SP siempre apunta a la prxima posicin disponible en la pila. Es importante recordarque luego de la ejecucin del ciclo de resetmaestro,en el SP segraba la direccin hexadecimal00FF, para proveer compatibilidad con la pila de la familia MC6805; mientras que con la instruccin RSP (reserstack pointer), serestablece el registro SP colocando su bytems bajo en FF y no se afectael bytems significativo. jttl Bi15 14i3 ,, ,,01*toot,otlt:'o
Lefiura:

Figura 17.3 Registro acunulador dela CPU08 l:i :.'ristic :nili..'cIl:ir, figura 17.4, es w registro de 16 bits que permite direccionar hasta 64 hbytesde espacio en memoria en forma indexada. El byte ms alto del registro ndice es H, mientras que el byte ms bajo es X; de estaforma se construye el reH:X que es el gistro concatenadode 2 bytes ndice para el reade memoria del usuario, y con el cual se puede apuntar a cualquiera de las 64.000 posiciones. Este registro tambin se puede usar como uno de propsito generalpara el almacenamiento temporal de datos; sin embargo se debe recordarque la CPU usa su contenido para determinar la direccin efectiva del operando, y adems,tener presenteque la parte alta del registro se borra tras la accin de restablecimiento o de reseten el microcontrolador (H=0).
(H:x) Regstro ndce
8lt15l 4 13 12 11 r0 I I 7 6 5 4 3 2 1 Bito

( ;

\ ( (
t

3 2 1 Bto

Escritura: Reset. 0 RSP


X:valor indetermnado
000000011111111

Figun 17.5 Registro apuntador delapilade la CPU08

00000000xx no es afectadopor el resel X: valor ndeterminado,

ndice Figura17.4Registro de la CPU08

PARA MS SABER Movilidad dela pila(stack) Enla arquitectura delosmicrocontroladores y superiores, Motorola delasfamilias 68HC08 laubicacin.de noesfija, lapila esarbitrara, y puede relocalizarse en cualquier espacio dentro RAM. Para de la memoria esto, solo grabar basta el registro apuntador dela pila SP con una direccin dememoria diferente a que ladelapgina 0 (0000 a 00F0, esellugarpor reside lapila. defecto enelque y laubicacin Aunque dela eldesplazamiento pila para y a pesar sealibre el programador, dequeel registro SPesde16,fqpara un adecuado funcionamiento nunca sedebe oque permavidar elapuntador delapiladebe necer RAM. dentro delrea delamemoria

--

1" Fl rceistr'{} .rpuntarlordc le ril,rS if ..,,'i' tititt I rri, figura L7.5, es un registro de 16 bits qt:,econtiene en cualquier instante la direccin de la prxima posicin de 8 bits dentro de la pila del microcontrolador. En los microcontroladores Motorola el registro SP se puede usar como el ndice para accedera los datos temporalesdentr<de la pila, en dos modos de direccionamiento.

J)

.= !

<lL #

prctico Micrrcontrotadores sobre Gurco

rr1 1 -l r.

L\:U L

Ll a

, figura 17.6, estambin un registrode l6 bits que contiene en todo momento la direccinde la prxima instruccin o el operandoque sedebebuscar, a travs de un ciclo de bsquedade la CPU. La CPU siempreaumentael valor del PC en forma secuencial haciala siguiente posicin de memoria, cadavez que una instruccin o un operando seabuscado;exceptocuando se ejecutanoperaciones de salto, llamado, retorno e interrupciones, que grabandirecciones particulares en el PC. Durante el ciclo de restablecimiento, el registro PC es grabado con el contenido del vector del reset ubicado en las posicionesde memoria FFFE y FFFF; de estaforma queda cargado con un nmero de 16 bits, que representa la direccinde la primera instruccin del programaque debe ser ejecutada al terminaresteciclo.
(PC) Contador delprograma
ljir r : Jj 12 ll l0 I 8 i 5 I :) 2 I 8 {l

tener el cdigo del programacon todassusvariables y constantes.La flexibilidad, confiabilidad, vida til y facilidad de manejo, son factoresimportantespara el usuariode estatecnologay que estnligadoscon el tipo de memoria disponible para el usuarioen el microcontrolador.
(CCR) Begistro delcdigo decondicin
LC C IU T A:

Escritura: Beset. X l 1 X l X X X Bls fijos X.indeterminado

V - Bit indicador de sobreflujo (ouerfuutflng). Es colocadoen 1 lgico cuando se presenta un sobreflujoo desbordamiento en el rango de una operacin aritmtica, en complemento a dos. H' Bit indicador de acarreointermedio (halfcarryflag). Es colocadoen 1 lgico cuando ocurre un acarreoentre los bits 3 y 4 del registro acumulador, duranteuna operacin aritmtica.

t-

Cafga elregstro con losdatos contenidos en asposiciones dememorla (p0siciones y FFFF) FFFE asignadas al vector delresel

Figura17.6Registro contador delprlgramade la CPU08

N.
, figura 17.7, es rambin llarnado de microconpor otrosfabricantes o registrode troladores como registrode estado banderas de estado;su longitud es de 8 bits y contieneel bithabllitadorde interrupciones y5 bits msque indican el resultado de la instruc-lias la ejecucin que estsiendodecodificada. cin del ciclo de reset eI contenido del registro CCR soloseafecta en el bit 3, que esel habilitador de interrupciones del microcontrolador(l); stesecolocaen 1 lgico y las inhabilita.

z-

c-

Bit habilitador de interrupciones (intenupt mash).Cuando estebit es colocadoen I lgico, todas las interrupciones enmascarables de la CPU se inhabilitan; mientras que cuando estebit seborra (en 0 lgico) sehabilitan. Este bit es automticamentecolocado en 1 luego de la accin de reset y Ia atencin a una seal de interrupcin. Bit indicador negativo (negatiue Jhg). Este bit es colocado en I lgico cuando el resultado de una operacin aritmtica o lgica, o del procesamientode datos, es negativo. .Bir indicador de cero (zero Jlag). Cuando el resultado de una operacin lgica, aritmtica o entre datos es 00, este bit es colocado en I lgico; de lo contrario se mantiene en 0 lgico. Bit indicador de acarreo (carryl borro* fuS). La CPU coloca esrebit en I lgico cuando se presentaun acarreohaciaafuerao hacia adentro del sptimo bit del acumulador, durante la ejecucin de las operacionesde adicin y sustraccin,y algunasoperacioneslgicas. Figura17.7Registro delcdigo de condicin de la CPU08

El sistema es de memoriaen un microcontrolador a conde gran importanciaya que estdestinado

prctico curso sobre Microcontrotadores &ict,..

\.ryl

Atqultc=ttulu tri,t.o lurir t es l(ulto t olii o!' [ostulet ouo


En el casode los microcontroladores Motorola, el usariocuentaopcionalmentecon trestipos de memoriasque puedenserborradas o grabadas en cualquierinstante(FLASH, E,EPROM y EPROM), y otros dos tipos que solamentese puedengrabaruna vez (OTP y ROM). La organizacin de la memoria, sus caractersticas y susmodos de direccionamiento,por ser de gran importancia, se tratarn con ms detalleen una futura leccin,sin embargoahora se puede decir que, al igual que en muchos otros microcontroladores, stase encuentradividida en dos grandesbloques,que son: la memoria de programay la memoria de datos,y su conexin con la CPU se hace a travsdel mismo sistemade bus. Las caractersticas y funciones de los mdulos perifericosde mayor importancia para el microcontrolador y el usuario, sern tratadasampliamenteen las prximaslecciones.

[-os microcontroladores Mororola de rango medio de la familia 68HC08 estndisponiblesen encapsulados tipo DIP de 20 y 28 pines.En la figura 17.8 se muestra la distribucin y asignacin de los pines de los microcontroladores JK1, JK3y JL3. Los microcontroladores a difeJL3 poseen, rencia de losJKI y JK3, un mayorgrupode lneas disponibles(puertos PTAOa PTA5 y puertosPTDOv PTDI).
tR01 PTAO VSS OSCl OSC2/PTA6 PTAl VDD PTA2 PTA3 PTAT PTA6 PTA5 PTDT PTD6 RST PTA5 PTD4 PTD5 PTD2 PTA4 PTD3 PTBO PTBl PTDl PTB2 PTB3 PTDO PTB4

Los mdulos perifericosinternos desempean funciones bsicaspara el buen funcionamiento de la CPU, como en el caso de los mdulos de reloj, las interrupciones, el reset,laregulaciny proteccin a la alimentacin; ellos facilitan la operacin de todo el sistemay la conexin con otros dispositivoso sistemas del mundo exterior. Adems, desarrollantareasespecficas dentro de la arquitectura de un microcontrolador y los orientan haciaaplicaciones particulares dentro del campo de la industria y la experimentacincon estatecnologa. Los microcontroladores Motorola, dentro de la familia 68HCO8, cuentancon mdulos perifericos verstilesde mucho uso y fiicil manejo, que agilizan las tareasde control y procesamiento de datos que se pueden desarrollar.Los mdulos perifericoso interfacesque ofrece una familia de rango medio como la 68HC08, son: driuersdigitales para diodos LED, driuersde drenador abierto para cargas de alto consumo, interrupciones para teclado, contadoresy comparadores de captura (ICAP/OCAP), temporizadores programables(TIMX), puertos de comunide concacin serial (SCI, SPI y CAN), canales versin A/D. v salidasde control P'!7M.
,l@^ r

tR01 VSS OSCl OSC2/PTA6 VDD PTBT PTB6 PTB5 PTDT PTD6

RST PTD4 PTD5 PTD2 PTD3 PTBO PTBl PTB2 PTB3 PTB4

t
i

n a

,^
Figura17.8 Asignacrn depines de losmcrocontroladores 68HC08

Stt"b

&c

*rct'i.

prctico sobre Microcontrotadores Curco

Dentro delosmdulosconlosquecuenran losmicrocontroladores de esta familia,lospuerros de entrada y salida(I/O) son de granimponanciaparala interconexiny elmanejo delas exrernos '.rgasydispositivos a ellos. En la acrualidad losmicrocontroladores derango y velocidad media,evolucionan en rorno a la especiaJizacinde lasrareas quesoncapaces dedesarrollar, y estodepende de lasfuncionesy caractersticas que los diseadores hayan incluido en lospueftos.
prctico curso sobre Microcontrotadores dgkm; (u|
\7

.1

[u.* urict'c r,'c utra ladu t'esLiC(J Ltolu Lu s r ur,'tru s riu. i1rj.u' t'o la
La alimentacindel microcontrolador es uno de los factoresms importantespara que Paracontinuar conociendo la estructurainterna y el circuito integrado y todos susmdulos inlos mdulos que rigen el funcionamiento de los ternos trabajen adecuadamenre, y aunque la microcontroladoresMotorola de la familia HC08, tecnologausadapor Motorola, poseefiltros defini- y reguladoresde voltaje internos que persedebeconocerla distribuciny asignacin da para cada uno delos pines que ofreceel micro- miten alimentarlos con fuentes monopolacontrolador parala interconexindel usuariocon res que varen entre 3 y 5VCC, es necesario el mundo externo. que la fuente de alimentacin est protegida contra sealestransitorias de voltaje r' En la tabla 18.l se describen de manerare- corriente, y que la entrada de alimentacin sumida lasprincipalescaractersticas de cadauno del microcontrolador (entre los terminales 68HC908, delospinesde los microcontroladores VDD yVSS) seaprotegidapor medio de uno en susversiones no oolarizadosDara JK1, JK3 y JL3, y encapsulados o varios condensadores DIP de 20 v 28 pines. en estructuras frecuencia. alta

Nombre Pin delpin


VDD VSS RST

Descripcin delpin positiva. Entrada dealimentacin

Direccin Nivelde
voltaje

Entrada 3 V 5 V OV VDD
llrt

para referencia lafuente Salida decero voltios, usado como dealimentacin Salida (sistema detierra GND). Entrada bajo externa deinicializacin denivel activo encero lgico, Tiene Entrada resistencia deseal depull-upy entrada conformadora a travs de compuertas schmitt trigger.

tE01

para Entrada externa activa ennivel bajo, definida lapeticin delservicio Entrada VDD a deintenupcin. Posee una resistencia depull-upy una compuerta de VDD+V1 y programables por entrada schmitt trigger opcionales medio delcdigo prn (software). Este cumple tambin delprograma una funcin hlterna como entrada delselector demodo delmicroconfolad.or.

0sc1 0sc2

Entrada del mdulo oscilador con base encristal decuaao KIAL, resonador Entrada Anlogo pasivo u oscilador RC. plnpuede Este operar como una entrada o como una salida, dependiendo Entrada/ Anlogo/ del tipo deoscilador configurado. Cuando seusa elcristal decuarzo o el Salida y laseal que resonador, elplnsecomporta como salida seobtiene en1, que eslaseal invertida entra almdulo oscilador 0SC1. Cuando seelige pasiva laopcin delared RC eneloscilador elplnpuede ser una entrada y pordefecto, lasalida o una salida, secomportar como delreloj RCCLK. Adicionalmente conlasfunciones esta entraba secomparte delpuerto A,6 y delasexta para y tiene interrupcin elteclado KBl6, una resistencia de programable. pull-up VDD

( l'\ ^ (=tZA ) qEKf,T";. \../

prcticosobre Curco Microcontrotadores

LL-U L L

I
voltaje

Nombre Pin de lp in

Descripcin delpin

de Direccin Nivel

lneas deeste conjunto de7bits,que conforman elpuerto A, pueden Entrada/ PTA[0:6]JK:4 Las y tambin general pueden ser deentradas o salidas depropsito JL:2,5, usarse Salida y para elmanejo 6,8,9,como siete entradas deinterrupcin, deteclados KBI[0:6]. prnes puerto pueden los serprogramados 23,27 En este todos individualmente con resistencia interna depull-up.
a Las lneas deeste conjunto deBDdsque conforman elpuefto B,se PTB[0:7] JK:6 general, y tambin depropsito 8,11 a comportan como entradas o salidas

VDD

Entrada/

VDD/

Salida Anlogo

que delos convertidores 15 comparten sufuncin con ocho canales A/D con ADCIO:7]. JL:10 a cuenta elmicrocontrolador,
12,15, 17,18, 20,21

general, conjunto de8 bifs bidireccionales depropsito JK:9, Este constituye el Entrada/ VDD/ PTD[0:7] (ADC8 10,16a puerto D.Sufuncin est compartida con cuatro canales A/D a Salida Anlogo 1q puertos y con ADC11) del microcontrolador, a travs delos PTD[0:3]; los canales bidireccionales del mdulo delainterfaz detemporizacin JL:13, dos y TCH1 plnes puertos y D.7 los 14,16, TlM, TCHO .Adicionalmente, delos D.6 podrn y salidas digitales, 19,22, ser configurados como entradas con capacidad y resistencia pull-up 24a26de25mA, interfaz tipo drenador abiefto, interna. Nota: tipoDIP de20pines JK, losterminales Enlosmicrocontroladores conencapsulado PTA0, PTA1, PTA2, PTA3, PTA4, y PTD1 PTA5, PTDO noseencuentran disponibles.
Descripcingeneral delascaractersticas,funcionesynivelesdevoltajedelospines Tabla|8.1 enlosmicrocontroladores Motorola dela familia68HC08.

Colocandoel conjunto de condensadores C1 y C2 tal como se muestraen la figura 18.1,y lo ms cercaposible de los pines de alimentacin, dealimentacin del Figura 18.1Filtrado externo de la entrada bajossimpleque puedepromcrocontrolador secreaun filtro pasa
+ /\

(Los tipicOs) Nota: valores deloscondensadores s0n . C1debe y para nopolarizad0 seruncondensador (c e r mio cd oep o l i e s te r). alt a f r ec u e n c ia . C2esuncondensador que se opcional electroltico requiere cuando lospuedos delmicrocontrolador entregan toda sucarga.

Durante Ia energizacin inicial, debido a la excitacinde grandescargas a travsde suspuertos, al reset, o a la entrada de seales transitorias (ruido elctrico)provenientes de alta frecuencia de fuentes externas, el microcontroladordemanda una gran cantidadde corrientede la fuenteen forma transitoria,que puedendaarlou ocasionar su mal funcionamiento.

prctico dg-f<ln.i curso sobre Microcontrotadores

(.f Zg ) \/ /

Lit'0[ Los ueLus nr[crucutul'aladut'es ur.lvlotur0l.a ruettos


teger efectivamenteal microcontrolador, suprimiendo lasseales de alta frecuenciaantesde que puedanafectarlo.

Los puertos de entraday salidaI/O, permiten que el microcontrolador se conecte de manera segura,y maneje con nivelesde corriente y voltaje adecuadostodos los dispositivosy sistemas perifericosexternos. Los microcontroladoresMotorola de 8 bits que pertenecena la familia HC08, poseen23 puertos bidireccionalesde entrada y salida muy verstiles. Todos los puertos pueden ser programadosen variosmodos y efectuardiferentesFunciones,tal como se estudia a continuacin.

PARA MS SABER Destino nousados delospuertos Cuando seusa unmicrocontrolador eneldesanollo deunsistema, dispositivo oexperimento, esposible que latarea norequiera de todos terminales sus disponibles puertos; c0m0 en estos casos, stos deben serterminados, esdecir, conectados aunnivel lgi(VSS) (VDD). coapropiado talcomo 0V SVCC puertos Aunque los Modelosmicrocontroladores pueden torola dejarse encircuito abierto cuando y nosere(puertos n0seusan n0terminados), quiere para cerrar elcircuito subuen desempe0, por esrecomendable, sutecnol0ga basada enintenuptores electrnicos tipo FEI(field effect tranque para sistot), terminados sean evitar elconsuy laposibilidad m0 excesivo deconiente deque se permanentemente por daen efecto delas cargas electrostticas.
En cualquiermomento, la accin del resetafectar al registroDDRA, borrando todos susbitsde control, y programando todo el puerto A como entrada.En la figura 18.2 seresumenlasdirecciones,lascaractersticas y lasfuncionesalternas propias del registro de datos del puerto A (PTA) y del rdgistrode direccin de datosA (DDRA).

A estepuerto se puede accedera travsdel registro de datosA (PTA), y estcompuestopor 7 bix de lectura y escrituraque poseenfuncioThmnesespeciales de entraday salidadigitales. bin puede serconfigurado como 7 entradasexternasde interrupcin para el manejo de teclados (KBI[6:0]). Todos los terminalesdel puerinterna depull-up que to poseenuna resistencia o desconectada por medio puede ser conectada del cdigo del programa,cuando seconfiguran como entrada.

En este puerto los terminalesentre Direccin delregistro PTA: $0000 PTA0 y PTA5 del registro de datos poLectura: seenfuenteslimitadas de corriente orientadas al manejo de diodos LED directa- Escritura: la resismente, o seaque no es necesaria Beset tencia limitadora en seriecon 1. Funciones
adicionales:

Por medio del registrode direccin de datosdel puerto A (DDRA), seprogramala condicin de entradao salidasobrecadaterminal o pin del puerto; con un uno lgico en cualquierade susbits seprogramael puercomo salida,mientrasque to correspondiente con un cerolgico, sedeshabilitaelbufferde saliday seprogramacomo entrada.
,,2\ l

Direccin delregistro DDRA: $0004

, , T illll; J llllll

Bt7

BtO

y DDRA Figura 18.2 Definicin PTA de losregistros

('"0) \iz

&rcm.1.

prctico Microcontrotadores curco sobre

Dirccin delrgso PAPUE: $fI)00 Lectura: Escritura: Srrrt (vlido PTA6EN: delpinPTAG solo conoscilador BC) Dilhabilitador pindeloscilador (0SC2) Erlen 1:configura elsegundo como y salida general. unpuerto deentrada depropsito por 8ten0:configuracin defecto delpin0SC2 como la (RCCLK). delreloj deloscilador RC salida prr-updel PTAPUE[6:0]: Drbhabilihdores delasresisbncias PTA pul/-up 8fien1:configura laresistencia de30k pullup Eilen0:desconecta laresistencia

En la figura 18.4 se ha dibujado la configuracin interna en bloquesdel circuito del puerto A, alll se puedever que, cuandoel registroDDRAx esten uno lgico, la lectura de la direccin $0000 se efectriasobre el registro de datos PTi{x; pero cuando el registro DDRAx est en cerolgico, la lecturade dicha posicin es el nivel de voltaje presente en el terminal.

Elpuerto B

Hgun 18.3 Definicin delregistro P|APUE Este puerto posee8 terminalesbidirec-

cionales, programables, y accesibles a traEl puerto A cuenta ademscon el regis- vsdel registrode datosdel puerto B (PTB), y pull-up in- todos compartensu funcin con ocho entratro habilitador de las resistencias del mdulo de convertidores anternas,llamado PTAPUE, con el cual sepue- daso canales (ADC). logo-digitales den conectaro desconectar dichasresistencias. En cadabit del puerto puede configuPor medio del registrode direccin de dararseuna resistencia depull-up independientemente,siemprey cuando stosestnpro- tos del puerto B (DDRB), sepodr programar gramadoscomo entradas;mientras que la la condicinde entradao salidasobrecadatercada minal del puerto; con un uno lgico en cualCPU automticamentela desconectar vez que un terminal del puerto seaprogra- quiera de susbits seprogramael puerto corresmado como salida,por medio del respectivo pondiente como salida,mientrasque con un cero lgico, se deshabilita el b"ft, de saliday bit en el registro DDRAX. quedaprogramadocomo entrada. La figura 18.3 muestrael registrohabiliTias la accin del reset se afectaralregistro tador de las resistencias pull-up del puerto A (PTAPUE). DDRB, borrando todos sus bits de control, y

o
2

= t

a o
tr ct

E t
=

frgun 18.4 Configuncin interna enbloques delcircuito delpueftoA

prcilco Curco nbrc Mlqooontotadoes <tn#

Los tiu'los nctacuui.tulad.otes tt00ti l(totatula uc= rue+tos


Direccin delregstro PTB: $0001 Bt7 Lectura: Escritura: Reset: Funciones adconales: Direccin delregistro DDRB: $0005 Bt t 7654 6 5

Lectura: Escrtura: Beset:

El puerto D est compuesto por 8 bits de lectura y escritura que se pueden acceder a travs del registro de datos del puerto D (PTD), y que adems poseen funciones especiales de entrada y salida digitales. Dos de sus terminales comparten su funcin con la interfaz del mdulo temporizador (TCHI y TCHO), mientras que otros cuatro se comparten con las entradasdel mdulo de convertidores A/D. En estepuerto, adicionalmente,los terminalesPTD6 yPTDT estndiseados para manejar corrientesde hasta 25mA en configuracin sumidero (sinhing),y poseenresistencia pull-up programable.Thmbin los terminales PTD2, PTD3, PTD6 y PTDT estn capacitados para manejar directamentediodos LED. Por medio del registro de direccin de datos del puerto D (DDRD), se configura la direccin del dato sobre cada terminal del puerto; con un uno lgico en cualquiera de susbits se programa el puerto correspondiente como salida,mientras que con un cero lgico se deshabilita el bffir de salida y se programa como entrada.

: f::

y DDRB Figura 18.5 Definicin delosregistros PTB programando todo el puerto B como entrada. En la figura 18.5 seresumenlasdirecciones, las caiactersticasy las funciones alternas propias del registro de datos del puerto B (PTB) y del registrode direccin de datos B (DDRB). En la figura 18.6 se ha dibujado la configuracin interna en bloques que corresponde con el puerto B; all se puede ver que cuando el registro DDRBx est en uno lgico, la lectura del contenido de la direccin $0001 se efecta sobre el latch del registro de datos PTBx; pero cuando el registro DDRBx est en cero lgico, la lectura de dicha posicin es el nivel de voltaje presenteen el terminal.
::.:l

= t =
at o

E c
UJ

($0001 Escritura enPTB )

c an co

($0001) Lectura delPTB

Figura 18,6 Configuracin interna enbloques delcircuito delpuefto B

&kt':. #

prctico Microcontrotadores curco sobre

Direccin delregistro PTD: $0003 Lectura: Escritura: Eeset Funciones adicionales:

una vez seejecutela accin del reset, el registroDDRD sermodificadopor la CPU borrandotodos$s bitsde control y configurandotodo el puerto D como entrada.En la figura 18.7 seresumen lasdirecciones, las caractersticas y las funcionesdternas propiasdel registrode datos del puerto D (PTD) y del registrode direccinde datosD (DDRD).

0ireccin delregistro DDRD: $lx)07

El puerto D tiene adem:s otro registro que nos permite habilitar las resisten* cias pull-up internasy los amplificadores de corrientede drenadorabierto, asociadoscon los terminales PTD6 y PTDT; es conocidocomo el registrode control del y DDRD puerto D (PDCR). En la figura 18.8 se Figun 18.7 PTD Definicin delos registros muestraesteregistro.

Direccin del registro POCR: fXl0A

En Ia figura 18.9 se ha dibujado la configuracin interna en bloquesdel circuito que corresponde al puerto D, all se Brrrt puedever que, cuando el registro DDRen uno lgico,la lecturade la diSLoWDxi Ditshabilitadores del amplificador decofiientede 25mA Dx est Bifen1: habilita el amDlificador reccin$0003 seefecta sobreel registro Eifen 0: desconecta el amplificador de datos PTDx; pero cuando el registro plFup dePfD6y FfllT PTDPUT i& habilibdorcs delm rcsisbtrcias pullup de5k Eifen 1: conecta la resistencia DDRDx esten cero lgico, la lectura de pul/-up Eifen 0: desconecta la resistencia dicha posicin corresponde con el nivel Figura 18,8 Definicin delregistro decontrol depuefto D(PDC4) de voltajepresente en el terminal.

Lectura del DDRD


o

= , I =
an o
o ct)

15 t
=

PTD[0:3] almdulo convertidorA/D PTD[4:5] almdulo teqporizador Hgura18.9 Configuracin interna enbloques delcircuito delpueto D

prctico curco sobe Miuocontotadotv &t;#

Ladu t'es LiC0S L(totu ru[a Lusr tic'losuricta cu u'a ue' ue'ttos
PARA SABER MS Programacin depuertos bidireccionales pinesde que pueden lospuertos Ya todos los delosmicrocontroladores Motorola trabajar como entradas o programables, que puerto saber el registro dedatos, salidas esimpoftante decualquier PTA, PTB o PTD, puede y sinimpoftar momento ograbado con unnuevo dato encualquier ser escrito elestado delos[sde que y DDRD. delos registros definen ladireccin delos datos enelpuerto DDRA, DDRB control que que la rutina Por lo anterior, esimportante a la hora dedesanollar tarea deprogramacin deuna primero que noolvide ubicar lasinstrucciones involucre lospueftos, elprogramador o rutinas seescriben losrfs antes decambiar decontrol sobre elregistro dedatos delpuerto, delregistro dedireccin dedatos que puefto (de 1 a salida). De esta forma, se evita el no de0 a entrada arroje datos esperados durante el que puedan perifride entrada a salida afectar el compoftamiento los cambio dedireccin de dispositivos respuesta. con alta velocidad de cos externos
El sumario de todas las caractersticas y funciones principalesy compartidasde los tres registrosde datos de los puertos PTA,PTB y PTD, de los microcontroladoresde la familia 68HC08 de Motorola, se muestra en la figura 18.10.

Puerto A
al DDRA Acceso al PTA PTAPUE DDRA PTA Configuracin Acceso ( B t) (B t) (B t) Lectura Escritura delpinl/0 Lectura o escritura I X Entrada a DDRAO Pin pTA6 0 de Vp(t) DDRA6 a pT6{z)

0 X

0
I

X X

a DDRAO Pin Entrada deHi-Z DDMO PTA6 a PTA0(2) DDRAO a DDRAO Salida PTA6 a PTAOPTA6 a PTAO

(1): el pin de entrada a VDD por mediodela resistencia o salida sesujeta internadepull-up

Puerto B
DDRB (Bt) 0 1 al DDRB Acceso del Acceso al PTB PTB Configuracin pinl/0 (B t) Lectura Lectura Escritura o escritura

X X
PTD (B t)

a DDRB0 Pin Entrada deHi-Z DDRBT DDRBT a DDRBO Pin Salida

PTB[7:0]{z) PTBIT:0.l
'

: :,
-: I

Puerto D
DDRD (B t) 0 1 Configuracin Acceso al DDRD Acceso alPTD pin del l/0 Lectura o escritura L ectura Escritura Entrada deHi-Z Salida

--l'--'

X X

DDRD[7:0] DDRD[:0]

Pin Pin

PTD[7:0]{z) PTD[7:0]

:*o

X: valorindefinido Hi-Z: pin en altaimpedancia (21: la escritura afecta al registro de datos,perono afecta la entrada
y funciones paralospueftosA, By D lascaractersticas Figura| 8.10 Resumen de todas definidas ,l\\ .. I

_':l '-j-,

Cf a+'b &ftZ.). \../

prctico sobre Microcontrotadores curco

'\.i/

La ejecucin de la secuencia correcta de lastareas programadas y la mayorade funcionesque sellevana caboen los mdulos internosdel microcontrolador, sedesarrollan de acuerdoacada uno de los periodosde la sealde reloj generada desde el mdulo del oscilador, a partir de componenres exrernos. EI reset esla sealque gozade la mayor jerarquadentro del conjunto de interrupciones disponibles en los microcontroladores de cualquierfamilia,ellale defineal programador un lugarparael inicio de la ejecucin del cdigodel programa.
prcticosobre Gurso Microcontroladores @[< ll 7".;.

Eluscilauor v e'L lcstl; L.Ll [0snrict'ocotrtrulatiuru.s LiC0S l(tuturula ur.'


elctrico;mientrasque el otro lo hacepor medio de una red conformada por una resistencia y un condensadorRC; y los dos sistemas comparten lasmismas entradasexternas(pinesOSCI y OSC2) asignadasen el microcontrolador para la conexin externa del cristal, el resonador, o la red RC.

Si lugar a dudas, uno de los mdulos perifericos internos de mayor importancia es l oscilador, stegeneralas seales de reloj que definen la velocidad de ejecucindel programa por parte del dispositivo, y en ellasse basantodas las cuentas de tiempo que sehacendentro del microcontrolador. Segn el periodo de oscilacin (o fase)de estaseal,sesincronizan,ejecutan,y evalantodaslas tareas que en el interior de stesedesarrollan; talescomo: los ciclosbsicos de bsqueda y captura, de ejecucino decodificacinde la instruccin, de lectura, y de escritura. El mdulo del osciladorestconstruido internamente con los circuitos, registrosy compuertas necesarias para generarlas seales de reloj requeridas por la CPU con gran estabilidad,y con el adecuado nivel de voltaje y frecuencia.Los microcontroladores Motorola en frrncin de su referencia, poseenuno de los dos sistemas de osciladoractivo, uno de ellos generala sealde reloj a partir de un cristal de cuarzoXTAL o de un resonador oiezo-

El circuito tpico de estemdulo es un oscilador con compuertasen configuracin Pierce,el cual ofrece muy buenascaractersticas de estabilidad dentro de la amplia gama disponible de osciladores digitales para cristal piezoelctrico.En la figura 19.1 semuestrael circuito interno simplificado del mdulo del osciladorcon cristal externo, y la conexin lgica entre sus partes. Parala configuracin del oscilador a la frecuencianecesaria y con la estabilidadapropiada, se requieren cinco componentesexternos, tal como se muestra en el circuito tpico de la figura 19.1, y stosson:

Desde elSIM Hacia elSIM 2OSCOUT XTALCLK

MDULO DEL OSCLADOR


Hacia elSIM OSCOUT

COMPONENTES EXTERNOS
,l \ ,1

Figura 19,1Circuito interno sinplificado delmdulo deloscilador concristalexterno

(y2

&lrcln.I.

prctico curso sobre Microcontrotadores

,LLrorLa
, sta puede tener una tolerancia de hasta el l0o/o y su valor tpico es lOMQ; su funcin consiste en facilitar el arranque de la oscilacin con cualquiercristalo resonador, unavez que el circuito es alimentado y habilitado desde la CPU. Su ubicacin es en el lazo de realimentacin, entre la entrada y la salida del mdulo oscilador, o seaentre los terminales

, &te puede tener una frecuenciade resonancia mxima de 32MHz, y una'capacitancia equivalenteCL entre 5 y 40pF.Su conexin con el mdulo interno del microcontrolador sehace a travesde los terminalesOSCI v OSC2. , ste debe tener una estrecha tolerancia(menor al5o/o),y su valor tpico debe ser alrededor de dos vecesla capacitancia equivalentedel cristal o del resonador. Su conexin con el microconrrolador se hace por medio de la entradaOSCI, que es la entrada del oscilador inrerno.

OSCl y OSC2.

debe tener una esrrechatolerancia ,-.";iI de la misma forma que paraCi, su valor 5o/o),y trpico debe seralrededorde dos veces la capacitancia equivalente del cristal o del resonador. Usando un condensadorajustablede baja tolerancia en el lugar de C2, se podr sintonizar cualquier frecuenciano estndarde trabajo inferior a la de resonancia del cristal,paralos desarrollos que as lo requieran; el condensadorde sintona se debe conecar al circuito del oscilador en su salida, o sea a rravs del terminal OSC2.

stapuede tener una toleranciade hastael t0% y slo serequierecuando el osciladorva a trabajar a una frecuenciabaja (inferior a lMHz); tal como serequiereen los diseosestndarde los osciladores digitalesen configuracin Pierce.Si no seutiliza, sesustituyepor un corto circuito.

El circuito osciladorde estemdulo usa una red externa conformada por un condensadory una resistencia, y circuitos internos que controlan y convierten la seal de cargay descarga del condensadoren un tren de pqlsos rectangulares, sin distorsin, y relativamenteestables.

Desde elSIM

Hacia elSlM

Hacia el SIM

20sc0uT
stMoscEil

oscour

+--+PTAG

MDUIO DEt

oscrrAD0R
0sc2(PTA6/RCCLK)

Figura t9.2Circuito interno simptificado det f_l rr COM''NENTES I ff' deloscilador con redRC erterna EXTERNSf- mdulo

prctico Curco sobre Microcontotadores &kt

,:#

y e'L EL LiL'0t! oscllador tcur-"[; u+r Los nrlctuu'onttaladotl's d.e. lVtotctala


En trminos de estabilidady precisin, los osciladores cuya frecuenciade salidadependede una red con una resistenciay un condensador (RC), siempre estarnsujetosa la calidad de dicha red; en el mdulo del oscilador RC de esta subfamiliade microcontroladores serequiereque los componentesexternosseande precisin (con toleranciainferior o igual a lo/o)para obtener una sealde reloj con una tolerancia del 10%o o menos. La conexin de la red RC, con el mdulo interno del oscilador,se hace a travsdel terminal OSCI; mientras que en el terminal OSC2 quedahabilitado el puerto bidireccional PTA6 o disponible la sealde salidade reloj del oscilador RC); pot medio de ella el mdulo del sistema de integracin SIM del microcontrolador, habilita o inhabilita completamenteel funcionamiento de cualquiera de los osciladores.

h rl

rl

RCCLK.
En la figura 19.2 se muestra el circuito interno simplificado del mdulo del osciladorcon red RC externa, y la conexin lgica entre sus Partes. En la tabla 19.1 seresume el comportamiento de los terminalesdisponiblesen el microcontrolador para la configuracin del mdulo del oscilador.

Estasealesla salidade reloj del mdulo osciladorcon cristaly su periodo est dado tpicamente por la frecuencianominal del cristal de cuarzo (F*.r"); el ciclo de servicio de la seal dependerde la calidad y los parmetrosde fabricacin del cristal, y no se debe olvidar que su frecuenciay amplitud sern inestables durante el breve periodo de tiempo que dura el ciclo de arranque (startup) del microcontrolador, a partir de la conexin a la alimentacin.

-\unr :an (

;lirn, que i dam, ;on I ;ia er

La Je re .sPe
magl

sta es la seal de salida del mdulo oscilador RC v su frecuencia v estabilidad son directamenteproporcionales a la constante de tiempo de la red externa RC,y a la precisiny calidad de sus componentes respectivamente. sta es la misma sealde salidaXTALCLK RCCLK de los mdulos osciladores correspondientes, y es enviadaa travsde un bffirhacia eI mdulo intero del sistema de integracin (SIM), all se usa para calcularlos ciclos de tiempo que determinan el comportamiento del mdulo de vigilancia COP (computer operatingproperly).

m ent I..,f

raci

En las figuras 19.l y 19.2 sepueden ver tambin las principalesseales que intervienen y seoriginan en cadamdulo oscilador,y que son usadas por la CPU, el bus interno, el SIM (system integration module), y otros mdulos internos durante su operacin;stas son:

Frec

Rlso

Frec

Freq

Frec ha

Esta sealcumple la misma fun(XTAL.v cin en los dos mdulos osciladores

Con ffi

Esta seal se obtiene a partir de un bloque que reTipo de cibe y divide por dos la frecuenciade la seFuncin delpin0SG2 osclador al 2OSCOUI y se enva al mdulo SIM para que stela distribuya entre los dems XI-AL invertida Oscilador con Seal 0SC1 por registro del mdulos internos que la requieran dentro conRC Controlado el bifPTAEN lscilador ($OD) PTAPUER del microcontrolador. Paraobtener la seal = 0:salida PTAOEN RCCLK del reloj, usadapor el bus interno de la CPU, = 1:Lneade puerto PTAOEN PTA6 el mdulo SIM divide nuevamentepor dos y funciones Tabla l9.l Configuracin asignadas a lospines del oscilador enlos microcontroladores 68HC08 esta seal, con lo que se determina que la

Res

ReiS

Rei* ffi

$fu
\{

rr-L

prctico curco sobre Microcontroradores

hI

L\.:\j t

-l-

frecuencia del reloj del bus interno de la CPU (Fon) sea siempre la cuarta parte de la frecuenciade la sealdel osciladorRC o XTAL

(XTALCLK RCCLK.

La tabla 19.2 es un sumario de las magnitudes dpicas que se deben considerara la hora de configurar los mdulos de oscilacinde los microcontroladores Motorola 68HC08 y 68HRC08 ; la tablasemuestraparalos dosvoltajesnominales de alimentacinestandarizados: 5 v 3YCC. Para calcular los componentes externos de la red RC, se recomienda usar un condensador externode 1OpFcon baja tolerancia, elegiruna frecuencia,y calcularla resistencia por medio de una de las dos curvasque semuestran en la figura 19.3; en la figura se muestran las curvas de resistencia contra frecuencia,que corresponden con dos nivelesde alimentacintpicos, all se puede ver con claridad la influencia del voltaje de alimentacin en la frecuenciadel reloi.

Aunque los microcontroladores Motorola cuentan con una amplia toleranciapara el voltaje de alimentacin(entre3 y 5Y), estono quieredecir que muchas de sus caractersticas elctricasfundamentales para su operacinno seanafectadas con los cambios.tal como sucede con la frecuencia en el mdulo oscilador. La frecuenciade operacinde todaslas seales de reloj manejadas por el microcontrolador,es especialmente afectadapor los cambios en la magnitud de la tensin de alimentacin,e igualmente. el consumo total de corriente de ste (loo) esfuncin directade la frecuencia de ooeracin que se 9_lr){._

Dentro de la gama de interrupciones internas y externas, el reset o interruDcin de inicializacin

Caractersticas

Simbolo

Mnimo 8 MHz Fs,ns

Frecuencia deoperacin interna (RST) bajo dereset mnimo iPulso delcristal, XTALCLK lFrecuencia lFrecuencia deloscilador, RCCLKFnccu | Capacidad decarga del cristal Condensador fijo del cristal

16

32 12 32

MHz MHz MHz pF pF pF MO

12 16

i Frecuencia dereferencia externaOSCXCLKI dC C C1

,Condensador desintonia del cristal C2 Resistencia imentacin Rg dereal enserie del oscilador Rg :Resistencia Resistencia extema del oscilador RC iCmdensador exbmo del miladq RC
Segn la impedancia delcristal

kc,
KO pF
y 68H8C08. 68HC08

Rrxt

Calcular segn lafigura 19.3

cn

y especificaciones paralos Tabla 19,2 Caractersticas decomponentes erternos mdulos osciladores de los microcontroladores

prctico curso sobre Microcontotadores &kt,t

(}

t e'sti;e'tt[usntlci'uu'untroLad.ut'esue'l(lotorula EL c'|. oscllatlot'' 'iL't]


'tA N

= 1t - : 'J
r (J (J.^ EIU L' CE

i rel :-: :od


\
temperalura z5"u

,8
o o

= 1o cExt Pr
O

-= \,rd

Con Vo, = 5Y = 3Y Voo Con

(.)
ct7

JA

lores

o J,4 u z u

O SOIO

J_

r3 Q 3Ue0 Tlent

tn
q

10

30 (kl)) R61 Besistencia,


parael clculo clntra frecuencia RC, deRer de resistencia externa deloscilador Figura 19.3Curvas

cent

cr0ng

Laelf

del microcontrolador es la fuente de mayor jerarqua, esto significa que su peticin seratenluegode su reconocimiendida inmediatamente to y validacin. Cada vez que la CPU del microcontrolador el recibey valida una sealde interrupcin de reset, microcontroladoresobligadoa asumirun conjuninicialespara susmdulosinterto de condiciones y ejecucinde las insnos, y a iniciar la bsqueda truccionesen un lugar predeterminadopor los fabricantes para el inicio (starting address). La entrada de resetno es sincrnica con el y por lo tanciclo de ejecucinde instrucciones,

to la interrupcin seratendidaen cualquiermomento, inmediatamentedespus de recibir un nivel de voltaje en nivel bajo por el pin de resex en la figura 19.4 seaprecia eldiagramade tiemla ejecucinde un ciclo de pos que representa reset al interior del microcontrolador.

c i n a0n
'r 0 m r

sed 0pe c dor mp drre

OSC Una vez la condicin de reset externa o interna se reconoce,inmediatamentemuchos registros y bits de control son grabadoscon los datos necesarios para iniciar la rutina de trabajo con el microcontrolador, a partir de una posiciny con unos parmetros condefinidos; muchasde estas

vida

CAU

q cra per

Enl

I clL tL

I( LCIU

HTLUJ

Utr

CP par

LA CPU

0v9

uE

DtREcctoNES
DE LA CPU BUS DE DATOS DE LA CPU

INDETERMINADO

X
'

l---------------

$fffe

tr$FFFF

PINDE RESET DELPINDE RESET UESTREO

Fi

3:

pormedio externamente de la correspondiente entrada de un cicloderesetactivado de tiempos Figura 19.4Diagrama


.Z I \ t

(ir0) \ '//

&.lclf".i.

prctico Microcontrotadores sobre curco

LL- Lt

' -'

MAS dicionesinicialesson independientes PARA SABEB del modo y la potencia Elreloj delmicrocontroladorde operacin,y algunasestndestinadas a perMotorola, laoo- mitir elarranqueapropiadode algunosmdulos En todos losmicrocontroladores tencia consumida depende directamente delafre- internos fundamentales para la CPU; mientras a laque haya sido configu- que otras, definen puntos de referenciaentre el cuencia deoperacin para unvoltaje de programadory la CPU que deben considerarse rado el mdulo deloscilador, y aunque losmicrocontrla- para ejecutarcorrectamente alimentacin definido; el cdigo de operadores delafamilia 68HC08, amximafrecuencia, cin de los programas. 1SmA, esimportante considerarlo slo consumen yaque ocasiones elmicrocontrolador Las principalesacciones enmuchas que se desarrollan, que puede pafte habitual- una vezque el microcontroladoresinicializadoa ser deungran sistema, puede ms mente enlaindustria contener deun travsdel reset, se describena continuacin. y poseer limitacentenar demicrocontroladores ensudisponibilidad deenerga. cines adecuada deoperaLaeleccin delafrecuencia uncompromiso entre el cin, siempre debe ser y losrequerimientos en consumo depotencia por tiempo delatarea ejecutar, sta derespuesta para lafrecuencia de sedebe evaluar calcular y luego mnima configurar eloscilaoperacin factor a tal valor. Otro dordelmicrocontrolador que que y considerar est importante sedebe lafrecuencia del directamente relacionado con de la es desgaste o la disminucin oscilador, el a vida tilylaconfiabilidad delmicrocontrolador, enel consumo depotencausa deunaumento enunincremento delatemciaque setraduce peratura integrado. del circuito querelascurvas Enlafigura sehan dibujado delaconiente dealimenlacionan elconsumo y (loo) interno dela tacin lafrecuencia del bus (F'p) 68HC08, CPU enlosmicrocontroladores para tpicos. los dos voltajes dealimentacin
Despusde la ejecucin del ciclo de reset, el registroPC es grabadocon las posiciones de memoria $FFFE y $FFFF, definidaspara el respectivo vector (un vector representa el contenido de una localidadde memoria definida y asignada a un eventoexternoo interno), y la CPU inicia el ciclo de ejecucin o decodificacinde lasinstrucciones all contenidas, que por lo generalson instrucciones de salto. tmbin el registroSP se graba con el dato $00FF, ubicandola pila en la primerapgina de la memoria de datos, mientras que el registro ndice H es borrado a cero lgico con el objetivo de hacer compatible la migracin del cdigo de programaentre las familias HC05 y HC08. Todos los demsregistros de Ia CPU asumen un estadoindeterminadoluego delreset. Sin embargo, algunosbits de control del registrodel cdigode condiciones CCR, tales como la mscara de interrupciones I, y las banderas de los modosde operacin STOP y'Sfi\IT, son puestos en uno y cero lgico respectivamente, para inhabilitar todas las fi;entesde interrupcin y llevarla CPU al modo normal de trabajo.

dealimentacin Figura 19,5Comportamiento delacorriente mdulos internos activos contodos sus delmcrocontrolador (lr), frente delbusinterno a Iafrecuencia deoperacin delreloi (F") dela CPU

En los microcontroladores Motorola, la CPU08 cuentacon dos modosde operacin


; ,l\

prctico E-frdf,T';. curso sobre Microcontrotadores

(fgf )
\Z v

Lt00ti v L'[tL:sL:; ri.c' L(tutot'ola rrn[0snlicroc'0ni]'oLad.uru's EL osciLad.ur


disponibles para el programador: el modo usuarioy el modo monitor; en el modo monitor la CPU tiene el mismo com'portamiento que en el modo usuario, excepto que Ia direccin definida para el vector del resetse reservadas cambia por las posiciones $FEFE y $FEFF. Con estedesplazamientola CPU inicia los ciclos de bsqueday ejecucin del cdigo desdeel firmware interno del mdulo monitor y no directamente en el cdigo del programador. El modo de operacin se define y es memorizado por la CPU durante el flanco de subida del voltaje presenteen el pin de reset (durante la transicin de V., a Voo); el modo usuario es el modo de trabajo definido por defecto tras la inicializacin del microcontrolador, pero la seleccin del modo monitor se efecta llevando dos de sus lneasde puertos I/O de propsito general a Vr, / aplicando en la entrada de interrupcin IRQ1 un sobrevoltajeigual al doble de Voo; en la figura 19.6 se muestran grficamentey se resumen en un cuadro las condiciones para seleccionar el modo de operacin.

Todas las fuentes de interrupcin del resetdetienen inmediatamentela ejecucinde cualquier instruccin en curso dentro del microcontrolador, vectorizan hacia las posicines $FFFE y $FFFF, inician un ciclo de resetinterno que graba todos los registrosde la CPU con sus valores por defecto, y restablecenlas condicionesinicialesen todos los mdulos perifricos internos. El ciclo de reset se puede activar desdedifuentes versas internasy externasal microcontrolador, como son: el resetexteno (pin I), el reset a la conexin (power-onresetPOR), el reset del temporizador watchdog CO\ el reset por cdigo de operacin ilegal, eI reset por direccin ilegal y la interrupcin de inhibicin por bajo voltaje LVL

PuertoX PuertoY

PARA SABER MS Validacin delresef externo e interno que Para lassesea activado, elciclo deresef que ales lo inician ciertas cadeben cumplir que ractersticas dependen deloridetiempo gen lafuendelafuente deinterrupcin. Cuando (R-ST) te esexterna, enelpinderesef sedebe (Vrr) aplicar unnivel lgico cero durante un tiempomnimo Voo es5V de de750ns, cuando queel mdulo 1,SUs, cuando Voo es3V para interno valide e inicie delrestlo reconozca, propias las acciones dedicho ciclo. En elcaso internas, delas fuentes sureconociy validacin miento laCPU coseinicia cuando periodos y loca desde durante 16 del elinterior reloj RTT delbus, la entrada externa ennivel y otros 16periodos seinicia el cero, despus interno Esta del ciclo de reset. caracterstica permite que por los resef activo fuente interna, puemicrocontroladores 68HC08 delafamilia y a travs inicializar de dan simultneamente, peridicha integrados, entrada, otros circuitos y micr0c0ntroladores fricos externos, esclavos, inmersos complejo. enunsistema

'-*[r,y,T *=ff
usuario Seleccin delmodo monitor Seleccin delmodo

X PinlR01 Puerto < VDD 2 xVpp


X 0

Y Puerto X 0

Modo

Ent mic Ene ble ' ria c mer

Usuario Monitor

parala seleccin delmododeoperacin Figura 19,6Condiciones de la CPU08

Una esta grar taci del

&tn:
l-_

prctico sobre Microcontroladores Curco

En estaocasinse estudiarel mapa de memoria de los microcontroladores Motorola de la familia 68H(R)C08. En 1,se muestrala distribucinde la memoria disponila cual estconformadapor la memoble y direccionable ria de datosRAM, la de programacin ROM, y el reade memoria ROM del programamonitor. Una caracterstica particularde los microcontroladores de estafamilia,esla disponibilidadparael usuariode un proen la memoria (firmware),que grama monitor residente facilita la ejecuciny depuracinde programasa travs del puerto serialde una PC.
prctico Curso sobre Microcontrotadores @ k f n)

MAPA DELAMEMORIA $0000

,l

$003F $0040

Registros l/0 . 64 bytes porlaCPU Reservados 64 bytes RAM 128bytes Sin establecer /es 60160 ROM delusuario MC68H(R)C08JL3/JK3 4096bytes ROM del monitor 512bytes Registro deestado delbreak(BSR)

$007F $0080

+ $OOFF
00 $0r
$EBFF $EC00
t

Sinestablecer 60720 bytes usuan0


MC68H(R)C08JK1 '1536

00 $01 'l $F5FF


$F600 $FBFF

$FBFF

,f

+ $FDFF
$FEOO $FEOl $FEO2 $FEO3 $FEO4 $FE05 $FEO6 $FEO7 $FEO8 $FEOg $FEOA $FEOB $FEOC $FEOD

$FC00

Figura20,1Distribucin delreade la memoria enlos microcontrol adores 6I H(R) C 08JK1 /JK3 /JL3

controladores 8JL3 68H(R)C0 13, y de 1.536 bltes enlos microcontroladores L 68H (R)C08JK Reservado OBAR) de memoriade da(BFCR 2. Ellugar paralos I28 bytes delreak Registro debanderas decontrol tosRAM disponible en lasdossubfamilias de (lNT1 Timer registro deestados delainterrupcin microcontroladores lK V IL. (lNT2 registro deeshdos delainterrupcin iegundo El rea de memoria asignada paralatablade 3. (lNT3 fercer registro deestados delaintenupcin vectores el la cual definidos por programador, porla CPU Reservado secompone 48 bytes. de Reservado oorla CPU 4. El espacio de memoriade sololecnra(ROM), dis Reservado oorlaCPU tribuidos czdavn endosreas de 512v 448httes porla CPU Reservado
Registro delresef(RSR) deestado porlaCPU Reservado (BRKH) Registro dedireccin delrekalto

(BRKL) Registro dedireccin delbreakbajo El conocimiento del propsito, la ubicacin exacy (BRKSCR) del break Registro de estado control $FEOE $FEOF

Reservado oorlaCPU
ROM delmonitor 448bytes

o $Fq1
i

$FECF $FFDO
i $FFFF

Vectores delusuario 48bytes

ta, la disposicin y la funcin definida para cada uno de los bits que conforman los registrosde datos, control o estadodel microcontrolador, se deben tener presentes para controlar y supervisarcorrectarnente todaslasfuncionesprogramadas en 1. En la figura 20.2 semuestraen detallela distribucin y asignacin que sele ha dado al espacio de memoriadireccionable por el microcontroladotcontenido entrelasdirecciones $0000 y $003F; en l se encuentrancontenidosla gran mayorade registros de control, de estadoy de datos.Adicionalmente. algunosregistros reservados por la CPU y de propsito especial, han se ubicado en las ultimasl6 posiciones de memorialocalizadas entre$FE00y $FEOE y la ltima posicin $FFFF que corresponde al (COPCTL). resistrode controldel COP

>_l

>,1

La CPU08 de esta familia de microcontroladoresposeeun bus de direccionesde 16 bits con el haxa64Kbytes del reade que sepueden acceder la memoria. El mapa de la memoria que se puede apreciaren la figura 20.1, muestrasu organizacin,y en l se incluyen las siguientesreas: 1. El espacio de memoria ROM disponible para el usuario, que es de 4.096 bytespara los microrA\z(

S:'

dta.g \iZ

&,<ff,.i.

prctico sobre Microcontrotadores curco

REGISTROS DEPROPSITO ESPECIAL Direccin $0000 Nombre delregistro


Lectura: BitT

Registro dedatos delpuertoA (PTA) Escritura


Reset:

PTA6

PTA5 PTA4 PTA3 PTM


porel resel Noseafecta

PTAl

PTAO

$0001

Lectura: PTBT B Registro dedatos delpuerto Escritura (PTB) Reset:

PTB6

PTBS PTB4 PTB3 w82


Noseafecta 0orel resef

PTBl

PTBO

$0002

Sinestablecer

$0003

D -t':lu"' PTDT PTD6 PTDs PTD4 PTD3 PTD2 Registro dedatos delpuerto (PTD Escritura:
R6et: Noseafecta oorel reset

PTDl

PTDO

$0004

n .illl.".l' Registro dedireccin oeoamr ,! tscnlura:


(DDM) Reset:

oonns DDM5

DDM4 DDM3 DDM2 DDMl

DDMO

$0005

Registro de datosB Lectura: de direccin DDRBTDDR86 DDRBs DDRB4DDR83 DDR82DDRBl DDRBO (DDRB) Escritura: Reset:

$0006 $0007

sinestantecer rlu'.ll''
DDRDT DDRD6DDRDsDDRD4DDRD3DDRD2DDRDl DDRDO de datos o .lllii'.l. Resistro de direccin Escrrlura:
(DDRD) Beset:

$o?08
$0009 $000A

establecer Sin #ffi, puerro o .iilil'.i. Resistro de contror der # ctnrrrnT mcntura
(PDc Reset:

PTDPU6 PTDPUT SLOWDT

$otoB
$000c

sin estanrecer,iiiii',]
)TAPUEl 'TAPUEC

habilitador de entradas Lectura: PTA6Ef\ FTAPUE( PTAPUES PTAPUE4 PTAPUE3 $000D Registro pull-updelpuortoA Escritura: (PTAPUE) Reset:

$010E
I $001

sin estaorecer,iiiii',1'

y estado decontrol del Lectura: $001A Registro teclado Escrtura: (KBSCR) Reset: KBIE5 KBIE4 KBIE3 JGIE2 KBIEl KBIE()

B $001

Registro habilitador de interrupcionesdelteclado Escritura lrareo (KBIER) Beset:

sobre Microcontrotadores curnprctico icn.t #

t-

---J

3-'-.7J-J-'- : - --;---'-

-'- --S ---J-''J--'-----i:--rS

----,J :,

-----,-'--

Direccin c $001 D $001

Nombre delregistro sinestablecer -Leclura tscntura: y Registro deestado control delRO (INTSCR)

E $001

Registro de configuracin,| r|,1iH


Reset

F $001

Registro 1 , -_.-- COPRS R deconfiguracin (C0NFlG l* '"u"'u'o

LVID

SSREC STOP

COPD

Re s e t : o 0 0 0 0 0 0 0 t Despus .* Solamente por (P0R) y LVIT0 reset medio del reset a laconexin decada s10 sepuede escribir una vez. las interrupciones LVIT1 secolocan en0 lgco TOF $0020Resistrodeestadoycontroltr|r|! r;1il; U
Reset: 0

TOIE TSTOP

0
TRST

#Ps2

PS1

PSO

s0 0 2 1 Reoistroa|tode|contado, ! . e 1 -I ] y = . 1 1 ] :
Reset: 0

$0022RegistrobajodetcontadotBirt+,i::,T:,
Reset: 0

$0023

Registro altodelmdulo del Bit15 Bt14 Bit13 Bt12 Bt11 Bt1O Bt9 contador delTIM Escritura: 0M0DH) Reset: Registro bajo delmdulo del git7 contador delTIM Escritura: [|M0DL) Reset: y control Registro deestado del canal 0 delTIM Bt6 Bt5
Bt4

Bt8

$0024

BT3

Bt2

Bt1

BtO

$0025

[Isco)
$0026
Registro altodelcanal 0 delTlM |IcH0H) Bt15 Bit14 Bt13 Bt12 Bit11 8,f10
Indeterminado desous delresef

Bit9

Bt8

bajo delcanal 0 delTIM BitT $0027 Registro Escritura:


IICH0L) Beset:

Bt6

BT5 Bt4

Bt3

Bt2

Bt1

BtO

Indeterrninado desous delresef

$0028

y control Registro deestado del canal 1 del TIM

(Iscl)

$0029

Registro altodelcanal 1 delTIM H) 0cH1 Registro bajo delcanal 1 delTIM

Bt15 Bt14 Bit13 BT12 Bt11 Bt1O Bt9


Indeterminado desous delresef

Bt8

$0024

Bt7 ICH1L) Escritura: Beset:

Bt6

BitS

Bt 4

Bt3

Bit2

Bt1

Bit0

Indeterminado desous delrese

t(

&Klf,:.

prctico Curco sobre Microcontroladores

Direccin Nombre del registro $092B


$0038 y control ADC deestado del $003C Registro (ADSCR) $003D .
Lectura i

Sinestablecer tscfura:

j!!Ll men ADCO


AD7 AD6 AD5

cH4

cH3

cHz cH1

cH0

Reset:

Registro dedatos o.',fo%! Escritura:


Reset:

Lectura:

AD4

AD3

AD2

AD1

ADO

Indeterminado desous delreset

deentrada dereloj dglADC $003E Registro (ADTCLK)


Reset: 0

$003F
$FEOO

Sinestablecer Registro deestado delbreak (BSR)


LCCIUfA

I
R R R R R R

Reset:

SBSW Ver nota 0


LVI

NoTA: Escribiendo un0 lgico se borra el DSBSW

$FEO1

Registro deestado delresef Escritura: (RSR)


Reset: Lectura

POR

PIN

c0P

ILOP

II.AD

vluutfl

$FEO2

R Reservado Escritura:
Lefiura

Regiso delas banderas decontrol $FE03

BCFE

delbreak (BFCR)

Reset:

$FEO4

Primer registro deeshdo delas Lectura 0 Escritura: R interrupciones

tF5
R

tF4
R

rF3
R

0
R

(rNT1)Reset:

tFl R

0
R

0
H

registro deestado delas Lectura:lF14 $FEOs Segundo Escritura:R interrupciones (rNT2) Reset: $FEO6

0
H

0
R

0
R

0
R

0
R

0
R

0
R

registro delas Escritura: Tercer deestado interrupciones (rNT3) Reset: Reservado Escritura:
Leclura Lectura:

Lectura

0
R.

0 R

0
R

0
R R

0
R

0
R

tF t5
R

$FFo7
$FEOB
V

Bt15 BT14 Bt13 Bt12 Bt11 BI10 BT9 del breakallo dedireccin $FE0CRegisfo Escritura: (BRKH)
Beset:

Bt8

BitT delbreakbato Registro dedireccin $FE0D .-^-,, -^ Escnrura (BRKL)


Reset

Bit6

BitS

Bt4

Bt3

Bt2

Bt1

BtO

prctico curco sobre Microcontrotadores &kl,:.#

Direccin

Nombre delregistro

y coml deestado oel $FEOE Registro break (BRKSCR) Beset:


$FFFF

Registro decontrol delCOP (c0PcrL)


porel resef Noesafectado

lt'.

estabtecer W

Reservado

y asignacin y bits y datos, que registros decontrol, estado Figun 20.2 Localhacin delos conforman elmapa delamemoria delos microcotroladores 68H(R)C08JK1 /JK9/JL?

nar y recuperareftctzmentelos registrosde la En la tabla 20.1 semuestranlos 16 vectores de- CPU durante los llamados,saltos,e interrupmicroconfinidosparalasinterrupciones en'los ciones.La pginacero de la RAM estconfortroladoresde estafamilia; su funcin, su direc- madapor los primerosI28 bytes; staproveeal cin exacta, y su nivel de prioridad son de gran usuariode un espacio ideal para el acceso freimportanciaa la hora de atenderlos llamados de cuentede variables y un globales del programa interrupcininternosy externos solicitados rpido a las instrucciones por acceso por medio de la CPU; estos en 48 posi- direccionamiento vectores seencuentran directo. cionesde memoria de 16 bits cadauna. En la deprograma desololectura tabla sepuedever tambin la prioridad de cada Memoria ROM vectorla cualesel parmetro que defineel orden de atencinque la CPU le dara cadauna de En estareade memoriade 8 bitsdefinidaentre cuandosu activacin puedalle- lasdirecciones ellasen los casos para $EC00y $FBFF(4096 bytes) antecualquiereventointer- los microcontroladores 68H(R)C08JK3|JL3, gar a sersimultnea o (1536 entrelasdirecciones no o externo. $F600y $FBFF bas) paralos 68H(R)C08JK1,el usuariopuedeguary delectura Memoria dedatos da los datosque hacenpane del cdigodel proRAM escrtura grama, ascomolasconstantes, asignaciones y etiLasdirecciones y el espaquetas quesedeben preservar dentrodela memo$0080 $OOff definen cio de memoriaRAM con una longitud de pala- ria por tiempo indefinidoy sin modificacin. bra de 8 bits;en ella sealbergan todos los datos En estareatambinestncontenidas temporales requeridos por el programaquesean la taleldos y modificados en bla vectores dot )r que requieranser de y el vector de las interrupciones cualquiermomento. del reset delmicrocontrolador, entrelasdirecciones $FFDOy $FFFF,tal como se aprecia en la 20.1. Dentro de estareasedebeubicarel espa- tabla y aunquesu cio para la pila de datos (stack), ROM y posea delprograma montor un re- Memoria ubicacinpuedeserprogramada (M0N) 16 le movilidad bits que da dentro gistro SP de de los 64 Kbytedel reade memoria,su ubica- El programamonitor, inalterabley residente RAM, en la memoria ROM dentro del microconrrocin siempre dentrodel espacio debeestar y especialmente en la p'gina cero para almace- lador, se ha incluido en su arquitecturapara

Tabla devectores

Que t rrect terFa

RS2 disp

ricas l.M
nl

co
fTli

2. Lr

<n* #

prctico Microcontotadores cutso sobre

L\:gL

L\:.

Vector altodefindeconversin delADC Vector bajo defindeconversin delADC Vector alto delteclado bajo Vector delteclado
lF13 a lF6 tF5

Espacio sinuso Vector altodesobreflujo delTlM Vector bajo desobreflujo delTIM Vector alto 1 delTlM del canal Vector bajo delcanal 1 delTIM Vector altodelcanal 0 delTlM Vector bajo delcanal 0 delTIM Espacio sinuso Vector alto delalRO Vector bajo delaIRQ Vector alto deSWI Vector bajo deSWI Vector altodelresef

68H(R)C08JK!/JK3/JL3 Tabla 20.1 Tabla de vectlresdelasintenupciones enlosmicrocontroladores

que el usuario pueda probar la ejecucin co- 3. Efecta la comunicacin a una velocidad rrecta de un programa por medio de una inprogramable entre 4.800 baudios y 28,8 terfaz de comunicacin serial de dos hilos Kbaudios, y puede ejecutarcdigos de proRS232 y el puerto de una computadora como grama desde las memorias RAM o ROM. dispositivomaestro.Las principalescaractersricasdel modo monitor son: En la figura 20.3 se muestra el circuito tpico que se requiere para trabajar con el 1. Mantiene la funcionabilidad de todos lospimicrocontrolador en el modo monitor, en l la se han usado un driuer de comunicacin vn Pin (PTB0) para establecer nes,feserva comunicacin serialentre el monitor y la PC. R5232(MC145407) y ,tn bffir de treses2. Usa un protocolo de comunicacin estndar tados (74125) paracontrolar la direccin de marca-espacio sin retorno a cero (NRZ). los datos.

prctico curco sobre Microcontrotadores &UOO:

Sb

Rd

(Nota 2) V + V

Interruptor de reset
0.1pF

IR

I
I --

10rF

'10 rF

10 r F

''.ll
Voo
para Figura 20.3 Circuito tpico establecer eluso delmodo monitor igual a Voo *Vr, (V* puede esrar enrre 0,7xVoo como valor mnimo, y Voo como mximo), excitar la entrada de reloj externa a travsde OSCl con una frecuenciaigual a 4,9125 MHz, y llevarel pin de entradaPTB3 a un nivel bajo (0 lgico). 2. Colocar la entrada externa de interrupcin iilqt en un nivel de voltaje igual a Voo +Vr,, excitar la entrada de reloj externo a travs de OSCI con un generador de frecuenciaexterno ajustadoen 9,8304 MHz, y llevar el pin de entrada PTB3 a un nivel alto (1 lgico).

E l \r

en el terru son (

SFE. cucii

n |t',1

Prog
NOTAS: 1. Con SW1 enposicin A,el reloj delbusesigual porcuafo. al reloj deloscilador dividdo Con SW1 enposicin B,el reloj delbuses pordos. igual al reloj delosclador dividid0 2. VHI esaproximadamente igual a VDD. 3. Eloscilador externo debe tener unciclo de servicio gual al 50%.

La r-

PC. md

La tabla 20.2 resume las condiciones que se deben cumplir para entrar al modo monitor. Paraentrar a dicho modo de trabajo, de acuerdo con la figura 20.3, el microcontrolador requiere la aplicacin de un reset e la conexin (pourer-onresetPOR ), luego de haber cumplido con uno de los dos conjuntos de condiciones que a continuacin se resumen. 1. Colocar la principal entradaexternade interrupcin IRQI, localizada en el pin I del microcontrolador, en un nivel de voltaje

&krr"L #

prctico curso Microcontrotadores sobre

(ft

IRQl

E
1

o E lo-

Fuenb delreloi Frecuencia del y frecuencia bus


a 0SC1 MHz 4,9152

Gomentarios

Vgp + V

2,4576MH2 Entra almodo monitor:

Elreloj llega externo directamente a 0SC1. La comunicacin seestablece Eltemporizador a 9,600 baudios. permanece COP deshabilitado. Entra almodo usuario

voo

+4 definida er XIALCLK X iecuencia

losmdulos XIAL R( sciladores

*4 RCCLK

y opciones panentar 4).2Requerimientos Tabla almodo monitor del estadode la entradaPTB3, una vez se ha El MCU cambiaalgunas direccioneidefinidas entrado al modo monitor. Cuando el PTB3 para los vectores de las in- esten estadoalto sedivide por 1.024, mienen el modo usuario y el breah;stos tras que cuando su nivel es un cero lgico se el S'S7I, terrupciones del reset, son definidos alternativamenteen la pgina divide por 512 el resumen parela seleccin $FE, y permiten que la CPU inicialice la eje- de la rata de transmisindel modo monitor, de acuerdocon el circuito de la figura 20.3. cucin del cdigo del programadesdeel firrnuaredel monitor, y no desdela memoria de Formatos decomunicacin del bsicos programadel modo usuario.

monitor Vectorizacin enel modo

modo montor

delmodo Velocidad decomunicacin monitor


La velocidad con la que se efecta la transferencia de datos entre el microcontrolador y la PC, se define en funcin de la frecuencia del mdulo oscilador activo, y depende tambin (a)
z

En la figura 20.4a,sepuedeapreciarque la comunicacincon el programamonitor seefecta en un formato de datosestndar de marca-espacio sin retorno de cero (NZR). La velocidadde transmisinpuede ser cudquier valor estndar entre4.800 baudios y 28,8 Kbaudios.
paxuo
ATDE

FORMATODE DATOS DEL MONITOR

$A5 BREAK

FORIIAS DE ONDA DE iIUESTREO DEL MON]TOR aTE r-mc|ot Bfro \ sTt t- Nf 2 ! sfr / rfr \ ErO ,

pnre

rf7

STDC --a E70E t t.c|o

y eco Figura 20.4 furmato dedatos durante elciclo delectura desde elmodo nonitor

pctico curco sobrc Microcontotadorcs rrrt#


-a

Paragarantizarla transferencia limpia de datos por medio deldriuerde comunicacin,el programamonitor haceeco de cualquierdato recibido, envindolode vuelta hacia el terminal PTBO para efectuarel chequeode error respectivo. Esto sepuede apreciaren la figura 20.4b, all seve que cualquierresultadode un comando slo sertransferido luego del eco del ltimo bltte del mismo.
ENVIARAL MONITOR

En las figuras20.5 sedescriben grficamente lassecuencias de losseis comandos queseusan e n e l mo d o mo n it o r: le c t u ra d e me mor i a READ, escritura en memoriaWRITE, lectura indexada IREAD. escritura indexada IWRITE,lecturadel punterode la pila READSP,v ejecucin del programa RUN.

RESULTADO Figura20.5aClmandl delectura delreade memoria BEAD ENVIARAL MONITOR

Figura20.5bComando de escritura delreadememoria WRITE ENVIAR AL MONITOR Figura20,5cConando delectura indexada delreadememoria IREAD
RESULTADO

E N V IA R AL
MONITOR

Figura20.5dComando deescritura indexada del readememoria IWRITE


ECO

IIIRITE

OAIA

Figura20,5eComando de lectura del registro apuntador dela pila SP(Stack Pointe)desde el monitorBEADSP RESULTADO

Los ade tier ria de de,

ENVIAR AL MONITOR parala ejecucn Figura20.5f Comando delcdigo de programacin delusuario desde el monitor BUN
ECO

La, cro dor s ee

ren

/A

y ecodurante Figura20.5Formato de datos el ciclode lectura desde el modo mlnitor

(-zoib

\..Z

&-rcln:.

prctico curco Microcontrotadores sobre

Los microcontroladores Motorola de la familia68HCO8, ademsde poseerdieciseis modos de direccionamiento, tienen un mdulo especial parael acceso directoa memoria (DMA); q,t., talcomo en los grandes sistemas abiertos de cmputo, se usa para transferirrpidamentebloques de datosentre reas y registros de memoria. La caracterstica msimportantecon que cuentanlos microcontroladores, desdeel punto de vista del programador y en cuantoal manejoy al procesamiento de los datos, seencuentra en la disponibilidad de variosmodosde direccionamiento e instrucciones que soportanla transfey la memoria. renciade datosentrelos registros
prcticosobre Curso Microcontroladores @frffiT") ( ZOS) \-/

Ll nrtiulu,ll

f{ift'lAl Annesn a mentrria riire*to


El acceso directo a memoria DMA (DirectMemoryAcces),es un mtodo rpido y eficazque volmenes de permite guardary retirar grandes de datos datosde la memoriay algunosregistros especiales, sin la intervencinde la CPU. El DMA es un mtodo que nacecon los sistemas y complejos y los microde cmputo grandes el procesadores de alto rango;afortunadamente lasexigencias de los desarrollo de la tecnologay sistemas embebidosde control en un solo chip (circuito integrado) cadavez mayores y m:sfrecuentes, han impulsadola integracindentro de la estructurade los MCU (Microcontroller Unit) y mdulosperifericos de alto desde funciones empeo,tal como el DMA.

ansferencia con el DMA seefecte, estemdulo debe tomar el control maestro de todo el sistema de busesy asumir temporalmente las funcionesde control de la CPU; en trminos generales, el DMA opera de dos maneras diferentes: en ciclo compartido y con la CPU detenida.

68HCO dor que

direccid bus,y e ciaded puedan

Paratransferir pequeosvolmenes de datos el mtodo de accesodirecto a memoria que ms se usaescon la CPU detenida; ella le otorga tempordmente al DMA el control total del sistema de busesy le permite hacer la transferenciaen el menor tiempo posible; mientras que cuando seva a transferir un gran bloque de informacin, el mtodo que se usa slo toma el control de una parte del sistemade busesy lo comparte con la CPU, permitiendo as que desde sta se desarrollen las Los microcontroladores de 8 bits, de la fa- tareasy el procesamientocontinuo de los cdigos milia 68HC08, son un ejemplode la evolucin de programa sin interrupcin durante la transfeen el manejode la memoria;stos poseen un m- rencia. Bajo estacondicin la velocidad del movide datos miento de datos sereduce,pero la CPU no detiedulo que permite el coprocesamiento directo,queseconoce como ne la ejecucin de sus tareas. por mediodel acceso

Elr una anr na delI f desde canale tre uno

La plifica< bloque

el mdulo DMA08. de En la figura21.1 semuestra un diagrama simplificado de un sistema general con bloques DMA; en estecasoes claro que la arquitectura y control,son de los buses de datos,direcciones un soportefundamentalpara los movimientos de datosque seapoyanen el DMA. Paraque la

'El mdulo 0MA{}8


El uso del DMA es importante durante el movimiento de datos, porque libera de funciones a la CPU, reduce el cdigo ejecutable necesario,incrementala velocidad de respuesta, y permite usar con mejor eficiencia el espaciode memoria de programa disponible. En los MCU de la familia

Progra habilit gistros neja e a base destin datosI

BUSDEDIRECCIONES Y DATOS

Espacio de direcciones Y ESTADO BUSDECONTROL

Figun21,1Diagrama debloques deunsistema simple conDMA

$lb

&

<n*

prctico Microcontrotadores curco sobre

{ " } p e ra c t Oiif n : ri' r' : r, ' ' r: rli" * iri' En la figura 21.3 serepresenta claramente en bloquesel modo de operacin del DMA; los bloques que representan las direcciones bases de lasposicionesfuente y destino,estnconformados por dosregistros de 16 bitscada uno, endondela CPU la direccinbase coloca antes de iniciarla transfeEl acceso al mdulo DMA08 estbasado en renciacon el DMA; mientrasque el bloque conuna caracterstica modular de la estructura inter- tador de bytes estconstituido por un registro que na del MCU de la familia68HC08, quepermite llevala cuentadel nmero de transferencias hedesde fbrica,habilitar y expandirel nmero de chas. En condiciones normales, IaALU del DMA canales de acceso directo a memoria DMA. en- aumentar en uno el contenidodel contadorcada tre uno y sietecanales independientes. vezqueun bytecomplete sutransferencia, y trasel ciclo de reset seborrar. La figura 21.2 es una representacin simEl bloque de longitud define, por medio plificadadel mdulo DMA08 que muestrasus bloques funcionales el punto de vistadel del registro desde de longitud de bloque,el nmero programador; en 1, el sistema de control lgico de bytes que van a sertransferidos en una opehabilitael DMA y selecciona el conjunto de re- racinparticulardel DMA, y su contenidose que se requieren por el canalactivo,ma- usaparasercomparado gistros con el del contadorde neja el incrementoo decremento del registro bytes y asdeterminarel fin de la transferencia. base apuntadorde direcciones de la fuentey el En el DMA, la ALU es un subsistema de 16 destino, y controla el movimiento segurode bits que se usa para calcularrpidamentelas datos(verfigura 2I.3). 68HC08, el DMA08 esun mdulo coprocesador que puedetomar el control de los buses de direcciny datos al concluir cualquierciclo de bus,y estdiseado parapermitir la transferenciade datosentredosposiciones cualesquiera que puedanserdireccionadas por la CPU.

----+ + +

Busde 16b/s Bus de8 lfs Lneasdecontrol

MULTIPLES REGISTROS, UNO POR CADA CANAL DMA

Figura 21.2Diagrama enbloques DMA08 delmdulo

prctico curco sobre Microcontrotadores &<t,.t #


{

[:[uruulu lJt(A' luslnudus tie. tiltr.u,'luLrutuir.ulo e=ir [ustuletrucuuladcrr.s blitit'tll]

PA Al g

OU

Pa

VS

CONTROL DE LACPU
H

te qu me

Pa Pa

Pa
BUS INTERNO DE LACPU

Pa
Figura 21.3 )peracin delmdulo DMA08 direcciones actualesde la fuente y el destino (en un slo ciclo), y para incrementarel contador de bytescon cada transferencia.Bajo la direccindel mdulo DMA, la ALU guardala en un direccin de la prxima transferencia registro temporal de direcciones,y, en el momento preciso, deposita en el bus interno (IBUS) su contenido. Opcin de transferenciade un slo bloque, o de bloques repetidos en lazo de seguridad. 6 . Longitud del bloque de datos programable hasta256 bytes. 7 . Interrupcin para la CPU del fin de transferenciade datosdel DMA. 8 . Nivel de prioridad de la transferenciacon DMA, programable.
5

E s c:-. r

Bits Las caractersticas principales con que cuenta el mdulo DMA08 son: 1. Arquitectura modular y expansible por el fabricante, hasta siete canales independientes. 2. Rata mxima de transferencia de datos igual a 4 Mbytes/sec.Con la frecuenciadel bus interno igual a 8 MHz, se transfiere un byte cadados ciclosde bus. de direccionesbasepara 3. Registrosseparados la fuente y el destino, de 16 bits cadauno. 4. Capacidadde transferencia de un byte(B bits), o una palabra(16 bits).

Paradescribirel conjunto de registros de control y estadoque hacen parte de la configuracin y el control del mdulo DMA, sehar referencia slo al canal0, ya que lasfuncionesy el modo de operacin de todos los canales son igualese independientes. Estosson:

Birf
Este registrose usa para habilitar individualmente cada canal, la interrupcin del DMA para la CPU, y el porcentajedel bus interno que seva a compartir entre el DMA y la CPU. (Figura 21.4)

del c I Bit I cin 1:

//.,'\ ^ | (rU ) &,rctn;. \ ,/

prctico Microcontrotadores Curco sobre

LS U L L

MAS: PARA SABER para latransferencia Algoritmo bsico con elm- Paso 5: Defina enel registro delongitud delblodulo DMAOB que delcanal 0 (D0BL), el nmero de programar Para latransferencia dedatos, a trapor bytes transferir. vs DMA08, elsiguien- Paso delmdulo sepuede usar y confol 6:Use elregistro deestado delDMA y envista gua, te procedimiento como una de para prioridad (DSG) asignar elnivel de de que todos los idnticacanales delDMA operan latransferencia, activar la transferencia para mente, 0. ste sedescribir slo elcanal y habilitar cclica, o noelDMA durante el modo MCU deespera del WAII). Paso 1:lnhabilite DMA. elcanal 0 del Paso 7: Para controlar desde elsoftware latransPaso 2:Escriba enelregistro dedireccin base ferencia dedatos, coloque en1 lgico el primer ladireccin delafuente, del dato ffSWl0 registro 2 decontrol DMA del del que (D0SH debe ser ledo desde lafuente (DG2). La transferencia comenzar dos ciy D0SL). clos desous de lahabilitacin del canal 0. Paso base Paso 3:Escriba enelregistro dedireccin para 8:Finalmente, habilitar latransferendeldestino, ladireccin delaposicin y manejarla por cia desde unperifrico primer dato endonde sedebe escribir el medio deuna interrupcin, sedebe hay D0DL). (D0DH destino bilitar la interrupcin defindetransfePaso 4:Acceda del canal 0 elregistro decontrol rencia, seleccionar elporcentaje deocupara (D0C) y seleccionar habilitarlo, las pacin y del DMA. bus habilitar elcanal y y decremento, fuentes del incremento Todo esto, desde elregistrol decontrol lalongitud del dato. (DCl). del DMA
DC1 $xxxx
Bt1
L e 0I I f il

0: Inhabilitala interruocindel canal0


TECO IECO

Escf tura 8e.se

BBl

BBO

Con este registro' se Programan: la (DC1) Registro 1de control del DMA 21.4 Reservado Figura Bits BBl 0 0 I BB0 (selectores del ancho de banda parael DMA) 0 : Ocupa el25o/o delIBUS de la CPU 1 : Ocupael 50o/o del IBUS la de CPU 0 : Ocupael 670/o del IBUS de la CPU 1 : Ocupaell00o/odel IBUS de la CPU prioridad, el modo de transferencia, y Ia operacindel DMA, cuando la CPU est en espera(o en modo \AIT); y en uno de sus bits est la banderacue indica cuando la transferencia seha .o-pi.trdo. (Figura21.5). BitDM'\P (selector deprioridaddel DMA y la CPU) 1: El DMA tiene la prioridad, y 0: La CPU tiene la orioridad

DSC $xxxx Bi t TECD (habilitadorde transferencia Bt 7 6 5 4 2 1 B tj 3 del canalo) Lfrr*a DMAP LO DMAWE IFCO l: Habilitado, y 0; Inhabilitado ,,,,,u,,0 Bit lEC} (habilitador de la interrup- Bscl 000000 cin del DMA para la CPU) y control Figura21.5 Registro de estado del Reservado (DSC) DMA 1: Habilita Ia interrupcindel canal0,y

- : prctico curso sobre Microcontrotadores @rcf

, /\ n). (ZOz \ \ "./

BitL0 (bithebilirador del modo de transferencia cclicadel canal0) 1: Habilita el modo cfclico,y 0: Habiliael modo bloque(inhabiael modo clclico) 87 DMA\IE (habilitador del DMA durante el modo \AIT) 1: Tlansferencia habilitada,y 0 : Tlansferencia suspendida BitlFC0 (bandera de interrupcin del canal0) 1: Thansferencia completa,y 0 : Tlansferenciaincompleta 2 decontroldelDMA (DC2) 3. Registro Este registrose usa para configurar las fuentesy el comienzo de la transferen-

4. Registro decontroldelcanal 0 del DMA (D0C) Por mediode los cuatrobix SDC3 a SDCOde este registro, seelculan lasdirecciones base y dela fuente deldatino para elcanal 0. Pormediode1, tambin se configura w btc o una palabra parala uansferencia de datos,sedefinenlasfuentes paral soliciud del DMA, y secontrola el desplazamiento delregistro de dirccionestemporal queel DMAusa comoapunador delbloque.Wr.a 21.7y Tabh 2l.I y 21.2) BitB\IC (bit de control de la longitud del dato transferido) 1: El DMA transfiere datosde 16 blits,v 0: El DMA transfiere datosde 8 bits
nffi 6 5 {3 2 l B t t O

$t

D'c

cia(Figura 21.6) (habilitadores bitsSYIT a S'S7I0 por


softwaredel inicio de transferencia del DMA) 1: Inicia la transferencia, y 0: Bloqueala transferencia
DC2 $xxxx
BITT 0

neset

Estado indefinido despus delreset'.

(IfrC) Ftgun21.7Registo decontoldel canal0 5. Registros fuente del DMA con la direccin

Jfr
I
nosf,t

n6st

base, del canal0 (DOSHy DOSL) Por medio de estosregistros, el canal 0 del DMA ubica la posicinbasedel dato de la fuente antes de iniciar la transferencia. Ledireccin basede I 6 00000 bits segrabaen dos registrosde 8 bits, llamados DOSH y DOSL (parte akay (n2) Fryun 21,6 Registo 2 decontoldel DMA parte baja). (Figura21.8)

#:I

6.R

Fuentes desolicitud de transferencia delDMA porlqentrada delDMA 0 Solicitud

bas Ten tenir alta crih tran

porlaentrada 2 Solicitud delDMA

Lec Escrl

Fesr

porlaentrada 4 Solicitud delDMA


Tabla 2l.l Seleccin detuentes paalaslicifrnl deIa tansferencia desleelDtlA

porlaentrada Solicitud delDMA 6

Locta Escrl

&ln

preco cwso sobc Mtcocontotador,

SDG[3:Ql Direccin fuente Dircccindetino

1010

lncremento Incremento Decremenb

lncremento

1000 0101

Estco

7. Registrode control de longitud del bloque, del canal0 (D0BL) El nmero CIe bynsque serntransferidosen un bloque por el canal 0 del DMA, se controlan esteregistro. desde Al escribirel valor $00 en el registro D0BL sedefine la mayor longitud para el bloque,que esde256 bytes.
DOBL tffi
8,t765 1 321&i l O

Decremento Incremento

001 0

Estico

flgun 21.10 Registro delongitud delblquedelDliM(D0BL) 8. Registro contador de bytes transferidos, del canal0 (DOBC)

0000

Estico

Esttico

del DMA, Taila21.2BiEdecmtol dedirecciones.bas delDtllA Durante el procesode transferencia en el contenido del registro contador de 8 bits D0BC selleva la cuenta del nmero de daBito tos de un blte que sehan transferido a travsdel cand 0.
Se borael rgistodosfl& delrBst D0SL $mx + 1
affi654g2

Bffit:

S0bornd regfrto dospus delrw

Esteregistrocontador sepuedeborrar por tres causas, que son: por un ciclo de reset interno o externo, cuando alcanza la longitud definida para el bloque de datos, y cuandoseescribe una nuevadireccinbase
D0BC $mq 6

fuente o destino. Hgun 2t.Enegistt{ dedireccin base fuenb(Dilsy D[sL)

6. Registros destinodel DMA con la direccin 8n7 base, del canal0 (DODH y D0DL) Teniendoen cuentala direccinde 16 bits conB'oet tenida en los registrosD0DH y DODL (parte
alta y parte baja respectivamente),el cand 0 es-

Soboraelcgbod6spu& dolrasaf

Hgnn,ll

Wo@nffieW^og66AfA@

cribe en la posicindestinobaseel primer dato transferidopor el DMA. DODH $xm


BIt7651

Los modos dedireccionamiento enla familia HC08

En los microcontroladores68HC08 de Motorola hay disponiblesdiecisis modos de direccionamiento que le otorgan una gran flexibilidad y eficienciaal manejo de 56 bona elrgiso dosprsdel ,osrf datos que el programadorpuede efecnrar DODI $m+1 @n estosdispositivos.En trminos de la Btt7 65 f32 CPU,los modosde direccionamiento del MCU sonlasopcionescon que ella cuena del rasaf Se bona elregiso despus paralocalizarlos datosqueserequieren para (nDHy MDL) ejecutarcualquierade susinstrucciones. ga n.9 Registos dedireccin base deslino
521

proosorre cutgo Mtcrwnwadorog err-"

E[urriukl l-]1,(/l tit'tillr+'uloLru.LrLle.LLtc e'trlus LrLlct'uuctrr.llutj.ures 05LiL'Ui] t' lus tLLuuus


Los diecisis modos de direccionamiento son: . Inherente . Inmediato . Directo . Extendido . Indexado sin desplazamiento u ofiet a Indexado con ofret de 8 bits a Indexadoconoffsetde 16 bits a Del SP con ffiet de 8 bits a Del SP con ofret de 16 bits a Relativo a Memoria a memoria. inmediato a directo Memoria a memoria, directo a directo Memoria a memoria, indexado a directo con incremento Memoria a memoria, directo a indexado con incremento Indexado con incremento posterior Indexado con ffiet de I bits e incremento posterior
. CODIGO DE MNEMONICO DE MAQUINA ETIQUETA u opeRncl OPEBANDO COMENTARIOS 4657 AB45 7Z A614 8C AEO3 5Z A630 87 EX-1 LDA ADD DAA LDA CLRH LDX DIV LDA PSHA #$57 #$45 ;A = $57 ;A = $9C ;A = $02 w/ocorreo ;coloco el bit en $102 ;LS dividendo de A ;Borro el l'6 del dividendo ;Divisor de X +=@6 ,H=02 ; (H : A),zX ;A = $30 ;Guordoel doto $30 en ;1o pito y decremento ;el opuntodonSP en 1

l CO

EX_2

#20 #3

5F 8C 35

EX-3

35 75 2e

Figura21.12Ejemplos deinstrucciones delmodode direccionaniento inherente

En la figura 21J2 semuestran trespequeossegmentos de programas en lenguaje ensamblador que son ejemplosdel modo de direccionamientoinherente; con color osen stasedestacan curo las lneasde programa que contienen instrucciones inherenson: DAA tes.Las instrucciones (ajuste decimalal registroacumulador), CLRH (borrar el byteako H del registrondice),y PSFIA (guarda el contenidodel acumulador en la pila).

Nota:

Las instrucciones de direccionamiento inmediato en los MCU HC08 son 18. Son todas aquellasque contienen el operando en los bytesquevan inmediatamente despusdel cdigo de la operacin; los datos inmediatos pueden ser de uno o dos bytesde acuerdo con el tamao del registro involucrado en la instruccin, y pueden representar un valor o apuntar a la direccin de un valor.

zar
C O: uc -

)^.

CP
b'*

c10 ces

Lo, ItI
I CL

e S,

En steyentodoslosdems proEn los MCU HC08 hay 54 ins- gramas escritosen lenguaje enEl programaejemplo que trucciones inherentes.Todas las samblador, seusar el smbolo (#) se muestraen la figura 21.13 instrucciones que soportan este antesde cualquiernmero,para contiene dos instrucciones modo de direccionamiento sede- indicar que es un operando ininmediatas: AIX (suma un inherentes mediato; de acuerdo nominan instrucciones con la sin- valor inmediato con signo al porque no requie- taxis definida por los ensambla- registro ndice), y CPHX y secaracterizan ren un ciclo de busqueda fetch) dores de Motorola, tambin se (compara el registro ndice para el operando, trabajan sobre usarel smbolo ($) antesde cada con un valor inmediato): en registros internosde Ia CPU, tales nmero para representarloen ste, primero se borra el recomo el acumuladorA, el registro notacin hexadecimal. gistro ndice (H:X) y luego se ndiceH:X, el apuntadorde la pila DE cODIGO MNEMONICO DE COMENTARIOS MQUINA ETIQUETA LnopRncrOPERANDO SB y el registrodel cdigode conSTART C LR X 5F ; X =0 dicionesCCR. t principal ven8C C LR H ; H =0 TAG A IX AF01, #L inherentaja de las instrucciones ; ( H : X ) =( H : X ) +1 (H:X) con FF 65FF CPHX #$FFFF ;Comporo tes,esque no requierende un di; $FFFF BNE 26F9 TAG ; Ejecucincclico reccionamiento a memoria y, por ;hosto su iguoldod 20F5 BRA START ;So1too inicio lo tanto, su tiempo de captura y eiecucinesel menor. ,nmediato
Figura 21,13Ejemplos deinstrucciones delmodo dedireccionamierta

ye
ld

l^

rar
-t^ uc

cor la
ES:

ma

dir da dir co ca $0

t^ uc

,t \ | {r d5 &/il<trT").

\., z

prctico curso sobre Microcontrotadores

..

.t

r.

L\]gL

Lr].

CODIGO DE MAOUINA

DE OPERANDO ETIQUETA MNEMONICO LAOPERACION EQU EQU ORG TEMP RT4B ORG CLRX START CLRH STHX LDHX STHX BAD-PART CPHX BNE RAM ROM

COMENTARIOS ;A si gnoci n o 10 R A M : ;A si gnoci n o 1o R OM ;C omi enzo de to R A l t4 ;R eservo 2 bytes ;C omi enzo de 1o R OM

$s0. $6E00
$RAM

cionesque son la basedel direccionamiento extendido.

Las instruccionesllamadas extendidas,pueden acce5F ;x=0 : 8C l ; H =0 der a cualquier direccin del > TEMP TEMP 3550 ; H : X =O #5) ) ) ) H : X c o n $5555 mapa de memoria de 64 Kb;Corgo | 4sssss T EM P ; TEMP=$5555 | 3sso con que cuentanesros miyres RAM=TEMP RAM 7550 | ; BAD-PART o menosque ; RAM=TEMP crocontroladores; todas las ;ocurro olgn error BRA START z0F7 ;Inicio de ruevoel ciclo instruccionesson de 3 bytes de longitud y en ellas el primer delmodo dedireccionamiento directo Figura 21.14 Ejemplos deinstrucciones byteesel cdigo de operacin; aumenta en uno hastaalcan- reconocer oos rnsrrucciones mientrasque los dos siguienzar el valor $FFFF.Cuando la propiasdel modo de direccio- tes son los bytesms y menos condicin de comparacin namiento directo, que son: significativos de la direccin definida por la instruccin STHX (guardarel registro n- efectivadel operando. CPHX es verdadera,el pro- dice en la memoria),y CPHX En todos los ensamblado(compara el registro ndice grama salta a la lnea de inires eficientes,el programador cio (START) y repite el pro- con un valor en memoria). puede olvidarsede definir si cesoindefinidamente. La primera instruccin Ia instruccin es directa o exSTHX Iocaliza la etiqueta tendida, ya que el programa Los MCU HC08 de Motoro- TEMP en la posicin cero de ensamblador autom ticadi- la RAM, y la segundacargaen mente decidir la forma ms la poseen37 instrucciones rectas.En este modo de di- dicha posicinel dato $5555; corta de la instruccin de reccionamientoel primer byte mientras que la instruccin acuerdocon el lmite que est es el cdigo de Ia operacin, CPHX comparael valor con- definido para la pgina cero

$ROM

y el segundoesel bytebajode la direccin efectivadel operando; ya que eI byte ms alto de la direccin se asume como $00 y no se incluye en la instruccin como un byte ms, el tiempo de ejecucin es slo de un ciclo. Por lo anterior, el uso del direccionamiento directo queda limitado a la pigina cero o directa del reade memoria que comprendelasprimeras2561ocalidades(entre las posiciones

tenido en H:X con el de la po- ($ 0 0 F F ). sicin RAM + 1 (en estecaso, E n la f ig u ra 2 l . 1 5 s e RAM +1=TEMP=posiciones

muestran dosejemplos de este mo d o d e d ire c c io n a mie n t o u s a n d ola in s t ru c c i nL DX (carga el bytebajoX del regisde de los MCU tro ndicecon el contenido El programador localidad memoria). una de 16 instrucHCO8 dispone de

$ 5 0v $51=$5555) .

tffllt?,fit ETTouETA coMENTARros oeERANDo T|t#Pill%?dr'


5F BE50 oRG FCB CLRX LDX ORG FCB CLRX LDX $50 $FF $00s0 ;Inicio en $50 ;550 = $FF ; C a r g od i r e c t o ;de1 registro X ;con el doto $0050 ;Inicio en $6E00 ; $ 6 E 0 0= $ F F ;Corgo extendido ;de1 registro X

y $ 0 0F F ). $0000
En el programa ejemplo, de la figura 21.14, se pueden

s6EO0
$FF $6E00

5F cE6E00

Figura21.15Ejenplos deinstrucciones ertendido delmodode direccionamienb

prctico curso sobre Microcontrotadores &ktf";

\ \\.Z
v

E[Luuula l]tA, lus LrLutius lus tulctuc'uLrLiulutiou..s tj.r. rilu,-ccluLriiLu[.'Lri.o e'Lr GSl"iCUi]

tiitl^l^, FC En la familia HC08 hay 29 instruccionespara el direccionamiento indexadosin desplazamiento u offset. Todas las instrucciones que soportan estemodo son de un bytey se usan para accedera datos con direccinvariable,tal como en el caso de las tablas. Las instrucciones indexadas sin ffiet se usan generalmente para mover apuntadoresa travsde una.tabla de datos localizada en memoria.

MNEMNtco DE ETTQUETA LAopERActN JMP

OPERANDO ,X

COMENTARIOS ;SIN OFFSET ;solto o lo ; di reccin ;opuntodopor el ;registro H:X

t;;

l:

1" t__

F Figura2l,16 Ejemplo delmodode direccionamiento indexado sinoffset

Por lo anterior, estedireccionamiento quedarlimitado a lasprimeras256 posicioLas instrucciones para el direc- nes de memoria, pero, sin cionamiento indexado con off embargo,la tabla puedelocaset de 8 bix son 29. Todas las lizarseen cualquier lugar dei instrucciones de estemodo de mapa de memoria al usar el direccionamientoson de dos registro ndice como direcbytes,y al igual que las que no cin base,y el siguiente byte usan desplazamiento; stas como desplazamiento. tambin se usan para acceder En estafamilia sehan dis- a datos con direccin variable. En la figura 21.17 se (H muestracomo ejemplouna lpuesto dos registros y X), Para determinar la direc- nea de cdigo de programa de un byte cadauno, que contienen las direccionescondi- cin efectivadel operando, la que ilustra el modo de direcque seob- cionamiento indexado con off cionales alnay baja del ope- CPU usael resultado tiene al sumar los bytes rando, graciasal registroH, sin sig- set de 8 bits, por medio de la no del registrondice (H:X), instruccin de salto incondieste modo de direccionamiento no queda limitado a con el byte sin signo que prece- cional JMP. las primeras 256 posiciones de al cdigo de operacinde la de memoria, tal como sucede instruccin. en la familia HC05. Estasinstrucciones seusan Para mantener la compa- a menudo para seleccionarel El MCU HC08 tiene l6 instibilidad absolutaentre lasins- dato o elemento n-esimo den- truccionesde direccionamientro de una tabla de k elemen- to indexado con offsetde 16 truccionesde los MCU de Motorola de las familias HCO5 y tos,en estecasoel n-esimova- bits.En estemodo de direccioHC08, el registro H se man- lor deber estar tpicamente namiento todaslas instrucciotiene en cero cuando no se usa en el registro H:X y la direc- nes son de tres bytesy pueden ninguna instruccin que lo cin de inicio de la tabla de- accedera cualquier dato con ber estaren el bytesiguiente direccin variable en toda el afectepor parte del HC08. al cdigo de operacin de la reade memoria;la CPU suma En la figura 2I.16 semues- instruccin. el contenido de H:X con la patra como ejemplo una lnea de oeERANDo coMENTARros cdigo de programa que ilustra TX'#P$l%!|t '.iil?,?^e'ETTQUETA el modo de direccionamiento E.FF rMP $FF'x l35fi5tr3'rtt;tt1tu" indexado sin ofiet, por medio ;opuntado por el ;registro H:X + $FF de la instruccin de saltoincondicional JMP. Figura21.17Ejemplo delmodode direccionamiento indexado conoffsetde I bits

labra que s cin cin

i inde las in misn cion caliz tro d caso los 6

I mues nea c ilustr mien

16 b

de sa

H")' bytes

A" $rdb

\rz

. { ftKt,.i.

prctico curso sobre Microcontrotadores

sicin$10, el SPsehaceigual a $ 1 O + $ F F = $ 1 0y F ,s e ta el decrementode la cin hastacero.


Ftgun21.18 Ejemplo delmodo dedireccionamiento indendo conoffset de16bib

dor de la pila con ofiet de 8 bits. Esremodo de direccionamiento sobreel SPnospermite movimientos gilesdentro de 256 posiciones de la pila, En estedireccionamiento la CPU encuentra la direccin indexadoconofiet de 16 bits, efectivadel operandoal sumar lasinstrucciones seusande la el registroSPde 16 bitscon el misma forma que en el direc- bytequesigueal operando. cionamientoanterior,paralocalizary capturar datos denEn este modo el SP se tro de una tabla,pero, en este puedeusarcomo otro registro caso,con movilidad en todos fndice de la CPU, siemprey los 64 Kbytesde memoria. cuando las interrupcionesestn inhabilitadas. En l a fi gura 21.18 se muestra como ejemplouna llE n la f ig u ra 2 1 . 1 9 s e neade cdigode programaque muestraun ejemplode cdiilustrael modo de direcciona- go de programaque ilustra el miento indexado con offet de modo de direccionamiento 16 bits, usandola instruccin del SP con offet de 8 bits, por medio de las instrucciones de saltoincondicional JMP. STA (guardarel acumulador Direccionamiento delSP en memoria)y DBNZ (decrepointef, (stack con mento de la posicinde medesplazamiento deI ifs moria y salto,si no esigual a Hay 24 instrucciones de tres cero); en este programa se bytesque manejan el apunta- guardael valor $20 en la po-

labraformadapor los dosbytes que siguenal cdigo de operacin para encontrar la direccin efectivadel operando.

Direccionamiento del$B condesplazamento de 16ifs


La milia del MCU 68HC08 tienedisponibles l4 instruccionesparael direccionamiento del SPcon ofiet de 16 bits. Todaslas instrucciones en estemodo son de cuatro bytesy seusanparaacceder a datosde la pila ubicadosen cualquier reade memoria; en estecaso la CPU sumael contenido del SPcon los dos bytes quepreceden d cdigodeoperacin, para determinarla direccin efectiva del operando. En la figura 21.20 se muestraun programade ejemplo que ilustra el modo de direccionamiento del SP conoff set de 16 bits, usando la instruccin LDA (cargadel acumulador desdememoria); en esteprogramael acumulador se cargacon el contenido de la posicinde memoria$250 (SP=5259*$FF=$34F).

*i[$|,tr mqrEil tl#dtrfiF

GorEnAnros opEnAmro
#so1:0f,
;Rei.nicio el quntador ;de 1o pito

Direccionamento relativo

El modo de direccionamiento relativo, en estafamilia de microcontroladores, semaneja con 27 instrucciones. En todaslas instrucciones de salto condicional, la CPU usael d ire c c io n a mie n t o re la t iv o Hgun 21.19 Ejemplo delmodo dedireccionamiento delSP conoffset deI b'tb para determinar la direccin

prctico cwso sbeMiqountotadorcs rr*r#


-1

lastuleluu-cutrulutiorcs [:[urtiulu l]ttA u'tr detj.lt'cculuuuurlc'tri.a Gtiti00li t, lrs urotios


tflRlt?,JDo' ETTouETA oeERANDo coMENTARros T}t#Pill%?|.u'
450t00 94 9ED6O25O LDHX TXS LDA #$OIOO :Reinicio el qcuntodor ide 1o pilo ;en $00FF ;Offset de 16-bits ;Corgo el registro A ;con el contenido

I
I I I I I I

cQ MA

BTS

$OZ5O,SP

_''":11__ _* I
Figura21.20 Ejemplo delmodode direccionamiento delSPconoffsetde 16bits

efectiva (ffi ctiueaddres s; EA) del salto, sta encuentra el destino del salto condicional al sumar eI byte signado (en complemento a dos entre 128 a +127) que sigue al cdigo de operacin, con el contenido del contador de programa (PC). Si la condicin del salto se cumple, el PC se cargacon la EA, de lo contrario, la CPU contina con Ia eiecucinnor-

mal de la prxima instruccin apuntadapor el PC. En la figura 21.21 semuestra un programa de ejemplo que usados instrucciones del modo de direccionamiento relativo: BLI (saltosi esmenor que,operacin signada), y BRA (saltoincondicional); en ste,el contenido del acumuladorsecompara con -2, y y^ que el nmero #1 es mayor que -2, el salto a TAG nunca ocurrir.

En este modo de direccionamiento. el movimiento de un operando inmediato (inmd) a una posicin directa en memoria se hacepor medio de la instruccin de tres bytesy cuatro ciclosde eiecucinMOVinmd; estemodo seusacon frecuencia para inicializarregistros y variables en la pgina cero. La CPU guarda el primer byte que sigue al cdigo de operacin,en la direccinde la pginadirectaque estindicada por el segundobyte de la instruccin. En la figura 21.22 se muestran dos segmentos de programa que ilustran la disminucin significativa,de9 a4ciclos,que resulta cuando no se usael acumulador; stoseilustracon dosoperaciones similares de transferencia inmediata a directade estemodo.

F 86

87t

86,q

4E F

mue

PTO ma( dec yco min el nr cin (de

tfRt?,JXt ETTQUETA oIERANDocoMENTARros TXt#PHl%9rtt


A6OL AlFE 91FA ZOFE TAG LDA CMP BLT BRA #L #-2 TAG HERE : A =1 con -2 ;Comporo :Solto si el volor del lregistro A ;es menorque -2 ;Salto siempre

HERE

de instrucciones delnodo de direccionamiento relativo Figura21.21Ejemplos

Eln men
con

En este modo de direccionamiento, el movimiento de un operancoMENTARr's opERANDo [j?ts3,8[ tlt#g$l%!|t '"B[t|,fi' do directo en memoria a una po* l,lovimiento de dotos con el reoistro ocumulador sicin directaen memoria,sehace ( 2 ciclo s) PSHA B75O ;Guor do el v ol or dl registro A ;octuol por medio de la instruccinde tres ( 2 ciclo s) L DA # SZ Z A6?2 ;A = $22 ( 3 ciclo s) BTFO ST A $F0 ;Guor do e1 doto $22 Aat y cinco ciclos de ejecucin ;dentr o de 10 $F 0 ;pos i c i n MOV dd; estemodo seusapara ( 2 cicto s) PUL A S650 ;R ec uper o el v ol or ;previomente guo"dado efectuar transferencias de datos A ;de1 r egi s tr o -a ei cl os dentro de la paginacero. Ei ope* M o v i m i e n to d e d o to s sin e l r e g istr o o cu m ul odor rando que seencuentra en la posiMoV # SZ Z ,$ FO d E Z Z F O ( 4 ciclo s) ;U bi coci n det doto cin de la p:gina cero, indicada ;$ZZ dentro de 10 ;posicin de memorio '$F0 por el primer bytequesigueal cdigo de operacin,seguardaen la posicinde la pginaceroindicainmediato Figura21.22Ejemplo delmodode direccionaniento a directo dapor elsegundobyte.

cD N
(E

65
45i

23;

35: 80

Fig

&*r*L #

prctico Microcontrotadores curso sobre

'l l . r r - i Lg\]L L.

oeERANDo coMENTAR,os Tl'j[gill%?&' I]iT3,85 '^lR[t',-T


* M o v i m i e n t o de d o to s co n e l o cu m u lo d o r

8750 B6F0 STFI 8650

(2 ciclos) (3 cictos) (3 ciclos) (2 ciclos) 10 ciclos

PSHA LDA STA PULA $F0 $F1

* f4ovimiento de dotos sin el ocumulodor 4EFOFL (5 ciclos)


,illl,

MOV

$F0,$F1

e1 contenido ;Mueve ;de lo posicin de $F0 o 1o ;memorio ;posicin $F1

Este modo de direccionamiento es bastante til para transferir un bffir de datos de la memoria RAM a un registro de transmisin serial, tal como se muestra en la figura 21.24, en donde apareceun segmento de una rutina de atencin a la interrupcin de transmisinserialSCI.

Figura21.23Ejemplo directo delmodode direccionamiento a directo

:!

lr

m-

En la figura 21.23 se muestran dos segmentosde programa que efectanla misma operacinde transferencia de datos directo a directo sin y con el acumulador, y la disminucin correspondiente en el nmero de ciclos de ejecucin que resulta en cada caso (del0a5cicl os).

:r

El movimiento de memoria a memoria indexado a directo y con incremento posterior,se

efecta con la instruccinde dos bytesycuatrociclos de ejecucin MOV ix+d, y se destina generalmente paratransferir tablasde datos apuntadaspor el registro ndice, hasta los registrosde la pgina directa (la tabla puede tener cualquier tamao y estar localizadaen cualquier readentro de Ios 64 Kbytes de memoria). La CPU guardael operando apuntadopor el registroH:X en la pginacero,en la direccin que se indica en el byteque sigue al cdigo de operacinde la instruccin, e incrementael registro ndice despusde cada movimiento.

llf "

I
t I I
I

I zt n j rul[

t'fRt?'JX' ETTQUETA c'MENTARr's tl'#Pill%irPr' 'PERAND'


MOV X+, SCOn

El movimiento de memoria a memoria, indexado a directo y con incremento posterior se efectacon la instruccin de dos bytesycuatrociclosde ejecucin MOV dix+, y se usa comnmente para llenar tablascon registros de la pginacero. El operando apuntado en la pgina cero, por el bytesiguienteal cdigo de operacin,seguardaen la direccin apuntadapor el registroH:X; y la CPU incrementa el registrondice despus del movimiento. Como un ejemplo de este modo de direccionamiento se muestra el programa de servicioa la interrupcin SCI en la figura 2I.25.

EN

lfot
l* l ;itrF

| 65 0O 64 I I 23 0 3 | 45 00 54 | | | |

Las instrucciones CBEQ y MOV son las dos instruccioBLS nes de dos bytesen las que se LDHX soporta el modo de direccioN0L00P PTR-OUT 35 50 STHX namiento indexado sin offset RTI 80 y con incremento posterior. En el registro H se guarda el Figura21.24Ejemplo delmodode direccionamiento indexado a directo conincremento bytede la parte alta de la direcCPHX #TX-B + SfZf N0L00P #TX-B ;l-hsido fimlizodo ;el buffer circulon? ;Si no, continue ;de lo controrio ; reinicie poro ;onroncorel buffer ;Guordoel nuevo ;volor de1qartodor ;Retorno de ;interrupcin

;lvt:we ur ruo,o grte ;ol registro de ;dotos SCI, y iBorro o TDRE ;Posteriormente el ;i.ncremento ;registr"ordice H:X.

prctico Curso sobre Mcrocontrotadores &kr*.,

r=tr [0stuictCIr.ouulution's Etnrduto lltAt, lostuudas tic. tiltrlc"*lannrlr.tlt0 G5tiGtli!


CODIGO DE MNEMONICO DE MAOUII'A ETIQUETA LAOPEBACION SIZ E SCSRl SCDR PIR_JI PTR-IN RLB EQU 16' $16 $18 del buffer ;Tomoo ; ci rcul or ;RE.1 de estodoSCI ;Rsrstrorqbor SO

EQU EqJ ORG

cin del operando, mientras que el byte ms bajo se guarda en X, la suma, es la direccin condicional del operando. Este modo de direccionamiento seusacon frecuencia para buscardatos dentro de tablas;la figura 2I.26 es un segmentode programa que usala instruccin CBEQ (comparey salte si es igual, indexada)parailustrar este tipo de direccionamiento.

ma
MA MA

570 2
Z SIZE

dedotos ;Muntodor
;de solido de1 ;buffer circulor de dotos ;Apuntodor del ;de entrodo ;buffer circulor ;Buffer circulor

* R u t i n o de in te r r u p ci n d e l registro receptorde dotos SCI

55 72 86 16 5E 18

RLITT

ORG LDI.fr LDA l(}v cPf BL5 L}IX STHX RTI

6 swu
?303 45W v
35 52 p

Con las mismas instrucciones, CBEQ y MOV, pero usando el offiet, se puede delmodode direccionamiento directo a ndexado conincremento manejarel modo de direccioFigura21,25Ejemplo namiento indexado con desplazamiento de 8 bits e incretf|lt?,ff' ETTouETA coMENTARros oeERANDo T|to$P$l%?ott mento posterior. Por medio #$FF LDA A6 FF ;A = $FF estasinstruccionesde tres de 8770 STA $10 ;L0C $10 = $FF = MOV 4E7060 $r0, 560 bytes se puede accedera cual;LOC$60 $FF 5F CLRX ;X = cero quier operando con posicin * Compara el contenido del negistro A con el contenido de lo variable,e incrementarel re+ posicin de memorio opuntodopor el registro H:X y solto o TAG * cuondoson iguoles gistro ndice despusde cada operacin,y de la misma forX+,TAG' L00P CBEQ 7r0? ;SIN OFFSET prximo L00P BRA 20FC ;Evoluo_lo ma que en el direccionamien; posrclon TAG 5F CLRX :X = cero to sin offiet,la direccin condicional del operando se obindexado conncremento Figura21.26Ejemplldelmodode direccionamiento tiene de la suma de los registrosndiceHyX.

el opuntodor ;Corgo de SCSR1 ;Lecturo portede1rset ;corD m ruevobrte SCDR ,X+ ;l'l.re/e borroo RDRF ;o SC1, H:X ;e incremento #RLB+ SIZE ;Ho finolizodoel circulor? ;buffer NOLMP ;Si no, continue #RLB ;De10 controrio el ;iniciolico desde del hffer ;ccmienzo P]R-IN el nuevo ;Guordo ;volor del euntodor de 1o ;Retorno ;interrupcin

$6E@ PTR-IN SC5R1

L l
fr

t^fl[t?,.ff' ETTQUETA coMENTARros oIERANDo TXSPHI%?P'E


Este modo de direccionamiento se usa tambin para localzar datos dentro de ta+ Comporo el contenido del registro A con el contenido de 1o blas;la figura 21.27 esun seg* posicin de memonio opuntodopor el registro H:X + $50 y solto * o TGI-cuondoson iguoles mento de programa que usa DE 8-BITS la instruccin CBEQ (compaL00PZ CBEQ 675002 $50,X+,TG1 ;0FFSET 100P2 BRA 20FB ;Evolo.lo prximo re y saltesi es igual, indexada ; posrcron TG1 TG1 BM ?OFE rFinolizo y con ofrtt) para ilustrar este indexado cln offsete ncrementl tipo de direccionamiento. Figura21.27Ejenplodelmodode direccionamiento
A6 FF B7r0 4EL060 5F LDA STA MoV CLRX #$FF $10 $10, $60 ;A = $FF = $FF ;L0C $1-0 ;LOC$60 = $FF ;X = cero

t.

P
o n e

klr"i.

prctico Mictocontrotadores curco sobre

La conexiny comunicacinde un microcontrocon dispositivos elecladorcon microprocesadores, de difetrnicos,y con otros microcontroladores rente tecnologa se y velocidadde procesamiento,
nace gracras a las lnterrupclones.
t.l'

Por medio de cualquiersolicitud de interrupcin, de la CPU detienetemporalorigeninterno o externo, mente la ejecucindel programaprincipal mientras ejecutael programade servicioa la interrupcin.
prctico curco sobre Microcontrotadores &kr =t #

LIna caracterstica importante de los micro- la ejecucinde una secuencia de cuatro tareas esla por parte del mdulo de interrupcionesdel controladores, debidaa las interrupciones, ex- MCU; ellas flexibilidad en la conexincon dispositivos son: y rango,ascomo ternosde cualquiertecnologla con otrossis- . Reconocimiento tambinla facilidadparaintegrarse de la fuentede interrupcin . Evaluacin diferentes. del nivel de prioridad (arbiuaje) temasde caractersticas . Almacenamiento del estado actualdel microcontrolador Bajo condiciones de operacinnormal, la secuen- . Bsqueda ejecuta del vectorde la interrupcin CPU08 delosmicroconuoladores del procialmentecadauna de lasinstrucciones En la figura 22.1 semuestranlas tareas esnecesaque gramaprincipd; pero,con frecuencia, rio abandonarel programaprincipal y ejecutar, la CPU08 ejecutadurante el procesamiento de y lo- una interrupcin; en ella seincluyen,adems determinadas de un conjunto de instrucciones de operaciones, los tiemposdel bus calizadas en un reade memoria conocida,en la secuencia respuesta a la solicitud de interrupcin hecha interno en que cadauna sedesarrolla. exterperifricos desde uno o variosdispositivos la solicitud para ilota: nos e internos. Generalmente, la ejecucindel programa,o rutina de servicioa El resetexternoo interno, esla interrupcin prinla interrupcin,llegaral MCU fuerade sincro- cipal del microcontroladory seusaparainicialidel zar los registros principdes;no esenmascarable, nizrcin con los tiempos de procesamiento cdigo de operacinde la CPU, y su solicitud goza del ms alto nivel de prioridad y por este motivo la atencina su solicitud de interrupcin en el menor tiempo posible. deberatenderse esla msrpida.Estoselograporqueel mdulo Motorola con de interrupciones, En los microcontroladores al procesar el reset, slo efechasta128 interrup- ta dosde lascuatrotareas que serequieren tfpiCPU08 sepuedenprocesar dentro de stas camentepara el procesamiento de las interrupcionesde maneraindependiente; como el RST y cionesgenerales, que son: el reconocimientode seincluyen:las fuentesexternas internas como la fuente de interrupcin y la bsqueda del vecIa interrupcinIRQI; y lasfuentes tor correspondiente. il. las interrupcionespor sofiware puedenserenCasitodaslasinterrupciones no, como por y soloalgunas pocas mascarables, se manejan Las enmascarables ejemplo el reset. desdeel sistemaperifrico interno destinado paratal propsito,por medio del bit que controla la mscara global de las interrupciones (Bitl), el cual estlocalizadoen la tercera posicin del registrodel cdigo de condiciones (CCR). Todas las interrupcionesse habilitan cuando exe bit esten cero lgico.

cf, BIE

rrl

Reconocimiento dela fuente de interrupcin


En el casodel reset, el reconocimiento no essincrnico con el procesamiento de la CPU, y es inmediato; mientrasque la sdida de esteestado de interrupcin siempreestar sincronizada con los ciclosde ejecucindel bus interno. Las demsinterrupciones siempresernreconocidaspor la CPU08 solamentedurante el ltimo ciclo, de ejecucin de cadainstruccin,y cualquiersolicitud de interrupcin que se haga en esteciclo, serignorada,y slo se volvera considerarhastael ltimo ciclo de la prxima instruccin; claroquela CPU08 conlo quequeda nunca detienela ejecucinde una instruccin

enla Procesamiento deinterrupcones CPUOS


departede cualquierfuente Ie solicitud efecruada se atiende de de interrupcin, exceptoel reset, que se obtienen tras acuerdocon los resultados

<tz, #
!

prctico curco sohre,icrocontotadores

t t
I I

I
+ l

NI'MERO DE DEt ctcLos BUS ll'lTERt'|O

paraatenderuna rutina de interrupcin normal (solamente cuando se estusandoel mdulo DMA, ste la operacin puedesuspender de una instruccinen la CPU paraatendera un dispositivo perifrico). Al reconocer una interrupcin, la CPU08 cargael registro decodificadorde instrucciones con el cdigo de operacinasignadopor sortware que le corresponde a dicha interrupcin (SWIx), en lugar de cargarel cdigo de operacin de la quedebihabersidola siguiente instruccinen el programa.El contadordel programa(PC) esel otro registroque sealtera cuandosereconoce una interrupcin, a stese le restauno antesde ser guardadoen la pila, ya que, debido al mecanismo de prebsqueda del cdigo de operacinde la CPU, siempre estapuntando a la direccin de la prxima instruccin ms uno.

rZ + 6

EU

E = u

efi

Evaluacin delnivel deprioridad (arbitraje)


Todaslasinterrupciones de resetpor defectotienen la mismay la msalta prioridad, por lo tanto para ellasla CPU08 no efectala operacin de evaluacin del nivel de prioridad, que selleva a cabo durante el procesamiento normal de las otrasinterrupciones. Todaslas interrupcionesque llegan al microcontroladorsimultnearnente, sonsometidas al procesode evaluacin del nivel de prioridad (SIM), en el mdulo del sistema de integracin y ste,se basaen el orden de prioridadesde los vectores quesemuestranen la tabla 22.1. Como resulmdo, el mdulo SIM obtieneun valor constanteque en su momento utiliza paralocalizarla direccinefectiva del vectorde interrupcin que debeserbuscado, parapoder atenderla rutina de servicio.
' Lasinlnuocionos oueodlmn anbsde eS nb sercdwl

=
F

E
= rH
EeE F

= u

Cuandola CPU reconoce una fuentede interrupcin,el correspondiente bit de sealizacin (flag o bandera)del registro de estadolo Figura 2.1 Secuencia deoperaciones delprocesamentoindica al ponerse en uno lgico; el diseador
deunainterrupcin

prctico curco sobre Microcontotadorcs rr*#

LasIutettuIt:[uuesenlus Lulu'La ntu latiu Lr,.s 0l]tiL'U ua


del programa es el responsable de borrar (o colocar en cerolgico) el sealizador, luego de ejela rutina de serviciosolicutar apropiadamente citada por la interrupcin.

FFFE FFFC FFFA : FFOz FFOO

Reset SWI rRE0[0] rREo[124] rREO[125]

1; 2 3;
: 127 128 :

salir de ella. El orden de apilamientode los registros es:primero el contador PC, luego el ndice X, el acumuladorA, y el registroCCR; mientras que el orden de recuperacinde los registrosde la pila, de acuerdo con su estructura LIFO (Lcut In First Out), esal contrario: primero el CCR, y despus,en orden, los registros A, X, y PC. En la figura 22.2 semuestran lassecuencias de apilamiento y descarga de los registrosde la pila, tal como la CPU08 las ejecutaantesy despusde atendercualquierinterrupcin.

I inter bit I ltin


COli i

defin cin. tran, cin

Tahla 22.1 Tabla deprioridad de las de niveles delos vectores interrupciones de la CPU08

Parapreservar de retorel estadodel MCU despus nar de una rutina de servicio de interrupcin, la en la pila los principalesregistros CPU08 almacena al antesde atender la interrupcin, y los descarga

La nica interrupcin que no es enmascarable es el reset, las dems interrupciones pueden ser habilitadase inhabilitadaspor medio deIbit que controla la mscaraglobal de las interrupciones (Bitl),localizado en el registroCCR; o por medio de los bits de las mscaras individuales de los registrosde control de los perifricos.

Orden de descarga

I I
5 4 3 2 1

a a

1 2 3 4 5

PAR Apil Par HCO nes sali

REGISIRO DEL CDIGO DE CONDICIONES CCR REGISTRO ACUMULADOR A ( REGISTRO ITIOIC X BYTE BAJO)REGISTRO C0N[AD0R DE PROGMVIA AT0 PCtl REGISIRO DE PROGMVIA, CONIADOR BAJO PCL

Usa elco seil

de ; Orden apilamientoi

li L --_, .o (

-*i

por Direccin defecto reset del


altodelregistro ndice H noseapila - Elbyte

$OOFF

principeleen la pila y descarga Figura22.2 )rden de apilamiento de losregistros

rdb @<t"}. \\ .,/

prctico curso sobre Microcontrotadores

::,,:.:r.nr..: ;,.,,'it$,;t}-$$._..W. TOfi.,;, i:.


Para permitir la ejecucin anidada de las interrupciones en espera,la modificacin del bit I se efecta al menos un ciclo ntes del ltimo ciclo de la instruccin u operacin, con esto se garantiza que su estado est ya definido antesde ejecutar la prxima instruccin. En los tres ejemplos siguientesse ilustran casostpicos de reconocimiento y ejecucin de interrupciones. Como primer ejemplo, en la figura 22.3 se muestra que, si la interrupcin se reconoce durante la ejecucin de la instruccin CLI, la CPU08 saltara ejecutar la rutina de servicio de la interrupcin, y al terminar, regresaral programa principal a ejecutarla siguiente instruccin LDA.

,l

tar que, durante cada instruccin de retorno RTI, la CPUQ8 busca Figura22.SEiecucindeintenupciones

En el segundo ejemplo,de la figura 22.4, se muestrala eiecucin anidadade dos rutinasde serviciode interrupciones INT1 e INT2; en este caso lassolicitudesde interrupcinpuedenllegar Programa principal al mismo tiempo, o la segunda (INT2) llegardurantela ejecucin de (INTI). En cualquier la primera caso la interrupcin INT2 seratendida solamente al terminarla rutinadeservicio de la primera. INT1:

Rutina deservicio delainterrupcin Tambin es importanre ano-

PARA SABER MS: Apilamiento compatble laCPU delosprogramas conlafamilia deMCU 68HC05, delafamilia Para mantener lacompatibilidad Hdurante registro ndice alto elproceso deatencin a las interrupcionoapila del HC08 elcontenido y recuperar y y porlotanto, deguardar registro nodebe olvidarse este alentrar nes, elprogramador delainterrupcin. respectivamente delarutina deservicio salir para y descargar y PULH delrea PSHH elmanejo delapila, sepuede apilar lasinstrucciones Usando para preservarlo acceso H durante el a una rutina de interrupcin, talcomo registro elcontenido del segmento decdigo, seilustra enelsiguiente
IRQINT PSHH

elcontenido enlapila delregistro H ; Seguarda

RUTINA DE SERVICIO A LAINTERRUPCIN

puLH
RTI

delapila elcontenido H delregistro ; Sedescarga principal alprograma ; Retorna


prctico curso sobre Microcontrotadores &rtr'r.#
I

LasIn,'ttu ulu nc's nilulatiu utrlos trt:t uuru tr,.s GU ttt'0ii r

-l
I l- erogrura I prNtpi I I Al terminarla ejecucin de la rutina de servicio de la interrupcir: ' y an dentrode sta, sedebeubrcarla instruccin de rerorno de interrupcinRTI; staseencarga de

finalizar la ejecucin de la rutin de servicio y devolver el apuntador de programa al progran:" !Ml.^,^ HUna 0e iruio"ielu principal, para continuar con 1", intenupcin tareasinterrumpidas. Esta instruccin tambin se encargade ordenar las operaciones PSHH de apilamiento y descarga de todos los registrosfunamental"es para que S]3'^ ,^ Hullnaoe ,,,un el MCU reanude la ejecucin deservio e la PULH intenupcin programaprincipal,exactamentee: RTI el lugar interrumpido, y con lasconFigura 22.4Ejecucin anidada deintenupciones enespera diciones que traa Ia CPU. Adicionalmente borra el bit de control de la direccin de la siguiente instruccin del todas las interrupciones, y las habilita cadavez programa principal (LDA), aunque en el caso que descarga el registro CCR de la pila. del retorno de la INTI. slo es una accin redundante. El tercer ejemplo, de la figura 22.5, nos muestra que, si una fuente de interrupcin se detecta durante la ejecucin de la instruccin CLI, staseratendida antes de colocar en uno lgico el bitl del registro CCR, e inhabilitar o poner la mscarasobretodas las interrupciones. El mdulo de interrupcin externaIRQ, maneja y nos permite controlar la operacin de sta por medio de sus registros.Este mdulo completo semuestra en el diagramade bloquesde la frgara22.6;y lascaractersticas con lasque cuenta en los MCU de la familia HC08, son: . . . . . . lJn pin de entradaexternapara la interrupcin IRQl Bits de control para la entrada IRQI lJn b"ffi, de entrada con histresis Entrada con sensibilidad programable por flanco, o por flanco y nivel Reconocimiento automtico Selector programable de resistenciainterna

cLl sEl

I
q

PSHH : PULH RTI INT1: Rutina de dela servicio intenupcin

depull-up

Al aplicar una sealcon nivel bajo (un cero lgico) en el pin IRQ1 del microconrrolador,se activa la solicitud de servicio de la interrupcin y reconociniento la Figura 22.5Ejecucin dela intenupcin durante externaen la CPU y sealmacena en el ltch IRQ1. instruccin ejecucin deuna

$r:fu&kr*LcurcoprcticosobreMicrocontrotadores

\d

L|:U L L.

(-)O

-Q
.=o o'-

O
7iY @o xe .!o 6 E
E

LJnavez reconocida la interrupcin, el htch permanecer en uno hasta que ocurra alguna de las siguientesoperaciones: 1. La bsquedade un vector: el reconocimiento de otra solicitud de interrupcin oritl l, i ' ginar Ia bsquedadel vector correspondiente, y durante esteciclo, el ktchIRQ serborrado.

2. Un borrado por sofiutare ste


puede usarsepara borrar el estadomemorizado de la interrupcin, si se accede el bit de reconocimiento (ACKI) que haceparte del registrode estadoy control de la interrupcin INTSCR. Al escribir un uno lgico en ste,se borrael htch IRQI.

3. La ejecucin deun resef,esta


operacin tiene dentro de sus tareasel borrado del latch de la interrupcin externa IRQI.

4 . El pin de entrada tnqt

=" 3 ;d! -F=

c' -

3Eq

r. inactiva si se coloca en nivel lgico uno, y si previamente se ha configurado su sensibilidad por nivel; bajo esta condicin, el latchlPtQl ser borrado.

l0 stNotccluto t0 oNUlrNt sn8


deintenupcin externa lRl Figura 22,6Diagrama debloques delmdulo

La entradade la interrupcin ext.r.r"IilQl esactivaen nivel bajo, y por defectorespondea los flancos de bajada.Sin embargo, por medio delbit de control del modo de disparoMODEI, propio del

pretico curso sobre Microconttotadorcs &iUrr't

Con l, indica que la solicitudde interrupcin IRQ1 est pendiente. Cuando el disparodel pin de interrupcin se Con 0, indica que no hay solicitud de interru configurapor flancode bajada la solici- cin IRQI pendiente. solamente, tud de interrupcin en la CPU semantieneactiva hastaque ocurre la busqueda de un vector,o un A(-K I : esel bit de reconocimiento de solicitud borrado por softutare, , la ejecucinde vn reset. de la interrupcinIRQI, esde sloescrirura, y Pero,cuandose hayaconfiguradoel disparode nos permiteborrar el latch de la interrupcin. la interrupcinpor flancode bajada y nivel bajo, Este bitinterruptor seusacon frecuencia en ejela solicitud de interrupcin en la CPU seman- cucionesanidadas que requierenborrar el latch tendractivahastaqueocurrala bsqueda de un IRQ por sortware. El ciclo de reset siemprelo vector,o un borrado por sortware, o la ejecucin POne en cero. de un reset, , el pin de la interrupcin regrese a su condicininactiva(uno lgico). Con 1, seborra ,t toirt de IRQ. IMASKI : a el bitde mscara de la interrupcin IRQ 1;esdelectura y escritura, y nospermitehabiEn la figura 22.7 semuestra el registrode estado litarla o inhabiliarla. Luego delresa seborra. y control dela interrupcinIRQ, llamadoINTSCR. Por medio de esteregistrosecontrolay su- Con l, se inhabilita o enmascarala solicitud pervisa la operacindel mdulo de interrupcin de interrupcinde IRQ1. externaIRQ; a travs de l sepuedendesarrollar Con 0, sehabilita la solicitud de interrupcin lassiguientes funciones: de IRQI. 1. Sevigila la banderade estadode la interrupcin IRQFI 2. Seborra el ktch IRQI de la interrupcin o se inhibe el servicioa la 3. Se enmascara interrupcin 4. Secontrolala sensibilidad del disparodel pin de interrupcin FQt Los bitsde control y estado.., .l ,.girtINTSCR estndefinidoscomo sigue:
Direccin Nombre deregstro $0010 Lectra: BitT

registroINTSCR sepuedeprogramar la sensibilidad del disparo'en dichaentrada; este modo puede configurarse en una de dosformas:prael disparo por flanco de bajadasolamente, o parael disparo por flancode bajada y nivel bajo.

IR(J['i . esel bit dela bandera deesadode la interrupcinIRQI, esdeslo lecrra, y nosinformael esadodelassocitudes de intemrpcinpendientes.

y control Registro deestado dela interrupcin lR0(lNT$tR)

\'lODEl : esel bit de modo de disparo que manejala sensibilidad de la interrupcinIRQI, es de lecturay escritura,y nos permite configurar la sensibilidad del pin de interrupcintRQi. nl resetlo borra. Con 1, seactivala solicitudde interrupcinpor medio de un flanco de bajaday un nivel bajo. Con 0, seactivala solicitud dejnterrupcin solamentepor medio del flanco de bajada.
6

rf

Los dad te la tale yL \ la a la c< El r


maf

y corrfol Regiso deeshdo delainterrupcin lRO Escritura: (ITSCR) Beset 0

00 establecer Sn

I
rr #

y control Figura 2L7 Registro deestado delaintenupcin nA WTSCR)

ded rrul

d"t

prctico curso *icroconfrotadores sobre

Los mdulos especiales, que vigilan la ejecucinapropiada del sofiware del microcontrolador y lo protegendurante las condiciones anormales del voltaje de alimentacin, talescomo los mdulos COP (computer operating properly) y LVI (low uobage inhibit), se han incorporado dentro de la arquitecturade los microcontroladores para aumentar la confiabilidadde estoscircuitosintegrados. El mdulo que maneja las interrupcionesdedicadasal manejo de teclados,y que facilita para el usuario la tarea de decodificarmatricesde teclas,esel KBI (keyboard interrupt module); y esotra herramientade mucho uso, ofrecida por estafamilia de microcontroladores.
prctico Curco sobre Miuocontrotadores &kt": #

\fl

Lusurriutus es1:eelule.s tielb't!ti00i!: C0tr, LVt, tGt


que el registro conrador del programa PC sealtera y el orden de ejecucindel programa se pierde. ocasionandoun comportamiento errado o inesperado del MCU. Dentro de lasprincipalesy mrs frecuentescausas que pueden hacerque la secuencia de ejecucinde una rutina o programa sesalga de su curso,seencuentranlas siguientes: . . . . Diseo de algoritmos incorrecros Vectorizacininapropiada Ejecucin de instruccionesde salto fuera de rango Alteracin de registrosy banderaspor ruido elctrico inducido . Modificacin de registrosdurante la conexin y desconexinde la alimentacin Paraevitar que el temporizador asociadoal mdulo COP, genere un ciclo de reset,se debe borrar peridicamenre y antes de su desbordamiento; esto se debe hacer en uno o varios lu-

Bajo el mismo concepto operativo del perro guardin (watchdog) que se ha venido incorporando en todas las arquitecturasmodernas de los mi(MPU) y los microconrroladocroprocesadores res (MCU) de otros fabricantes, la familia 68HC08 de Motorola nos ofreceun mdulo que forma parte de la arquitectura de estosMCU, y que es el encargadode facilitar al programador la tareade vigilar que la ejecucindel programa residenteen la memoria del dispositivo seaefectuada en forma cclica y sin interrupciones. El mdulo de operacinapropiado de la computadora (COP), ha sido diseadocon un conrador de carreralibre que seencargade generaruna sealde resetinternaen la CPU08, cada que se desborda su capacidad de conteo.EL COP ayuda aJ, sortwarea recuperar su flujo normal cadavez
SIM 2OSCOUT

gare truca este i rizad su bc tica :

En I: ques en el
UfI ti

cont intes rra p dar zact 2a ct depe rem regis

a o
F

U
J- '

oPC del r riod


J U

FUENTES INTERNAS DERESET BSOUEDA DE UN VECTOR DERESET ESCRITURA DEL COPCTL

. cc
co

.
co z. U o co u o

RELOJ DEL COP MDULO cOP CONTADOR DEL DE6 8/IS COP (Desde COPEN SIM) (Desde C0PD CONF|G1) RESET Escritura delC0PCTL Selector derango del (COPRS COP del c0NFrGl ) Figura23.1Diagrama debloques delmdulo COP CONTADOR DEL COP

Por mc inic i-P rrar bits vari ma. borc

Enl inte CPI

20 CO PO

dac lita< lect

&kn.i.

prctico curco Microcontroradorcs sobre

garesestratgicoldel programainsertandoinstrucciones que coloquenen cerosel registrode estetemporizador.La caracterlstica del remporizador de carreralibre garantizaque, luego de su borrado,la temporizacin de forma automtica seinicia nuevamenre.

Estasealesla salidadel mdulo osciladordel MCU, y su frecuencia esigual a la del cristalde cuarzn elegido,o a la de la red RC establecida.

En la figura 23.I semuesrra la estrucrura en bloquessimplificadadel mdulo de vigilanciaCOB en ella sepuedeobservar que su contadorposee un registrode 6 bits,y que estaprecedidopor el contador de 12 bits del mdulo del sistemade (SIM). Si el programador integracin no lo borra por sofiware, el contadordel COP sedesbordary activarunciclo de reset fuerade sincronizacindespus de haberejecutado2r, - 24,o 2t32a ciclosde reloj de la seal2OSCOUT y esro dependedel estadodel bit selecror de rango del temporizador(COPRS), que seencuentraen el registrode configuracinnmero uno. Cuandoel programador ha seleccionado la opcin de desbordamiento a los 21s- 2a ciclos del reloj 2OSCOUT seobtendrel miximoperiodo de temporizacin, lo cual significaque, por ejemplo,si usamos un cristalde 8MHz, el mdulo generar un reset cada32,766ms.Para inicializarde nuevoel temporizador del COP e impedir la ejecucin del reset, es necesario borrar los registrosde los contadoresdel COP (6 bits) y del SIM (12 bits) por medio de una o varias instrucciones ubicadas dentrodel programa, antesde que se cump.lael tiempo de desbordamientoprogramado.
t- .r: il'tl*i,::; ,-!i',: r'dr,it', '; i,""'

Pormediode este registro sepuedenborrarlos contadores de los mdulos COP y SIM que intervienen enel temporizador devigilanciadel programa; paraello solamente serequiere escribir un valor cualquiera en el regisuoCOPCTL, usando algunadelasinstrucciones deescritura que forman partedel conjunto de instruccionesdel microcontrolador. En la figura 23.2 semuestra el registro decontrol del mdulo COP (COPCTL); sre seencuentralocalizado en la posicinde memoria y sesobreescribe $FFFF, en la partebajadel vector del reset. La escriturade un nuevovalor en esreregisrrodeterminael inicio de un nuevoperiododevigilancia por parredel temporizadordel COP. En cualquier caso, lalecna delregisrro COPCTL obligara la CPU a devolveral programadorel contenidode la partemsbaja(el hytemenos significativo) del vector del res,que tambin estubicadoen la posicin$FEFF
| . ti .t. " ',t. i,ilr !,i,,;, i { ";it

En la figura23.1puedenverse las seales que intervienen en el mdulo COP de la CPU08; stasson: la entrada de reloj $FFFF 2 O SCO U T, la entrada de escritura Direccin: BitT COPCTL, la sealde reset a la conexin Lectura: POR, el resetinterno, la sealde bsqueda del vector de reset,lasealde inhabi- Escritura: Beset Noesafectado litacindel COP (COPD), y la sealselectoradel rango del COP. Figun 23,2 Registo decontrotdet moduto Clp (CI?CTL)

Dentro del mdulo SIM seencuentrael circuito que sopoftael reset alaconexin (PowerOn Reset, POR); en estecaso,l seocupade generaruna sealque borra el contador del SIM al anscurrir4.096 periodos de la seal 2OSCOUT )uegode haber conecado )a djmentacin del MCU.

prctico curco sobre Miuocontotadores &tn#

LUty lGt Lusnrtiulus delb't!liG0ti: G0P, eqlcciales


esel bit selector del rangodel periodo del temporizador, y trasla ejecucin de un ciclo de reset serborrado.

Losdoscontadores queintervienen en el tiemtrasel del COB sonborrados po devigilancia reconocimiento y la ejecucin de cualquierciclo de resetinterno.

Conl lgico:el periodoprogramado ser(213 - 2a) X 2OSCOUT ciclos. (218 Con 0 lgico:el periodoprogramado ser - 2a) X 2OSCOUT reset se ciclos. Cuando la direccinde un vector de se inicia un colocaen el bus de direcciones, esel bit quenospermitehabilitaro inhaciclo de bsqueda del vectory con stesebobilitar el mdulo COB y su estado sercolocado rrarel contadordel SIM. en ceroluegode la ejecucin de un ciclo de reset. La entradaCOPD esun reflejodel estado del nmerouno bit0 delregistro deconfiguracin (CONFIG I ), llamado tambinCOPD, y por medio del cual seinhabilitala operacin del temporizador del COP. Con 1 lgico:el mdulo COP serinhabilitado. Con 0lgico: el mdulo COP ser habilitado.

Finalmente,vale la penaanotar el comportamientodel mdulo COP durantealgunos de los estados de operacinms importantesdel microcontrolador.En el modo monitor y en el modo de interrupcin(BREAK),el COP esauinhabilitadocuandoel pin IRQ1 Por medio de estaentradadel mdulo COP tomticamente lo RS-Tes puestoen un nivel de voltaje igual a sedeterminael rango de los contadores, de ope- Voo * V",. Sin embargo,no ocurrelo mismo cual, de la mano con la frecuencia del MCU (modo racin,nos permitedefinir el mximo pe- durante el estadode espera riodo parael temporizadorvigilanrc.El bit \IAIT); en esteestadoel COP no se detieney de debeusarse una rutina de interrupcinparabo7 del registroCONFIGI es el selector su contador. rangodel COB llamadoCOPRS;y su esta- rrar peridicarnente do se informa al mdulo COP a travsde En el otro modo de operacin de bajo conestaentrada. sumo,conocidocomo estado de parodel MCU del SIM seborray la En la figura 23.3 se presentael registro (modoSTOP),el contador de entrada de reloj del mdulo COP (2OSde co n fi guracinnmero uno (CO N- seal la s COUD sedesconecta. FIGI) de la CP U08, y se describe n funciones de los dos bits que se involucran en el funcionamientodel mdulo COP, COPRS y COPD. Cuandoelvoltaje dealimenacincae abruptarnente, o el microcontrolador se somete a Direccin: $ffilF conexiones y desconexiones rpidas, esproBtO Bt76 54321 bable los registros que datos de y banderas Lectura: de estadoresulten alterados;esto sucede Escritura: cuando la CPU08 pierde la alimentacin Beset 0 00 duranteel transcurso del proceso de ejecuReservad cin decienas instrucciones, queinvolucran (C1NFlGl)el movimientode datosdentrodel MCU. Figura 23.3Primer registro deconfiguracin

conu mon sente Iador volta el inl pued rio, ser ta

I bloqu esten de ref pales pued voltaj

1l

I inhib micrc d cu mien dulo direc

Toda cion

irrrn

prctico Microcontotadores curco sobre

voo

losregistros CONFIG 1 y CONFIG 2; a continuacin sedescribirn los bits queintervienen en 1. En la figura23.3 semuestra el registroCONFIGI, mientras que en la figura 23.5 sepuede apreciar el registro CONFIG2. esrebit penenece d registro CONFIGl, se encuentraen laposicin delbit4,y LVI REsEr es el interruptor de habilitacin del inhibidor por voltaje bajo. Su condicin siempre sercero luego del reset. I

V>LVITp=0
V 9 3 L Vl T p = 1

Hgun Zl,4 Diagnmade blquesdel porvoltrje mdulo inhibidor bajo LW Con I lgico: el mdulo LM se inhabilita. Con 0lgico: el mdulo LVI se habilita.

Con el propsito de evitar esto,los microcontroladores 68HC08 poseenun mdulo que monitoreacontinuamente el nivel devoltajepresenteen el pin de alimentacin del microconrrolador Voo, y generaun ciclo de reset cuando el voltaje crepor debajodel umbrd definido para el inhibidor (LW tip uobag). El circuito LVI puedeserhabilitado o inhabilitado por el usuario, y el umbral de voltaje del inhibidor puede sertambinseleccionado por el programador. En la figura 23.4 se muesrrael diagramaen bloques dela estrucnua delcircuitodelmduloLM, este modulo contiene (bandgap) un circuitoespecid dereferencia y un comparador, comopartes principdes, y por medio de el bit de conuol LMD se puedehabiliar o inhabiliar el circuito detectorde volaje dedimenacin bajo,cuandosecolocaen 0 I lgico, respectivamente.

estosdos bits pertenecen al registroCONFIG2, y por mediode ellossepuede programarel umbral de disparodel voltaje del mdulo inhibidor (LW trip aobag). Por medio de un ciclo normal de resetsuestado no ser afectado; sin embargo,cuando el reset es generado por el PO& ambosbits sonbonados. En la tabla 23.I se muesrran las opciones de seleccin que puedenelegirse por medio de estosdos irs.

i'!

i.

Pormedio delosbit deseleccin del volaje de inhibicin el programador le define a la CPU del microcontrolador cual serel nivel de volaje al cualseproteger, y generar la senlde rcset, Direccin: $ffilE mientras queparaacrivar elcido detesa el mBt7 dulo LM tiene la salidaLVI resd qtrc afecra Lectura: direcamente ala CPU. Escritura:
..:
i. I

Como unaheramiena degranutidadparaelprogramador, y teniendoen cuentael usofrecuente de los microcontroladores en lasinterFaces de teclados mauicides,los MCU de CItafamilia induyen un conjunto de sieteintemrpciones ercemas que pueden serenmascarables y esdn accesibles a uav6 de lossiete primeros pines delpuenoA (PIAOa PIA@.

Beset

oofooo 0 0 :';r$i{l"T;,S.10 ""-6 :i,r*fi..;

POR: 0

Todaslasacciones de control sobrelasfuncionesdel mdulo LVI se efectandesde

Inurrr.oo
Flgun 23,5 Segundo registro (C1N1G2) deconfiguracin

prco cutso sobre Mtcocottbotadorcs &t;#

Lus urtlulus esreeiales detGtiG0l!: LVt' C0tr, tiBl

-T
En la figura 23.6 se ha representadode manera simple el circuito que consrituye 0 0 Vy6 (2,aV) Para el mdulo KBI; all se muesrra que por medio de los bitsKBIExdel registrohabi= 3v (2,4V) 0 1 Vyp3 Para vDD litador de las interrupciones para teclado 1 (4,0V) Vyq5 0 Para (KBIER), se habilitan o inhabilitan independientementecada una de las entradas 1 1 Reservado del puerto A disponibles como interrupTabla 8.1 Tabla deseleccin delumbnldevolbie deinhibicin delmdulo LW cionespara teclado.Al habilitar alguna de estas entradasde interrupcin, tambin se Las principales caractersticas del mdulo habilita la resistenci a pull-up que le corresponde KBI son : independientementedel estado delos bits del redel puerto A 1. Posee sieteinterrupciones activas en nivel bajo, gistro de control de las resistencias disparo con entradas enmascarables independientemente y tambin de manera global. 2. Tiene configuracin por sofiwarede las resistencias de pull-up en cada entrada de interrupcin. 3. El nivel de sensibilidaddel disparo de la interrupcin puede ser seleccionadopor flanco solamente,o por flanco y nivel. 4. Todas las entradasde interrupcin para teclado represenran un medio iftr rp"r" r".", de cualquieiade los "l -icrocontrolador estadosde baio consumo STOp v \WAIT.

I LVrTl LV|T0|

Voltaje de

Comentarios

ners licitt terru sta otras


C2fI

lecci

Pues reco susF

(PTAPUEx).

Cuando una entrada de interrupcin para teclado eshabilitada, y recibe un cero lgico por el correspondientepin, inmediatamente se memoriza e inicia un procesode reconocimiento y solicitud de interrupcin, y el modo de funcionamiento del KBI define que cadavez que uno o ms de sus pines de entrada se ponen en cero, luego de haber estadotodos en nivel alto, sememorizaruna interrupcin por teclado. L? sensibilidad al disparo de la interrup. cin del teclado que se haya programado en el respectivobit de control (MODEK) debe te-

El re nes I habi to d, tipo sus inter

CR. de Ic

solic dien lo bc

Figura 23,6 Diagrama enbloques delmdulo deintenupciones para teclado KBI

BUS II'ITERNO

Con cin Con rruP

rruP

Direc
ALHABILITADOR PULL UP

Lec

Escr
KB16

ALHABILITADOR PULLUP

.&'^{ St& &rctf;.

&d

prctico curco sobre Microcontrotadores

nerseen cuentaparaevitar perderalgunas solicitudesde interrupcin,ya que cuandola interrupcin solo obedeceal flanco de bajada, stapuedeserbloqueada por cualquiera de las otrasentradas de interrupcin que permanezcan en cero.Esto no sucedecuando se ha seleccionadoel disparopor flanco y nivel bajo, pues bajo estacondicin la interrupcin ser reconocidatan pronto como cualesquiera de suspines secoloqueen cero.

Al escribirun I lgicoen esteise borran todas las solicitudesde interrupcin por tecladopendientesen el puerto A, y por medio del ciclo de reset espuestoen cerolgico. ll\{ASIIK: esel bit de enmascaramiento de todaslas interrupciones del mdulo KBI, puede serescritoo ledo, y por medio del ciclo de reset serborrado. Con I lgico:seenmascaran o inhabilitan todas las interrupciones del mdulo KBI. Con 0 lgico: sehabilitan todaslas interrupcionesparatecladodel KBI. MOt)lrK: es el bit que conuola la sensibilidad del disparode las intenupcionesdel KBI en los pinesdel puerto A, por medio del ciclo de reset se colocen cero,y puedeserde lecturay escritura.

y control Registro deestado del mdulo KBI {KBSCB}


El registrode estado y control de lasinterrupciones para tecladollamado KBSCR" se usa para habilitar el reconocimiento y el enmascaramiento de talesinterrupciones,y para configurar el tipo de sensibilidad al disparo.Tambin uno de susi seusacomo sealizador de la solicitud de interrupciones.

Con I lgico:seactira la sensibidad detasintemrp En la figura 23.7 semuestra el registroKBS- ciones por flancode bajada y nivel devolaje bajo. CR, y a continuacinsedescriben lasfunciones Con 0 lgico:sesensibiliza la solicituddeinterrupde los bits quehacenparte del mdulo KBI. cionespor medio del flanco de bajadasolamente. K l.\'l): Esel bitbartdera quesedizael estado de Registro habilitador delas (KBlEn) solicitud de una interrupcin por tecladopen- interrupciones delmdulo KBI dienteen el puertoA. Esde slolectura,y el reset Esteregistroseusaparahabilitar o inhabilitar de lo borra. maneraindividual cadauna de las interrupcionesen los pinesdgl puerto A, que forman parte Con I lgico:el bitindica,que hay una interupdel mdulo KBI. En lagura23.8 semuestra el cin por tecladopendiente. registrode habilitacin KBIER y enseguida se Con 0lgico: el bitindica, que no hay una inte- describen lasfuncionesde los bits quehacen parrrupcin por tecladopendiente. te del mdulo KBI. r\(,KK: es el bit de reconocimiento de la interrupcin por tecladoy esde slo escritura.
Dlroccln 001A Bt7 Locfura: Escrlra: Beset 6

KBI[,(r a KBIEOT con cadauno de estosi se puedenhabilitar o no los pinesdel puertoA, que se asociancon cadauna de las entradas de interrupcinparateclado. Todossonde lecBo tura y escritura,y por medio de un ciclo de reset sernborradospara inhabilitar las entradasKBI, y habilitar el registro del PuertoA. Con 1 lgico: cadauno de los bits de con-

lsin

estabtecer

y control (KBSCR)trol KBIx habilitan el correspondiente KBI frgun 23.7Registo delmodulo deeshdo pin

prcm cur", sbrc Mlctwttfrotadoes &n;#


-1

Lus urtiulus tlet0t![i0Ut!: C0tiLVtt' tGt esllcclalcs


Direccin: $0018 Bn7 6 5 4 3 2 1 Bttj

Lectura: Escritura: neset


0000000

Nota: Laprogramacin deunaentrada deinparateclado, que terrupcin no evta deba serconfigurada como una entrada.

Cuando el programador pone en uno lgico cualesquiera los de bits de habiSn establecer litacin de la interrupcin parateclado (KBIER) KBIEx, obligaa que el pin del puerto Registo habilibdor intenupciones nodulo KBI Hgun23.8 delas del de la interrupcincorrespondiente sea en el puerto A como una entrada de interrupconfigurado por la CPU08 como una cin para teclado. entrada; sin embargo, esimportante reCon 0 lgico: cada uno de los bits de control cordarle al usuarioque paraleerdicho KBIx inhabilitan el correspondiente pin en el pin no debeolvidarponer en cerolpuerto A como una entradade interrupcin para gico, por medio de sortware, el corresteclado,y lo definen como un puerto de proppondientebit del registro de direccin sito general(puerto A). de datosdel puertoA (DDRA).

e
$t 't*

\; ;

PARA SABER MS: lnicializacin KBI delasentradas delmdulo para sehabilita unpindeinterrupcin teclado, letoma Cuando algo detiempo alcanzar el uno pull-up, y durante periodo lgico internade envirtud delaconexin desuresistencia este breve puede que recibir falsas detiempo, laCPU08 seales deintenupcin. Para evitar seproduzcan mdulo interrupciones falsas durante lainicializacin del KBl, los intenuptores delos registros de y control y KBIER pasos: KBSCR estado sedeben activar deacuerdo lossiguientes con para todas lasintenupciones PAS0 1. Use elffIMASKK enmascarar deteclado, enuno lgico. colquelo para KBIEx habilitar PASO 2. Use loslfs adecuados demanera independiente los pines para elegidas delasentradas deinterrupcin teclado. y pendiente por PASO falsa 3. Bone cualquier solicitud deinterrupcin medio del bit lgico ACKK, alcolocarlo enuno para por habilitar todas lasintenupciones PASO 4. Bone el ffIMASKK teclado que hayan sido elegidas. que lasintenupciones, sepresente vez habilitadas aquella Una enunpinsensible alflanco de pero, ser reconocida deinmediato; cuando llege bajada solamente a una entrada sensible al y alnivel delainterrupcin flanco bajo, elreconocimiento sehar luego deuntiempo deretraso que allpresente. ser funcin del tipodecarga externa intenupciones falsas, consiste enconfigurar Otra forma deevitar lospines delteclado como pormedio dedireccin delosifs adecuados delregistro salidas, dedatos delpuerto A (DDRA), para pormedio lasentradas deinterrupcin elteclado antes dehabilitar delosfs KBlEx.
,t lrx a

q
i

-_ ;

La sa

en tar

vo!

do de

EI M, be

reI

st&

&d

&lKt'.L

prcco Microcontroladores curco sobre

"'

J
fci n

i# .s

H
'I

i:r-: J:*i ,isl.i -w

&
La capacidad del microcontrolador para recibir y procesar seales anlogas, que pueden asumir cualquiervalor en el tiempo a travsde los ADC, ha sido muy importante porque ampli la gama de usosde estosdispositivos dentro de la industria y la investigacin,permitindolesintroducirse con granfuerzaen el delicadocampo de la instrumentacin electrnica. El SIM esun mdulo que en los microcontroladores de Motorola coordina y vigila todaslas actividades que deben llevarse a cabo desdela CPu, ascomo el ingresoy retorno adecuadode los modos de operacinespeciales. prctico curco sobre Microcontrotadores &ktZt #

ffi

qelGLt0 El. nrculo t, eL cuuveulduL'rl.l] SLLtt r,LD)


crocontrolador. La tarea de conversinA/D se lleva a cabo a travsde diversastcnicas,y cuenta con una amplia gama de circuitos integrados AD de varios fabricantesque la soporran; sin embargo, con el mdulo ADC dentro del MCU se obtienen ventajaspropias de la tecnologa de integracin, como son la reduccin de espacio, el consumo de potenciay el costo;adems, se minimizan los riesgosde efectuary leer conversiones falsas o alteradas, debidasa inadecuadossistemasde tierra y cableado. El mdulo ADC, dentro del MCU, le permite al usuario un control total sobre las conversionesde cada uno de sus canalespor medio del cdigo de programacin,y se comunica directamente con la CPU por medio de seales de interrupcin que se generan al final de cada ci,

Para todos aquellos usos del microcontrolador, en el campo de las medidas, la supervisin,y la instrumentacin de variables fsicascon comportamiento analgico (seales que pueden asumir infinitos valoresen el tiempo), que son muy frecuentes,los MCU de la familia HC08 de Motorola han incluido dentro de su arquitectura una herramienta fundamental para convertirlas en seales digitales(seales que slo asumenvalores discretosen el tiempo): el mdulo de conversin anlogaa digital (ADC). La conversin de una seal anlogaen digital es un trabajo que se debe hacer previamente, si se quiere recibir y procesarpor medio de cualquier sistema digital como el mi-

clo c resu el ti, ract(


of ol a r! oI rl i
o -{ I

t:

EIn
sev

m<

ct o

k c
t E, t F

cita cue del pro

PT

o o z, z, (n co

trol doc con

x delADC Canal CH1 CH12

ilililljjil
4-eHl4'01

dul de do, enI Iog go ma

nit ois D--

de tac da
ADIV[2:0] ADICLK

Figura24.1Dagrama de bloques delmdulo ADC

l
ol

,.* &rKt '.i. prctico Curco sobre Microcontroladores

clo de conversin; de estamanera,la CPU no resultadesviada de su rutina principal durante el tiempo de conversinde cadacanal. Las caracterlsticas de estemdulo son:

Vm$tmie deconversin ADCVIN

Los lmitesparael voltajede conversin siempre estndefinidospor la magnitud de la fuente de dimentacin del microcontrolador;de estaforma, para un voltaje de entradaigual o mayor a . lJn convertidorA./D con docecanales como resultado dela conde en- Voo, elADC entregar versin un dato igual a mientras que para $FF, tradade 8 bits,multiplexados. . Tcnica de conversinanlogaa digital por VSS o menos,el dato ser$00. Todos los otros valores del voltaje de entradaque seencuentren aproximaciones sucesivas. . Resolucin entre \, )r Voo, obtendrn una conversinlide 8 bits por canal. . Dos modosdeconversin, por una lfneaescontinuaopor cidos. nealy podrnserrepresentados . Dos indicadores con pendienteconstante, y dividida en de fin de conversin, por se- calonada ($00 256 valores discretos a $FF). alizadoro por interrupcin. . Selectorde la fuente del reloj de muesilota: treo del ADC. Paraevitar daospermanentes en los pueftosque se comparten los con canales A/D, la magnitud tlnscripeinn dnlmd*ln,At) ADCVIN nunca El mduloADC semuestra en la figura 24.L, all i del volaje de entradaanlogo estar por encima ni por debajo de los seve el diagramadel circuito electrnicode este idebe mdulo representado en susprincipalesbloques. I umbralesde alimentacinVoo )r \r, respecIuvamente. L_-.___ Todoslos canales capade entradaanlogos deconversin citadospara muestrearsedesexternas, se en- Tiempo el mducuentran disponiblesa travsde los terminales Paracompletarun ciclo de conversin, lo ADC 16 usa estados de su reloj interno, y se con los puertosde del MCU que corresponden propsito generd PTBO a PTB7, y PTD0 a inicia con el primer flanco crecientede dicho ecuacin sepuey con- reloj. Por medio de la siguiente PTD3; y por medio del registrode estado de los de calcularel tiempo que toma una conversin: uol delADC (ADSCR) sedefinencuales estarnactivosy se comportarn doce canales como entradas anlogas. 16 perfodosdel reloj delADC Pararesumir el comportamientodel mdulo ADC, se puede anotar, que, por medio de un multiplexor anlogose eligeuno de los A/D como la fuente dq voltaje de docecanales entrada(ADCVIN) del nico convertidor anlogo a digital disponibleen el mdulo, y luego, estevoltaje anlogo,por medio de aproximacionessucesivas, se convierteen una magnitud discretarepresentada en 8 bits en el registro de datosdel ADC. Al finalizar un ciclo de conversinel mdulo ADC grabael resultado con resolucinde 8 bits en el registrode datosdel ADC, llamadoADR; y pone en uno lgicosu correspondiente bitbanderacoco, o bien, generauna solicitud de interrupcin. Frecuenciadel reloj delADC Porejemplo,parauna frecuencia de reloj del ADC definida en lMHz, el tiempo de un ciclo de conversin completoserdel6s y la mxima frecuencia de muestreo serigud a62,5kflz.

Modo deconversin continua


I-Inavez seactivael modo de conversincontinua, el mdulo ADC efectria ciclosconsecutivos de conversin A/D sobreel canalde entradaseleccionado, y sobrescribeyactualiza el contenido del registrode datosADR al concluir cada tiempo de conversin. Parainterrumpir el procesode conversincontinua, se requiereborrar

prcco cutso sbettcrocototadores arr"#

EL nrqulu D tl*ll)t, eL couvu.ttitiut'li SLL(I uelGLi0


el bit de control ADCO que haceparte deregistro de estadoy control del ADC. En este modo, el bit de conversin completa COCO secolocaen uno despus de cada conversin exitosa; y el usuario podr borrarlo pr sofiwareescribiendodirectamentesobreel registroADSCR, o, leyendo el registro de datosADR.
Dieccin: $003C Bn7 6 5 4 3 2 1 Bttj

D i re

Lectura: Escritura: Beset


0 001.11.11 Sinestablecer
L

Es

y control Figura 24.2Registro (ADSCR) deestado del ADC sin se completa, es de slo lectura; y puede ser automticamente borrado al escribir directamenteen el registroADSCR, o, al leer el registro ADR. El resetlo borra. Cuando AIEN = 0: Con I lgico, indica conversincompleta Con 0 lgico, indica conversinincompleta

Al colocar un uno lgico en el bithabtador de la interrupcin del converddor A"/D, llamado AIEN, el mdulo es capazdegeneraruna solicitud de interrupcin a la CPU08 al cabo de cada ciclo de conversi6n.Cuando la interrupcin delADC estactiva, el bitCOCO no seusacomo banderadel fin de

conversin, sinoqueseusa paradispararla solicitudde intenupcin cuandosu estado escerolgico.

[,osregistros especiales delmicroconuoladorqueseusarr paradefinirlos parmeuos delmduloconvenidor ADC, sonres:.elregisuo deesado y conuolADSCR"el regisuo dedatosADR y el regisuo deconfiguracin del relojADICLK En los sila descripprafossehace guientes cindecada uno delosbitsqueo:lnformarestos registros.

0 0 0 0 0 0 0 0 1
1 1 1 1

0 0 0 0 1 'l 1 1 0 0 0 0 1 0 0 1
'l 1 1

0 0 1 1 0 0 1 'l 0 0 1 'l 0 1 1 0 0 1

0 1 0 1 0
1

0
1

0
1

0 1 0 0 1 0
1

ADCO ADCl ADC2 ADC3 ADC4 ADC5 ADC6 ADCT ADCs ADC9 ADCIO ADCI 1

PTBO PTBl PTB2 PTB3 PTB4 PTBS PTB6 PTBT PTD3 PTD2 PTDl PTDO Nousado

la de lo

pl di

so

C in C
t^
ld

II

En la figura 24.2 semuestra el registro ADSCR que nos permite configurar los canalesde conversin activos,habilitar la interrupcin, seleccionarsu modo de trabajo,y conocerel estadode la conversin. Nota 1:

1 1 1 'l 1 1

n'
A

0
1

Reservado Nousado (Nota V994 1) Vgg(Nota 1) Apagado delADC

C
A

esel bitbandera que vertidorADC. sealizacuando una conver-

Los voltajesinternos de referencia se usanparaverificar la operacindel conTabla 24.1 Tabla deseleccin de canales delmdulo ADC
C

$t&

&d

&lct":.

prctico curco sobre Microcontrotadores

L\,-\_lL Lq

Direccin: $0030 BitT Lectura: Escritura: Reset Indeterminado desous dereset

lsin

estabtecer

lo ADC, llamado ADR; es de slo lectura, y su contenido es inmediatamenreactualizado cada vez que una conversin termina. Despus de un resetsu estado puede ser cualquiera.

(ADR) Figura 24.3Registro dedatos del ADC


Direccin: $003E Bt7 Lectura: Escritura: Reset 6 5

00 Sin establecer

(ADrcLn Figura 24.4Registro deconfiguracin delreloj delADC esel bit de control de la interrupcin del ADC, es de escritura,y cuando secoloca, el mdulo ADC genera una interrupcin al completar la conversin.Las condiciones que borran exe bit son igualesa las del COCO. Con 1 lgico, se habilita la interrupcin. Con 0 lgico, se inhabilita la interrupcin. es el bit selectordel modo de conversin continua o por ciclos del mdulo ADC, es de escritura,y nos permite elegirentre el modo de conversin continua y la conversinde un slo ciclo. Con I lgico, seacrivael modo de conversin continua. Con 0 lgico,seinactivala conversin continua i/ seactiva la conversinde un slo ciclo.

sonlos bits del selectorde canales ADC, los con bits CF{'} a CH3 se eligeuno de los docecanalesdisponibles, ycon el CH4 selesasignan algunas funcionesespecial La tabla24.1 es. resumelas condiciones de estos bits. El mdulo del sistema de integracinSIM se representa en bloques en la figura 24.5; el SIM es el controladordel En la figura24.3 semuestra estado y seencardel sistema el registro de un byte que ga de coordinartodaslas accontieneen todo momenro tividadesentre la CPU y el el resultado El SIM es dela ltimacon- sistema de buses. versinhechapor el mdu- responsable de:

En la figura24.4 se muestra el registroADICLK que nos permite seleccionarla frecuenciadel reloi interno para el muestreo de las sealescon el ADC, por medio de los bits ADIV0 a ADIV2 se puede seleccionar el divisor usado por este mdulo para generar el reloj interno del ADC. La tabla 24.2 muestra las opciones para los bits ADIVx.

ADIV2 ADIVl ADIV() Divisor delrelojdelADC 0 0 Relojde 0 entradaADC+1 0 0 1 Relojde entradaADG+2 0 1 Relojde 0 entradaADC+4 0 1 1 Reloj deentrada ADC+8 1 X X Relojde entradaADC+16
Tabla 24.2 Tabla (ADIVx) depreescaladores delrelojdelADC

prctico curco sobre Micrrcontrctadores r.t &irr

Mdulo ST0P Mdulo WAIT (Desde CPU ST0P CPU) (Desde WAIT CPU CPU) (hacia SIM0SCEN eloscilador) RELOJ DEL COP (Desde 20SC0UT eloscilador) (Desde 0SC0UT eloscilador)

1R

20scol

El rer al i m

+>Relojes

internos

Cuan, taci reset)i esto h accior

(Desde Cdigo deoperacin ilegal laCPU) (Desde Direccin ilegal los decodificadores del mapa dedirecciones ) Desbordamiento deltemporizador delC0P Reset delUSB

l. Se 2. El 3. In
SC

<<->lnterfaz

Fuentes deinterrupcin detacPU08 Figun24.5Diagnna debloques delmodulo SIM

2( cil 4. F) du 5. El ST

. Controlar la CPU08 y los perifricos. ILEGAL . controlar la entraday r"li" de los modos es^-o^':tcclN ^^^,^^ CDIG0DE0PEMO|[t# pecialesde funcionamiento: sroB wnn, RESET Y BREAK. POR . Controlar el reloj interno del bus. LVI . Controlar el reset maestro,el de la conexin Hgun24'6 Fuentes internas delacPU08 deintenupcin (POR), y el desbordamientodel coP. . Controlar el procesamiento de todaslas inteTodas lasinterrupciones internas de reset que e internas. rrupcionesexternas afectan a la CPU08 semuestranenlagura,24.6, . Controlar la arquitectura modular expansible estas son:direccinilegal,cdigodeoperacinilede las fuentesde interrupcin. gal, desbordamiento del temporizadordel COB el reset a la cono<in(POR), y el inhibidor por

sol

E le

EI SI la CI

cualq el bit citud

Elre

internas del reset Fuentes de interrupcin


Paracompletar nuestro estudio de la interrupen estaocacin principal del MCU, el reset, sin se har nfasisslo en las cinco fuentes internas que lo originan, ya que su estructura y las fuentesexternasfueron ampliamentetratadasen otra ocasin.

(Lu).Todas bajovoltaje ellas fuerzan el pin de


entradaexterna del RST a un nivel bajo durante del reloj2OSCOUI parapermitir la 32 periodos inicializacin de los perifricos exrernos conectados alrededor del miciocontrolador. En la figura 24.7 semuesrra el diagrama de tiemposde lavectorizacinde una interrupcinde estetipo.

Cuar ha ir cdi ilega ria d un/ colo ILAI ante

rex

xra.

2t*3

&

AJr<rf; --,

prcco Curco nbrcMtctocontotadorcs

ns r
RST

.m
E UCU loporFen
F__gl ddc __+_ gA ctdc ____-r

Elreset delosmdulos y COF LVI

De estosdos mdulos,ya estudiadosen detdle en laleccin anterior, zoscour fLfL__+ F_J-]+ Ffl_f_l_i solo sedir que ambosgeneran un IAB resetinterno cada que se desborda el contadordel COB o cuandoVoo intemo Figun247 Diagnma deenpos deunreset caepor debajodel umbral ftTTRIP) definido en el mdulo LM. En cualElreset dela a la conexin quier caso,el procesode la interrupcin slo se POH alimentacin y Cuando se conectapor primera vez la alimen- iniciar alos64periodosdel reloj 2OSCOLJ-II la estabilidaddel oscilador. tacin al MCU, el mdulo del POR Qtower-on despus reset) gener^unpulso paraindicar a la CPU que registros deestado delmdulo SIM y seda inicio a la secuencia estoha sucedido, de Los los registros del SIM son tres y estn localizados acciones propiasdel POR, que son: enla memoriaenuelasposiciones $FE00y $FE03, por medio de sus bit el progamador puede co1. Sereconoce la fuente de reset interna. 2. El SIM habilita la salidade reloj 2OSCOUT. nocerel estadode la CPU08 en todo momenro. 3. Los relojesinternosde la CPU y los mdulos deestado del rnodoRREAK(BSR). se detienendurante4.096 periodosdel reloj l. El registro En la gura 24.8 semuestrael registroBSR, 2OSCOUI mientrasque el mdulo del osesteregistrode estadoposeeun bitbandera cilador seestabiliza. que indica cuando la salida de los modos 4. El pin de enuadaffiT secolocaen nivel bajo STOP y\7AIT se ocasiona por un breah,yse del oscilador. duranteel tiempo deesabilizacin le conoce como para SBS'W; borrarlo se redel 5. El bitPOR del registrode estadodel reset quiere de un reset, o, escribir un cero en 1. SIM (RSR),se grabacon uno lgico, mientras que todos los otros bits de este registro Con 1 lgico, indica que la CPU salide los son borrados. modosSTOP o\7rLlT debidoaunaintenupcin breah. porcdigo El reset ilegal deoperacin Con 0lgico, indica que la CPU no salide El SIM decodificalasseales que seoriginan en los modosSTOP o'\7\ITdebidoa una intela CPU08 para detectarinstruccionesilegales, rrupcin break. cualquierinstruccin ilegalpone en uno lgico el bitlLOP del registroRSR,y generauna soli2. El registro de estado del reset(RSR). interno. citud de interrupcin por reset En la figura 24.9 semustrael registroRSR, esteregistroposeelos bitsbandera, que inforpordreccin ilegal Elreset Cuando el SIM seda cuentaque la CPU $FE00 ha iniciado el ciclo de bsquedade un Dirccn: Bt7 cdigode operacindesdeuna direccin Lecra: ilegal (fuera del readel mapa de memoria definido para la CPU08), se genera Escrltura: Reset vn rtset por direccin ilegal, y el SIM coloca en uno lgico el bit de estado l{ot: Alescribir uncero lgco sebona slSBSW lsinestabtecer ILAD del registro RSR, inmediatamente (BSR) Flgun24.8Registo antesde reiniciar el MCU. deesdo delnodobreak

prdico Cursl nbrcMuoa n*adors rrr# -a

y eL EL nrdulo convs+tkiot'/VD SLLVI deL 6LtC0 U{l-))


Direccin: $FE01 Bt7 6543218 t 0

rante el ciclo de bsqueda de cualquiercdigo de operacin.


(

Lectura: Escritura: POR:

I
/

Con 1 lgico, indica que el ltimo resetfue 0000000 causado por el ciclo de bsqueda de un cdigo de operacinen una direccinilegal. Sin establecer Con 0 lgico, indica que el RSR fue ledo, Figura24.9Registro de estado delreset(RSR) o segener un POR. esel bit de estado que sealiza el reset del modo monitor. Con 1 lgico, indica que el ltimo reset fue causado por la entradaal modo monitor. Con 0 lgico, indica que el RSR fue leldo, o segener un POR. es el bit de estadoque sealiza el reset causado por el mdulo LVI. Con 1 lgico, indica que el ltimo reset firc causado desde el circuito LVI. Con 0 lgico,indicaque el RSRfue ledo,o segener un POR.

man al usuario sobre la procedencia del ltimo reseteyecutado. Paraborrar todas susbanderasautomticamente (exceptola del POR), bastaleerlo. esel bit de estadoque sealizaaI reset a la conexin (Power-On Reset). Con I lgico, indica que el ltimo resetfue causadopor el circuito POR. Con0lgico, indicaqueel regisuoRSRfue ledo. es el bit de estado que sealiza d. reset externo RST. Con 1 lgico, indica que el ltimo resetfue causadopor el pin de entrada externo RST Con 0 lgico, indica que el RSR fue leldo, o se gener un POR. izael desbordas el bit de estado que seal miento del temporizador de gilancia del COP Con 1 lgico, indica que el ltimo resetfue causadopor el COP. Con 0 lgico, indica que el RSR fue ledo, o se gener un POR. es el bit de estado que sealizaal reset causadopor una operacin ilegal.

\ \ \

En la figura 24.L0 se muestrael registro BFCR esteregistrocontieneun bit de lectura y escritura quehabilita al programador desde el sofiwarepafa borrar los bits de estado mientrasque la CPU esten esrado de breah, sellama BCFE. Con el reset sepone en cero. Con I lgico,sehabilitael borradode todos los bitsde estado duranteel break. Con 0 lgico,seinhabilitael borradodurante el estado de breah.

tl

e r

Con 1 lgico, indica que el himo reset fue causado por una operacinilegal. 0lgico, indicaqueel RSRfueleCon do, o segener un POR. esel bit de estado que sealiza al resetdebido a una direccin ilegal du-

Direccin: $FE03 Bt76543218t0 Lectura: Escritura:

I
0

Beset

Inrr.".oo
Figura24.10Registro decontrol dela bandera delbreak(BFCR)

&tr,, #

prctico curco sobre Microcontotadocs

*'\

)\

\}

La cuentadel tiempo esla tareams comn dentro de las aplicaciones de los microcontroladores en cualesquiera de suscampos,y, por ello, el primer circuito perifericointerno de propsitoespecial que seincorpora la arquitectura de estos dispositivosfue el mdulo temporizador. el prograGraciasa los mdulos temporizadores, mador puedecontar cualquierperiodo de tiempo usandocomo baseel ciclo del reloj interno del microcontrolador, sin ocupara la CPU.
prctico curso sobre Miuocontrotadores AEK<IT": Sb

&d
-a

La temporizacinde los eventos, por medio de los lazosde sofiware, fue la primera forma de contarel tiempo en los microconuoladores; sta es una tarersimple,pero,no obstante, puedeocupar durante mucho tiempo a la CPU e impedir que ella desarrolle ouas actividades reduciendoconsiderablemente la eficiencia del dispositivo. Estetipo de temporizacinestadems limiada por el amaoy el n.mero deregistros depropsitogeneral disponibles, y,por lo anto, sloserecomienda para contarpequeos periodosde tiempo. Gracias a la integracinde circuitosremporizadores comodispositivos perifricos dentrode la arquitecturade los microcontroladores, se le ha facilitado estatareaal programador, y se ha
RELOJ DEL BUSII{TERI{O

aumentado la eficienciade los MCU considerablemente, permitindonos, adems de contarperiodos largosde tiempo, llevara cabootrasfuncionesque sebasanen la cuentadel tiempo, tales como la transmisiny recepcin de datos,la vigilanciade procesos, y el manejoy control de otros dispositivos por medio de las tcnicas clsicas de modulacinde pulsos.

un
tuf lac les

a a

ElTIMrlel68HCilB
En la figura 25.1 semuesrrael diagramade bloquesdelTIM (rno intetfrce rnodab). En estaleccin estudiaremos la segunda versindel TIM de los microcontroladores Motorola de la familia HC08 (TIM2, versinB); steesel mdulo de la interfaz de temporizacin,y estcompuestopor

a a

EI de PI es

Pa dc

P co m

la

=
E t

= u) =
6

ffi
Figura E.l Diagnma debloques delTlM del68HC08
,dx ,,x\A.
t-

$Zb

&d

Qtrt;

prcnco Cwso sobe Micrwontotadores

un temporizador dedoscanales conentradede ca tura, salidade comparacin, y funciones demodulacin por anchode pulsos(PV /t). Lasprincipalescaracterlsticas que posee estemdulo son: . . . . . o Dos canales independientes con entradade capturay salidade comparacin GeneradordesalidPV&f conhufuo sn bufu Preescalador programable parael reloj delTIM ' Contador de carrera-libre, o en mdulo contador ascendente Bits de paro y resetdel contador del TIM Arquitectura modular (expansiblehasta ocho canales)

do un flanco activoprogramadosedetecapor el pin de un canalconfiguradocomo una entrada de crpnra, el TIM guardael contenido del contador en los registrosdel canal correspondiente, TCHxH y TCHxL, adicionalmente,puedegenerar unasolicituddeinterrupcin en la CPU08.
[.a .sai i i l ade cornp:rraci rr

Funciones delTIM
EITIM compartesusdoscanales de entradaysdida conlos dos puertosI/O de propsito general, PTD4y PTD5; el principal componente delTIM esel conador de I 6 bit, del proiene la referencia paralasfunciones decaptura y comparacin. Usando los regisuos de 8 hiTTMODH yTMODL el programador puedeconuolar el valor del mdulo conador del TIM, y puede leerlo en cualquier momento sin afecmla secuencia de la cuenta. En la estructuradel TIM que semuestraen la figura 25.1 sedestacan lassiguientes partes: '

Usandolasfuncionesdefinidasparael circuito de comparacin del TIM, el MCU puede generar pulsosperidicos, con polaridad,duracin,y frecuencia programables. Cuandoel contador iguala el valor guardado en los registros de un canal configurado como salida de comparacin, eITIM puedeponer,borrar, o cambiar el estadodel pin asociadoa dicho canal; adicionalmente, puedegeneraruna solicitud de interrupcin en la CPU08.

Cualesquiera de los dos canales programados comosalidas decomparacin pueden generar pulsos diectamente sin la intervencin de un bufzr,y ex;ro quieredecir,queparacambiarel yalor de comparacin de la salida,que estguadado en los regisuos del canaldelTIM correspondientes, soloserequiere sobreacribirel nuevovaloren ales rqisuos.

Los canales ceroy uno (CHO y CHI), tamL,l preescalador del contador del TIN{ bin puedenenlazarse paraconfiguraruna salida El bloque preescdadorusa los bix PS2:01, decomparacihconbuffersponibleatravsde localizadosen el registro de estadoy control la salidadel canal cero (pin PTD4/TCH0). del TIM (TSC), para seleccionarla fuentedel reDESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO loj, y la salida derelojpuede ser elegidaentre siete opciones de frecuencia que seobtienenal dividir el reloj interno del bus.

oft[3oo'-

o L,r entradade captura Por medio de las funcio- TCHx nesde este bloqueeITIM puede caprurarel tiempo durante el cual ocurre algnwentoentemo. Cuan-

VALOR DEL REGIS]RO DEt

-l

TC A N A LD E LTIM r^L

SALIDA DE COMPARACIN

SALIDA DE COMPARACIN

SALIDA DE COMPARACIN

genenda porel TIM frgun %.2 Seal PlltlM del68HC08

pcw carso re tiawn*adues rrrt#

El mOduladorPWM
La caracterstica que le permite al TIM

Direccin: $0rr20
BitT

cambiarel estadode la salidade compara- Lectura: cin de cudquier cand al desbordar el con- Escritura: tador (toggle-onoaerflow), seusapara geneset 0 01 nerar una seal de salida modulada por Sin establecer ancho de pulsos (P\7M). Con el valor de y control Figura25.3Registode estado del TIM(TSC) los registrosdel mdulo contador se determina el periodo de la sealP'!M, y el esadodel pin del canalcambiacuandoel contador I l l egi stro i l e r:,;f;rl o,r' r' l i rtro!,l ci ' l ' l l \4 i -i t: ' i En la figura 25.3 semuestrael contenidodel alcanzael vdor del registrodel mdulo contador. registroTSC; por medio de esteregistro se En la figura 25.2 semuestra puedenhabilitar lasinterrupciones, una sealP\[M, consultar lasbanderas el periodo, y el anchodel pulso de modulacin; de estado, detenere inicializarel alll podemos ver que el periodode la sealP\7M contador,y seleccionar la frecuencia del reloj. estdeterminado por dosdesbordamigntos suceA continuacinsedescribensusbits: sivosdel registrodel mdulo contador,mientras f 'OIr: estebit de lecturay escrituraesla ban-. que el valor guardadoen los registrosdel canal deraqueseponecuandoel contador delTIM del TIM define el ancho del pulso de la seal moduladaa travsde la salidade comparacin. seinicializaen $0000, despus de alcanzar el El tiempo quetranscurre valor programado entreun desbordamienen los registros del mdulo to y una salidade comparacin,esel ancho del contador.Al leer el registroTSC se borra la banderaautomticamente, pulso modulado. tambin, al escribir directamente en TOF un cerolgico, u, ocasionando Por medio de los valoresde los registros un reset. del mdulo contadory de la salidadel preescalador sedefinela frecuencia de la sealde saliCon 1 lgico,indica que el contadordelTIM ha alcanzado da P'WM, de forma tal que, silos bits del preel valor del mdulo. escalador en 000, y al registro mCon 0 lgico, seponen del indicaqueel contador delTIM no ha alcanzadgelvalor del mdulo. dulo contador sele escribe$00FF,se generar una salidaP\fM con un periodo igual a 256 l ( )l L:: exe bit de lecturay escrituranos perveces el estadodel reloj del bus interno. El anmite activarla solicitud de las interrupciones cho del pulso tambin puede variarseen 256 pasospor medio de los registrosdel canal del por desbordamiento del contador del TIM, TIM; por ejemplo,si en ellosseescribe cadaquela banderaTOFseponeen uno. Con el datoel reset el ciclo de servicio de la saliexe bit seborra. $0080 (128dec), da P!7M ser1281256 el50o/o. Con 1 l6gico, sehabilitan lasinterrupciones. La salidade P\lrM tambin puedeconfiguCon 0lgico, seinhabitan lasinterrupciones. rarsecon un bufer o sin 1,de la misma forma 'l 5 l't-tl'r con estebit delecturayescritura que la salidade comparacin. en uno lgico se puede detener el contador del ;i,'lTIM rleentradii TIM, y tambinpermitir que el conreosereRegistrns Vsnlill"; Por medio de cinco registros anudecuandosepone en cerolgico. Por medel microcontrolador sepuedenmonitoreary controla la operadio del resetestebit se poneen uno, y el procin y el estadodel TIM; los registros son: gramadorsiempredebeborrarlo por softutare.

rr* #

prctico curso Mtcocontrotadorcs sobre

Con I lgico, se dedene elconadordelTIM. C-on 0 lgico,seactiva elcontador delTIM.

Ressrro: TcilTH Direccin: 9021


BitT 6

rl 'r l" estebit de escriturasolamente, LeGra: se puede grabar con uno lgico para Escritura: inicializar el contadory el preescalador Beset del TIM, sin afectara los demsregisRegistro: TGI{TL tros. Cuando el bit TRST se pone, el Direccin: $0(122 contador inicia desde$0000, y tras la Bt7 6 accinde reset, siempreserborrado. Lectra: Con 1 lgico, seborran el contadory el preescdador del TIM. Con 0lgico, no seproduceningrlnefecto sobreel TIM o la CPU08.
Escritura: Beset 0 0000000 Sn establecer

Figun25,4 Registros (TCNTH:TCNTL) del contador delTIM $0OZzdel mapa de memoria y en ellos se guardael bytealto y bajo del contador; ambos son registros de slo lectura.Al leerpor primeravez elualor dd bytenr,s significativo GCNTH) autonr:ticamente seguadael contenido del demenorpeso(TCNTL) enun hufertemporal, mientras queal ponerel ziTRSTen uno lgico, o, d generar un cido de raet,losdosrqistros del conador delTIM sernborrados.
1 . 'r .i.. ^:i:1r.._. ,,!, ,.r,i,, .,.,.,,.i-l
'.:. I

PS[2:0]: estos bits puedenserleldoso escritos, y son los selectores del preescalador del reloj del contador del TIM, nos sirven para definir en la sdida del circuito preescalador una de sietefrecuencias configurables. Todos los bits son borrados por el reset. En la tabla 25.1 se resumenlas opcionesde seleccin disponiblespara el preescalador del reloj del cbntadordel TIM.
i [...,1,;,.;:1- ,: ; .,,tr: .]( (rr ,1,1 |

l,.l

!'l '

. :

:r:i:,

En la figura 25.4 semuestran los contenidos de los dos registros de 8 bits queconforman el contador del TIM, TCNTH y TCNTL; stosse ubican en las posiciones $0021 y PS2 PSl 0 PS0

En la figura 25.5 semuestranlos contenidos de los dos registrosde 8 bits quehacenparte del mdulo contador del TIM, TMODH y TMODL, los cualesse encuenrranlocalizados en lasposiciones $0023 y $0024 del rea de memoria. ' En estosregistros seguardael valor del mdulo contadordelTIM, y suvdor puede serleldo o escrito por el usuario en cualquier momento.

0 0 0 0

o
1

0
1 1

0
1

Cuando el contadordel TIM aJcanza el valor del mdulo, la banderade desbordamiento i,' 0: MrfffiBtBtmrntl+ro (TOF) se pone en uno, y el contador inicia 1 0 1 Reloj delBUS interno=. 32 nuevamentesu cuenta desde$0000 con el 1 1 0 RelojdelBus i 64 prximo periodo de reloj. En cualquiercaso, 1 1 1 No disoonible la accinde resetpondr en unos ($FFFF)los registros del mdulo contador del TIM. labla25.1 Tabla deseleccin delpreescalador delreloj delTIM

Fuente dereloj delTlM RelojdelBus intemo+l RelojdelBUS interno+2 Reloi intemo+4 delBuS Relojdel BUS interno+8

prcco curso sobe Micmcontotadores &n;#

(l'ttUt) Etnrduto de[a luturiaz tieteurrorizacin detGt!|'tC0


Registro: TM0DH Direccin: $)23 Bt7 6

Con 0 lgico,seinhabilitala solicitudde interrupcindel canalx. eseI bit selector de modo B, con estebit de lectura y escriturase selecciona el bffir en la salidade comparacin, o en la del P\fM. Estebit slo est en el registrode estado y control del canal 0 (TSCO), y cuandoel MSOBsepone en uno, sebloquean lasfunciones del registroTSCl convirtiendo nuevamente al canal I en un puerto I/O de propsito (PTD5). general Con I lgico,sehabilitala salidaconbffir Con 0 lgico,seinhabilia la sdidacon b"fu.

Lectura: Escritura: Eeset


Registro: TMODL Direccin: $fl)24 Bt76 54 321 Btt0

Lectura: Escrtura: neset

(TM0DH:TM0DL) Figura 8.5 Registros delndulo contador delTlM

En la gura 25.6 se muestrala distribucin y TSCl, y la accindel de los registrosTSC0 resetsobretodos sus bits.A continuacin se describensusbits:

exebit de lecturay escritura esla banderade cadacanal;cuandoel canalestconfigurado como entradade captura,el bit se Cuando ELSxB:A esdiferente de 00: pone en uno para indicar la deteccinde un Con 1 lgico, sehabilita la salidade compaflanco activo; mientrasque cuando el canal racino P'!7M sin bffir. estconfiguradocomosalidadecomparacin, Con 0lgico, sehabilita como entradade la bandera sepone cuandoel valor del regiscaptura. tro contador del TIM se iguala con el valor del registrodel respectivo canal. ffi::.:fi,H* la deteccin Con 1 lgico,seala de la Bt76543218ft0 entradade capturao la salidade compaLecrura: racin en el respectivo canal. Escritura: Con 0 lgico, seala que no ha detectaReset 0 do la entradade capturao la salidade Regstro: TSC1 comparacin en el respectivo canal.
Direccin: $0028 Bt7 nos este bit de lecturay escritura permitehabilitar la solicitud del servicio Lectura: de interrupcinde la CPU08 asociada Escritura: Beset 0 con cadacanaldel TIM.

es el bit selectorde modo A, con estebit de lecturay escritura seselecciona la operacin de la salidade comparacin y P\fM sin bffir, o la entrada de captura, o, el nivel de voltajepresente inicialmente en la salida.

C C

C(

fl

cr d

P (

x c

I (
0000000 Sinestablecer

Con I lgico, sehabilita la solicitud de interrupcin del canalx.

y control Figura25.6Registros deestado de loscanales delTIM (TSC0:TSCI)

&irrr"

prcco Microcontoradores cutso sobre

,r

L\--\jL L

MSxB MSxA ELSxBELSXA

MODO

CONFIGURACION

-xX 0 0 0 0 0 0
1 1 1

0
1

0 0 0
1 1

0
1

Salida estndar

0 0 0
1 1 1

0
1 1

Entrada de captura

Pin bajo elcontrol delpuerto; Inicialmente lasalida con qnniyg!-altg Pin bajo elcontrol delpuerto; Inicialmente conlasalida ennivel Captura enflanco creciente solamente enflanco Salida decreciente solamente enflanco creciente o decreciente

0
1 1

0
1 1

X X X

0
1 1

0 1

Salida de Cambia el estado delasalida baio comparacin comparacin Bona lasalida bajo comparacin PWM lasalida Coloca de Cambia Salidas elestado delasalida bajo comparacin Bona lasalida comparacin bajo comparacin . PWM con Coloca lasalida bajo comparacin buffer
y niveldel TIM Tabla25,2Tabla deseleccin delmodode operacin, flanco

Cuando ELSxB:A es igual a 00: Con I lgico, se activa la salidainicial del canal x en nivel bajo. Con 0 lgico, se activa la salida inicial del canal x en nivel alto. son los is selectoresde flanco y nivel, con ellos se seleccionael flanco activo de la entrada de captura, o el nivel de la salidade comparacin del canal correspondiente. Cuando estosdos bits son borrados, el canal x sedesconecta del puerto, y libera el pin del canal (TCHx) para que se comporte como un puerto I/O de propsito general. En la tabla 25.2 semuestranlas opcionesde configuracin que estosbits nos ofrecen. este bit de lectura y escritura controla el comportamiento de la salidade comparacin de cualquier canal cuando el contador del TIM se desborda.

Con I lgico, el pin de salida del canal x cambia de estado cuando el contador se desborda. Con 0 lgico, el pin de salida del canal x no cambia de estado cuando el contador se desborda. estebit de control le permite al usuario determinar el mximo ciclo de servicio (igual al l00o/0, o equivalente al nivel VDD) para la seal de salida modulada por ancho de pulsos (P\M). Cuando el bitTOYx est en cero, un uno lgico en CHxMAX obliga a que la salida P\fM tenga un ciclo de servicio del 100o/o; en la figura 25.7 se muestra el comportamiento de la salida P\7M de cualquier canal de acuerdo con el estado de este bit, en ella se aprecia que, al poner a CHxMAX en cero lgico, la sealde salidaP\fM recupera su condicin normal, y tambin que la salida del canal siempre respondea un ciclo despus de haberlo borrado.

prctico r'.t curco Microconotadores sobre &kr

Etnrdul.o dela lnteuaz rielumrorlzacin detGLtC0 l-Ltt)


DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO DESBORDAMIENTO

I /.

DE SALIDA ColrPRnRcltt CHxMAX

DE SALIDA COMPARACIN

SALIDA DE COMPARACIN COMPAMCIN

snLrJn oe

y efectos Figura 25.7Caractersticas delbitdecontrol CHxMM PWM enlasalida


TCH0H Registro: Dieccin: $ffi26

En la figura 25.8 semuestrala distribucin de los registrosaltos y bajos del los dos canales del TIM, TCHOH/L v TCHlH/L. Estos registrosde lectura y escritura estn destinadosa almacenarel valor capturado del contador del TIM cuando el canal x estfuncionando como entrada de captura, o el valor comparado en la salida cuando funciona como salida de comparacin. En el modo de entrada de captura (con MSxB:MSxA = 00), la lectura del byte alto del registro del canal x (TCHxH) bloquea la entrada de captura hasta que la parte baja (TCHxL) sea leda; de forma similar, en el modo de salida de comparacin (con MSxB:MSxA 00), al escribir el byte alto del registro del canal x (TCHxH) se bloquea la salida de comparacin hasta que la parte baja (TCHxL) sea tambin escrita.En cualesquiera de los registros, la accin de un ciclo de reset siemprepondr un dato indeterminado .
MA-

Bt7 Lectura: Escritura: Reset Registro: TCH0L Direccin: $0027

Indeterminado despus delresef

Lectura: Escritura: Reset


TCHIH Regstro: Direccin: $ffi29 Indetorminado desous delresef

Li

Lectura: Escritura: Beset


Registro: TCH1L Direccin: $0024 Indeterminado desous delresef

lo el

IT ^) S

C
S Indeterminado desous delresef

r(
Lectura: Escritura: Eeset

ir

(CH0H/L:TCHIH/L) Figura 25.8 Registros delos canales delTlM

$tb

&

&lcn:.

prctico curco Microcontrotadores sobre

La industria ParallaxInc. ha tomado como basea los microcontroladores PIC y ha desarrollado para ellosuna versinsimple del lenguajeBASIC, llamada PBASIC, paraconstruiruna pequerayverstil computadoradenominadaBASIC Stamp. Graciasa estosdispositivos,los microcontroladoreshan venido siendoutilizadosinclusivepor personasque conocenpoco o nada de su arquitectura interna, y que no poseenexperiencia en el desarrollo de programasen lenguajeensamblador.
prctico curco sohre Microcontrotadores &kl ,:#

Lcsurietucunilalatiures D/lStG Stuurlr


instrucciones especiales creadaspara facilitar la comprensin y el manejo de las tareasde control y de monitoreo desdeel microcontrolador, como por ejemplo: SERIN, P\fM, BUTTON,

En estaleccin estudiaremosel microcontrolador BASIC Stamp I (BS1-IC) desarrollado por Parallax Inc. Esta versin de microcontroladores usa la tecnologa de montaje superficial y la popularidad del lenguaje de programacin BASIC para construir un dispositivo de bajo costo, reducido tamao, y alta eficiencia, que se puede utilizar como una pequea computadora de fcil manejo y mucha versatilidad en la gran mayora de tareaspara la industria, el comercio, la educacin y el entretenimiento. El BASIC Stamp I se compone, en cualquiera de sus versiones,de un lenguaje de programacin y una estructura de circuitos que lo soporta. El lenguaje de programacin se denomina PBASIC,y ha sido desarrolladopor Parallax segn algunas instrucciones tpicas de la versin simple del lenguaje BASIC, ralescomo:

La

COUNT, DTMFOUT, y PULSIN. El hardtaare seinstalasobreun pequeocircuito impresode monrajesuperficial y en l se incluyen:un microcontrolador PIC de Microchip con el programa residente(firmutare) del intrpretede lasinstrucciones, una memoriade acceso serialtipo EEPROM, un reguladorde +5V un oscilador, y un circuito de resetauto(Brownout). mtico a la desconexin

BS gur ceF SIP fila esP

vor tos nex cir los dor

Paraprogramarel BASIC StampI el usuario slodebetenerconocimientos dellenguaje deprogramacin BASIC y disponer de algunos requerimientosmnimosen su equipo;srosson:el sofiwareadecuado, unacomputadora consistema opeGOTO, FOR...NEXT, IF...THEN, GOSUB, rativoMS-DOS 2.0 superior, 128Kbpesdispoy OUTPUT,complementado conalgunas otras niblesenmemoriaRAM, y el puertoparalelo libre.

est

be volr

tr t

si

mer

PAI PWR GN D PCO PCI +5V

dor es exu

BA

me

nes
PO

rra ne( (a'

Pl BSl - lC
P2 P3 P4 P5 P6 P7

PAI tan

cor tra (oc lal

Figura 26.1 Aspecto fsico, y de los distribucin pines de los componentes delBAStc stanpt
..S{6, a

ne( fer

Su&

&fl

&Kt,.i.

prctico curco sohre Miuocontrotadores

Distribucin r!*l de pines SASIC $tampI


La versin del BASIC Stamp BSI-IC, quesemuestra en la fide catorgun26.l,se compone cepinesyse fabricaen estnrcnra de una sola SIP (empaquetado fila) para disminuir an ms el espacio ocupadopor el dispositivo y faciliar su acopleen circuitos impresosy tablerosde co(pro ner<iones n boards). l^aasignacinylas funciones definidas para los pines de estemicroconuolador sedescriben a continuacin: l'in I VIN (PWR):pormediode pin el microcontrolador recieste be la fuente de alimenacin de volaje no reguladaquepuede estar entre6 y I 5VCC paraestaversin, y la regulaa +5VCC por medio de un reguladorinterno, paraalimenar al microconuolador y d resto delcircuito.Cuando esaenuada sealimena sepueden ntraer+5VCC por el pin 5 del BASICSamp conelobjetodedimenar algunos ortemos. circuitos Pin 2, GND: estepin esla tierra del sistema y debeestarconectadocon la tierra de la PC (a travsdel pin 25 del puerto paralelo)paraprogramarcorrectamenteel microcontrolador. Pin :1,llC Out {PO()): este pin conectala sealde control de transferencia de datos, BUSY (ocupado), del puertopaalelo de la PC con el microcontrolador. llin +, I)C I rr ( I'( )l i: este pin conectael terminal para la ansferenciade datosDO del puer-

to paralelode la PC con el mi- cuito sedimenapor este pin, no paraprogramar sedebeutiliza la entradade alicrocontrolador el dispositivo. menacinV^ P\f/$. l'in "i. r r\ esaentradasehadis- l'r{, lf I \, el circuitodel mipuesto enel BASIC Samp I para crocontroladorusa este pin conectar unafuentedevolaje re- como la entradade reset activa 4.5VCC y entre en nivel bajo de todo el siste5,5VCC $da paraalimenarelsistemaSiel cir- ma, stapuedesercolocada en
+) Z 9CA( 5

Ea
rt

o :o lg6) o

*E E 8.8. H Go
AEE E( D( D o== = clcl o- _oo ( |) !tE Er !o
-F

o tt g

.E tt

cEE
. . . . . r. . . . r. . .

E g
c t

= ED

e
r

g
L

tt=

E-

9E

i5ro

ee

Figunfr.2 Arquitectura delmicrocontrolador BASIC Sbmp I

prclico curso sotue Microcotttotadotes <l*#

D/LStG Staurlr Lasnrict'ccun'olutiutrs


cero lgico para activarlo; pero no se debe poner en nivel alto, porque afecta el comportamiento del circuito de broutnoutqueseencargade generar un resetcuandola alimentacin caepor debajo de 4Y, con el objeto de proteger el sortware del dispositivo. estos ocho pines son los puertos de entrada o salidadel microcontrolador; cadauno de ellos puede manejar en ronfiguracin drenadero (snhing)hasta 25mA, y en configurahasta20mA. No obstancin sumidero (sourcing) te las limitaciones en disipacin de potencia debido al tamao reducido del dispositivo, establecen en 50mA la mxima corriente que puede obtenerseen forma simultnea por todos suspuertos.
l-

(votts) CORRIENTE RlEl{IEDEPODER (mA) TOTAL 5-9

IIPAI.AB

12 25
40

50 40 10
:-3

lP-'t
I

l*o

pac Ta bta 26. I re ta*,, IC a id a dd e su

in-

ir:::frtil, :; #::r::,n

de voltaje integrado de +5V que alimenta todo el sistema,y el circuito de oscilacin de 4MHz.

En la figura26.2 se muestra el diagrama electrnico esquemtico del sistema que conforma al microcontrolador BASIC Stamp I, en ella se pueden ver: el microcontrolador de Microchip PIC16C56 que es la basedel sistema y en el cual est grabado el programa intrprete de las instrucciones PBASIC, la memoria serial EEPROM de Microchip 93LC56 que recibe y guarda el programa transferido desdela PC para que pueda ser ejecutadoposteriormente por el microcontrolador, el circuito de proteccin brownout del reset,el regulador

En la figure 26.3 se muestra la tarjeta para el desarrollo de prototip os (carrier board) diseada por Parallax para el microcontrlador BASIC Stamp I; stacuenta con terminales para la conexin de una baterade 9VCC, el conector (socka) parala conexin del BASIC Stamp I, un conector paraleloal microcontrolador que deja disponibles todos sus pines, un pulsador de reset,los terminales para la conexin del cable de comunicacin, y la tarjeta muldusos, sobre la cual se pueden montar pequeoscircuitos prototipo, lo que resulta bastante til en la etapa de experimentacin y desarrollo de algn proyecto. Los circuitos que se construyan sobrela tarjeta de prototipos, pueden ser alimentadostambin con el regulador interno de +5V pero esto slo se puede hacer si se tiene en cuentaque stetambin alimenta al microcontroladot y, que su capacidad esten funcin de la magnitud de la fuente de alimentacin en la entrada (VIN). En la tabla 26.I se muestrala relacin que hay entre el voltaje de la fuente de alimentacin y la corriente mxima que puede entregar el regulador interno del BASIC Stamp I.

5 t.' t.' l*u 5

Ftgm

EEP

usua ltin de er En l desd el pr y fur

I las n defir lasr' figur aDi (Pin dos

lor l ced esdr Sbit del r bits< seP

Pue led mie


y cable delnicrocontrolador deprogramacin Figura 26,3 Tarjeta deprototipos
BASIC Stamp I

El BASIC Stamp tiene 256 posicionesde memoria de Programa

en li

es el

&irr*.L #

prctico Microcontrotadores curco sobre

'l l .,rt-i .. LU -U L LT1

PALABRA

Puerto WO W1

w2
W3 W4 W5

(DirO Con el registroDirs, y a travsde suszrs NOTAS BYTE BIT bita bit aDirT), que son \os bits que controlan la direccin Pins Pin0-Pin7 Pines V0;direccionables l/0: de los puertos del microcontrolador, se define la dendde direccin Dim Dir0-Di17 Pines dirminnahlpc hit a hif condicin del pin del pueno como una entrada o Bito-Bt7 Direccionables bita bit BO bita bit BitS-Bit15 Direcnionables B1 como una salida.Con un "0" puestoen cualquiera 82 de estosbits, sedefineel mismo como una entrada; R? B4 mientras que con un " 1" seconfigura cualquierade B5 los pinesdel puerto como una salida. B6
87 B8 BS 81 0

Normalmente, el algoritmo ms lgico para accedercorrectarnentea los pines de los puertos R 11 en definir primero la direccin de stos, por lainstuccin G0SUB consiste W6 812 Umdo por G0SUB y luego leer o escribir cualquier dato en ellos. 813 Usado lainsuccin t Como un ejemplo, por medio de lasdos instrucdelBAStc stamp MMpanetusuario Figun fr.4 Mapa delamemoria

el #:il:ifil'fi:'''il,*ffih:S,1:f:::.l memoria RAM para EEpRoM y 16 futesde


usuario, y, por medio de los registrosde esta ltima, setiene accesoa los pines de los Puertos de entrada o salida y a las variablesdisponibles. En la figura 26.4 se describen las 16 localidadesdel mapa de memoria RAM disponiblespara el programador, y los pines, registros,nombres y funciones definidas para cada una. En estemicrocontrolador,y dependiendode las necesidades del programa, el usuario puede definir el formato del espacioen memoria para lasvariablesy los puertos I/O, stospueden conbit a bit (PinO a Pin7, DirO figurarsey accederse a Dir7, y BitO a Bitl5), en formato de un byte (Pins, Dirs, y B0 a B13), o como una palabrade (Port, y\70 a\l6). dosbytes tromsaltoscomoentradasylatransferenciaposterior de un uno lgico al puerto 0 (P0=1): 'Formato hexadecimal dirs = $0F pins = %00000001 'Formato binario Adicionalmente, un slo pin del puerto puede ser ledo individualmente por medio de alguna instruccin como Bitl = Pin3; sta,por ejemplo, guarda el estadolgico del pin 3 del puerto, previamentedefinido como enrrada,en la variable Bitl. Tambin, todos los 8 pines del puerto puedenserledosy guardados fcilmenteen cualquiera de las variables de un byte; la instruccin siguientees un ejemplo en el que se transfiereel estadodelpuertodelmicrocontrolador(todossus Sbits)a la posicin en RAM de la variableBT: f,/ = pins

[,os puenos de estemicrocontrolador sepuedenaccedery controlar por medio del registroPort, que es de l6bits y estcompuesto por dos registrosde 8bits cadauno, llamados Pins y Dirs. Por medio del registro Pins que secompone a su vez de los 8 bitsde enuadao salidade los puenos (Pin0 a PinT), sepueden leer o escribir datos en los pines de cada puerto independientemente;cuando un puerto es ledo, el pin correspondientese lee directamente; mientras que cuando es escrito, el dato guardado definido para tal variable, en la RAM, en el espacio es el que setransfiere al pin del puerto.

En lo que a la programadny al buen uso de este microcontroladorserefiere,adems de conocerbien las 32 instruccionesdel PBASIC y la estructurade progamacin brsica de cualquier lenguajede progamacin de alto nivel, el usuario debe conocerel programa de sopone que suministra el fabricante Parallax;esteessimilar a un editor de texto sencillo, ejecuableen el entorno DOS de la PC, y, por medio de los comandos de ste,se puede editar, compilar,

prctico t "t curco sobre Microcontrotadores &k #

E/l,StG Lcsuricrucanrlutiurrs Stunqt


P u E

R T 0 P A R A L E L 0 P

o oa ao oo ao oo oo oa oo oo ao
DB-25

1 VIN 2 VSS 3 PCO 4 PCI 5 VDD 6 RES 7P 0 8P 1 9P 2 10 P 3 11 P 4 12 P 5 13 P 6 14 P 7 BSl-lC parael BASIC I Stamp Figura 26.5Cable de comunicacin

medio de las instrucciones SERIN y SERUOT, tambinoperana +5V estenivel essuficientemente seguro paracomunicar eftcazmente el microcontroladorcon otros dispositivos a distancias cortas(menosde 3m), pero,cuandola comunicacin sehacea msde 3m, losdatostransmitidos puedensufrir alteraciones, y por estoserecomiendaelevarlos nivelesde comunicacin por medio de una interfazserialRS232 esrndar tal como el MAX232, el LIl l8IACN, o alguna otrasimilar.

fciles d dor trar son de disposi rutinas tivan p< estelen directa

depurary transferirel progama haciala memoria BASIC Samp I, parasuposEEPROM delsistema terior ejecucin. Paraprogramarel microcontroladorseusael pero paraello puerto paralelode la computadora, DB-25 a 3 pinesquesesumisedebeusarel cable propsitopor el fanistraespecialmente paraeste la configurabricante;en la figura 26.5 semuestra cin que tiene el cablede comunicacinque debe entrela PC y el BASIC StampI. Estecable usarse dela PC para slousatrespinesdel pueno paralelo tal como con el microcontrolador, comunicarse esquemtico de la figuen el diagrama puedeverse ra26.2, y ellosson:el terminalde datos(DO), la y la tiera (GND). seal decontroldelbus(BUSY),

Esto tambin puede ser necesarioen algunas tareasque requieren comunicar el BASIC Stamp I, a travs de sus puertos, con el puerto serial de otro dispositivoo equipo, ya que muchasPC cuando operan como equipo receptor no aceptan nivelesTTL a travs del puerto serial; en la figura 26.6 se muestra un circuito tlpico con el II1181ACN que sirve para cambiar los niveles TTL por niveles de comunicacin RS-232.

El lenguaje de programacin del BASIC StampI est compuesto por un conjunto reducidode ins(32 instrucciones) trucciones de alto nivel,y se denominaPBASIC; steha sido diseado por Parallax segn una versin simple del popular TTL,y El BASIC StampI operacon niveles BASIC. programa este el diseaCon programa por lo tanto la saliday entradade comunicacin dor cuenta muchas herramientas don quesondiy quesecontrolapor serial a travs desuspuertos,

pin2) (RS-232; Salida DB9 dedatos pin3) Entrada DB9 dedatos(RS-232; pinl/0) Salida dedatos(BASIC Stamp; cualquier (BASIC pinl/0) Entrada dedatos Stamp; cualquier

Figura 26.6 lnte-faz RS-232 tpica con serial eldriver LTI181ACN

&kt'L #

pnctico Microcontotadores curco sobre

l r, 1 l n ! r

LL- U L L

fciles de construir usando el lenguajeensamblador tradicional de los microcontroladoresy que son de frecuente uso en las aplicacionesde estos dispositivosen cualquier campo; algunasde estas rutinas diseadas como herramientasy que seactivan por medio de las instruccionesespeciales de estelenguaje,son: generacinde sonidos,lectura directa y sin rebote de pulsadores e interruptores,

lectura de resistencias variables,comunicacin serial RS-232, generaciny medicin de tiempos, I salida P'WM, enrre orras. En la tabla 26.2 semuestrael conjunto de32 instruccionesdel lenguajePBASIC que sopona al microcontrolador BSI-IC y se hace una descripcin breve de la o las funciones de cada una.

sA[-]t0s
GOTO GOSUB

IF....TH EN BRANCH

RETURN

Estoblece un ciclo de este tipo Numricos Permite monipulocinde voriobles comoA=5, B=A+2,etc. Posibitito operocionescomosumo, resto, multiplicocin, divisin, lmite mximo,lmite mnimoy operociones y XN0T. lgicas comoAND,0R, XOR,NAND, NOR por o m o n e j o d e t o b l o s . LOOKUP I ns t r uc c in Permite el moneio de dotos y su olmocenomiento en voriobles -especficos m ediont e of f s et (de 0 o N) y 1o olmoceno en voriobles LOOKDOWN Bus c a nm er os igu o l e s RANDOM Generoun nmeroseudooleotonio ENTRADAS Y SALIDAS DIGITATES OUTPUT Configuro un pin comosoli.do L0t{ Poneun oin de solido en nivel boio HIGH Pone un bin de solido en nivel ollo TOGGLE Configuro un pin comosolido e invierte su estodo lgico PULSOUT G ener o un. pu. ls o d e s o l i d o invirtiendo el estodo 1gico de un pln por orgun tlempo INPUT Configuro un pin comoentrodo PULSIN Mide un pulso de entrodo REVERSE Si un pi.n est configurodo cono solido, 1o pone comoentrodo v viceverso. BUTTON Hocb el ontirebote de-un botn y puede hocer un solto o uno direccin si os se deseo. EITRADAS DIGITALESSERIALES Y SALIDAS Ent r odo s er iol SERIN de d o t o s . Posee colificodores y voriobles que, si se cumplen,permiten el almocenomiento de 1os datos recibidos. Los velocidodes penmitidos son 300, 600, 7.200 y 2.40O bps. Los dotos deben cumplir con 1o especificocin de no poridod, dotos de8bit s y ls t opbit . SEROUT Envo dotos seriolmente o 30O, 600,.I..200 6 2.406 bps, con 91 mismoformoto que se ocobo de describir. EITTRADAS Y SALIDAS AMLOGAS y despus configuro el pin como uno entnodo. PftI.I Ent r ego uno s eol P J V M Se uso poro generor voltojes (de 0 o 5) con un y uno resistencio. condensodor POT Lee un potencimetro de 5 o 50 Kohmy escolo el resultodo. SONIDO SOUND Genero olgunos notos. Lo noto 0 es si.tencio, notos I o t27 son tonos oscendentes, y notos 128 a 255 son ruidos bloncos. ACCES0 A LA EEPRO.I EEPROM Alm oc eno dot os en E E P R o Mo n t e s d e d e s c o r g o r e l p ? o g r o n a B A S I C . y lo olmoceno READ Lee un byte de EEPR0M en uno vorioble WRITE Escribe un byte en EEPR0M TIEMPO PAUSE _^__- - _Det iene 1o ejec uc i n p o n u n p e r o d o d e 0 a 6 5 . 5 3 6 m i l i s e g u n d o s CONTROL DE POTENCIA por un corto perodo NAP Entro en modode bojo consumo por un tiempo Entra en modosleep.o de_bojo consumo SL EEP de 0 o 65.536 segundos.Elconsumo de potencio se reduce oproximodomente o 20 ttA, END Entro en nodo sleep hosto que combio el ciclo de controt de potencio o se conecte 1o conputodoro DEPURACIN poro que seon vistos DEBUG Envio voriobles o lo computodoro

crcL0s

Bifurcocin condicionol Solt o o la dir ec c in especificodo por el offset Solto o uno direccin Solta o lo subrutino direccionodo. 5e permiten hosto 16 G0SUB Retorno desde subrutino

FOR.... NEXT {LET}

parael microcontrolador Tabla26,2Resumen delclnjuntodeinstrucciones dellenguaje PBASIC BASIC Stamp I

prctico curco sobre M crocontrotadores gk nt #

Lusnr[cr'or,'u uil'a latiu r'asE/{St0 Stuurll PARA SABER MS: Ejemplo de programacin conPBASIC programa Por medio deeste diseado a propsito 0bservando programa este resultan claros losbepara y el uso exhibir lafortaleza quese obtienen apropiado dedos neficios al trabajar conun lendelasinstrucciones especiales deeste lenguaje, guaje dealto nively unprograma (firmwarel, interprete tambin y facilidad seilustra la eficiencia deuso dedicados a laprogramacin demicrocontroladodelmismo. Eneste caso sepretende elreducido construir un res; nmero deinstrucciones y usadas que circuito detecte laintensidad delaluzy loin- uncdigo deprograma poderoso y comamigable, pormedio forme deuntono son audible variable; suprincipal esto pacto, ventaja. pormedio sehar parlante piezodeunpequeo (con elctrico alta impedancia, 26.7 ms semuestra de40A) co- Enlafigura eldiagrama esquenectado que alpindelpuerto y laintensidad simple para uno, serequiere dela mtico montar este luzrecibida enlatarjeta sedetectar a travs deprototipos deuna fotocelda proyecto 0 enuntablero (con elmontaje resistencia decircuitos entre 5k y S0k) electrnicos conectada enel para @rotoboar. puerto cero. Para dar inicio laejecucin delas protareas deeste grama, solamente que Para se require esto grabado seleer entodo ste momento sea el valor dela medio delcable resistencia deprogramacin enlos terminales por en lamemodelafotocelda me- por y posteriormente, y,deacuerdo diodelpuerto conectar P0, lafuente de con sumagnitud, se ria EEPR0M, alimentacin al microcontrolador. cambiar la frecuencia y deltono seentregar al parlante por elpuerto P1. En este caso seusarn las PARLANTE instrucciones y S0UND, queestn PIEZOELECTRICO especiales POT para diseas leerresistencias y generar variables tonos, respectivamente. que permite Elprograma nos este desarrollo semuestray comenta a continuacin: repetir: 'Define laetiqueta,,repetir".

pot0,1fi1,b2 'Lee laresistencia de lafopuerto 'tocelda en elpin del '0,yguarda lalectura en la 'variable b2.
b2=122 'Divide elresultado dela por 'lectura 2,deforma tal 'que no exceda nunca de 128.

sound 1,(b2,5) 'Genera por untono elpin puerto 'del 1,y en1, la 'frecuencia depende del 'valor enb2y eltiempo de 'duracin deltono es5 x = 60ms. '12ms gobrcpelir 'Salta incondicionalmente a 'repetir elciclo.
Figura 26.7 Diagrama esquemtico detmedidor audible detuz

&kt;.

prctico curco sobre Microcontrotadorcs

En estaleccin se estudiarel conjunto de instruccionesdel lenguajePBASIC de Parallax, Inc. que est dedicado a la progfamacin desdealto nivel de los microcontroladoresBASIC StampI, esteconjunto de instruccioneslo integran32 de ellas,muy compactas, poderosas y con funcionesespecializadas en el manejo de las tareas ms frecuentes encomendadas a los microcontroladores.
prctico Curco sobre Microcontrotadores &kr-t #

-l

ot4uulc e[nslrucclones se Ls nrlcr-ccurrLerlcrcs ti-l.Sl L Suanrl


En cualquierc:rso, cuandoel ffiet este fuerade rango(eneste ejemplo, si b3 esmayorque2),la instruccin BRANCH no ser eiecutada.

El reducido conjunto de 32 instruccionesdel lenguaje PBASIC estcompuesto por algunasinstruccionestpicasdel lenguajeBASIC y de otras especializadasque poseenmultiples funciones. En estaleccin las estudiaremoscon todos susinterruptores, y parafacilitar la ubicacinrrpidade cualquierade ellas, sehar en orden alfabtico:las instruccionesson:

Nota:
De acuerdo con la nomenclatura para la representacin de las instrucciones,se escribirn entre parntesis los trminos obligatorios, entre corcheteslos trminos opcionales,y los comentarios empezarncon una comilla simple.

Con esta instruccin se habilita la rutina de la entrada antirreborespara interruptoresy pulsadores, con autorrepeticin,y salto a una direccin cuando el estadoledo es el esperado. El circuito externo para el pulsador o interruptor puede ser activo en nivel bajo o en nivel alto, tal como se muestra en la gara 27.L pin: es una variable o una constante que especifica el pin I/O que seva a usar como entrada de interruptor o pulsado entre 0 y 7. dounstate: es una variable o una constanre que especificael estado lgico acrivo, y que serledo al accionar el interruptor o pulsador, stepuede ser 1 0. delay: es una variable o una constante entre 0 y 255 que especifica cuanto tiempo (en ciclos de esta rutina) debe mantenerse activado el interruptor o el pulsado antes de iniciar la autorrepeticin o lecrura sucesiva del pin definido. Lor d.os valoresexrremos 0 y 255 son especiales; cuando se pone 0 Ia rutina devuelveel estadode la entrada, pero no ejecutael antirrebote ni la aurorrepeticin; mientrasque con 255, si seejecuta el antirrebote.

Con estainstruccin sesaltaa la direccin es(ofrtt), si est pecificada por el desplazamiento dentro del rango. ofrtt el desplazamiento esuna variableo una constanteque especifica la direccin del salto entre0yNlugares. addressX:las direccionesson nombradas por etiquetas que definen hacia donde se debe hacer el salto, se separanpor coma y su nmero define el alcancedel desplazamiento. Estainstruccin esunavariacin de IE..THEN, aspor ejemplo, si seescribela siguientelnea de comando: BRANCH b3,(caso-0,caso_1,caso2) se podr obtener el mismo resultado que al escribir las tres siguienteslneasde comando:

tr^+
Haca el pinl/0

r/or

hHaca

Haca el pinl/0

IF b3=0 THEN caso 0 IF b3=l THEN caso 1 lFb3=2 THEN caso 2

'si b3=0 saltaa la etiqueta "caso_O" 'si b3= 1 saltaa la etiqueta"caso_l" 'sib3=2 saltaa la etiqueta"caso_2"

Activi'alto (presionado = 1)

= Activo bajo = 0) (presionado

Figura 27.1Conexin externa de los interruptores opulsadores posibles y activo-bajo ensus dos estados activo-alto

$UtF

&g

&fn").

prctico Curco Microcontrotadores sobe

l , r1 1 -1 5 .

L\.:UL LU.

rate: es una variable o una constanteque define la velocidad de las lecturas sucesivas y se expresaentre 0 y 255 ciclos de estarutina. byteuariable: esel reade trabajo (cualquier registro de trabajo de un byte) de esta rutina. La variableelegidadebe ser borrada con 0 lgico antesde usarla por primera vez desde la rutina de BUTTON. targetstate: es una variable o una constante que especificael estadolgico en que debe estar el pulsador o interruptor (O=libre, 1=presionado)para que el salto ocurra. address:es una etiqueta con la que se indica a donde se debe saltar si el targetstate se cumple.

Esta instruccin tambin aceptaalgunos comandos propios del manejo de la pantalla de la PC, tal como se muestra en la ltima lnea de comando del ejemplo anterior, stosson: CR (carriage return) para el retorno del cursor al comienzo de la lnea, y CLS (clearscreen) para borrar la yentana de visualizacin.Aqu tambin se puede ver que lo que se escriba entre comillas sermostrado sin cambio y que por medio de comas se deben separarlas variablesdiferentesen una lnea de comandos.

Con esta instruccin se pueden guardar varios datos en la memoria EEPROM del sistema que luego sern utilizados por el programa, o que no deban ser modificados. Iocation: la ubicacin es una variable o una constanteopcional entre 0 y 255 que nos indica la posicin inicial de la EEPROM a partir de la cual sern guardadoslos datos que seanenviados.Si no se escribeuna ubicacin inicial, la posicin inicial panla escriturade los datos ser la prxima disponible en la memoria. data: los datos son las variableso consranres expresadas enSbits, y que sernguardadas en localidades consecutivas de la memoria apartir de la posicinde inicio.

Con estainstruccin se puede monitorear el curso del programa en cualquier momento, por medio de ella se puede visualizar en la pantalla de cualquier PC conectada con el BASIC Stamp I el estadode un bit, un byte, o una palabra. Con las siguienteslneas de comando, a manera de ejemplo, se ilustran las opcionesde estainstruccin:

'muestra "b4=", 'seguidopor el valor de b4 'muestrael valor DEBUG #b4 'deb4 "lalectraes",M'muestra"lalectuDEBUG 'ra es",seguido por elvalordeb4 'muestrael valor DEBUG #o/ob4 'deb4 en binario 'muestra DEBUG #@b4 el carc'terASCII quees 'equivalente al valor de b4 loscaracDEBuG'entnadas=",b3,M,'muesta 'racteres "entra'das=", seguidos por losvalores de 'b3 yb4, y retor'na el cursor

DEBUG b4

Con estainstruccin el microcontrolador entra en adormecimiento (modo sleep) y slo despierta al conectar la PC, o durante los ciclos de potencia. En esteestado,y asumiendoque el BASIC Stamp I no est manejando carga por suspuertos, la corriente consumida se reduce a cercade 20UA. Es importante considerar el caso en el cual se ejecuta la instruccin END mientras algn puerto configurado como salida estactivo en cualquier nivel (1 0) y est manejando una carga; en esta situacin el sistema continuar suministrandola corrientede lacargadesde la

prcco Curco sobre Microcontrotadores ek n":

&

&c
)

fuente interna regulada,pero cada2,3s inte- 7. COSUB aclclress Estainstruccinesparaun saltoincondiciorrumpir la corrientea travs detodoslos puera el nal a una subrutina,al ejecutarla, 18ms. Esto se debe que el cursodel tos por cercade programa sedewla hacia a la direccin espepropio del chip temporizador del watchdog cificada y continua desarrollandose intrpretey que esinalterable,generaun reset a partir de de alll hastaque encuentrala instruccin de que despierta al microprocesador cadaZ,3s piRETURN. Antes de saltar el sistemaguarda su adormecimientoy configuraa todos sus la direccin de la prxima instruccin para nescomo entrada;estacondicin semantiene tarda continuar la ejecucindel programadesde el por cercr de l8ms que esel tiempo que mismo punto, al retornarde la subrutina. elf.rmware del PBASIC en tomar el control, resablecer delos pines,y poner a dorel estado address:es la etiquetacon la que senombra mir nuevamente el BASIC StampI. la direccin para el salto. Slo se aceptan hasta 16 llamadosa subrutinas,y hasta4 Por lo anterior,y si seva a usarestainstrucanidamientos. de ejecutarla en el momento cin, asegrirese que puedan apropiado,o de conectarcugas o que tengan 8. GOTC)address soportar estasdesconexiones, Esta instruccin es un salto incondicional a una interfazque las admita. cualquier pane del programa,al ejecutarla,el (r. FOR virriable= strt T0 end ISTEP l-l cursodel programasedewla haciaa la direccin especificada y continua su ejecucina increnrent]...NEXT {variable} partir de alll. Con estainstruccinseimplanta un lazodel tipo FOR...NEXT limitado a ocho anidaaddress: esla etiquetacon la que senombrala mientoscomo mximo. direccinparael salto. uariabl: es una variable que se usa como contador interno paralimitar el comienzoy 9. HIGH pin Con estainstruccinsepone en nivel alto el el final del ciclo. Con variablestipo lr se pin CIpecificado, y adems, si steha sido conpuedecontar de 0 a 1, con tipo bytedesde0 figurado previamentecomo una entrada,ser 0 hasta65.535. a255, y con tipo word desde reconfigurado omo una salida. start: es una variable o una constanteque especifica el valor inicial de la variabledel pin: s lavariableo la constante contador. con la que se especificael pin de salida aha,y de acuerdo end: es una variable o una constanteque con el nmero de puertosdisponibles puede especifica el valor final de la variable del estarentre contador. 0y7. increment: es una variable o una constante ??value {AND/OR variable ?? opcional que determinael incrementoo de- 10. IF variatrle value"..i T'HEN address crementodel contadordel ciclo; si no sedefiCon estainstruccin de sdto condicionado ne un valor particular para el paso (step)la se comparan una o variasvariablescon un variableincrementar en uno, mientrasque en uno. valor o valoresy sesaltaa una direccin defisi sepone el signo (-) decrementar nida si el resultadoesverdadero. aariabh (deEals dNHff): esopciond y se usaparaaclarara cual ciclo FOR..NEXT se ii.'es uno de los siguientes refiereel NEXT en cuestin,cuandohay vaoperadores matemticos: = (igual), <> (diferente),>.(mayor rios de estosciclosanidados.

qr

aa

va

lra

Pr ar la ta
v(
I l.

ci st t(
vl

d
ll (
I

c t

@ r., .'l
I'
I

i,l
I

lrr

" I aI
:-{

I 1t I :l

ort

pcco t*cro^,ador, cut", sbre

|,. 1 1 - l r .

t\:U L L*

que), < (menor que), >= (mayor igual que), y <= (menor igual que). aariabh: es la variable que se compara con el valor o valores. ualue: es una variable o una constante que representael valor para comparacin. address:es una etiqueta con la que se nombra la direccin a donde se debe saltarsi el resultado de la comparacin o comparacioneses verdadero.

ii.'puede ser alguno de los operadoresque se muestran en la tabla 27.1. uariable: es la variable a la que se le asignael valor directo, o el que resultade la operacin definida en la propia instruccin. ualue(s):es la variable o la constante que se tiene en cuenta para calcularel valor que ser asignadoa la variable. En cualquier casosedebe tener en cuentaque las operacionesllevadasa cabo por esta instruccin entre los valoresestnlimitadas por el manejo que el PBASIC le da a las variables y a las operaciones matemticas.

Con estainstruccin seconvierte el pin especificado en una entrada,sin importar cual sea su condicin previa o el estadoen que se estn poniendo los puertos debido a dispositivos externos. pin: esla variableo la constantecon la que se especifica el pin que seva a usar como entrada, y puede estarentre 0 y 7.

Esta instruccin se utiliza para buscar uno o varios valoresdentro de una lista, en funcin de un valor objetivo. Cuando el valor objetivo coincide con alguno de los valoresde la lista, se guarda la posicin que dicho valor tiene dentro de Ia lista (0 a N) en la variable. target: es el valor de la variableo la constante que estsiendo explorada (el valor objetivo). aalue0 a ualueN: esuna lista de valorescon la que se compara el valor objetivo. uariable: es la variable en la que se guarda el resultadode la bsqueda. Como ejemplo para aclararla estructuray la funcin de esta instruccin se escribe la siguiente lnea de comando con comentarios,y se supone que la variable b3 se cargaen cualquier momento con la letra que representa a (G), uno de los tres comandossiguientes: giro avance(A) y paro (P).

Con esta instruccin se asignaun valor a una variabley tambin sepueden efectuaoperaciones lgicas entre los valores para definir el valor que se asignar.El mnemnico de la instruccin (LET) puedeomitirse; por ejemplo, la instruccin "I=7" ,s equivalentea"LEif J=/". OPERADORES DE LAINSTRUCCIN LET

Suma Resta (devuelve Multiplicacin lapalabra baja delresultado) (devuelve , Multiplicacin lapalabra alta delresultado) (devuelve I Divisin elcociente) (devuelve Divisin il elresiduo) que min Mantiene una variable mayor o igual unvalor que max . Mantiene una variable menor o igual unvalor lgica & AND I 0Rlgica XOR lgica u MNDlogica lgica v N0R XN0R lgica
r

*P'),b4 LOOKDOV/N b3,(..G",..1t'" 'sib3="G"entonces b4=0 'sib3='.A" entonces b4=1 'sib3="P"entonces b4=2

porlainstuccin Tabla 27.1Tabla deopendores acephdos deNgnacin L

prctico curco sohre Microcontrotadores &kt

/z:w)
&

insr.rucciones losnr[croconu'oladores B.].SLC or4unlo rj.e d.e Srinrr L


Esta irstruccin seutiliza para buscaun valor especificadopor un ofradentro de los datosde una lisayguardarlo en unavariable. Esto quiere decir y9;y el quesiloselementos de unaabla son:3,5,7 contendrel nmero 7. ofrn o 2, la vanable offet: es un nmero entre 0 y 255 que se usa como ndice para buscarel valor. ualue0 a ualueN: es una tabla de haxa 256 datos de 8 bits. uariabh: es la variable en la que se guarda el resultado de la bsqueda. 2 PerodoDuracin Perodo delNAP 0
1

t(

2 3 4 5 6 7

1 2 4 I 16 32 64 128

18ms 36ms 72ms 144 ms 288 ms 576 ms 1.152 ms 2.304 ms

E
e rti

lc e

P s:

periodos Tabla 27.2Tabla deseleccin delos deduncin delMP configura todos los pines como entrada durante 18ms;lo que ocasionauna interrupcin de la corriente a travs de dichas cargas.Con el siguiente programa, observando la salida en el osciloscopio o el parpadeo en un diodo LED, tal como se muestra enlagura27.2, se puede demostrar dicho comportamiento.
T

cl

li

Con estainstruccin sepone en nivel bajo un pin especificado.Si el pin ha sido previamente definido como una entrada,estainstruccin lo reconfigurar como una salida. pin: esuna variable o una constanteentre 0 y 7 con la cual se especificael pin I/O del puerto que seva a utilizar.

LO\r 7
Repetir: NAP 2

'pone encero lasalidadel 'pin7 p o n e a d o rmird mi'crocontroladorduranre /ms

n la d c 0
LI

n r

A
o
D

Con estainstruccin se pone a dormir el microprocesadorpor un periodo corto de tiempo y se reduce el consumo de potencia hasta en el 90olo.En la tabla 27.2 se resumen los ocho periodos que pueden configurarse. period: es una variable o una constante con la que sedeterminala duracin del tiempo de bajo consumo o de adormecimiento NAP El periodo puede definirse entre 0 y 7, y el tiempo de NAP est determinado por la siguienteecuacin: Tiempo de NAP = 18 x (2edoao Cuando se usa esta instruccin todas las cargas conectadas en los pinesde los puertos configurados como sdidascontinan siendoalimentadas por el BASIC Stamp I, pero es importante recordar que al final de cada periodo de NAP el microcontrolador y que ste despiertadebido aun reset,

GOTO Repetir 'salta a ejecutar nueva'mente la instruccin

cl

.NAP2

d
n r

Por medio de esta instruccin se configura como una salidacualquier pin del puerto que se especifique. pin: esla variable o la constante con la que se especifica el pin que seva a configurar como

L q

t
tl S

I
c

F
PinT del stamp
0sciloscopio c

que para Figura 27,2Circuitos sepueden usar observar elefecto del programa despeftar del periodo deNAE deacuerdo conelanterior

{ZeZp r<rl::.

&f,

prctico Microcontrotadores Curco sobre

L\:U L

Li A

salida,y de acuerdo con el nmero de puertos disponiblespuede estarentre 0 y 7. Es importante recordar que, al comenzar a ejecutar un programa o luego del reset,todos los pines del puerto son configurados como entradaspor el sistemaautomticamente,y, por lo tanto, el usuario debe configurar como salidasaquellosque necesite.

Hacia el pinl/0

T I

Resistencia variable (5-50ko)

0,1" rF

para Figura y lectura 27,3Circuito tpico laadecuada conexin deuna resistencia variable desde elBASIC I Stamp para esto el microcontrolador mide el tiempo que tarda la descarga del condensadora travs de dicha resistencia. pin: es la variableo la constante (de 0 a7) en la que se especifica el pin I/O en donde se ha conectadola resistencia. scalz:eslavariableo la constante(de0 a 255) que seusapara definir el factor de escala del resultado de la conversin, el cual internamente siempre tieneuna resolucin de Ibits.la lecturasiempre esmultiplicada por la siguienterelacin: Resultado = (lectura 16 bits xscale) 1255

Usando esta instruccin se detiene la ejecucin del programa durante el nmero de milisegundosespecifi cados. milliseconds:es la variable o la constante con la que se determina la cantidad de milisegundos durante los cualesseva a detener la eiecucin del programa. La pausapuede estarentre 0 y 65.535ms,y, puestoque usael circuito oscilador del BASIC Stamp I como basede tiempo, su precisinesla misma, *lo/o. Al usarla pausatenga en cuenta que el programa intrprete del sistemaslo puede ejecutar hasta2.000 instruccionespor segundo y que esta velocidad relativamente baja puede ocasionarproblemas si se detiene la ejecucin en momentos crticos, y en ciertas tareasque dependen considerablemente del tiempo.

uariable: es la variable que se usa para almacenarel resultadofinal de la lectura escalada a un valor de 8bits. Con el siguienteprograma, a manera de ejemplo, selee continuamente el valor de un potencimetro conectadoen P3 y el resultadoseenva al exterior por medio de la salidaserialP4. Leerpot:

Usando esta instruccin se puede leer cualquier tipo de resistenciavariable entre 5 y 50k\7, como por ejemplo, un potencimetro, un restato,un termistot o una fotorresistencia(LVR), entre otras. LJn extremo de la resistencia se debe conectar con el pin del puerto, mientras que el otro lado se conecta con un condensadora tierra, tal como seaprecia en el circuito tpico delafigara27.3. Esta instruccin configura el pin especificado como una salida y calcula indirectamente el valor de la resistenciavariable en un instante.

POT 3,L70,b7

'leeel potenci'metro del pin 3


a l-

en D/ 'enva SEROUT 4,N3oo,(b7) la lectura 'serialmentepor 'el pin 4

GOTO Leerpot

va a leer nueva'mente

Por medio de estainstruccin seconviene el pin especificado en una entraday semide un pulso

prctico curco sobre M icrocontrotadores &k

t ".: #

\d
-

de entradaen unidades de 10ms.Esa insrruccin siempreusael contadorinterrlo del sistema que esde l6bit, y por lo tanto la mxima medidaser igual a0,65534segundos. pin: esla variableo la constante(de 0 a7) en la que seespecifica el pin I/O queseva a usar. state: es una variable o una constanteque puedeser0 1 y con la cual sedefinetipo de flanco a partir del cual seva a iniciar la medio cin del pulso, stepuedeserdescendente respectivamente. ascendente aariabh: esla variableque seusapara deposiar el resultado de la medicin.Estadebeser una palabrade 16 bits N0 a \16) para que puedaalbergar el contenidocompletodel contador interno que puede contar entre 1 y detiempo(10ms), o de8 bits 65.534unidades (B0 a B13) paraquepuedacontener el registro msbajo del contador,con el que puedecontar entre I y 255 unidadesde tiempo. .i L I'l IL 5 () t I'l' l,ir,rirre Por medio de estainstruccinsepuedegenerar un pulso duranteun tiempo especificado. Este pulso se produce invirtiendo el estado lgico previo del pin que se haya definido como salidadel pulso. (de 0 t7) en pin: eslavariableo la constante el nmero del pin I/O del la que seespecifica microcontroladorpor el cual seva a generar el pulso. en la que se titne: esla variableo la constante especifica la longitud del pulso en unidades de tiempo de 10ms. Puedeestarentre 0 y 65.535unidades de tiempo,lo que le permite al usuario generarun pulso de hasta 0,65535segundos. .l - l .l 'Will r in,rlutv,c1rlcs produciruna Usando estainstruccin sepuede sealmoduladapor anchode pulsos(P\f/M) sobrecualquiera de los pinesI/O del puerto. Cuandolasalida.P\7M termina,el microcontrolador retornaautomticamente dicho pin

Desde el +l pinl/0 f

1oKa
l+ 1guF* sarida de voltaje antogo

(0a5v)

G ur le ot P(
te

c:l

Ftgun 2T.4 rr,ttrt" ntri#[i:;:,f,;;l:,Ht#i Circuito


a la condicin de entrada,y estonos permite usarestamodulacinparagenerarun voltaje anlogoentre 0 y 5V usandoun circuito con una resistencia y un condensador a tierra conectados al pin de salida,tal como semuestra en la figura 27.4; en estecircuito el voltaje anlogoseobtieneen terminales del condensador, y la sealP\7M debesergenerada continuamenteparaactualizar o refrescar el nivel de la cargadel condensador. (de 0 a7) en pin: esla variableo la constante la que seespecifica el nmero del pin I/O del microcontroladorpor el cual seva a generar la modulacinP'!7M. duty: esuna variable o una constanteentre 0 y 255 con la cual seespecifica el nivel de voltaje esperado, entre 0 y 5V respectivamente. es una variable o rnaconstante entre0 y Ecl6: 255 cnlaodse determina la cantidad decidos de salidCaddcido de salidasetarda5ms y el nmerodeellosqueserequieren est en funcin del amao del condensador, los condensadores msgrandes necesiande un mayornmerode (5V). cidosparaalcanzar su plenacaga l sdidaPVM emiteunar:faga y unos deceros con una relacindeterminad por el valor de la variabledaty, si staes 255, entonces la sdida serun nivel alto continuo,perosi es0, la salida serun nivel bajo pennanente.Paratodos los (d"tl),que estn valores entre delcido deservicio 0 y 255,1a relacin delospulsos esardadapor la expresindutyl255; por ejemplo,si daty es seraproximada50 la relacinde unosa ceros = 0,190. mentedeI19,60/o(501255

P li(

m cc

d la
CI

ca si s

U
n

el

sl

P g

Sali del

rrn, #

prcco curco sohe Microcon*adores

l-eorLa
Cuando la salida P\M se utiliza para cargaf un condensadory obtener entre susterminales un voltaje anlogo,la magnitud de stese obtiene a partir de la expresi6nJ*(dutyl255); por ejemplo, si duty es 200 el voltaje que alcanzarelcondensador seraproximadamenlocation: es una variable o una constante entre 0 y 255 en la que se especifica la posicin de memoria que debe ser leda. uariable: es la variable de Sbix que recibe el dato ledo de la posicin de memoria especificada.

te igual a3,92Y(5*(2001255)).
Paraobtener los mejores resultadosde estasalida, no afectar la modulacin y reducir el nla mero de ciclos de actualizacin necesarios, mudebe ser tal pin se extraiga corriente que de cho menor que 1lA; para esto se recomienda la conexin de un b"ffi, de alta impedancia entre el pin de salidadel microcontrolador y la carga,vJ como el seguidor de voltaje de precisin construido con el operacionalCA5160 que se muestra en la figara 27.5. Esta instruccin se usa para retornar el flujo del programa al cuerpo principal, al finalizar la ejecucin de la subrutina de salto ms inmediata (GOSUB).

Con estainstruccin el usuario puede invertir la configuracin actual de un pin del puerto del microcontrolador en todo momento, si el pin esuna entradaseconvierte en una salida, y viceversa. pin: es la variable o la constante entre 0 y 7 con la que se especificael pin que se va a invertir.

Usando estainstruccin sepuede generarun nmero seudo-aleatorioen una variable tipo word. taordaariablz: es una variable de l6bts que puede estar entre 0 y 65.535, y en la cual se encuentra el nmero seudo-aleatorioque resulta de la ejecucin de estainstruccin.

Utilizando estainstruccin sepuedeleercualquier paictn de)a memoia EEPROM dd $stema y guardar el valor en una variable determinada.

Por medio de estainstruccin, que se puede escribir en los tres formatos aqu indicados, sebabl)u un ptn de) puerto comD una e)ztrada serial y seentra en un estadode esperapara las restricciones y las variablesopcionales. Esta instruccin recibe un bytealavezylo si stao compara con la o las restricciones, stasse satisfacen, se guarda en la variable correspondiente.

PWM Salida delStamp

pin: esla variableo la constanteentre 0 y 7 con la que se especificael pin que va a ser usado como puerto de entrada serial. @carsa baudmod: es una variable o una constante entre 0 y 7 con la que se define el modo de trabajo y la velocidad de recepcinserial;en la tabla 27.3 se muestranlos ocho posibles conel amplificador de voltaje deprecisin Figura27.5 Seguidor C45160 modos de configuracin de la entrada serial, operacional
4,7K

de Salida voltaje para ra

prctico t '.: # sobre Microcontroladores curco &k

&fr

urlcrccnuc,La.ctcs E-{SL cnlunlc ce lnsuucclcues ce Ls Sranrl L


# Smbolo Velocidad Polaridad 0 T2400 2.400 No invertida 1 T1200 1.200 No invertida 2 T600 600 No invertida 3 T300 300 Noinvertida 4 N2400 2.400 lnvertida 5 Nl200 '1.200 Invertida 6 N600 600 Invertida 7 N300 300 Inveftida baudmode: es una variable o una constanre entre 0 y 15 con la que sedefine el modo de trabajo y la velocidad de transmisin serial; en la tabla 27.4 semuestran los posiblesmodos de configuracin de la salida serial,stos pueden escribirseusando los nmeros del 0 al 15, o los smbolosequivalentes para cada modo. En esta tabla aparecen los parmetros que se pueden cambiar, los otros son los usadospor el formato serial estndar que se denomina N81. data: son las variables o las constantes opcionales (entre 0 y 255) de Sbix cada una, que contienen el dato que se va a enviar serialmente. Cuando el dato estprecedidopor el smbolo # se transmite como una cadena de caracteresde texto (con longitud entre uno y cinco caracteres); pero cuando no, los datos se transmiten como un simple byte. Como un ejemplo seescribenlas dos siguientes instrucciones de transmisin serial a I.200bauds y con polaridad invertida: con la primera se enva el valor 65 que equivaley se recibe como la letra "A" de acuerdo con el cdigo ASCII; mientras que con la segunda se enva la cadenade texto de caracteres numricos"65". # Smbolo y modo Velocidad Polaridad desalida 0 T2400 2.400 No invertida 1 T1200 1.200 No invertida 2 T600 600 Noinvertida 3 T300 300 No invertida 4 N2400 2.400 Invertida 5 N1200 1.200 Invertida 6 N600 600 lnvertida 7 N300 300 Invertida (drenador 8 0T2400 2.400 Noinvertida abierto) (drenador 9 0T1 200 1.200 Noinvertida abierto) (drenador 10 0T600 600 Noinvertida abierto) 11 0T300 300 Noinvertida (drenador abierto) (fuente 12 0N2400 2.400 Invertida abierta) 13 0N1200 1.200 Invertida (fuente abierta) 14 0N600 600 Invertida (fuente abierta) 15 0N300 300 Invertida (fuente abierta) Tabla 27.4Tabla deopciones delnododeconfiguracin dela salida serial

Tabta 27.3 Tabta nodo de opciones det ot**,n!ffi!!i,li,


stospueden escribirseusando los nmeros del 0 d,7, o los smbolos equivalentes para cada modo. En esta tabla aparecenlos parmetros que se pueden cambiar,los otros son los usados por el formato serial estndar,denominado a menudo N81, y que son: sin bit de paridad,Sbits de datosycon un bitdeparada. opEnffiers: son las variableso las constantes las rescionales(entre 0 y 255) que representan triccionesque sedeben recibir en el orden especificado en el formato de la instruccin, antes de continuar con la ejecucindel programa. uariabbs: sonlasvariablesopcionalesque seusan para almacenarlos datos recibidos (pueden ser hasta255). Si estn precedidas por el smbolo # la instruccin convierte el texto numrico en un valor antesde guardarlo en la variable. Como un ejemplo,la siguienteinstruccindetiene la ejecucin del programa hasta que se recibenserialmente por P0, a2.400baudsycon polaridad invertida, los bytesqueconforman la cadenade caracteres CONTINUAR. (Jna vez la restriccin se cumple, se guarda el byte que siguienteen la variableb3.

SERINo,N24oo,(CONTINUAR),b3

Por medio de esta instruccin se habilita un pin del puerto del microcontroladorcomo una salidaserialapta para la transmisinde datos. pin: es la variable o la constante entre 0 y 7 con la que se especificael pin que va a ser usado como puerto de salidaserial.

J Ib'- : dfiXln.i. *ttp

prctico Curco sobre Microcontrotadores

\f,

L\;gL

(PC/AT) DB-9 hembra (Lado desoldadura)

(GND) Tiena Pin l/0 (SERIN) Pinl/0 (SEROUT) (PC/XT) DB-25 macho (Lado desoldadura)

Si el microcontrolador estmanejando cargasy entra en el modo sleep, es importante que el usuario siempre recuerdeque la corriente a travs de estasser interrumpida durante 18ms cada vez que ste despierta, debido a la ejecucin del reset del temporizador del watchdng lo cual se genera cada 2,304 segundos.

Esta instruccin convierte el pin especificado en una saliday generapor l un tren de pulsos de onda cuadradacon una frePin l/0 (SERIN) cuenciadeterminada(una nota), y con una Pinl/0 (SEROUT)duracin determinada. Para conectar di(GND) Tierra rectamenteel parlante a la salidade tono, y pines para se pueden usar los dos circuitos que se Figura 27.6 Estructura delosconectores DBdeI 25 y elBASIC transmir datos entre laPC Stamp I muestran en la figura 27 .7 .

SEROUT l,Nl2oo,(65) 'se recibe la letra


(.(At

10uF tiitfio'J-r

220el

(#65) 'serecibela cadeSEROUT 1N12oo,


'na de texto "65"
Paraenviar o recibir datos serialeshacia y desde la PC, el BASIC Stamp I requierede una resistenciade 22kQ y alguna de las dos estructuras para los conectoresde los puertos DB de 9 y 25 pines que se muestran en la gan 27.6.

#f,''ff1 I\
=

- %1','0fi0'

para Figura 27.7 Circuitos tpicos conectar directamente un parlante dealtaimpedancia alpuerto delBASIC Stamp I pin: esla variable o la constante por medio de la cual seespecifica el pin I/O que seva a usar como salidade sonido,puedeestarentre 0 y 7. note(s):son variableso constantesque pueden estar entre 0 y 255 y por medio de las cualessedefine la frecuenciadel tono de salida. Con la nota 0 se produce silencio (OHz), con las notas I a I27 se producen tonos de frecuencia ascendente entre 94,8H2 v
- 95X10-6

Esta instruccin hace que el microcontrolador entre en modo de adormecimiento o de bajo consumo (modo sleep) durante un nmero especificadode segundos.En estemodo el consumo del microcontrolador se reduce de 1mA a cercade 209A. seconds: esla variable o la constante en la que se especificala duracin del modo de adormecimiento en segundos, y puede estarentre I y 65.535 con una resolucinde 2,304s;esto quiere decir que su duracin puede estarentre 2,3sy 18h.

127 NoTA=

(Hz) Frecuencia

ffix10-6 1 95X 10-6 + ((27 -N ota)X 83X 10 - 6)

(Hz)= FRECUENCIA

para y la nota Figura 27.8Ecuaciones determinar la frecuencia deltono desalida

curcoprcticosobreMicrocontrotadores &kl

& 7z:%)
t

lirsuuccloues orlunlcrj.e Los nricroccnr-r'ola.oi'ss E-{SL d.e Slanrl L


10.550H2, y con las notas 128 a255 se generan ruidos blancos ascendentes. duration(s).'son las variables o las constantes por medio de las cualesse especificala duracin de la emisin de cada nota. Pueden estarentre 1 y 255, y la unidad de tiempo es l2ms. En las ecuaciones de la figura 27.8 se muestran las dos relacionesque hay entre la frecuencia de salida y la nota, cualesquiera de staspuede ser de mucha utilidad para el usuario a la hora de calcular el tono de salida.

Por medio de estainstruccin seguardao escribe un dato deSbits enla localidad de la memoria EEPROM del sistemaque seespecifique. location: es una variable o una constanre entre 0 y 255 por medio de la cual se especifica la posicin de la memoria en la cual se va a guardar el dato. data: esla variable o la constanre que va a ser escritaen la EEPROM en la localidad definida, por serde Sbits puedeesrarenrre 0 y 255, y debe estar expresadaen cualquier formato compatible y aceptadopor el programa editor del BASIC Stamp I. Con el siguiente programa se aclara el uso de esta instruccin, con esta pequea rutina se recibendatosen seriey sealmacenanen posiciones consecutivas de la EEPROM. READ 255,b2'captura la posicin dela ultima 'irutruccin del programa Repetir: 'decrementa b2=52-1 hasta la prxi'maposicin delaEEPROM disponible 'recibe SERIN 0,N300,b3 un byteen serie en

Estainstruccin seutiliza para convertir el pin I/O especificadoen una salida y cambiar su estadolgico de I a 0, yviceversa,cadaquese ejecuta. pin: es una variable o una constanteque est entre 0 y 7 y siwe para especificarel pin al que se le cambiar el estado. A manera de ejemplo se escribeel siguiente programa: en l se configura como salida el pin 7 y se cambia su estadolgico 10 veces.

'b3
WRITE b2,b3 'guardael be recibido en

FORbI = 1TO 10 'la siguiente posicinde la . .EEPROM TOGGLE 7 secambiaelaadodePT NEXT IF b2>0 THEN Repetir'saltaa caprurar otro byte

PARA MAS: SABER Redes decomuncacn I conBASIC STAMP que Eneldiagrama semuestra enlafgura por 27.9 seindica, medio deuncircuito simple, laforma latecnologa deusar dedrepara (open nador abiefto drain), conectar dos 0 msmicrocontroladores BASIC Stamp I PC, conuna o cualquier terminal, a travs deuna lnea decomunicacin serial deuna red dedatos.
$ttb

Ge un cic tib mi gu

PC Terminal

Pa 8u gu uri

para Figura 27.9Circuito conectar mltiples sistemas BASIC Stamp I enred

tec

&d

&lct,L

prcco curco sobre Microcontrotadores

i? r ;:' ::!::.,-

Generalmente los productostecnolgicos poseen un sucesor que esuna nuevaversincon otrasfuncionesy caractersticas innovadoras,pero compatible 100o/o con susantecesores; tal es el casodel microcontroladorBASIC Stamp II, que es la siguienteversindel BASIC StampI. Parael BASIC Stamp II seha desarrollado un lenguajedenominadoPBASIC2,y sehan agregado algunasherramientasde harduarey sofiutare de gran utilidad pafael programador,adems de una arquitecturay un soportede programacinmejorados.
prctico curco sobre Miuocontrotadores &kn.t #

B/l,StC Stunrn [[ Losnrler'oconaladoti:s


intrprete de lasinstrucciones, una memoriade acceso serialtipo EEPROM, un reguladorde +5V un oscilador, un circuito de reset automtico, y una interfazde comunicacin serial. Para programar el BASIC StampII el usuario slodebecontarcon algunos requerimientos mnimos en su equipo, que son: el programaadecuado, una computadora con sistemaoperativo MS-DOS 2.0 superior, l28Kbytesdisponibles en memoriaRAM, y un puerto seriallibre.
P IN

En estaleccinestudiaremos el microcontrolador BASIC StampII (BS2-IC),desarrollado por Parallax, Inc. Estemicrocontrolador seconstruy usandola tecnologa de montajesuperficial paraobtenerun dispositivo de bajocosto,reducido tamao,altaeficiencia y grancapacidad, que puede ser usadocomo una pequeacomputala el comercio, doraen trabajos paralaindustria, el entretenimientoy el hogar. educacin,

6 8

T 10
11

i
13 n
tc :; to aa

El BASIC StampII secomponede un entorno deprogramacin amigable, un lenguaje deprogramacinpropio y una estructurade circuitos La versin del BASIC Stamp BS2-IC que se extendidacomo soporte.El lenguajede progra- muestra en la figura28.I, tal comoseaprecia, se macinsedenominaPBASIC2y ha sidodesarro- desarrolla en una estructura DIP (de doblefila) llado por Parallax a partir del lenguajePBASIC (36 insnmerodeinstrucciones con un reducido trucciones), todasmuy compactas, verstiles, poy de f;cil manejo;entre las nuevasinsderosas trucciones sepuedenenunciar:COLTNT (rutina paracontarciclos),RCTIME (rutina paramedir lasconstantes de tiempo RC), FREQOUT (rutina paragenerar seales seno), y DTMFOUT (rutina paragenerar tonostelefonicos), entreotras. El hardwaredel microcontrolador BASIC sobre un pequeo circuito StampII seconstruye impresode montajesuperficial, y en el cual se PIC incluyen:un microcontrolador de Microchip con el programaresidente(firmutar) del
8 g :P S= P o .o
>o- 0- o- o- o- o- o.e.

]E t0

21

24

de2

Ple : otro rosd Laa defir micr

a cor

mid

En lr diag Stan
unn

flS r

(u1

tem
tfUCt

Prog

men

2.0, 24L
guaf

y distribucin y pines Aspecto fsico Figura 28.1 deloscomponentes delBASIC Stamp ll

por r

&krr*

prctico Microcontroradores curco sobre

LL-U L L

PIN NOMBRE 1

DESCRIPCION

COMENTARIOS

2 3
4
b

TX RX
ATN GND P() P1
YZ

(M) DB9 Salida serial Conectar al pin2 delpuerto serial seral DBg Entrada serial Conector al pn3 delpuerto [IX) senarubg [u I H) AHrcin,rsddirron anD uoneclar arprn4 oerpueno Terra serial PinY00
Pinl/0 1
? NVU

6 8 I
IU

P3
P4
Pb

En la figura28.3 semuestrala tajeta paradesarrollo de prototipos l/0 8 Pin (carcierboard)diseadapor Para14 Pinl/0 I 15 Pinl/0 10 llax parael microcontrolador BA16 Pinl/0 11 SIC StampII, sta cuentacon ternormal ll consume Durante laoperacin elStamp cerca Pinl/0 12 deoperacin de8mA, sn embargo enlosmodos debajo 18 Pn l/0 13 minales la para conexin con una sepuede reducr a cerca de50U4. consumo 19 PinY0 14 batera de 9VCC, un conector l/0 15 20 Pn requlada Fuente Entrada re0ulada de + 5Vv salida tipo DIP parala conen 21 +5V de+5V Gocka) (se a0 Dara resetear en0 durante elreset) 22 RES Reset actlvo enbaio Llevar Done del BASIC Stamp II, dos conec23 GND Terra delsstema (6tores en lnea paralelosal micro+5V requlador Entrada requlador de voltaie de l 5 voltios) 24 PWR Entrada al al y descripcin delBASIC Tabla 28.1Distribucin depines Stamp ll controlador que dejandisponibles todossuspines,un pulsadorpara a la conexin y elreset, de 24 pinesparafacilitarsu aco- tomtico de reset un conectorBD9 hembra ple y compatibilidadcon los desconexin(U3), un regulador para la comunicacin serial con y table- de voltajeintegradode +5V (U4) la PC, y la tarjetamultiusossobre otroscircuitosimpresos (protoboards). que alimenta a todo el sistema, la cual se pueden desarrollarperosde conexiones
11

12 13

P6 P7 P8 P9 P10 PI P2 P3 P4 P5

Pinl/0 3 Pinl/0 4 f lnv uc Pinl/0 6 Pinll0T

pueno senar ub9(uNu) uonecrar arprn b oer pinpuede manejar 20mA enmodo Cada y 25mA source enmodo sink y P8-P1 grupos, pueden manejar P0-P7 5 como source untotalde40mAenmodo v 50mA en modo snk
porparte Para seleccin automtica delpuerto seral, ll,se delsoftware delBASIC StamD deben unirlos0ines (pin6) y (pin puerto DSR RTS 4 del serial DBg. Esta conexion delBASIC esu hecha enlah4etadeprototipos Stamp ll pero (carier lEcer board), ssedesea una hrjetaespecnca, tener hacer dicha conexn. sedebe Dresente

un circuito de oscilacin de 2}MHz,y una interfaz de comunicacin serialRS232 para nivelesde comunicacin de +l2Y y -

12V(Q1,Qz y Q3).

La asignacin y las funciones definidas paralospinesde este sedescriben microcontrolador a continuacin en formaresumida en la tabla28.1.

voo vril vss


Ul PBASIC2 t22)
Resonador i I ceramtco 0e; 20 MHz

En la figura 28.2semuestra el diagamaelecrnicodelBASIC verse: StampII, en ellapueden de 28 piun microcontrolador nes de Microchip PICI6C57 (Ul) queesel "corazn'del sisel temay enel cualest grabado intrprete programa de lasinstrucciones del PBASIC2,una memoriaserialEEPROM de 2.048byrcs de Microchip 24LCI6B (U2) que recibey guardael programadiseado por el usuario,un circuito au-

+5V 47k

{#

PttEs r/0

Como salidas: En co n l g r r ci f so u r ce p u e d e n m a n e i a r 2 0 m A y e n sr n k 2 5 m A Coo entradas: C o n s!'n e nm e o sd e l IAy I e n e n u vo l a i e d M b r a l de I 4V

ooaeo
6 @ F6 0

Figura28.2Diagrama Stamp ll electrnico delBASIC

oprcti curc coso breM icrocont ro tado re s &k

t *.: Stb

\d

utro latiu resE/{S[C r [[ Lusnrlct'uco Stiiiur

cribenlaslocalidades del mapade memoriaRAM disponibles para el programador, y los registros, nombres, y funciones definidas paracadauna.

0L

Di

Entrada de +9VCC

prntntWs Figun 2t).3 Tarjeta del nicrocontolador MSIC Sbmp ll de

queos circuitos prototipo, lo que resultabastante til en la etapa de experimentacin y desarrollo de cualquierproyecto. Mapa de memoria RAM delBASIC Stamp ll Los circuitos que se construyansobrela tarjeta de prototipos, pueden seralimentados con el re- I gulador interno de +5V de todo el sistema;pero, en vista de que el regulador tiene una capacidad mxima de 50mA, y el microcontroladorconsume 8mA, stosno deben consumir ms de 42mA.

Las primerastres posicionesdel reade memoria son palabrasde 16 bits (word) y seasociancon el control de los puertos; la primera palabra,la variable INS, esde slo lectura y contiene el reflejo del estado lgico presenteen los 16 pines I/O del puerto (P0 a Pl5), mientrasque la segunda variable OUT esde lectura y escritura,y contiene el estadobinario de las salidas.

Pin

Cir c u exte

c1 0 r 1A -

OUTS
DIRS

palabra, entrada; byte, nibble v bitdireccionables i palabra, desalida; OUTL i OUTA,OUTB, - 0UT7, byte, I j Pines I 0UT0 OUTH i_qqr!_qura__Lqulq -0ur1 5lrlE r !!!qtre9s9!ab_!qs_ _ ___l

rNB, i rNo - rN7, tNA,

m a.

cofl'

DIRL DIRH

l/0 decontrol - DlR7, i Pines de i DlM,DIRB, i D|RO palabra, nibble DIRD I olna- DlR15idireccin; byte, i DlRc,

WO

BO 82

v bit$_4q9q!lg_____.r propsito palabra, i general; , De i Depropsito general; palabra, i

i I

var:

En

tfO,.

j.!re,!Lb_uq"Lq!!-8ue9g_orgug!_i
propsito general; palabra, , ' De

c1(]: co n

W4 I Este microcontrolador tiene 2.048 posicionesde 8 bits disponlblesen la memoria de programa tipo i_ EEPROM y 32 bytesde I memoria RAM para el usuario; en staltima, los primeros6 estnreservados paraconfigurarlos pinesde I entradao saliday controlar la direccin de los mismos, mientras que los restantes 26 estndisponiblescomo variables de propsitogeneral. En la figt:ra 28.4 sedes+i#
l*

w5

i i i i
I

88 Bg 810 811
h {^

_.*._."-Qy!g_U!_bl9J_qf l$,ecq9!$j9s_*r propsito general; palabra, : De _!r!9.!D!.e_y._qi!irrqg1g&U-e_9___


, i : i i general; palabra, I Depropsito nibble , byte, v bitdireccionables i general; palabra, ,, Depropsito
n^ - - ^ - l ^ ; ^

coI] Dro tr o .

w6

iafl j 813 W7 i Sl
WB W9 i i i r 815 816 818 819

i"!Sg,ni_b.U_ernit_Qugca!9lalLqg_r
propsito general; palabra, i I De

'
i i :

-._"
_ , i I _

_j_Uyte,ni8.U!9J-!il_Ore-q9r9[4_b,!9!__r propsito general; palabra, I i De


, ;byte,nibbleyQitdireccionables propsito general; palabra, . i De
nibble v bitdireccionablesi

'w--**l.-----

j De propsito general; palabra, ) : y bitdireccionables byte, nibble


nibble ; bvte, v bitdireccionables i

propsito general; palabra, i I De y bitdireccionables nibble __-_l_byte, . j propsito general; palabra, I i De y bitdireccionables nibble byte, .
Figura28.4Mapade Ia memoria MM disponible delBAS\C Stamp ll

&,Xln:.

prcticosobre Microcontroladores Curco

DIRS:

cul de Elregistro DIRS controla y cules pines los U0 son enfadas pone laenfada Cuando se salidas. enel en0,elbitconespondiente y se registro outssedesconech ignora. lasalda en1,el Cuando sepone enelregistro bitconespondiente oUS seconecta.

dora y el cableDB-9 a DB-9 que el fabricante para estepropsito,o suministraespecialmente uno similar; en la figura 28.6 semuestrala configuracin que tiene el conectorque se incluye en la tarjetade prototipos del BASIC StampII.

Pinl/0: Circuito externo:

lt 01 ?

01?01

tl x

l{ota: eshdo, un0 cualquier "X"indica y noafecta otros El lenguajede programacin un1 lgicos del BASIC Stamp elementos. "?"indica desconocido uneshdo II estcompuesto por un conjunto reducidode que puede encualquier cambiar (36 instrucciones instrucciones) de alto nivel y momento.

PBASICZ Instruccione$ dellenguaje

Fisura2s'5nasnma**'"rli,'J:f::iif!:fr{f Parallax teniendoen cuentalas instrucciones de 3,j?3 la versinanterior (PBASIC)y agregando alguCon la palabraDIRS se configurala direccin (como entradao salida)de cadauno de los 16 pinesdel puerto. nasotrascon funcionesespeciales. insEn estaseccin lasnuevas seestudiarn trucciones y lasmodificaciones de estelenguaje que se han hechosobrelas de l versinanteEn la figura 28.5, por medio de un diagrarior (PBASIC), estudiadas antes.Se presentay los resultados de lasrelaciones ma, seresumen rn en orden alfabticoparafacilitar su bsquelgicos entre las de los estados combinaciones que existeny da y omitiendo las instrucciones de control DIRS, OUTS e INS. variables operanigual en las dos versiones del lenguaje, aslcomo tambin,aquellas que slosufrenuna ll delBASIC Stemp Programacin en la variableo constante llamadapin, extensin En lo que a la programacinde estemicroconque en el Stamp II puedeestarentre 0 y 15 y lasinstrucadems de conocer troladorserefiere, que serefiereal nmero del pin sobreel cud se ciones del lenguajePBASIC2, el usuario debe esttrabajando. conocerel programade desarrolloque suministra el fabricante,desdeel cual, se puedeeditar, l . {,Ot-lNT pin,periorl,virriablc compila depurary transferirel programa.Para Con esta instruccinsecuentael nrimerode cidel microconprogramary depurar el sofiware clos(cambios d estado de 0 a 1 a 0, , de 1 a 0 trolador seutiliza el puerto serialde la computaa l) quelleguenpor un pin especificado durante un periododetiempo definido en milisegunBS2Pin (f) dosy seguardael valor de la cuentaen una vaRx (1) s0ur riable.Para el conador pueon.lasrecangulares Tx ') sttl lz de responder hasa una frecuendade l25VJIz. DTR

ha sidodiseado por sedenominaPBASIC2;ste

)nrN(s) (a) Vss

89 RTS

del decomunicaciones delconector frgura28,6 Configuncin BASIC S;hmp ll

pin: es una variableo una constante9\re especificael pin I/O que seva a usarcomo entrada del contador,puedeestarentre 0 y 15. entre period: esuna variableo una constante el tiempo 0 y 65.535con la cual seespecifica (en ms) que va a durar la cuentade los ciclos. variable:esla variable,generalmente una palabra, en la cuse debeguardarel resultado del contadorde ciclos.

prcco sobrc Microcontotadocs cuso <mt

:. lJ -,11 L;{, {nirpuf d;rta i,ou trutdata... } Con esta instruccin se puede mgnitorear el curso del programa en cualquier momento y por medio de ella sepuede visuelizar cualquier variable o mensaje en la pantalla de una PC conectada con el BASIC Stamp II. outputdata: puede ser una o varias de las siguientes opciones: cadenasde texto, variables, constantes,expresiones, modificadores de formato, o caracteresde control. nrc,I t, tonc.",I .i. l]'f n { F{-}L}'f rin,{ontinrer,c{lii Utilizando esta instruccin se pueden generar tonos dualesde multiples frecuencias(Dual Tbne MubiFrecuenc!, DTMF), compatibles con el sistemade comunicacin por tonos de las redes telefonicas. pin: es una variable o una constante que especifica el pin I/O que seva a usar como salida, estentre 0 y 15. ontime: esuna variableo una constanteopcional ene 0y 65.535 con la cud seespecifica el tiempo (en ms) que va a durar el tono. Por defecto, si no se especifica,es 200ms. oftime es una variable o una constante opcional entre 0 y 65.535 con la cual seespecifica el tiempo (en ms) que va a durar el espaciode silencio entre los tonos, o al final del tono. Por defecto, si no se especificaes igual a 50ms. tone: es una variable o una constante (entre 0 y 15) que especificael tono DTMF que debe ser enviado. Entre 0 y 9 corresponde con los tonos de los dgitos 0 a 9, con l0 equivale al carcterstar (*), con 1i tl carcter nmero (#), y entre 12 y 15 corresponde con la cuarta columna de tonos, A a D, usadosen equipos de prueba telefnicos v de radio.

cremento seha cambiado por el valor del paso (stEaal)que tambinpuedesernegativo.


5. IiIl [:Q{ ) L.]'l'p i n,tlu ratiorr,freqI i. f req2 i

Utilizando estainstruccin se pueden generar uno o dos tonos con ondassenodurante un tiempo determinado. pin: es una variableo una constanteque especificael pin I/O que seva a usarcomo salida, estentre0 y 15. duration: esuna variableo una constante entre 1 y 65.535conla cualseespecifica el tiempo (en ms) quevan a durar los tonos. freql y freq2:sonlasvariables o lasconstanres, la segunda opcional,por mediodelascuales se especifica la frecuencia del tono en Heru; puede estarentre 0y32.767.
{'}. Pt rt.SOt-J'l' pirr,tinrt'

nC

Por medio de estainstruccinsepuedegenerar un pulso por uno de los pinesdel pueno (0 al 15) durante un tiempo que puedeestarentre 2msy l3lms, con resolucin de 2ms.lavariableo constante rnepuedeestar enrreI y 65.535.
:. l)V/i\'{ n,dutr.,cl'clt-s ri

ti

,* " FO I{ r , rrilrble = strlr-r'1.() cnd iS' t ' t iP str'prrali...hiEXT' \ Con estainstruccinse implanta un lazo del 8. l{(If Il\4[]r. ,resultv:rrirbIc rin,stale tipo FOR...NEXT tal como en la instruccin Utilizando estainstruccinsecuentael tiempo de la versinanterior,pero,en estecaso, el induranteel cualun determinado pin permanece

Usando esta instruccin sepuede produciruna sealmoduladapor anchode pulsos(P\fM) en cualquierade los pines I/O del puerto, y convertirun vilor digital en uno anlogo(un voltajeentre0 y 5V desarrollado sobrelos terminalesde un condensador). Con la variable o la constante pin (entre0 y 15) seespecifica el nmero del pin I/O del microcontrolador por el cual se va a generarla modulacin PWM, mientrasquecon cycles, quepuede ser unavariable o unaconstanre entre0 y 65.535, sedeterminala cantidadde ciclosde salidade lms cadauno. Con duty sedefinela relacin de cerosy unos, que esconocidacomo el ciclo de serviciode la sealmodulada.

&irr*i

praico curco sobre Microcontotadores

leorla
+c220r)
| -1AA F

+5V

paridad par), y el bit l4 controla la polaridad 0",0,=-,,1,"l#FJ] (0= direcra, I y l=inverrida).


f r a-l

Ll

I I -1F

estadorsrco

> pint/0 Usado con

220a
PinU0 usado con estado lgico 0

I=

Figura2B.TRedessuseridasparartrrf i::r:r;r;:r::::l:,#;
en un estado.Esta instruccin se ha diseado para.medir los tiempos de cargay descarga de condensadores en redescon resistenclas (RC). pin: es una variable o una consranteque es_ pecificael pin I/O que seva a ,r"r.oo .rtrada, esrenrre 0 y 15. state: es una variable o una constante que puede ser I 0, por medio de ella, sededn. el estadoque sedebe alcanz ar parafinalizarla medicin del periodo RC. resulwaiable:esla variableen la cual seguarda el tiempo que ha resultadode la medidal el alcanceesrenrre0 y 65.535 en unidades de 2s. En_la figura 28.7 se muesrran dos tipos de redesque pueden ser utilizadaspara medir el periodo RC, y la ecuacinque seusaparaello.

B
> >
B

plabel: es la etiqueta opcional con la que se nombra la posicin a la que se debe saitarsi se detectaun error d. p"ridrd. timeout es una variable o constante opcional (de 0 a 65.535) que sirveparadefinir.liiempo (en ms) que sedebeesperar pararecibir un dato. tlabel: es una eriqueraopcional que hace referencia a la posicina la cual sedebesaltarsi se detecta que un dato no ha entrado en el tiempo especificadopor timeout. inputdata: es una lista de variablesv modifi_ cadoresque le informan al micro.ontrolador lo que se debe hacer con los datos que van llegandoen serie.

r
't t

L F

Por medio de los dos formatos de esta ins_ truccin,que aqu semuestran, sehabilita un pin del puerro como una salida serial de da_ tos no sincrnica(tal como la RS232). tpin: esla variableo la constanre entre 0 v t6 con.la que se especifica el pin qr. ,n" ,., usado como un puerto de salida serial. Con l6 se elige la salidaserialdedicadadel siste_ ma (SOUT). baudmode: esla variableo consranre de l1bits con la que sedefine el tiempo y la configura_ cin de datos. La funcin asignadap" ,,r, bitses similar a la de la instruccinSERIN. pace:esuna variableo consranre opcional (en_ tre 0 y 65.535)cue sirveparadednir el tiempo (en ms) que se debe esperarpara transmitir un nuevo dato. outputdata: es una lista de variables,cons_ tantesy modificadoresque le informan al mi_ croconrrolador cul es el formato de los da_ tos que se van a enviar. frin: esla variableo la consranteopcional entre 0 y 15 con la que sedefine cul va a serel pin pasael conrol del flujo de datos durate la ru_ tina de transmisin bya a byte(handshahing). T".:.

G:

{
, '1

lr-

:rr
k

Or_-

tr
E:

r
t:

Por medio de esta instruccin se habilita un pin del puerro como una entradaserialde datos no sincrnica(tal como la RS-232). pin: es la variable o la constanreenrre 0 y 16 con la que seespecifica el pin que,r" r.r rrr"do como puerro de entradaserial.Con " 16 seespe_ cificala entradaserialdedicada (SIN. del sistema es una variable o una consranre frin: opcional (entre 0 y 15) con la que se define ..rl .r," a ser el pin de control de fluio de datos. baudmode: es la variabl. o .orr.t".rte de 16 bits con la que se define el tiempo y la configuracin de datos. Los bits del0 al i3 definen el tiempo para un bit recilido menos 20s, el bit 13 controla la longirud del dato y la paridad (0= 8 bix sin paridad, f l= 7 biti con

prctico Curco sobre Microcontroladores @Efr(f -

l , ,:.1 lt I l

En este caso los interruptores operan tal como en SHIFTIN, excepto que dataes lavariable o constanreque contiene el dato que se va a enviar y slo tiene dos modos; tal como se muesrra en la tabla 28.3. Tahla %2 Modos derecepcin sincrnica conla instruccin SHF4N

timeouc esuna variableo constante opcional (de0 a 65.535)queseusaparadefinir el tiempo (en ms) que sedebeesperar pararecibir el permisoparaenviarun dato. tlabel: esuna etiquetaopiional que hacereferenciaa la posicina la cual sedebesaltar,al detectarque no seha dadoel permisode transmisindentrodel tiempodefinidoentimeout.
I I ^ . \ l llF ' i' lll rl ri n ,,' ' ' irrr,i n .i -' ,1 rl rr,i i l \[ri1:,1 1..tr..,rj l

t"1.5f ()l'

Cn esa instruccinsedetienela ejecucin en (se"congeld'), cursodelprograma peroel microcontrolador no reduce el consumodepotenciai I" ti ,' j ),1' ' i. ul tl rcss.hv{ t: Con esta instruccin se escribe directamente

un hyte en la memoriaEEPROM del sistema. address: es la variableo la constantecon la que se especifica la localidadde la memoria queva a serescrita con un dato de 8bits.Prcde estarentre lasposiciones 0 y 2.047. be: esel dato con formato de un bytequre se va a guardaren la memoria. i {. }:( }i iirrpin"?in-ilxnrse"k:onuuruurtl b,t*ri". ] Con estainstruccinsepuedenenviarhasta 10 comandosa travsde un pin del puerto, el cual esusadocomo lfneade control. stos se envan moduladosy deben recibirsepor medio de la interfazapropiada.

1\bitsf...li Con estainstruccinserecibendatosen formato seriey con desplazamiento sincrnico. dpin: esla variableo la constanre entre0 y 16 con la queseespecifica el pin receptordel dispositivo de transmisinserialsincrnica. cpin: esla variableo la constante enrre0 y 16 con la que se especifica el pin que va a ser usadocomo el reloj de sincronizacin. modq hay cuatromodosque puedendefinirse consusslmbolos o conlosnmeros entre0 y 3. En la abla 28.2 sedescriben dichosmodos result: puedeser una variable tipo bit, nibbh, del dato. btt, word.Ensa seguardanlos r bits: esuna entrada opcionalquedefineel nmero de bits quedebenserrecibidos(entre 1 y 16).Si no seespecifica, seasume como 8.,

mpin: especifica el pin I/O del puerro (entre 0 y 15) que seusarcomo sdida mltiple de comandos(todosmodulados). zpin: especifica el pin I/O (entre0 y 15) que seusarcomo entradade crucepor cerodesde la interfaz. jrr,: I \ house: i il;rt.r especifica I l. St-{lt-"I{}LI I- dPin.erir.tr-:tli:. el cdigo de los comandos { bi'.," enviados, il con valores i.". entre 0 y 15 serepreI\l''its sentan los comandos equivalentes Con esta instruccin se envan datos en forpara las letrasentre la A y la P. mato serie y con desplazamiento sincrnico. keyorcommand: especificala tecla o el comando de control equivalente. cycles: es un interruptor opcional y por defectopermanece en 2. Se usa paraespecificar el nmerodeveces que Tabla fr.3 Modos detransmisin sincrnica la instruccin con SHF\0UT sedebetransmitir el comando.
j

Ir ha
ta

dc

D 51

ge nr d

&<t; #

prcrico curco sobe Micrrconotadoes

Los microcontroladores desarrollados por Intel, han sido los pionerosen el manejoy desarrollode tareas que involucran sistemas de control embebidos de pequeay medianaenvergadura. la familia MCSDentro de la amplia gamade stos, a estudiaren estaleccin,esla 51, que seempezar n avartzada una arquitecgeneraci de 8bits que posee tura optimizarpara la ejecucinde lastareas orientaen tiempo real. dasal control digital de procesos
prce,o curco sobre Microcontrotadores &kl f't #

Lur.cL Lusnr[cLoconutrlarlctlrs 05i d.e


desarrollo y entrenadores para esta tecnologa que nos facilitan su apren dizaje.

en Intel ha sido una de lasempresas pioneras compael desarrollode microcontroladores de las PC. tibles l00o/ocon la arquitectura

Entre los sistemasde desarrollo ms conocidos se pueden nombrar: el EV80C5l de han evoluciona- Intel, el CEIBO DS-750 de Philips SemiEstosmicrocontroladores do a travsde las familias MCS-48 (primera conductorsy el DS 5000TK de Dallas Semide 8bits), MCS-5 I (generacin conductors; tambin se ofrecen otras herrageneracin de mientas, como el emulador avanzado ICEde Sbits),y MCS-96 (generacin avanzada l6bits y aka velocidadde procesamiento); 5100 de Dallas y circuitos para entrenamienen versiones par- to, tal como el entrendor para 87C752 con tambin,han sido fabricados que los referencia K- 144 de CEKIT S.A.. ticularespor muchas otras empresas

distribuyeny utilizan en sus propios dispositivos y sistemas, tal esel casode los microcontroladoresPHILIPS serie87CXX, de los Dallas DS5000y los Siemens SAB 8051, todos equivalentes a los Intel 8051. La familia MCS-51, cuyo estudioseempezar en estaleccin,esla que mspopularidad tiene por sus excelentes caractersticas velocidad, bajocosto,disde compatibilidad, adeponibilidad y facilidadde programacin; de sistemas de ms, hay muchos fabricantes

En la tabla 29.1 se muestran las caractersticas principales de los microcontroladores de la familia MCS-51.

En la figura 29.1 se muestra la arquitectura interna bsicade los microcontroladores8051, en ella sedestacanlas principales partes que los conforman. Dentro de las caractersticasgenerales se destacanlas siguientes:

En pin em crip

4KB 128 64KB 64KB 12


'l

IKBEPROM 4KB

TKB EPROM8KB 8KBEPROM 128 64KB 64KB 12 75 2 UART 32 5 25 1,3 3 256 64KB 64KB 12
1

128
64KB

128 64KB 64KB


16 75

256 64KB 64KB 12


1

.CPU de Sbits .Procesador booleano (con e bi ts) operacin \grca sobr .4 puertos de Sbits cada uno .I28bltes de RAM interna para datos '4KbtesdememoriaROM de EPROM para el Programa .64Kb!tes de espaciodireccionable externamenre para datos o programa .2 temporizadores-contadores (timer 0 y timer l) . Comunicacin no sincrni-

tiva

64KB 12
1

bid

carf do

2 UART 32
b

2 UART 32
5

2 UART 32 5 20
1 ,7 5

3 UART 32
6 175

3 UART 32
6 175

125

250

cor usa nes esl lar de me elr


-l

cafull-duplrx .5 fuentes deinterrupcin


.Oscilador interno

resumidas delos microcontroladores dela familia MCS-51 lablaE.l Caractersticas

terr

&t:. #

prctico Microcontotadores curco sobre

LU -U L L

Direcciones/Datos PO P2 .P1 P3

Iil I
RXD TXD Interrupcones externas Figura29.1Arqutectura nterna de losmicrocontroladores 8051

En Ia figura 29.2 se muestrala distribucin de los pinesdel microcontrolador8051 en su formato de empaquetipo DIP A continuacin sehar una descripcin brevede todos suspines y susfunciones. esla entradade alimentacin reguladapositiva de +5V es Ia tierra del sistema,0V. son cuatro puertos de Sbits bidireccionales. Todos tienen una capacidadde carga (fan-out) de 4 cargas TTL-LS, exceptuando el P0 que soporta hasta8 cargas. ALE (address latch enable)se emite con una frecuencia igual a 116de la del reloj y se usapara capturar el bytebajo del bus de direccionesdurante el acceso a memoria externa.PROG esla entradaparalos pulsosde programacin de la memoriaEPROM interna. PSEN Qtrogramstore enable) es la seal de control que se utiliza para habilitar y leer la memoria de programa externa. EA(externalaccess) eselpin que controla el modo de trabajo del dispositivo; cuando esigual a 1, slo seejecutael programadesdela ROM interna (operacomo microcontrolador); y cuandoes

P1 .0 P l. 1 P1.2 P 13 P].4 P1 .5 P1 .6 P1 .7 RESET (RXD) P 3 . 0 (TXD) P 3 . 1 ll'lT0 P3.2 htIl P3.3

VCC P0.0 (A/DO) P 01 (/D 1)

pO z \NDz) P0.3(/D3)
P04 (/D4) P0.5 (/Ds) P0.6 (/D6) P0.7 (ND7) EA/VPP ALE/PROG

Psrr
P 27 (41 5) P 2.6 (414) P 2.5 (413) P 24 (412)

(r0) P 3 4
(T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTALl

1) P 2.3 (41 P 2.2 (410) P2.1 (Ae) P20 {AB)

vss

Figura29.2Asignacin depinesen losmicrocontroladores 8051

prctico curso sobre Microcontrotadores &kt

/n:%F)
"&

-l

Lc,s nricr'\:,ca,nrr'L.d.cLrs !5r ueLnLeL

esla sealque se usa para habilitar la lectura de dispositivosexternos. son la entraday la salidarespectivamente, del amplificador inversor interno del oscilador,ste puede configurarsepara generar el reloj internamente o para usarse como un circuito pila crishles Cl y C2= 30pF11opF pm resador6 cermcG C1y C2= 40pF!1opF acoplamiento de para una seal de reloj generada externarnente.En la figura 29.3 se muestran dos y externo para interno Figura 29.3 Circuitos tpicos eloscilador circuitos tpicos para configurar el oscilador. es la entrada de inicializacin del siste0, seejecutael programa desdela memoria externa (opera como microprocesador).Por VPP se recibe ma. Su estadoactivo esdto (al ponerla en 1 lgico la tensinde programacinnecesaria para"quemar" durante cierto tiempo se generael ciclo de reset). el programa en Ia EPROM (tpicamenteestentre

12,75V y2llfl.
es la entrada del puerto de comunica- En la figura29.4 se muestrala distribucin de las reasde memoria de datos y programa de cin serial. esla salidadel pueno de comunicacinseriai. los microcontroladoresde la familia MCS-51; es la entrada de la seal de interrupcin aqu puede verseque estosmicrocontroladores tienen espaciosde direcciones separadospara externa 0. es la entrada de la seal de interrupcin las memorias de programa y de datos. La memoria de programaslo puede ser leda,y pueexternal. es la entrada externadel temporizador-con- de ser direccionada externamente hasta 64Kbtador 0 (timer 0). ltes, o internamente hasta4Kbytes;mientras que es la entrada externadel temporizador-con- la memoria de datos puede ser leda o escrita,y tambin puede ser interna o externa con capatador 1 (timer l). esla sealque se usa para habilitar la escri- cidad de direccionamiento haxa 256bytesy 64Kby tes, respectivamente. tura en dispositivosexternos.
MEMORIA DEPROGRAMA (Slo de lectura) $FFFF

de cu cu

PU li PS ra de lir ter

T.

MEMORIA DE DATOS (Lectura/Escritura)

de
ilr

\-a

PC

Cr

S: INTERNA

S:

Si

tOF

&d'

@ffl.i.

prctico Microcontrotadores curco sobre

L .,tt- t!.

L\:UL

Ll1

MEMORIA SEGREGADA

MEMORIA COMBINADA

nable de64Kfutes en Kbytes internay dememoria 60Kb-

Vss
en la parte baja de la memoWR BAM ria interna se encuentran las posiciones asignadas paralos Yectores de interrupcin; tal como el vector del reset que ocupa la posicin $0000. Cuando es externa, el usuario define todo el mapa de la PROGRAMAY DATOS PROGRAMA DATOS memoria de programa dentro de los 64Kbytesaccesibles para y segregada combinada Figura 29.b Harclware taconfiguracin de reas denemora externamente; en la figura . La memoria de programay Ia de datos pue- 29.6 se muestran las dos configuracionesposiden coexistiren el mismo espaciode direcciones bles de la memoria de programa. cuando es combinada, o en espaciosdiferentes cuando es segregada;la memoria combinada se puede configurar por medio de una compuerta La memoria de datos se puede usar como una lgica AND conectada con las salidas RD y memoria interna o externa con capacidadde PSEN, las cualesson generadas por la CPU dudireccionamiento de 256bytes 64Kbytes, resrante el acceso a la memoria externa.Por medio pectivamente; y, para acceder a los datos de la clela salidade dicha compuerta sepueden habi- memoria externa se utiliza la instruccin litar las salidasde datos del cbip de memoria ex- MOVX. La memoria de datos, cuando es interna, tal como se aprecia enlafigtra29.5. terna, se compone de dos reasque son: los l2Sbytesbajos ocupados por los registros de propsito general y los l28bytsaltos en donLa memoria de programa puede ser dividida, y de se encuentra el espacio reservadopara los de acuerdocon el programador,ser usadacomo registros de funcin especial (special function una memoria mixta o externa;la seleccinselleregister, SFR); en la figura29.7 se muestra el va a cabo por medio de la seal de control EA, mapa de la memoria de datos. poniendo el pin a +5Y a 0V respectivamente. Cuando es mixta, se divide el espaciodireccioEn la figura 29.7 se muestra que el direccionamiento de la memoria interna puede ser $FFFF $FFFF directo indirecto. El bloque de los I2Sbytes ms bajos puede accederse en los dos modos de direccionamiento, y poseealgunas caactersticas y asignaciones especiales, talescomo 000 $1 0+ son: los bancosde registros, el readireccionable bit a bit y el rea de anotaciones de acceso rpido (scratch pad). En la figura 29.8 se muestra la segmentacinde la memoria $0000 de datos interna, a continuacin, se estudiarn sus caractersticas. deprograma Figura 29,6Configuracin dela memoria

EE

curc opr cti coso icroco ntro tadore breM s gk

rc:

Stb &fl t

Lusnrlctaconttulatiotes t!051 tie tntet


I.2. ftea direccionablebit a bit Esta rea ocupa I2Sbits en total (l6byte) ubicadosentre las posiciones$20 y $2F,y todosellosdireccionablesdirectamente bit a bh. stos pueden ademsagruparse en hytes y direccionarse comotal,y, parareferirse a ellos directamentecomo bits o comobytes, sedebenusarlasdireccionesasignadas paracadauno; as,por ejemplo,el bi del byte$20 denela direccin20.0, mientras quela direccin del bit7 del hyte$2F esla2F.7.
Figun H.7 Mapadela memoria de datos

ls
i]

iD I
t-

$80 $7F

I
I I

T i-r
I'

Area de anotaciones pad) (scratch Segmento direccionable bita bit

(scratch 1.3.Aeade anotaciones pad) Estareade acceso directo e indirecto esla memoriaRAM de trabajodel programador, es un bloque de memoria de acceso rpido pero de bajacapacidad, y en estemicrocontroladorse encuentraentre las localidades de memoria$30 v $7F.

I I
i

i l

l+R +H
t i' I

lancos de registros

:r

intema Figun8.8 Segmentacin deIamemoria dedatos 1.1. Bancos de registros Los bancos de registrosson cuatro (banco 0 a banco 3) y cadauno secompone de 8 registros de 8bits (R0 a R7); stosse encuentran entre

lasposiciones 32fu,ns.El $00 y $lF y ocupan banco 0 es el seleccionado por defectoluego de un reset,mientrasque la seleccinde los el otrosbancos debehacers e por softwar desde registrode estadoPSI/(prograTn stdtus wor), que hacepartede los SFR.

En el bloque delosl2Sbytes msaltosdela memoria de datosse encuentranlos registrosde (SFR)de estafamilia de mifuncin especial crocontroladores, y en la tabla 29.2 se muestran los SFRdel MCU 8051, en ellasenombrany sedefinensussmbolos y direcciones. A continuacin se explicanbrevemente las funciones delosSFR,y losmsimportantes deellos severnen detalleen su debidomomento. Registro acumulador (Accumuhtor register) (ACC A): esel msutilizadoduranteel movimientode datos, esdeSbitsyesde propsito general. RegistroB (B register): esteregistroestdiseado especialmente paralasoperaciones matemticas de multiplicaciny divisin,y puede serde propsitogeneral. Palabra de estado del programa (Program Status'W'ord PS't7): es el registroque contiene la informacindel estadode la CPU.

rl

;;
*=l

Nota:
Por defecto,el resethace que el registropuntero de la pila (SP)seale a la posicinque corresponde con el registro R0 del banco2 ($08). el Si se quieren usarms bancosde registros, en otra SPsepuedeinicializardespus delreset posicinde memori.

rrr* #

prctico Microconfrotadores curso sobre

1or[a
sMB0r0 .ACC Accumulator *B Bregister NOMBRE Acumulador sFo Registro B word status Palabra deestado delprograma "PSW Program $Do Puntero deoila SP Stack oointer delamemoria $81 pointer (2bytes) DPTR Data Puntero dedatos pointer DPL Low byte data Byte bajo delpuntero dedatos $82 pointer DPH High data Byte alto delpuntero dedatos byte $83 *P0 Port 0 Puerto 0 $80 *P1 Port 1 1 Puerto $e0 Port 2 Puerto 2 "P2 $Ao *P3 Port 3 Puerto 3 $80 *lP priority intenupciones $BB Interrupt control Contol deprioridad delas *lE intenupciones Intenupt enable control deautorizacin delas Control $A8 mode control Control del temoorizador/contador TMOD Timer/Counter demodo $89 tem0orizador/contad0r $88 del "TC0N Timer/Countercontrol Control *+T2C0N 2 control 2 Timer/Counter Control del temporizador/contador $c8 THO Timer/Counter 0 high byte Byte alto del temporizadoricontador 0 r, TLO Timer/Counter 0 lowbyte Byte 0 bajo deltemporizador/contador $8A t high temporizador/contador 1 THl Timer/Counter byte Byte alto del $8D 1 low TL1 Timer/Counter byte Byte del temporizador/contador 1 bajo $88 +TH2 Timer/Counter 2 high byte Byte del temporizador/contador 2 alto $cD +TLz Timer/Counter 2 lowbyte Byte 2 bajo deltemporizador/contador $cc +RCAP2H reg. high T/C 2 T/C 2 capture byte Byte alto delregistro decaptura $CB +RCAP2L T/C 2 capture reg. lowbyte Byte decapturaT/C 2 bajo delregistro $cA seriales control Control decomunicaciones $e8 -SCON Serial SBUF Seria data buffer Buffer dedatos decomunicaciones seriales $9e PCON Power control delmodo deconsumo deootencia $87 Control

DfR tr^ QtrU r.

Bffir de datos seriales (SerildaubufferSBUF):


es eI reSlstro que oPera como impulsador de datos de recepcino transmisin durante la comunicacin serial. Registrostemporizadores (Timer register TH/LO, TH/L1): son registros de l6bits que operan como contadoreso temporizadoresy secomPonena su vez de una partebaja (L) y otra alta (H), ambasdeSbits.

Registro de control de potencia (Powercontrol rtprPCON): es el registro que controla el modo de consumo de potencia. En laversindel microcontrolador 8051 con tecnologa CHMOS se encuentran + = Resistros que enel Mcu80s2 seulilizan slo Tabta 2g.2 Registros de funcin especial del MCIJ g0s1 * = Direccionable bita bit disponibles dos modos de trabajo de bajo consumo: y se actualizacon cadaciclo de instruccin. el modo POlf/ER DOWN y el modo IDLE. En el cuadro 29.1 se muestra su formato. Adicionalmente, seusapara controlar la velocidad de comunicacin por el canal serial. (Stach pointer): Registro apuntador de la pila esel registroapuntador del reade la pila (que Regisuo de control del temporizador/contador (TimerlCounter control registerTCON): es el a la es de 256 posiciones), es de Sbitsy seala posicin $07 cada vez que un ciclo de res es registro que controla el funcionamiento de las activado.Luego de ejecutarla primera instrucinterrupciones y los flancos de activacin asigcin de apilamientoo llamado (PUSH o ()4LL), nadospara \os trimer 0 y l. a la primeraposicindisponiquedasealando En la figura 29.9 semuesble de Ia pila ($OS). ta el reade la pila. Apuntador o puntero de datos (Data pointer): es el registro que contiene en todo momento la direccin del puntero de datos,pue(DPTR, DPH DPL). de serde 16 de 8is Puertos 0,1,2,3 (Pom P0, Pl, P2,P3):sonlos cadauno. cuato ltcbs delospuertosy son de 8zs s80 57:

S"liJ S []; -

rl :ai ::ti t'r.:l [)

ir'r

Figura29.9Lapila del MCU 8051

prctico curso Microcontroladores sobre &Xln.:

.^s\

*tt) \d/

Losnrleruecutr'ukidurrs t!U51 detnts{


PAI.ABRA DEESTADO DEL PROGRAMA PSW

BITS BtO

I{OMBRES Y COMEI{TARIOS deparidad (ACC) delacumutador ljl Bandera . SiP= 1 entonces elnmero deunos del ACC esimoar o SiP= 0 entonces elnmero deunos del ACC esoar Bandera y definible por disponible el usuario Oe sobrepasamiento (overftow) l0Vl AanOera Selectores delosbancos deregistros

Bitl Bit2 Bt3 - Bit4

En el MCU 8051 con encapsuladoDIB el pin 9 es el reset; este pin se acriva cuando recibe un nivel lgico alto (+5V) durante al menos dos ciclos de mquina (24 periodos del reloj del oscilador). Durante tal estado, la CPU escribe los parmetros iniciales en rodos los registros que dependan de ste, e inicializa el hardware de todos los mdulos perifricos inrernos; en la tabla 29.3 se muestran los registros que son afectadospor el ciclo de reset.

vcc
Bits
Bit6 BitT general, 0 depropsito porel usuaric definible lHl I Eandera para oeacaneo auxlar, operaciones enBcD [l Bandera

deacaneo fE Bandera

g0l Cuadro 29.1 Formatl delregistro deestado detMCIJ Registro de control de modo del temporizador/contad or (Timer/Counter modc control registerTMOD): es el registro con el cual se selecciona el modo de operacin del timer 0 I (como temporizador como contador). Regisuo habilitador de direcciones (Internrpt enable registerlE): esel registro dedicado al control de las interrupciones;le permite al programador habilita nicamente las interrupciones que necesite. Registro de prioridad de intemrpirones (Inarn?tpriority rcgisterlP): esel registro que controla la prioridad de cada fuente de interrupcin habiliada, al poner en I en 0 sus bits. Cada fuente de interrupcin podr ser programada en nivel de prioridad | 2,y toda interrupcin con prioridad superior puedebloquearla ejecucinde otf,acon prioridad inferio y no lo contrario. Registro de control del puerro seial (Snialport conilol register(SCON): por medio de esteregistro sedefinen los parmetrosde la comunicacin serial, tales como la velocidad, el formato de la palabray la direccin de la transmisin.
lnfa

Figura 20,10 Circuito tpico para de reset automtico etg05l

El circuito que se ACC $00 muestra en la figura $oo la 29.10 estil para gePSW $00 nerar un reset auto- ls p $07 DPTR $0000 mtico a la conexin P0-P3 I $FF Qtoweron reset),'ste tP(8051) )00(000008 se produce al poner I rP (8052) xxo000008 (8051) rE oxx000008 en el pin de RESET (8052) rE 0x0000008 I el voltaje de alimenTMOD $oo tacin (Vcc) durante I rcon $00 THO $oo el tiempo definido rLo I $00 por la red de carga TH1 $00 RC, que est forma- I rLr $oo (8052) TH2 $00 da tpicamente con (8052) TL2 $00 una resistencia de I RCAP2H (8052) $oo lOkCl y un conden- I ncnezl leosz $00 ' scoN $oo sador delOpF. Estos saur Indeterminado valores pueden ajus. I PCoN (HMoS) 0)000000G tarse de acuerdo con PCoN (CHMoS) 0xxx0000B el reloj aplicado al miTabla 29.3Estado inicialde los croconuolador. registros despus del reset

^ d v '(b ,.

{2e43

qr<ti.:.

&d

prcco curco sobre Microcontrotadores

Los microcontroladores 8051 poseen puertos multifuncionales, stos puedenoperarcomo driuersparamanejardirecta o indirectamente cargas, bidireccionau operarcomo buses lesde datosy direcciones duranteel acceso a externos. dispositivos Los mdulostemporizadores y los contadores internos de mayor imporson los perifericos tancia,ya que seconstituyenen la herramienta mstil con que cuentael programadorpara los proyectos con el 8051.
prctico Curso @Efr(f,E) sobre Microcontroladores

'

(ZeS ;) \\ /,/

/t"\

y reritGr'[cos t!05r l]uertcs lrrtrlrrus tielurlcrucuutrsladur pnRn rs: snen


Elciclo del8051 demquina que eslaunidad En esta familia demicrocontroladores, unciclo demquina bsica detiempo enlaque secuenta que deuna laduracin deuna instruccin uoperacin, consta secuencia delaejecucin deseis estados senombran periodos cada estado secompone dedos delaseal entre 51y 56;y,a suvez, dereloj deloscilador llamados fases que (fase De loanterior 1,Pl y fase 2,P2l;tal ver enlafigura 30.1. como sepuede sededuce cada ciclo demquina '1 por y que = l ZFrecuencia; quiere deesta 2fases determinar medio expresin: tiene suduracin sepuede CM esto para que, por de12MHz seobtendr unciclo demquina decir ejemplo, unreloj de1ms deduracin.

IN ;:

l sl l s2 l s3
IP,l P2

IP l

P2

IP 1

P2

ls4
lPl

P2

s5ls6l
P2 tP 1 P2 |
E:.

tP l

1)u
Figura 30.1Representacin en el tiempo de un ciclode mquina del 8051

En la figura 30.2 semuestrala arquitecturainterna de los puertos multifuncionales de estamilia de microcontroladores.El 8051 posee4 puertos bidi(de entrada o salida) e independientes, reccionales de Sbits cadaunoy que sedenominan P0, Pl, P2 y P3. Como salidas, elfan-outdel P0 esde ocho cargasTTL-LS, mientras que los otros puertos Pl a P3 solo pueden manejar cuatro cargas. Para programar los puertos como salidas, es necesario escribir un 0 lgico en el latch correspondiente,mientras que si se escribeun 1 lgico se programan como entradas.Por su arquitectura totem-pole, solamente el P0 puede adoptar el estadode alta impedancia o tercer estado (tristate) cuando se programa como entrada. los otros asumirn un estadoalto debido a la resistenciapull-up integrada en su estructura de drenador abierto (open-drain); en cualquier caso, para leer un dato el latch correspondiente al puerto debe cargarsecon I lgico para que el transistor MOS inferior permanezca en estado de circuito abierto, y la resistencia de pull-up seala impedanciavista por la entrada. Las funciones compartidasy las caractersticasparticularesde cada uno de los puertos seestudian a continuacin: .&' ..r

opera como un puerto de 8bits, pero tambin multiplexa en el tiempo la parte baja del bus de direcciones y todo el bus de datos durante el accesoa la memoria externa de programa o datos. Este puerto tambin se usa como bus de datos durante la programacin y verificacin de la memoria interna EPROM en algunasversionesdel microcontrolador. operacomo un puerto deSbits, pero tambin recibe la parte baja del bus de direccionesdurante la programacin y verificacin de la EPROM interna, en la versin 8751 de estafamilia de microcontroladores. operacomo un puerto deSbits, pero tambin seusacomo la parte alta del bus de direccionesdurante el acceso a la memoria externade programa o datos.Thmbin recibe PIilES FUilCINALTERNA (Entrada puerto P3.0 RXD del serial) puerto (Salida P3.1 TXD del serial) P3.2 iN-tO externa 0) ltnterrupcin P3.3 iNTlllnterrupcin 1) externa P3.4 T0(Entradaexternadel Timer0\ P3.5 T1(Entrada externa delTimerl) (Autorizacin P3.6 WR deescritura enmemoria dedatos extema) (Autorizacin P3J FD delectura enmemoria dedatos extema) Tabla Funciones 30.1 alternas delnuerto 3

2) l

I
r r

F I r ci

escr to. c te se dio t

MC
sept

d*3

&d

&Jrct,.L

prctico Microcontrotadores curco sobre

h-

L,TLA

DIF/DATOS CONTROL vcc Lectura enel LATCH

DIRECCIONES

Lectura en eI LATCH

BUS . INTERNO
Escribe en el LATCH

BUS INTERNO Escribe en eI LATCH

Pin de lectura

3) Unpindelpuerto 2 (P2.Xl
Funcin alterna de SALIDA

Lectura en eILATCH

Lectura en el LATCH

BUS INTERNO Escribe en elLATCH

BUS INTERNO Escribe en el LATCH

Pin de teclura

Pin de lectura

Funcin alterna de ENTRADA

pindelpuerto 1 (Pl,X) 2)Un

4)Unpindelpuerto 3 (P3.X) Figura 30,2 Arquitectura delospuertos delMCU 8051

la parte alta de la direccin durante la programacin y verificacin de los datos de la memoria EPROM. operacomo un puerto de Sbitsde propsito general,pero ademscomparte otras funcionesimportantes; en la tabla 30.1 seresumen lasotrasfuncionesde cadauno de los pines de estepuerto. La operacinde escritura en un puerto, que generalmen(DATo) Px, te seefectapor me- Mov dio de la instruccin

el diagrama de tiempos de la figura 30.3, sta se usa habitualmente para cafgar en el puerto Px el DATO por medio de cualquier modo de direccionamiento. Parala lectura slo bastacon invertir el orden de los operandosde la instruccin usadaanteriormente para la escritura, as: MOV (DAIO),Px.

I p r I p zl pl I

Estado4 |

Estado5 |

pzl pr l

Estado6 |

pzl p1l p2l pll

Estadol I

Estado2 |

pzl

MOV Px,(DAIO),
se puede apreciaren (DATO) Figura fi.3 Diagrama MOV PX, detiempos delainstruccin

prctico curco sobre Microcontrotadores &kt

,.t #

y tlet'it't'icus t!05r deltttlctucunuutauut' lttitiutus l:uertgs


detectepor los pines 14 (T0) y 15 (T1) paralos contadores de los timers0 y 1, respectivamente. En la figura 30.6 se muestra la arquitectura gepara y escribir leer enlos neral de los timers del Figura 30,4 lnterfaces puertos del8051 8051,all pueden verse: el (C/T) selector de la seal
En la figura 30.4 se muestrandos circuitos recomendados que pueden ser utilizados para leer datos apropiadamente, sin rebote, y manejar cargas de hasta de reloj del contador, con el cual seelige la fuente del reloj a partir del oscilador interno o desde una fi.rente externa;la lgica de habilitacin por sofiutarey por harduare, qve se usapara habilitar la cuenta de pulsos a travs del interruptor de de las entradas CONTROL, cuando los estados TRx, GAIE e iM* son 1, 0 1, respectivamente; los registrosdel contador, que llevan la cuenta en todo momento y que pueden ser de 8,13 lbits segnel modo de trabajo; y, elflipflop dr la bandera de estado TFx, que se utiliza y generarla inpara indicar el sobrepasamiento terrupcin del timer.

F t_

I err

t' I
|:. | "'

t' I L
I

EnouErA coreootpnocRrun In icio MOV CPL MOV AJMP A, P0 A P].,A Inicio

600mA. EnIafirura30.5

Figu

Diagrana defluio del Figun 30.5 diasra_ r. o para programa eluso delos "- '^;*;":^* ,-, ejemplo, -.r.rrr"-.1 pueftos maCeilurooelprograma y el segmento de cdigodelmismo. En el programa se ilustra el uso adecuadode los puertos como entraday salidade manerasencilla;en l se lee un dato por los Sbitsdel puerto 0, se complementa su estadoy seenvapor los pines del pueno 1.

Esta familia de microcontroladores posee dos (timer 0 y timer l). temporizadores-contadores Cuando opera como temporizador, el contador se incrementa con cada ciclo de mquina hasta el valor prefisobrepasar jado; por este motivo, se puede decir que la cuenta sehace con ll12 de la frePinTx cuenciadel reloi; mientras que cuando opera como contador, el registroesinGATE crementado en uno con cada flanco descendente Pintilfx de la seal externa que se

La funcin como temporizador (timer), o como contador (counter), se seleccionadesde el bit de control llamado CIT;y los cuatro modos de opese racin de estosdos temporizadores-contadores definen con los bits M0 y Ml. Todos estostres bits, pertenecenal registro de control de modo que TMOD (Timer/counter Modz Connol Register) hace parte de los SFR. En las figuras 30.7 y 30.8 se muestran los registros de control y de modo TMOD y TCON (timer/countercontrol register), asociadoscon el comportamiento de los dos i-

Interrupcn

de Seal

general del delostimers Arquitectura Figura 30.6


MCU8051

. { &lct.i.

prctico Microcontrotadores sobre curco mers,

tL_U L L

TMOD
Bt1 Bi6 Bn5 Btt4 Bt3 Bt2 Bt1
BN1 816 BN5

TCON
BI4 BI3 BI2 BT 1 BIO

rF1 |rR1 | TFO ITRofl lil |lT1 |leo Iro BIT BIT
BO-81
MODO 0
MI

NOMBRE Y COMENTARIO
MO 0 0 MODO DEOPERACIN
Iemponzadorde 13 b/8 za00rL0nla00f 0e tb Dls Iemp0LzadoilContdor de 8 bls c0n auto-TerrQ onladofesmu lrplesespec trcos

NOMBRE Y COMENTARIO

BO

Controt interrupcin externa 0 (tNTO) hTOl o SilT0 = 0 enlonces por esactiva nivel bajo o SilT0 I entonces por esactiva flanc0 debajada para interrupcin laintenupcin externa 0 (INTO) @ naqOe . Sepone a uno cuando sedetecta interrupcin externa . Se repone aut0mticamente porfanc( alatender lainterupcin intenupcin externa 1 (tNTt) lliil Control para tainterrupcin externa i(tNT1) ltEilfutgOrinterupcin trrporizador/contador0 ffi Hrnitit, o SiTRO 1enlonces habilita temporizador/contador 0 . SiTRO = 0 ent0nces deshabilita temporizador/contador 0 (s0brepasamiento) overflow del Timer0 Fl Flag Serepone aut0mticamente alatender lainterrupcin r.rporizad0r/contad0r 1 F-ll Huoitit.
(sobrepasamento) Oe overflow delTimer 1 FFtl Flag

B1 82
S e le cci0 te na m 0 0 r iza d r n ta d 0 l oo co

. SiCiI = 0 entonces temporiza con lospulsos delreloj interno . SiC/T = 1 entonces que porT0 cuenta lospulsos (pin1 llegan B3
la entrada (pin12) exteri0r lNTO lCeTElHanitita . Si GATE 1 entonces = 1{control habilita |NTO s TRO oorhardwar . SiGATE deshabilita lNTO exclusrvamente - 0 entonces v deoende (conlrol porsoftvvare\ de TRO (IRO y seactva porsoftware) esunbdel Reg. TCON 0 desactiva

82 B3 B4

8 4- 8 5 BOyBT

Configuracin delTimer 1 que para lgual fmer0, susttuyendo (pin T0 porTl 15) (pin lNTo por lNTl 13) TRO por TRl

B5

B6 87

Figura 30,7Registro de control de modo(TM1D) de lostimers0 y 1 del8051

Figura 30.8 (TC0N) Registro decontrol delos timers 0y I delB0Sl Al poner los bits M0 y M I en 0 lgico en el registroTMOD (que no esdirecciona6le bit a bit), se configura el modo 0; en ste el registro contador es de 13bits, reparridoslos Sbits de mayor peso en THx y los 5bits ms bajos en TLx. Cuando la cuenta en el registro del contador (THx,TLx) se desborda (pasade $FFF I a $0000) la banderade interrupcin correspondiente seacriva,stapuede serTFO TF I , y estubicadaen las posiciones de los bits 5 7 del registro de control TCON, que haceparte de los SFR y que es direccionable bit a bit. Como puedeobservarse en la figura 30.6, cualquier seal de interrupcin externa (lNTx) puede utilizarsepara habilitar y "congelar"el valor de la cuenta del timer, al ponerseen 1 y 0 lgico respectivamente; y, siemprey cuando, los isTRx y GATE permanezcan en l. to esidntico al del modo 0, exceptuandoque el registrocontador deltimer ahoraesde lbits y estubicado en dos grupos de Sbitsque rsiden en los registros THx y TLx. En este modo, el desbordamientose da cuando pasa de $FFFF a $0000.

El modo 2 se configura con los bits M0 y M 1 en 0 y 1 respectivamente; en estemodo, Ios mers se comportan como contadores de Sbitsy operan sobre la parte baja del registro contador (TLx). Cuando el registroTLx se desborda(pasade $FF a $00), se acriva la banderade interrupcin adecuada(TF0 TFl) y el registroTLx se recargao actualizaautomticamente con una copia del contenido de THx, previamente almacenado por el programador. En la figura 30.9 se muesrra la arquitectura que adoptanlos timersen modo 2.

EI modo 1 seconfigura con los bits M0 y Ml en 1 y 0 respectivamente, ysu comportamien-

prctico Curco sobre Microcontrotadores &iUrO,

Lusurlcr'ueuntralatiur'es t!05rtietutel

PinT1

Figura Arquitectura 30.9 equivalente de los timers delMCll,8051 enmodo 2 Con el registro TLO se puede configurar un temporizador o contador interno o externo de Sbits con la lgica de control, tal como se ha considerado hasta ahora, pro, cuando se usa el registro THO (del conrador adicional y tambin de Sbits), slo se puede temporizar o contar tomando como base a Il12 de la frecuencia del oscilador interno de la CPU. El modo de operacin de esrosdos nuevos temporizadores-conradores es idntico al de los anteriores,stosactivan suscorrespondientes banderas de interrupcin cuando sobre cualesquiera de los registrosde los contadores (TL0 THO) se produce un sobrepasamiento del valor $FF.

Con el modo 3 se extiende a tres el nmero de timersdisponiblesen el microcontrolador 8051, steseconfiguracon los bitsM0 yMI en 1 y ha sido diseado para las tareasque requieran otro temporizador-contador adicional; en este caso, se asocian los timers 0 y I para conformar dos contadoresindependientes de Sbits que utilizan como registros a las partes aka y baja del timer 0 (THO y TLO). En la figura 30.10 se muestra la arquitectura que asumen los nuevos timers independientes en modo 3, en ella puede verse que el timer I cede su bandera (TF1) y su bit de control (TRl) para conformar el contador adicional.

@1--E1-1/12rosc
1/1 2 fosc

1/1 2 fosc

Figura 30,10 Arquitectura equivalente delos timers delMCU 8051 enmodo 3

&ooor. #

prctico curco sobre Microcontrotadorcs

con microconLas interrupciones en los procesos son lasherramientas troladores que establecen un o servicio directoentrela CPU y cualquiersistema dispositivo perifericoexternoe interno, lo que nos permite desarrollar un modo de trabajoque esinherenteal control de procesos en tiempo real. Los microcontroladores 8051 son diseados con mdulos perifericosinternos especiales que puey que recibeny evalantoden serprogramados, y externas. daslasfuentesde interrupcininternas
prctico curso sobre Microcontrotadores &<ff"t <j>

luteu'ut uesdeluriet'a nttulaua r tiltll relu eu


NOMBRE MNEMNICO BANDERA INTO TIMERO INTl TIMERl RI

Tiadicionalmenteel serviciobidireccionalno sincrnico y sincrnico entre la CPU del microcontrolador y los dispositivosy sistemas perifericos, seha desarrolladopor medio de tcnicasde consulta conocidascomopollingy el uso de protocolos de comunicacin construidos con algunas lneas de dilogo, tambin conocidos como handshahe. En este caso se hacen consultas cclicasde los registroso bits de estadoque representan a cadauno de los perifericos,por medio de instruccionesdel programa, para determinar cuando se ha solicitado una interrupcin. No obstante, este mtodo presentaproblemas cuando los perifericosconsultadosson numerosos,porque, en cada ciclo de programa se deben interrogar y acttalizar los registros o irs de consulta, y, porque al dispositivo slo se le atiende al terminar la ejecucin de la rutina de consulta y no en el momento de la solicitud de atencin. Por lo anterior. este mtodo slo se usa con eficiencia en grandessistemasde cmputo que poseenalta velocidad de procesamiento y alta capacidadde memoria. Sin embargo, las interrupciones son otra tcnica que viene siendo utilizada por todos los fabricantesde microcontroladorescomo una herramienta poderosa para establecerun servicio no sincrnico,directo e inmediato, entre la CPU y los sistemas o dispositivosperifricosexternos e internos. Con estatcnica se evita la ejecucin de las rutinas de consultay seatiendenlos procesos en tiempo real, ya que el periferico genera una seal de interrupcin (lNTx) propia, cada vez que requiereatencin. Este mtodo nos permite ejecutar las rutinas de servicio de las interrupciones en el momento preciso y sin desviar la atencin de la CPU del cuerpo principal del programa, lo cual se hace necesarioen muchas de las tareasde los microcontroladores.

Externa 0 Timer 0 (lnterna) Externa I Timer 1 (lnterna) (lnterna) Puerto serial (lnterna) Puerto serial

TI

tE0 TFO tEl TF1 RI TI

det

C S:

na5

PCI esti

Tabla 3l.l Las intenupciones delMCU 8051 internas. En la tabla 31.1 se muesrran las interrupciones, sus nombres y los mnemnicos que se usan para cadauna de ellas;y, en la columna de la derechase muestran tambin las banderas que estnasociadas a cadainterrupcin. Todas las interrupciones pueden ser habilitadase inhabilitadas independienremenrey globalmente por el usuario, usando el registro habilitador de interrupciones IE (interrupt enable register)que hace parte de los registrosde funcin especial SFR; en el cuadro 31.1 semuestra este registro con todas las condiciones de sus bix de control.
tE(REGTSTRo HABTLTTADoR DEtNTERRUpctoNES)
B17 8'16 Bts Bt4 Bt3 B2 Bt1 BtO

ma rru tru en

SC
do

aut

nal

flar de las cu:

eS ti

EAIX BIT BO

IX

I E S I I F T 1I i l 1 I E T O I E X O NOMBRE Y COMENTARIO

. = t habilita intenupcin externa |NTO lEXOlSiEXO . SiEXO = 0 lainhabilita = l habilta interrupcin SiEIO delTmer\ lETOl. SiETO = 0 lainhabilita interrupcin externa lNTl lEXl l. SiEXl= I hablita o SiEXI = 0 lainhabilita . interrupcin delTinerl lEfl | SiETl= t habilita . SiET1 = 0 lainhablita = intenupcin delpuerto seral l-!!l' s ES l habilita . SiES = 0 lainhabilta Reservado Reservado individualmente atodas las intenupciones I m | . Sf = I hablta que eneste registro estn a uno . SiEA = 0 noreconoce ninouna interruocin

tar de vic bar po ser ust se ys

B1

82

B3

B4

B5 B6 87

Los microcontroladores 8051 cuentan con cinco fuentes de interrupcin, dos externasy tres

Cuadro 3l,l Registro habilitador de lasinterrupciones lEdel8051

ES

$t&

&fl

&,fmn:.

prctico Microcontrotadores Curco sobre

Cada una de las interrupciones afecta a un determinado bitbandera Vkg bit) cadavez que es solicitada, / urr vez se han atendido las rutinas de interrupcin el programador deberestar pendiente del estado de stasy retornarlas a su estadolgico inicial para poder aceptarla prxima interrupcin. Todas las banderasde las interrupciones pueden borrarse por medio de instrucciones (borrado por softwar) directamente en los registros que las contienen TCON y SCON, aunque algunas se borran de manera automticaal retornar de la interrupcin (borrado por bardware). En el caso de las dos interrupciones externas INT0 e INTI, que se pueden activar por flanco o por nivel a travsde los bits de control de interrupcin IT0 e ITI del registro TCON, las banderas son borradas automticamente cuando estn activas por flanco; pero, cuando estn activas por nivel bajo, se deben inhabilitar (poner en uno lgico el correspondientepin de entrada INTx) para salir de la rutina de servicio de atencin a la interrupcin y borrar la bandera.Las interrupciones internas de los tem(timers)y las del puerto porizadores-contadores serial, solamente pueden ser borradas por el usuario a travs del software.En la figura 31.1 seaprecianlas fuentes de interrupcin del 8051 y sus selectores de entrada.

Cadavezque seaceptauna interrupcin, la CPU guarda el contenido del registro contador del programa PC en el rea de la pila (stach) antes de que steseacargadocon el vector correspondiente (direccin fija en memoria de programa asociada con la interrupcin); de esta forma, unavez atendida la interrupcin, la CPU puede conrinuar con la ejecucin del programa principal desdeel punto en el cual fue interrumpido.
$OFFF

interna)

ctt E t

o z, o

R l yTl+ + TF1 tE1 TFO

rE0
R E S E T+

$0023 $0018 an tJ z, $0013 I o $0008 CJ t $0003 9E o $0000

Figura 31.2 Vectores de las interrupciones del8051 En la figura 31.2 semuestra la vectorizacin de todas las interrupciones del 8051, esrarease ubica al comienzo de la memoria de prograrnay all puede verseque se han reservadoespaciosde 8 bytes para cada una de ellas; estosintervalos de 8 futesentre cadavector de interrupcin pueden utilizarsepara contener directamentelos programas cortos de atencin a las interrupciones, o, como eshabitual cuando la rutina de servicio de interrupcin es extensa, para albergarla instruccin de salto JMP(dir) necesaria para cargar el registro PC con la direccin de memoria inicial de la rutina.

=
CJ A u F

En esteltimo casoy a manera de ejemplo, si suponemosque la rutina de atencin a la interrupcin se encuentra ubicada a partir de la posicin $0777 de la memoria de programa, y que adems,la interrupcin externa INTI se ha habilitado poniendo el Qit EXI en uno lgico, el vector correspondiente,que est ubicado en la y bandens posicin $0013, debecontener el cdigo de opeHgun 31.1 Fuentes deintenupcin del 8051 , selectores =

iL

prctico curco sobre Microcontrotadores &O

t O.l' &

&d

lntenulrelones tielnuracuntuluuur' ti05r


racinde la instruccinde salto enlos dosbytes de memoriasiguientes $0014 y $0015,deben guardarse los bytes de la direccinde saltomsy menos significativosrespectivamenre. En la figura 31.3 serepresenta esteejemplo.
$FFFF

El procesode interrupcin siempreseconsidera urgentey, una vez iniciada su vectorizacin, slo podr ser inrerrumpida o bloqueada cuando una instruccin o una inrerrupcin de mayor o igual prioridad seestejecutando,o cuando se estaccediendoa los registrosde control IP IE, , cuando se esrejecutandouna instruccin de retorno de interrupcin RETI.

Nota:
lnicio $0777+ ^tt 5 $001 $f)014 $0013 $,OOOO Toda rutina de atencina una interrupcin debe terminar con la instruccin de retorno de interrupcin RETI; con sta se informa a la CPU que la rutina ha concluido para que descargue de la pila la direccin de dos bytesapartir de la cual debe continuar la ejecucin del programa principal, y la cargueen el registro contador de programa (PC). Las rurinas de servicio de las interrupcines deben hacersebreves, para garantizar que slo seexperimentaruna prdida de tiempo relativamente pequea durante la ejecucin del programa principal al momento de atender la interrupcin.

Figura 31.3 rutina Salto a una deintenupcin * ,t;:;;l: Para comprender el proceso de interrupcin en los microcontroladores 8051,seha incluido el diagramade tiempossimplificadobajo condicionesideales quesemuesrraenlafigara3l.4, steestrepresentado en trminosde los esta(P) de cadaciclo de mdos (S) y de las fases quina (C). En el diagrama puedeverseque las banderas de interrupcinseconsulran en la fase (S5P2) 2 del estado de cadaciclo de mquina 5 y que los resultados son evaluados durante el siguiente ciclo; y tambin,que luegode la evaluacin y si hay algunasolicitud de interrupcin activase generaun llamado (LCALL) al vectorcorrespondiente.
C1

En el cuadro3L.2 semuesrra el tegistroparael control de prioridad de las interrupciones IP (interruptpriorityregister) que tambinhaceparte de los SFR;cpn l sepuedenprogramardos niveles de prioridad (altay baja)de maneraindependiente paracada una de lasfuentes de interrupcin.Al poner en uno lgico el correspondiente bit de la interrupcin se habilita la prioridad alta,y al ponerloen cerolgicosehabilita la prioridadbaja. c3 t l. c4 rl. c5 ----

da: tan rru der sr cor ha: eln

S OS

eln

prir

vez. dad ni,r'r pid: mo

i.

c2

t l.

t't
Intenupcin Consultade intenupcin activada -

Evaluacin de interrupciones

Vectorizacin dela intenupcin

Rutina de servicio dela interrupcin

Figura 31,4 Diagrama detiempos deunciclo ideat delproceso deintenupcin

&<n; #

prctico curso Microcontrotadores sobre

tr .,1 t tr .

DEPRIORIDAD DELAS INTERRUPCIONES) IPIREGISTRO


Bt7 Bt6 B15 Bt4 B13 Bt2 .B11 BIO

X BIT BO B1 82 B3 B4 B5 B6 87

X I PS II PTl I PX1 I PTOIPXO IOMBRE Y COMENTARIO

= 1 define prioridad lNT0 SiPXO alta a lainterupcin lPXOl. . pfO prioridad delImerO alta a lainterupcin lpfOl S = I define = priordad lNTl alta a lainterrupcin l$ll ' SiPX1 1 define . proridad alta a lainterupcindelTimer lprr-l si PTI= 1define = I define puer del serial alhpriondad a laintenupcin lTll . SipS

PARA MS: SABER porsoftware Simulacin deuntercer nivel deprioridad que En aquellas tareas utlizan varas fuentes deinjerarqua, tenupcin con diferentes niveles de esconveniente ms dedos niveles contar con deprioridad, enestos virtualmente casos, sepuede crear untery simular cernivel su compoftamiento. Elproceso para necesario nivel crear eltercer deprioridad se describe a continuacin.

que Primero, sedeben elegir las interrupciones van a tener elnivel ms alto deprioridad, superior a1(prioReservado y seles ridad alta), debe asignar laprioridad 1 a travs delregistro lP. Las rutinas deservicio delas inteReservado prioridad que que rrupciones 1, con se supone deben Reservado porinterrupciones serinterrumpibles connivel de prioridad porlossiguientes 2, seacompaan segcuadrosl.2Resistroparari:i:::;:;:::,,TJ;;', y antes mentos decdigo deprograma alinicio dela instruccin RETI: PUSH MOV IE IE,#MASCARA

En cualquier casoen el cual sean solicitadasms de dos interrupcionesen el mismo instante, la CPU atenderlas solicitudesde interrupcin y evaluarsu nivel de prioridad para determinar cul deber ser atendida primero, staserla que tenga mayor prioridad o la que corresponda, de acuerdocon la tabla 31.2, que ha sido predeterminada para serconsultadapor el microcontrolador 8051 en todos aquelloscasos en los cuales las interrupciones presenten el mismo nivel de prioridad. Cuando una interrupcin tiene nivel de prioridad bajo puede ser interrumpida, a su vez, nicamente por otra con nivel de prioridad alto; mientras que una interrupcin con nivel de prioridad alto slo podr ser interrumpida por el RESET, que goza del nivel mximo de prioridad.
NIVELES DEPRIORIDAD PREDETERMINADOS PRIORIDAD BANDERA INTERRUPCIN O i-m EXTERNA TIMERO TIMERO 1 ENERNA itrTi TIMERl TIMERl PUERTO SERIAL R ly T l parael 8051 predeterminados Tabla31.2Niveles deprioridad

---....911!-...--.--I-EJ.9III********** .I;uJlll.?-E.:.E.Tyi.cl.gt.E..Tllll.Ell
POP IE RET RETORNO: RETI programa para que, Este vez adicional seutiliza una seareconocida cualquier solicitud de interrupcin prioritaria, elregistro habilitador lE deintenupciones sedefina nuevamente conel valor dela MASCARA. deforma tal,que inhabilite todas lasinterrupciones por menos las 2;yluego, medio deprioridad delllamado a la etiqueta RET0RN0 finalice la ejecutando (locual instruccin RETI borrar la intenupcin con prioridad punto 1 enprogreso). Eneste incualquier prioridad podr tenupcin 1 que habilitada con est ser atendida. Con la instruccin dedescarga dela pila(P0P) se recupera el contenido original delbyte delregistro habilitador lE,y finalmente, instruccin conuna de (RET) retorno la rutina desubrutina setermina de servicios Este dela interrupcin. software adcional que serequiere noretarda laejeconsiderablemente cucin delarutina deservicio delaintenupcin con prioridad 1,puede calcularse unretardo deapenas 1Oms cuando microcontrolador tiene eloscilador del una frecuencia de12MHz.

prctico curso sobre Microcontrotadores &kmt #

lauut tiU S1 nrlcra u'u ntLu ltrte'L.t.ul Icluncs de.[


TEMPORIZADOB/CONTADOR OEN MOOO O: INTERRUPCION

Puestoque los timersy sus interrupcionesya se estudiaronen la leccin anterior,aqu slo recordaremosbrevemente que las banderas de TFO y TF I de stos,son las encargadas generarla solicitud de interrupcin respectiva a la CPU y que seponen en I lgico, cuanregisdo se desbordanlos correspondientes tros de conteo. En la figura 31.5 semuestraun resumende los registroscontadoresde los timersen los cuatro modos de operacin, y las banderasde interrupcin que se afectanen cada caso. Como un resumen de los principalesaspectos que se han estudiado de las interrupa conticionestanto internascomo externas, nuacin, en la figura 31.6, se muestra un esquema simplificado de la arquitecturadel sistema de interrupcionesdel microcontrolador eI harduare y Ia l8051; all se representan asociada con cada una de las fuentes de gica

TEMPORIZADOR/CONTADOB 1 EN MODO O:

lreRRupclH
TEMPOBIZADOR/CONTADOR 1: OENMODO

IHrrnRupclH
TEMPORIZADOB/CONTADOR f ENMOOO 1:

tr,neRRupcl
()ENMODO TEMPORIZADOR/CONTADOR 2:

@TNTEBRUPcTN
TEMPORIZADOR/CONTADOR 1 ENMODO 2:

@TNTERBUPcTN
TEMP0RIZADOH/CONTAD0R M0D0 0 y 1 EN 3:

@TNTERRUPcTN
INTERRUPCION

Figura31.5Banderas de interrupcin de lostimersdel 8051

interrupcin, y con lgicasimple,la funcin de los registros de controlde lasinterrupcion e s(lP e I E ).

IE REGISTRO

REGISTRO IP

INTERRUPCIONES DEPRIORIDAD ALTA

L
DE SECUENCIA EVALUACIN PREDETERMINADA

CI

f d el
L
T

SELECTOBES INDIVIDUALES

INHIBIDOR GLOBAL

INTERRUPCIONES DEPRIORIDAD BAJA

d
C I

Figura 31.6 Arquitectura simplificada delsistenadeintenupciones


,4q\ . I

CI

-*D t:,//

&rcfn.i.

prctico Miuocontrotadores curso sobre

Losmdulosde comunicacin internosen losmicroconrroladores mejoransu flexibilidadporque ^de facilitan la compatibilidady el intercambio datos enrre ellosy orros dispositivos o sisremas electrnicos. Los microcontroladores 8051 poseen un puerro de comunicacinserialprogramabley flixible, que nos permite configurarla transmisiny recepcinsimultnea y no sincrnicade datos,en cuatro modos.
curc oprcticosobreM icroco nt ro tado re s &k n.: dtb \,fl

t!05r serlales eune[nrietucuulraladur Cunrunleauluues


i

Los microcontroladores 8051 cuentan con un puerto de comunicacionesserialno sincrnico y full-duplex (que puede recibir y transmitir simultneamentedatos), que generalmentees conocido como un receptor y transmisor universal no resincrnico, o UARI (uniuersal asyncltronous and nansmiter). ste esprogramable en uno ceiuer de cuatro modos de comunicacin posibles (MODOO a 3) por medio de los bits7 y 6, SMO y SMl, del registro de control y de estado del puerto serial SCON (serialport control register) que hace parte de los SFR, tal como se muestra en el cuadro 32.1. Para recibir y transmitir los datos el UART cuenta con el registro especialSBUF que se de(REGISTRO Y CONTROT DEL PUERTO SERIAL DEESTADO SCON
BttT Bt6 8i15 Btt4 B/t3 Bt2 Bt1 Btl

nomina el buffer de datosserial,y que selocalizaenlaposicin de memoria$9q de los SFR.Al escribir en este registro, secarga el datoqueseva (un transmitir a byte),y leyndolo,se accede al dato de un byte recibido(en la figura 32.1 seha representado el SBUF). En cualquiera de los modosla transmisin seinicia cuandose usael registro SBUF comodestinopor mediode cualquier instruccin,mientrasque la recepcin se iniciaen MODO0 cuando seponenlos bitsRly REN en 0 y 1 respectivamente; y en los MODOS1,2 y 3, cuandoREN esten I y serecibe el bit de inicio ktart bit\.

SMO I SMl I SM2 IRENIITB8


BII

TI

SBUF
NOMBRE Y COMENTARIO
de interrupcin de la recepcin I Rl I Bandera haware la recepcin del 8obf al finalizar Se acliuapot del la mitad delintervalo detiempo enel Modo 0 o hacia (excepto Modos verSM2) en lOs 0tr0s bltdeStop potsoftuvarc serdesactivado Debe [Tl-] ganera deIatransmisin de interrupcin hardware delatransmisin del8obfen Seaclivaoor alfinal losotros M0d0s delbdeSfopen el Modo 0 o al comienzo software Debe serdesactvado Dor

BO

Figura32.1Bufferde datos serialdelpuertode comunicaciones del8051

B1

82

los Modos 2 y 3 esel90 bque serecibe En lRBSI = 0,RBB 1,siSil2 eselbitde Slop En Modo 0 noseutiliza En Modo blldedatos enlosModos 2y 3 al90 lIB8lConesponde programable por . Habitualmente esellf Es elusuario deDaridad . = 1 (por hablita la recepcrn soffware) Fq'l SREN . SiREN = 0 norecibe . fn Modo Rlnoseactivar 2 y 3,siSi/2= 1 entonces lStnl (RB8) datos esigual a cero siel9oblfde . EnlVlodo = 1 entonces siel 1,siSM2 Rln0seactivar noseharecibido bde Sfop . EnModo 0.Si/12 debe estar encero elModo segn latabla ls\m I Especifica - S[41

B3

B4

B5

86-87

La velocidad en bits por de la comunicacin, segundo o baudios, esten funcin del modo de comunicacin activo,as:en MODOO, la velocidadse dererminasimplementepor la ecuacin del os32.1 que divide la frecuencia ciladorde la CPU entre 12; en MODO2 est en funcin del valor del bit 7, SMOD, del registro de control de potenciaPCON (power controlregister) a los SFR.Cuanquepertenece do el bit duplicadorde baudios(SMOD) est en cero,la velocidad es Il64 de la frecuencia del oscilador, y cuandoesten uno, es | 132de la frecuencia stose expresa en del oscilador; la ecuacin 32.2. En el cuadro32.2 semuestra el registro PCON. BAuDtos enModo o = -Etun*tflr*q

l^

bt m ct dr

re e(

UI

m la

y deestado decontrol delpuerto serial Cuadro 32,1 Registro


SC0N del 8051 Ecuacin 32.1 Velocidad de comunicacin en M0D00

cil el

&orr,.i. #

prctico sobre Microcontrotadores curco

L\J \J t

LE

del BAUDI0S 2 = 25M0D (Frecuencia oscilador) en Modo


D4

2SM0DFrecuencia del oscilador B A U D l 0S enModosl y3=

32

12x(256-TH1)

Ecuacin 32,2 Velocidad de comunicacin en M0D02


(REGISTRO PCON DECONTROL DEPOTENCIA)
Bttl Bn6 tsn 5 Bt 4 Bt3 B12 Bn1
Bt0

Ecuacin 32.3Velocidad decomunicacin M)DIS| y 3 en los con elTlMERl

SMODI I BIT BO

I I G F1 I G FO I PD

NOMBRE Y COMENTARIO

ol

(ratentizado) tdte Iolls/ [,tooo SiIDL - 1 seactiva potencia) Down {baja FdBt Power = 1 seactiva SiPD gtanoera general depropsito lFol gt general depropsito lcFt-l nanoera

82 B3

84 - 85-86 Reservados 87 cte baudios fsltloD I atoupticaoor = 1 seduplca Si SI\OD lafrecuencia derel0j delfinrerl generador cuand0 ste seutiliza c0m0 debaudios enlos '1. modos de comunicacin 2y 3

o Sseactivan PDe IDLel microcntrolad0r simultneamente asume el lvlodo P1wer Djwn.0ue tiene sobre el l\40d0 ldle 0ri0ridad . Despus BesetPCON de la operacin t0mael siguiente valor 0XXX0000 . Enlosdiso0sitivos Hl\40S, PCON contiene solamente el bltSlt/0D

Con los bitsSM} y SM1 puestos en cero,seacriva el MODOO de comunicacinserial,en sre la entrada y salida de los datos se hace a travs del pin 10 (RXD) del microcontrolador, mientras que por el pinl l (TXD) segeneranlos pulsos de desplazamienro(sbifi cloch); la transmisin o recepcindel dato de 8 bits sehaceempezando por el bit menos significativo (LSB) y a una velocidad fija e igual a I l12 de la frecuencia del oscilador.En la figura 32.2 se muesrrala arquitectura simplificada que adopta el puerto serial cuando se activa el MODO0, y en la figura 32.3 se muestra el diagrama de tiempos (o cronograma) que le correspondeyBle ademsdescribe detalladamente el procesode transmisiny recepcinen dicho modo.

En el diagrama de tiempos se puede apreciar que la transmisinseinicia cuando seusael registro SBUF como destino,y que adems la sealde En MODO1 y MODO3 la velocidad de control interna SEND habilita la salidaen serie la comunicacin est en funcindel estado del del dato del bffiry la salidade la sealde desplabit SMOD y del valor de recarga y sobrepasa- zamiento (SHIFT). Cadavez que se envaun bit miento del registrocontadordel TIMER1, el del dato del bffir, ingresaun cero, y de estaforcual debeestarconfigurado como temporiza- ma, al transmitir el bit mssignificativo (MSB) el dor de 8 bits con recarga automtica(en modo bffir serialqueda cargado con ceros. 2) para optimizar su uso, y extenderlo a la mayora de las taTIMER\ VELOGIDAD REqrE'ClA DESMOD reas;tal como se muestra en la (BAUDT0S) (THl) c/f MODO VAL0R DERECARGA flsclt aftflR ecurcin 32.3 Modo 0,Max1 MHz 12MH z X X X X
Cuadro 32.2Registro de control depotencia PC0N del 8051

Modo 2,Mu:375K 12MHz y3:62,5K 12MH z En la tabla 32.L se muesrra Modosl 19,2 K 11,059 MH z una listacon lasvelocidades de coK 11,059 9,6 MH z municacin serialestandarizadas y 4,8 K 11,059 MH z la manerade obtenerlas en losMO2,4K 11,059 MH z DOS1 y 3, en stase relacionala 1,2K 11,059 MH z 137,5 K 11,986 velocidad con la frecuenciadel osMH z 110 K 6 MHz cilador del microcontrolador.con 110 K 12MH z el estado del bit SMOD y con la configuracindel TIMER1.

1 1 'l 0 0 0 0 0 0 0

X 0 0 0 0 0 0 0 0 0

X 2 2 2 2
1

X $FF $FD $FD $FA $F4 $F8 $1D $72 $FEEB

Tabla 32,1 Velocidades decomunicacin estndar en losMjD1S| v 3 conelTlMERl

prctico Curso sobre Microcontrotadores &k,

*: Sb

\d

i I

Cuuruulr,:uelunes serlales cunel nrletueuutralutior t!05r

(P3,1) TXD

t---+

SHIFI

LEE ELSBUF +

ry +
Figura 32,2 Arquitectura delpuerto serial enM0D00

C \';

SE

pr 1o
) u(
(-i

El procesode recepcin se la seal de desplazamiento (SHIFT) y cargaenserielos 8 inicia cuando REN vale 1 y RI vale 0, bajo esta condicin se bits del dato que van siendo cargan unos en el buffer recep- muestreados por el pin 10 tor y, un tiempo despus,se (RXD). En el dcimo ciclo de activa la seal de control in- mquina, tras haber puesto en terna RECEIVE que habilita 0 el bit RI, automticamenre a I "db. prcticosohre Curso Microcontrotadores $OO} &lcl*.I. \/

la sealRECEIVE se borra y la bandera de interrupcinde recepcin RI es puestaen 1. En la figura 32.4 se muestra el esquema simplificado de la comunicacin y el formatode palabra en MODOO.

pi
LI

CS

pl

.... s6 lsr . . . . s 6 s 1. . . . t . is 1. . . . s 6is l. . . . t . l s r . . . .


ALE

s6 sr.... s6 sr

s6s1

s5sl

sas' -

"n,nnnnnn

I
RxD (Dal8 ln)

Figura 32.3Cronograma delproceso decomunicacin enM0D00 activa el MODOl, y en la figura 32.6 se muestra el diagrama de tiempos que le correspondey que adems,describedetalladamenteel proceso de transmisinyrecepcin en dicho modo. Igualmente que en el MODOO,la transmisinseinicia cuando cualquier instruccin utiliza el registro SBUF como destino, sin embargo,el proceso de recepcin se activa cuando se detecta un flanco descendente en el pin RXD, que permanentemente es muestreadoa razn de 16 veces.
MSB

TRANSMISOR/ RECEPTOB
B|IO 8N B2 BiA BA

Al final de la recepcin, cuando el bit deinicio llega a la novena posicin a la izquierda del registro de desplazamiento, secargael dato recibido en SBUE se cargael bit de parada en RB8, y seactivaen 1 lgico la banderade interrupcin de recepcnRL En Iafrgara,32.7 se muestra el Con los bts SMl y SMI en ceroy uno respectvamente, el MODOI decomunicacin esquemasimplificado de la comunicacin y el seactiva serial,en stese transmiten 10 bits a travsdel formato de palabraen MODO1.
y formato Figura32.4Esquema de comunicacin depalabra enM0000

tSB

, T e
a z c

pin 11 (TXD) o sereciben por el pin 10 (RXD); los 10 bits queconformanla trama del formato de palabraestnintegradospor: I bit de inicio (start bit = 0 lgico), 8 bits de datosy I bit de parada(stopbit = I lgico). En estecasola velocidad de la comunicacin, como ya se estudi, estexpresada en funcin delTIMER1. La figura 32.5 muestra la arquitectura simplificada que adopta el puerto serialcuando se

Con los bits SM}y SMI seactivauno de los MODOS 2 3 decomunicacin serial,estosmodos se comportan de la misma manera, pero, en el MODO3 el programador puede ajustar la velocidad dentro de una amplia gama, como ya se estudi. En cualquierade estosmodos setransmiten I I bits a travsdel pin 11 (TXD) o se reciben por el pin 10 (RXD), la trama de los 1l bits seconforma

prcco curco sobre Microcontrotadores &kn.t

#
I

t!05r euttel netucuttutedgr settalus Gunrunlsaclones

DESBORDA 1 TIMER

t+l
Ld

DESBORDA 2 TIMER

ENSBUF

srrtoo=o\ sM0D=1

ol

""r f I
| "0 , . lu

orl rHrrnRupclru
SERIAL PUERTO

RCLK . . -. --..

'I

MUESTREO

ENSBUF ESCRIBE

_f

q
ENSBUF ESCRIBE

-+

sHrFI

Ir

r
presentes y elTimer 2estn RCI.'K TCLf, 8052 enelmicrocontrolador solo
l'lota:

LEE E[ SBUF ----+

del Arquitectura 32.5 Flgura puefto M0D01 serialen

+
cuencia,mientrasque en el configuMODO3 esvariable, en funcindelTIrabley est MER1, tal como ya seha exen la ecuacin32.3' presado

por I bit de inicio (sart bit = 0 lgico),8 bin de datos,I noveno por el usuario bit programable almo bit de paridady I bit de (xopbit = I lg,co). parada

La velocidadde la comudel modo nicacindepender de comunicacinactivo, en MODO2 la velocidades fiia e iguala1164 ll32 de la fre-

&icmL

prctico Microcontrotadores sobre curco

cr@kll

TX

l|

fl

|l

f|

JLN
T
a a a m I I

ro sBuF fl wrrre

fl f| l | | |

|ln f |

* 16 Re8t

II ,I

RX Clock

nl

3:',ffi"Tl*" n

Figura 32,6Cronograma delproceso decomunicacin enM0D01

esquemasimplificado de la comunicacin y el formato de palabra en los MODOS 2 y 3. La figura 32.10 muestra la arquitectura simplificada que adopta el puerto serial cuando se activa el MODO2 (los MODOS 1 y 3 poseenla misma arquitectura,ver figura32.4) De la misma forma que en los otros modos, la transmisin se inicia cuando cualquier enM0001 instruccin utiliza al registroSBUF como destino, tras esta accin se carga el bit 3 (TB8) En la figura 32.8 se muestra el cronograma del registro SCON en la posicin del noveno que le correspondey que ademsdescribede- bit del registo de desplazamiento (como un talladamente el proceso de transmisin y re- bit de paridad) y luego, se da paso a la transcepcin en el MODO2 de comunicacin, misin en serie. mientras que en la figura 32.9 se aprecia el
y formato depalabra de comunicacin Figura32.7Esquema
LSB DATO

Staft gfr 8f' BiA BB Bt4 86 86 Bt| Ptog Stop

Bt rronr",S,n,rarqaelllTBsdescoN l-J Drooramable | | 'de-paridad larmaqen del bil RBB de ScoNJ BECEPCI0fl: Es I

enM0D02 decomunicacin Figura 32,8Cronograma delproceso

y formato Figura Esquema de 32.9 decomunicacin palabra M0D0S 2y 3 enlos

prctico t r'.t curco sobre Miuocontrotadores &,

L'uuruulcaulunes ser{ales cuue[urler'cr,.untraladur' tltJSt

FASE 2 DEI RELOJ (1/2fosc)

rtruRnupcrru ol
PUERTO SERIAL SM0D=0

ESCRIBE ENSBUF

ESCRIBE EN SBUF_'
Nota: y elTimer presentes TCLK, RCLK 2 estn soloenel mcrocontrolador 8052

ffi

rEE EL -'BUF

lt{i'l'r r-

Figura 32.10 Arquitectura delpueo serial enM0D02 La recepcinsin embargo, se inicia cuando se detectaun flanco o transicin de nivel de voltaje descendente por el pin
).
;wA 4a

+
SBUF, se cargael bit de parada en la posicin de RB8, y se activa en 1 lgico la bandera de interrupcin de recepcinRI.

RXD, que es continuamente muestreado; al final del procesode recepcinsetransfieren los 8 bits recibidos al registro

Y .

r"

prctico sobre Microcontrotadores gOF @@fr(flT".i. Curso

&

AVR fabricados por ATMEL Losmicrocontroladores tienen arquitectura RISC y una estructura que socompactas y poderosas de un porta instrucciones solociclo. Estosmicrocontroladores cuentancon una estrucinternos(los puertosI/O, tura para los perifricos interno, los timers,laUARI, el SPI,los el oscilador anlogos), ADC y los comparadores canales q.t. externos. reducela necesidad de usarcomponentes
prctico curso sobre Microcontrotadores &i<rc"i, (,1l}

ATMEL
Es una compalaque desde1984 esllder y piode semiconductoneraen el diseoy desarrollo con alta escala de integracin;enresavanzados se tre los principalesproductosde estaempresa y microproceincluyen los microcontroladores lgicos y analgicos AVR, los conjuntos sadores de alta densidad(PAL y PAA), las programables y amplilos mezcladores no voltiles, memorias ficadoresde seal,y los circuitos integradosde comunicacinRF. Por su tecnologlade fabricacin de circuitos integradoscon alta densidad (wafer ATMEL estambin consideraprocesse), sustcnide vanguardia; da como una empresa BiCa las estructuras CMOS, casse orientan MOS y SiGe (SiliconGerrnaniurn). leccinestudiaremos el microcontroEn esta AIMEL que cuenta con lador AVR de 8 bits de ms representativas de los milas caracterlsticas 4T9052313, nivel medio: el de crocontroladores que esun miembro de la familiaAI90.

. Seguro de programacin parr las memorias FLASH y EEPROM . 15 lneasI/O programables . Tirner/Coanters de 8 y L6 bix con preescalador individual . Comparadoranlogo . IVatc thdo g programable .lnterfaz serialSPI . UARTpll-duplex . Dos modos de bajo consumo: IDLE y POTITER-DOIVN . Interrupciones externas e internas . Voltaje de alimentacinentre 2,7 y 6,0Y

U
ta

Descripcin delAT90S2313 depines


RESET (RXD) PDo (fxD)PDl XTAU XTALl (rNT0) PD2

n(

vcc
(SCK) PB7 (MSo) PB6 (MoSD PBs P84 (0C1) PB3

P d'
nl

dela AT90S2313 Elmicrocontrolador familia AT90

n( ul itr

(rNTl) PD3 PBz de nivel meEstemicrocontroladorseconsidera (r0)PD4 dio y cuentacon una arquitecturaavanzadaproPBl(Arr{1) pia de la familia 4190,. la que poseemuchas (f1)PD5 (Alltl0) PBO importantesy tiles parael usuacaractersticas (rCP) PD6 Gf'lD rio a la hora de efectuar cualquier tarea. El CMOS de 4T90S2313esun microcontrolador 8 bits que cuenta con 2Kbytesde memoria pinsdel F,gw nicwtfrolarATffims 8,1 hnfrguncin de de empay su estructura FLASH programable, que estipo PDIP o SOIC de20pines.SusprinEn la figura 33.1 semuestrala distribucin son: cipalescaracterlsticas y el nombreprincipaly alterno,entreparntesis, de cada uno de svspines. Muchos de suspines . Arquitectura RISC de bajo consumo,propia tienenfuncionesya bastante y, por lo conocidas, de los MCU AVR tanto, sloseexplicarn a continuacinaquellos . 118 instrucciones y poderosas compactas particulares y nuevas que poseencaracterlsticas . 32 rcgistros de 8 bitsde propsitogeneral que debanconocerse. . Mxima velocidadde ejecucin l0MHz (loMrPS) Port B (PB7- PBO) : estos elpuerpines conforman . Memoriasde datosy programano voltiles to B, que esde 8 bits,bireccional (operancomo . 2Kbtes de memoriaprogramable FIASH entradao salida),y todassusllneastienen adems . 128 bytes SRAM de memoria RAM esttica resistencias internas pull-up progfamables;todas . 128 bytes EEPROM susllneaspuedenmanejardirectamentediodos de memoriaprogramable

R
al fI

C lc

t( n c
E

u n
tl

tr l

rrn, #

prctico Micrmontotadorcs curso sobe

I
f

co o de bits, se desarrollan (se ejecutan y se devuelveel resultado) en un slo ciclo de instruccin y opeNC ran directamente sobre los 32 registros de trabajo. Por su estructuDEL SEAL ra RISC, cuenta con un reducido OSCII-ADOR nmero de instrucciones flexibles EXTERNO y poderosas, adicionalmente, su tecnologa para el manejo de dos operandos simultneamente les Figura Configuracin deloscilador otorga la posibilidad de accederr33.2 pidamente a los datos a travs del hastade 20m4. PBOy PBI operan banco formado por los 32 registrosde trabajo LED y cargas tambin como las entradas positiva (AIN0) y de 8 bits cada uno. negativa (AINI) del comparador anlogo. Al activar el reset todas sus llneas se ponen en tercer estado(alta impedancia). : : . ' '' ' ,'1., -. estos , ,. pinesson el puerto D de 7 bits, bidireccionales, y todas sus lneas tienen resistencias internas de pull-up; adems,tienen capacidadpara manejar hasta20mApor cada una y su estado, despus del reset,es el de alta impedancia. ;1" el reseten estos microcontroladores se activa por medio de estepin, si se pone externamente en nivel lgico bajo al menos durante 50ns. ,",':,,i1:rl*n en estemdulo, XTAI1 yXTAL2 son los pines de la entrada y la salida, respectivamente, del amplificador inversor del oscilador interno. Thl como se muestra en la figura 33.2, el oscilador puede excitarse usando un resonadorcermico o un cristal de cuarzo, adems,pede usarsepara sincronizar otros dispositivos si seconecta un b"ffi, en el pin YfAL2; all tambin puede verse que la entrada para el oscilador externo, cuando se utiliza, debe ser el pinYfALl. -'r En la figura 33.3 se muestra el diagramaesquemtico en bloques de la arquitectura del

. HCEUFFER

N190523r3.

{}rganixa*i*s'r ri* }* m*n:r:rin


En la figura 33.4 semuestra la distribucin de la memoriaen losmicrocontroladores AI90S2313 y las direcciones asignadas paracadarea.El espaciode memoriaen la arquitectura AVR eslinealy est conformado por: 2Kbytes de memoria deprograma tipo FLASH,128 bytes de memoria de datos EEPROM, 128 bytes de.memoria de (SRAM), 15 registros datosRAM esttica I/O de I byte,32registros de trabajoo propsitogeneral,y los registros especiales que soportanlas comunicaciones y los perifricos internos.
t i,r. - ir]:,": f t 1,t,, : ii i.: i,::'.ti-r.i t,'

Los 32 registros de trabajode 8 bitsde la CPU seencuentran localizados en las primerasposicionesdel reade la memoria de datos (entre lasposiciones la estructu$00 y $1F),y poseen ra quesemuestra en la figura33.5.Talcomose muestra,cadaregistroposeeun nombre, una direccinespecfica, los re adicionalmente, gistrosque hay entreel R26 y el R3l sepueden l+""i :i ?.,f a st*cti ril d*'eT{}*Sfi agruparen tresregistros de 16 bits:losregistros AVR esHaruard (con buses se- X, Y y Z, quesirvencomo apuntadores La arquitectura en los paradospara las memoriasde datosy progra- modosde direccionamiento indirectodel espacon la cio de memoria de datos;en la figura 33.6 se ma) y del tipo RISC. Las operaciones ALU, que puedenserde tipo lgico,aritmti- muestran los registrosX,Yy Z.

prctico curco Microcontrotadores sobre trr

*.t #

PBO - P87

- PD7 PDO Figura3|.3Arquitectura del AT905231 3

xr?x

Stdb

&

&tt:Z

pnctico curco sobre Microcontrotadores


Memorh de programa (FLASH) Memoria de datos

. El espacio de menroriaI/O (el conjuntode registros especiales) Lx 64 direcciones I/O que conforman el espacio de memoriade datosde lecturay escritura, y a travsde las cualesse controlan las funciones generales, especiales y el estado de los perifericos internos, talescomo los timers,los contadores, los convertidores A"/D, la UART y otros; seencuentranlocalizados entre las posiciones $ZOy $5F.En la tabla 33.1 se muestranlas direcciones,los nombres y lasfunciones de todoslos registros del espacio de memoriaI/O.

| ] I !

Aunquetodoslosregistros I/O son delespcio imponantesy de maneraparticularcumplen funciones especficas y propiasdel control de cadauno de los mdulos periftricos, hay dos registros que caractersticas tilesy necesarias parael funFigura Mapa dememoria delAT90S2313poseen 31.4 cionamiento generaldel microconuoladory que deben conocerse bien,stos son:el registro deesta-. $oo do SREGy el de controlde la CPU MCUCR
G

o c o ED o a .o EL

$01 $02

l. Registro tlc cstado SREG


Bt 3F ($5F) Lectura/Escritura uw R/w R/w R/w Rr Valor inicial 00000000

e EI

It o
G E 6

$oo $oE $or


$10 $11 X bajo delregistro $1A Eyte X alto delregistro $1B Eyte Y C Eyte bajo delregistro $1 Y alto delregistro $1D Eyte E Eyfe Z bajo delregistro $1 delregistro Z $1F Bytealto

Mfv MfV Ml

Figura 33.7 Registro deestado SREG En la figura 33.7 semuestra el registrode estado SREGcon su direcciny el valor inicial queasume despus del reset, en stese encuentranlos siguientes bits de control:

o It o o o E) o E

dela CPU23|3 AitT (I): esel habilitadorglobalde interrupfrgun 33,5 Registros detrabajo 0 Registro X ($18) R27 15 Registro Y ($1D) R29 Registro Z ($10 R31 ($1E) R30
($1C) R28

($1A) R26

indirecto X,Yy Z Figura 33.6Registros dedireccionamiento

ciones, su estado debeseruno lgicoparahabilitarlasy es borrado automticamente por el hardwaredespus de haber atendido la interrupcin. Bit 6 (T): esel bit de almacenamiento y copia que se considera como fuente o destinopara lasinstrucciones que operansobreun bit, ales como BLD (carga de un bit) yBST (almacenamiento deun bit). Bit 5 (H)z esel bit banderaque seala la ocurrencia del acarreointermedio en las operacionesaritmticas.

prctico Curco Miuocontoladores sobre &rrrf.#

Lusurict'ut'uuttu[dutcs /{Vtitiet! ltis tie/fll(tEL


DIRECCIN HEX. NOMBRE FUNCION

BitT y 6 (R): estosbits estnreservadospara otros MCU de la familia AT90 y siempre se leen en cero lgico. Bit5 (SE):esel irque seutilizapara habilitar cualquiermodo de adormecimiento (SLEEn,con su estado en uno lgico esthabilitado. Bit 4 (SM): es el bit que se usa como interruptor de control para activar uno de los dos modos disponiblesde bajo consumo.Cuando SM vale cero,se selecciona el modo IDLE, y cuando vale uno, el modo POWER-DO\X/N. Bit3y 2 (ISCIl e ISC10): con estosdos bits se controla y define la sensibilidad asociada con la entrada de la interrupcin externa 1 (pin INTl). En Tabla33.1Regstros de memoria especiales delespacio l/0 la tabla 33.2 se resumen las opcionesde seleccin del nivel Bit 4 (S): el bit de signo sealacon su estado,en y el flanco parala sealde excitacinde esta uno lgico, cuando el resultadode una operacin interrupcin. aritmtica,en complemento a dos, es negativo. Btl Bit 3 ff): la bandera de sobreflujo o desborda$35($55) miento segeneracuando ocurre un sobrepaso en Lecl!ralEscrtura R R R,ryV B,!V R,ryV R,ryV RAV R,ryV r fr cal 00000000 el alcance del resultadode una operacinen com- Val of plemento a dos. Figura 33.8Registro de control delmicrocontrolador MCUCR Bit2 (N): la banderade resultadonegativo seala cuando una operacin aritmtica cualquiera, Bit 1 y 0 (ISC01 e ISC00): con esrosdos bits se controla y define la sensibilidadasociada o lgica, arroja un resultadonegativo. para la (Z): Bit | exe bit es la bandera que nos indica entradade la interrupcin externa0 (pin INTO). cuando el resultado de una operacin lgica o En la tabla 33.3 se muestran las opcionespara aritmtica es nulo o cero. la seleccindel nivel y el flanco de la seal de Bit0 (C): estebit es la bandera de acarreofinal excitacinde tal interrupcin. propia de las operacionesaritmticasy lgicas.

($50 $3F ($5D) $3D ($58) $38 ($5A) $3A ($sg) $39 $38($58) ($s5) $35 ($53) $33 ($52) $32 ($+ $2F ($4E) $2E ($4D) $2D ($4C) $2C $28($48) $24($4A) $25($45) $2a 6aa ($41) $21 ($3E) $1E ($3D) $1D $1c($3c) ($s3 $18 ($34 $17 ($36) $16 ($32) $12 ($31) $11 ($30) $10 $0c($2c) ($2B) $08 $0A($2A) ($2e) $0e ($28) $08

SREG SPL GIMSK GIFR TIMSK TIFR MCUCR TCCRO TCNTO TCCRIA TCCR1 B TCNT1H TCNT1 L OCRlAH OCRlAL IC R 1 H ICRl L WDTCR EEAR EEDR EECR PORTB DDRB PINB PORTD DDRD PIND UDR USR UCR UBRR ACSR

Registro deestado Puntero bajo delapila general Registro MASK deintenupcin general Registro FI-AG deinterrupcin Registro deintenupcin del TIMER/C0UNTER Registro debandera del TIMEF/COUNTER general Registro decontrol del MCU Registro decontrol del TIMER/C0UNTER 0 TIMEF/COUNTER O(8b,fs) Registro decontrol Adel TIMEF/COUNTER 1 Registro decontrol Bdel TIMER/C0UNTER 1 Byte allo del TIMEF/C0UNTER 1 Byte TIMER/COUNTER 1 bao del Byteallo delregistro desalida decomparacin 1 Bytebalo registro desalida del decomparacin 1 Byte 1 alto delregistro deentrada decaptura registro Bytebqo del deentrada decaptura l Registro decontrol del temporizador delwatchdog Registro dedirecciones delaEEPROM Registro dememoria delaEEPR0M Registro decontrol delaEEPROM Registro dedatos delpuerto B Registro B dedireccin dedatos delpuerto puerto Pines deentrada del B puerto Registro dedatos del D Registro dedireccin dedatos delpuerto D Pines D deentrada delouerto Registro dedatos l/0delaUART Registro deestado delaUART Registro decontrol delaUART Registro develocidad delaUART y control Registro deestado delcomparador anlogo

I L_

l-

En la figura 33.8 se muestra el registrode control MCUCR con su direccin y el valor inicial que adoptg despusdel reseen ste se encuentran los siguientesirs de control:

r-

,&^ $tOb

&fl

. { &rctn.2.

prctico Curco sobre Microcontrotadores

Ll]tiL

L\:-

rscl l
0 0 1 1

tsc0l 0 0 1
'l

El rea de la memoria de datos es del tipo RAM esttica (SRAM) y est compuesta por 128 bytesde 8 bits localizados entre las posiciones Tabla de sensibilidad 3!1.2 Control de la intenupcin 1 (lNTl) $60 y $DF; en toda estarea, DESCRIPCIN tsc00 los registros se pueden accepor 0 3egenera una interrupcin nivel bajo enelpinlNT0 der directamentepor medio 1 leservado de cualquier modo de direcporunflanco interrupcin 0 3egenera una descendente enel pinlNT() cionamiento. En la figura porunflanco 1 ie genera una intenupcin ascendente enelpinINTO 33.9 se muestra la organizaTabla 3i1.3 Control de.sensibilidad delaintenupcin 0 (NT1) cin de la SRAM. 0 1 0 1 por una interrupcih nivel Segenera bajo enelpinlNTl Reservado porunflanco interrupcin Segenera una descendente enel pinlNTl porunflanco intenupcin Segenera una ascendente enelpinlNTl Durante las interrupcionesy los saltosa subrutinas; la direccin de retorno del PC esalmacenada en el rea de la pila (stach),que puede estar localizadaen cualquier lugar de la memoria SRAM, y, por lo tanto, sepuede afirmar que su tamao slo estlimitado por el espaciodisponible en la memoria de datos esttica.El registro apuntador de la pila SP (stackpointer) es un registro de 8 bits que se usa para direccionar todos los 128 bytesde,la SRAM; sre se decrementa en uno cada vez que se apila un nuevo dato por medio de la instruccin PUSH, y, por el contrario, se incremenra en uno cuando un dato es descargadode la pila por medio de la instruccin POP; en la figura 33.10 se puede apreciarla parte baja del registro SB llamada SPL.
Bt

rsc10

DESCBIPCION

Este microcontroladorofrece2Kbytes de memoria FLASH programable por el usuarioen el programa, y est donde se debealmacenar organizada en una estructura de 1K X16 para facilitar las operaciones con las instrucciones de 16 32 bits. Por medio del registro contador del programa(PC), que es de 10 bits,se hasta1.024 posiciones puedendireccionar de la memoriade programa.
Banco deregistros Direcciones dedatos

Registros l/0

$30($50) Lectura./Escritura RAV BA'V Valor iniclal 00000


RAA/ RA,4] RAV BAV BAV R^/V

ooo

Figura 33.10 Registro apuntadnr delapilaSPL

interna SRAM

Figura 33.9 Area dememoria SMM

El MCU tiene internamenre una memoria de datos de lectura y escriturade 128 bytesdel tipo EEPROM y estlocalizadaen un espacioseparado dentro del reade datos. A continuacin, en la figura 33.LL, semuestran los registrospropios del manejo de datos de esta memoria, all se pueden ver: el registro de direccin EEAR (EEPROM addressregister)que contiene la direccin de la localidad de memoria que va a ser

prctico Gurco sobre Microcontrotadores &ictf,r.#

accedida, el registrode datosEEDR (EEPROM data register) que contieneel dato de 8 bits que va a serescritoo ledo de la memoria,y el registro de control EECR (EEPROM connol register); stea su vez tiene tres bits de control: el EEMITE, el EE\7E y el EERE, los cualesson utilizadoscomo el habilitador maestrode la escritura, el habilitador de escrituray el habilitador de lectura,respectivamente.
8it 31E(3E) Lectura/Escritura R Valor inicial 00 8it 1D($3D) Lectura/Escritura R/W R/W R/W Valor ncial 00000000 8t $1c($3c) Lecfura/EscrituraR BRBBP./WR/WW Valor inicial 00000000 76543210 R/W R/W R/W R/W R/W 76 R/W R/W 0 R/W R/W 0 0 R/W R/W 0 0 R/W 0

Figura 33.1 2 Direccionamiento directo deregistro simple

j.

l ) 'r

r - i ,r ,.,i l t:r ::i .)

'.,r ',,

1, i

:r : ..'.i :l i (

En la figura 33.13, OP representa al cdigo de operacinde la instrucciny ls registros r y d representan a los operandos. El resultado seguardaen el registrod.
Banco de

Figun33.11 Registros decontroly EEPROM estado delamemoria

Nota:
la memoria FLASH interna de programadel AT90S23l3 soportahastaI .000 ciclosde lectura y escritur&lo cual esdpico paraestatecnologla.Sin embargo,las memorias EEPROM tienen una mayor duracin,puedensoportar hasta100.000ciclos.

Figura 31.13 Direccionamiento directo deregistro doble


[ ] i r , : c c i , - t : 'r 'l t i t ' , . . i , : i l t s . " t " *! . = 9 . j . I .'

En lafigura 33.I4,OP representaal cdigode operacin de la instrucciny la direccindel operando est contenidaen los 6 bits msbajos de la instruccin P; mientras queen n seubica el destinoo ldfuente del registrodireccionado.
Memoria l/0

Modos dedireccionamiento ded*tcsy programas


El microcontrolador 419052313, con arquitectura AVR RISC, cuentacon un poderoso conjunto de oncemodosde direccionamiento que nospermitenacceder a cualquiera de susmemoriasy registros internoseficientemente. A continuacin sehacela descripcin y el anlisis simplificado de cadauno de estosmodos. l. Direccicnamiento directo <ie registrr, iirirpt,En la figura 33.12, OP representa al cdigo de operacinde la instrucciny el registrod representa al operando.

Figura 31,14 Direccionamiento directo deregistros l/0


i i j ,...i .;11,tj ,.1,., :,i '',.,' . : :.!.:

En la figura33.15, OP representa al cdigo de operacinde la instruccin y la direccinde 16 bits del dato selocalizaen la partebajade la instruccin. Rr o Rd especifican el registrodestinoo fuente.

&<ln #

prcco curco sobre Microcontotadores

L\J gL

Espacio de datos

En la figura 33.18, el contenido del registro X, Y, o Z se disminuye en uno, antes de la operacinpara apuntar a la direccin efectiva del operando.
$DF directo de datos Figura33.15Direccananentl

al cdigo En la figura 33.16, OP representa de operacin de la instruccin y la direccin del operando se obtiene al sumar el contenido del registro Y o Z, con la direccin de 6 contenida en la parte a bits (desplazamiento) de la instruccin. En n seubica el destino o la fuente del registro direccionado.
Espacio de datos

Figura 33.18 Direccionamiento indirecto dedatos con pre-decremento

En la figura 33.19, el contenido del registroX, Y, oZse incrementaen uno despus de la operacin; de estaforma el contenido de cualquiera de estosregistros,antesdel incremento, apunta a la direccin efectiva del operando.
Espacio de datos

$DF

con Figura Direccionamiento indirecto dedatos 33,16 desplazamiento


$DF

En la figura 33.17,Ia direccin del operando se encuentra en cualquiera de los registros apuntadoresX,Y, oZ.
Espaco de datos

Figura Direcconamento ndirecto 3!1.19 dedatos con post-incremento

$DF indirecto Figura 33,17 Direccionamiento de datos

En la figura33.2O, el contenido del registro Z se usa como un byteconstante de direccin. En los 15 bix ms significativosse encuentra la direccin efectiva (entre las posiciones0 y 1k) y con eI b'it menos significativo (bi) seselecciona la opcin de captura de la parte baja o la alta de| byte del cdigo de memoria, al ponerse en 0 y 1 respectivamente.

prctico curco sobre Microcontrotadores &kn"t #

Lusurlet'oeuutrulutiatrs /l,Vti tiet! ftstic/1ll(tEl

El AVR 4T90S2313 tiene disponibles15 lneas de puertos bidireccionalesy totalmente programables,que seagrupan en las 8 lneasdel puerto B (PBO a PB7) y en las 7 lneas del puerto D (PDO a PD6).
Figun 33,20 Direccionamiento decdigo dememoria cln clnstante

En la figura 33.21, el contenido del registro Z seusapara definir la direccin a partir de la cual continuarIaejecucin del programa.Se usa con las instruccionesde salto y llamado (IJMP e ICALL), en cualquier caso,el registro contador del programa PC secargacon el contenidodeZ.

PB es un puerto IiO bidireccional de 8 bits, todos tienen resistenciainterna de pull-up programable individualmente, adems, cuentan con bffirs con corriente limitada capaces de manejardirectamente diodos LED y cargas de hasta20mA en configuracin sink. En Ia figur a 33.23 se muestrala arquitectura del pin PBO,mientras que en la tabla 33.4 se resumenlas funcionesalternasde algunosde svspines.

El registrode datos PORTB, el de direcciones de datos DDRB, y el de los pines de entrada PINB conforman los tres regisrros que nos permiten el acceso y la configuracin del puerto B; todos hacen parte de los registrosespeciales I/O y estnrepresentados en la figura 33.24.Latabla33.5 muestra las opciones de configuracin indirecto Figura33,21 Direccionamiento dememoria deprograma del puerto por medio de los bits del registro de direccin DDRB (bits DDBx) En la figura 33.22, OP representa al cdigo de operacin de la instruccin, y la direccin relativa en complemento a dos k puede estar entre-2.048 y 2.047. Al ejecutarse el programa salta y contina corriendo a partir de la direccin efectivaque resultade sumar el contenido del registroPC con la direccin relativa ms uno (direccin efectiva=PC+k+l).

PD es un puerto Ii O bidireccional de 7 bits, todos tienen resistenciainterna de pull-up programable individualmente adems, cuentan con bffirs que tienen la capacidad de impulsar hasta 20mA en configuracin sink. En Ia figura 33.25 se muestra la arquitectura del pin PDO, mientras que en la tabla33.6 se resumenlas funcionesalternasde todos sus pines.

El registrode datos PORTD, el de direccionesde datos DDRD, y el de los pines de entrada PIND conforman los tres registrosque nos permiten el acceso y la configuracin del puerto D. en la figura 33.26. Figura Direccionamiento relativo dememoria deprograma stos estnrepresentados 33.22

&kr*t. #

prctico Microcontrotadores curso sobre

0s
P ULL U-P ( Res is t en c ia in te rn a )

PARA SABER MAS: Dos aspectos importantes de puertos los


. l -: teCtu--: .. :'-S arOU ----: .: -

.- : - - :: ::-';-':^^+,^;^^ Yl l tl duc l r :- - ::.,:

.t) o o
t

o cn

puec:namente encer 0. s-ministrar corflente a traves oe lasr esistencias inter nas de pull-up permacuando stas necen activas. Noolvi de desconectarlas!. . Por medio delosregistros PINB delospines deentrada puede y PIND, se leer dir e c tapresenmente lgico el valor te entodo momento encualesquier de alospines dees puertos, tos si estn configurados Miencomo entradas. que tras cuando los reseleen gistros PORTB o P0RTD, seaccede a loslatchs dedatos de cada uno delosprnes.
Lasopcionesde configuracin del puerto se programan por medio de los bits del registro de direccin DDRD (is DDDx), de la misma forma que se hace para el puerto B (ver la tabla 33.5).

WPrEscritfa en pler1o B V/ D:Es c f lf t e D0llB qL Le. Ua c TCf e pr edo B f P lEilr i . "nel ! r le li LeCr r : r! r r e( lr D D n 3

AINO HACIA ELCOMPARADOR de unpin delpueftoB Figura33.23Arquitectura simplificada

PIN PBO PB1 PB3, PB5 P86 PB7

FUNCIONES ALTERNAS positiva AlN0 Entrada delcomparador anlogo AlNl Entrada negativa delcomparador anlogo 1,0C1 e igualacin delTIMER/C0UNTER Salida decomparacin para dela memoria, MOS| Lnea deentrada dedatos descarga lacaroa dela memoria. MlS0 Lnea desalida dedatos oara Entrada serial de reloj SCK delpuerfoB Tabla33.4Funciones alternas dealgunlspnes

BN $18($38) LectrralEscfitura Valorn c a 00 E tf $17 ($37) Lectlrra/Escr tura Vaor n cr Bit $16 ($36) L"octura'Escf tura Vaof nrci R X B R X R X R,'W 0 7 00 0 011 RrW R,'!V 0 0 R'W 000 rt.l/ RlV

00

y configuracin Figura3!1.24 Registros de acceso delpuerloB

El AVR AI90S23|3 nos ofrece 1l fuentesde interrupcin, incluyendo al reset. Todos los vectores de las interrupciones apuntan,como en todoslos microcontroladores, a lasprimeras la memoria de posicionesde

prctico AgiUOO; curso Miuocontrotadores sobre

dt)

v/

/lVti de ti Ltisde/{lltEl Lusurlet'ocun[r'o[d0lcs


Programa que en este caso estn localizados entrelasposiciones$000(0)y $00A(10). En la tabla 33.7 se describen todas las fuentes de interrupcin acompaadas por sus direccionesy nivelesde prioridad. Como es lgico, eI reset siempretiene reservada la posicin inicial ($OOO de la memoria de programas adems,es la interrupcincon mayorprioridad para la CPU; en estemicrocontrolador,la prioridad a la atencin de las interrupciones estorganizadalinealmente en orden descendentedentro del rea de vectorizacin por lo tanto, el vector 1 1 (el de la interrupcin del comparadoranlogo ANA-COMP), que es el ms alto, es el que goza de la menor prioridad.

DDBx P0RTBx

v0

Pu l l -u p No Si No No

Comentarios

0 0 1 1

0 1 0 1

Entrada Enfada Salida Salida

(tercer estado Hi-Q Estado dealtaimpedancia lgico extemo suministrar coniente Con uncero (toggle) Salida encero (toggle) Salida enuno Tabla33.5Configuracin de lospinesdelpueftoB

Nota: x puede seruno delospines entre el 0 y 7

WPEscritura enpuerlo D WDr Escrlura er DDFD delpuedo RL Leclura endelLATCH 0 RPr Leclura delprr delpuerto D DDRD B0:Leclura delregisto FXD: Receptor dedalos de la UART nXEN Habiltador derecepcin [-IARI de1a

Btt $12($32) LecturarEscr tura Valorn c a Btt $ 1 1($ 3 1)

Todas las fuentes de interrupcin de la CPU puedenser individualmente habilitadas o no por medio de los bits de Ios registrosde control adecuados para cada una de ellas;pero, en cualquier caso,no se debe olvide unpin delpuerfoD dar poner un uno lgico en el Figura33,25Arquitectura simplificada bit habilitador global de interrupciones(l) que seencuentra 76543210 en el registro de estadoSREG. **
B RW R,W R,V/ R'W RW R'\1J B'\ 00000000

Leclura/Escritrra Valor Inical 00 Btt $10($30) LecturalEscril!ra RF inicial Valor 1]X b

il

Las fuentes de interrupcin que generan un ciclo de reset en elAVRAI90S23L3 soninternasy externas, y son tres: . El reset a la conexin orueron- reset). steocutr. Qt cuando la fuente de alimen-

R X

R X

y configuracin Figura33.26Registros delpueftoD de acceso

. ( ^db. (ft6) &Kr".i.


\,"r/

prctico curso sohre Microcontrotadores

PDO PDl PD2 PD3 PD4 PD5 PD6

Entrada derecepcin dedatos dela UART, RXD Salida detransmisin dedatos dela UART, TXD Entrada deinterrupcin externa cero, lNT0 Entrada deinterrupcin externa uno. lNTl de 'lt'''!? 'n!rl-ECJ r0 Entrada externa 1.T1 Entrada extema delIIMERTCOUNTER Pin decapiura :: - \'ii. :: -',-:r ' deentrada Functones Tabla 33,6 a E'.as ii i-. : -i-( :: :-::-- j

Las interrupciones externasson dos v sr recibena travsdelospinesINTI e INT0, las dos se habilitan por medio de un flanco externo crecienteo decreciente, , por medio de un nivel lgico bajo; estasconCiii,nes 5r-progrirman por medio del rel,rdor S:.-:: ;- -. ::.:.. i-l ::icrocontrc-, \f CL CR :. , :: i.:' , ::' ... ...I' fl :i 11 " 1r .

tacin Vcc caepor debajo del umbrai de seel cual estdeguridad del microcontrolador, Vpot, el finido como y pere que se muestran los valorestpicos en la tabla 33.8. El resetexterno. rt. o.l.ttt cuando seaplica un nivel lgico bajo en el pin de entrada (RESET), durante al menos 5Ons. deI reset El.resetdel temporizador del perro-guardin (uatchdog). ste seda cuando el temporizador del perro-guardin esthabilitado y su tiempo se cumple; el usuario puede seleccionarel uso de estetemporizador si lo programa utilizando el fusible lgico de programacin de la memoria FIASH, llamadoFSTRT. todos los registros Nota: despusdel reset, I/O son puestosen su valor iniespeciales cial, y el contador del programa (PC) se cargacon la direccin de origen ($OOO. .

Como va sc ha il;:.. ..i.....-.:,-. .. -. I . bal de las interrupcionc.:r.:--: -, , bit del registrode estado.pcro .. :.ir...tacin de cada interrupcin extern .i; manera individual se logra por medio de los registrosGIMSK y GIFR, que reciben los nombres de: mscarade interrupcionesgenerales y banderas de interrupciones generales. A continuacin se describenestos dos registros.

En esteregistrose encuentranhabilitadospara el usuario solamentelos bits 6 y 7, denominados INTO e INTI, y, por medio de ellos,se habilitan las interrupcionesexternas0 y I respectivamente(asociadas con las entradasINTO e INTI), cuando se colocan en uno lgico. En la figura 33.27 se muestra el registroGIMSK.

Direcciones de Prioridad Definicin de lasinterrupciones Vector No de Memoria Fuente deprogramainterrupcin '1 y delwatchdog (POR) Pin delreset extemo dereset, a laconexin $000 RESEI 2 4 5
b

7 8
q

10 '11

$oo1 $oo2 $003 $o04 $005 $006 $007 $008 $oog $ooA

(pin INTO Solicitud deintenupcin externa lNT0) cero (pin INTl deinterrupcin externa Solicitud uno lNTl) TIMERI CAPT1Evento del TIMER/C0UNTER decaptuna 1 TIMER1 COMP1 Evento deigualacin con elTIMER/COUNTER I TIMER1 regisfo OVF1 Sobrepasamiento del del TIMER/C0UNTER 1 TIMERO OVFO Sobrepasamiento del registro del TIMER/C0UNTER 0 (RX)de UART, M Recepcin compleh laUART UARI UDRE Registro dedatos delaUART vaco UARITX Transmisin completa 0-EdelaUART ANACOMP Comparacin anloga

Baja

Tabla33.7Tabla de vectorizacin delAVR AT905231 3


L* ,\

prctico Curso sobre Microcontroladores @/fr(flT".,

1.317 7

Losurletceuntrul.dcrts /tVtide ristie AUIEL

ascendente delumbral delreset a laconexin

Umbral devolbie delpinexterno dereset retraso eneltiempo delreset, desalida cuando elfusible FSTRT seprograma
ioh: Todas lascaractreisticas conesponden conunvoltaje dealimentacin V". = 5,6y

y Tahla 33.8 Niveles deseguridad delreset a la conexin parmetros delreset


Sesefinicial del microcontrolador cuando estsueto a Vcc

Bt $38($58) Lectura./Escritura B /WRAA/RRBRRR Valor inicial 0 0000000

RES

genenles Hgun 33.27 mscan EIregistro deintenupciones GIMSK


TilEOI'I

MM RSff

Sesetnical delmcrocontrolador controlado exlernamente

En esteregistroseencuentranhabilitadospara el usuario nicamente los bits 6 y 7, que se denominan las banderas de las interrupciones externas INTFO e INTFI, y, por medio de ellos, se informa el estado de las solicitudes de las interrupciones externas0 y 1, respectivamente.Estos dos bits se borran automticamente cada vez que la rutina de la interrupcin adecuadase ejecuta (luego de la instruccin de retorno de una interrupcin RETI); y, alternativamente, pueden ser borrados por medio del sofiutare al escribir directarnenteun cero en ellos. En la figura 33.28 se muestra el registro GIFR y susbits bandera.
Bt $34($54) Lectura/Escritura FI/W FYW Valor inicial 00
B 0 B 0 R 0 R 0

tmM RESET

Figura 33.8 Diagrama detiempos del reset a la conexin (sta-up) del4T905231 3


Besefexterno del mcrocontrolador durante la operacin
re

tfttil L RE8T

genenles Figun33,28 Elregistro bandera deintenupciones GIFR

Figuras!t.s,Diasramadetiempos*l;3i::r:#T:'^i{;{;g
En la tabla 33.8 se resumen los parmetros msimportantes y que conducen a un reJctseguro; all semuestran los valores tpicos, mnimo y mximo del umbral del voltajede disparoy los tiemposde respuesta que definen las condicionesdel reset, tanto interno como externo.En el casodel reset externo,no sedebeolvidar que el nivel VRsr debeseraplicadopor 50nscomomnimo paraquela CPU puedavalidarsu condicin.

En las figuras 33.29 y 33.30 semuestran las condiciones propias de los dos estadosde reseta la conexin POP.(pou.,er -on-reset), que sedan cuando se inicia el microcontrolador por medio de la fuente de alimentacin Vcc (start -up- condition) y tambin semuestrael diagrama de dempos propo del resetextetno cuando steseejecutadurante la operacinnormal delaCPU23l3.

stb

&

$irr*r.

prctico Microcontrctadores curco sobre

$ru[}*gH

*'t ;l' :i r-. i

Losmicroproc$sailorfs

El BASICStmp I.. ....................... 6l El BASICStmp II .......................62 y el crcu10 El osclador (res60en l0s de reinicis{zacin mcr0conlroladores PIC........,.,,............."... ................ . .. 65 El cicuito orifado ...................... 66 Osciladocsbsadosencisteloenrsonedorescermicos...............,....,......,.67 (nsa\ Circuitodc reinicialiaci .................................. 68 Reinicialiacinal encetdido(PouctOn RcvxPOR) .................................... 69 (Poua Up Tiza PVRT) .................................. Temporizador d encendido 70 (OST) Temporizador de oscilacin al encendido ........................................... 70 Secucncia seguida a.l a.limenta el sistema... .................... 7l (Bmu,-Ou Raa. BOR) .........-l fuinicialiacin por eida cn la alimcnracin
Registro dc control de potencia (Pow Coml: PCON)

I i

12

prctico Curco sobre Microcontotadores &l?r#

I
Esreifiqcionq dcl bu I2C ...............-........

Jr=

r49 r50 150 150 150 l 5l

23

Losmdulos CoRLVIy KBI esFecaies del 68HC0B:

?25

II

20

uarhdog NDD ..... 162 24 Eltnporlador r63 ta pala'bn de onfigu"i; .......:.......:::::::..::.::::.:.:.:::::.::::.::::.:::..::.:::.::::..:: r64 Opetecit del warhdog l o) Modoslca .........,.--r o) Depenardo dcl modosbcp,,,..,,...,,...,,.. Arquitectura de l0s mcroconlr0ladores M0t0r0la .,.........,........ 169 t7l La famili 68HC08 . fuquitccturadc los mimonuoladoe MotorcIa...,.....,............ 173 t/) El ndo dc prcmicnto..............-..-... El sistcma de mcmoria.,,.......................... 174 | /o Losmdulosocrifios internos....,......, r /o Asignacin di pinc o los micrmntroladoe 68HC08 ............................. HGoB ............,.............. 177 Los0uertos de l0s crocontrolad0res de Motorola Decripcin de los piia y su funcrones. ....,.......,........ 178 ................. 180 los pucnosdc cnuaday salida(l/O) .......... t80 El pueno A ........................... El ouctoB ................................. l8t ..................... 182 El pucnoD .........-.. y el rese, HC08 ..........185 El 0sciladof en l0s micr0c0ntr0ladoes de Motorola (OSC)............:.......................................... 186 El mdulointerno deloscilado 186 26 El mdulo oscilador on qisel XIi{L (subfmilia 68HC08)OO0............... Mdulo orciladocon rcd RC (subfamilia 187 68HRC08)OO0......................... I 88 Sede de rclojintero6.......................... ..................... 189 Cucrcrfstiq clcrie de los mdulosorcilslore ...........,....,....,.,,....,....,. 189 El zcn los micrentrcldos Motoola 68HC08 ................................. t90 Condicione iniciale eeblaido por mcdio dd ciclo de mr..................... 192 Fuentc de intcrrupcin dcl m4.............. ......-...........-organizacin de la mem0ria en osmcroconlroladores 193 HCoB ... de Motorola Organiacin dc la mcmoi .,,..,,....,....,...,,.,.. 194 t94 .Acignacin dc rcgisro dcnm dcl p de mcmoria.........,....,..........,,....,...,. 198 Thbladc vemrq .... Memoia de detos de lma y mritua RAM 198 28 198 Memoria dc progmde rclo lru'ROM 198 Mcmoria ROM del prcgma monitor (MON) ....................... 200 Arco d modomonitor ...,....,,...,,........,.. 20r Vatoiacin cn cl modo monito 201 Velocidad de omuiqcin dcl modo monito .,,..,,...,.........,.. del modo monito 201 Fomatosbsios de omuiecin 202 Comudos dcl monito .......................... El mdulo0MA y los modos de direccionamiento en los microcontroladoes 68llC08 203 204 Are dimo a mcmoia (DMA) El mdulo DMA08 204 mdu.lo DMA08 ......... 205 Opcncin del cmcrlstic suid* d"l i;;;;.::::.::::.::::.::::.:::..:::.:...::...::.:: 206 -d"b 206 Regism de controly etado dcl mdulo DMA08 ..................... 209 ls modosde direionmimto cn la familia HC08 ............... 2t0 Direiomicnto inhcrntc

El mdulo inhibidor por volatiebajo LM (lou wluge hbibitor) ................ 228 (CONFIG2 y Rcqistrcs Rcgistrcs de onrcl onrcl dcl mdulo mdulo LM (CONFIG2 229 v CONFIGI) ................ El mdulodc intcupcioncs paa tedado KBI .............................,,............. 229 Deaipcin delmduloKBL................. ....................230 Rcgistro de eado y onuol dcl mdulo KBI (KBSCR) .............................. 231 Registrohabilitador de lc interrupcioncs del mduloKBI (KBIER) .................23r y el SIMdef68HC0B El mdulo converfidor AiD {ADC) I rl El mdulode convcrsin uloga a digitd ADC ............................ ............. 234 Dcripcin delmduloADC................. .................... 235
Voltaje de convenin ADCVIN ........

)...............

..235 35

237 238 239

(TlM)dei 68HC08 El m0dxl0de la nterlaz de temp0:zacin ,.......,......... El TIM del 68HC08 242 Fucione delTIM 243 El moduladoPVM ..... 2M Rcgistros de enrada y salida dcl 44 Los mcroconlroiadores BASIStam! El BASICSmp I... ....................250 Distribucindc pincsdel BASIC Smp L.................. 251

252
Conjuto dc irotrucciono rcsumido dcl lengujc PBASIC ........................ 254 C0niunt0 de instrucciofles de los microcontroladores BASIC Stamp i ,.... -rl Coniunto de insmcione del lengufe PBASIC del BASICStmp I ........................... 258 .lr:Losfiicrocofltroladores Slamoll. BASIC El BASICStup II .....................270

La mfa dc prototipos del BASIC Stup II ............................,..,............... 27| Mapa de mcmoria Mapa mcmoria dcl BASIC BASIC Stmp Stu II ..... .................. 272 Configuracinde los puertosI/O del BASIC Stmp II ............................. 272 Prcgmacin del BASIC Smp II Instruccions del lcnguafePBASIC Losmicrocntroladores805l de lnte1................... Los micrconuoldoe Intel ................... 278 Arquitcmn bsie dc los miqocontrcladoa 8051 ....................----........ 278 Docripcinde pino del micoconmlador 8051 .....-...-...............,............279 Orgmiacin de la mcmoiacn el 8051 280 ...................... Mcmoria de prcgma ....,....,......,.............. 281

210 Direionmicnto imcdieto,...,,...,,... 2t1 Direiomicnto di,*,o.......................:::....:::.:::::.:::..::.::::.:::..:::.::..::::::::.. 211 Direiomicnto *endido ....,,....,........,. 212 indmdo, sin deplmiento .,,....,,...,........,. Direionmicnto indedo, 212 Diraionmicnto on doplmicnto de 8 jt Direiomicnto idmdo, on dsplmiento de 16 bit ........................ 2t2 (wL poinn), con daplmiento Direionairicnto dclSP de 8 his ........ 2t3 213 Diercionmicnto del SB con doplmiento de 16 bit .......... reltivo 213 Direionmicnto 214 Direionmicnto de mcmoia e memoia, imcdiato a rcco 214 Dircccionmicnto de memoia a mcmoria, directo a diecto .,.. Dircaionmicnto de mcmoia a mcmoia, indqdo a ?l< ffio cod rncrcmento Direccionuicnto dc mcmoia a mmoia. recto a

Introduain

292

32

22

215 indqdo on inemento ........,....,..... ::.:::..::::::::.:::::::.::::.:: 215 Dcccionuiento ind*do in".-"'. ;;;t;; Dicccionmiento in dxdo -n conoffct e 8 bin e 33 inwmcnto rcsrcio 216 los 68HC08 .....................-.........-217 las interru0cones en micr0c0ntrolad0res 218 Proruiento de interupciona en la CPU08............................................ 218 Rmncimioto dc la fucntedc intemxin ................,......................,....,. ................ 219 Evaluacin dd niveldc priorided(ubimjc) .................... 220 Almeanoiento del qado acrual del micro@nrclador ......... y uimiento de lo intempcione ...,....,....................... Enmoroicnto 220 ...............222 Retomo de la intcrupcin(RII) ................. 222 Mdulo de inrcrupcin *tana (IRQ) ,..--..-.....,.-....... Pin dc interupcin *erna (IRQI) 224 Rcgism de cudo y onuol dc la intcrrupcinIRQ GNTSCR) ..................

)q Ordcn dc prioridad de lo intcrrupciona Interrupciono interno de los nza0 y I ..............,.............. 296 C0muncacione$ seriaes con el mcrocontroladorS0Sl 257 El UART dcl microontrclador 8051 298 298 Configuncin de la veloci&d de comuiecin .......................................... MODO0 de comuniecin .................... 299 MODOl dc omuiqcin......--..,......... 301 MODOS2y3decommiqcin 30t Losmcrocontroladores 305 AVRde Lfs de 4TM81.....,......,...,.... ATMEL ................. 306 El miqoonrolado4I90S2313 de la fmilia 4190................... 306 Decrpcin de pincsdel AT90S2313....,.. 306 tuquitaua del AI90S23I3 307 Orgmiacin de la mcmoia .....-.............. ,,.,............... 3O7 Modos de dieccionmientode datosy progrms,...,,....,....,...... -..-..--..... 312 Esuumn de los puenosdc cnuaday salida VO ..................-.-........-.......... 314 Elzraylointerupcions..................... .....................315 El regisrc msaa dc interrupcionegenemleGIMSK .......,,.-..-.....,....,... 317 El rcgistrobmdcn dc intcrrupcioncs generalaGIFR ...................--............ 318 Diagmo de tiempo de los aados de roa ..,-...,,.....318

rot #

prctico Micoconfrotadores curso sobrc

Vous aimerez peut-être aussi