Professional Documents
Culture Documents
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Products
Solutions
Store
Distributors
Libstock
ContactUs
searchhere
Login|Cart(0)
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinen
Cconejemplos
FeaturedDevelopmentTools
EasyPICv7DevelopmentSystem
Capitulo1:Elmundodelosmicrocontroladores
Lasituacinactualenelcampodelosmicrocontroladoressehaproducidograciasaldesarrollodelatecnologadefabricacindelos
circuitosintegrados.Estedesarrollohapermitidoconstruirlascentenasdemilesdetransistoresenunchip.Estofueunacondicinprevia
paralafabricacindeunmicroprocesador.Lasprimerasmicrocomputadorassefabricaronalaadirlesperifricosexternos,talescomo
memoria,lneasdeentrada/salida,temporizadoresuotros.Elincrementoposteriordeladensidaddeintegracinpermiticrearuncircuito
integradoquecontenatantoalprocesadorcomoperifricos.Asescmofuedesarrolladalaprimeramicrocomputadoraenunsolochip,
denominadamstardemicrocontrolador.
1.1Introduccin
1.2NMEROS,NMEROS,NMEROS...
1.3DETALLESIMPORTANTES
1.4MICROCONTROLADORESPIC
1.1INTRODUCCIN
Losprincipiantesenelectrnicacreenqueunmicrocontroladoresigualaunmicroprocesador.Estonoescierto.Difierenunodelotroen
muchossentidos.Laprimeraylamsimportantediferenciaessufuncionalidad.Parautilizaralmicroprocesadorenunaaplicacinreal,se
debedeconectarconcomponentestalescomomemoriaocomponentesbusesdetransmisindedatos.Aunqueelmicroprocesadorse
consideraunamquinadecomputacinpoderosa,noestpreparadoparalacomunicacinconlosdispositivosperifricosquesele
EasyPICv7istopsellingPIC
DevelopmentBoardfor250Microchip
PICMCUsinDIPpackaging.Itfeatures
USB2.0programmer/debuggerandover
17essentialmodulesnecessaryin
development.Boardcomeswith
PIC18F45K22.[moreinfo]
FeaturedCompilers
mikroCPROforPIC
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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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
31/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.
Familia
ROM
[Kbytes]
RAM
[bytes]
Pines
Frecuencia
dereloj.
[MHz]
Entradas
A/D
Resolucin
del
convertidor
A/D
Comparadores
Temporizadores
de8/16bits
Comunicacin
serial
Salidas
PWM
Otros
Arquitecturadelagamabajade8bits,palabradeinstruccinde12bits
PIC10FXXX
0.375
0.75
1624
68
48
02
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/
01
1x8
18/22
31/10/2015
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
PIC12FXXX
0.75
1.5
2538
48
03
01
1x8
EEPROM
PIC16FXXX
0.753
25
134
14
44
20
03
02
1x8
EEPROM
PIC16HVXXX
1.5
25
18
20
20
1x8
Vdd=
15V
PIC12FXXX
1.75
3.5
64
128
PIC12HVXXX
1.75
PIC16FXXX
PIC16HVXXX
Arquitecturadelagamamediade8bits,palabradeinstruccinde14bits
8
20
04
10
12x81x16
01
EEPROM
64
20
04
10
12x81x16
01
1.7514
64
368
14
64
20
013
8or10
02
12x81x16
USARTI2CSPI
03
1.75
3.5
64
128
14
20
20
012
10
2x81x16
USARTI2CSPI
Arquitecturadelagamaaltade8bits,palabradeinstruccinde16bits
PIC18FXXX
4128
256
3936
18
80
3248
416
10or12
03
02x823x
16
USB2.0
CAN2.0USART
I2CSPI
05
PIC18FXXJXX
8128
1024
3936
28
100
4048
1016
10
02x823x
16
USB2.0USART
EthernetI2C
SPI
25
PIC18FXXKXX
864
768
3936
28
44
64
1013
10
1x83x16
USARTI2CSPI
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:
INST RUCCI N
DESCRIPCI N
O PERACI N
BANDERA
CLK
Instruccionesparalatransmisindedatos
MOVLWk
MoverliteralaW
k>w
MOVWFf
MoverelcontenidodeWaf
W>f
MOVFf,d
Moverelcontenidodefad
f>d
CLRW
BorrarelcontenidodeW
0>W
1,2
CLRFf
Borrarelcontenidodef
0>f
SWAPFf,d
Intercambiardenibblesenf
f(7:4),(3:0)>f(3:0),(7:4)
ADDLWk
SumarliteralaW
ADDWFf,d
SUBLWk
1
1
1,2
Instruccionesaritmticolgicas
W+k>W
C,DC,Z
SumarelcontenidodeWyf
W+f>d
C,DC,Z
RestarWdeliteral
kW>W
C,DC,Z
SUBWFf,d
RestarWdef
fW>d
C,DC,Z
ANDLWk
ANDWconliteral
WANDk>W
ANDWFf,d
ANDWconf
WANDf>d
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/
1,2
1,2
1,2
19/22
31/10/2015
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
IORLWk
ORinclusivodeWconliteral
WORk>W
IORWFf,d
ORinclusivodeWconf
WORf>d
1,2
XORWFf,d
ORexclusivodeWconliteral
WXORk>W
1,2
XORLWk
ORexclusivodeWconf
WXORf>d
INCFf,d
Sumar1af
f+1>f
1,2
DECFf,d
Restar1af
f1>f
1,2
RLFf,d
RotarFalaizquierdaatravsdelbitde
Acarreo
1,2
RRFf,d
RotarFaladerechaatravsdelbitde
Acarreo
1,2
COMFf,d
Complementarf
1,2
f>d
Instruccionesorientadasabit
BCFf,b
Ponera0elbitbdelregistrof
0>f(b)
1,2
BSFf,b
Ponera1elbitbdelregistrof
1>f(b)
1,2
Instruccionesdecontroldeprograma
BTFSCf,b
Saltarsibitbderegistrofes0
Skipiff(b)=0
1(2)
BTFSSf,b
Saltarsibitbdereg.fes1
Skipiff(b)=1
1(2)
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
CALLk
Llamaraunasubrutina
PC>TOS,k>PC
RETURN
Retornardeunasubrutina
TOS>PC
RETLWk
RetornarconliteralenW
k>W,TOS>PC
RETFIE
Retornardeunainterupcin
TOS>PC,1>GIE
NOP
Nooperacin
TOS>PC,1>GIE
CLRWDT
Reiniciareltemporizadorperroguardin
0>WDT,1>TO,1>
PD
TO,PD
SLEEP
Ponerenestadodereposo
0>WDT,1>TO,0>
PD
TO,PD
Otrasinstrucciones
1
*1SiunregistrodeE/Sestmodificado,elvalorutilizadoserelvalorpresentadoenlospinesdelmicrocontrolador.
*2SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
*3SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/
20/22
31/10/2015
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
ArquitecturadelosmicrocontroladoresPICde8bits.Culesdeestosmdulospertenecernalmicrocontrolador,dependerdeltipode
microcontrolador.
tableofcontents|nextchapter
dsPICSolution
STM32Solution
8051Solution
AdditionalSoftware
Storage
PICDev.Boards
dsPICDev.Boards
STM32Dev.Boards
8051Dev.Boards
VisualTFT
RealTimeClock
PICCompilers
dsPICCompilers
STM32Compilers
8051Compilers
VisualGLCD
Display
PICProgrammers
dsPICProgrammers
STM32Programmers
8051Programmers
PackageManager
Measurement
PICKits
dsPICKits
STM32Kits
8051Books
GLCDFontCreator
Audio&Voice
PICBooks
dsPICBooks
8051Kits
TimerCalculator
PowerSupply
TivaCSeriesSolution
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/
21/22
31/10/2015
ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
PIC32Solution
AVRSolution
TivaCDev.Boards
FT90xSolution
Addonboards
PIC32Dev.Boards
AVRDev.Boards
TivaCCompilers
FT90xDev.Boards
ClickBoards
PIC32Compilers
AVRCompilers
TivaCProgrammers
FT90xCompilers
ClickPacks
PIC32Programmers
AVRProgrammers
TivaCKits
FT90xProgrammers
mikromediashields
PIC32Kits
AVRKits
FT90xKits
Communication
Support
Forum
mikroBUS
Letsmake
Press
Legal
Archive
GPS
GSM/GPRS
AboutUs
Customization
Copyright19982015.MikroElektronika.Allrightsreserved.Alltradeand/orservicesmarksmentionedarethepropertyoftheirrespectiveowners.
http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/
22/22