You are on page 1of 22

11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

Products Solutions Store Distributors Libstock ContactUs searchhere

Login|Cart(0)

ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinen FeaturedDevelopmentTools

Cconejemplos EasyPICv7DevelopmentSystem

TOC Capitulo1 Capitulo2 Capitulo3 Capitulo4 ApndiceA

Capitulo1:Elmundodelosmicrocontroladores

Lasituacinactualenelcampodelosmicrocontroladoressehaproducidograciasaldesarrollodelatecnologadefabricacindelos
circuitosintegrados.Estedesarrollohapermitidoconstruirlascentenasdemilesdetransistoresenunchip.Estofueunacondicinprevia
paralafabricacindeunmicroprocesador.Lasprimerasmicrocomputadorassefabricaronalaadirlesperifricosexternos,talescomo
memoria,lneasdeentrada/salida,temporizadoresuotros.Elincrementoposteriordeladensidaddeintegracinpermiticrearuncircuito
integradoquecontenatantoalprocesadorcomoperifricos.Asescmofuedesarrolladalaprimeramicrocomputadoraenunsolochip,
denominadamstardemicrocontrolador. EasyPICv7istopsellingPIC
DevelopmentBoardfor250Microchip
1.1Introduccin PICMCUsinDIPpackaging.Itfeatures
1.2NMEROS,NMEROS,NMEROS... USB2.0programmer/debuggerandover
17essentialmodulesnecessaryin
1.3DETALLESIMPORTANTES
development.Boardcomeswith
1.4MICROCONTROLADORESPIC PIC18F45K22.[moreinfo]

1.1INTRODUCCIN
FeaturedCompilers
Losprincipiantesenelectrnicacreenqueunmicrocontroladoresigualaunmicroprocesador.Estonoescierto.Difierenunodelotroen
mikroCPROforPIC
muchossentidos.Laprimeraylamsimportantediferenciaessufuncionalidad.Parautilizaralmicroprocesadorenunaaplicacinreal,se
debedeconectarconcomponentestalescomomemoriaocomponentesbusesdetransmisindedatos.Aunqueelmicroprocesadorse
consideraunamquinadecomputacinpoderosa,noestpreparadoparalacomunicacinconlosdispositivosperifricosquesele
conectan.Paraqueelmicroprocesadorsecomuniqueconalgnperifrico,sedebenutilizarloscircuitosespeciales.Aseraenelprincipio
yestaprcticasiguevigenteenlaactualidad.

PopularPICmicocontrollersareloved
byhobbyistsand8bitgeeks.mikroC
helpsyoubringyourideastolifeeasyas
neverbefore.[moreinfo]

Porotrolado,almicrocontroladorselediseadetalmaneraquetengatodaslascomponentesintegradasenelmismochip.Nonecesita
deotroscomponentesespecializadosparasuaplicacin,porquetodosloscircuitosnecesarios,quedeotramaneracorrespondanalos
perifricos,yaseencuentranincorporados.Asseahorratiempoyespacionecesarioparaconstruirundispositivo.

QUEPUEDENHACERLOSMICROCONTROLADORES?

Paraentenderconmsfacilidadlasrazonesdelxitotangrandedelosmicrocontroladores,vamosaprestaratencinalsiguiente
ejemplo.Haceunos10aos,disearundispositivoelectrnicodecontroldeunascensordeunedificiodevariospisoseramuydifcil,
inclusoparaunequipodeexpertos.Hapensadoalgunavezenqurequisitosdebecumplirunsimpleascensor?Cmolidiarconla
situacincuandodosomspersonasllamanalascensoralmismotiempo?Culllamadatienelaprioridad?Cmosolucionarlas
cuestionesdeseguridad,deprdidadeelectricidad,defallos,deusoindebido?Loquesucededespusderesolverestosproblemas

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 1/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
bsicosesunprocesometiculosodedisearlosdispositivosadecuadosutilizandoungrannmerodeloschipsespecializados.Este
procesopuedetardarsemanasomeses,dependiendodelacomplejidaddeldispositivo.Cuandohayaterminadoelproceso,llegalahora
dedisearunaplacadecircuitoimpresoydemontareldispositivo.Undispositivoenorme!Esotrotrabajodifcilytardado.Porltimo,
cuandotodoestterminadoyprobadoadecuadamente,pasamosalmomentocrucialyescuandounoseconcentra,respira
profundamenteyenciendelafuentedealimentacin.

Estosueleserelpuntoenelquelafiestaseconvierteenunverdaderotrabajopuestoquelosdispositivoselectrnicoscasinunca
funcionanapropiadamentedesdeelinicio.Prepreseparamuchasnochessindormir,correcciones,mejoras...ynoseolvidedeque
todavaestamoshablandodecmoponerenmarchaunsimpleascensor.

Cuandoeldispositivofinalmenteempieceafuncionarperfectamenteytodoelmundoestsatisfecho,ylepaguenporeltrabajoqueha
hecho,muchascompaasdedesarrolloestarninteresadasensutrabajo.Porsupuesto,sitienesuerte,cadadaletraerunaofertade
trabajodeunnuevoinversionista.Sinembargo,silorequierenparatrabajarenelcontroldeloselevadoresdeunnuevoedificioquetiene
cuatropisosmsdelosqueyamanejasusistemadecontrol.Sabecmoproceder?Creeacasoquesepuedencontrolarlasdemandas
desusclientes?Pensamosqueustedvaaconstruirundispositivouniversalquesepuedeutilizarenlosedificiosde4a40pisos,unaobra
maestradeelectrnica.Bueno,inclusosiustedconsigueconstruirunajoyaelectrnica,suinversionistaleesperarardelantedelapuerta
pidiendounacmaraenelascensorounamsicarelajanteencasodefallodeascensor.Ounascensorcondospuertas.

Detodosmodos,laleydeMurphyesinexorableysindudaustednopodrtomarventajaapesardetodoslosesfuerzosquehahecho.Por
desgracia,todoloquesehadichohastaahorasucedeenlarealidad.Estoesloquededicarsealaingenieraelectrnicarealmente
significa.Esascomosehacanlascosashastaaparicindelosmicrocontroladoresdiseadospequeos,potentesybaratos.Desdeese
momentosuprogramacindejdeserunaciencia,ytodotomotradireccin...

Eldispositivoelectrnicocapazdecontrolarunpequeosubmarino,unagraounascensorcomoelanteriormentemencionado,ahora
estincorporadoenunslochip.Losmicrocontroladoresofrecenunaampliagamadeaplicacionesysloalgunasseexploran
normalmente.Letocaausteddecidirququierequehagaelmicrocontroladorycargarunprogramaenlconlasinstrucciones
apropiadas.Antesdeencendereldispositivoesrecomendableverificarsufuncionamientoconayudadeunsimulador.Sitodofunciona
comoesdebido,incorporeelmicrocontroladorenelsistema.Sialgunaveznecesitacambiar,mejoraroactualizarelprograma,hgalo.
Hastacundo?Hastaquedarsatisfecho.Esopuederealizarsesinningnproblema.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 2/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

Sabaustedquetodaslaspersonaspuedenserclasificadasenunode10grupos,enlosqueestnfamiliarizadosconelsistemade
numeracinbinarioyenlosquenoestnfamiliarizadosconl.Sinoentendiloanteriorsignificaquetodavapertenecealsegundo
grupo.Sideseacambiarsuestado,leaelsiguientetextoquedescribebrevementealgunosdelosconceptosbsicosutilizadosmstarde
enestelibro(sloparaestarsegurodequeestamoshablandoenlosmismostrminos).

1.2NMEROS,NMEROS,NMEROS...

Lamatemticaesunagranciencia!Todoestanlgicoysimple...Eluniversodelosnmerossepuededescribirconslodiezdgitos.No
obstante,realmentetienequeseras?Necesitamosexactamenteesos10dgitos?Porsupuestoqueno,esslocuestindelhbito.
Acurdesedelasleccionesdelaescuela.Porejemplo,qusignificaelnmero764?Cuatrounidades,seisdecenasysietecentenas.
Muysimple!Sepodraexpresardeunaformamsdesarrollada?Porsupuestoques:4+60+700.Anmsdesarrollado?S:4*1+
6*10+7*100.Podraestenmeroparecerunpocomscientfico?Larespuestaessotravez:4*100+6*101+7*102.Qusignifica
estorealmente?Porquutilizamosexactamenteestosnmeros100,101y102?Porquessiempreelnmero10?Esporque

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 3/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
utilizamos10dgitosdiferentes(0,1,2...8,9).Enotraspalabras,esporqueutilizamoselsistemadenumeracinenbase10,esdecirel
sistemadenumeracindecimal.

SISTEMADENUMERACINBINARIO

Qupasarasiutilizramosslodosnmeros0y1?Sislopudiramosafirmar(1)onegar(0)quealgoexiste.Larespuestaesnada
especial,seguiramosutilizandolosmismosnmerosdelamismamaneraqueutilizamoshoyenda,noobstanteellospareceranun
pocodiferentes.Porejemplo:11011010.Cuntassonrealmente11011010pginasdeunlibro?Paraentenderlo,sigalamismalgica
comoenelejemploanterior,peroenelordeninvertido.Tengaencuentaquesetratadearitmticaconslodosdgitos0y1,esdecir,del
sistemadenumeracinenbase2(sistemadenumeracinbinario).

Evidentemente,setratadelmismonmerorepresentadoendossistemasdenumeracindiferentes.Lanicadiferenciaentreestasdos
representacionesyaceenelnmerodedgitosnecesariosparaescribirunnmero.Undgito(2)seutilizaparaescribirelnmero2enel
sistemadecimal,mientrasquedosdgitos(1y0)seutilizanparaescribiraquelnmeroenelsistemabinario.Ahoraestdeacuerdoque
hay10gruposdegente?Bienvenidoalmundodelaaritmticabinaria!Tienealgunaideadedndeseutiliza?

Exceptoenlascondicionesdelaboratorioestrictamentecontroladas,loscircuitoselectrnicosmscomplicadosnopuedenespecificarcon
exactitudladiferenciaentredosmagnitudes(dosvaloresdevoltaje,porejemplo),sisondemasiadopequeos(mspequeosqueunos
pocosvoltios).Laraznsonlosruidoselctricosyfenmenosquesepresentandentrodeloquellamamosentornodetrabajoreal
(algunosejemplosdeestosfenmenossonloscambiosimprevisiblesdelatensindealimentacin,cambiosdetemperatura,toleranciaa
losvaloresdeloscomponentesetc...).Imagneseunacomputadoraqueoperasobrenmerosdecimalesaltratarlosdelasiguiente
manera:0=0V,1=5V,2=10V,3=15V,4=20V...9=45V!?

Alguiendijobateras?

Unasolucinmuchomsfcilesunalgicabinariadonde0indicalaausenciadevoltaje,mientrasque1indicalapresenciadevoltaje.
Simplemente,esfcildeescribir0o1envezdenohayvoltajeohayvoltaje.Medianteelcerolgico(0)yunolgico(1)laelectrnica
seenfrentaperfectamenteyrealizaconfacilidadtodaslasoperacionesaritmticas.Evidentemente,setratadeelectrnicaqueenrealidad

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 4/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
aplicaaritmticaenlaquetodoslosnmerossonrepresentadosconslodosdgitosydondesloesimportantesabersihayvoltajeono.
Porsupuesto,estamoshablandodeelectrnicadigital.

SISTEMADENUMERACINHEXADECIMAL

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

Elmayornmeroquepuedeserrepresentadocon4dgitosbinarioseselnmero1111.Correspondealnmero15enelsistemadecimal.
EnelsistemahexadecimalesenmeroserepresentaconsloundgitoF.Eselmayornmerodeundgitoenelsistemahexadecimal.
Sedacuentadelagranutilidaddeestasequivalencias?Elmayornmeroescritoconochodgitosbinariosesalavezelmayornmero
dedosdgitosenelsistemahexadecimal.Tengaencuentaqueunacomputadorautilizanmerosbinariosde8dgitos.Acasosetratade
unacasualidad?

CDIGOBCD

ElcdigoBCD(BinaryCodedDecimalCdigobinariodecimal)esuncdigobinarioutilizadopararepresentaralosnmerosdecimales.
Seutilizaparaqueloscircuitoselectrnicospuedancomunicarseconlosperifricosutilizandoelsistemadenumeracindecimalobien
utilizandoelsistemabinariodentrodesupropiomundo.Consisteennmerosbinariosde4dgitosquerepresentanlosprimerosdiez
dgitos(0,1,2,3...8,9).Aunquecuatrodgitospuedenhacer16combinacionesposiblesentotal,elcdigoBCDnormalmenteutilizaalas
primerasdiez.

CONVERSINDESISTEMASDENMERACIN

Elsistemadenumeracinbinarioeselqueutilizanlosmicrocontroladores,elsistemadecimaleselquenosresultamscomprensible,
mientrasqueelsistemahexadecimalpresentaunbalanceentrelosdos.Poreso,esmuyimportanteaprendercmoconvertirlosnmeros
deunsistemadenumeracinaotro,porejemplo,cmoconvertirunaseriedecerosyunosaunaformaderepresentacincomprensible
paranosotros.

CONVERSINDENMEROSBINARIOSADECIMALES

Losdgitosenunnmerobinariotienenponderacionesdiferentesloquedependedesusposicionesdentrodelnmeroqueestn
representando.Adems,cadadgitopuedeser1o0,ysuponderacinsepuededeterminarconfacilidadalcontarsuposicin
empezandoporladerecha.Parahacerunaconversindeunnmerobinarioadecimalesnecesariomultiplicarlasponderacionesconlos
dgitoscorrespondientes(0o1)ysumartodoslosresultados.Lamagiadelaconversindeunnmerobinarioadecimalfuncionade
maravilla...Tieneduda?Veamoselsiguienteejemplo:

Cabedestacarqueesnecesarioutilizarslodosdgitosbinariospararepresentaratodoslosnmerosdecimalesde0a3.Por
consiguiente,pararepresentarlosnmerosde0a7esnecesarioutilizartresdgitosbinarios,pararepresentarlosnmerosde0a15
cuatrodgitosetc.Dichodemanerasencilla,elmayornmerobinarioquesepuederepresentarutilizandondgitosseobtienealelevarla
base2alapotencian.Luego,alresultadoseleresta1.Porejemplo,sin=4:

24 1=161=15

Porconsiguiente,alutilizar4dgitosbinarios,esposiblerepresentarlosnmerosdecimalesde0a15,queson16valoresdiferentesen
total.

CONVERSINDENMEROSHEXADECIMALESADECIMALES

Pararealizarunaconversindeunnmerohexadecimaladecimal,cadadgitohexadecimaldebesermultiplicadoconelnmero16
elevadoalvalordesuposicin.Porejemplo:

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 5/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

CONVERSINDENMEROSHEXADECIMALESABINARIOS

Noesnecesariorealizarningnclculoparaconvertirunnmerohexadecimalabinario.Losdgitoshexadecimalessereemplazan
simplementeporloscuatrodgitosbinariosapropiados.Yaqueeldgitohexadecimalmximoesequivalentealnmerodecimal15,es
necesarioutilizarcuatrodgitosbinariospararepresentarundgitohexadecimal.Porejemplo:

MARCARLOSNMEROS

Elsistemadenumeracinhexadecimal,juntoconlossistemasbinarioydecimal,seconsideranlosmsimportantesparanosotros.Esfcil
realizarunaconversindecualquiernmerohexadecimalabinario,ademsesfcilderecordarlo.Sinobstante,estasconversiones
puedenprovocarunaconfusin.Porejemplo,qusignificaenrealidadlasentencia:Esnecesariocontar110productosenunacadena
demontaje?Dependiendodelsistemaencuestin(binario,decimalohexadecimal),elresultadopodraser6,110o272productos,
respectivamente.Porconsiguiente,paraevitarequivocaciones,diferentesprefijosysufijosseaadendirectamentealosnmeros.El
prefijo$o0xascomoelsufijohmarcalosnmerosenelsistemahexadecimal.Porejemplo,elnmerohexadecimal10AFsepuede
escribiras:$10AF,0x10AFo10AFh.Demanerasimilar,losnmerosbinariosnormalmenteobtienenelsufijo%o0B.Siunnmerono
tienenisufijoniprefijoseconsideradecimal.Desafortunadamente,estaformademarcarlosnmerosnoesestandarizada,por
consiguientedependedelaaplicacinconcreta.

Lasiguienteestablacomparativaquecontienelosvaloresdenmeros0255representadosentressistemasdenumeracindiferentes.
Estoesprobablementelamaneramsfcildeentenderlgicacomnaplicadaatodoslossistemasdenumeracin.

NMEROSNEGATIVOS

Comoyahemosvisto,paraescribirunnmeronegativoenmatemticas,bastaconaadirleelprefijo(signomenos).Sinembargo,enla
programacin,alacabarseelprocesodelacompilacin,sequedanslolosnmerosbinarios,volvindoselascosasmscomplicadas.
Seutilizanslodosdgitos0y1,mientrasquetodoslosdemsnmeros,smbolosysignosseformanpormediodelascombinaciones
deestosdosdgitos.Enelcasodelosnmerosnegativos,lasolucineslasiguiente:Enlosnmerosnegativos,elbitmssignificativo(el
bitdelextremoizquierdo)representaelsignodelnmero(donde0serpositivoy1negativo).Enelcasodeunnmerode8bits,para
representarunvalornumricosloquedan7bits.Deacuerdoaestetipodecodificacinelnmero+127eselmayornmeropositivocon

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 6/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
signoquesepuederepresentarcon8bits.Asimismo,haycero(0)positivoynegativo(refirasealatabladeladerecha).Lasiguiente
preguntasera:Cmoesposiblesaberdequnmerosetrata?Porejemplo,siponemoselnmero10000001,es1o129?Nose
preocupe,deesoseencargaelcompilador.staeslaraznporlaquesedeclaranvariablesalescribirelprograma.Bueno,deeso
vamosahablaracontinuacin.

BIT

Lateoradicequeunbiteslaunidadbsicadeinformacin...Vamosaolvidarloporunmomentoydemostrarquesesoenlaprctica.La
respuestaesnadaespecialunbitesunslodgitobinario.Similaraunsistemadenumeracindecimalenelquelosdgitosdeun
nmeronotienenlamismaponderacin(porejemplo,losdgitosenelnmero444sonlosmismosperotienenlosvaloresdiferentes),el
significadodeunbitdependedelaposicinquetieneennmerobinario.Enestecasonotienesentidohablardeunidades,centenas
etc.enlosnmerosbinarios,susdgitossedenominanelbitcero(elprimerbitaladerecha),elprimerbit(elsegundobitaladerecha)etc.
Adems,yaqueelsistemabinarioutilizasolamentedosdgitos(0y1),elvalordeunbitpuedeser0o1.

Noseconfundasiseencuentraconunbitquetieneelvalor4,16o64.Sonlosvaloresrepresentadosenelsistemadecimal.
Simplemente,noshemosacostumbradotantoautilizarlosnmerosdecimalesqueestasexpresionesllegaronasercomunes.Sera
correctodecirporejemplo,elvalordelsextobitencualquiernmerobinarioequivalealnmerodecimal64.Perotodossomoshumanos
ylosviejoshbitosmuerendifcilmente.Adems,cmolesuenanmerounounocerounocero...?

BYTE

Unbyteconsisteen8bitscolocadosunojuntoalotro.Siunbitesundgito,eslgicoquelosbytesrepresentenlosnmeros.Todaslas
operacionesmatemticassepuedenrealizarpormediodeellos,comopormediodelosnmerosdecimalescomunes.Similaralosdgitos
decualquiernmero,losdgitosdeunbytenotienenelmismosignificado.Elbitdelextremoizquierdotienelamayorponderacin,poreso
esdenominadoelbitmssignificativo(MSB).Elbitdelextremoderechotienelamenorponderacin,poresoesdenominadoelbitmenos
significativo(LSB).Puestoquelos8dgitosdeunbytesepuedencombinarde256manerasdiferentes,elmayornmerodecimalquese
puederepresentarconunbytees255(unacombinacinrepresentauncero).

Unnibbleouncuartetorepresentaunamitaddebyte.Dependiendodelamitaddelnmeroencuestin(izquierdaoderecha),seles
denominanibblesaltosobajos,respectivamente.

Ustedseguramentehapensadoalgunavezencmoeslaelectrnicadentrodeuncircuitointegradodigital,unmicrocontroladoroun
microprocesador.Cmosonloscircuitosquerealizanlasoperacionesmatemticascomplicadasytomandecisiones?Sabaquesus
esquemas,aparentementecomplicadasconsistenenslounospocoselementosdiferentes,denominadoscircuitoslgicosocompuertas
lgicas?

1.3DETALLESIMPORTANTES

ElfuncionamientodeestoselementosesbasadoenlosprincipiosestablecidosporelmatemticobritnicoGeorgeBooleenlamitaddel
siglo19esdecir,antesdelainvencindelaprimerabombilla!Enbreve,laideaprincipaleradeexpresarlasformaslgicaspormedio
delasfuncionesalgebraicas.Talideaprontosetransformenunproductoprcticoqueseconvirtimstardeenloquehoyenda
conocemoscomocircuitoslgicosY(AND),O(OR)oNO(NOT).ElprincipiodesufuncionamientoesconocidocomoalgebradeBoole.

CIRCUITOSLGICOS

Algunasinstruccionesdeprogramautilizadasporunmicrocontroladorfuncionandelamismamaneraquelascompuertaslgicas,peroen
formadecomandos.Acontinuacinvamosaexplicarelprincipiodesufuncionamiento.

COMPUERTAY(AND)

UnacompuertalgicaYdisponededosoms
entradasydeunasalida.Enestecasolacompuerta
utilizadadisponedeslodosentradas.Ununo

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 7/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
lgico(1)aparecerensusalidasloencasode
queambasentradas(AYB)seanllevadasaalto(1).
Latablaaladerechaeslatabladeverdadque
muestralarelacinentrelasentradasysalidasdela
compuerta.Elprincipiodefuncionamientoesel
mismocuandolacompuertadispongademsde
dosentradas:lasalidaproporcionaununolgico(1)
slositodaslasentradassonllevadasaalto(1).

Cualquierotracombinacindevoltajesdeentrada
proporcionaruncerolgico(0)ensusalida.
Utilizadaenelprograma,laoperacinYlgicoes
realizadaporunainstruccindeprograma,delaque
vamosahablarmstarde.Porahorabastacon
conocerqueYlgicoenunprogramaserefiereala
realizacindeestetipodeoperacinsobrelosbits
correspondientesdedosregistrosdiferentes.

COMPUERTAO(OR)

Demanerasimilar,lacompuertaOtambindispone
dedosomsentradasydeunasalida.Sila
compuertadisponedeslodosentradas,es
aplicablelosiguiente:lasalidaproporcionaununo
lgico(1)siunauotraentrada(AoB)esllevadaa
alto(1).EncasodequelacompuertaOdispongade
msdedosentradas,esaplicablelosiguiente:La
salidaproporcionaununolgico(1)siporlomenos
unaentradaesllevadaaalto(1).Sitodaslas
entradasestnacerolgico(0),lasalidaestara
cerolgico(0)tambin.

Enunprograma,laoperacinOlgicoserealizade
lamismamaneraquelaoperacinY.

COMPUERTANO(NOT)

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

EnelprogramalaoperacinlgicaNOserealizasobreunbyte.El
resultadoesunbyteconlosbitsinvertidos.Silosbitsdeunbytese
considerannmero,elvalorinvertidoesuncomplementoaese
nmero.Elcomplementodeunnmeroeselvalorqueseaadeal
nmerohastallegaralmayornmerobinariode8dgitos.Enotras
palabras,lasumadeundgitode8nmerosydesucomplementoes
siempre255.

COMPUERTAXOR(OEXCLUSIVA)

LacompuertaXOR(OEXCLUSIVA)esunpococomplicadaen
comparacinconlasdems.Representaunacombinacindetodaslas
compuertasanteriormentedescritas.Lasalidaproporcionaununo
lgico(1)slosisusentradasestnenestadoslgicosdiferentes.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 8/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

Enelprograma,estaoperacinseutilizaconfrecuenciaparacomparardosbytes.La
restasepuedeutilizarconelmismopropsito(sielresultadoes0,losbytesson
iguales).Adiferenciadelaresta,laventajadeestaoperacinlgicaesquenoes
posibleobtenerlosresultadosnegativos.

REGISTROS

Unregistroounaceldadememoriaesuncircuitoelectrnicoquepuedememorizarelestadodeunbyte.

REGISTROSSFR

Adiferenciadelosregistrosquenotienenningunafuncinespecialypredeterminada,cadamicrocontroladordisponedeunnmerode
registrosdefuncionesespeciales(SFR),conlafuncinpredeterminadaporelfabricante.Susbitsestnconectadosaloscircuitosinternos
delmicrocontroladortalescomotemporizadores,convertidoresA/D,osciladoresentreotros,loquesignificaquedirectamentemanejanel
funcionamientodeestoscircuitos,oseadelmicrocontrolador.Imagneseochointerruptoresquemanejanelfuncionamientodeuncircuito
pequeodentrodelmicrocontrolador.LosregistrosSFRhacenexactamentelomismo.

Enotraspalabras,elestadodelosbitsderegistrossefija
dentrodeprograma,losregistrosSFRdirigenlospequeos
circuitosdentrodelmicrocontrolador,estoscircuitosse
conectanporlospinesdelmicrocontroladoraundispositivo
perifricoutilizadopara...Bueno,dependedeusted.

PUERTOSDEENTRADA/SALIDA(E/S)

Parahacertilunmicrocontrolador,hayqueconectarloaundispositivoexterno,osea,aunperifrico.Cadamicrocontroladortieneunoo
msregistros(denominadospuertos)conectadosalospinesenelmicrocontrolador.Porqusedenominancomopuertosde
entrada/salida?Porqueustedpuedecambiarlafuncindecadapincomoquiera.Porejemplo,usteddeseaquesudispositivoencienday
apaguelostressealesLEDsyquesimultneamentemonitoreeelestadolgicode5sensoresobotonesdepresin.Unodelospuertos
debeestarconfiguradodetalmaneraquehayatressalidas(conectadasalosLEDs)ycincoentradas(conectadasalossensores).Esose
realizasimplementepormediodesoftware,loquesignificaquelafuncindealgnpinpuedesercambiadaduranteelfuncionamiento.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 9/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

Unadelascaractersticasmsimportantesdelospinesdeentrada/salida(E/S)eslacorrientemximaquepuedenentregar/recibir.Enla
mayoradelosmicrocontroladoreslacorrienteobtenidadeunpinessuficienteparaactivarunLEDuotrodispositivodebajacorriente(10
20mA).MientrasmspinesdeE/Shaya,msbajaeslacorrientemximadeunpin.Enotraspalabras,todoslospuertosdeE/Scomparten
lacorrientemximadeclaradaenlahojadeespecificacintcnicadelmicroprocesador.

Otracaractersticaimportantedelospinesesquepuedendisponerdelosresistorespullup.Estosresistoresconectanlospinesalpolo
positivodelvoltajedelafuentedealimentacinysuefectosepuedeveralconfigurarelpincomounaentradaconectadaauninterruptor
mecnicooaunbotndepresin.Lasltimasversionesdelosmicrocontroladorestienenlasresistenciaspullupconfigurablespor
software.

CadapuertodeE/SnormalmenteestbajoelcontroldeunregistroSFRespecializado,loquesignificaquecadabitdeeseregistro
determinaelestadodelpincorrespondienteenelelmicrocontrolador.Porejemplo,alescribirununolgico(1)aunbitdelregistrode
control(SFR),elpinapropiadodelpuertoseconfiguraautomticamentecomosalida.Esosignificaqueelvoltajellevadoaesepinse
puedeleercomo0o1lgico.Encasocontrario,alescribir0alregistroSFR,elpinapropiadodelpuertoseconfiguracomosalida.Su
voltaje(0Vo5V)correspondealestadodelbitapropiadodelregistrodelpuerto.

UNIDADDEMEMORIA

Launidaddememoriaesunapartedelmicrocontroladorutilizadaparaalmacenarlosdatos.Lamaneramsfcildeexplicarloes
compararloconunarmariograndeconmuchoscajones.Simarcamosloscajonesclaramente,serfcilaccederacualquieradesus
contenidosalleerlaetiquetaenlapartedelanteradelcajn.

Demanerasimilar,cadadireccindememoriacorrespondeauna
localidaddememoria.Elcontenidodecualquierlocalidadsepuedeleery
selepuedeaccederaldireccionarla.Lamemoriasepuedeescribirenla
localidadoleer.

Hayvariostiposdememoriadentrodelmicrocontrolador:

MEMORIAROM(READONLYMEMORY)MEMORIADESLOLECTURA

LamemoriaROMseutilizaparaguardarpermanentementeelprogramaqueseestejecutando.Eltamaodeprogramaquesepuede
escribirdependedeltamaodeestamemoria.Losmicrocontroladoresactualesnormalmenteutilizaneldireccionamientode16bits,que
significaquesoncapacesdedireccionarhasta64Kbdememoria,osea65535localidades.Porejemplo,siustedesprincipiante,su
programaexcederpocasvecesellmitedevarioscientosdeinstrucciones.HayvariostiposdememoriaROM.

Romdemscara(enmascarada)MROM

LaROMenmascaradaesuntipodeROMcuyocontenidoesprogramadoporelfabricante.Eltrminodemscaravienedelprocesode
fabricacin,dondelaspartesdelchipseplasmanenlasmascarasutilizadasduranteelprocesodefotolitografa.Encasodefabricacinde
grandesseries,elprecioesmuybajo.Olvidelaideademodificarla...

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 10/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
OTPROM(OneTimeProgrammableROM)ROMprogramableunasolavez

Lamemoriaprogramableunasolavezpermitedescargarunprogramaenelchip,perocomodicesunombre,unasolavez.Sisedetecta
unerrordespusdedescargarlo,lonicoquesepuedehaceresdescargarelprogramacorrectoenotrochip.

UVEPROM(UVErasableProgrammableROM)ROMprogramableborrableporrayosultravioleta

Elencapsuladodeestemicrocontroladortieneunaventanareconocibleenlapartealta.Esopermite
exponerlasuperficiedelchipdesilicioalaluzdeultravioletayborrarelprogramacompletamenteen
variosminutos.Luegoesposibledescargarunnuevoprogramaenl.

Lainstalacindeestaventanaescomplicada,loqueporsupuestoafectaalprecio.Desdenuestro
puntodevista,desgraciadamente,demaneranegativa...

MemoriaFlash

Estetipodememoriaseinventenlosaos80enloslaboratoriosdelacompaaINTEL,comoformadesarrolladadelamemoriaUV
EPROM.Yaqueesposibleescribiryborrarelcontenidodeestamemoriaprcticamenteunnmeroilimitadodeveces,los
microcontroladoresconmemoriaFlashsonperfectosparaestudiar,experimentaryparalafabricacinenpequeaescala.Porlagran
popularidaddeestamemoria,lamayoradelosmicroconroladoressefabricancontecnologaflashhoyenda.Siustedvaacomprarun
microcontrolador,steesendefinitivalaopcinperfecta!

MEMORIARAM(RANDOMACCESSMEMORY)MEMORIADEACCESOALEATORIO

Alapagarlafuentedealimentacin,sepierdeelcontenidodelamemoriaRAM.Seutilizaparaalmacenartemporalmentelosdatosylos
resultadosinmediatoscreadosyutilizadosduranteelfuncionamientodelmicrocontrolador.Porejemplo,sielprogramaejecutalaadicin
(decualquiercosa)esnecesariotenerunregistroquerepresentaloquesellamasumaenvidacotidiana.Contalpropsito,unodelos
registrosdelaRAMesdenominadosumayseutilizaparaalmacenarlosresultadosdelaadicin.

MEMORIAEEPROM(ELECTRICALLYERASABLEPROGRAMMABLEROM)ROMPROGRAMABLEYBORRABLE
ELCTRICAMENTE

ElcontenidodelaEEPROMsepuedecambiarduranteelfuncionamiento(similaralaRAM),perosequedapermanentementeguardado
despusdelaprdidadelafuentedealimentacin(similaralaROM).Porlotanto,laEEPROMseutilizaconfrecuenciaparaalmacenar
losvalorescreadosduranteelfuncionamiento,quetienenqueestarpermanentementeguardados.Porejemplo,siustedhadiseadouna
llaveelectrnicaounalarma,seraestupendopermitiralusuariocreareintroducirunacontraseaporsucuenta.Porsupuesto,lanueva
contraseatienequeestarguardadaalapagarlafuentedealimentacin.Entalcasounasolucinperfectaeselmicrocontroladorconuna
EEPROMembebida.

INTERRUPCIN

Lamayoradeprogramasutilizaninterrupcionesduranteejecucindeprogramaregular.Elpropsitodelmicrocontroladorgeneralmente
consisteenreaccionaraloscambiosensuentorno.Enotraspalabras,cuandoocurrealgo,elmicrocontroladorreaccionadealguna
manera...Porejemplo,alapretarelbotndelmandoadistancia,elmicrocontroladorloregistrayrespondealcomandocambiandode
canal,subiendoobajandoelvolumenetc.Sielmicrocontroladorpasarlamayoradeltiempocomprobandovariosbotonessinpararlas
horas,losdas,estonoseranadaprctico.

Porlotanto,elmicrocontroladoraprendiuntrucodurantesuevolucin.Envezdeseguircomprobandoalgnpinobit,el
microconroladordejasutrabajodeesperaraunexpertoquereaccionarsloencasodequesucedaalgodignodeatencin.

LasealqueinformaalprocesadorcentralacercadetalacontecimientosedenominaINTERRUPCIN.

UNIDADCENTRALDEPROCESAMIENTO(CENTRALPROCESSORUNITCPU)

Comoindicasunombre,estoesunaunidadquecontrolatodoslosprocesosdentrodelmicrocontrolador.Consisteenvariasunidades
mspequeas,delasquelasmsimportantesson:

Decodificadordeinstruccioneseslapartequedescodificalasinstruccionesdelprogramayaccionaotroscircuitos
basndoseenesto.Elconjuntodeinstruccionesqueesdiferenteparacadafamiliademicrocontroladorexpresalas
capacidadesdeestecircuito
Unidadlgicaaritmtica(ArithmeticalLogicalUnitALU)realizatodaslasoperacionesmatemticasylgicas
sobredatosy
Acumuladororegistrodetrabajo.EsunregistroSFRestrechamenterelacionadoconelfuncionamientodelaALU.
Esutilizadoparaalmacenartodoslosdatossobrelosquesedeberealizaralgunaoperacin(sumar,mover).Tambin
almacenalosresultadospreparadosparaelprocesamientofuturo.UnodelosregistrosSFR,denominadoRegistro
Status(PSW),estestrechamenterelacionadoconelacumulador.Muestraelestadodeunnmeroalmacenadoen
elacumulador(elnmeroesmayoromenorqueceroetc.)encualquierinstantedado.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 11/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

BUS

Elbusestformadopor8,16omscables.Haydostiposdebuses:elbusdedireccionesyelbusdedatos.Elbusdedireccionesconsiste
entantaslneascomoseannecesariasparadireccionarlamemoria.SeutilizaparatransmitirladireccindelaCPUalamemoria.Elbus
dedatosestananchocomolosdatos,enestecasoesde8bitsolneasdeancho.Seutilizaparaconectartodosloscircuitosdentrodel
microcontrolador.

COMUNICACINENSERIE

Laconexinparalelaentreelmicrocontroladorylosperifricosatravsdelospuertosdeentrada/salidaesunasolucinperfectaparalas
distanciascortashastavariosmetros.Noobstante,enotroscasoscuandoesnecesarioestablecercomunicacinentredosdispositivosa
largasdistanciasnoesposibleutilizarlaconexinparalela.Envezdeeso,seutilizalaconexinenserie.

Hoyenda,lamayoradelosmicrocontroladoresllevanincorporadosvariossistemasdiferentesparalacomunicacinenserie,comoun
equipoestndar.Culdeestossistemasseutilizarenuncasoconcreto,dependedemuchosfactores,delosquemsimportantesson:

Concuntosdispositivoselmicrocontroladortienequeintercambiarlosdatos?
Culeslavelocidaddelintercambiodedatosobligatoria?
Culesladistanciaentrelosdispositivos?
Esnecesariotransmitiryrecibirlosdatossimultneamente?

UnadelascosasmsimportantesencuantoalacomunicacinenserieeselProtocoloquedebeserestrictamenteobservado.Esun
conjuntodereglasqueseaplicanobligatoriamenteparaquelosdispositivospuedaninterpretarcorrectamentelosdatosqueintercambian
mutuamente.Afortunadamente,losmicrocontroladoresseencargandeesoautomticamente,asqueeltrabajodeprogramador/usuario
esreducidoalaescrituraylecturadedatos.

VELOCIDADDETRANSMISINSERIAL

Lavelocidaddetransmisinserial(baudrate)eseltrminoutilizadoparadenotarelnmerodebitstransmitidosporsegundo[bps].Fjese
queestetrminoserefiereabits,ynoabytes!Elprotocolonormalmenterequierequecadabytesetransmitajuntoconvariosbitsde
control.Esoquieredecirqueunbyteenunflujodedatosserialpuedeconsistiren11bits.Porejemplo,sivelocidaddetransmisinserial
es300bpsunmximode37yunmnimode27bytessepuedentransmitirporsegundo.

Lossistemasdecomunicacinserialmsutilizadosson:

I 2C(INTERINTEGRATEDCIRCUIT)CIRCUITOINTERINTEGRADO

Circuitointerintegradoesunsistemaparaelintercambiodedatosserialentrelosmicrocontroladoresyloscircuitosintegrados
especializadosdegeneracin.Seutilizacuandoladistanciaentreellosescorta(elreceptoryeltransmisorestnnormalmenteenla
mismaplacadecircuitoimpreso).Laconexinseestablecepormediodedoslneasunaseutilizaparatransmitirlosdatos,mientrasque
laotraseutilizaparalasincronizacin(lasealdereloj).Comosemuestraenlafigura,undispositivoessiempreelprincipal(master

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 12/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
maestro),elquerealizaeldireccionamientodeunchipsubordinado(slaveesclavo)antesdequeseinicielacomunicacin.Deesta
maneraunmicrocontroladorpuedecomunicarsecon112dispositivosdiferentes.Lavelocidaddetransmisinserialesnormalmente100
Kb/seg(elmodoestndar)o10Kb/seg(mododevelocidaddetransmisinbaja).Recientementehanaparecidolossistemasconla
velocidaddetransmisinserial3.4Mb/sec.LadistanciaentrelosdispositivosquesecomunicanporelbusI2Cestlimitadaaunos
metros.

SPI(SERIALPERIPHERALINTERFACEBUS)BUSSERIALDEINTERFAZDEPERIFRICOS

Unbusserialdeinterfazdeperifricosesunsistemaparalacomunicacinserialqueutilizahastacuatrolneas(normalmentesoloson
necesariastres)pararecibirlosdatos,paratransmitirlosdatos,parasincronizary(opcional)paraseleccionareldispositivoconelquese
comunica.Estoeslaconexinfullduplex,loquesignificaquelosdatosseenvanyserecibensimultneamente.

LavelocidaddetransmisinmximaesmayorqueenelsistemadeconexinI2C.

UART(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER)TRANSMISORRECEPTORASNCRONOUNIVERSAL

Estetipodeconexinesasncrona,loquesignificaquenoseutilizaunalneaespecialparatransmitirlasealdereloj.Enalgunas
aplicacionesesterasgoescrucial(porejemplo,enmandardatosadistanciaporRFoporluzinfrarroja).Puestoqueseutilizaslouna
lneadecomunicacin,tantoelreceptorcomoeltransmisorrecibenyenvanlosdatosavelocidadmismaquehasidopredefinidapara
mantenerlasincronizacinnecesaria.Estoesunamanerasimpledetransmitirdatospuestoquebsicamenterepresentaunaconversin
dedatosde8bitsdeparaleloaserial.Lavelocidaddetransmisinnoesalta,eshasta1Mbit/sec.

OSCILADOR

Lospulsosuniformesgeneradosporelosciladorpermitenel
funcionamientoarmnicoysncronodetodosloscircuitosdel
microcontrolador.Elosciladorseconfiguranormalmentedetal
maneraqueutiliceuncristaldecuarzooresonadorcermicopara
estabilizacindefrecuencia.Adems,puedefuncionarcomoun
circuitoautnomo(comoosciladorRC).Esimportantedecirque
lasinstruccionesdelprogramanoseejecutanalavelocidad
impuestaporelmismoosciladorsinovariasvecesmsdespacio.
Esoocurreporquecadainstruccinseejecutaenvariosciclosdel
oscilador.Enalgunosmicrocontroladoressenecesitaelmismo
nmerodeciclosparaejecutartodaslasinstrucciones,mientras
queenotroseltiempodeejecucinnoeselmismoparatodaslas
instrucciones.Porconsiguiente,sielsistemautilizaelcristalde
cuarzoconunafrecuenciade20MHZ,eltiempodeejecucinde
unainstruccindeprogramanoes50nS,sino200,400o800nS
dependiendodeltipodelmicrocontrolador.

CIRCUITODEALIMENTACIN

Hayquemencionardoscosasdignasdeatencinconrelacinalcircuitodelafuentedealimentacindemicrocontroladores:

Brownoutesunestadopotencialmentepeligrosoqueocurrealapagarelmicrocontroladoroencasodequeel
voltajedelafuentedealimentacinsalgadeunosmrgenesdebidoalruidoelctrico.Comoelmicrocontrolador
disponedevarioscircuitosquefuncionananivelesdevoltajediferentes,eseestadopuedecausaruncomportamiento
descontrolado.Paraevitarlo,elmicrocontroladornormalmentetieneuncircuitoincorporadoparaelbrownoutreset.El
circuitoreiniciainmediatamenteelmicrocontroladorsielvoltajedealimentacincaepordebajodellmite.
Elpindereset(reinicio),marcadofrecuentementeconMCLR(MasterClearReset),sirveparaelreinicioexternodel
microcontroladoralaplicaruncero(0)oununo(1)lgicodependiendodeltipodelmicrocontrolador.Encasodequeel
circuitobrownoutnoestincorporado,unsimplecircuitoexternoparaelbrownoutresetsepuedeconectaralpin
MCLR.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 13/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
TEMPORIZADORES/CONTADORES

Elosciladordelmicrocontroladorutilizacristaldecuarzoparasufuncionamiento.Aunquenosetratadelasolucinmssimple,hay
muchasrazonesparautilizarlo.Lafrecuenciadelosciladoresdefinidaconprecisinymuyestable,asquesiempregeneralospulsosdel
mismoancho,loqueloshaceperfectosparamedicindetiempo.Talesosciladoresseutilizanenlosrelojesdecuarzo.Siesnecesario
medireltiempotranscurridoentredoseventos,bastaconcontarlospulsosgeneradosporesteoscilador.Estoesexactamenteloquehace
eltemporizador.

Lamayoradelosprogramasutilizaestoscronmetroselectrnicosenminiatura.GeneralmentesonregistrosSFRde8o16bitscuyo
contenidoseaumentaautomticamenteconcadapulso.Unavezquesellenaelregistro,segeneraunainterrupcin!

Sieltemporizadorutilizaelosciladordecuarzointernoparasufuncionamiento,esposiblemedireltiempoentredoseventos(elvalorde
registroenelmomentodeiniciarlamedicinesT1,enelmomentodefinalizarlamedicinesT2,eltiempotranscurridoesigualal
resultadodelarestaT2T1).Silosregistrosseaumentanconlospulsosquevienendelafuenteexterna,taltemporizadorseconvierteen
uncontador.

Estoesunaexplicacinsimpledesufuncionamiento.Esunpocomscomplicadoenprctica.

CMOFUNCIONANLOSTEMPORIZADORES?

Enprctica,lospulsosgeneradosporelosciladordecuarzosonllevadosalcircuitounavezporcadaciclodemquinadirectamenteopor
elpreescalador,loqueaumentaelnmeroenelregistrodeltemporizador.Siunainstruccin(unciclodemquina)duracuatroperodos
delosciladordecuarzo,estenmerosercambiadounmillndevecesporsegundo(cadamicrosegundo)alincorporaralcuarzoque
oscilaconunafrecuenciade4MHz.

Esfcildemedirlosintervalosdetiempocortosdelamaneradescritaanteriormente(hasta256microsegundosporqueeselmayor
nmeroqueunregistropuedecontener).Estaobviadesventajasepuedesuperardevariasmaneras:alutilizarelosciladormslento,por
medioderegistrosconmsbits,delpreescaladorodelainterrupcin.Lasprimerasdossolucionestienenalgunasdebilidadesasquese
recomiendautilizarelpreescaladory/olainterrupcin.

UTILIZARUNPREESCALADORENELFUNCIONAMIENTODELTEMPORIZADOR

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 14/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
Unpreescaladoresundispositivoelectrnicoutilizadoparadividirlafrecuenciaporunfactorpredeterminado.Estoquieredecirquese
necesitallevar1,2,4omspulsosasuentradaparagenerarunpulsoalasalida.Lamayoradelosmicrocontroladoresdisponendeuno
omspreescaladoresincorporadosysutasadedivisinpuedesercambiadadentrodelprograma.Elpreescaladorseutilizacuandoes
necesariomedirlosperodosdetiempomslargos.Sieltemporizadoryeltemporizadorperroguardincompartenunpreescalador,ste
nosepuedeutilizarporlosdossimultneamente.

UTILIZARUNAINTERRUPCINENELFUNCIONAMIENTODELTEMPORIZADOR

Sielregistrodeltemporizadoresde8bits,elmayornmeroquesepuedeescribirenles255(enlosregistrosde16bitseselnmero
65.535).Siseexcedeestenmero,eltemporizadorsereiniciaautomticamenteyelconteocomienzadenuevoencero.Estoes
denominadodesbordamientoosobreflujo(overflow).Permitidoporelprograma,eldesbordamientopuedeprovocarunainterrupcin,lo
queabrecompletamentenuevasposibilidades.Porejemplo,elestadoderegistrosutilizadosparacontarsegundos,minutosodaspuede
serimplementadoenunarutinadeinterrupcin.Elprocesoentero(exceptolarutinadeinterrupcin)sellevaacabointernamente,loque
permitequeloscircuitosprincipalesdelmicrocontroladorfuncionenregularmente.

Lafiguraanteriordescribeelusodeunainterrupcinenelfuncionamientodeltemporizador.Alasignarleunpreescaladoral
temporizador,seproducenretrasosdeduracinarbitrariaconmnimainterferenciaenlaejecucindelprogramaprincipal.

CONTADORES

Siuntemporizadorsesuministraporlospulsosingresadosporelpindeentradaenelmicrocontrolador,seproduceuncontador.
Evidentemente,eselmismocircuitoelectrnico.Lanicadiferenciaesquelospulsosparacontarseingresanporelpindeentradayque
suduracin(anchura)noesdefinida.Poreso,nosepuedenutilizarparamedicindetiempo,sinoqueseutilizanparaotrospropsitos,
porejemplo:contarlosproductosenlacadenademontaje,nmeroderotacionesdelejedeunmotor,pasajerosetc.(dependiendodel
sensorutilizado.

TEMPORIZADORPERROGUARDIN(WATCHDOG)

ElperroguardinesuntemporizadorconectadoaunosciladorRCcompletamenteindependientedentrodelmicrocontrolador.

Sielperroguardinesthabilitado,cadavezquecuentahastaelmximovalorenelqueocurreeldesbordamientodelregistrosegenera
unasealdereiniciodelmicrocontroladorylaejecucindeprogramainiciaenlaprimerainstruccin.Elpuntoesevitarqueesoocurraal
utilizarelcomandoadecuado.

Laideasebasaenelhechodequecadaprogramaseejecutaenvariosbucles,mslargosocortos.Silasinstruccionesquereinicianel
temporizadorperroguardinsecolocanenlugaresestratgicosdelprograma,aparteloscomandosqueseejecutanregularmente,el
funcionamientodelperroguardinnoafectaralaejecucindelprograma.Siporcualquierrazn(ruidoselctricosfrecuentesenla
industria)elcontadordeprogramasequedaatrapadodentrodeunbucleinfinito,elvalordelregistrocontinuaraumentadoporel
temporizadorperroguardinalcanzarelmximovalor,elregistrosedesbordary,aleluya!Ocurreelreinicio!

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 15/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

CONVERTIDORA/D

Lassealesdelmundorealsonmuydiferentesdelas
queentiendeelmicrocontrolador(cerosyunos),as
quedebenserconvertidasparaqueelmicrocontrolador
puedaentenderlas.Unconvertidoranalgicodigitales
uncircuitoelectrnicoencargadodeconvertirlas
sealescontinuasennmerosdigitalesdiscretos.En
otraspalabras,estecircuitoconvierteunnmerorealen
unnmerobinarioyseloenvaalaCPUparaser
procesado.Estemduloseutilizaparamedirelvoltaje
enelpindeentrada.

Elresultadodeestamedicinesunnmero(elvalordigital)utilizadoyprocesadomstardeenelprograma.

ARQUITECTURAINTERNA

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 16/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
TodoslosmicrocontroladoresactualesutilizanunodedosmodelosbsicosdearquitecturadenominadosHarvardyvonNeumann.

SondosmanerasdiferentesdelintercambiodedatosentrelaCPUylamemoria.

ArquitecturadevonNeumann

LosmicrocontroladoresqueutilizanlaarquitecturavonNeumanndisponendeunsolo
bloquedememoriaydeunbusdedatosde8bits.Comotodoslosdatosseintercambianpor
mediodeestas8lneas,estebusestsobrecargado,ylacomunicacinporsimismaesmuy
lentaeineficaz.LaCPUpuedeleerunainstruccinoleer/escribirdatosde/enlamemoria.
Losdosprocesosnopuedenocurriralavezpuestoquelasinstruccionesylosdatosutilizan
elmismobus.Porejemplo,sialgunalneadeprogramadicequeelregistrodelamemoria
RAMllamadoSUMdebeseraumentadoporuno(instruccin:incfSUMA),el
microcontroladorharlosiguiente:

1. LeerlapartedelainstruccindeprogramaqueespecificaQUesloquedeberealizar(enestecasoesla
instruccinparaincrementarincf)
2. SeguirleyendolamismainstruccinqueespecificasobreCULdatolodeberealizar(enestecasoesel
contenidodelregistroSUMA)
3. Despusdehabersidoincrementado,elcontenidodeesteregistrosedebeescribirenelregistrodelquefue
ledo(direccindelregistroSUMA)

Elmismobusdedatosseutilizaparatodasestasoperacionesintermedias.

ARQUITECTURADEHARVARD

Losmicrocontroladoresqueutilizanestaarquitecturadisponende
dosbusesdedatosdiferentes.Unoesde8bitsdeanchoy
conectalaCPUconlamemoriaRAM.Elotroconsisteenvarias
lneas(12,14o16)yconectaalaCPUylamemoriaROM.Por
consiguiente,laCPUpuedeleerlasinstruccionesyrealizarel
accesoalamemoriadedatosalavez.Puestoquetodoslos
registrosdelamemoriaRAMsonde8bitsdeancho,todoslos
datosdentrodelmicrocontroladorqueseintercambiansondela
mismaanchura.Duranteelprocesodelaescrituradeprograma,
slosemanejanlosdatosde8bits.Enotraspalabras,todoloque
ustedpodrcambiarenelprogramayaloquepodrafectarser
de8bitsdeancho.Todoslosprogramasescritosparaestos
microcontroladoressernalmacenadosenlamemoriaROM
internadelmicrocontroladordespusdehabersidocompiladosa
cdigomquina.Noobstante,estaslocalidadesdememoriaROM
notienen8,sino12,14o16bits.4,6o8bitsadicionalesrepresentanunainstruccinqueespecificaalaCPUquhacerconlosdatosde
8bits.

Lasventajasdeestediseosonlassiguientes:

Todoslosdatosenelprogramasondeunbyte(8bits)deancho.Comounbusdedatosutilizadoparalecturade
programatieneunaslneasms(12,14o16),tantolainstruccincomoeldatosepuedenleersimultneamenteal
utilizarestosbitsadicionales.Poreso,todaslasinstruccionesseejecutanenunciclosalvolasinstruccionesde
saltoquesondedosciclos.
Elhechodequeunprograma(laROM)ylosdatostemporales(laRAM)estnseparados,permitealaCPUpoder
ejecutardosinstruccionessimultneamente.Dichodemanerasencilla,mientrasqueserealizalalecturaoescritura
delaRAM(quemarcaelfindeunainstruccin),lasiguienteinstruccinseleepormediodeotrobus.
EnlosmicrocontroladoresqueutilizanlaarquitecturadevonNeumann,nuncasesabecuntamemoriaocuparalgn
programa.Generalmente,lamayoradelasinstruccionesdeprogramaocupandoslocalidadesdememoria(una
contieneinformacinsobreQUsedeberealizar,mientrasquelaotracontieneinformacinsobreCULdatose
deberealizar).Sinembargo,estonoesunafrmulargida,sinoelcasomsfrecuente.Enlosmicrocontroladoresque
utilizanunaarquitecturaHarvard,elbusdelapalabradeprogramaesmsanchoqueunbyte,loquepermiteque
cadapalabradeprogramaestcompuestoporunainstruccinyundato.Enotraspalabras,unalocalidaddememoria
unainstruccindeprograma.

JUEGODEINSTRUCCIONES

ElnombrecolectivodetodaslasinstruccionesquepuedeentenderelmicrocontroladoresllamadoJuegodeInstrucciones.Cuandose
escribeunprogramaenensamblador,enrealidadseespecificaninstruccionesenelordenenelquedebenserejecutadas.Larestriccin
principaleselnmerodeinstruccionesdisponibles.Losfabricantesaceptancualquieradelosdosenfoquesdescritosacontinuacin:

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 17/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

RISC(ReducedInstructionSetComputer)ComputadoraconJuegodeInstruccionesReducidas

Enestecasolaideaesqueelmicrocontroladorreconoceyejecutaslooperacionesbsicas(sumar,restar,copiaretc...)Lasoperaciones
mscomplicadasserealizanalcombinarstas(porejemplo,multiplicacinsellevaacaboalrealizaradicinsucesiva).Escomointentar
explicarleaalguienconpocaspalabrascmollegaralaeropuertoenunanuevaciudad.Sinembargo,notodoestanoscuro.Adems,el
microcontroladoresmuyrpidoasquenoesposiblevertodaslasacrobaciasaritmticasquerealiza.Elusuarioslopuedeverel
resultadofinaldetodaslasoperaciones.Porltimo,noestandifcilexplicardndeestelaeropuertosiseutilizanlaspalabrasadecuadas
talescomo:aladerecha,alaizquierda,elkilmetroetc.

CISC(ComplexInstructionSetComputer)Computadorasconunjuegodeinstruccionescomplejo

CISCesopuestoaRISC!Losmicrocontroladoresdiseadosparareconocermsde200instruccionesdiferentesrealmentepueden
realizarmuchascosasaaltavelocidad.Noobstante,unodebesabercmoutilizartodaslasposibilidadesqueofreceunlenguajetanrico,
loquenoessiempretanfcil...

CMOELEGIRUNMICROCONTROLADOR?

Bueno,siustedesprincipiante,yhatomadodecisindetrabajarconlosmicrocontroladores.Felicitacionesporlaeleccin!Noobstante,a
primeravista,noesfcillaeleccindelmicrocontroladormsadecuadocomoparecealaprimeravista.Elproblemanoeselpequeo
rangodedispositivosaelegir,sinotodolocontrario!

Antesdeempezaradisearundispositivobasadoenunmicrocontrolador,tomeencuentalosiguiente:cuntasentradas/lneasson
necesariasparasufuncionamiento,realizaraeldispositivootrasoperacionesademsencender/apagarunrel,necesitaalgnmodulo
especializadotalcomoeldecomunicacinenserie,convertidorA/Detc.Cuandoustedtieneunaclaraimagendeloquequiere,elrango
deseleccinsereduceconsiderablemente,ylequedapensarenelprecio.Vaatenervariosdispositivos?Varioscientos?Unmilln?
Detodosmodosahoraesmsclaro.

Siestpensandoentodasestascosasporprimeravez,todoleparecerunpococonfuso.Poresarazn,vayapasoapaso.Antesque
nada,seleccionealfabricante,esdecir,lafamiliademicrocontroladoresqueofrece.Luego,aprendaatrabajarconunmodeloparticular.
Sloaprendaloquenecesiteaprender,noentredemasiadoendetalles.Resuelvaelproblemaespecficoylepasarunacosaincreble
sercapazdemanejarcualquiermodelodelmismofabricante...

Msomenos,todosepareceamontarenbicicleta:despusdevariascadasinevitablesenelprincipio,sercapazdemantenerel
equilibrioymontarencualquierotrabicicleta.Porsupuesto,nuncaseolvidatantodemontarenbicicleta,comodeladestrezade
programacin!

1.4MICROCONTROLADORESPIC

LosmicrocontroladoresPICdesarrolladosporMicrochipTechnologysonprobablementelamejoropcinsiesprincipiante.Hayvarias
razonesporloqueestoesverdadero...

ElnombreverdaderodeestemicrocontroladoresPICmicro(PeripheralInterfaceController),conocidobajoelnombrePIC.Suprimer
antecesorfuecreadoen1975porlacompaaGeneralInstruments.EstechipdenominadoPIC1650fuediseadoparapropsitos
completamentediferentes.Diezaosmstarde,alaadirunamemoriaEEPROM,estecircuitoseconvirtienunverdadero
microcontroladorPIC.HaceunospocosaoslacompaaMicrochipTechnologyfabricla5billonsimamuestra.Siestinteresadoen
aprendermssobreeso,sigaleyendo.

Ifyouareinterestedinlearningmoreaboutit,justkeeponreading.

Laideaprincipaldeestelibroesproporcionarlainformacinnecesariaalusuarioparaqueseacapazdeutilizarlosmicrocontroladoresen
laprcticadespusdeleerlo.Paraevitarexplicacionespesadasylashistoriasinfinitassobrelascaractersticastilesdelos
microcontroladoresdiferentes,estelibrodescribeelfuncionamientodeunmodeloparticularquepertenecealaclasemediaalta.Es
PIC16F887bastantepoderosoparaserdignodeatencinybastantesimpleparapoderserutilizadoporcualquiera.As,lossiguientes
captulosdescribenestemicrocontroladorendetalleytambinserefierenalafamiliaPICentera.

Resolucin
Frecuencia
ROM RAM Entradas del Temporizadores Comunicacin Salidas
Familia Pines dereloj. Comparadores Otros
[Kbytes] [bytes] A/D convertidor de8/16bits serial PWM
[MHz]
A/D

Arquitecturadelagamabajade8bits,palabradeinstruccinde12bits

0.375
PIC10FXXX 1624 68 48 02 8 01 1x8
0.75

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 18/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
0.75
PIC12FXXX 2538 8 48 03 8 01 1x8 EEPROM
1.5

25 14
PIC16FXXX 0.753 20 03 8 02 1x8 EEPROM
134 44

18 Vdd=
PIC16HVXXX 1.5 25 20 1x8
20 15V

Arquitecturadelagamamediade8bits,palabradeinstruccinde14bits

1.75 64
PIC12FXXX 8 20 04 10 1 12x81x16 01 EEPROM
3.5 128

PIC12HVXXX 1.75 64 8 20 04 10 1 12x81x16 01

64 14
PIC16FXXX 1.7514 20 013 8or10 02 12x81x16 USARTI2CSPI 03
368 64

1.75 64 14
PIC16HVXXX 20 012 10 2 2x81x16 USARTI2CSPI
3.5 128 20

Arquitecturadelagamaaltade8bits,palabradeinstruccinde16bits

USB2.0
256 18 02x823x
PIC18FXXX 4128 3248 416 10or12 03 CAN2.0USART 05
3936 80 16
I2CSPI

USB2.0USART
1024 28 02x823x
PIC18FXXJXX 8128 4048 1016 10 2 EthernetI2C 25
3936 100 16
SPI

768 28
PIC18FXXKXX 864 64 1013 10 2 1x83x16 USARTI2CSPI 2
3936 44

TodoslosmicrocontroladoresPICutilizanunaarquitecturaHarvard,loquequieredecirquesumemoriadeprogramaestconectadaala
CPUpormsde8lneas.Haymicrocontroladoresde12,14y16bits,dependiendodelaanchuradelbus.Latablaanteriormuestralas
caractersticasprincipalesdeestastrescategoras.

Comosepuedeverenlatabladelapginaanterior,salvolosmonstruosde16bitsPIC24FXXXyPIC24HXXXtodoslos
microcontroladorestienenlaarquitecturaHarvardde8bitsypertenecenaunadelastresgrandesgrupos.Poreso,dependiendodel
tamaodepalabradeprogramaexistenlaprimera,lasegundaylaterceracategorademicrocontroladores,esdecirmicrocontroladores
de12,14o16bits.Puestoquedisponendelncleosimilarde8bits,todosutilizanelmismojuegodeinstruccionesyelesqueletobsico
dehardwareconectadoamsomenosunidadesperifricas.

LosmicrocontroladoresPICconpalabrasdeprogramade14bitsparecenserlamejoropcinparalosprincipiantes.Aquestelporqu...

JUEGODEINSTRUCCIONES

Eljuegodeinstruccionesparalosmicrocontroladores16F8XXincluye35instruccionesentotal.Laraznparaunnmerotanreducidode
instruccionesyaceenlaarquietecturaRISC.Estoquieredecirquelasinstruccionessonbienoptimizadasdesdeelaspectodelavelocidad
operativa,lasencillezdelaarquitecturaylacompacidaddelcdigo.LomalodelaarquitecturaRISCesqueseesperadelprogramador
quehagafrenteaestasinstrucciones.Porsupuesto,estoesrelevanteslosiseutilizaellenguajeensambladorparalaprogramacin.
EstelibroserefierealaprogramacinenellenguajedealtonivelC,loquesignificaquelamayorpartedeltrabajoyafuehechopor
alguienms.As,slosetienenqueutilizarinstruccionesrelativamentesimples.

TIEMPODEEJECUCINDEINSTRUCCIONES

Todaslasinstruccionesseejecutanenunciclo.Lanicasexcepcionespuedenserlasinstruccionesderamificacincondicionalolas
instruccionesquecambianelcontenidodelcontadordeprograma.Enamboscasos,dosciclosderelojsonnecesariosparalaejecucin
delainstruccin,mientrasqueelsegundocicloseejecutacomounNOP(Nooperation).Lasinstruccionesdeuncicloconsistenencuatro
ciclosdereloj.Siseutilizaunosciladorde4MHz,eltiemponominalparalaejecucindelainstruccines1S.Encuantoalas
instruccionesderamificacin,eltiempodeejecucindelainstruccines2S.

JuegodeinstruccionesdelosmicrocontroladoresPICde14bits:

INST RUCCI N DESCRIPCI N O PERACI N BANDERA CLK *

Instruccionesparalatransmisindedatos

MOVLWk MoverliteralaW k>w 1

MOVWFf MoverelcontenidodeWaf W>f 1

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

CLRW BorrarelcontenidodeW 0>W Z 1

CLRFf Borrarelcontenidodef 0>f Z 1 2

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

Instruccionesaritmticolgicas

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

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

SUBLWk RestarWdeliteral kW>W C,DC,Z 1

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

ANDLWk ANDWconliteral WANDk>W Z 1

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

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 19/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
IORLWk ORinclusivodeWconliteral WORk>W Z 1

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

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

XORLWk ORexclusivodeWconf WXORf>d Z 1

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

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

RotarFalaizquierdaatravsdelbitde
RLFf,d C 1 1,2
Acarreo

RotarFaladerechaatravsdelbitde
RRFf,d C 1 1,2
Acarreo

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

Instruccionesorientadasabit

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

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

Instruccionesdecontroldeprograma

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

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

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

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

GOTOk Saltaraunadireccin k>PC 2

CALLk Llamaraunasubrutina PC>TOS,k>PC 2

RETURN Retornardeunasubrutina TOS>PC 2

RETLWk RetornarconliteralenW k>W,TOS>PC 2

RETFIE Retornardeunainterupcin TOS>PC,1>GIE 2

Otrasinstrucciones

NOP Nooperacin TOS>PC,1>GIE 1

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

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

*1SiunregistrodeE/Sestmodificado,elvalorutilizadoserelvalorpresentadoenlospinesdelmicrocontrolador.
*2SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
*3SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 20/22
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos

ArquitecturadelosmicrocontroladoresPICde8bits.Culesdeestosmdulospertenecernalmicrocontrolador,dependerdeltipode
microcontrolador.

tableofcontents|nextchapter

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
11/10/2015 ElmundodelosmicrocontroladoresMicrocontroladoresPICProgramacinenCconejemplos
PIC32Solution AVRSolution TivaCDev.Boards FT90xSolution Addonboards GPS
PIC32Dev.Boards AVRDev.Boards TivaCCompilers FT90xDev.Boards ClickBoards GSM/GPRS
PIC32Compilers AVRCompilers TivaCProgrammers FT90xCompilers ClickPacks
PIC32Programmers AVRProgrammers TivaCKits FT90xProgrammers mikromediashields
PIC32Kits AVRKits FT90xKits Communication

Support Forum mikroBUS Letsmake Press Legal Archive AboutUs Customization

Copyright19982015.MikroElektronika.Allrightsreserved.Alltradeand/orservicesmarksmentionedarethepropertyoftheirrespectiveowners.

http://www.mikroe.com/chapters/view/79/capitulo1elmundodelosmicrocontroladores/ 22/22

You might also like