El Mundo de Los Microcontroladores - Capítulo 1 - Libro_ Microcontroladores PIC - Programación en...

Post on 04-Oct-2015

38 views 4 download

description

Resena que indica la composicion de un microcontrolador y su funcionamiento

Transcript of El Mundo de Los Microcontroladores - Capítulo 1 - Libro_ Microcontroladores PIC - Programación en...

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 1/20

    TOC Capitulo1 Capitulo2 Captulo3 Captulo4 ApndiceA

    ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    Captulo1:Mundodelosmicrocontroladores

    Lasituacinactualenelcampodelosmicrocontroladoressehaproducidograciasaldesarrollodelatecnologadefabricacindeloscircuitosintegrados.Estedesarrollohapermitidoconstruirlascentenasdemilesdetransistoresenunchip.Estofueunacondicinpreviaparalafabricacindeunmicroprocesador.Lasprimerasmicrocomputadorassefabricaronalaadirlesperifricosexternos,talescomomemoria,lneasdeentrada/salida,temporizadoresuotros.Elincrementoposteriordeladensidaddeintegracinpermiticrearuncircuitointegradoquecontenatantoalprocesadorcomoperifricos.Asescmofuedesarrolladalaprimeramicrocomputadoraenunsolochip,denominadamstardemicrocontrolador.

    1.1Introduccin1.2Nmeros,nmeros,nmeros...1.3Detallesimportantes1.4MicrocontroladoresPIC

    Losprincipiantesenelectrnicacreenqueunmicrocontroladoresigualaunmicroprocesador.Estonoescierto.Difierenunodelotroenmuchossentidos.Laprimeraylamsimportantediferenciaessufuncionalidad.Parautilizaralmicroprocesadorenunaaplicacinreal,sedebedeconectarconotroscomponentes,enprimer lugarcon lamemoria.Aunqueelmicroprocesadorseconsideraunamquinadecomputacin poderosa, no est preparado para la comunicacin con los dispositivos perifricos que se le conectan. Para que elmicroprocesadorsecomuniqueconalgnperifrico,sedebenutilizarloscircuitosespeciales.Aseraenelprincipioyestaprcticasiguevigenteenlaactualidad.

    Porotrolado,almicrocontroladorselediseadetalmaneraquetengatodaslascomponentesintegradasenelmismochip.Nonecesitadeotroscomponentesespecializadosparasuaplicacin,porquetodosloscircuitosnecesarios,quedeotramaneracorrespondanalosperifricos,yaseencuentranincorporados.Asseahorratiempoyespacionecesarioparaconstruirundispositivo.

    Para entender con ms facilidad las razones del xito tan grande de los microcontroladores, vamos a prestar atencin al siguienteejemplo.Haceunos10aos,disearundispositivoelectrnicodecontroldeunascensordeunedificiodevariospisoseramuydifcil,inclusoparaunequipodeexpertos.Hapensadoalgunavezenqurequisitosdebecumplirunsimpleascensor?Cmolidiarconlasituacin cuandodosomspersonas llamanal ascensoralmismo tiempo?Cul llamada tiene laprioridad?Cmosolucionar lascuestionesdeseguridad,deprdidadeelectricidad,defallos,deusoindebido?Loquesucededespusderesolverestosproblemasbsicosesunprocesometiculosodedisear losdispositivosadecuadosutilizandoungrannmerode loschipsespecializados.Esteprocesopuedetardarsemanasomeses,dependiendodelacomplejidaddeldispositivo.Cuandohayaterminadoelproceso,llegalahoradedisearunaplacadecircuito impresoydemontareldispositivo.Undispositivoenorme!Esotrotrabajodifcilytardado.Porltimo,cuando todo est terminado y probado adecuadamente, pasamos al momento crucial y es cuando uno se concentra, respiraprofundamenteyenciende la fuentedealimentacin.Estosueleserelpuntoenelque la fiestaseconvierteenunverdadero trabajopuestoquelosdispositivoselectrnicoscasinuncafuncionanapropiadamentedesdeelinicio.Prepreseparamuchasnochessindormir,correcciones,mejoras...ynoseolvidedequetodavaestamoshablandodecmoponerenmarchaunsimpleascensor.

    Cuandoeldispositivofinalmenteempieceafuncionarperfectamenteytodoelmundoestsatisfecho,ylepaguenporeltrabajoquehahecho,muchascompaasdedesarrolloestarninteresadasensutrabajo.Porsupuesto,sitienesuerte,cadadaletraerunaofertadetrabajodeunnuevoinversionista.Sinembargo,silorequierenparatrabajarenelcontroldeloselevadoresdeunnuevoedificioquetienecuatropisosmsdelosqueyamanejasusistemadecontrol.Sabecmoproceder?Creeacasoquesepuedencontrolarlasdemandasdesusclientes?Pensamosqueustedvaaconstruirundispositivouniversalquesepuedeutilizarenlosedificiosde4a40pisos,unaobra

    FeaturedDevelopmentTools

    EasyPICv7DevelopmentSystem

    EasyPICv7istopsellingPICDevelopmentBoardfor250MicrochipPICMCUsinDIPpackaging.ItfeaturesUSB2.0programmer/debuggerandover17essentialmodulesnecessaryindevelopment.BoardcomeswithPIC18F45K22.[moreinfo]

    Login|Cart(0)

    Products Solutions Store Distributors Libstock ContactUs searchhere

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 2/20

    maestradeelectrnica.Bueno,inclusosiustedconsigueconstruirunajoyaelectrnica,suinversionistaleesperarardelantedelapuertapidiendounacmaraenelascensorounamsica relajanteencasode fallodeascensor.Ounascensorcondospuertas.De todosmodos, la ley deMurphy es inexorable y sin duda usted no podr tomar ventaja a pesar de todos los esfuerzos que ha hecho. Pordesgracia,todoloquesehadichohastaahorasucedeenlarealidad.Estoesloquededicarsealaingenieraelectrnicarealmentesignifica.Esascomosehacanlascosashastaaparicindelosmicrocontroladoresdiseadospequeos,potentesybaratos.Desdeesemomentosuprogramacindejdeserunaciencia,ytodotomotradireccin...

    Eldispositivoelectrnicocapazdecontrolarunpequeosubmarino,unagraounascensorcomoelanteriormentemencionado,ahoraest incorporado en un slo chip. Los microcontroladores ofrecen una amplia gama de aplicaciones y slo algunas se explorannormalmente. Le toca a usted decidir qu quiere que haga el microcontrolador y cargar un programa en l con las instruccionesapropiadas.Antesdeencendereldispositivoesrecomendableverificarsufuncionamientoconayudadeunsimulador.Sitodofuncionacomoesdebido,incorporeelmicrocontroladorenelsistema.Sialgunaveznecesitacambiar,mejoraroactualizarelprograma,hgalo.Hastacundo?Hastaquedarsatisfecho.Esopuederealizarsesinningnproblema.

    Sabaustedque todas laspersonaspuedenserclasificadasenunode10grupos,en losqueestn familiarizadosconelsistemadenumeracinbinarioyen losquenoestn familiarizadosconl.Sinoentendi loanteriorsignificaque todavapertenecealsegundogrupo.Sideseacambiarsuestado,leaelsiguientetextoquedescribebrevementealgunosdelosconceptosbsicosutilizadosmstardeenestelibro(sloparaestarsegurodequeestamoshablandoenlosmismostrminos).

    1.2NMEROS,NMEROS,NMEROS...

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 3/20

    Lamatemticaesunagranciencia!Todoestanlgicoysimple...Eluniversodelosnmerossepuededescribirconslodiezdgitos.Noobstante,realmentetienequeseras?Necesitamosexactamenteesos10dgitos?Porsupuestoqueno,esslocuestindelhbito.Acurdesedelasleccionesdelaescuela.Porejemplo,qusignificaelnmero764?Cuatrounidades,seisdecenasysietecentenas.Muysimple!Sepodraexpresardeunaformamsdesarrollada?Porsupuestoques:4+60+700.Anmsdesarrollado?S:4*1+6*10+7*100.Podraestenmeroparecerunpocomscientfico?Larespuestaessotravez:4*100+6*101+7*102.Qusignificaesto realmente? Por qu utilizamos exactamente estos nmeros 100, 101 y 102 ? Por qu es siempre el nmero 10? Es porqueutilizamos10dgitosdiferentes(0,1,2...8,9).Enotraspalabras,esporqueutilizamoselsistemadenumeracinenbase10,esdecirelsistemadenumeracindecimal.

    SISTEMADENUMERACINBINARIO

    Qupasarasiutilizramosslodosnmeros0y1?Sislopudiramosafirmar(1)onegar(0)quealgoexiste.Larespuestaesnadaespecial,seguiramosutilizandolosmismosnmerosdelamismamaneraqueutilizamoshoyenda,noobstanteellospareceranunpocodiferentes.Porejemplo:11011010.Cuntassonrealmente11011010pginasdeunlibro?Paraentenderlo,sigalamismalgicacomoenelejemploanterior,peroenelordeninvertido.Tengaencuentaquesetratadearitmticaconslodosdgitos0y1,esdecir,delsistemadenumeracinenbase2(sistemadenumeracinbinario).

    Evidentemente,setratadelmismonmerorepresentadoendossistemasdenumeracindiferentes.Lanicadiferenciaentreestasdosrepresentacionesyaceenelnmerodedgitosnecesariosparaescribirunnmero.Undgito(2)seutilizaparaescribirelnmero2enelsistemadecimal,mientrasquedosdgitos(1y0)seutilizanparaescribiraquelnmeroenelsistemabinario.Ahoraestdeacuerdoquehay10gruposdegente?Bienvenidoalmundodelaaritmticabinaria!Tienealgunaideadedndeseutiliza?Exceptoenlascondicionesdelaboratorioestrictamentecontroladas,loscircuitoselectrnicosmscomplicadosnopuedenespecificarconexactitudladiferenciaentredosmagnitudes(dosvaloresdevoltaje,porejemplo),sisondemasiadopequeos(mspequeosqueunospocosvoltios).Laraznson losruidoselctricosy fenmenosquesepresentandentrode loque llamamos entornode trabajoreal(algunosejemplosdeestosfenmenossonloscambiosimprevisiblesdelatensindealimentacin,cambiosdetemperatura,toleranciaalos valores de los componentes etc...) Imagnese una computadora que opera sobre nmeros decimales al tratarlos de la siguientemanera:0=0V,1=5V,2=10V,3=15V,4=20V...9=45V!?

    Alguiendijobateras?

    Unasolucinmuchomsfcilesunalgicabinariadonde0indicalaausenciadevoltaje,mientrasque1indicalapresenciadevoltaje.Esmsfcildeescribir0o1envezdenohayvoltajeohayvoltaje.Medianteelcerolgico(0)yunolgico(1)laelectrnicaseenfrentaperfectamentey realizacon facilidad todas lasoperacionesaritmticas.Evidentemente, se tratadeelectrnicaqueen realidadaplicaaritmticaenlaquetodoslosnmerossonrepresentadosconslodosdgitosydondesloesimportantesabersihayvoltajeono.Porsupuesto,estamoshablandodeelectrnicadigital.

    SISTEMADENUMERACINHEXADECIMAL

    Enelprincipiodeldesarrollodelascomputadoraseraevidentequealagentelecostabamuchotrabajarconnmerosbinarios.Poreso,seestableciunnuevosistemadenumeracin,queutilizaba16smbolosdiferentes.Esllamadoelsistemadenumeracinhexadecimal.Estesistemaestcompuestode10dgitosalosqueestamosacostumbrados(0,1,2,3,...9)ydeseisletrasdelalfabetoA,B,C,D,EyF.Culeselpropsitodeestacombinacinaparentementeextraa?Bastaconmirarcmotodoen lahistoriade losnmerosbinariosencajaperfectamenteparalograrunamejorcomprensindeltema.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 4/20

    Elmayornmeroquepuedeserrepresentadocon4dgitosbinarioseselnmero1111.Correspondealnmero15enelsistemadecimal.EnelsistemahexadecimalesenmeroserepresentaconsloundgitoF.Eselmayornmerodeundgitoenelsistemahexadecimal.Sedacuentadelagranutilidaddeestasequivalencias?Elmayornmeroescritoconochodgitosbinariosesalavezelmayornmerodedosdgitosenelsistemahexadecimal.Tengaencuentaqueunacomputadorautilizanmerosbinariosde8dgitos.Acasosetratadeunacasualidad?

    CDIGOBCD

    ElcdigoBCD(BinaryCodedDecimalCdigobinariodecimal)esuncdigobinarioutilizadopararepresentaralosnmerosdecimales.Consisteennmerosbinariosde4dgitosquerepresentanlosprimerosdiezdgitos(0,1,2,3...8,9).Aunquecuatrodgitospuedenhacer16combinacionesposiblesentotal,elcdigoBCDnormalmenteutilizaalasprimerasdiez.

    CNVERSINDESISTEMASDENUMERACIN

    Elsistemadenumeracinbinarioeselqueutilizanlosmicrocontroladores,elsistemadecimaleselquenosresultamscomprensible,mientrasqueelsistemahexadecimalpresentaunbalanceentrelosdos.Poreso,esmuyimportanteaprendercmoconvertirlosnmerosdeunsistemadenumeracinaotro,porejemplo,cmoconvertirunaseriedecerosyunosaunaformaderepresentacincomprensibleparanosotros.

    ConversindeNmerosBinariosaDecimales

    Losmismosdgitosenunnmerobinariotienenponderacionesdiferentesloquedependedesusposicionesdentrodelnmeroqueestnrepresentando.Adems,cadadgitopuedecontener1o0,ysuponderacinsepuededeterminarcon facilidadal contarsuposicinempezandoporladerecha.Parahacerunaconversindeunnmerobinarioadecimalesnecesariomultiplicarlosdgitos(0o1)consuponderacindeposicin(20,21,22,23etc.)ysumartodoslosresultados.Lamagiadelaconversindeunnmerobinarioadecimalfuncionademaravilla...Tieneduda?Veamoselsiguienteejemplo:

    Cabedestacarqueesnecesarioutilizarslodosdgitosbinariospararepresentara todos losnmerosdecimalesde0a3.Para losnmerosmayores,sedebenutilizarlosdgitosbinariosadicionales.Porconsiguiente,pararepresentarlosnmerosde0a7esnecesarioutilizartresdgitosbinarios,pararepresentarlosnmerosde0a15cuatrodgitosetc.Dichodemanerasencilla,elmayornmerobinarioquesepuederepresentarutilizandondgitosseobtienealelevarlabase2alapotencian.Luego,alresultadoseleresta1.Porejemplo,sin=4:

    241=161=15

    Porconsiguiente,alutilizar4dgitosbinarios,esposiblerepresentarlosnmerosdecimalesde0a15,queson16valoresdiferentesentotal.

    CONVERSINDENMEROSHEXADECIMALESADECIMALES

    Para realizarunaconversindeunnmerohexadecimaladecimal,cadadgitohexadecimaldebesermultiplicadoconelnmero16elevadoalvalordesuposicin.Despus,elresultadoobtenidosedebesumar.Porejemplo:

    CONVERSINDENMEROSHEXADCIMALESABINARIOS

    No es necesario realizar ningn clculo para convertir un nmero hexadecimal a binario. Los dgitos hexadecimales se reemplazansimplementeporloscuatrodgitosbinariosapropiados.Yaqueeldgitohexadecimalmximoesequivalentealnmerodecimal15,esnecesarioutilizarcuatrodgitosbinariospararepresentarundgitohexadecimal.Porejemplo:

    Lasiguienteestablacomparativaquecontienelosvaloresdenmeros0255representadosentressistemasdenumeracindiferentes.Estoesprobablementelamaneramsfcildeentenderlgicacomnaplicadaatodoslossistemasdenumeracin.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 5/20

    MARCARLOSNMEROS

    Elsistemadenumeracinhexadecimal,juntoconlossistemasbinarioydecimal,seconsideranlosmsimportantesparanosotros.Esfcilrealizar una conversin de cualquier nmero hexadecimal a binario, ademses fcil de recordarlo.Sin obstante, estas conversionespuedenprovocarunaconfusin.Porejemplo,qusignificaenrealidadlasentencia:Esnecesariocontar110productosenunacadenademontaje?Dependiendodelsistemaencuestin (binario,decimalohexadecimal),el resultadopodraser6,110o272productos,respectivamente.Porconsiguiente,paraevitarequivocaciones,diferentesprefijosysufijosseaadendirectamentea losnmeros.Losprefijos$y0xmarcanlosnmeroshexadecimales.Porejemplo,elnmerohexadecimal10AFsepuedeescribircomo$10AFo0x10AF.Demanerasimilar,losnmerosbinariosnormalmenteobtienenelprefijo%.Siunnmeronotienenisufijoniprefijoseconsideradecimal.Desafortunadamente,estaformademarcarlosnmerosnoesestandarizada,porconsiguientedependedelaaplicacinconcreta.

    BIT

    Lateoradicequeunbiteslaunidadbsicadeinformacin...Vamosaolvidarloporunmomentoydemostrarquesesoenlaprctica.Larespuestaesnadaespecialunbitesunslodgitobinario.Similaraunsistemadenumeracindecimalenelquelosdgitosdeunnmeronotienenlamismaponderacin(porejemplo,losdgitosenelnmero444sonlosmismosperotienenlosvaloresdiferentes),elsignificadodeunbitdependedelaposicinquetieneennmerobinario.Enestecasonotienesentidohablardeunidades,centenasetc.enlosnmerosbinarios,susdgitossedenominanelbitcero(elprimerbitaladerecha),elprimerbit(elsegundobitaladerecha)etc.Adems,yaqueelsistemabinarioutilizasolamentedosdgitos(0y1),elvalordeunbitpuedeser0o1.Noseconfundasiseencuentraconunbitquetieneelvalor4,16o64.Sonlosvaloresrepresentadosenelsistemadecimal.Simplemente,noshemosacostumbradotantoautilizarlosnmerosdecimalesqueestasexpresionesllegaronasercomunes.Seracorrectodecirporejemplo,elvalordelsextobitencualquiernmerobinarioequivalealnmerodecimal64.Perotodossomoshumanosylosviejoshbitosmuerendifcilmente.Adems,cmolesuenanmerounounocerounocero...?

    BYTE

    Unbyteconsisteen8bitscolocadosunojuntoalotro.Siunbitesundgito,eslgicoquelosbytesrepresentenlosnmeros.Todaslasoperacionesmatemticassepuedenrealizarpormediodeellos,comopormediodelosnmerosdecimalescomunes.Similaralosdgitosdecualquiernmero,losdgitosdeunbytenotienenelmismosignificado.Elbitdelextremoizquierdotienelamayorponderacin,poresoesdenominadoelbitmssignificativo(MSB).Elbitdelextremoderechotienelamenorponderacin,poresoesdenominadoelbitmenossignificativo(LSB).Puestoquelos8dgitosdeunbytesepuedencombinarde256manerasdiferentes,elmayornmerodecimalquesepuederepresentarconunbytees255(unacombinacinrepresentauncero).Unnibbleouncuartetorepresentaunamitaddebyte.Dependiendodelamitaddelnmeroencuestin(izquierdaoderecha),selesdenominanibblesaltosobajos,respectivamente.

    Ustedseguramentehapensadoalgunavezencmoeslaelectrnicadentrodeuncircuito integradodigital,unmicrocontroladorounmicroprocesador.Cmosonloscircuitosquerealizanlasoperacionesmatemticascomplicadasytomandecisiones?Sabaquesusesquemas,aparentementecomplicadasconsistenenslounospocoselementosdiferentes,denominadoscircuitoslgicosocompuertaslgicas?

    1.3DETALLESIMPORTANTES

    ElfuncionamientodeestoselementosesbasadoenlosprincipiosestablecidosporelmatemticobritnicoGeorgeBooleenlamitaddelsiglo19esdecir,antesdelainvencindelaprimerabombilla.Laideaprincipaleradeexpresarlasformaslgicaspormediodelasfuncionesalgebraicas.TalideaprontosetransformenunproductoprcticoqueseconvirtimstardeenloquehoyendaconocemoscomocircuitoslgicosY(AND),O(OR)oNO(NOT).ElprincipiodesufuncionamientoesconocidocomoalgebradeBoole.

    CIRCUITOSLGICOS

    Algunas instrucciones de programa funcionan de lamismamanera que las compuertas lgicas. A continuacin vamos a explicar elprincipiodesufuncionamiento.

    CompuertaY(AND)

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 6/20

    Una compuerta lgica Y dispone de dos o msentradasydeunasalida.Enestecasolacompuertautilizada dispone de slo dos entradas. Un unolgico (1) aparecer en su salida slo en caso dequeambasentradas(AyB)seanllevadasaalto(1).La tabla a la derechamuestra la relacinentre lasentradasysalidasdelacompuertaY.

    Elprincipiodefuncionamientoeselmismocuandolacompuerta disponga de ms de dos entradas: lasalidaproporcionaununolgico(1)slositodaslasentradas son llevadas a alto (1). Cualquier otracombinacin de voltajes de entrada proporcionarun cero lgico (0) en su salida. Utilizada en elprograma,laoperacinYlgicoesrealizadaporunainstruccindeprograma,de laquevamosahablarms tarde. Por ahora basta con conocer que Ylgicoenunprogramaserefierealarealizacindeeste tipo de operacin sobre los bitscorrespondientesdedosregistrosdiferentes.

    Demanerasimilar,lacompuertaOtambindisponede dos o ms entradas y de una salida. Si lacompuerta dispone de slo dos entradas, esaplicable losiguiente: lasalidaproporcionaununolgico(1)siunauotraentrada(AoB)esllevadaaalto(1).EncasodequelacompuertaOdispongadems de dos entradas, es aplicable lo siguiente: Lasalidaproporcionaununolgico(1)siporlomenosuna entrada es llevada a alto (1). Si todas lasentradas estn a cero lgico (0), la salida estar acerolgico(0)tambin.

    Enunprograma,laoperacinOlgicoserealizadelamismamaneraquelaoperacinYlgico.

    CompuertaO(OR)

    CompuertaNO(NOT)

    LacompuertalgicaNOdisponedeunasolaentradayunasolasalida,porloquefuncionamuysimplemente.Cuandouncerolgico(0)aparezcaensuentrada,lasalidaproporcionaununolgico(1)yviceversa.Estosignificaqueestacompuertainviertelassealesporsmismasyporesoesdenominadainversor.

    EnelprogramalaoperacinlgicaNOserealizasobreunbyte.Elresultadoesunbyteconlosbitsinvertidos.Silosbitsdeunbyteseconsiderannmero,el valor invertidoesuncomplementoaesenmero.El complementodeunnmeroesel valorqueseaadealnmerohastallegaralmayornmerobinariode8dgitos.Enotraspalabras,lasumadeundgitode8nmerosydesucomplementoessiempre255.

    COMPUERTA XOR (O EXCLUSIVA)

    LacompuertaXOR(OEXCLUSIVA)esunpococomplicadaencomparacinconlasdems.Representaunacombinacindetodaslascompuertasanteriormentedescritas.Lasalidaproporcionaununolgico(1)slosisusentradasestnenestadoslgicosdiferentes.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 7/20

    Enelprograma,estaoperacinseutilizaconfrecuenciaparacomparardosbytes.Larestasepuedeutilizarconelmismopropsito(sielresultadoes0, losbytes son iguales).Adiferenciade la resta, la ventajadeestaoperacin lgicaesquenoesposibleobtener losresultadosnegativos.

    REGISTRO

    Unregistroounaceldadememoriaesuncircuitoelectrnicoquepuedememorizarelestadodeunbyte.

    REGISTROSSFR

    Adiferenciadelosregistrosquenotienenningunafuncinespecialypredeterminada,cadamicrocontroladordisponedeunnmeroderegistrosdefuncionesespeciales(SFR),conlafuncinpredeterminadaporelfabricante.Susbitsestnconectadosaloscircuitosinternosdelmicrocontroladortalescomotemporizadores,convertidoresA/D,osciladoresentreotros.Estosignificaquedirectamentemanejanelfuncionamientodeestoscircuitos,oseadelmicrocontrolador.Imagneseochointerruptoresquemanejanelfuncionamientodeuncircuitopequeodentrodelmicrocontrolador.LosregistrosSFRhacenexactamentelomismo.

    Enotraspalabras,elestadodelosbitsderegistrossefijadentrodeprograma,losregistrosSFRdirigenlospequeoscircuitosdentrodelmicrocontrolador, estos circuitos se conectan por los pines del microcontrolador a un dispositivo perifrico utilizado para... Bueno,dependedeusted.

    PUERTOSDEENTRADA/SALIDA(E/S)

    Parahacertilunmicrocontrolador,hayqueconectarloaundispositivoexterno,osea,aunperifrico.Cadamicrocontroladortieneunooms registros (denominados puertos) conectados a los pines en el microcontrolador. Por qu se denominan como puertos deentrada/salida?Porqueustedpuedecambiarlafuncindecadapincomoquiera.Porejemplo,usteddeseaquesudispositivoenciendayapaguelostressealesLEDsyquesimultneamentemonitoreeelestadolgicode5sensoresobotonesdepresin.Unodelospuertosdebeestarconfiguradodetalmaneraquehayatressalidas(conectadasalosLEDs)ycincoentradas(conectadasalossensores).Esoserealizasimplementepormediodesoftware,loquesignificaquelafuncindealgnpinpuedesercambiadaduranteelfuncionamiento.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 8/20

    Unadelascaractersticasmsimportantesdelospinesdeentrada/salida(E/S)eslacorrientemximaquepuedenentregar/recibir.EnlamayoradelosmicrocontroladoreslacorrienteobtenidadeunpinessuficienteparaactivarunLEDuotrodispositivodebajacorriente(1020mA).Otracaractersticaimportantedelospinesesquepuedendisponerdelosresistorespullup.Estosresistoresconectanlospinesalpolopositivodelvoltajedelafuentedealimentacinysuefectosepuedeveralconfigurarelpincomounaentradaconectadaauninterruptormecnicooaunbotndepresin.Lasltimasversionesdelosmicrocontroladorestienenlasresistenciaspullupconfigurablesporsoftware.CadapuertodeE/SnormalmenteestbajoelcontroldeunregistroSFRespecializado,loquesignificaquecadabitdeeseregistrodeterminaelestadodelpincorrespondienteenelelmicrocontrolador.Porejemplo,alescribirununolgico(1)aunbitdelregistrodecontrol(SFR),elpinapropiadodelpuertoseconfiguraautomticamentecomosalida.Esosignificaqueelvoltajellevadoaesepinsepuedeleercomo0o1lgico.Encasocontrario,alescribir0alregistroSFR,elpinapropiadodelpuertoseconfiguracomosalida.Suvoltaje(0Vo5V)correspondealestadodelbitapropiadodelregistrodelpuerto(0o1lgico,respectivamente).

    UNIDADDEMEMORIA

    La unidad dememoria es una parte del microcontrolador utilizada para almacenar los datos. La manera ms fcil de explicarlo escompararloconunarmariograndeconmuchoscajones.Simarcamos loscajonesclaramente,ser fcilaccederacualquieradesuscontenidosalleerlaetiquetaenlapartedelanteradelcajn.Demanerasimilar,cadadireccindememoriacorrespondeaunalocalidaddememoria.Elcontenidodecualquierlocalidadsepuedeleeryselepuedeaccederaldireccionarla.Lamemoriasepuedeescribirenlalocalidadoleer.

    Hayvariostiposdememoriadentrodelmicrocontrolador:

    MemoriaROM(ReadOnlyMemory)memoriadeslolectura

    LamemoriaROMseutilizaparaguardarpermanentementeelprogramaqueseestejecutando.Eltamaodeprogramaquesepuedeescribirdependedeltamaodeestamemoria.Losmicrocontroladoresactualesnormalmenteutilizaneldireccionamientode16bits,quesignificaquesoncapacesdedireccionarhasta64Kbdememoria,osea65535localidades.Porejemplo,siustedesprincipiante,suprogramaexcederpocasvecesellmitedevarioscientosdeinstrucciones.HayvariostiposdememoriaROM.

    ROMdemscara(enmascarada)MROM

    LaROMenmascaradaesuntipodeROMcuyocontenidoesprogramadoporelfabricante.Eltrminodemscaravienedelprocesodefabricacin,dondelaspartesdelchipseplasmanenlasmascarasutilizadasduranteelprocesodefotolitografa.Encasodefabricacindegrandesseries,elprecioesmuybajo.Olvidelaideademodificarla...

    OTPROM(OneTimeProgrammableROM)ROMprogramableunasolavez

    Lamemoriaprogramableunasolavezpermitedescargarunprogramaenelchip,perocomodicesunombre,unasolavez.Sisedetectaunerrordespusdedescargarlo,lonicoquesepuedehaceresdescargarelprogramacorrectoenotrochip.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/ 9/20

    UVEEPROM(ROMErasableprogrammableROM)ROMprogramableborrableporrayosultravioleta

    Elencapsuladodeestemicrocontroladortieneunaventanareconocibleenlapartealta.Esopermiteexponerlasuperficiedelchipdesilicioalaluzdeultravioletayborrarelprogramacompletamenteenvariosminutos.Luegoesposibledescargarunnuevoprogramaenl.Lainstalacindeestaventanaescomplicada,loqueporsupuestoafectaalprecio.Desdenuestropuntodevista,desgraciadamente,demaneranegativa...

    MemoriaFlash

    Estetipodememoriaseinventenlosaos80enloslaboratoriosdelacompaaINTEL,comoformadesarrolladadelamemoriaUVEPROM. Ya que es posible escribir y borrar el contenido de esta memoria prcticamente un nmero ilimitado de veces, losmicrocontroladoresconmemoriaFlashsonperfectosparaestudiar,experimentarypara la fabricacinenpequeaescala.Por lagranpopularidaddeestamemoria,lamayoradelosmicroconroladoressefabricancontecnologaflashhoyenda.Siustedvaacomprarunmicrocontrolador,steesendefinitivalaopcinperfecta!

    MEMORIARAM(RandomAcMemoriaRAM(RandomAccessMemory)memoriadeaccesoaleatorio

    Alapagarlafuentedealimentacin,sepierdeelcontenidodelamemoriaRAM.Seutilizaparaalmacenartemporalmentelosdatosylosresultadosinmediatoscreadosyutilizadosduranteelfuncionamientodelmicrocontrolador.Porejemplo,sielprogramaejecutalaadicin(decualquiercosa)esnecesariotenerunregistroquerepresentaloquesellamasumaenvidacotidiana.Contalpropsito,unodelosregistrosdelaRAMesdenominadosumayseutilizaparaalmacenarlosresultadosdelaadicin.

    MemoriaEEPROM(ElectricallyErasableProgrammableROM)ROMprogramableyborrableelctricamente

    ElcontenidodelaEEPROMsepuedecambiarduranteelfuncionamiento(similaralaRAM),perosequedapermanentementeguardadodespusdelaprdidadelafuentedealimentacin(similaralaROM).Porlotanto,laEEPROMseutilizaconfrecuenciaparaalmacenarlosvalorescreadosduranteelfuncionamiento,quetienenqueestarpermanentementeguardados.Porejemplo,siustedhadiseadounallaveelectrnicaounalarma,seraestupendopermitiralusuariocreareintroducirunacontraseaporsucuenta.Porsupuesto,lanuevacontraseatienequeestarguardadaalapagarlafuentedealimentacin.EntalcasounasolucinperfectaeselmicrocontroladorconunaEEPROMembebida.

    INTERRUPCIN

    Lamayoradeprogramasutilizaninterrupcionesduranteejecucindeprogramaregular.Elpropsitodelmicrocontroladorgeneralmenteconsisteenreaccionaraloscambiosensuentorno.Enotraspalabras,cuandoocurrealgo,elmicrocontroladorreaccionadealgunamanera...Porejemplo,alapretarelbotndelmandoadistancia,elmicrocontroladorloregistrayrespondealcomandocambiandodecanal,subiendoobajandoelvolumenetc.Sielmicrocontroladorpasarlamayoradeltiempocomprobandovariosbotonessinpararlashoras,losdas,estonoseranadaprctico.Porlotanto,elmicrocontroladoraprendiuntrucodurantesuevolucin.Envezdeseguircomprobandoalgnpinobit,elmicroconroladordejasutrabajodeesperaraunexpertoquereaccionarsloencasodequesucedaalgodignodeatencin.LasealqueinformaalprocesadorcentralacercadetalacontecimientosedenominaINTERRUPCIN.

    BUS

    Elbusestformadopor8,16omscables.Haydostiposdebuses:elbusdedireccionesyelbusdedatos.Elbusdedireccionesconsisteentantaslneascomoseannecesariasparadireccionarlamemoria.SeutilizaparatransmitirladireccindelaCPUalamemoria.Elbusdedatosestananchocomolosdatos,enestecasoesde8bitsocablesdeancho.Seutilizaparaconectartodosloscircuitosdentrodelmicrocontrolador.

    UNIDADCENTRALDEPROCESAMIENTO(CentralprocessorunitCPU)

    Comoindicasunombre,estoesunaunidadquecontrolatodoslosprocesosdentrodelmicrocontrolador.Consisteenvariasunidadesmspequeas,delasquelasmsimportantesson:

    Decodificadordeinstrucciones.EslapartequedescodificalasinstruccionesdelprogramayaccionaotroscircuitosbasndoseenestoUnidadlgicaaritmtica(ArithmeticalLogicalUnit ALU) realiza todas lasoperacionesmatemticasy lgicassobre datos. El conjunto de instrucciones que es diferente para cada familia de microcontrolador expresa lascapacidadesdeestecircuitoyAcumuladororegistrodetrabajo.EsunregistroSFRestrechamenterelacionadoconelfuncionamientodelaALU.Es un tipo de escritorio de trabajo utilizado para almacenar todos los datos sobre los que se debe realizar algunaoperacin (sumar, mover). Tambin almacena los resultados preparados para el procesamiento futuro. Uno de losregistros SFR,denominadoRegistroStatus (PSW),estestrechamente relacionadoconelacumulador.Muestraelestado de un nmero almacenado en el acumulador (el nmero es mayor o menor que cero etc.) en cualquierinstantedado.Elacumuladoresdenominadoregistrodetrabajo(workingregister),osea,registroWosolamenteW.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 10/20

    COMUNICACINSERIE

    Laconexinparalelaentreelmicrocontroladorylosperifricosatravsdelospuertosdeentrada/salidaesunasolucinperfectaparalasdistanciascortashastavariosmetros.Noobstante,cuandoesnecesarioestablecercomunicacinentredosdispositivosalargasdistanciasnoesposibleutilizarlaconexinparalela.Envezdeeso,seutilizalaconexinenserie.

    Hoyenda,lamayoradelosmicrocontroladoresllevanincorporadosvariossistemasdiferentesparalacomunicacinenserie,comounequipoestndar.Culdeestossistemasseutilizarenuncasoconcreto,dependedemuchosfactores,delosquemsimportantesson:

    Concuntosdispositivoselmicrocontroladortienequeintercambiarlosdatos?Culeslavelocidaddelintercambiodedatosobligatoria?Culesladistanciaentrelosdispositivos?Esnecesariotransmitiryrecibirlosdatossimultneamente?

    UnadelascosasmsimportantesencuantoalacomunicacinenserieeselProtocoloquedebeserestrictamenteobservado.Esunconjuntodereglasqueseaplicanobligatoriamenteparaquelosdispositivospuedaninterpretarcorrectamentelosdatosqueintercambianmutuamente.Afortunadamente,losmicrocontroladoresseencargandeesoautomticamente,asqueeltrabajodeprogramador/usuarioesreducidoalaescrituraylecturadedatos.

    VELOCIDADDETRANSMISINDEDATOS

    Lavelocidaddetransmisindedatos(datarate)eseltrminoutilizadoparadenotarelnmerodebitstransmitidosporsegundo[bps].Fjesequeestetrminoserefiereabits,ynoabytes!Elprotocolonormalmenterequierequecadabytesetransmitajuntoconvariosbitsdecontrol.Esoquieredecirqueunbyteenunflujodedatosserialpuedeconsistiren11bits.Porejemplo,sivelocidaddetransmisinseriales300bpsunmximode37yunmnimode27bytessepuedentransmitirporsegundo.

    Lossistemasdecomunicacinserialmsutilizadosson:

    I2C(InterIntegratedCircuit)CircuitoInterIntegrado

    Circuitointerintegradoesunsistemaparaelintercambiodedatosserialentrelosmicrocontroladoresyloscircuitosintegradosdenuevageneracin.Seutilizacuandoladistanciaentreellosescorta(elreceptoryeltransmisorestnnormalmenteenlamismaplacadecircuitoimpreso).Laconexinseestablecepormediodedoslneasunaseutilizaparatransmitirlosdatos,mientrasquelaotraseutilizaparalasincronizacin(lasealdereloj).Comosemuestraenlafigura,undispositivoessiempreelprincipal(mastermaestro),elquerealizaeldireccionamientodeunchipsubordinado(slaveesclavo)antesdequeseinicielacomunicacin.Deestamaneraunmicrocontroladorpuedecomunicarsecon112dispositivosdiferentes.Lavelocidaddetransmisindedatosesnormalmente100Kb/seg(elmodoestndar)o 10 Kb/seg (modo de velocidad de transmisin de datos baja). Recientemente han aparecido los sistemas con la velocidad detransmisindedatosde3.4Mb/sec.LadistanciaentrelosdispositivosquesecomunicanporelbusI2Cestlimitadaaunosmetros.

    SPI(SERIALPERIPHERALINTERFACEBUS)BUSSERIALDEINTERFAZDEPERIFRICOS

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 11/20

    Unbusserialdeinterfazdeperifricosesunsistemaparalacomunicacinserialqueutilizatresdecuatrolneaspararecibirlosdatos,para transmitir losdatos,parasincronizary (opcional)paraseleccionareldispositivoconelquesecomunica.Estoes laconexin fullduplex,loquesignificaquelosdatosseenvanyserecibensimultneamente.LavelocidaddetransmisindedatosmximaesmayorqueenelmdulodeconexinI2C.

    UART(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER)TRANSMISORRECEPTORASNCRONOUNIVERSAL

    Este tipodeconexinesasncrona, loquesignificaquenoseutilizauna lneaespecialpara transmitir la sealde reloj.Enalgunasaplicacionesesterasgoescrucial(porejemplo,enmandardatosadistanciaporRFoporluzinfrarroja).Puestoqueseutilizaslounalneadecomunicacin,tantoelreceptorcomoeltransmisorrecibenyenvanlosdatosavelocidadmismaquehasidopredefinidaparamantenerlasincronizacinnecesaria.Estoesunamanerasimpledetransmitirdatospuestoquebsicamenterepresentaunaconversindedatosde8bitsdeparaleloaserial.Lavelocidaddetransmisinnoesalta,eshasta1Mbit/sec.

    OSCILADOR

    Los pulsos uniformes generados por el oscilador permiten el funcionamiento armnico y sncrono de todos los circuitos delmicrocontrolador. El oscilador se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico paraestabilizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como osciladorRC). Es importante decir que lasinstruccionesdelprogramanoseejecutanalavelocidadimpuestaporelmismoosciladorsinovariasvecesmsdespacio.Esoocurreporquecadainstruccinseejecutaenvariosciclosdeloscilador.Enalgunosmicrocontroladoressenecesitaelmismonmerodeciclosparaejecutar todas las instrucciones,mientrasqueenotrosel tiempodeejecucinnoeselmismopara todas las instrucciones.Porconsiguiente, si el sistema utiliza el cristal de cuarzo con una frecuencia de 20MHZ, el tiempo de ejecucin de una instruccin deprogramanoes50nS,sino200,400o800nSdependiendodeltipodelmicrocontrolador.

    CIRCUITODEALIMENTACIN

    Hayquemencionardoscosasdignasdeatencinconrelacinalcircuitodelafuentedealimentacindemicrocontroladores:

    Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que elvoltaje de la fuente de alimentacin salga de unos mrgenes debido al ruido elctrico. Como el microcontroladordisponedevarioscircuitosquefuncionananivelesdevoltajediferentes,eseestadopuedecausaruncomportamientodescontrolado.Paraevitarlo,elmicrocontroladornormalmentetieneuncircuitoincorporadoparaelbrownoutreset.Elcircuitoreiniciainmediatamenteelmicrocontroladorsielvoltajedealimentacincaepordebajodellmite.Elpindereset(reinicio),marcado frecuentementeconMCLR (MasterClearReset),sirveparael reinicioexternodelmicrocontroladoralaplicaruncero(0)oununo(1) lgicodependiendodel tipodelmicrocontrolador.Encasodequeelcircuitobrownoutnoestincorporado,unsimplecircuitoexternoparaelbrownoutresetsepuedeconectaralpinMCLR.

    TEMPORIZADORES/CONTADORES

    Elosciladordelmicrocontroladorutiliza cristal de cuarzopara su funcionamiento.Aunquenose tratade la solucinmssimple, haymuchasrazonesparautilizarlo.Lafrecuenciadelosciladoresdefinidaconprecisinymuyestable,asquesiempregeneralospulsosdelmismoancho,loqueloshaceperfectosparamedicindetiempo.Talesosciladoresseutilizanenlosrelojesdecuarzo.Siesnecesariomedireltiempotranscurridoentredoseventos,bastaconcontarlospulsosgeneradosporesteoscilador.Estoesexactamenteloquehaceeltemporizador.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 12/20

    Lamayoradelosprogramasutilizaestoscronmetroselectrnicosenminiatura.GeneralmentesonregistrosSFRde8o16bitscuyocontenidoseaumentaautomticamenteconcadapulso.Unavezquesellenaelregistro,segeneraunainterrupcin!

    Sieltemporizadorutilizaelosciladordecuarzointernoparasufuncionamiento,esposiblemedireltiempoentredoseventos(elvalorderegistroenelmomentodeiniciarlamedicinesT1,enelmomentodefinalizarlamedicinesT2,eltiempotranscurridoesigualalresultadodelarestaT2T1).Silosregistrosseaumentanconlospulsosquevienendelafuenteexterna,taltemporizadorseconvierteenuncontador.Estoesunaexplicacinsimpledesufuncionamiento.Esunpocomscomplicadoenprctica.

    CMOFUNCIONANLOSTEMRPORIZADORES?

    Enprctica,lospulsosgeneradosporelosciladordecuarzosonllevadosalcircuitounavezporcadaciclodemquinadirectamenteoporelpreescalador,loqueaumentaelnmeroenelregistrodeltemporizador.Alincorporaralcuarzoqueoscilaconunafrecuenciade4MHz se aplica lo siguiente:si una instruccin (un ciclo demquina) dura cuatro perodos del oscilador de cuarzo, este nmero sercambiadounmillndevecesporsegundo(cadamicrosegundo).

    Es fcil demedir los intervalos de tiempo cortos de lamanera descrita anteriormente (hasta 256microsegundosporquees elmayornmeroqueunregistropuedecontener).Estaobviadesventajasepuedesuperardevariasmaneras:alutilizarelosciladormslento,pormedioderegistrosconmsbits,delpreescaladorodelainterrupcin.Lasprimerasdossolucionestienenalgunasdebilidadesasqueserecomiendautilizarelpreescaladory/olainterrupcin.

    UTILIZARUNPREESCALADORENELFUNCIONAMIENTODELTEMPORIZADOR

    Unpreescaladoresundispositivoelectrnicoutilizadoparadividirlafrecuenciaporunfactorpredeterminado.Estoquieredecirquesenecesitallevar1,2,4omspulsosasuentradaparagenerarunpulsoalasalida.Lamayoradelosmicrocontroladoresdisponendeunoomspreescaladoresincorporadosysutasadedivisinpuedesercambiadadentrodelprograma.Elpreescaladorseutilizacuandoesnecesariomedirlosperodosdetiempomslargos.

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 13/20

    UTILIZARUNAINTERRUPCINENELFUNCIONAMIENTODELTEMPORIZADOR

    Sielregistrodeltemporizadoresde8bits,elmayornmeroquesepuedeescribirenles255.Enlosregistrosde16bitseselnmero65.535. Si se excede este nmero, el temporizador se reinicia automticamente y el conteo comienza de nuevo en cero. Esto esdenominadodesbordamientoosobreflujo(overflow).Permitidoporelprograma,eldesbordamientopuedeprovocarunainterrupcin,loqueabrecompletamentenuevasposibilidades.Porejemplo,elestadoderegistrosutilizadosparacontarsegundos,minutosodaspuedeserimplementadoenunarutinadeinterrupcin.Elprocesoentero(exceptolarutinadeinterrupcin)sellevaacabointernamente,loquepermitequeloscircuitosprincipalesdelmicrocontroladorfuncionenregularmente.

    La figura anterior describe el uso de una interrupcin en el funcionamiento del temporizador. Al asignarle un preescalador altemporizador,seproducenretrasosdeduracinarbitrariaconmnimainterferenciaenlaejecucindelprogramaprincipal.

    CONTADORES

    Si un temporizador se suministra por los pulsos ingresados por el pin de entrada en el microcontrolador, se produce un contador.Evidentemente,eselmismocircuitoelectrnicocapazdefuncionarendosmodosdiferentes.Lanicadiferenciaesquelospulsosparacontarse ingresanporelpindeentradayquesuduracin(anchura)noesdefinida.Poreso,nosepuedenutilizarparamedicindetiempo,sinoqueseutilizanparaotrospropsitos,porejemplo:contarlosproductosenlacadenademontaje,nmeroderotacionesdelejedeunmotor,pasajerosetc.(dependiendodelsensorutilizado).

    TEMPORIZADORPERROGUARDIN(WATCHDOG)

    ElperroguardinesuntemporizadorconectadoaunosciladorRCcompletamenteindependientedentrodelmicrocontrolador.

    Sielperroguardinesthabilitado,cadavezquecuentahastaelmximovalorenelqueocurreeldesbordamientodelregistrosegeneraunasealdereiniciodelmicrocontroladorylaejecucindeprogramainiciaenlaprimerainstruccin.Elpuntoesevitarqueesoocurraalutilizarelcomandoadecuado.

    Laideasebasaenelhechodequecadaprogramaseejecutaenvariosbucles,mslargosocortos.Silasinstruccionesquereinicianeltemporizadorperroguardinsecolocanenlugaresestratgicosdelprograma,aparteloscomandosqueseejecutanregularmente,elfuncionamientodelperroguardinnoafectaralaejecucindelprograma.Siporcualquierrazn(confrecuenciaporlosruidoselctricos)elcontadordeprogramasequedaatrapadodentrodeunbucleinfinito,elvalordelregistrocontinuaraumentadoporeltemporizadorperroguardinalcanzarelmximovalor,elregistrosedesbordary,aleluya!Ocurreelreinicioyelprogramaserejecutadodesdeelprincipio!

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 14/20

    CONVERTIDORA/D

    Lassealesexternassonmuydiferentesdelasqueentiendeelmicrocontrolador(solamente0Vy5V),asquedebenserconvertidasparaqueelmicrocontroladorpuedaentenderlas.Unconvertidoranalgicodigitalesuncircuitoelectrnicoencargadodeconvertir lassealescontinuasennmerosdigitalesdiscretos.Enotraspalabras,estecircuitoconvierteunnmerorealenunnmerobinarioyseloenvaalaCPUparaserprocesado.Estemduloseutilizaparamedirelvoltajeenelpindeentrada(voltajeanalgico).Elresultadodeestamedicinesunnmero(elvalordigital)utilizadoyprocesadomstardeenelprograma.

    ARQUITECTURAINTERNA

    TodoslosmicrocontroladoresactualesutilizanunodedosmodelosbsicosdearquitecturadenominadosHarvardyvonNeumann.SondosmanerasdiferentesdelintercambiodedatosentrelaCPUylamemoria.

    ARQUITECTURADEVONNEUMANN

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 15/20

    LosmicrocontroladoresqueutilizanlaarquitecturavonNeumanndisponendeunsolobloquedememoriaydeunbusdedatosde8bits.Comotodoslosdatosseintercambianpormediodeestas8lneas,estebusestsobrecargado,ylacomunicacinporsimismaesmuylentaeineficaz.LaCPUpuedeleerunainstruccinoleer/escribirdatosde/enlamemoria.Losdosprocesosnopuedenocurriralavezpuestoquelasinstruccionesylosdatosutilizanelmismobus.Porejemplo,sialgunalneadeprogramadicequeelregistrodelamemoriaRAMllamadoSUMdebeseraumentadoporuno(instruccin:incfSUMA),elmicrocontroladorharlosiguiente:

    ElmismobusdedatosseutilizaparatodasestasoperacionesintermediasalintercambiarlosdatosentrelaCPUylamemoria.

    ARQUITECTURADEHARVARD

    Losmicrocontroladoresqueutilizanestaarquitecturadisponendedosbusesdedatosdiferentes.Unoesde8bitsdeanchoyconectalaCPUconlamemoriaRAM.Elotroconsisteenvariaslneas(12,14o16)yconectaalaCPUylamemoriaROM.Porconsiguiente,laCPUpuedeleerlasinstruccionesyrealizarelaccesoalamemoriadedatosalavez.PuestoquetodoslosregistrosdelamemoriaRAMsonde8bitsdeancho, todos losdatosdentrodelmicrocontroladorquese intercambiansonde lamismaanchura.Duranteelprocesode laescrituradeprograma,slosemanejanlosdatosde8bits.Enotraspalabras,todoloqueustedpodrcambiarenelprogramayaloquepodrafectarserde8bitsdeancho.TodoslosprogramasescritosparaestosmicrocontroladoressernalmacenadosenlamemoriaROMinternadelmicrocontroladordespusdehabersidocompiladosacdigomquina.Noobstante,estaslocalidadesdememoriaROMnotienen8,sino12,14o16bits.4,6o8bitsadicionalesrepresentanunainstruccinqueespecificaalaCPUquhacerconlosdatosde8bits.

    Lasventajasdeestaarquitecturasonlassiguientes:

    Todos losdatosenel programasondeunbyte (8bits) deancho.Comounbusdedatosutilizadopara lecturadeprograma tieneunas lneasms(12,14o16), tanto la instruccincomoeldatosepueden leersimultneamentealutilizar estos bits adicionales. Por eso, todas las instrucciones se ejecutan en un ciclo salvo las instrucciones desaltoquesondedosciclos.Elhechodequeunprograma(laROM)y losdatostemporales(laRAM)estnseparados,permitea laCPUpoderejecutardosinstruccionessimultneamente.Dichodemanerasencilla,mientrasqueserealizalalecturaoescrituradelaRAM(quemarcaelfindeunainstruccin),lasiguienteinstruccinseleepormediodeotrobus.EnlosmicrocontroladoresqueutilizanlaarquitecturadevonNeumann,nuncasesabecuntamemoriaocuparalgnprograma. Generalmente, la mayora de las instrucciones de programa ocupan dos localidades de memoria (unacontieneinformacinsobreQUsedeberealizar,mientrasquelaotracontieneinformacinsobreCULdatosedeberealizar). Sin embargo, esto no es una frmula rgida, sino el casoms frecuente. En losmicrocontroladores queutilizanunaarquitecturaHarvard,elbusdelapalabradeprogramaesmsanchoqueunbyte,loquepermiteque cada palabra de programa est compuesto por una instruccin y un dato. En otras palabras, una localidad dememoriaunainstruccindeprograma.

    JUEGODEINSTRUCCIONES

    1. Leer la parte de la instruccin de programa que especifica QU es lo que debe realizar (en este caso es lainstruccinparaincrementarincf)

    2. Seguir leyendo la misma instruccin que especifica sobre CUL dato lo debe realizar (en este caso es elcontenidodelregistroSUMA)

    3. Despus de haber sido incrementado, el contenido de este registro se debe escribir en el registro del que fueledo(direccindelregistroSUMA)

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 16/20

    ElnombrecolectivodetodaslasinstruccionesquepuedeentenderelmicrocontroladoresllamadoJuegodeInstrucciones.Cuandoseescribeunprogramaenensamblador,enrealidadseespecificaninstruccionesenelordenenelquedebenserejecutadas.Larestriccinprincipaleselnmerodeinstruccionesdisponibles.Losfabricantesnormalmenteelijenentreunadedossolucionesopuestasydiseanlosmicrocontroladoresqueaplicanelmayoroelmenornmeroposibledeinstrucciones.Enotraspalabras,elijenentredosjuegosdeinstruccionesRISCoCISC,respectivamente.

    RISC(REDUCEDINSTRUCTIONSETCOMPUTER)COMPUTADORACONJUEGODEINSTRUCCIONESREDUCIDAS

    Enestecasolaideaesqueelmicrocontroladorreconoceyejecutaslooperacionesbsicas(sumar,restar,copiaretc...)Lasoperacionesmscomplicadasserealizanalcombinarstas.Porejemplo,multiplicacinsellevaacaboalrealizaradicinsucesiva.Escomointentarexplicarleaalguienconpocaspalabrascmollegaralaeropuertoenunanuevaciudad.Sinembargo,notodoestanoscuro.Porltimo,no es tan difcil explicar dnde est el aeropuerto si se utilizan las palabras adecuadas tales como: a la derecha, a la izquierda, elkilmetroetc.

    CISC(COMPLEXINSTRUCTIONSETCOMPUTER)COMPUTADORASCONJUEGODEINTRUCCIONESCOMPLEJO

    CISC es opuesto aRISC! Losmicrocontroladores diseados para reconocerms de 200 instrucciones diferentes realmente puedenrealizarmuchascosasaaltavelocidad.Noobstante,unodebesabercmoutilizartodaslasposibilidadesqueofreceunlenguajetanrico,loquenoessiempretanfcil...

    CMOELEGIRUNMICROCONTROLADOR?

    Bueno,siustedesprincipiante,yhatomadodecisindetrabajarconlosmicrocontroladores.Felicitacionesporlaeleccin!Noobstante,aprimeravista,noesfcillaeleccindelmicrocontroladormsadecuadocomoparecealaprimeravista.Elproblemanoeselpequeorangodedispositivosaelegir,sinotodolocontrario!

    Antesdeempezaradisearundispositivobasadoenunmicrocontrolador,tomeencuentalosiguiente:cuntasentradas/lneassonnecesariasparasufuncionamiento,realizaraeldispositivootrasoperacionesademsencender/apagarunrel,necesitaalgnmoduloespecializadotalcomoeldecomunicacinenserie,convertidorA/Detc.Cuandoustedtieneunaclaraimagendeloquequiere,elrangodeseleccinsereduceconsiderablemente,ylequedapensarenelprecio.Vaatenervariosdispositivos?Varioscientos?Unmilln?Detodosmodosahoraesmsclaro.Siestpensandoentodasestascosasporprimeravez,todoleparecerunpococonfuso.Poresarazn,vayapasoapaso.Antesquenada,seleccionealfabricante,esdecir,lafamiliademicrocontroladoresqueofrece.Luego,aprendaatrabajarconunmodeloparticular.Sloaprendaloquenecesiteaprender,noentredemasiadoendetalles.Resuelvaelproblemaespecficoylepasarunacosaincreblesercapazdemanejarcualquiermodeloquepertenecealamismafamilia...

    Msomenos,todosepareceamontarenbicicleta:despusdevariascadasinevitablesenelprincipio,sercapazdemantenerelequilibrioymontarencualquierotrabicicleta.Porsupuesto,nuncaseolvidatantodemontarenbicicleta,comodeladestrezadeprogramacin!

    1.4MICROCONTROLADORESPIC

    ElnombreverdaderodeestemicrocontroladoresPICmicrocontroladordeinterfazperifrico(PeripheralInterfaceController),conocidobajoelnombrePIC.Suprimerantecesorfuecreadoen1975porlacompaaGeneralInstruments.EstechipdenominadoPIC1650fuediseadoparapropsitoscompletamentediferentes.Aproximadamentediezaosmstarde,alaadirunamemoriaEEPROM,estecircuitoseconvirtienunverdaderomicrocontroladorPIC.

    Siestinteresadoenaprendermssobreeso,sigaleyendo.

    Laideaprincipaldeestelibroesproporcionarlainformacinnecesariaalusuarioparaqueseacapazdeutilizarlosmicrocontroladoresenlaprctica.Paraevitarexplicacionespesadasylashistoriasinfinitassobrelascaractersticastilesdelosmicrocontroladoresdiferentes,estelibrodescribeelfuncionamientodeunmodeloparticularquepertenecealaclasemediaalta.EsPIC16F887bastantepoderosopara ser digno de atencin y bastante simple para poder ser utilizado por cualquiera. As, los siguientes captulos describen estemicrocontroladorendetalleytambinserefierenalafamiliaPICentera..

    TodoslosmicrocontroladoresPICutilizanunaarquitecturaHarvard,loquequieredecirquesumemoriadeprogramaestconectadaalaCPUpormsde8lneas.Haymicrocontroladoresde12,14y16bits,dependiendodelaanchuradelbus.LasiguientetablarmuestralascaractersticasprincipalesdeestastrescategorasdelosmicrocontroladoresPIC.

    Familia ROM[Kbytes]RAM

    [bytes] PinesFrecuenciadereloj[MHz]

    EntradasA/D

    Resolucindel

    convertidorA/D

    Comparadores

    Temporizadoresde8/16bits

    Com.serial

    SalidasPWM

    Otros

    Arquitecturadelagamabajade8bits,palabradeinstruccinde12bits

    PIC10FXXX 0.3750.75 1624 68 48 02 8 01 1x8

    PIC12FXXX 0.751.5 2538 8 48 03 8 01 1x8 EEPROM

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 17/20

    PIC16FXXX 0.753 251341444 20 03 8 02 1x8 EEPROM

    PIC16HVXXX 1.5 25 1820 20 1x8 Vdd=15V

    Arquitecturadelagamamediade8bits,palabradeinstruccinde14bits

    PIC12FXXX 1.753.564128 8 20 04 10 1 12x81x16 01 EEPROM

    PIC12HVXXX 1.75 64 8 20 04 10 1 12x81x16 01

    PIC16FXXX 1.7514 643681464 20 013 8or10 02 12x81x16

    USARTI2CSPI 03

    PIC16HVXXX 1.753.564128

    1420 20 012 10 2 2x81x16

    USARTI2CSPI

    Arquitecturadelagamaaltade8bits,palabradeinstruccinde16bits

    PIC18FXXX 4128 25639361880 3248 416 10or12 03 02x823x16

    USB2.0CAN2.0USARTI2CSPI

    05

    PIC18FXXJXX 8128 1024393628100 4048 1016 10 2 02x823x16

    USB2.0USARTEthernetI2CSPI

    25

    PIC18FXXKXX 864 76839362844 64 1013 10 2 1x83x16

    USARTI2CSPI 2

    Como se puede ver en la tabla de la pgina anterior, salvo los monstruos de 16 bits PIC 24FXXX y PIC 24HXXX todos losmicrocontroladores tienen laarquitecturaHarvardde8bitsypertenecenaunade las tresgrandesgrupos.Poreso,dependiendodeltamaodepalabradeprogramaexistenlaprimera,lasegundaylaterceracategorademicrocontroladores,esdecirmicrocontroladoresde12,14o16bits.Puestoquedisponendelncleosimilarde8bits,todosutilizanelmismojuegodeinstruccionesyelesqueletobsicodehardwareconectadoamsomenosunidadesperifricas.

    LosmicrocontroladoresPICconpalabrasdeprogramade14bitsparecenserlamejoropcinparalosprincipiantes.Aquestelporqu...

    JUEGODEINSTRUCCIONES

    Eljuegodeinstruccionesparalosmicrocontroladores16F8XXincluye35instruccionesentotal.LaraznparaunnmerotanreducidodeinstruccionesyaceenlaarquietecturaRISC.Estoquieredecirquelasinstruccionessonbienoptimizadasdesdeelaspectodelavelocidadoperativa, la sencillez de la arquitectura y la compacidad del cdigo. La desventaja de la arquitectura RISC es que se espera delprogramadorquehaga frenteaestas instrucciones.Porsupuesto,estoesrelevanteslosiseutilizael lenguajeensambladorpara laprogramacin.EstelibroserefierealaprogramacinenellenguajedealtonivelBasic,loquesignificaquelamayorpartedeltrabajoyafuehechoporalguienms.As,slosetienenqueutilizarinstruccionesrelativamentesimples.

    TIEMPODEEJECUCINDEINSTRUCCIONES

    Todaslasinstruccionesseejecutanenunciclo.Lanicasexcepcionespuedenserlasinstruccionesderamificacincondicionalolasinstruccionesquecambianelcontenidodelcontadordeprograma.Enamboscasos,dosciclosderelojsonnecesariosparalaejecucindelainstruccin,mientrasqueelsegundocicloseejecutacomounNOP(Nooperation).Lasinstruccionesdeuncicloconsistenencuatrociclos de reloj. Si se utiliza un oscilador de 4MHz, el tiempo nominal para la ejecucin de la instruccin es 1mS. En cuanto a lasinstruccionesderamificacin,eltiempodeejecucindelainstruccines2S.

    JuegodeinstruccionesdelosmicrocontroladoresPICde14bits:

    I N ST RUCC I N DESCR I PC I N O PERAC I N BANDERA CLK *

    Instruccionesparalatransmisindedatos

    MOVLWk MoverliteralaW k>w 1

    MOVWFf MoverelcontenidodeWaf W>f 1

    MOVFf,d Moverelcontenidodefad f>d Z 1 1,2

    CLRW BorrarelcontenidodeW 0>W Z 1

    CLRFf Borrarelcontenidodef 0>f Z 1 2

    SWAPFf,d Intercambiardenibblesenf f(7:4),(3:0)>f(3:0),(7:4) 1 1,2

    Instruccionesaritmticolgicas

    ADDLWk SumarliteralaW W+k>W C,DC,Z 1

    ADDWFf,d SumarelcontenidodeWyf W+f>d C,DC,Z 1 1,2

    SUBLWk RestarWdeliteral kW>W C,DC,Z 1

    SUBWFf,d RestarWdef fW>d C,DC,Z 1 1,2

    ANDLWk ANDWconliteral WANDk>W Z 1

    ANDWFf,d ANDWconf WANDf>d Z 1 1,2

    IORLWk ORinclusivodeWconliteral WORk>W Z 1

    IORWFf,d ORinclusivodeWconf WORf>d Z 1 1,2

    XORWFf,d ORexclusivodeWconliteral WXORk>W Z 1 1,2

    XORLWk ORexclusivodeWconf WXORf>d Z 1

    INCFf,d Sumar1af f+1>f Z 1 1,2

    DECFf,d Restar1af f1>f Z 1 1,2

    RLFf,d RotarFalaizquierdaatravsdelbitdeAcarreo C 1 1,2

    RRFf,d RotarFaladerechaatravsdelbitdeAcarreo C 1 1,2

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 18/20

    COMFf,d Complementarf f>d Z 1 1,2

    Instruccionesorientadasabit

    BCFf,b Ponera0elbitbdelregistrof 0>f(b) 1 1,2

    BSFf,b Ponera1elbitbdelregistrof 1>f(b) 1 1,2

    Instruccionesdecontroldeprograma

    BTFSCf,b Saltarsibitbderegistrofes0 Skipiff(b)=0 1(2) 3

    BTFSSf,b Saltarsibitbdereg.fes1 Skipiff(b)=1 1(2) 3

    DECFSZf,d Disminuirfen1.Saltarsielresultadoes0. f1>dskipifZ=1 1(2) 1,2,3

    INCFSZf,d Incrementarfen1.Saltarsielresultadoes1. f+1>dskipifZ=0 1(2) 1,2,3

    GOTOk Saltaraunadireccin k>PC 2

    CALLk Llamaraunasubrutina PC>TOS,k>PC 2

    RETURN Retornardeunasubrutina TOS>PC 2

    RETLWk RetornarconliteralenW k>W,TOS>PC 2

    RETFIE Retornardeunainterupcin TOS>PC,1>GIE 2

    Otrasinstrucciones

    NOP Nooperacin TOS>PC,1>GIE 1

    CLRWDT Reiniciareltemporizadorperroguardin 0>WDT,1>TO,1>PD TO,PD 1

    SLEEP Ponerenestadodereposo 0>WDT,1>TO,0>PD TO,PD 1

    *1SiunregistrodeE/Sestmodificado,elvalorutilizadoserelvalorpresentadoenlospinesdelmicrocontrolador.*2SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.*3Sielcontadordeprogramaestmodificadooelresultadodepruebaesununolgico(1), la instruccintieneunaduracindedosciclos.ElsegundocicloseejecutacomounNOP

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 19/20

    tableofcontents|nextchapter

    ArquitecturadelosmicrocontroladoresPICde8bits.Culesdeestosmdulospertenecernalmicrocontrolador,dependerdeltipodemicrocontrolador.

    MikroElektronika Embedded SolutionsPICSolutionPICDev.BoardsPICCompilersPICProgrammersPICKitsPICBooks

    PIC32SolutionPIC32Dev.BoardsPIC32CompilersPIC32ProgrammersPIC32Kits

    dsPICSolutiondsPICDev.BoardsdsPICCompilersdsPICProgrammersdsPICKitsdsPICBooks

    AVRSolutionAVRDev.BoardsAVRCompilersAVRProgrammersAVRKits

    STM32SolutionSTM32Dev.BoardsSTM32CompilersSTM32ProgrammersSTM32Kits

    TivaCSeriesSolutionTivaCDev.BoardsTivaCCompilersTivaCProgrammersTivaCKits

    8051Solution8051Dev.Boards8051Compilers8051Programmers8051Books8051Kits

    FT90xSolutionFT90xDev.BoardsFT90xCompilersFT90xProgrammersFT90xKits

    AdditionalSoftwareVisualTFTVisualGLCDPackageManagerGLCDFontCreatorTimerCalculator

    AddonboardsClickBoardsmikromediashieldsCommunicationStorage

    RealTimeClockDisplayMeasurementAudio&VoicePowerSupplyGPSGSM/GPRS

  • 14/3/2015 ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

    http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador 20/20

    Copyright19982015.MikroElektronika.Allrightsreserved.Alltradeand/orservicesmarksmentionedarethepropertyoftheirrespectiveowners.

    Support Forum mikroBUS Letsmake Press Legal Archive AboutUs Customization