Professional Documents
Culture Documents
Login|Cart(0)
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinen FeaturedDevelopmentTools
Cconejemplos EasyPICv7DevelopmentSystem
Capitulo1:Elmundodelosmicrocontroladores
Lasituacinactualenelcampodelosmicrocontroladoressehaproducidograciasaldesarrollodelatecnologadefabricacindelos
circuitosintegrados.Estedesarrollohapermitidoconstruirlascentenasdemilesdetransistoresenunchip.Estofueunacondicinprevia
paralafabricacindeunmicroprocesador.Lasprimerasmicrocomputadorassefabricaronalaadirlesperifricosexternos,talescomo
memoria,lneasdeentrada/salida,temporizadoresuotros.Elincrementoposteriordeladensidaddeintegracinpermiticrearuncircuito
integradoquecontenatantoalprocesadorcomoperifricos.Asescmofuedesarrolladalaprimeramicrocomputadoraenunsolochip,
denominadamstardemicrocontrolador. EasyPICv7istopsellingPIC
DevelopmentBoardfor250Microchip
1.1Introduccin PICMCUsinDIPpackaging.Itfeatures
1.2NMEROS,NMEROS,NMEROS... USB2.0programmer/debuggerandover
17essentialmodulesnecessaryin
1.3DETALLESIMPORTANTES
development.Boardcomeswith
1.4MICROCONTROLADORESPIC PIC18F45K22.[moreinfo]
1.1INTRODUCCIN
FeaturedCompilers
Losprincipiantesenelectrnicacreenqueunmicrocontroladoresigualaunmicroprocesador.Estonoescierto.Difierenunodelotroen
mikroCPROforPIC
muchossentidos.Laprimeraylamsimportantediferenciaessufuncionalidad.Parautilizaralmicroprocesadorenunaaplicacinreal,se
debedeconectarconcomponentestalescomomemoriaocomponentesbusesdetransmisindedatos.Aunqueelmicroprocesadorse
consideraunamquinadecomputacinpoderosa,noestpreparadoparalacomunicacinconlosdispositivosperifricosquesele
conectan.Paraqueelmicroprocesadorsecomuniqueconalgnperifrico,sedebenutilizarloscircuitosespeciales.Aseraenelprincipio
yestaprcticasiguevigenteenlaactualidad.
PopularPICmicocontrollersareloved
byhobbyistsand8bitgeeks.mikroC
helpsyoubringyourideastolifeeasyas
neverbefore.[moreinfo]
Porotrolado,almicrocontroladorselediseadetalmaneraquetengatodaslascomponentesintegradasenelmismochip.Nonecesita
deotroscomponentesespecializadosparasuaplicacin,porquetodosloscircuitosnecesarios,quedeotramaneracorrespondanalos
perifricos,yaseencuentranincorporados.Asseahorratiempoyespacionecesarioparaconstruirundispositivo.
QUEPUEDENHACERLOSMICROCONTROLADORES?
Paraentenderconmsfacilidadlasrazonesdelxitotangrandedelosmicrocontroladores,vamosaprestaratencinalsiguiente
ejemplo.Haceunos10aos,disearundispositivoelectrnicodecontroldeunascensordeunedificiodevariospisoseramuydifcil,
inclusoparaunequipodeexpertos.Hapensadoalgunavezenqurequisitosdebecumplirunsimpleascensor?Cmolidiarconla
situacincuandodosomspersonasllamanalascensoralmismotiempo?Culllamadatienelaprioridad?Cmosolucionarlas
cuestionesdeseguridad,deprdidadeelectricidad,defallos,deusoindebido?Loquesucededespusderesolverestosproblemas
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 1/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
bsicosesunprocesometiculosodedisearlosdispositivosadecuadosutilizandoungrannmerodeloschipsespecializados.Este
procesopuedetardarsemanasomeses,dependiendodelacomplejidaddeldispositivo.Cuandohayaterminadoelproceso,llegalahora
dedisearunaplacadecircuitoimpresoydemontareldispositivo.Undispositivoenorme!Esotrotrabajodifcilytardado.Porltimo,
cuandotodoestterminadoyprobadoadecuadamente,pasamosalmomentocrucialyescuandounoseconcentra,respira
profundamenteyenciendelafuentedealimentacin.
Estosueleserelpuntoenelquelafiestaseconvierteenunverdaderotrabajopuestoquelosdispositivoselectrnicoscasinunca
funcionanapropiadamentedesdeelinicio.Prepreseparamuchasnochessindormir,correcciones,mejoras...ynoseolvidedeque
todavaestamoshablandodecmoponerenmarchaunsimpleascensor.
Cuandoeldispositivofinalmenteempieceafuncionarperfectamenteytodoelmundoestsatisfecho,ylepaguenporeltrabajoqueha
hecho,muchascompaasdedesarrolloestarninteresadasensutrabajo.Porsupuesto,sitienesuerte,cadadaletraerunaofertade
trabajodeunnuevoinversionista.Sinembargo,silorequierenparatrabajarenelcontroldeloselevadoresdeunnuevoedificioquetiene
cuatropisosmsdelosqueyamanejasusistemadecontrol.Sabecmoproceder?Creeacasoquesepuedencontrolarlasdemandas
desusclientes?Pensamosqueustedvaaconstruirundispositivouniversalquesepuedeutilizarenlosedificiosde4a40pisos,unaobra
maestradeelectrnica.Bueno,inclusosiustedconsigueconstruirunajoyaelectrnica,suinversionistaleesperarardelantedelapuerta
pidiendounacmaraenelascensorounamsicarelajanteencasodefallodeascensor.Ounascensorcondospuertas.
Detodosmodos,laleydeMurphyesinexorableysindudaustednopodrtomarventajaapesardetodoslosesfuerzosquehahecho.Por
desgracia,todoloquesehadichohastaahorasucedeenlarealidad.Estoesloquededicarsealaingenieraelectrnicarealmente
significa.Esascomosehacanlascosashastaaparicindelosmicrocontroladoresdiseadospequeos,potentesybaratos.Desdeese
momentosuprogramacindejdeserunaciencia,ytodotomotradireccin...
Eldispositivoelectrnicocapazdecontrolarunpequeosubmarino,unagraounascensorcomoelanteriormentemencionado,ahora
estincorporadoenunslochip.Losmicrocontroladoresofrecenunaampliagamadeaplicacionesysloalgunasseexploran
normalmente.Letocaausteddecidirququierequehagaelmicrocontroladorycargarunprogramaenlconlasinstrucciones
apropiadas.Antesdeencendereldispositivoesrecomendableverificarsufuncionamientoconayudadeunsimulador.Sitodofunciona
comoesdebido,incorporeelmicrocontroladorenelsistema.Sialgunaveznecesitacambiar,mejoraroactualizarelprograma,hgalo.
Hastacundo?Hastaquedarsatisfecho.Esopuederealizarsesinningnproblema.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 2/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Sabaustedquetodaslaspersonaspuedenserclasificadasenunode10grupos,enlosqueestnfamiliarizadosconelsistemade
numeracinbinarioyenlosquenoestnfamiliarizadosconl.Sinoentendiloanteriorsignificaquetodavapertenecealsegundo
grupo.Sideseacambiarsuestado,leaelsiguientetextoquedescribebrevementealgunosdelosconceptosbsicosutilizadosmstarde
enestelibro(sloparaestarsegurodequeestamoshablandoenlosmismostrminos).
1.2NMEROS,NMEROS,NMEROS...
Lamatemticaesunagranciencia!Todoestanlgicoysimple...Eluniversodelosnmerossepuededescribirconslodiezdgitos.No
obstante,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.Qusignifica
estorealmente?Porquutilizamosexactamenteestosnmeros100,101y102?Porquessiempreelnmero10?Esporque
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 3/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
utilizamos10dgitosdiferentes(0,1,2...8,9).Enotraspalabras,esporqueutilizamoselsistemadenumeracinenbase10,esdecirel
sistemadenumeracindecimal.
SISTEMADENUMERACINBINARIO
Qupasarasiutilizramosslodosnmeros0y1?Sislopudiramosafirmar(1)onegar(0)quealgoexiste.Larespuestaesnada
especial,seguiramosutilizandolosmismosnmerosdelamismamaneraqueutilizamoshoyenda,noobstanteellospareceranun
pocodiferentes.Porejemplo:11011010.Cuntassonrealmente11011010pginasdeunlibro?Paraentenderlo,sigalamismalgica
comoenelejemploanterior,peroenelordeninvertido.Tengaencuentaquesetratadearitmticaconslodosdgitos0y1,esdecir,del
sistemadenumeracinenbase2(sistemadenumeracinbinario).
Evidentemente,setratadelmismonmerorepresentadoendossistemasdenumeracindiferentes.Lanicadiferenciaentreestasdos
representacionesyaceenelnmerodedgitosnecesariosparaescribirunnmero.Undgito(2)seutilizaparaescribirelnmero2enel
sistemadecimal,mientrasquedosdgitos(1y0)seutilizanparaescribiraquelnmeroenelsistemabinario.Ahoraestdeacuerdoque
hay10gruposdegente?Bienvenidoalmundodelaaritmticabinaria!Tienealgunaideadedndeseutiliza?
Exceptoenlascondicionesdelaboratorioestrictamentecontroladas,loscircuitoselectrnicosmscomplicadosnopuedenespecificarcon
exactitudladiferenciaentredosmagnitudes(dosvaloresdevoltaje,porejemplo),sisondemasiadopequeos(mspequeosqueunos
pocosvoltios).Laraznsonlosruidoselctricosyfenmenosquesepresentandentrodeloquellamamosentornodetrabajoreal
(algunosejemplosdeestosfenmenossonloscambiosimprevisiblesdelatensindealimentacin,cambiosdetemperatura,toleranciaa
losvaloresdeloscomponentesetc...).Imagneseunacomputadoraqueoperasobrenmerosdecimalesaltratarlosdelasiguiente
manera:0=0V,1=5V,2=10V,3=15V,4=20V...9=45V!?
Alguiendijobateras?
Unasolucinmuchomsfcilesunalgicabinariadonde0indicalaausenciadevoltaje,mientrasque1indicalapresenciadevoltaje.
Simplemente,esfcildeescribir0o1envezdenohayvoltajeohayvoltaje.Medianteelcerolgico(0)yunolgico(1)laelectrnica
seenfrentaperfectamenteyrealizaconfacilidadtodaslasoperacionesaritmticas.Evidentemente,setratadeelectrnicaqueenrealidad
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 4/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
aplicaaritmticaenlaquetodoslosnmerossonrepresentadosconslodosdgitosydondesloesimportantesabersihayvoltajeono.
Porsupuesto,estamoshablandodeelectrnicadigital.
SISTEMADENUMERACINHEXADECIMAL
Enelprincipiodeldesarrollodelascomputadoraseraevidentequealagentelecostabamuchotrabajarconnmerosbinarios.Poreso,
seestableciunnuevosistemadenumeracin,queutilizaba16smbolosdiferentes.Esllamadoelsistemadenumeracinhexadecimal.
Estesistemaestcompuestode10dgitosalosqueestamosacostumbrados(0,1,2,3,...9)ydeseisletrasdelalfabetoA,B,C,D,EyF.
Culeselpropsitodeestacombinacinaparentementeextraa?Bastaconmirarcmotodoenlahistoriadelosnmerosbinarios
encajaperfectamenteparalograrunamejorcomprensindeltema.
Elmayornmeroquepuedeserrepresentadocon4dgitosbinarioseselnmero1111.Correspondealnmero15enelsistemadecimal.
EnelsistemahexadecimalesenmeroserepresentaconsloundgitoF.Eselmayornmerodeundgitoenelsistemahexadecimal.
Sedacuentadelagranutilidaddeestasequivalencias?Elmayornmeroescritoconochodgitosbinariosesalavezelmayornmero
dedosdgitosenelsistemahexadecimal.Tengaencuentaqueunacomputadorautilizanmerosbinariosde8dgitos.Acasosetratade
unacasualidad?
CDIGOBCD
ElcdigoBCD(BinaryCodedDecimalCdigobinariodecimal)esuncdigobinarioutilizadopararepresentaralosnmerosdecimales.
Seutilizaparaqueloscircuitoselectrnicospuedancomunicarseconlosperifricosutilizandoelsistemadenumeracindecimalobien
utilizandoelsistemabinariodentrodesupropiomundo.Consisteennmerosbinariosde4dgitosquerepresentanlosprimerosdiez
dgitos(0,1,2,3...8,9).Aunquecuatrodgitospuedenhacer16combinacionesposiblesentotal,elcdigoBCDnormalmenteutilizaalas
primerasdiez.
CONVERSINDESISTEMASDENMERACIN
Elsistemadenumeracinbinarioeselqueutilizanlosmicrocontroladores,elsistemadecimaleselquenosresultamscomprensible,
mientrasqueelsistemahexadecimalpresentaunbalanceentrelosdos.Poreso,esmuyimportanteaprendercmoconvertirlosnmeros
deunsistemadenumeracinaotro,porejemplo,cmoconvertirunaseriedecerosyunosaunaformaderepresentacincomprensible
paranosotros.
CONVERSINDENMEROSBINARIOSADECIMALES
Losdgitosenunnmerobinariotienenponderacionesdiferentesloquedependedesusposicionesdentrodelnmeroqueestn
representando.Adems,cadadgitopuedeser1o0,ysuponderacinsepuededeterminarconfacilidadalcontarsuposicin
empezandoporladerecha.Parahacerunaconversindeunnmerobinarioadecimalesnecesariomultiplicarlasponderacionesconlos
dgitoscorrespondientes(0o1)ysumartodoslosresultados.Lamagiadelaconversindeunnmerobinarioadecimalfuncionade
maravilla...Tieneduda?Veamoselsiguienteejemplo:
Cabedestacarqueesnecesarioutilizarslodosdgitosbinariospararepresentaratodoslosnmerosdecimalesde0a3.Por
consiguiente,pararepresentarlosnmerosde0a7esnecesarioutilizartresdgitosbinarios,pararepresentarlosnmerosde0a15
cuatrodgitosetc.Dichodemanerasencilla,elmayornmerobinarioquesepuederepresentarutilizandondgitosseobtienealelevarla
base2alapotencian.Luego,alresultadoseleresta1.Porejemplo,sin=4:
24 1=161=15
Porconsiguiente,alutilizar4dgitosbinarios,esposiblerepresentarlosnmerosdecimalesde0a15,queson16valoresdiferentesen
total.
CONVERSINDENMEROSHEXADECIMALESADECIMALES
Pararealizarunaconversindeunnmerohexadecimaladecimal,cadadgitohexadecimaldebesermultiplicadoconelnmero16
elevadoalvalordesuposicin.Porejemplo:
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 5/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
CONVERSINDENMEROSHEXADECIMALESABINARIOS
Noesnecesariorealizarningnclculoparaconvertirunnmerohexadecimalabinario.Losdgitoshexadecimalessereemplazan
simplementeporloscuatrodgitosbinariosapropiados.Yaqueeldgitohexadecimalmximoesequivalentealnmerodecimal15,es
necesarioutilizarcuatrodgitosbinariospararepresentarundgitohexadecimal.Porejemplo:
MARCARLOSNMEROS
Elsistemadenumeracinhexadecimal,juntoconlossistemasbinarioydecimal,seconsideranlosmsimportantesparanosotros.Esfcil
realizarunaconversindecualquiernmerohexadecimalabinario,ademsesfcilderecordarlo.Sinobstante,estasconversiones
puedenprovocarunaconfusin.Porejemplo,qusignificaenrealidadlasentencia:Esnecesariocontar110productosenunacadena
demontaje?Dependiendodelsistemaencuestin(binario,decimalohexadecimal),elresultadopodraser6,110o272productos,
respectivamente.Porconsiguiente,paraevitarequivocaciones,diferentesprefijosysufijosseaadendirectamentealosnmeros.El
prefijo$o0xascomoelsufijohmarcalosnmerosenelsistemahexadecimal.Porejemplo,elnmerohexadecimal10AFsepuede
escribiras:$10AF,0x10AFo10AFh.Demanerasimilar,losnmerosbinariosnormalmenteobtienenelsufijo%o0B.Siunnmerono
tienenisufijoniprefijoseconsideradecimal.Desafortunadamente,estaformademarcarlosnmerosnoesestandarizada,por
consiguientedependedelaaplicacinconcreta.
Lasiguienteestablacomparativaquecontienelosvaloresdenmeros0255representadosentressistemasdenumeracindiferentes.
Estoesprobablementelamaneramsfcildeentenderlgicacomnaplicadaatodoslossistemasdenumeracin.
NMEROSNEGATIVOS
Comoyahemosvisto,paraescribirunnmeronegativoenmatemticas,bastaconaadirleelprefijo(signomenos).Sinembargo,enla
programacin,alacabarseelprocesodelacompilacin,sequedanslolosnmerosbinarios,volvindoselascosasmscomplicadas.
Seutilizanslodosdgitos0y1,mientrasquetodoslosdemsnmeros,smbolosysignosseformanpormediodelascombinaciones
deestosdosdgitos.Enelcasodelosnmerosnegativos,lasolucineslasiguiente:Enlosnmerosnegativos,elbitmssignificativo(el
bitdelextremoizquierdo)representaelsignodelnmero(donde0serpositivoy1negativo).Enelcasodeunnmerode8bits,para
representarunvalornumricosloquedan7bits.Deacuerdoaestetipodecodificacinelnmero+127eselmayornmeropositivocon
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 6/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
signoquesepuederepresentarcon8bits.Asimismo,haycero(0)positivoynegativo(refirasealatabladeladerecha).Lasiguiente
preguntasera:Cmoesposiblesaberdequnmerosetrata?Porejemplo,siponemoselnmero10000001,es1o129?Nose
preocupe,deesoseencargaelcompilador.staeslaraznporlaquesedeclaranvariablesalescribirelprograma.Bueno,deeso
vamosahablaracontinuacin.
BIT
Lateoradicequeunbiteslaunidadbsicadeinformacin...Vamosaolvidarloporunmomentoydemostrarquesesoenlaprctica.La
respuestaesnadaespecialunbitesunslodgitobinario.Similaraunsistemadenumeracindecimalenelquelosdgitosdeun
nmeronotienenlamismaponderacin(porejemplo,losdgitosenelnmero444sonlosmismosperotienenlosvaloresdiferentes),el
significadodeunbitdependedelaposicinquetieneennmerobinario.Enestecasonotienesentidohablardeunidades,centenas
etc.enlosnmerosbinarios,susdgitossedenominanelbitcero(elprimerbitaladerecha),elprimerbit(elsegundobitaladerecha)etc.
Adems,yaqueelsistemabinarioutilizasolamentedosdgitos(0y1),elvalordeunbitpuedeser0o1.
Noseconfundasiseencuentraconunbitquetieneelvalor4,16o64.Sonlosvaloresrepresentadosenelsistemadecimal.
Simplemente,noshemosacostumbradotantoautilizarlosnmerosdecimalesqueestasexpresionesllegaronasercomunes.Sera
correctodecirporejemplo,elvalordelsextobitencualquiernmerobinarioequivalealnmerodecimal64.Perotodossomoshumanos
ylosviejoshbitosmuerendifcilmente.Adems,cmolesuenanmerounounocerounocero...?
BYTE
Unbyteconsisteen8bitscolocadosunojuntoalotro.Siunbitesundgito,eslgicoquelosbytesrepresentenlosnmeros.Todaslas
operacionesmatemticassepuedenrealizarpormediodeellos,comopormediodelosnmerosdecimalescomunes.Similaralosdgitos
decualquiernmero,losdgitosdeunbytenotienenelmismosignificado.Elbitdelextremoizquierdotienelamayorponderacin,poreso
esdenominadoelbitmssignificativo(MSB).Elbitdelextremoderechotienelamenorponderacin,poresoesdenominadoelbitmenos
significativo(LSB).Puestoquelos8dgitosdeunbytesepuedencombinarde256manerasdiferentes,elmayornmerodecimalquese
puederepresentarconunbytees255(unacombinacinrepresentauncero).
Unnibbleouncuartetorepresentaunamitaddebyte.Dependiendodelamitaddelnmeroencuestin(izquierdaoderecha),seles
denominanibblesaltosobajos,respectivamente.
Ustedseguramentehapensadoalgunavezencmoeslaelectrnicadentrodeuncircuitointegradodigital,unmicrocontroladoroun
microprocesador.Cmosonloscircuitosquerealizanlasoperacionesmatemticascomplicadasytomandecisiones?Sabaquesus
esquemas,aparentementecomplicadasconsistenenslounospocoselementosdiferentes,denominadoscircuitoslgicosocompuertas
lgicas?
1.3DETALLESIMPORTANTES
ElfuncionamientodeestoselementosesbasadoenlosprincipiosestablecidosporelmatemticobritnicoGeorgeBooleenlamitaddel
siglo19esdecir,antesdelainvencindelaprimerabombilla!Enbreve,laideaprincipaleradeexpresarlasformaslgicaspormedio
delasfuncionesalgebraicas.Talideaprontosetransformenunproductoprcticoqueseconvirtimstardeenloquehoyenda
conocemoscomocircuitoslgicosY(AND),O(OR)oNO(NOT).ElprincipiodesufuncionamientoesconocidocomoalgebradeBoole.
CIRCUITOSLGICOS
Algunasinstruccionesdeprogramautilizadasporunmicrocontroladorfuncionandelamismamaneraquelascompuertaslgicas,peroen
formadecomandos.Acontinuacinvamosaexplicarelprincipiodesufuncionamiento.
COMPUERTAY(AND)
UnacompuertalgicaYdisponededosoms
entradasydeunasalida.Enestecasolacompuerta
utilizadadisponedeslodosentradas.Ununo
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 7/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
lgico(1)aparecerensusalidasloencasode
queambasentradas(AYB)seanllevadasaalto(1).
Latablaaladerechaeslatabladeverdadque
muestralarelacinentrelasentradasysalidasdela
compuerta.Elprincipiodefuncionamientoesel
mismocuandolacompuertadispongademsde
dosentradas:lasalidaproporcionaununolgico(1)
slositodaslasentradassonllevadasaalto(1).
Cualquierotracombinacindevoltajesdeentrada
proporcionaruncerolgico(0)ensusalida.
Utilizadaenelprograma,laoperacinYlgicoes
realizadaporunainstruccindeprograma,delaque
vamosahablarmstarde.Porahorabastacon
conocerqueYlgicoenunprogramaserefiereala
realizacindeestetipodeoperacinsobrelosbits
correspondientesdedosregistrosdiferentes.
COMPUERTAO(OR)
Demanerasimilar,lacompuertaOtambindispone
dedosomsentradasydeunasalida.Sila
compuertadisponedeslodosentradas,es
aplicablelosiguiente:lasalidaproporcionaununo
lgico(1)siunauotraentrada(AoB)esllevadaa
alto(1).EncasodequelacompuertaOdispongade
msdedosentradas,esaplicablelosiguiente:La
salidaproporcionaununolgico(1)siporlomenos
unaentradaesllevadaaalto(1).Sitodaslas
entradasestnacerolgico(0),lasalidaestara
cerolgico(0)tambin.
Enunprograma,laoperacinOlgicoserealizade
lamismamaneraquelaoperacinY.
COMPUERTANO(NOT)
LacompuertalgicaNOdisponedeunasolaentradayunasolasalida,porloquefuncionamuysimplemente.Cuandouncerolgico(0)
aparezcaensuentrada,lasalidaproporcionaununolgico(1)yviceversa.Estosignificaqueestacompuertainviertelassealespors
mismasyporesoesdenominadainversor.
EnelprogramalaoperacinlgicaNOserealizasobreunbyte.El
resultadoesunbyteconlosbitsinvertidos.Silosbitsdeunbytese
considerannmero,elvalorinvertidoesuncomplementoaese
nmero.Elcomplementodeunnmeroeselvalorqueseaadeal
nmerohastallegaralmayornmerobinariode8dgitos.Enotras
palabras,lasumadeundgitode8nmerosydesucomplementoes
siempre255.
COMPUERTAXOR(OEXCLUSIVA)
LacompuertaXOR(OEXCLUSIVA)esunpococomplicadaen
comparacinconlasdems.Representaunacombinacindetodaslas
compuertasanteriormentedescritas.Lasalidaproporcionaununo
lgico(1)slosisusentradasestnenestadoslgicosdiferentes.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 8/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Enelprograma,estaoperacinseutilizaconfrecuenciaparacomparardosbytes.La
restasepuedeutilizarconelmismopropsito(sielresultadoes0,losbytesson
iguales).Adiferenciadelaresta,laventajadeestaoperacinlgicaesquenoes
posibleobtenerlosresultadosnegativos.
REGISTROS
Unregistroounaceldadememoriaesuncircuitoelectrnicoquepuedememorizarelestadodeunbyte.
REGISTROSSFR
Adiferenciadelosregistrosquenotienenningunafuncinespecialypredeterminada,cadamicrocontroladordisponedeunnmerode
registrosdefuncionesespeciales(SFR),conlafuncinpredeterminadaporelfabricante.Susbitsestnconectadosaloscircuitosinternos
delmicrocontroladortalescomotemporizadores,convertidoresA/D,osciladoresentreotros,loquesignificaquedirectamentemanejanel
funcionamientodeestoscircuitos,oseadelmicrocontrolador.Imagneseochointerruptoresquemanejanelfuncionamientodeuncircuito
pequeodentrodelmicrocontrolador.LosregistrosSFRhacenexactamentelomismo.
Enotraspalabras,elestadodelosbitsderegistrossefija
dentrodeprograma,losregistrosSFRdirigenlospequeos
circuitosdentrodelmicrocontrolador,estoscircuitosse
conectanporlospinesdelmicrocontroladoraundispositivo
perifricoutilizadopara...Bueno,dependedeusted.
PUERTOSDEENTRADA/SALIDA(E/S)
Parahacertilunmicrocontrolador,hayqueconectarloaundispositivoexterno,osea,aunperifrico.Cadamicrocontroladortieneunoo
msregistros(denominadospuertos)conectadosalospinesenelmicrocontrolador.Porqusedenominancomopuertosde
entrada/salida?Porqueustedpuedecambiarlafuncindecadapincomoquiera.Porejemplo,usteddeseaquesudispositivoencienday
apaguelostressealesLEDsyquesimultneamentemonitoreeelestadolgicode5sensoresobotonesdepresin.Unodelospuertos
debeestarconfiguradodetalmaneraquehayatressalidas(conectadasalosLEDs)ycincoentradas(conectadasalossensores).Esose
realizasimplementepormediodesoftware,loquesignificaquelafuncindealgnpinpuedesercambiadaduranteelfuncionamiento.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 9/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Unadelascaractersticasmsimportantesdelospinesdeentrada/salida(E/S)eslacorrientemximaquepuedenentregar/recibir.Enla
mayoradelosmicrocontroladoreslacorrienteobtenidadeunpinessuficienteparaactivarunLEDuotrodispositivodebajacorriente(10
20mA).MientrasmspinesdeE/Shaya,msbajaeslacorrientemximadeunpin.Enotraspalabras,todoslospuertosdeE/Scomparten
lacorrientemximadeclaradaenlahojadeespecificacintcnicadelmicroprocesador.
Otracaractersticaimportantedelospinesesquepuedendisponerdelosresistorespullup.Estosresistoresconectanlospinesalpolo
positivodelvoltajedelafuentedealimentacinysuefectosepuedeveralconfigurarelpincomounaentradaconectadaauninterruptor
mecnicooaunbotndepresin.Lasltimasversionesdelosmicrocontroladorestienenlasresistenciaspullupconfigurablespor
software.
CadapuertodeE/SnormalmenteestbajoelcontroldeunregistroSFRespecializado,loquesignificaquecadabitdeeseregistro
determinaelestadodelpincorrespondienteenelelmicrocontrolador.Porejemplo,alescribirununolgico(1)aunbitdelregistrode
control(SFR),elpinapropiadodelpuertoseconfiguraautomticamentecomosalida.Esosignificaqueelvoltajellevadoaesepinse
puedeleercomo0o1lgico.Encasocontrario,alescribir0alregistroSFR,elpinapropiadodelpuertoseconfiguracomosalida.Su
voltaje(0Vo5V)correspondealestadodelbitapropiadodelregistrodelpuerto.
UNIDADDEMEMORIA
Launidaddememoriaesunapartedelmicrocontroladorutilizadaparaalmacenarlosdatos.Lamaneramsfcildeexplicarloes
compararloconunarmariograndeconmuchoscajones.Simarcamosloscajonesclaramente,serfcilaccederacualquieradesus
contenidosalleerlaetiquetaenlapartedelanteradelcajn.
Demanerasimilar,cadadireccindememoriacorrespondeauna
localidaddememoria.Elcontenidodecualquierlocalidadsepuedeleery
selepuedeaccederaldireccionarla.Lamemoriasepuedeescribirenla
localidadoleer.
Hayvariostiposdememoriadentrodelmicrocontrolador:
MEMORIAROM(READONLYMEMORY)MEMORIADESLOLECTURA
LamemoriaROMseutilizaparaguardarpermanentementeelprogramaqueseestejecutando.Eltamaodeprogramaquesepuede
escribirdependedeltamaodeestamemoria.Losmicrocontroladoresactualesnormalmenteutilizaneldireccionamientode16bits,que
significaquesoncapacesdedireccionarhasta64Kbdememoria,osea65535localidades.Porejemplo,siustedesprincipiante,su
programaexcederpocasvecesellmitedevarioscientosdeinstrucciones.HayvariostiposdememoriaROM.
Romdemscara(enmascarada)MROM
LaROMenmascaradaesuntipodeROMcuyocontenidoesprogramadoporelfabricante.Eltrminodemscaravienedelprocesode
fabricacin,dondelaspartesdelchipseplasmanenlasmascarasutilizadasduranteelprocesodefotolitografa.Encasodefabricacinde
grandesseries,elprecioesmuybajo.Olvidelaideademodificarla...
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 10/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
OTPROM(OneTimeProgrammableROM)ROMprogramableunasolavez
Lamemoriaprogramableunasolavezpermitedescargarunprogramaenelchip,perocomodicesunombre,unasolavez.Sisedetecta
unerrordespusdedescargarlo,lonicoquesepuedehaceresdescargarelprogramacorrectoenotrochip.
UVEPROM(UVErasableProgrammableROM)ROMprogramableborrableporrayosultravioleta
Elencapsuladodeestemicrocontroladortieneunaventanareconocibleenlapartealta.Esopermite
exponerlasuperficiedelchipdesilicioalaluzdeultravioletayborrarelprogramacompletamenteen
variosminutos.Luegoesposibledescargarunnuevoprogramaenl.
Lainstalacindeestaventanaescomplicada,loqueporsupuestoafectaalprecio.Desdenuestro
puntodevista,desgraciadamente,demaneranegativa...
MemoriaFlash
Estetipodememoriaseinventenlosaos80enloslaboratoriosdelacompaaINTEL,comoformadesarrolladadelamemoriaUV
EPROM.Yaqueesposibleescribiryborrarelcontenidodeestamemoriaprcticamenteunnmeroilimitadodeveces,los
microcontroladoresconmemoriaFlashsonperfectosparaestudiar,experimentaryparalafabricacinenpequeaescala.Porlagran
popularidaddeestamemoria,lamayoradelosmicroconroladoressefabricancontecnologaflashhoyenda.Siustedvaacomprarun
microcontrolador,steesendefinitivalaopcinperfecta!
MEMORIARAM(RANDOMACCESSMEMORY)MEMORIADEACCESOALEATORIO
Alapagarlafuentedealimentacin,sepierdeelcontenidodelamemoriaRAM.Seutilizaparaalmacenartemporalmentelosdatosylos
resultadosinmediatoscreadosyutilizadosduranteelfuncionamientodelmicrocontrolador.Porejemplo,sielprogramaejecutalaadicin
(decualquiercosa)esnecesariotenerunregistroquerepresentaloquesellamasumaenvidacotidiana.Contalpropsito,unodelos
registrosdelaRAMesdenominadosumayseutilizaparaalmacenarlosresultadosdelaadicin.
MEMORIAEEPROM(ELECTRICALLYERASABLEPROGRAMMABLEROM)ROMPROGRAMABLEYBORRABLE
ELCTRICAMENTE
ElcontenidodelaEEPROMsepuedecambiarduranteelfuncionamiento(similaralaRAM),perosequedapermanentementeguardado
despusdelaprdidadelafuentedealimentacin(similaralaROM).Porlotanto,laEEPROMseutilizaconfrecuenciaparaalmacenar
losvalorescreadosduranteelfuncionamiento,quetienenqueestarpermanentementeguardados.Porejemplo,siustedhadiseadouna
llaveelectrnicaounalarma,seraestupendopermitiralusuariocreareintroducirunacontraseaporsucuenta.Porsupuesto,lanueva
contraseatienequeestarguardadaalapagarlafuentedealimentacin.Entalcasounasolucinperfectaeselmicrocontroladorconuna
EEPROMembebida.
INTERRUPCIN
Lamayoradeprogramasutilizaninterrupcionesduranteejecucindeprogramaregular.Elpropsitodelmicrocontroladorgeneralmente
consisteenreaccionaraloscambiosensuentorno.Enotraspalabras,cuandoocurrealgo,elmicrocontroladorreaccionadealguna
manera...Porejemplo,alapretarelbotndelmandoadistancia,elmicrocontroladorloregistrayrespondealcomandocambiandode
canal,subiendoobajandoelvolumenetc.Sielmicrocontroladorpasarlamayoradeltiempocomprobandovariosbotonessinpararlas
horas,losdas,estonoseranadaprctico.
Porlotanto,elmicrocontroladoraprendiuntrucodurantesuevolucin.Envezdeseguircomprobandoalgnpinobit,el
microconroladordejasutrabajodeesperaraunexpertoquereaccionarsloencasodequesucedaalgodignodeatencin.
LasealqueinformaalprocesadorcentralacercadetalacontecimientosedenominaINTERRUPCIN.
UNIDADCENTRALDEPROCESAMIENTO(CENTRALPROCESSORUNITCPU)
Comoindicasunombre,estoesunaunidadquecontrolatodoslosprocesosdentrodelmicrocontrolador.Consisteenvariasunidades
mspequeas,delasquelasmsimportantesson:
Decodificadordeinstruccioneseslapartequedescodificalasinstruccionesdelprogramayaccionaotroscircuitos
basndoseenesto.Elconjuntodeinstruccionesqueesdiferenteparacadafamiliademicrocontroladorexpresalas
capacidadesdeestecircuito
Unidadlgicaaritmtica(ArithmeticalLogicalUnitALU)realizatodaslasoperacionesmatemticasylgicas
sobredatosy
Acumuladororegistrodetrabajo.EsunregistroSFRestrechamenterelacionadoconelfuncionamientodelaALU.
Esutilizadoparaalmacenartodoslosdatossobrelosquesedeberealizaralgunaoperacin(sumar,mover).Tambin
almacenalosresultadospreparadosparaelprocesamientofuturo.UnodelosregistrosSFR,denominadoRegistro
Status(PSW),estestrechamenterelacionadoconelacumulador.Muestraelestadodeunnmeroalmacenadoen
elacumulador(elnmeroesmayoromenorqueceroetc.)encualquierinstantedado.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 11/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
BUS
Elbusestformadopor8,16omscables.Haydostiposdebuses:elbusdedireccionesyelbusdedatos.Elbusdedireccionesconsiste
entantaslneascomoseannecesariasparadireccionarlamemoria.SeutilizaparatransmitirladireccindelaCPUalamemoria.Elbus
dedatosestananchocomolosdatos,enestecasoesde8bitsolneasdeancho.Seutilizaparaconectartodosloscircuitosdentrodel
microcontrolador.
COMUNICACINENSERIE
Laconexinparalelaentreelmicrocontroladorylosperifricosatravsdelospuertosdeentrada/salidaesunasolucinperfectaparalas
distanciascortashastavariosmetros.Noobstante,enotroscasoscuandoesnecesarioestablecercomunicacinentredosdispositivosa
largasdistanciasnoesposibleutilizarlaconexinparalela.Envezdeeso,seutilizalaconexinenserie.
Hoyenda,lamayoradelosmicrocontroladoresllevanincorporadosvariossistemasdiferentesparalacomunicacinenserie,comoun
equipoestndar.Culdeestossistemasseutilizarenuncasoconcreto,dependedemuchosfactores,delosquemsimportantesson:
Concuntosdispositivoselmicrocontroladortienequeintercambiarlosdatos?
Culeslavelocidaddelintercambiodedatosobligatoria?
Culesladistanciaentrelosdispositivos?
Esnecesariotransmitiryrecibirlosdatossimultneamente?
UnadelascosasmsimportantesencuantoalacomunicacinenserieeselProtocoloquedebeserestrictamenteobservado.Esun
conjuntodereglasqueseaplicanobligatoriamenteparaquelosdispositivospuedaninterpretarcorrectamentelosdatosqueintercambian
mutuamente.Afortunadamente,losmicrocontroladoresseencargandeesoautomticamente,asqueeltrabajodeprogramador/usuario
esreducidoalaescrituraylecturadedatos.
VELOCIDADDETRANSMISINSERIAL
Lavelocidaddetransmisinserial(baudrate)eseltrminoutilizadoparadenotarelnmerodebitstransmitidosporsegundo[bps].Fjese
queestetrminoserefiereabits,ynoabytes!Elprotocolonormalmenterequierequecadabytesetransmitajuntoconvariosbitsde
control.Esoquieredecirqueunbyteenunflujodedatosserialpuedeconsistiren11bits.Porejemplo,sivelocidaddetransmisinserial
es300bpsunmximode37yunmnimode27bytessepuedentransmitirporsegundo.
Lossistemasdecomunicacinserialmsutilizadosson:
I 2C(INTERINTEGRATEDCIRCUIT)CIRCUITOINTERINTEGRADO
Circuitointerintegradoesunsistemaparaelintercambiodedatosserialentrelosmicrocontroladoresyloscircuitosintegrados
especializadosdegeneracin.Seutilizacuandoladistanciaentreellosescorta(elreceptoryeltransmisorestnnormalmenteenla
mismaplacadecircuitoimpreso).Laconexinseestablecepormediodedoslneasunaseutilizaparatransmitirlosdatos,mientrasque
laotraseutilizaparalasincronizacin(lasealdereloj).Comosemuestraenlafigura,undispositivoessiempreelprincipal(master
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 12/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
maestro),elquerealizaeldireccionamientodeunchipsubordinado(slaveesclavo)antesdequeseinicielacomunicacin.Deesta
maneraunmicrocontroladorpuedecomunicarsecon112dispositivosdiferentes.Lavelocidaddetransmisinserialesnormalmente100
Kb/seg(elmodoestndar)o10Kb/seg(mododevelocidaddetransmisinbaja).Recientementehanaparecidolossistemasconla
velocidaddetransmisinserial3.4Mb/sec.LadistanciaentrelosdispositivosquesecomunicanporelbusI2Cestlimitadaaunos
metros.
SPI(SERIALPERIPHERALINTERFACEBUS)BUSSERIALDEINTERFAZDEPERIFRICOS
Unbusserialdeinterfazdeperifricosesunsistemaparalacomunicacinserialqueutilizahastacuatrolneas(normalmentesoloson
necesariastres)pararecibirlosdatos,paratransmitirlosdatos,parasincronizary(opcional)paraseleccionareldispositivoconelquese
comunica.Estoeslaconexinfullduplex,loquesignificaquelosdatosseenvanyserecibensimultneamente.
LavelocidaddetransmisinmximaesmayorqueenelsistemadeconexinI2C.
UART(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER)TRANSMISORRECEPTORASNCRONOUNIVERSAL
Estetipodeconexinesasncrona,loquesignificaquenoseutilizaunalneaespecialparatransmitirlasealdereloj.Enalgunas
aplicacionesesterasgoescrucial(porejemplo,enmandardatosadistanciaporRFoporluzinfrarroja).Puestoqueseutilizaslouna
lneadecomunicacin,tantoelreceptorcomoeltransmisorrecibenyenvanlosdatosavelocidadmismaquehasidopredefinidapara
mantenerlasincronizacinnecesaria.Estoesunamanerasimpledetransmitirdatospuestoquebsicamenterepresentaunaconversin
dedatosde8bitsdeparaleloaserial.Lavelocidaddetransmisinnoesalta,eshasta1Mbit/sec.
OSCILADOR
Lospulsosuniformesgeneradosporelosciladorpermitenel
funcionamientoarmnicoysncronodetodosloscircuitosdel
microcontrolador.Elosciladorseconfiguranormalmentedetal
maneraqueutiliceuncristaldecuarzooresonadorcermicopara
estabilizacindefrecuencia.Adems,puedefuncionarcomoun
circuitoautnomo(comoosciladorRC).Esimportantedecirque
lasinstruccionesdelprogramanoseejecutanalavelocidad
impuestaporelmismoosciladorsinovariasvecesmsdespacio.
Esoocurreporquecadainstruccinseejecutaenvariosciclosdel
oscilador.Enalgunosmicrocontroladoressenecesitaelmismo
nmerodeciclosparaejecutartodaslasinstrucciones,mientras
queenotroseltiempodeejecucinnoeselmismoparatodaslas
instrucciones.Porconsiguiente,sielsistemautilizaelcristalde
cuarzoconunafrecuenciade20MHZ,eltiempodeejecucinde
unainstruccindeprogramanoes50nS,sino200,400o800nS
dependiendodeltipodelmicrocontrolador.
CIRCUITODEALIMENTACIN
Hayquemencionardoscosasdignasdeatencinconrelacinalcircuitodelafuentedealimentacindemicrocontroladores:
Brownoutesunestadopotencialmentepeligrosoqueocurrealapagarelmicrocontroladoroencasodequeel
voltajedelafuentedealimentacinsalgadeunosmrgenesdebidoalruidoelctrico.Comoelmicrocontrolador
disponedevarioscircuitosquefuncionananivelesdevoltajediferentes,eseestadopuedecausaruncomportamiento
descontrolado.Paraevitarlo,elmicrocontroladornormalmentetieneuncircuitoincorporadoparaelbrownoutreset.El
circuitoreiniciainmediatamenteelmicrocontroladorsielvoltajedealimentacincaepordebajodellmite.
Elpindereset(reinicio),marcadofrecuentementeconMCLR(MasterClearReset),sirveparaelreinicioexternodel
microcontroladoralaplicaruncero(0)oununo(1)lgicodependiendodeltipodelmicrocontrolador.Encasodequeel
circuitobrownoutnoestincorporado,unsimplecircuitoexternoparaelbrownoutresetsepuedeconectaralpin
MCLR.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 13/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
TEMPORIZADORES/CONTADORES
Elosciladordelmicrocontroladorutilizacristaldecuarzoparasufuncionamiento.Aunquenosetratadelasolucinmssimple,hay
muchasrazonesparautilizarlo.Lafrecuenciadelosciladoresdefinidaconprecisinymuyestable,asquesiempregeneralospulsosdel
mismoancho,loqueloshaceperfectosparamedicindetiempo.Talesosciladoresseutilizanenlosrelojesdecuarzo.Siesnecesario
medireltiempotranscurridoentredoseventos,bastaconcontarlospulsosgeneradosporesteoscilador.Estoesexactamenteloquehace
eltemporizador.
Lamayoradelosprogramasutilizaestoscronmetroselectrnicosenminiatura.GeneralmentesonregistrosSFRde8o16bitscuyo
contenidoseaumentaautomticamenteconcadapulso.Unavezquesellenaelregistro,segeneraunainterrupcin!
Sieltemporizadorutilizaelosciladordecuarzointernoparasufuncionamiento,esposiblemedireltiempoentredoseventos(elvalorde
registroenelmomentodeiniciarlamedicinesT1,enelmomentodefinalizarlamedicinesT2,eltiempotranscurridoesigualal
resultadodelarestaT2T1).Silosregistrosseaumentanconlospulsosquevienendelafuenteexterna,taltemporizadorseconvierteen
uncontador.
Estoesunaexplicacinsimpledesufuncionamiento.Esunpocomscomplicadoenprctica.
CMOFUNCIONANLOSTEMPORIZADORES?
Enprctica,lospulsosgeneradosporelosciladordecuarzosonllevadosalcircuitounavezporcadaciclodemquinadirectamenteopor
elpreescalador,loqueaumentaelnmeroenelregistrodeltemporizador.Siunainstruccin(unciclodemquina)duracuatroperodos
delosciladordecuarzo,estenmerosercambiadounmillndevecesporsegundo(cadamicrosegundo)alincorporaralcuarzoque
oscilaconunafrecuenciade4MHz.
Esfcildemedirlosintervalosdetiempocortosdelamaneradescritaanteriormente(hasta256microsegundosporqueeselmayor
nmeroqueunregistropuedecontener).Estaobviadesventajasepuedesuperardevariasmaneras:alutilizarelosciladormslento,por
medioderegistrosconmsbits,delpreescaladorodelainterrupcin.Lasprimerasdossolucionestienenalgunasdebilidadesasquese
recomiendautilizarelpreescaladory/olainterrupcin.
UTILIZARUNPREESCALADORENELFUNCIONAMIENTODELTEMPORIZADOR
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 14/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Unpreescaladoresundispositivoelectrnicoutilizadoparadividirlafrecuenciaporunfactorpredeterminado.Estoquieredecirquese
necesitallevar1,2,4omspulsosasuentradaparagenerarunpulsoalasalida.Lamayoradelosmicrocontroladoresdisponendeuno
omspreescaladoresincorporadosysutasadedivisinpuedesercambiadadentrodelprograma.Elpreescaladorseutilizacuandoes
necesariomedirlosperodosdetiempomslargos.Sieltemporizadoryeltemporizadorperroguardincompartenunpreescalador,ste
nosepuedeutilizarporlosdossimultneamente.
UTILIZARUNAINTERRUPCINENELFUNCIONAMIENTODELTEMPORIZADOR
Sielregistrodeltemporizadoresde8bits,elmayornmeroquesepuedeescribirenles255(enlosregistrosde16bitseselnmero
65.535).Siseexcedeestenmero,eltemporizadorsereiniciaautomticamenteyelconteocomienzadenuevoencero.Estoes
denominadodesbordamientoosobreflujo(overflow).Permitidoporelprograma,eldesbordamientopuedeprovocarunainterrupcin,lo
queabrecompletamentenuevasposibilidades.Porejemplo,elestadoderegistrosutilizadosparacontarsegundos,minutosodaspuede
serimplementadoenunarutinadeinterrupcin.Elprocesoentero(exceptolarutinadeinterrupcin)sellevaacabointernamente,loque
permitequeloscircuitosprincipalesdelmicrocontroladorfuncionenregularmente.
Lafiguraanteriordescribeelusodeunainterrupcinenelfuncionamientodeltemporizador.Alasignarleunpreescaladoral
temporizador,seproducenretrasosdeduracinarbitrariaconmnimainterferenciaenlaejecucindelprogramaprincipal.
CONTADORES
Siuntemporizadorsesuministraporlospulsosingresadosporelpindeentradaenelmicrocontrolador,seproduceuncontador.
Evidentemente,eselmismocircuitoelectrnico.Lanicadiferenciaesquelospulsosparacontarseingresanporelpindeentradayque
suduracin(anchura)noesdefinida.Poreso,nosepuedenutilizarparamedicindetiempo,sinoqueseutilizanparaotrospropsitos,
porejemplo:contarlosproductosenlacadenademontaje,nmeroderotacionesdelejedeunmotor,pasajerosetc.(dependiendodel
sensorutilizado.
TEMPORIZADORPERROGUARDIN(WATCHDOG)
ElperroguardinesuntemporizadorconectadoaunosciladorRCcompletamenteindependientedentrodelmicrocontrolador.
Sielperroguardinesthabilitado,cadavezquecuentahastaelmximovalorenelqueocurreeldesbordamientodelregistrosegenera
unasealdereiniciodelmicrocontroladorylaejecucindeprogramainiciaenlaprimerainstruccin.Elpuntoesevitarqueesoocurraal
utilizarelcomandoadecuado.
Laideasebasaenelhechodequecadaprogramaseejecutaenvariosbucles,mslargosocortos.Silasinstruccionesquereinicianel
temporizadorperroguardinsecolocanenlugaresestratgicosdelprograma,aparteloscomandosqueseejecutanregularmente,el
funcionamientodelperroguardinnoafectaralaejecucindelprograma.Siporcualquierrazn(ruidoselctricosfrecuentesenla
industria)elcontadordeprogramasequedaatrapadodentrodeunbucleinfinito,elvalordelregistrocontinuaraumentadoporel
temporizadorperroguardinalcanzarelmximovalor,elregistrosedesbordary,aleluya!Ocurreelreinicio!
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 15/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
CONVERTIDORA/D
Lassealesdelmundorealsonmuydiferentesdelas
queentiendeelmicrocontrolador(cerosyunos),as
quedebenserconvertidasparaqueelmicrocontrolador
puedaentenderlas.Unconvertidoranalgicodigitales
uncircuitoelectrnicoencargadodeconvertirlas
sealescontinuasennmerosdigitalesdiscretos.En
otraspalabras,estecircuitoconvierteunnmerorealen
unnmerobinarioyseloenvaalaCPUparaser
procesado.Estemduloseutilizaparamedirelvoltaje
enelpindeentrada.
Elresultadodeestamedicinesunnmero(elvalordigital)utilizadoyprocesadomstardeenelprograma.
ARQUITECTURAINTERNA
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 16/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
TodoslosmicrocontroladoresactualesutilizanunodedosmodelosbsicosdearquitecturadenominadosHarvardyvonNeumann.
SondosmanerasdiferentesdelintercambiodedatosentrelaCPUylamemoria.
ArquitecturadevonNeumann
LosmicrocontroladoresqueutilizanlaarquitecturavonNeumanndisponendeunsolo
bloquedememoriaydeunbusdedatosde8bits.Comotodoslosdatosseintercambianpor
mediodeestas8lneas,estebusestsobrecargado,ylacomunicacinporsimismaesmuy
lentaeineficaz.LaCPUpuedeleerunainstruccinoleer/escribirdatosde/enlamemoria.
Losdosprocesosnopuedenocurriralavezpuestoquelasinstruccionesylosdatosutilizan
elmismobus.Porejemplo,sialgunalneadeprogramadicequeelregistrodelamemoria
RAMllamadoSUMdebeseraumentadoporuno(instruccin:incfSUMA),el
microcontroladorharlosiguiente:
1. LeerlapartedelainstruccindeprogramaqueespecificaQUesloquedeberealizar(enestecasoesla
instruccinparaincrementarincf)
2. SeguirleyendolamismainstruccinqueespecificasobreCULdatolodeberealizar(enestecasoesel
contenidodelregistroSUMA)
3. Despusdehabersidoincrementado,elcontenidodeesteregistrosedebeescribirenelregistrodelquefue
ledo(direccindelregistroSUMA)
Elmismobusdedatosseutilizaparatodasestasoperacionesintermedias.
ARQUITECTURADEHARVARD
Losmicrocontroladoresqueutilizanestaarquitecturadisponende
dosbusesdedatosdiferentes.Unoesde8bitsdeanchoy
conectalaCPUconlamemoriaRAM.Elotroconsisteenvarias
lneas(12,14o16)yconectaalaCPUylamemoriaROM.Por
consiguiente,laCPUpuedeleerlasinstruccionesyrealizarel
accesoalamemoriadedatosalavez.Puestoquetodoslos
registrosdelamemoriaRAMsonde8bitsdeancho,todoslos
datosdentrodelmicrocontroladorqueseintercambiansondela
mismaanchura.Duranteelprocesodelaescrituradeprograma,
slosemanejanlosdatosde8bits.Enotraspalabras,todoloque
ustedpodrcambiarenelprogramayaloquepodrafectarser
de8bitsdeancho.Todoslosprogramasescritosparaestos
microcontroladoressernalmacenadosenlamemoriaROM
internadelmicrocontroladordespusdehabersidocompiladosa
cdigomquina.Noobstante,estaslocalidadesdememoriaROM
notienen8,sino12,14o16bits.4,6o8bitsadicionalesrepresentanunainstruccinqueespecificaalaCPUquhacerconlosdatosde
8bits.
Lasventajasdeestediseosonlassiguientes:
Todoslosdatosenelprogramasondeunbyte(8bits)deancho.Comounbusdedatosutilizadoparalecturade
programatieneunaslneasms(12,14o16),tantolainstruccincomoeldatosepuedenleersimultneamenteal
utilizarestosbitsadicionales.Poreso,todaslasinstruccionesseejecutanenunciclosalvolasinstruccionesde
saltoquesondedosciclos.
Elhechodequeunprograma(laROM)ylosdatostemporales(laRAM)estnseparados,permitealaCPUpoder
ejecutardosinstruccionessimultneamente.Dichodemanerasencilla,mientrasqueserealizalalecturaoescritura
delaRAM(quemarcaelfindeunainstruccin),lasiguienteinstruccinseleepormediodeotrobus.
EnlosmicrocontroladoresqueutilizanlaarquitecturadevonNeumann,nuncasesabecuntamemoriaocuparalgn
programa.Generalmente,lamayoradelasinstruccionesdeprogramaocupandoslocalidadesdememoria(una
contieneinformacinsobreQUsedeberealizar,mientrasquelaotracontieneinformacinsobreCULdatose
deberealizar).Sinembargo,estonoesunafrmulargida,sinoelcasomsfrecuente.Enlosmicrocontroladoresque
utilizanunaarquitecturaHarvard,elbusdelapalabradeprogramaesmsanchoqueunbyte,loquepermiteque
cadapalabradeprogramaestcompuestoporunainstruccinyundato.Enotraspalabras,unalocalidaddememoria
unainstruccindeprograma.
JUEGODEINSTRUCCIONES
ElnombrecolectivodetodaslasinstruccionesquepuedeentenderelmicrocontroladoresllamadoJuegodeInstrucciones.Cuandose
escribeunprogramaenensamblador,enrealidadseespecificaninstruccionesenelordenenelquedebenserejecutadas.Larestriccin
principaleselnmerodeinstruccionesdisponibles.Losfabricantesaceptancualquieradelosdosenfoquesdescritosacontinuacin:
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 17/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
RISC(ReducedInstructionSetComputer)ComputadoraconJuegodeInstruccionesReducidas
Enestecasolaideaesqueelmicrocontroladorreconoceyejecutaslooperacionesbsicas(sumar,restar,copiaretc...)Lasoperaciones
mscomplicadasserealizanalcombinarstas(porejemplo,multiplicacinsellevaacaboalrealizaradicinsucesiva).Escomointentar
explicarleaalguienconpocaspalabrascmollegaralaeropuertoenunanuevaciudad.Sinembargo,notodoestanoscuro.Adems,el
microcontroladoresmuyrpidoasquenoesposiblevertodaslasacrobaciasaritmticasquerealiza.Elusuarioslopuedeverel
resultadofinaldetodaslasoperaciones.Porltimo,noestandifcilexplicardndeestelaeropuertosiseutilizanlaspalabrasadecuadas
talescomo:aladerecha,alaizquierda,elkilmetroetc.
CISC(ComplexInstructionSetComputer)Computadorasconunjuegodeinstruccionescomplejo
CISCesopuestoaRISC!Losmicrocontroladoresdiseadosparareconocermsde200instruccionesdiferentesrealmentepueden
realizarmuchascosasaaltavelocidad.Noobstante,unodebesabercmoutilizartodaslasposibilidadesqueofreceunlenguajetanrico,
loquenoessiempretanfcil...
CMOELEGIRUNMICROCONTROLADOR?
Bueno,siustedesprincipiante,yhatomadodecisindetrabajarconlosmicrocontroladores.Felicitacionesporlaeleccin!Noobstante,a
primeravista,noesfcillaeleccindelmicrocontroladormsadecuadocomoparecealaprimeravista.Elproblemanoeselpequeo
rangodedispositivosaelegir,sinotodolocontrario!
Antesdeempezaradisearundispositivobasadoenunmicrocontrolador,tomeencuentalosiguiente:cuntasentradas/lneasson
necesariasparasufuncionamiento,realizaraeldispositivootrasoperacionesademsencender/apagarunrel,necesitaalgnmodulo
especializadotalcomoeldecomunicacinenserie,convertidorA/Detc.Cuandoustedtieneunaclaraimagendeloquequiere,elrango
deseleccinsereduceconsiderablemente,ylequedapensarenelprecio.Vaatenervariosdispositivos?Varioscientos?Unmilln?
Detodosmodosahoraesmsclaro.
Siestpensandoentodasestascosasporprimeravez,todoleparecerunpococonfuso.Poresarazn,vayapasoapaso.Antesque
nada,seleccionealfabricante,esdecir,lafamiliademicrocontroladoresqueofrece.Luego,aprendaatrabajarconunmodeloparticular.
Sloaprendaloquenecesiteaprender,noentredemasiadoendetalles.Resuelvaelproblemaespecficoylepasarunacosaincreble
sercapazdemanejarcualquiermodelodelmismofabricante...
Msomenos,todosepareceamontarenbicicleta:despusdevariascadasinevitablesenelprincipio,sercapazdemantenerel
equilibrioymontarencualquierotrabicicleta.Porsupuesto,nuncaseolvidatantodemontarenbicicleta,comodeladestrezade
programacin!
1.4MICROCONTROLADORESPIC
LosmicrocontroladoresPICdesarrolladosporMicrochipTechnologysonprobablementelamejoropcinsiesprincipiante.Hayvarias
razonesporloqueestoesverdadero...
ElnombreverdaderodeestemicrocontroladoresPICmicro(PeripheralInterfaceController),conocidobajoelnombrePIC.Suprimer
antecesorfuecreadoen1975porlacompaaGeneralInstruments.EstechipdenominadoPIC1650fuediseadoparapropsitos
completamentediferentes.Diezaosmstarde,alaadirunamemoriaEEPROM,estecircuitoseconvirtienunverdadero
microcontroladorPIC.HaceunospocosaoslacompaaMicrochipTechnologyfabricla5billonsimamuestra.Siestinteresadoen
aprendermssobreeso,sigaleyendo.
Ifyouareinterestedinlearningmoreaboutit,justkeeponreading.
Laideaprincipaldeestelibroesproporcionarlainformacinnecesariaalusuarioparaqueseacapazdeutilizarlosmicrocontroladoresen
laprcticadespusdeleerlo.Paraevitarexplicacionespesadasylashistoriasinfinitassobrelascaractersticastilesdelos
microcontroladoresdiferentes,estelibrodescribeelfuncionamientodeunmodeloparticularquepertenecealaclasemediaalta.Es
PIC16F887bastantepoderosoparaserdignodeatencinybastantesimpleparapoderserutilizadoporcualquiera.As,lossiguientes
captulosdescribenestemicrocontroladorendetalleytambinserefierenalafamiliaPICentera.
Resolucin
Frecuencia
ROM RAM Entradas del Temporizadores Comunicacin Salidas
Familia Pines dereloj. Comparadores Otros
[Kbytes] [bytes] A/D convertidor de8/16bits serial PWM
[MHz]
A/D
Arquitecturadelagamabajade8bits,palabradeinstruccinde12bits
0.375
PIC10FXXX 1624 68 48 02 8 01 1x8
0.75
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 18/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
0.75
PIC12FXXX 2538 8 48 03 8 01 1x8 EEPROM
1.5
25 14
PIC16FXXX 0.753 20 03 8 02 1x8 EEPROM
134 44
18 Vdd=
PIC16HVXXX 1.5 25 20 1x8
20 15V
Arquitecturadelagamamediade8bits,palabradeinstruccinde14bits
1.75 64
PIC12FXXX 8 20 04 10 1 12x81x16 01 EEPROM
3.5 128
64 14
PIC16FXXX 1.7514 20 013 8or10 02 12x81x16 USARTI2CSPI 03
368 64
1.75 64 14
PIC16HVXXX 20 012 10 2 2x81x16 USARTI2CSPI
3.5 128 20
Arquitecturadelagamaaltade8bits,palabradeinstruccinde16bits
USB2.0
256 18 02x823x
PIC18FXXX 4128 3248 416 10or12 03 CAN2.0USART 05
3936 80 16
I2CSPI
USB2.0USART
1024 28 02x823x
PIC18FXXJXX 8128 4048 1016 10 2 EthernetI2C 25
3936 100 16
SPI
768 28
PIC18FXXKXX 864 64 1013 10 2 1x83x16 USARTI2CSPI 2
3936 44
TodoslosmicrocontroladoresPICutilizanunaarquitecturaHarvard,loquequieredecirquesumemoriadeprogramaestconectadaala
CPUpormsde8lneas.Haymicrocontroladoresde12,14y16bits,dependiendodelaanchuradelbus.Latablaanteriormuestralas
caractersticasprincipalesdeestastrescategoras.
Comosepuedeverenlatabladelapginaanterior,salvolosmonstruosde16bitsPIC24FXXXyPIC24HXXXtodoslos
microcontroladorestienenlaarquitecturaHarvardde8bitsypertenecenaunadelastresgrandesgrupos.Poreso,dependiendodel
tamaodepalabradeprogramaexistenlaprimera,lasegundaylaterceracategorademicrocontroladores,esdecirmicrocontroladores
de12,14o16bits.Puestoquedisponendelncleosimilarde8bits,todosutilizanelmismojuegodeinstruccionesyelesqueletobsico
dehardwareconectadoamsomenosunidadesperifricas.
LosmicrocontroladoresPICconpalabrasdeprogramade14bitsparecenserlamejoropcinparalosprincipiantes.Aquestelporqu...
JUEGODEINSTRUCCIONES
Eljuegodeinstruccionesparalosmicrocontroladores16F8XXincluye35instruccionesentotal.Laraznparaunnmerotanreducidode
instruccionesyaceenlaarquietecturaRISC.Estoquieredecirquelasinstruccionessonbienoptimizadasdesdeelaspectodelavelocidad
operativa,lasencillezdelaarquitecturaylacompacidaddelcdigo.LomalodelaarquitecturaRISCesqueseesperadelprogramador
quehagafrenteaestasinstrucciones.Porsupuesto,estoesrelevanteslosiseutilizaellenguajeensambladorparalaprogramacin.
EstelibroserefierealaprogramacinenellenguajedealtonivelC,loquesignificaquelamayorpartedeltrabajoyafuehechopor
alguienms.As,slosetienenqueutilizarinstruccionesrelativamentesimples.
TIEMPODEEJECUCINDEINSTRUCCIONES
Todaslasinstruccionesseejecutanenunciclo.Lanicasexcepcionespuedenserlasinstruccionesderamificacincondicionalolas
instruccionesquecambianelcontenidodelcontadordeprograma.Enamboscasos,dosciclosderelojsonnecesariosparalaejecucin
delainstruccin,mientrasqueelsegundocicloseejecutacomounNOP(Nooperation).Lasinstruccionesdeuncicloconsistenencuatro
ciclosdereloj.Siseutilizaunosciladorde4MHz,eltiemponominalparalaejecucindelainstruccines1S.Encuantoalas
instruccionesderamificacin,eltiempodeejecucindelainstruccines2S.
JuegodeinstruccionesdelosmicrocontroladoresPICde14bits:
Instruccionesparalatransmisindedatos
Instruccionesaritmticolgicas
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 19/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
IORLWk ORinclusivodeWconliteral WORk>W Z 1
RotarFalaizquierdaatravsdelbitde
RLFf,d C 1 1,2
Acarreo
RotarFaladerechaatravsdelbitde
RRFf,d C 1 1,2
Acarreo
Instruccionesorientadasabit
Instruccionesdecontroldeprograma
1,2,
DECFSZf,d Disminuirfen1.Saltarsielresultadoes0 f1>dskipifZ=1 1(2)
3
1,2,
INCFSZf,d Incrementarfen1.Saltarsielresultadoes1 f+1>dskipifZ=0 1(2)
3
Otrasinstrucciones
0>WDT,1>TO,1>
CLRWDT Reiniciareltemporizadorperroguardin TO,PD 1
PD
0>WDT,1>TO,0>
SLEEP Ponerenestadodereposo TO,PD 1
PD
*1SiunregistrodeE/Sestmodificado,elvalorutilizadoserelvalorpresentadoenlospinesdelmicrocontrolador.
*2SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
*3SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 20/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
ArquitecturadelosmicrocontroladoresPICde8bits.Culesdeestosmdulospertenecernalmicrocontrolador,dependerdeltipode
microcontrolador.
tableofcontents|nextchapter
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 21/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
PIC32Solution AVRSolution TivaCDev.Boards FT90xSolution Addonboards GPS
PIC32Dev.Boards AVRDev.Boards TivaCCompilers FT90xDev.Boards ClickBoards GSM/GPRS
PIC32Compilers AVRCompilers TivaCProgrammers FT90xCompilers ClickPacks
PIC32Programmers AVRProgrammers TivaCKits FT90xProgrammers mikromediashields
PIC32Kits AVRKits FT90xKits Communication
Copyright19982015.MikroElektronika.Allrightsreserved.Alltradeand/orservicesmarksmentionedarethepropertyoftheirrespectiveowners.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 22/22