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
Top Related