You are on page 1of 22

31/10/2015

ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Products

Solutions

Store

Distributors

Libstock

ContactUs

searchhere

Login|Cart(0)

ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinen
Cconejemplos

FeaturedDevelopmentTools
EasyPICv7DevelopmentSystem

TOC Capitulo1 Capitulo2 Capitulo3 Capitulo4 ApndiceA

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

MikroElektronika Embedded Solutions


PICSolution

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

You might also like