Top Banner
39

Curso Practico de Microcontroladores

Oct 10, 2015

Download

Documents

JuanCollado
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • TEO

    @

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

  • gGlleraL

    Es muy placentero y satisfacto,io p"," CEKIT S.A. presentar a todos nuestros

    lectores y amigos, estudites, profesorer, "fi.iorr"dos,

    tcnicos, profesionales y en general

    a la comunidad tcnica int.rnacional, una nueva obra didctica en el camPo de la electr-

    ;i;"-;;J.r,ito p-iio yi" -.,oaologa

    de'Aprendertraciendo" que no: F:t::t:tl*do por anros aos. Se trata del Curso prfutii sobre MICROCONTROLADORE$

    el

    cual tiene como oUioirro principal d-", "

    .orrocer y ensear, de una manera ficll y

    agradable, esta maravillosa tecnologa'

    Los microcontroladores, que pueden considerarse como una microcomputadora

    en un slo empaq,,., t,"'p.,-i.iao un avance sin par en los ltimos_aos en el diseo

    y la fabricacin de todo tipo de aparatos y aplicaciones electrnicas' Haciendo un smil

    con el ser humano, pod.-o, decir que un microcontrolador es un Pequeo cerebro

    electrnico for*"do'po, -.r.ho,

    ,.".rri.,or., interconectados entre sl tal como las neu-

    ronas y que tiene rr"ri", zonas con funciones especializadas como la memoria' uno o

    varios circuitos para recibir informacin de teclados, interruptottt y,:t"::l:tl^:l*'

    otros, y secciorr.s para activar elementos externos como motores, rels' lndlcaoores

    sonoros, pantallas, .t..; ado esto coordinado por medio de un Programa o conjunto

    de instrucciones.

    Nunca antes, en la historia de la electrnica, un componente haba permitido

    "nra creatividad y J.r"r.ollo de productos de una forma tan fcil' en tan corto tiempo

    f" lo.ro. ,"r, ,.rr.iJos. Con los microcontroladores es posible disear y fabricar casi

    cualquier aparato que se nos ocurra; el lmite est dado slo por la imaginacin y

    t.r.rir" capacidad de hacerlo'

    Aunque el tema parece difcil y complejo, realmente no lo es y pafa demostrar lo

    contrario, lo iremos explicando p"ro "

    p".o ." u-n lenguaje simple acompaado demuchas figuras, di"gram"s e ilusiracione. de tal forma qut los lectores

    lo puedan ir

    asimilando "

    r" p;;i;;i;;" de aprendizaje sin -"y."r::

    dificultades. Para entender v

    "pfi."t ..,"...rrloi", ,. requieren conocimientos de Electrnica Digital' de

    los siste-

    mas de ,rum.racirrl .rp..i"l-.nte del sistema binario y hexadecimal' y nociones bsi-

    '

    cas sobre los micropro."dor.r. Sin embargo, durante .l "rr,,o rePasaremos algunos de

    los concepto, f,rrr"-.ntales de estos ,.-, con el fin de que los lectores que no los

    .orror."t, puedan comprender mejor cada una de las lecciones'

    La mayorade los aparatos electrnicos modernos incluyen uno o vanos micro-

    controladores y de ah la importancia y necesidad de este curso en este mundo tecnol-

    gico en el cual nos encontr"rrror. un reloj d_igital d:.p."f.t1lo utiliza para contabilizarel tiempo, mostrarlo en una pequeapanta[ y recibir las rdenes en los botones paraejecutar dif.r.rrt., furr.iorr... Una vid.og."b"o," lo utiliza para coordinar sus princi-pales funciones como el encendid o y ,llp^g do, el cambio de los canales'

    el avance y

    retroceso de ta cint", las funcione, d.l .orrrr remoto, etc. En un horno microondas el

    microcontrot"o.r.'*.arga de recibir las rdenes que le damos en el teclado' mostrarlas

    en la pantalla y accionar .f.lemerrto que produce el calor en los alimentos'

    LffisLLrn

    &i.r::curso prctico sobre Microcontroladores

  • Pero sin restarle importancia a este tipo de aplicaciones, es en otro c:rmpo a dondequeremos orientar este curso. Se trata de la utilizacin de los microcontroladores en siste-mas de control y en el diseo de aparatos aparentemente sencillos pero con una grancantidad de usos en la vida diaria ya sea en el hogar, en la industria, en la oficina, en elcamPo o a nivel experimental y sobre todo para ensearles a nuestros lectores cmo desa-rrollar su propia aplicacin partiendo de sus necesidades particulares.

    Para enseary explicar mejor esa tecnologa, hemos dividido este curso en varias secciones asl:

    Una seccin de Teora en donde se presentan los conceptos bsicos de los microcon-troladores iniciando con su origen basado en los microprocer"dor.s, su esrructura oarquitectura interna, su funcionamiento elctrico y lgico, la operacin de sus blo-ques internos, etc. En fin, toda la informacin necsaria para poder configurar uncircuito con un microcontrolador y entender su funcionamiento.

    Una seccin de Programacin en donde se explicar qu es un programa de micro-controlador, los diferentes lenguajes que se utilizan, las tcnicas adecuadas para ela-borar programas eficientes, cmo se lleva al interior del microcontrolador y las prin-cipales herramientas de software y hardware para elaborarlos. Esta es una seccin demucha importancia dentro del curso ya que la programacin es donde radica lamayor dificultad de muchas personas para acceder a esta tecnologla y por ello, dedi-caremos un gran esfuerzo didctico para que todos nuestros alumnos puedan escribirsus propios programas de una forma correcta.

    Y para completar la estructura del curso, de acuerdo a la metodologla de CEKITS.A., hay una secccin de Proyectos y actividades prcticas en donde se presentanejemplos completos con aplicaciones de diferentes tipos de microconrroladores. Enesta seccin tambin se incluirn los diagramas de piries y las caracterfsticas de losmicrocontroladores ms representativos de las principales marcas o fabricantes y unaexplicacin de los componenres y circuitos que los acompaan, desde un simpleLED, hasta pantallas de cristal llquido (LCD), sensores, conversores A./D, acondi-cionadores de seal, etc.

    Aunque existen en el mercado una buena cantidad de fabricanres de micro-controladores, cada uno con una gran variedad de modelos, hemos seleccionadocomo ejemplos para este curso principalmente los de MotorolayMicrochip (PIC)Por ser los de mayor difusin y aplicacin actualmente; con un menor cubri-miento, los de INTEL, ATMEL, PARALLAX y oos, los cuales esperamos rra-tar en un prximo curso.

    Felipe Gonzlez G.Editor Generd

    #

  • - . .
  • aI

    - ) ' *\ -s

    - \ ' \ /

    Este maravilloso componente resulne' en un solo

    circuito integrad,o, ms de cuarenta aos de tecnolo-

    ga electrn. Es difcil enconffar en la actualidad

    un apararo o una aplicacin que no 1o utilice o no

    prr.dl" utilizarlo para opdmizar su oPeracin.

    se ha mencionado y confirmado muchas

    veces que la electrnica es la tecnol oga de los

    componenres. El desarrollo de cada nuevo dis-

    poriii,ro de estado slido trae consigo tcnicas de

    diseo diferentes, pot lo general, ms simples'

    E,n los aos sesenr a, pafaconstruir un reloj digi-tal, era necesario acoplar un buen nmero de cir-

    cuitos integrados lgicos. Al mismo tiempo,_eldiseador Jeba por., conocimientos muy cla-

    ros sobre cada uno de los elementos , paa reali-zaf, con xito, l" integracin'

    A partir de 1970' el panorama de la electr-

    nica y especialmente .1 . la electrnica digital'

    cambi radicalmente cuando aPareci en el mer-

    cad,o un nuevo supercomPonente: el micropro-

    cesad.or. Esto introdujo un concePto novedosoque en la actualidad se conserva y refu erza cada

    vezms, el de la lgica programada. Antes de los

    microprocesadores, los circuitos electrnicos se

    diseaban Par^ una funcin esPe-cfi,cala cual no Poda modificarsesin cambiar fsicamente las co-

    Figura 1.1. Eiempto de un circuito con tgica cableada

    ner iones. ei nurt ; r t r . . ^ : . : i t r i ,Jad de los di feren-tes elementos que los formab' 'an a lo cual se le

    llam la lgica cableadtt, figura 1' 1'

    con los microprocesadores y ahora con los

    circuitos lgicos programables (FPGA), los mi-crocontrolJores y los circuitos de DSP (Proce-samiento Digital de seales), entre otros' es posi-ble modifi cafcuantas veces se requiera el progra-ma, an en forma remota Por la internet, y el

    circuito o aparato en el cual estn instalados, tra-

    baprd. ,rn" forma completamente diferente sin

    modifi caflsicamente una sola conexin' De estaforma, el lmite de los diseos solo lo establece la

    imaginacin de los programadores y Ia caPacr-dad de los dispositivr q.t. lancen al mercado los

    fabricantes especi alizados en estas tecnologas'

    consolidadas las tcnicas digitales de los

    aos sesenta, se cre entonces la necesidad de

    profu ndizar en el estudio y desarrollo de las

    aplicaciones p^fa los microProcesadores y la

    programacin.n l.rrguaje de mquina o dssembbr.f , rJt" poca de oro del 8080, el 8086, el Z-80,

    el 6809, el 6502, el 68000 y otros microPro-

    cesadores, uti l izados como circuitos centralesen las aplicaciones de control '

    En 1980, aproximadamente, los fabri-canres de circ.ri,o, integrados iniciaron ladifusin de un nuevo circuito con aplica-ciones paraconffol, medicin e instrumen-tacin, al que llamaron "microcomputa-dor en un slo chiy'' o, de manera msexacm y concisa: mirocontrolndnr. Paraentender mejor [a estructura interna, el fu-cionamiento y los orgenes de los micro-controladores, rePasaremos primero el

    tema de los microProcesadores'

    Desde el punto de vista funcional, un mi-croprocesador es un circuito integrado, fi-

    grrt" l.Z,que incorpora en su interior unaunidad ..ntral de ptottto (CPU) y todoun conjunto de elementos lgicos que Per-

    I

    ' :5

    -,rrrrJl

    ilt

    ,4L *ii' #

    {+ b & nffi.:. curso prctico sobre Microcontroladores\yZ

    -l

  • )s ,Jiteren-cuil se le

    ra con losl ' , . los mi-;P t,Proce-)s. es posi-el progra-:rnet, y ellados , tfa-ferente sin,n. De estastablece lala capaci-ercado losrologas.

    les de losesidad dello de laslo res y la:sembler., . el Z-80,nicropro-centrales,1.

    :- los fabri-riciaron laon aplica-T]STIUITICN-romputa-urera msrdor. Pararna. el fu-hr micro-dmero el

    !e.t- un ml-es:ado, fi-.t-:r or unaL- ' ,-rodoIs c ue Per-

    X1x2

    RESET OUT

    vcc

    HOLD

    HLDA

    cLK (0ulnEser N

    READYron

    S1RD

    WRALE

    SO

    415

    A14413

    At2

    Al l

    A10

    A9AB

    '','"lffiluffi'

    un solo microprocesador, utilizado en el di-seo de un sistema digital, puede ree mplazar unagran cantidad de circuiros integrados de peque-r^y mediana escala como compuerra s, flip-flops,registros, contadores, decodificadores, memorias,sumadores, comparadores, etc, figura L.3. Estoes ventajoso desde varios punros de vista: facili-dad de diseo, modularidad, versatilidad, flexi-bilidad, manrenimienro, bajo cosro, confiabili-dad, poco consumo de ene rga, etc.

    Figura 1.2, Microprocesdor 8085

    miten enlazar otros dispositivos como memoriasy puertos de entrada o de salida (I/O), formandoun sistema complero para cumplir conuna aplicacin especfica dentro delmundo real. Para que el sistema puedarealizar su labor debe ejecutar paso apaso un programa que consiste en unasecuencia de nmeros binarios o ins-trucciones, almacenadas en uno o ms ,ielementos de memo ria, generalmenteexternos al mismo . La aplicacin msimportanre de los microprocesadores yque cambi totalmente la forma de tra-bajar, ha sido la computadora personalo microcomputadora.

    Dentro de los anales de la electrnica est elao de L970 como la fecha de invencin delmicroprocesador. Desde entonces, este dimi-nuto disposit ivo, uno de los adelanros recno-lgicos ms imporranres de nuesrro siglo, harevolucionado todos los campos de la vidahumana. Con el microprocesador se inic iuna nueva era de desarrollo de la industria delas computadoras y de la electrnica, la cualhasta el presenre ha ido evohrcionando conuna velocidad que an sorprende incluso alos visionarios ms futurisras. Nadie en esapoca se imaginaba el impacro ran grande quecausara este desarrollo en la vida del hombremoderno.

    Los apararos electrnicos que utilizan mi-croprocesadores, entre ellos las computadoraspersonales y de escritorio, figura L.4, han cam-biado totalmenre la forma de trabajar e inves-

    Figura | '3' Tarieta con circuitos integrados individuales vs un Microprocesador

    ,ootsslD+>

    TRAP --+

    RST 7.5 -*

    RST 6.5 -+

    RST 5.5 ->

    INTR -f>

    iM+-ADa{-{AD1 +)AD2

    AD3{*

    \ AD4

    ADS{*AD6AD7

    Vss

    c u rso p r cti co sob re Mic roco ntro I a do res &a, l:.:.#&d

  • ffi

    Figura 1.4. Computadora perslnal y su tarjeta principal

    t igar de los seres humanos. Ninguna herra-mienta anterior desarrollada por el hombre lehaba dado tanto poder para crear orras y ace-lerar su evolucin en todos los campos. Paraasimilar mejor el desarrollo de esra tecnolo-ga, retrocedamos un poco en la historia de laelectrnica, sus componentes y aplicaciones.

    Sin lugar a dudas, la senda la abri el in-vento del tubo de vaco por Lee De Forest acomienzos del siglo, basado en el descubri-miento de un fenmeno llamado Efecto Edi-son. Este dispositivo hizo posible la radio, l"telefo na, la tele grafa inalmbrica, erc., e im-puls el desarrollo comercial e industrial de laelectrnica. Inclusive las primeras compura-doras eran fabricadas con tubos de vaco. Lue-go vino la revolucin del transisror, desarro-llado en los laboratorios de Bell Telephone en1948 y utilizado a partir de 1950 a escala in-dustrial, con su inclusin en la fabricacin detodo tipo de aparatos de radio, televisin, so-nido, computadoras y en la industria militar yespacial, entre otras aplicaciones.

    De los tres invenrores del rransistor ('S7'.Brattain, \(/. Shocklry y J. Bardeen), figura1.5, Shockley fue el nico que se dedic adesarrollar mtodos de fabricacin en seriede este revolucionario disposit ivo en su em-

    presa, Shockl.y Semiconducror Labora-tories, dando nacimiento a una nueva eraen la industria electrnica y a la ubica-cin de esta tecnologa en un sit io de Ca-l i fornia cercano a San Francisco que mstarde se llam Silicon Valley o Valle delSil icio. En esta com para se iniciaron losprincipales cientf icos e ingenieros quems tarde forma ran sus propias empre-sas y desarrollaran los circuiros integra-dos y los microprocesadores.

    El microprocesador es el mximo ex-ponente de la erapa siguienre al transis-tor: la tecnologa de los circuiros integra-dos. El concepro de circuito integrado,

    figura I.6, effip ez a rondar por los cerebros ymentes prodigiosas de quienes trabajaban enel diseo y fabricacin de transistores. El plan-teamiento fue ms o menos el siguienre: si sefabricaban transisrores en forma individual yluego se tenan que unir siempre de la mismaforma entre s con alambres y con otros com-ponentes por qu no fabricar de unavez todoel conjunto de material semiconducror y ais-lante, interconectado internamenre para quecumpliera la misma funcin del sistema total?

    Este planteamiento fue desarrol lado enl" p rcticv simultneamenre, pero en formaindependiente, por dos empresas muy im-

    II

    - - t l t

    . '":i

    :-

    - i l_ .,. {llu

    -

    -* l. !

    ' . ' . '

    . . -

    ' ' ' , l.. r- {llul

    -

    . l

    '1lFrl. *.. llu

    ',',,1_,

    n

    - . - ,* t lJl

    -.,

    "" :'" ;i, r{

    *. " - ' Ttr

    - . .

    : "" ' ' l l !

    j , : :TT[

    -

    , i l [

    ,r-.. ll tl

    ;. .dlll.rl

    -q" :::,:l n

    q,,

    ,,,, -,,,rild;wl

    , ^

    r' gWrE:. Cursogrctico sobre Microcontroladorescs. ll , |\, - z

  • bora-ra era

    rb ica-.e Ca-e msle delcn los$ quernPre-tegra-

    no ex-

    ran s is-ltegra-grado,:bros yDan enI plan-e: s i seidual ymisma

    IS COITI-

    ez todor v ais-.ra quea total?

    lado enr formaru)' im-

    portantes en la histor ia de la electrnica:Fairchi ld Semiconducror y Texas Insrru-ments. En Fairchild dir iga el equipo de tra-bajo Robert Noyce, y en Texas Jack Kilby.Como ancdota, podemos mencionar que lospr imeros ci rcui tos integrados sal ieron almercado en el ao de 1959 a un precio de450 dlares y solamente incluan cuarro tran-sistores y varias resistencias. Actualmenre, uncircui to integrado cuesta enrre l0 y 20 cen-tavos de dlar y un microcontrolador senci-l lo, con muchas ms prestaciones, puedecostar hasta un dlar o menos en escalas in-dustr iales . La explosin de los circuiros in-tegrados desde el ao 1960 hasta la fecha,ha permit ido el desarrol lo de la electrnicaen una forma sorprendente.

    Noyce renunci a la Fairchild en 1968 yfund, er comp aa de Gordon Moore y An-drew Grove y con el respaldo econmico deArthur Rock, la empresa Intel en donde sedieron los primeros pasos para el desarrollodel microprocesador. Esta comp a.a empeza vislumbrar un gran mercado en el rea delas computadoras y su investigacin se orien-r hacia el reemplazo de los circuiros de me-moria magnticos con ncleo de ferrita, porcircuitos de memoria basados en semiconduc-rores. La base tcnica consisti en el uso deun simple flip-flop como elemenro de memo-ria. As se cre el primer circuito de memoria- ipo RAM l lamado el 1 103, con una capaci-:rd de 1024 bi ts.

    El diseo del microprocesador se inici

    --

    Lrn grupo de trabajo de Intel dir igido porTe..i Hoff, un brillanre ingeniero egresado de'a universidad de Stanford. Todo emp ezcuando Intel se decidi a f irmar un conrraroccn una compafiajaponesa fabricante de cal-culadoras (la desaparecida Busicom Corpo ra-rion ). sra quera'que se les fabric araun con-iunto de circuitos integrados que reemplaza-ran la gran cant idad de componentes que re-ran las calculadoras de ese enronces.

    Despus de un largo rrab"jo, se lleg hastalograr que todo el circuito fuera reemplazadopor tres chips, pero estos resultaron ser de untamao mayor de acuerdo a los requerimien-tos. A Hoff se le ocurri que deba agrupar todala parte de proceso aritmtico y lgico en unsolo circuito y el resro de la calculadora en losotros dos circuiros. Con la intervencin de otrodiseadot, Federico Faggin, el proyecro se llevacabo con todo xito. A este circuito, de 2250elementos integrados en un rea de 3 x 4 mil-metros, se le llam microprocesndor. Thmbinse le dio el nombre de CPU ( Central ProcessingUnit) o MPU (Micro Processing (Jnit).

    Aunque esre circuito ten ayamuchas de lascaractersticas de una unidad central de proce-so integrada, el primer microprocesador en unslo chip, fabricado como tal, fue el 4004 deIntel, diseado para ree mplazar grandes canti-dades de circuitos integrados TTL. El 400 4 eraun chip muy sencillo que manipulaba datos decuatro bits. Intel desarroll muy pronro, en1972, el 8008, el cual poda procesar datos deocho bits. pero era muy lento.

    Para remediar esto, Inrel desarroll un sus-tituto, el 8080, y posteriormenre el 8085, com-

    Figura 1.6. Estructura interna bsica de un circuito integrados inventores

    curso prctico sobre Microcontroradores &ar-r#

  • p",ibl. con el primero, con funciones adicio-

    nales y meno, .ir.uitos de soporte. un equipo

    de diseadores que antes haba trabajado PafaIntel en el 8080 form la Ziloglnc. I:otstru-y el microprocesador z-80, el cual incorpo-

    raba un corr,ttr,o de instrucciones ms exten-

    so que el 8080' aunque era to-Patible con este

    ltimo. Este micropro..sador ha sido uno de

    los ms utilizadot * el campo de control'

    Por la misma poca en que se Presentabaal mercado el 8080, otra emPresa de semicon-

    ductores, Motorola, desarroll el 6800, ur mi-

    croprocesador de 8 bits con un diseo com-

    pl.t"-ente distinto Pero corl,'q:{:t^caracte-rsticas. Motorola p.if..cion el 6800 hacia el

    6309, considerado como uno de los meiores

    procesadores de 8 bits de todas las pocas'

    A pesar de sus excelentes caactersticas'el 6309 no ruvo el xito comercial que se es-

    peraba. Dicho xito lo obtuvo otro derivado

    del 6800: el 6502, producido Por MOS Te-

    chnology. con .rr. microProcesador se fa-

    bricaro 1", primeras comPutadoras Persona-Ies como la PET de commodore y la ApPle

    II de APPte ComPuter Inc'

    A partir de ese momento, S estableci

    .una guerra tcnic ay comercialr Q an sub-

    siste, enrre Intel y Motorola, la cual los ha

    llevado a ser los do, grandes lderes indiscu-

    tibles del mercado d. lot microProcesadores'pero el desarrollo del microProcesador no se

    q,r.d ah. A principios de la dcada de los

    80,emPezaonaaParecer l : tmicroProcesa-dores d; dieciseis bits, mucho ms potentes'

    El primero en salir al mercado fue el 8086 de

    Intel en 1 978, el cual fue adoptado PoI la IBM

    p^*^la fabricacin de su famosa IBM Pc' Lo

    siguieron de cerca el 68000, el 68020, el

    630 30 yel 68040 de Motorola. con estos mi-

    croProcesadores se inici en npplt una nueva

    famitia de microcomPutadoras: las Macin-

    tosh.LueEo,enunconsorcioentreApPl. . 'IBM y Mtorola se desarroll una nueva fa-

    &,v' \{1>'

    T[at ,:.2. curso prctico sobre Microcontroladores8FCV\ ,.)z

    XNX

    mila de microprocesadores: los Power Pc los

    cuales se utilizan en las comPutadoras Apple

    e IBM actuales.

    Por los lados de Intel se desarrollaron el 8088

    utilizado en el IBM )(L el 80186' el 80286 utili?a-do par alaIBM Ar, el 80386, el 80486y los Pen-

    dm. Todos estos microProcesadores de Intel han

    sido utilizados Para la fabricacin de microcomPu-

    tadoras de bajo costo llamadas clones, lo 9!1 hahecho que esra empresa siga siendo el mayor fabri-

    cante de microprocesadores en el mundo.

    Lasiguienre generacin fueron los Pen-

    t iuml l ,Pent iuml l lyactualmentelosPen-tium IV con los cual.s se han logrado veloci-

    dades d. procesamiento impresionantes y una

    enorm. ."p"cidad\e memo tia,lo que los hace

    apropiados paramoverse sin problemas en en-

    rornos como la internet, el video, la mult i-

    media, el procesamiento de datos y el trabajoen tiemPo real '

    il# m g &t * # $:$* fiP f t# {; {# t*. ;fr u$ {3 $'{,* S p ffi '. 4"fi ru # +r l+Dentro de los microProcesadores de la pla-

    taforma Pc, actualmente podemos mencionarlos productos de las firmas Intel, AMD, cyrix

    , t,rital. Las referencias ms novedosas son

    el Pentium IV el Althon' el 686 MMX y el

    Alpha, resPectivamente' figura l'7'

    Figura 1.7. Micro7rocesadores

  • .os

    l l .

    ' i ' l

    t l

    EEL

    ' ;n-'3n--- :

    una

    I lcean-

    . t . i- .L l_

    r .1 lo

    ^t . .

    t ,4" ,. - . r ix

    :u l t

    :. el

    Son los circuitos integrados querevolucionaron la electrnica alpermitir el diseo de todo tipo deaparatos programables. Aunque suprincipal aplicacin son las com-putadoras personales, tambin seencuentran en la mayora de loscircuitos de control.

    curso prctico sobre Miuocontrotadores &icmt #

  • El microprocesador, corazn de lascomputadorasUna computadora digital es un equipo especiali-zado en el procesamiento de informacin, cuyoprincipio de funcionamiento es relativamentesencillo, si lo vemos desde el punto de vista delos bloques que lo conforman. Cada uno de esosbloques est formado por varios circuitos inte-grados ficiles de entende la parte compleja laencontramos cuando estudiamos el interior dedichos circuitos, pero esto en realidad no es demucho inters para el usuario comn.

    Una computadora digital se compone de tresbloques fundamentales, figura 2.L: una unidadde entradas y salidas, una CPU y una memoria.A su vez, la unidad de entradas y salidas se divideen un bloque de entrada y otro de salida. Delmismo modo, la CPU se divide en una unidadaritmtico-lgica (ALU), y una unidad de con-trol y el bloque de memoria en memoria RAM ymemoria ROM, obtenindose seis bloques o uni-dades con funciones muyespecficas, figaru2.2,cuyas funciones describiremos a continuacin.

    La unidad de entrada es quien recibe infor-macin del mundo exterio ya sea de un opera-dor humano o un fenmeno ftsico; esta unidadpermite llevar esa informacin hacia la unidadde memoria para poder procesarla posteriormen-te; dispositivos de entrada son, por ejemplo, losteclados y el ratn. La unidad de salida entregalos resultados del procesamiento al mundo exte-

    Figun 2.1 Bloques principales de una compubdon digibl

    Microprocesadoro CPU

    Figun 2.2 Estructura general de una computadora digital

    rior. Esta informacin se lleva desde la unidadcentral de proceso o CPU, hacia circuitos o apa-ratos externos llamados perifericos que se encuen-ffan fuera de la computadora, por ejemplo mo-nitores, impresoras o padantes.

    La unidad de memoria se encarga de dma-cenar los datos y los programas que operan sobreesos datos y es una de las ms importantes deuna computadora. Se distinguen dos sistemasdiferentes de memoria: la de almacenamientoprimario y la de almacenamiento secundario. Lamemoria de almacenamiento primario se refierea los circuitos'que guardan los programas que sevan a ejecutar y los datos que se necesitan duran-te la ejecucin de estos programas, y la memoriade almacenamiento secundario, se utiliza paraalmacenar grandes cantidades de datos que no serequieran con frecuencia para la operacin de lacomputadora. Sistemas de este tipo son los dis-cos duros y los discos de 3.5".

    Dentro de la memoria de almacenamientosecundario se distinguen tres categorlas: la ROM(Read Only MernorT) o memoria de solo lectura,donde se almacenan cierto tipo de programascomo el del sistema de arranque de una compu-tadora (BIOS); la RAM (RandomAccess Memory)o memoria de lectura y escritura, donde se dma-

    Unidad deEntrada/Salida

    Unidad deMemora

    &

    # &n; cutso prcticosobrctticrocontotadorcs

  • ,.

    )

    cenan los datos que los programas van generan-do y la cache que es una memoria RAM con tiem-po de acceso muy rpido donde se mantienenlos datos ms utilizados durante la ejecucin deun programa.

    La unidad central de proceso (CPU: CentralProcessing Unit) reine la unidad de control y launidad aritmticolgica en un solo bloque. Estaltima tambin se conoce como ALU (Arithme-tic Logic Unit). En la prctica, la unidad centralo CPU se encuentra en forma de un circuito in-tegrado llamado microprocesador.

    Dentro de esta CPU, la unidad de control seencarga de la interpretacin y ejecucin de lasinstrucciones del programa. Tambin controlatodos los componentes de una computadora pormedio de lneas de conexin llamadas buses. LaALU se encarga de realizar las operaciones lgi-cas y aritmticas. Las principales funciones arit-mticas realizadas en la ALU incluyen la AND,la OR, la EXOR y la comparacin. Como he-mos visto, el microprocesador es quien lleva acabo las principales funciones de un sistema decmputo, y quien integra a los dems compo-nentes y ejecuta las instrucciones. Es por eso elprincipal componente de una computadora.

    Funcionamiento del microprocesadorDesde un punto de vista conceptual, un micro-procesador ideal es un dispositivo digital queacepta o lee datos aplicados a un cierto nmero

    El mcroprocesador (ideal) es undispositvo con N lneas de enfada, M

    lneas de salida y un programaalmacenado

    Figun 2.3 El microprocesador ideal

    de lneas de entrada (N); los procesa de acuerdoa las instrucciones secuenciales de un programaalmacenado en su memoria, ysuministra o escri-be los resultados del proceso en un cierto nme-ro de lneas de salida (M), figura 2.3

    [.os datos de entrada pueden provenir de inte-rruptores, sensores, convenidores 4,./D, teclados, etc.Los datos de salida pueden estar dirigidos a actua-dores, indicadores o disp lays, pantallas, convertido-res D/A, alarmas, impresoras, etc. El programa al-macenado determina como deben ser procesadoslos datos de entrada y, en consecuencia, que infor-macin debe enviarse a las llneas de salida.

    El soporte fisico de las instrucciones del pro-grama es la memoria, la cual almacena los datospara que sean procesados. En un momento dado,los niveles lgicos (unos y ceros) de las llneas desalida de un microprocesador, dependen no sola-mente del programa en s sino tambin de la his-toria de las seales de entrada hasta ese momenro.Mientras que en un microprocesador ideal no exis-ten restricciones respecto al nmero de entradas ysalidas, los microprocesadores reales slo puedenacomodar un nmero limitado de terminales opines para estas funciones. Como veremos msadelante, para simplificar el nmero de pines, lamayorla de microprocesadores utilizan las mismaslneas para la entrada y salida de datos.

    De otro lado, mientras que un microprocesa-dor ideal tiene, tericamente, una memoria inter-na ilimitada, los microprocesadores reales solo dis-ponen de una cantidad limitada para almacenar

    Registro de 16 bitsFigun 2,4 Registros de un microprocesador

    ht

    dadrPa-en-mo-

    lrna-obresde:masntoo. Lafiereue se

    ran-noriaPera

    no se

    de las dis-

    entoROMcruratralnas)mPu-mory)alma-

    Registro deI bits

    curco prctico sobre Microcontotadores &tt #

  • datos e instrucciones. Por esta razn, un mlcro-procesador debe tener la posibilidad de comuni-carse con una memoria externa. Para lograrlo, ne-cesita disponer tambin de un conjunto de lfneasde seleccin o direccionamiento adicionales.

    Finalmente, para sincronizar su operacincon la de los componentes externos conectadosal mismo y tener un control global de los busesde datos y direcciones, un microprocesador ne-cesita disponer tambin de un conjunto de l-neas de control. Por tanto, un microprocesador

    requiere de un bus de datos, un bus de direccio-nes y un bus de control para comunicarse conlos dems componentes.

    Naturalmente, el microprocesador ideal(un dispositivo con slo entradas y salidas yun programa almacenado en l) no existe.'Sinembargo, la tendencia de los nuevos diseoses incluir cadavez ms funciones en una mis-ma pastilla, incluyendo unidades de memoriae interfaces entrada/salida como en el caso delos microcontroladores.

    415-48Bus de direcciones

    Figura 2.5 Arquitectura interna de un microproceudor 8085 de lntel

    RESET IN

    & ."(q12 F A(t; Curso prctico sobrc Micocontoladores&fl

  • cio-con

    '.,r''Janizacin interna de un:.:: icroprocesador[a organizacin interna de un microprocesador, esdecir, su arquitectura, vara notablemente de unspositivo a otro. Por esta razn, es dificil definirun modelo de microprocesador que represente to-das las alternativas posibles puesto que cada unotiene una lgica de funcionamiento propia.I.aarquitectura, y especialmente el tipo, nmero y orga-nizacin de los registros internos, es una considera-cin imponante a la hora de elegir un microproce-sador para una aplicacin determinada.

    Un registro es una posicin de memoria co-nectada a la CPU donde se pueden retener cifrasbinarias. Est formado por elementos lgicos(compuertas, flip-flopt,etc.) que, al ser tomadosen conjunto, pueden almacenar nmeros binariosde 4, 8, 16 ms bits, frgan2.4. Se utilizan esen-cialmente para almacenamiento temporal, en elque el contenido cambia continuamente.

    Esto no implica que se deba conocer con de-masiado detalle, cmo funciona internamente unmicroprocesador para poder utilizarlo. Existenpartes y funciones que normalmente deben estarpresentes: un reloj, unaAL(J, varios registros, uncontador de programa, etc. En la figura,2.5 semuestra un ejemplo de la arquitectura internade un microprocesador simple, el 8085 de Intel.

    Por ejemplo, el reloj o circuito de oscilacinpuede estar o no incorporado en el microproce-sado pero es absolutamente necesario puesto quetiene la misin de sincronizar todas las operacio-nes de debe realizar el dispositivo. Del mismomodo, para ejecutar un programa, un micropro-cesador debe tener en su interior registros que Iepermitan almacenar informacin , realizar lectu-ras, modificaciones a los datos, etc.

    iperacin bsica de un,:,i if iroprOcesfld0rAnalizando un sistema de cmputo, nos da-mos cuenta que el microprocesador o CPU esla parte del sistema encargada de leer, inter-

    pretar y ejecutar las instrucciones del progra-ma almacenado en la memoria.

    Desde un punto de vista conceptual, la ac-cin de leer e interpretar las instrucciones la rea-liza una parte del microprocesador denominadaunidad de instruccin y su ejecucin corre a car-go de otro circuito especializado dentro del mis-mo denominado unidad de ejecucin,figan2.6

    Unidad central de orocesamiento ICPU o

    Figura 2,6 Unidades de instruccin y ejecucin

    l unidad de ejecucin, a su vez, contiene unaunidad aitmtico-lgica o ALU y un conjunto deregistros auxiliares. t^a ALU se encuga de realizaruna gran variedad de operaciones aritmticas y l-gicas, y los registros de almacenar temporalmenteinformacin. l-as distintas funciones realizadas porel microprocesador quedan especificadas por suconjunto de instrucciones.

    dealasy:Sinsosmis-roriaode

    L

    F

    mrcr0pr0cesaoor

    i& lntel

    curco prctico sobre ticrrcontotadores &rrr"#

  • I unidad de instruccin lleva lacuenta de las posiciones o direccionesde memoria donde se encuentran lasinstrucciones que el microprocesadornecesia en cada instante. Normalmen-te, las insuucciones se leen y ejecuanen el mismo orden en que fueron alma-cenadas en la memoria. Sin embago,la presencia de instrucciones de controlde programa puede alterar la secuenciade ejecucin de estas instrucciones.

    Para llevar la cuenta de las di-recciones de las instrucciones, launidad de instruccin incorpora unregistro especial llamado contadorde programa o PC (Prograrn Coun-ter). Cade vez que se lee una ins-truccin, el contador de programase incrementa automticamentepara suministrar la direccin de laposicin de memoria donde se en-cuentra la siguiente instruccin odato del programa.

    Bus del sistema hacia la memoria principaly dispositivos de lS

    Figun 2,7 Arquitectura de un microprocesador genrico

    La mayorla de los microprocesadores, porejemplo, incluyen un registro especial llamadoacumulador (Registro A) que es utilizado pormuchas instrucciones como fuente o destino dedatos. Thmbin es muy comn la presencia deun registro de eitado que suministra informa-cin relativa a la ejecucin de ciertas instruc-ciones como sobreflujo, paridad, generacin deacarreo, resultado negativo o cero, etc.

    Muchos microprocesadores poseen tambinun conjunto de registros de propsito general quepueden ser utilizados para almacenar direccio-nes de memoria, datos, resultados intermedios yotros propsitos. El nmero y tipos de registrosque posee un microprocesador, es una parte muyimportante de su arquitectura y programacin.

    En la figura2.7 se muestra un modelo ge-nrico de microprocesador que ilustra los con-ceptos anteriores.

    Bus de direcciones

    Cada vez que un microprocesador recibeuna instruccin, la almacena en un registrointerno del mismo llamado registro de ins-trucciones con el fin de proceder a su deco-dificacin o interpretacin y buscar en lamemoria ROM el conjunto de microinstruc-ciones necesarios para su ejecucin. Esta fun-cin la realiza un circuito denominado de-codificador de instrucciones.

    Adems del contador de programa y elregistro de instrucciones, un microprocesa-dor contiene usualmente otros registros parafacilitar el acceso a las instrucciones y a losdatos. Algunos de estos registros son progra-mables en el sentido de que su contenidopuede ser alterado por software (instruccio-nes) mientras que otros son inaccesibles des-de el punto de vista de programacin y sucontenido slo lo puede determinar y con-sultar el microprocesador.

    istro de status

    errr" cu,' prco nbrc Mtcoantohthtu

  • ma-::ilrctura eie fuses rie un,:. l t '0Ff0ce$fid*E'

    En la figura 2.8 se muestra la estrucna de busesgeneralizada de un microprocesador. Externamenre,el dispositivo cuenta con un bus de datos, un bus dediecciones y un bus de conuol. En las siguientessecciones decribiremos la funcin y las caractersticasde cada uno. Adems de estos ues buses principales,un microprocesador debe disponer tambin de unbus de alimentacin, el cual hace llegar la corientede la fuente a sus distintos componentes internos.

    ceden siempre de la memoria mientras que losdatos que procesa u obtiene el programa de ins-trucciones, puede provenir de o ir hacia la memo-ria o los mdulos de entrada/salida.

    Generalmente, el nmero de lneas de en-trada es igual al nmero de lneas de salida. Estenmero define la longitud de la palabra de da-tos del microprocesador. Son comunes longitu-des de palabra de 4,8, 16,32 y 64 bi ts. En lafigura 2.4, por ejemplo, se muesrra un micro-procesador de 8 bits. En este caso, tanto el busde datos de entrada como el bus de datos desalida con de un byte, es decir de ocho (8) bits.

    El nrimero toul de pines asignado en el circuitointegrado del bus de datos puede reducirse prctrca-mente en un 50olo si se utilizan los mismos puntosde consrin mto para los daros de enrada comopara los datos de salida, pero no para ambos simult-namente. El bus de datos as constituido es bidirec-cional en el sentido de que lainformacin puede circu-la entrando o saliendo del microprocesador. La for-made represenaf un bus de datos bidireccional paxa unmicroprocaadorde N bis se iltstraen lafrgn2.g

    Un bus bidireccional puede construine con com-puertas tri-sa*pancintrola la direccin del flujo deinformacin. l figura 2.9 (a) represena un micro-procesadorde cuatro bits con un bus de datos bidirec-cional. En la figum 2.9 (b) se muesrra la configura-cin de una lnea de bus bidireccional. Ias llneas deseleccin S1 y S0 proceden del bus de conuol.

    bnes

    tico

    t PornadoD Porno decia de0rma-$ruc-n de

    rrbinral quercccio-adios ygistroste muycin.

    blo ge-(}s con-

    Bus decontrol

    Cu,o,,o,I

    control

    I satioas oel_

    control

    Fuente dealimentacin

    q

    .^ ' -w=

    E

    Figura 2.8 Estructura de buses generalizada

    ls lneas de los buses de un microprocesadoransportan volajes que representan nmeros bina-rios (1's y 0's). EI microprocesador, los puertos deentrada/salia y la memoria, responden nicamente aesos nmeros binarios codificados elecrnicamente.

    rl bus dm datas. Lineas fiSireccionalfisEl bus de datos lleva datos e instrucciones hacia ydesde el microprocesador. Las instrucciones pro-

    BDB: Lnea de bus direccional de datosDB0UT: Control de salida de datosDBIN: Control de entrada de datos51, S0: Control de busH0LDA: Control de garanta de bus (alta

    impedancia)Figura 2,9 (a) Microprocendor de 4 b'tts con bus de datos bidireccional.

    DBOUT

    (a)(b) Lnea de bus bidireccional.

    curco prctico sobre Microcontotadores rrrr.& ' -*%c

  • Los,,

    La transferencia de datos de entrada o salidadesde o hacia ei bus de datos se realiza, respecti-vamente, con S1S0 = 10 y S1S0= 01. La l nea debus puede inhabilitarse con S1S0 = 00 para im-pedir cualquier transferencia de informacin en-tre el bus de datos y el microprocesador.

    Las lneas de seleccin pueden utilizarse parainformar a los mdulos externos que compartenel bus de datos el estado del bus bidireccional enun momento dado. Este es el propsito de laslneas marcadas como DBOUT (bus de datos enel modo de salida), DBIN (bus de datos en elmodo de entrada) y HOLDA (bus de datos enestado de alta impedancia) en la figura 2.9 (b).

    la informacin contenida en el bus de datospuede representarse numricamente de varias for-mas: binaria, octal y hexadecimal, principalmente.Considrese, por ejemplo, un microprocesador de8 bits con el byte 10111011 en las lneas D7 a D0del bus de datos, siendo D7 el bit ms significativoo LSB y D0 el bit menos significativo o LSB.

    Esta palabra de datos representada como unnmero binario es simplemente 10111011(B) 10111011(2), representada como nmero octales 273Q 2738 y como nmero hexadecimal (lams usada) es BBH 8816. La forma de conver-tir nmeros binarios en octales o hexadecimales yviceveresa se explicar en detalle en la seccin deprogramacin. Los sufijos B,Qy H, y los subndi-ces 2, 8 y 16 enfatizan el sistema numrico (bina-rio, octal y hexadecimal) de cada presentacin.

    A pesar de que el sistema hexadecimal pro-porciona una forma muy compacta y concisade expresar el contenido de un bus de datos, nopodemos olvidarnos completamente de la re-presentacin binaria. En una aplicacin real, estaltima nos permite identificar fcilmente, porejemplo, cual interruptor ha de ser abierto ocerrado en un momento dado para obtener unacondicin de entrada especfica o cual lmparaha de ser energizada para obtener un efecto desalida determinado.

    i: i,::= ..-:: ' .jr"1gg!:-!:1q5. j,1:=l:::: r$i i i l i l l f l t ;a: ; 1:El bus de direcciones contiene la informacindigital que enva el microprocesador a la me-moria y dems elementos direccionables del sis-tema para seleccionar una posicin de memo-ria, una unidad de entrada/salida o un registroparticular de la misma. El nmero de lneas dis-ponible en el bus de direcciones (n) determinael tamao mximo de memoria que puede seracomodado en el sistema (2").

    As, por ejemplo, un microprocesador conun bus de datos de 8 bits y un bus de direccio-nes de 16 bits (tpico) tal como el Z-80 puedemanejar directamente una memoria de 2t6 =65536 (64K) posiciones, cada una contenien-do un byte (palabra de 8 bits).

    Naturalmente. una vez seleccionada unaposicin de memoria, el microprocesador debeestar en capacidad tanto de almacenar informa-cin en esa localizacin (operacin de escritu-ra) como de extraerla (operacin de lectura).

    La cantidad de memoria utilizada en unsistema con microprocesador depende de laaplicacin especfica y es a menudo inferior ala mxima que puede manejar el bus de di-recciones. El conjunto completo de localiza-ciones de membria a las que puede tener ac-ceso un microprocesador, se denomina espa-cio de memoria.

    As, por ejemplo, el espacio de memoriade un microprocesador de 8 bits con un busde direcciones de 16 bits (por ejemplo el 8080)es simplemente 216 = 64K.

    En el caso de un microprocesador de 8bits con un bus de direcciones de 16 bits, elespacio de memoria puede ser visualizado gr-f icamente como un mapa de 65536 direccio-nes de memoria, cada una conteniendo unbyte, la ms baja de las cuales es 0000H y lams al ta FFFFH, f igura 2.10

    ^@^ 4 ,t

    te F fi

  • FFFFF000E000D000c00080004000900080007000600050004000300020001 0000000

    Note que ladireccin de memoriase incremen-a en 1000H cada4K(=4096) direcciones de espa-cio de memoria. Observe tambin que cada lK(=1024) posiciones de memoria la direccin de me-moria se incrementa en 400H. l memoria puededividirse ambin en pginas de memoria, cada unacontiene 256 peJabrasy cubre 100H dirccciones dememoria- Hay, por tarrto,4 pginas en lK de me-moria- las direcciones en la pgina de ms bajo or-den ran desde 0000H hasa 00FFH, en la siguientedade 0100H hasa 01FFH, y as sucesivamente.

    , i}ri;,1 ii{l il:f}trfiiEl bus de control contiene la in-formacin que envla el micropro-cesador a los elementos del siste-mao bien la recibe deestos con elpropsito de sincronizar la opera-cin de los circuitos octemos. Elnmero delfneas del bw de con-uol es variableydepende del mi-croprocesadorparticular utilizado.

    rii'irfl{lt} {ie un.:i'ils tl;Jf;ft#0 Sfl.,':ir;-:.i*gSfltlSf

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

    tema tpico basado en mi-croprocesador. Note queconsta de cuauo elemenrosprincipales: una memoria,un microprocesador, unpuerto de entrada y unpuerto de salida.

    El microprocesadorest conectado a todos losotros comPonentes a tra-vs del Bus de dzns.l-asseales del Bus dc con rol,conjuntamente con las delBus d direcciones, deter-minan que elementos secomunican con el micro-procesadoren un momen-

    0400

    01 000000

    Figun 2.10 Espacio de memoria

    de entrada

    tno-

    de

    :n-

    ma:bena-rru-

    ) .

    o

    ;-ra

    :r

    unelaDradi-iza-'ac '

    sPa-

    priabus

    080)

    de8ts, eltgr-ccio-ounlv la

    to dado. Estos tres buses configuran el bus del sis-tema y el gobierno del mismo es responsabilidaddel microprocesador.

    La secuencia de instrucciones que cons-tituyen el programa que debe ejecutar el mi-croprocesador estn almacenadas en un reade la memoria. En el momento de iniciar elsistema, el microprocesador sitrla en el busde direcciones la direccin de la posicin dememoria donde se encuentra la primera ins-truccin. Como. resultado, la memoria entrega

    Hacia dispositivosde salida

    Figun 2.ll Diagnma de bloques de un sistema basado en un microprocesador

    Desde disoositivos

    cuso prctico sbre Microcontotadow &tr*#

  • Lo s tn ictu r t'or:esatj.oruas

    esta informacin en el bus de datos. Despusde interpretar y ejecutar la primera instruc-cin, el microprocesador busca la siguienteinstruccin, la ejecuta y asl sucesivamente. Lageneracin de la serie de instrucciones nece-sarias para que el microprocesador realice unatarea determinada, es lo que se denomina suprogramacin.

    Hasta aqu hemos visto la arquitectura genri-ca de un microprocesador y de un sistema ba-sado en uno de estos dispositivos; ahora anali-zaremos con ms detalle los pasos que sigueun sistema de esta naturaleza para ejecutar lasinstrucciones contenidas en un programa yaprenderemos como trabajan en conjunto cadauno de los bloques del sistema para desarrollarestas tareas.

    Un microprocesador es un diminuto con-junto de miles o millones de elementos lgi-cos e interconexiones diseado para respon-der a las instrucciones de unprograma, el cualle indica lo que debe hacer en cada instante.Sin un programa que le de vida, un micro-procesador y todo el ltardware conectado a sualrededor, serla una masa inerte de compo-nentes electrnicos sin un objetivo especfi-co. De hecho, la funcin primaria de un mi-croprocesador es ejecutar programas.

    Las instrucciones que constituyen un pro-grama se almacenan en la memoria del siste-ma como patrones de unos y ceros, organiza-dos en grupos de 8, 16, 32y ms bits, depen-diendo de la longitud de la palabra de datosdel microprocesador.

    PAIABRA: Es un grupo de bits que se trarancomo una sola unidad. El ms comn es elbyte, elcual es1 formado por ocho (8) zrs.

    Cuando se trabaja con un microprocesador,es importante comprender su conjunto de ins-trucciones y ser capaz de utilizarlas en la elabo-racin de programas; se debe entender la formacomo el microprocesador las ejecuta y adquirirla habilidad para emplearlas eficientemente enla manipulacin de datos.

    Para ejecutar las operaciones indicadaspor una instruccin, el microprocesador debeempezar por direccionar o encontrar la posi-cin de memoria donde se encuentra la ins-truccin, leerla y decodificarla o interpretar-la por medio de sus circuitos internos. Lospasos anteriores constituyen lo que se deno-mina ciclo de instruccin. Durante su opera-cin normal, un microprocesador no haceotra cosa que'ejecutar repet idamente cic losde instruccin.

    i.uf,

    _:" , , . j . i : , : f l

    : .L-* T-::..: ,{:," -:; -ir

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

    0001001 0001 10100010101 10001 1

    00000000000000000000000000000000

    Direcciones0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000

    0010 0000 01001111 1111 1111

    0000 ----+ 1Instuc'cones. datos

    0x xlx lx lx lx

    -->

    --+

    ----+

    ---+

    ----+

    _-->

    ----+

    0I

    00000

    001

    00101

    1

    0t

    u

    1

    01

    I

    I

    0

    I

    0

    0

    0

    0

    00111

    001

    I

    01

    1000I

    I

    0010000

    1

    000100I

    '*-::i;r

    _

    l ! ' i l

    : lj":u

    1{OTA:Este programa calcula un nmero y almacena el resullado(DCBA) en la p0sicin de memoria 2040H.

    0000 --+ 01111 --> X

    0x

    Figura 2.12 Ejemplo de un programa en lenguaje de nquina

    $ rrr* curco prctico sobre Microcontrctadores&fl

  • o-

    :e-

    A-

    :n-

    tos

    anel

    Ejemplo de un prognma objetoPara ejegutar un programa, un micropro-

    cesador debe tenerlo almacenado en forma bi-naria (patrones de I y 0) en posiciones adya-centes de la memoria de programa del sistema.Esta forma binaria del programa se denominalenguaje de mquina y es el nico lenguaje queentiende el microprocesador. En la figara 2.12se muestra un ejemplo de un programa en len-guaje de mquina para un rnicroprocesador8085. Para evitar la confusin que, desde elpunto de vista del programador, puede gene-rar una larga lista de unos y ceros, estos cdi-gos se pueden representar en forma hexadeci-mal, constituyendo lo que se denominaunPro-grarna o cdigo objeto. En otras palabras, un c-digo objeto es, simplemente, una representa-cin abreviada de un programa en lenguaje demquina, f igura 2. l3.Por ejemplo, 10111101se representa como BD, 0000 0001 como 01,1110 0110 como E6, 0000 111lcomo 0F, etc.

    No todos los cdigos de un programa ob-jeto o en lenguaje de mquina, correspondena instrucciones ejecutables. Muchos de ellos co-rresponden a datos y direcciones que son uti-lizados por el programa para propsitos parti-culares. Los cdigos correspondientes a instruc-ciones ejecutables se denominan comnmen-te cdigos operacionales (opcodes). Por tanto,en un sistema de8 bits,los programas en len-guaje de mquina se reducen a unas cuantassecuencias de grupos de 8 bits (1 bte) situadosen algn lugar de la memoria.

    Estas secuencias representan a su vez unamezcla de instrucciones para el microprocesa-

    dor (opcodes) y datos sobre los cuales ha de ope-rar el mismo. Cada cdigo de operacin le in-dica, directa o indirectamente al microproce-sador, la direccin de memoria donde se en-cuentra almacenada la siguiente instruccinejecutable. Al recibir un cdigo de operacin,los circuitos internos del microprocesador lodescifran. La informacin obtenida permite aldispositivo identificar la naturaleza de los bytesque siguen el opcode.

    El conjunto de cdigos de operacin (opco-des) aloscuales puede responder un microproce-sador, constituye su conjunto de instrucciones(Instruction Set) . Cadamicroprocesador dene supropio conjunto de instrucciones, cada una re-presentada por un opcode diferente. El nmeromximo de cdigos de operacin que puede des-cifrar un microprocesador es igual a 2N, siendoN el tamao de la palabra de datos del mismo.

    Las instrucciones de un microprocesadorpueden agruparse en tres grandes categorlas se-gn su funcin: la primera son las instruccio-nes de transferencia de datos, las cuales mue-ven informacin sin alterar su contenido de unaparte a otra del sistema; la segunda categora esla de procesamiento de datos; estas instruccio-nes transforman la informacin desde el puntode vista lgico o aritmtico; y la tercer catego-ra, son las insdrucciones de control de progra-ma, ellas determinan la secuencia de ejecucinde las instrucciones.

    En la figura 2.14, observamos un diagra-ma simplificado de la arquitectura de un siste-ma basado en un microprocesador, en el cualbasaremos nuestro an lisis de la interaccin en-tre cada una de las partes del sistema y la se-cuencia que presenta.

    En este diagrama se pueden notar cuatrobloques fundamentales: la memoria, la unidadde control, la unidad operativa y el mdulo deentradas y salidas. Todos ellos conectados a tra-vs de los buses de direcciones, datos y coritrol.

    . Direc'ciones(En hexadecimal)00 0 000 0100 0 200 0 300 0 400 0 500 0 6

    . .00 0 7

    '. Figura 2.13

    ConbnidoInsuccin,datD (Hex)

    BD01E6OF32402076

    dor,ins-abo-,rma

    uirirte en

    cadasdebeposi-e ins-,fetaf-

    s. Losdeno-)Pera- haceciclos

    curco prctico sobe Micocontotadorcs &n;#

  • Lo s tnirt'u t tu cesad.o ru=s

    Bus de datoso

    instrucciones

    Unidad de control

    W . ri- - . : . : r i: . : I, : . - - :E- : . - .u-u

    . . . .o

    .:!

    -i,,,: N*i:l

    {

    ;,(- (

    , {i

    Perifricos delmundo exterior{>

    Bus de direcciones

    Seleccinde operacin

    Unidad operativa ;: . r : . r " . . ,1: , , i i ' ' i : . l ! ; ' : r f t l i j

    @ unidadoperativa

    m Figura 2,14 Diagrama de bloques sinplificado de un sistema basado en un microproceador

    dto$ Qft:. curco prctico sobre Microcontroladores&d

    W'- Memoria RAM de lectura y escritura, con 256 posiciones de 8 bifs cada una

    BUS dedirecciones

    l : ,. '+ Stu.r : . .

    tb. Lectura/escritura

  • .,1 o

    ionesF) . .

    El bloque 1 es la rnernoria; en ella se al-macenan una serie de cantidades codificadasen ocho 8 bits. Para entender la operacin deuna memoria, puede hacerse una analoga conun casillero de correos, donde existen muchascasillas para diferentes usuarios, cada una conun nmero o dieccin que la identifica y conla propiedad de almacenar cualquier clase deinformacin. l

    Pues bien, una memoria posee un conjun-ro de posiciones cada una con su propia direc-cin, y en cada una de dichas posiciones puedeexistir cualquier dato de ocho bits.

    La posicin que se va a acceder es indi-cada por el bus de direcciones al Decodffica-dor de Direcciones (DI), el cual es un dispo-sitivo de n entradas y 2" salidas. Dependien-do de la entrada binaria que lea, habilita lalectura de una direccin determinada pormedio de la activacin de la lnea correspon-diente, figura 2.15. Los 8 bits de la posicinaccedida salen por el bus de datos hasta elRegistro de Datos (RD), si se efecta una ope-racin de lectura.

    Cuando se trata de una operacn de escritu-ra, el contenido digital de las 8 lneas del bus dedatos se carga en el Registro de Datos desde 1,en las 8 celdas de la posicin direccionada. El pro-ceso de direccionar una posicin y leer o grabarun dato se denomina cicln d mmtoria.

    1 6 posicionesen la

    memoria

    Ftgura 2.15 Segn el dato introducido por el bus de direcciones,se habilita la comunicacin con una deterninada posicin deremora

    i i ' t*uilkF{i:}# {Jtf*il memoria pti".tprl de un sistema basado en un ,l-ic.oprocCIadorse constnrye con memorias de tipo ;ielectrnico, que se dasifican en dos grandes grupos: :

    ,Memorias ROM (RtaOnlyMeno4T). Son me-'morias que una vez grabadas, permanecen con di- .lcha informacin permanentemente y slo pueden :,ser leldas. Son memorias de 'tlo lectura" v se uti- llizan paraguardar [os program", o d"to, i!o..

    iMemorias RAM (Random Access Memory\. El',rcontenido de sus posiciones puede ser ledo y es- icrito. Al igual que las memorias ROM, son de ac- iiceso aleatorio, es decir, que para acceder a una po-sicin determinada no hay que pasar por las ante-lriores, como sucede en las cintas y discos magn- rticos. Son las ms rpidas y su tiempo de acceso se ::mide en nanosegundos. i

    :El principal inconveniente de las memorias ,

    tipo RAM es que son voltiles, o sea, al cortarse .el suministro de energa elctrica, cuando se des- :conctx el sistema, pierden la informacin que :contenlan. En un sistema con microprocesador, ,se utilizan este tipo de memorias para almacenarel resultado de las operaciones y los datos de las ivariables que se van cr1n{o en elprograma. ,

    El bloque 2 esla unidad de control cuyafuncin primordial es la de interpretar y eje-cutar las instrucciones. El cdigo binario de laoperacin que se va a ejecutar, se deposita ini-cialmente en el Registro de Instrucciones (RI)y luego se traslada al Decodificador de Instuc-ciones (DI), cuya misin es seleccionar en unamemoria ROM un conjunto de posiciones quecorresponden al cdigo recibido y en las quese encuentran los cdigos de las operacioneselementale s (o microinstrucciones) que compo-nen las diferentes etapas en las que se divide laejecucin de la instruccin decodificada.

    Las microinstrucciones van pasando al S-cuenciador (S), que es el circuito lgico de'con-

    ocegdor

    cuso prctico sobe Microcontotadorcs &n;#

  • Memoria principal

    instrucciones

    Figun 2.16 Movinientos de informacin de los contenidos de las unidades que participan en Ia fase de bsqueda de una instruccin

    Bus de Idatos e I

    Unidad de control

    trol y tiempos el cual gobierna a todos los ele-mentos del sistema y lleva a cabo la ejecucinsecuencial de las\microinstrucciones. I,a fun-cin del Contador de Prograrna (PC) es en-viar por el bus de direcciones la posicin de lamemoria donde se encuentra la siguiente ins-truccin que se va a ejecutar. Normalmente,este contador se incrementa en una unidad encuanto la memoria acepta la direccin de lainstruccin anterior.

    El bloque 3 es la unidad operdtiadi allf seejecutan las operaciones aritmticas, lgicas, dedesplazamiento, de rotacin, de incremento,etc. Uno de los operandos que interviene en laoperacin que va a efectuar la ALU (Unidadlgico-aritmtica), procede de un registro de8 bits llamado Acumulador. El otro operandollega desde cualquier parte del sistema y se car-

    Perifricos delmundo exterior

    ga o almacena en un registro auxiliar. Un re-gistro especial, denominado Registro de Esta-do, contiene una serie de bits que actan comosealizadores de alguna caracterfstica especialque se haya producido en la ltima operacinefectuada por la ALU. Por ejemplo, un seali-zador denominado Z (cero), pasa a valer uno(1) si el resultado de la operacin que ha he-cho la ALU ha sido cero (0).

    El bloque 4 es el de entradas y salidasy seencarga de suministrar al sistema los datos pro-cedentes del exterior, as como de llevar los re-sultados a los perifricos del mundo real.

    *qecuen*ia de operacin de unainstruc*inEn un microprocesador, el principio de eje-cucin de cualquier instruccin tiene carac-

    Bus de direcciones

    Figun 2.17 Elcontenido del Conbdor de Programa (PC) pasa al Registro de Direccilnes (RDI)

    # &tn cw", petico sobre Microcontoradores

  • Bus de direcciones

    Bus de control

    Itin

    re-'ttrt-

    )morialcinali-uno

    r he-

    tvseiPro-DS re-

    e eje-c fac'

    c*nes (RDI)

    Figun 2'18 Elcontenido de la posicin de la memoria se deposita en et Registro de tnstruccin

    tersticas similares. En todas ellas hay dos sigue con la parte de la ejecucin propiamentetiempos fundamentales llamad os bsqueda dicha que puede tener varios subtiempos, depen-(fttth) y ejecucin (execute). El diagrama de diendodeitipodeinstruccin.bloques de un sistema con microprocesadorpermite un anlisis rpido de la forma en que Fase de busru*rlase ejecuta una instruccin cualquiera; por Eselcomienzodeunanuevainstruccin,el futadorejemplo, la correspondiente a la suma de dos dePngrana(PQdeposia enelbus dedireccioneslaoperandos. direccin de la posicin de la memoria principal don-

    de se encuentrael codigo de la instruccin que sevaaEl contador de programa empieza conte- ejecuar. Dicho .gdigJuk de la memoria principal

    niendo la direccin de la memoria principal pordzsdedatoshasala UniadeContmldond.donde est almacenado el cdigo binario de la segrabaen elRegittude Instruccions,frgra'2.l.instruccin de suma. Luego ese contenido pasaatravs delbusdedireccioneshastalamemoria Como la CPU no sabe que tipo de ins-principal, donde se decodifica y selecciona la truccin va a ejecutar, los tiempos e bsque-posicin que contiene el cdigo binario de la da son exactamente iguales. El desarrollo deoperacin. Dicho cdigo de "mquina" sale de esra fase es la siguiente:ia memoria por el bus de datos hasta el registrode instrucciones de le Unidad d Control, don- 1. El contenido del Contador de Programa (PC),de se deposita. Toda esa fase de localizacin del a travs del bus interno de la uniad de con-:digo de la instruccin mencionada, recibe el trol, aparece en el registro de direcciones de me-nombre defase de bhqueda y es la misma para moria, gara2.l7.:ualquier instruccin.

    2. El contenido de la posicin de memoria apareceEl tiempo de ejecucin empieza por un sub- en el bus de datos. Esta informacin se deposita

    iempo de decodificacin de la instruccin y pro- en un registro de instrucci" fllt*

    2.1&

    curcoprcticosobreMicrocontotadoes&t;.drtb&

    E-

  • i:iilsii333tx3i#TFigun 2.19 Comporkmiento de la unidad de control dunnte lafase de ejecucin

    Al mismo tierpo, el Conador de Programa (PC) bit seaJuzdores del Registro de Esado, tomann else incrementa, puesto que l debe siempre sea- valor correspondiente en funcin del rCIulado.lar la direccin de la siguiente instruccin que seva a ejecutar, para cuando se necesite. De esa Eiecucin dg una i*strtt**innforma se ha completado la operacin de bsque- En resumen: completada la fase de bsqueda, elddeunanueva instruccin. cdigo de mquina del Registro de Instrucciones

    Dec*rfirica*i*n #* i;n; ir*ir:**irn :'i:ilI ?:f:!K;#,{:Xt:i?S:i:Es la primera parte del tiempo de ejecucin y de microinstrucciones q.r.

    "ott rpondan. Dichas

    es tambin exactamente igual para todas las microinstrucciones van introducindose al se-instrucciones, puesto que an no se sabe que cuenciador a medida que se realizeel proceso. Eloperacin hay que efectuar. secuenciador, con cada microinstruccin, envfa

    una sene de seales de control a los elementosDe momento,la parte de la instruccin llama- del sistema que deben actuar en cada momento.da cdigo de operacin (opcode), se transfiere Ejecutadas todas las microinstrucciones que com-al Decodificador de Instrucciones (DI) y aqu ponen la instruccin, el Contador de Programaempieza la parte diferente de la instruccin. se incrementa en una unidad y el sistema pasa a

    la ejecucin de la siguiente instruccin del pro-Al recibir el Decodificador de Instrucciones grama, figura 2.19.

    el cdigo de la instruccin en curso, se encrrgade seleccionar en la memoria de microinstruc- Hay varios tipos de instrucciones bsicasciones aquellas que corresponden a dicho cdi- que pueden agruparse de acuerdo con diferen-go. La llegada de las microinstrucciones d Se- tes criterios, tales como funcionalidad, nme-cuenciador, origina una seriede seales de con- ro de ciclos de memoria utilizados, nmero detrol que regulan la ejecucin de las diferenteseta- palabras que utiliza, etc. Dependiendo de laspas en las que se descompone la instruccin. carecterlsdcas de la computadora y de su mi-

    croprocesador, los diferentes tipos de instruc-En el caso de una suma, uno de los sumandos ciones sern de una, dos o ms palabras y ne-

    ha de estar contenido previamente en el Acumu- cesitarn uno o ms ciclos de memorie, paIador,mientras que el otro llegar del registro auxi- llegar a obtenerse enteramente en la unidad deliar, generalmente, desdelamemoriadedatos, cuya control. En funcin del nmero de palabras ydireccin correspondiente vendr acompaando del tipo de instruccin, la ejecucin tiene ca-al cdigo de la operacin en la instruccin. ractersticas diferentes. Estos parmetros de-

    terminan, por ejemplo, el nmero de veces quelALU efatrar la sumay el resulado se de- el sistema debe acceder a la memoria para leer

    ,osiar: en el Acumulador, d mismo tiempo que los toda la instruccin.^s{h.

    -(dz} &t: cwso prctin o,be MictocottfrotadorcsW

    I

  • iiin

    nel

    El concepto de entrada/salida abarcatoda trans-ferencia o intercambio de informaci n (datos)entre un microprocesador (CPU) y un disposi-tivo externo o periferico especlfico. Cuando losdatos fluyen hacia el microprocesador, se tieneel caso de una operacin de ennada y cuandolo hacen en direccin al mundo exrerno, se rie-ne el caso de una operacin de salida.

    Un paso importante en el diseo de cual-quier sistema basado en microprocesadores esseleccionar los puertos de entrada/salida o cir-cuitos de interfaz cuyo costo y rendimienro seanlos ms adecuados para una aplicacin dada. Lacomplejidad de un pueno I/O puede variar des-de un sencillo flip-flop hasta un circuito inte-grado altamente especializado; por ejemplo, uncontrolador para un tubo de rayos catdicos oun display grfico tipo LCD.

    En general, las funciones que debe realizar unpuerto o dispositivo de interfaz de entrada/salida

    'e pueden resumir en los siguientes trminos:

    . Identificar direcciones con el fin de esra-blecer la conexin con los buses de datos yde control del s istema cuando se seleccio-na un dispositivo perifrico de entrada/sa-lida especfico.

    . Interpretar rdenes. Generalmente, las rdenesenviadas por el microprocesador al puerto I/Ose reducen a seales de lectura y escritura. Es-us seales pueden venir ya decodificadas o ne-cesitar una decodificacin previa.

    .

    -{.daptar ftsicamente el sistema a los re-quisitos del periferico. Esto incluye lautilizacin de manejadores (driuer) deLneas de transmisin, eliminadores deruido, optoacopladores, etc.

    . Cnrolar los tiempos para la transferen-.ja de informacin con el fin de garanri-rr que el flujo de datos entre el micro-:rocesador y el periferico se haga de unarnnera ordenada y eficiente.

    Un pueno o interfaz de entrada./salida puedeconstruirse utilizando componentes normales depequea y mediana escala como compuertas,flip-/hps, regisuos, codificadores, decodificadores, etc;o circuitos integrados de gran escala LSI (LargeScale Integration) especializados como la interfazperiferica programable (PPI) 8255 o el controla-dor programable de interrupciones (CPI) 82j9.

    En la figura 2.20 se muesrra un ejemplosencillo de un puemo de salida con un flip-floptipo D cuya funcin es transferir el estado delbit de datos D0 a un diodo LED que acta comodispositivo perifrico. Esto sucede cuando en lallnea de direccionamiento A15 hay un nivel altoy la seal de escritura (m) es baja. Despus dedeshabilitad o, el flip-flop retiene la informacinpreviamente almacenada mientras el micropro-cesador se dedica a orras rareas.

    En la figura 2.21 semuesrra un ejemplo senci-llo de puerto de entrada con un flipfup. En estecaso, el dispositivo periferico es un interruptor y suestado (alto o bajo), se rransfiere a la lnea de datosD0 cuando en la lnea de direccionamiento A15h"y,m nivel alto y la lnea de control de escritura(RD) es baja- (Jna vez que el microprocesador acepael bitD} presenre en el bus de datos,lo transfiere alacumulador y sinia la salida del puerto de entradaen estado de alta impedancia con el fin de que nointerfiera con otr transferencias de datos.

    (Jna manera ms ele-gante y eficiente de controlar el trnsito de informa-

    Microprocesador Puerto de salidaDispositivo

    perifrico desalida

    Figura 2.20 Puefto de nlida con fiip-flop

    Lellnes3Seoria*rasse-

    . Elnvantosnto.)om-elna$aaPro-

    sicas:ren-

    rne-ro dele las mi-f,ruc-y ne-Para

    ad de)ras yle ca-r de-:s quera leer

    curco prctico sobre Microcontotadores &l:#

  • iiDspositivo perif rico

    de entrada

    Do_DZ: Bus de datos " Microprocesador

    Hgun 221 Pueto de entada con intenuptor

    cin entre el mundo rcemo y el microprocesador,es utilizando circuitos intqradosde gran escal (S4disearlos para ef manejo de enuadasysalidar.Entre las principala caacterlsticas de estoscircrritos podemos mencionar:

    . Son fciles de conectar con los buses del siste-ma puesto que disponen de llneas de adapta-cin directa con las salidas del respectivo mi-croprocesador. Por lo general, slo se requiereun sistema decodificador de direcciones.

    . Son circuitos de entradas y salidas programa-bles. Esta caracterlstica permite adaptarlos f-cilmente a las condiciones de los circuitos ex-ternos utilizando nicamente comandos deprogramacin. Generalmente, la programa-cin consiste en cargar, de una forma prede-terminada, un registro interno que define elmodo de operacin. Este ltimo se puede_ al-terar en cualquier momento por programa.

    . Algunos mdulos de entrada/salida poseencierta capacidad de proceso propia, indepen-diente del microprocesador. Esta circunstan-cia es favorable ya que libera al microproce-sador de la ejecucin de ciertas tareas ruti-narias y de control, las cuales delega en eldispositivo de interfaz.

    La caracterfstica anterior, denominada algu-nas veces inteligencia ditibuida,simplifica el cir-

    cuito y el programa y hace posible funciones queno serfan ejecutables si el microprocesador tu-viera que hacerse cargo de todo el proceso de en-trada/salida. Por la funcin que hacen, los puer-tos de interfaz progamables se pueden dividiren dos categorlas: interfaces dedicadas e interfa-ces de propsito general o interfaces universales.

    Las interfaces dicaas se especidizan enuna funcin especlfica, por ejemplo, controlarperifricos, temporizar eventos, etc. En esta ca-tegorla se encuentran entre otros: el temporiza-dor programable 8253, el controlador de discoflexible 827l,la interfaz programable de tecladoy disphy 8279 y elcontrolador de tubos de rayoscatdicos (TRC) 8275.

    I-as intrfata de prcpna gmeral como sunombre lo indica, son ms universdes y puedenadaptarse a una gran variedad de apcaciones. Exis-ten interfaces para transmitir datos en paralelo comola interfaz perifrica programable (PPD 8255 y parala transmisin de datos en serie como el 8251.

    El circuito de soporte 8155 (|/O-RAM)Si analizamos un microprocesador tfpico como l8085, observaremos que contiene todas las partesde una CPU funcioryl asf como un puerto serie;todo lo que necesita para completar un sistemabsico es una memoria RAM, una memoria ROMy puertos parallos de entrada./salida.

    Con el fin de minimizar el nmero de cir-cuitos integrados necesarios para configurar unsistema sencillo, Intel, creador del 8085, ha de-sarrollado una serie de componentes que inte-gran memoria RAM y puertos I/O memoriaROM y puertos I/O en un mismo circuito inte-grado. Los dispositivos ms representativos sonel 8155, el 8355 y eL8755. El8155 antene256byta de RAM, dos puenos I/O paralelos de8 bit,un puefto I/O paralelo de6 biny un temporizadorde 14 hit. Et 8355 contiene 2M8 bt6 de ROM ydos puertos I/O paralelos de 8 bir. H, 87 55 tiene dospuertos llO y 2048 futa eEPROM. En esta sec-cin estudiaremos un sistema bCIado en micropro-

    A1 5-40: Bus de direccionesD0-D7: Bus de datos

    # &tn cueo pctingobre Micoowttutattups

  • lueru-

    en-

    ler-idir,rfa-rles.

    lenrolare, ca-

    riza-lisco:ladoravos

    no su

    ueden. Fxis-rcomo

    )'Parai l .

    t '{ ,omo els Partes.o serie;sistemaa ROM

    , de cir-prar un,. ha de-ue inte-nemoriaro inte-ir-os sond.ene256de8 bit,porizadoreROMYi dene dosn esr sec-microPro-

    PC3PC4

    TII\4ER INRESET

    PC5T[\,1ER 0UT

    rolM;UERD

    WRALE

    ADO

    AD1

    ADz

    AD3

    AD4

    AD5

    AD6

    AD7(a) GND

    Vcc

    PC2PClPCOP87PB6

    PB5PB4PB3

    P82

    P81

    PBOPA7PA6PA5

    PA4

    PA3

    PA2

    PAl

    PAO

    Port B,

    PAO-7

    lO/M+ I pod Awewlwntr+

    cesador, uillizando el circuito integado 8155. En lafrgm2.22 se muestra la configuracin de pines, eldiagrama interno de bloques y la estrucnra de re-gistros de este circuito.

    El 8155 puede demultiplexar internamen-te el bus de datos y direcciones del 8085. Poresta razn, slo se necesitan ocho llneas, desdeADO hasta AD7, para transmitir datos y direc-ciones. Las llneas IOiMD, RD y'WRse utilizanpara el control de la memoria y las lneas ALE yRESET para el conol interno.

    Para efectos de la interfaz se utilizan 221neasprogramables como entradas o sdidas y organize-das en tres grupos asl: desde PAO hasta PA7 panelpuerto A, desde PBO hasta PB7 pxael pueno B ydesde PCO hasa PC5 para el puerto C. ls llneasTI (pin 3) y To(pin 6) son, respectivamenre, laentrada y la salida del temporizador.

    La memoria RAM del8155 tiene asignadaslas direcciones 0000H hasta 00FFH y es accesi-ble externamente mediante los ocho bits de di-reccionamiento de ms bajo orden cuando laslneas C-E e IO/M son bajas y cualquiera de laslneas RD S. es baja. Los ocho bits dedirec-cionamiento de ms bajo orden se almacenanen un registro interno durante los flancos debajada de la seal ALE.

    La capacidad de memoria RAM del 8155(256 byns) es, generalmente, ms que suficientepara sistemas pequeos. En la mayora de loscasos esta memoria se utiliza para almacenamien-to temporal de datos y resultados, as como deinformacin de registros y direcciones.

    . . , - .1.1 : : : t , i ; : i i , l ' i r i : , : r ' , ,1

    Los puertos A, B y C se pueden utilizar comotres puertos de entrada/salida independientes;estos puertos son accesibles externamente a tra-vs de las 8 lneas de ms baio orden del bus dedirecciones cuando G ., aja, RD o ffi..,baja e IO/M es alta. La figura 2.23 muestra las

    ALE+

    RD+

    -WR+

    RESET+

    tD)

    !+-'.I

    II

    ,,"r*r,*l IiiMER our-l |

    | vcc r.vr|-GND (0V)

    -*d,...i; ; lofr c---1. ;"- ,*$ I@eI

    MODO TIMEB

    Figura 2.22 Circuito de soporte 81 55

    Curco prctico sobre Microcontotadores &

  • direcciones internas de cada registro y de cadapuerto en el 8155. Por ejemplo, para seleccio-nar el puerto B, A1 debe ser alta (l) y A2y A0deben ser bajas (0).

    Disenn rln un sistema rnn*l* **"S0*$ y S1s5Podemos decir que un sistetna mlnitno con mi-croprocesador es un dispositivo constituido poruna serie mlnima de elementos que permiten eldesarrollo de algn tipo de tarea o aplicacinen el mundo real de manera autnoma, inteli-gente y siguiendo las pautas dadas por un pro-grama. En el estudio de los microcontrolado-res, es muy importante entender qu es un sis-tema mfnimo con microprocesadores, ya que esprecisamente esta configuracin bsica la quese ha reemplazado con esta nueva tecnologla.

    Como ejemplo mostraremos el diseo de unsistema microcomputador mnimo desarrolladopor CEKIT alrededor de una CPU 8085 y uncircuito de soporte 8155. Aunque el 8085 es unmicroprocesador de ocho bix de las primeras ge-neraciones, lo hemos utilizado en este ejemplo porla facilidad para entenderlo con fines didcticos

    segn los objetivos de este curso. De l se originel 8086 el cual es la base de toda la familia Intel laque sigui con el 80186, el 80286, el 80386, el80486 y el Pentium. Si usted est interesado enprofundizar en este tema, le recomendamos nues-tro Curso Bsico de Microprocesadores.

    El sistema se ha divido en dos tarjetas: unatarjeta procesadora y una tarieta programadora, fi-gan2.23. I.a primera contiene, esencialmente, laCPU, la memoria RAM, el temporizador progra-mable, los puertos de entrada./salida y el registro decomandos. En la memoria RAM reside el progra-ma de instrucciones que ejecuta el microprocesa-dor. Ia arjeta programadora consta de una serie defunciones de pequeay mediana escala ales comocompuertas, dTium, decodificadores y registros. Sufuncin es permitir que el usuario tenga acceso a lamemoria del sistema y pueda cargar en la mismadatos e instrucciones, as como visualizar resula-dos. la informacin se recibe desde un teclado hexa-decimal y se visualiza en diodos LED y d"pkyt

    {.3isrfi* tt* lr* tarjeta procesdrrrIa tarjeta procesadora de nuestro microcompua-dor consa, bsicamente, de una CPU 8085 y un

    Visualizador Visualizadorbinario hexadecimal

    ffiffit t t tr:siE=-

    ffi@W1#l -C- l - - -F@ffir: Tareta programadora Salda de reloi

    wR:oroen o-e escritura (ESC) t*lil"'"'RD: orden de lectura (LEE)ALE: orden de dreccionamiento

    &n; ::,*

    r** sbrc Micromntotadoes

    Figun 2.Zl Sistema nnimo

  • ota

    elins-

    na

    fi-la

    ra-deT^-5a-

    :de,lO.Sualasma

    lta-g-

    r.

    Bus deCirecciones*

    (a)

    @!ffiill#:ffiIA1

    A2

    A3

    A4A5

    A6

    Fo

    Reset L 1

    ilICl B

    -c

    sene

    sene

    +5V

    EntradaSalida

    EIEI: - : . JJ

    !;:854

    gL7.

    rblrsllos lL*lf"-f#

    HSl"

    AD7

    AD6

    AD5

    AD4AD3ADz

    AD'1

    ADO,-tI

    :cuito de soporte 8155. En las figuras 2.24(a) yf.24(b) se muestran, en su orden, los diagramas derloques y esquemtico de esta parte del sistema.

    La CPU 8085, cuya configuracin internas ilustr en la figura 2.5, proporciona, entre otros:-oques funcionales, una unidad aritmtico-l-;;a (ALU) de ocho bits, una unidad de control-.--.-arios registros accesibles al usuario.

    ,{.unque el 8085, por disponer de un bus de::ecciones de 16 bits, puede direccionar un espa-

    ,;a- de RAM disponibles en nuestro sistema son--jcientes para soportar la mayora de programassrcillos de aplicacin. Todos los bloques funcio-:;,s que constituyen la tarjeta procesadora se co-::rican entre s a travs de los buses de control,

    -

    ros y de direcciones del sistema. El bus de

    T1 T0Temporizador

    Pura-Y trn

    7

    )

    Figun 2.24 (a) Diagrama de bloques (b) Diagrama esquemticocontrol, como su nombre lo indica, transporta lassealesdecontrol (ALE,ffi., RD,IO/M, etQ quenecesita la CPU para comunicarse o dialogar conla memoria y los puertos I/O.

    A travs del bus de direcciones, el 8085 se-lecciona de manera inequlvoca la posicin dememoria o el puerto I/O desde el cual trae o ha-cia el cual dirige la informacin del bus de datos.Puesto que el sistema tiene solamente 256 bytesde memoria, slo se requieren ocho lneas de di-reccionamiento (las menos significativas); lasocho restantes (las m:s significativas), no se uti-lizan. En el 8085 las ocho lneas de direcciona-miento de ms bajo orden (A0 hastaAT), se mul-tiplexan internamente con las ocho lneas delbus de datos (D0 hasta D7) formando un busnico de datos y direcciones. El 8155 decodifi-ca o demultiplexa la informacin transportada

    8155

    tmnimo

    curco prctico sobre Miuocontrotadores *tn#

  • 1t

    i 'sobre estas lfneas para saber cundo se trata deuna direccin y cundo de un dato.

    El circuito de relojTodo microprocesador necesita un generador depulsos de reloj para controlar el contador de pro-grama y sincronizar sus funciones internas. Ennuestro clso, este circuito de reloj viene incor-porado en la CPU 8085 y su frecuencia puedecontrolarse externamente mediante un cristal ouna red RC externa conectada entre las lfreas Xl(pin l) yX2 (pin2).

    El circuito de resetEl 8085 puede ser fcilmente conectado o desco-nectado por hardware manelt{o adecuadamen-te su entrada de rasar (RESET IN); pin36. Cuan-do esta llnea recibe un nivel bajo, el microproce-sador ingresa al esado de reset. Bajo esta condi-cin, el contador de programa se carga con ceros ylos buses de datos y direcciones se sitrlan en el es-tado de alta impedancia. Debido a su naturalezaasincrnica, la seal de reset puede afecar el con-tenido de los registros internos de la CPU, in-cluido el de estados o banderas. Cuando la lfneaFBEmi se hace aka, el 8085 procede a ejecu-ar el prograrna almacenado en la memoria.

    En el momento de aplicar energfa al siste-ma, el conderisador Cl est descargado e inyec-ta, a travs de R4, un nivel bajo a la entradaRFfm del8085. Como resultado, este l-timo pasa al estado de reset descrito anterior-mente. El condensador comienza entonces acargarse a travs de R3. Cuando el voltaje entrelos terminales de Cl alcanzaun valor cercarro a+5V la enrrada RBS-ff W recibe un nivel altoy el 8085 sale del estado de reset, comenzandola ejecucin de las instrucciones a partir de laposicin 0000H. El diodo Dl descarga rpida-mente el condensador cuando se desconecta mo-mentneamente la fuente de alimentacin, in-cluso como resultado de una falla en la alimen-tacin. El circuito constituido por Sl, Rl, R2,ICIA e ICIB forma un eliminador de rebotecuyo objetivo es aplicar un nivel baio a la entra-

    d" FRF del 8085 cuando el interruptorSl est en posicin "RESET" y un nivel altocuando Sl est en la posicin "RLIN".

    Los buses de datos y direccionesEl 8085, por poseer un bus de direcciones de16 llneas, puede direccionar hasta 65536 bytes(64K) de memoria. Sin embargo, para accedera.Ies256 posiciones de RAM disponibles en elcircuito de soporte 8155 slo se requieren lasocho llneas de.ms bajo orden. En la figura2,25 se muestra la forma de interconectar losbuses de datos y direcciones de los.circuitos8085 y 8155. Recuerde que en el 8085 las ochollneas de direccionamiento de ms bajo ordenestn multiplexadas con las ocho lfneas de da-tos, formando un bus nico de datos y direc-ciones. En otras palabras, en nuestro sistema,los datos y direcciones viajan sobre las mismaslfneas (ADO hastaADT).

    El 8155 distingue internamente enue direc-ciones y datos interpretando el esado de lallneadeconuol ALE. Cuando esta riltima es de nivel bajo,entiende que la informacin presente en el bus esun dto y cuando es de nivel dto es una direccin.

    Cuando el bus AD actrla como bus de da-tos, las lfneas ADO a AD7 son bidireccionales, esdecir, pueden transportar informacin desde ohacia el microprocesador. Cuando este bus seconvierte en bus de direcciones, las lfneas ADOhasta AD7 son unidireccionales y llevan infor-macin de la CPU hacia la memoria o hacia lospuertos de entrada/salida.

    Hgun2 hnexin nuWptexadadetbus de datosy direcciona

    # &tt cuw pr*i,, ct*wnotturw

    IiI

  • :or

    Ito Como se muestra en la f igura 2.26,Ia CPU8085 se comunica con el circuitb de soporte8155 a travs de cinco lneas de control: RE-SET, ALE,'Sf-R, m e IO/M. Otras lneas de;ontrol como HOLD, HLDA, READY, erc.,no son necesarias para la operacin de nuestrosisrema mnimo pero s se requieren en siste-mas ms grandes para ejecutar otras funciones.

    La salida de reset del 8085 (RESET OUT,pin 3), activa en alto, le comunica a la entradaJe reset del8155 (RESET IN, pin 4) que el mi-:roprocesador est en condicin de reset, es decirque no est ejecutando el programa de aplica-:in. Cuando esto sucede, el 8155 entra tam-bin en estado de resety define todas las lneas desus puertos como entradas.

    La lnea ALE (Address Latch Enable: habi--irador del seguro de direcciones) del 8085 (pin10) est conectada a 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 resultado de la seal ALE, el 8155 al-:rlacena en un registro interno, durante el flancoie bajada, la palabra de direccin. En el siguiente,^iclo de mquina, el microprocesador puede pro-:eder entonces, a leer o a escribir en la posicin de::remoria direccionada. En este caso, la informa-in se transmite sobre el busAD, convertido aho-: en el bus de datos del sistema.

    Figura 2,26 Conexin del bus de control

    :::-'!-rl:j

    La lneafr. Qrrite: escritura) del 8085 (pin31) est conecada a la lnea ffi. 1pi" l0) del8155. Cuando esta lnea se hace baja, la CPU leindica a la memoria que el dato o la instruccinpresente en el bus AD va a ser escrita en la posi-cin de memoria previamente seleccionada. Lalnea RD (read: lecatra) del 8085 (pin 32) estconectada a la lnea-RD (pin 9) del 8155. Cuan-do esta lnea se hace baja, la CPU le indica a lamemoria que va a proceder a leer el contenidode la direccin prgviamente seleccionada y a si-tuar la informacin en el bus AD.

    Finalmente, la lnea IO/M (Input/output-memor!: entrada/salida-memoria) del 8085 (pin34) es conecrada a la lnea IO/M (pin 7) del8155. Cuando esta lnea se hace alta, el 8155reconoce que la palabra de direccin presenteen el bus de datos corresponde a un registro in-terno o a un puerto I/O. Cuando la lnea IO/M se hace baja, la CPU 8085 le informa al cir-cuito de sopome 8155 que la direccin presenreen el bus AD corresponde a una de las 256 po-siciones de memoria a las que es posible teneracceso. Estas localizaciones tienen asignadas di-recciones entre 00H y FFH.

    . : ' : ' - : . ' . ,

    Desde un punto de vista conceptual, el circuitode la figura 2.24 es una microcomputadora com-pleta porque posee una unidad central de pro-ceso, una unidad de memoria y puertos de en-trada/salida. Sin embargo, le falta lo ms im-portante: un programa. Sin un programa que leindique lo que debe hacer, un microcomputa-dor es slo una masa inanimada de componen-tes electrnicos.

    Para almacenar en la memoria los datos einstrucciones que constituyen el programa denuestra microcomputadora, necesitamos asumirtemporalmente el control del circuito de soporte8155 y aislar el microprocesador 8085 del restodel sistema. De este modo, podemos introducirinformacin en la memoria sin intervencin dela CPU. Esta es, precisamente la funcin de la

    deItes:dernelr lasFrar losritosrchordene da-[irec-:ema,

    $mas

    direc-nea deI baio,bus eseccin.

    de da-nles, eslesde obus se

    s ADOn infor-acia los

    y direcciones

    curco prctico sobre Microcontrotadores tklZt #

  • Los tnict-ot rt'gcesadoL'es

    Figura 2.27 Conexin de la tarjeta programadoratarjeta programadora. En la figura 2.27 se ilustrala forma de conectar esta tarjeta a la tarjeta pro-cesadora. Cuando el interruptor S1 de esta lti-ma se sita en posicin 'RESET", las lneas dedatos y direcciones ADO hasta AD7 del 8085adoptan el estado de alta impedancia y quedanflotantes. Lo mismo sucede con las lneas de con-trol ALE, \fR, RD e IO/M. La lnea RESET INdel 8085 es de nivel bajo.

    Bajo estas condiciones, desde la tar-jeta programadora podemos acceder libre-mente a la RAM del 8155 y escr ibir en lamisma el programa que debe ejecutar elmicroprocesador. As mismo, podemosdireccionar cualquier posicin de memo-ria y leer su contenido. Una vez cargadoel programa, el control del 8155 deberetornar al 8085 para que este ltimolo ejecute (Sl = "RUN"). En la figura2.28 observamos el aspecto fsico delsistema mnimo desarrollado alrede-dor del microprocesador 8085 y delcircui to integrado 8l 55.

    En esta leccin se ha hecho un repasogeneral de los aspectos ms importan-tes relativos al mundo de los micropro-

    cesadores. Hemos analizado su arquitectura in-terna, su firncionamiento y la forma de interco-nectarlos dentro de un sistema para que puedanejecutar tareas que involucren el manejo de va-riables reales y cierto grado de inteligencia. He-mos visto que estos dispositivos requieren decomponentes adicionales para ejecutar una tareaespecfica y que poseen las facilidades para direc-cionar o manejar gran cantidad de perifericoscomo memorias, puertos y muchos otros dispo-siwos. Debido a.esta capacidad, los microproce-sadores son el elemento fundamental dentro delos equipos de computacin modernos, dondese maneian enormes cantidades de memoria ygran variedad de perifericos.

    Los microcontroladores son dispositivos elec-trnicos que agrupan en un solo circuito integra-do todas estas caractersticas, aunque con ciertalimitaciones de memoriay periftricos. Sin embar-go, su funcionamiento interno sigue siendo bsi-camente el mismo. Por esta razn hemos queridoentregar esta corta introduccin a los micropro-cesadores, para dar una idea de todo el desarrollotecnolgico que involucra esta tecnologa y sentarlas bases para el estudio de estos elementos.

    Visualizacin de los datos Tarjeta procesadora

    Tarjeta programadora Tarjetas de l/0

    f,

    $

  • in-'co-

    dan\-a-

    He-rdearea

    .rec-'icossPo-'oce-

    odernderia y

    ^t^^

  • Los ln lctccctrLt'o Lad-ol-s

    Al analizar los sistemas basados en micro-procesadores mostrados en las lecciones anterio-res, se puede deducir que la estructura de un sis-tema de microcomputadora para aplicaciones demedicin o control, tiene un carcter constante,es decir, siempre existir esa misma estructura(CPU, memorias, puertos, buses, etc.). No esdifcil comprender, entonces, porqu los fabri-cantes de circuitos integrados decidieron produ-cir un supercomponente que contenga todos loselementos de una computadora en un solo cir-cuito integrado.

    A mediados de los aos 70, los fabricantes decircuitos integados dieron a conocer un nuevo dis-positivo denominado microcontrolador el cual con-tena toda la estrucnrra de una microcomputadora,es decir, unidad de proceso (CPU), memoria RAM,memoria ROM y circuitos de entrada./salida. El pri-mer dispositivo de esta naturaleza fue lanzado porTexas Instruments y se denomin TMS 1 000, el cualfue el primer microprocesador que inclu suficien-te RAM y ROM para el desarollo de aplicaciones.

    El microcontrolador se concibi comoun disposit ivo programable que puede eje-

    Entradas Salidas

    Figura 3,1 ldea general de un microcontrolador

    cutar un sinnmero de tareas y procesos.Desde ese momento, el diseo de productoselectrnicos cambi radicalmente. Circui toslgicos, manejo de perifricos, temporizado-res y estructura de computadoras, todo pro-gramable y alojado en un solo circuito inte-grado; es decir , una pequea computadorapara todas las apl icaciones.

    O

    _O

    EGo--

    6ox=-G

    '==

    C-);-

    &t.:.

    Microconolador

    Dispositivos de entrada

    Figura 3.2 Diagrama general de un sistema basadl en un micrlcontrolacllr

    Curco prctico sobre Microcontroladores

    +5V (Fuente de alimentacion)

    Dispositivos de salida

    34

  • - i ] :ora. para un diseador. la idea de una:r- :rocomputadora. en api icaciones de conrrol o=: ia tabricacin masiva de aparatos modernos,,.=

    "imiia al esquema mostrado en la figura 3.1,

    :::r,ie tenemos una fuente de alimentacin, un:-::uiro de rel