Вы находитесь на странице: 1из 20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC
Products

Solutions

Store

Distributors

Libstock

ContactUs

searchhere

Login|Cart(0)

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPIC
ProgramacinenBASIC

FeaturedDevelopmentTools
EasyPICv7DevelopmentSystem

TOC Capitulo1 Capitulo2 Captulo3 Captulo4 ApndiceA

Captulo1:Mundodelosmicrocontroladores
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

EasyPICv7istopsellingPIC
DevelopmentBoardfor250Microchip
PICMCUsinDIPpackaging.Itfeatures
USB2.0programmer/debuggerandover
17essentialmodulesnecessaryin
development.Boardcomeswith
PIC18F45K22.[moreinfo]

Losprincipiantesenelectrnicacreenqueunmicrocontroladoresigualaunmicroprocesador.Estonoescierto.Difierenunodelotroen
muchossentidos.Laprimeraylamsimportantediferenciaessufuncionalidad.Parautilizaralmicroprocesadorenunaaplicacinreal,se
debe de conectar con otros componentes, en primer lugar con la memoria. Aunque el microprocesador se considera una mquina de
computacin poderosa, no est preparado para la comunicacin con los dispositivos perifricos que se le conectan. Para que el
microprocesadorsecomuniqueconalgnperifrico,sedebenutilizarloscircuitosespeciales.Aseraenelprincipioyestaprcticasigue
vigenteenlaactualidad.

Porotrolado,almicrocontroladorselediseadetalmaneraquetengatodaslascomponentesintegradasenelmismochip.Nonecesita
deotroscomponentesespecializadosparasuaplicacin,porquetodosloscircuitosnecesarios,quedeotramaneracorrespondanalos
perifricos,yaseencuentranincorporados.Asseahorratiempoyespacionecesarioparaconstruirundispositivo.
Para entender con ms facilidad las razones del xito tan grande de los microcontroladores, vamos a prestar atencin al siguiente
ejemplo.Haceunos10aos,disearundispositivoelectrnicodecontroldeunascensordeunedificiodevariospisoseramuydifcil,
inclusoparaunequipodeexpertos.Hapensadoalgunavezenqurequisitosdebecumplirunsimpleascensor?Cmolidiarconla
situacin cuando dos o ms personas llaman al ascensor al mismo tiempo? Cul llamada tiene la prioridad? Cmo solucionar las
cuestionesdeseguridad,deprdidadeelectricidad,defallos,deusoindebido?Loquesucededespusderesolverestosproblemas
bsicos es un proceso meticuloso de disear los dispositivos adecuados utilizando un gran nmero de los chips especializados. Este
procesopuedetardarsemanasomeses,dependiendodelacomplejidaddeldispositivo.Cuandohayaterminadoelproceso,llegalahora
dedisearunaplacadecircuitoimpresoydemontareldispositivo.Undispositivoenorme!Esotrotrabajodifcilytardado.Porltimo,
cuando todo est terminado y probado adecuadamente, pasamos al momento crucial y es cuando uno se concentra, respira
profundamente y enciende la fuente de alimentacin. Esto suele ser el punto en el que la fiesta se convierte en un verdadero trabajo
puestoquelosdispositivoselectrnicoscasinuncafuncionanapropiadamentedesdeelinicio.Prepreseparamuchasnochessindormir,
correcciones,mejoras...ynoseolvidedequetodavaestamoshablandodecmoponerenmarchaunsimpleascensor.
Cuandoeldispositivofinalmenteempieceafuncionarperfectamenteytodoelmundoestsatisfecho,ylepaguenporeltrabajoqueha
hecho,muchascompaasdedesarrolloestarninteresadasensutrabajo.Porsupuesto,sitienesuerte,cadadaletraerunaofertade
trabajodeunnuevoinversionista.Sinembargo,silorequierenparatrabajarenelcontroldeloselevadoresdeunnuevoedificioquetiene
cuatropisosmsdelosqueyamanejasusistemadecontrol.Sabecmoproceder?Creeacasoquesepuedencontrolarlasdemandas
desusclientes?Pensamosqueustedvaaconstruirundispositivouniversalquesepuedeutilizarenlosedificiosde4a40pisos,unaobra

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

1/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

maestradeelectrnica.Bueno,inclusosiustedconsigueconstruirunajoyaelectrnica,suinversionistaleesperarardelantedelapuerta
pidiendo una cmara en el ascensor o una msica relajante en caso de fallo de ascensor. O un ascensor con dos puertas. De todos
modos, la ley de Murphy es inexorable y sin duda usted no podr tomar ventaja a pesar de todos los esfuerzos que ha hecho. Por
desgracia,todoloquesehadichohastaahorasucedeenlarealidad.Estoesloquededicarsealaingenieraelectrnicarealmente
significa.Esascomosehacanlascosashastaaparicindelosmicrocontroladoresdiseadospequeos,potentesybaratos.Desde
esemomentosuprogramacindejdeserunaciencia,ytodotomotradireccin...
Eldispositivoelectrnicocapazdecontrolarunpequeosubmarino,unagraounascensorcomoelanteriormentemencionado,ahora
est incorporado en un slo chip. Los microcontroladores ofrecen una amplia gama de aplicaciones y slo algunas se exploran
normalmente. Le toca a usted decidir qu quiere que haga el microcontrolador y cargar un programa en l con las instrucciones
apropiadas.Antesdeencendereldispositivoesrecomendableverificarsufuncionamientoconayudadeunsimulador.Sitodofunciona
comoesdebido,incorporeelmicrocontroladorenelsistema.Sialgunaveznecesitacambiar,mejoraroactualizarelprograma,hgalo.
Hastacundo?Hastaquedarsatisfecho.Esopuederealizarsesinningnproblema.

Saba usted que todas las personas pueden ser clasificadas en uno de 10 grupos, en los que estn familiarizados con el sistema de
numeracin binario y en los que no estn familiarizados con l. Si no entendi lo anterior significa que todava pertenece al segundo
grupo.Sideseacambiarsuestado,leaelsiguientetextoquedescribebrevementealgunosdelosconceptosbsicosutilizadosmstarde
enestelibro(sloparaestarsegurodequeestamoshablandoenlosmismostrminos).

1.2NMEROS,NMEROS,NMEROS...
http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

2/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

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
esto realmente? Por qu utilizamos exactamente estos nmeros 100, 101 y 102 ? Por qu es siempre el nmero 10? Es porque
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
pocos voltios). La razn son los ruidos elctricos y fenmenos que se presentan dentro de lo que llamamos entorno de trabajo real
(algunosejemplosdeestosfenmenossonloscambiosimprevisiblesdelatensindealimentacin,cambiosdetemperatura,toleranciaa
los valores de los componentes etc...) Imagnese una computadora que opera sobre nmeros decimales al tratarlos de la siguiente
manera:0=0V,1=5V,2=10V,3=15V,4=20V...9=45V!?
Alguiendijobateras?
Unasolucinmuchomsfcilesunalgicabinariadonde0indicalaausenciadevoltaje,mientrasque1indicalapresenciadevoltaje.Es
msfcildeescribir0o1envezdenohayvoltajeohayvoltaje.Medianteelcerolgico(0)yunolgico(1)laelectrnicaseenfrenta
perfectamente y realiza con facilidad todas las operaciones aritmticas. Evidentemente, se trata de electrnica que en realidad aplica
aritmticaenlaquetodoslosnmerossonrepresentadosconslodosdgitosydondesloesimportantesabersihayvoltajeono.Por
supuesto,estamoshablandodeelectrnicadigital.

SISTEMADENUMERACINHEXADECIMAL
Enelprincipiodeldesarrollodelascomputadoraseraevidentequealagentelecostabamuchotrabajarconnmerosbinarios.Poreso,
seestableciunnuevosistemadenumeracin,queutilizaba16smbolosdiferentes.Esllamadoelsistemadenumeracinhexadecimal.
Estesistemaestcompuestode10dgitosalosqueestamosacostumbrados(0,1,2,3,...9)ydeseisletrasdelalfabetoA,B,C,D,EyF.
Cul es el propsito de esta combinacin aparentemente extraa? Basta con mirar cmo todo en la historia de los nmeros binarios
encajaperfectamenteparalograrunamejorcomprensindeltema.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

3/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Elmayornmeroquepuedeserrepresentadocon4dgitosbinarioseselnmero1111.Correspondealnmero15enelsistema
decimal.EnelsistemahexadecimalesenmeroserepresentaconsloundgitoF.Eselmayornmerodeundgitoenelsistema
hexadecimal.Sedacuentadelagranutilidaddeestasequivalencias?Elmayornmeroescritoconochodgitosbinariosesalavezel
mayornmerodedosdgitosenelsistemahexadecimal.Tengaencuentaqueunacomputadorautilizanmerosbinariosde8dgitos.
Acasosetratadeunacasualidad?

CDIGOBCD
ElcdigoBCD(BinaryCodedDecimalCdigobinariodecimal)esuncdigobinarioutilizadopararepresentaralosnmerosdecimales.
Consisteennmerosbinariosde4dgitosquerepresentanlosprimerosdiezdgitos(0,1,2,3...8,9).Aunquecuatrodgitospuedenhacer
16combinacionesposiblesentotal,elcdigoBCDnormalmenteutilizaalasprimerasdiez.

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

ConversindeNmerosBinariosaDecimales
Losmismosdgitosenunnmerobinariotienenponderacionesdiferentesloquedependedesusposicionesdentrodelnmeroqueestn
representando. Adems, cada dgito puede contener 1 o 0, y su ponderacin se puede determinar con facilidad al contar su posicin
empezandoporladerecha.Parahacerunaconversindeunnmerobinarioadecimalesnecesariomultiplicarlosdgitos(0o1)consu
ponderacindeposicin(20,21,22,23etc.)ysumartodoslosresultados.Lamagiadelaconversindeunnmerobinarioadecimal
funcionademaravilla...Tieneduda?Veamoselsiguienteejemplo:

Cabe destacar que es necesario utilizar slo dos dgitos binarios para representar a todos los nmeros decimales de 0 a 3. Para los
nmerosmayores,sedebenutilizarlosdgitosbinariosadicionales.Porconsiguiente,pararepresentarlosnmerosde0a7esnecesario
utilizartresdgitosbinarios,pararepresentarlosnmerosde0a15cuatrodgitosetc.Dichodemanerasencilla,elmayornmerobinario
quesepuederepresentarutilizandondgitosseobtienealelevarlabase2alapotencian.Luego,alresultadoseleresta1.Porejemplo,
sin=4:
24 1=161=15
Porconsiguiente,alutilizar4dgitosbinarios,esposiblerepresentarlosnmerosdecimalesde0a15,queson16valoresdiferentesen
total.

CONVERSINDENMEROSHEXADECIMALESADECIMALES
Para realizar una conversin de un nmero hexadecimal a decimal, cada dgito hexadecimal debe ser multiplicado con el nmero 16
elevadoalvalordesuposicin.Despus,elresultadoobtenidosedebesumar.Porejemplo:

CONVERSINDENMEROSHEXADCIMALESABINARIOS
No es necesario realizar ningn clculo para convertir un nmero hexadecimal a binario. Los dgitos hexadecimales se reemplazan
simplementeporloscuatrodgitosbinariosapropiados.Yaqueeldgitohexadecimalmximoesequivalentealnmerodecimal15,es
necesarioutilizarcuatrodgitosbinariospararepresentarundgitohexadecimal.Porejemplo:

Lasiguienteestablacomparativaquecontienelosvaloresdenmeros0255representadosentressistemasdenumeracindiferentes.
Estoesprobablementelamaneramsfcildeentenderlgicacomnaplicadaatodoslossistemasdenumeracin.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

4/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

MARCARLOSNMEROS
Elsistemadenumeracinhexadecimal,juntoconlossistemasbinarioydecimal,seconsideranlosmsimportantesparanosotros.Esfcil
realizar una conversin de cualquier nmero hexadecimal a binario, adems es fcil de recordarlo. Sin obstante, estas conversiones
puedenprovocarunaconfusin.Porejemplo,qusignificaenrealidadlasentencia:Esnecesariocontar110productosenunacadena
de montaje? Dependiendo del sistema en cuestin (binario, decimal o hexadecimal), el resultado podra ser 6, 110 o 272 productos,
respectivamente.Porconsiguiente,paraevitarequivocaciones,diferentesprefijosysufijosseaadendirectamentealosnmeros.Los
prefijos$y0xmarcanlosnmeroshexadecimales.Porejemplo,elnmerohexadecimal10AFsepuedeescribircomo$10AFo0x10AF.
Demanerasimilar,losnmerosbinariosnormalmenteobtienenelprefijo%.Siunnmeronotienenisufijoniprefijoseconsideradecimal.
Desafortunadamente,estaformademarcarlosnmerosnoesestandarizada,porconsiguientedependedelaaplicacinconcreta.

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.Similaralos
dgitosdecualquiernmero,losdgitosdeunbytenotienenelmismosignificado.Elbitdelextremoizquierdotienelamayorponderacin,
poresoesdenominadoelbitmssignificativo(MSB).Elbitdelextremoderechotienelamenorponderacin,poresoesdenominadoelbit
menossignificativo(LSB).Puestoquelos8dgitosdeunbytesepuedencombinarde256manerasdiferentes,elmayornmerodecimal
quesepuederepresentarconunbytees255(unacombinacinrepresentauncero).
Unnibbleouncuartetorepresentaunamitaddebyte.Dependiendodelamitaddelnmeroencuestin(izquierdaoderecha),seles
denominanibblesaltosobajos,respectivamente.

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

1.3DETALLESIMPORTANTES
ElfuncionamientodeestoselementosesbasadoenlosprincipiosestablecidosporelmatemticobritnicoGeorgeBooleenlamitaddel
siglo19esdecir,antesdelainvencindelaprimerabombilla.Laideaprincipaleradeexpresarlasformaslgicaspormediodelas
funcionesalgebraicas.Talideaprontosetransformenunproductoprcticoqueseconvirtimstardeenloquehoyendaconocemos
comocircuitoslgicosY(AND),O(OR)oNO(NOT).ElprincipiodesufuncionamientoesconocidocomoalgebradeBoole.

CIRCUITOSLGICOS
Algunas instrucciones de programa funcionan de la misma manera que las compuertas lgicas. A continuacin vamos a explicar el
principiodesufuncionamiento.

CompuertaY(AND)

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

5/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Una compuerta lgica Y dispone de dos o ms


entradasydeunasalida.Enestecasolacompuerta
utilizada dispone de slo dos entradas. Un uno
lgico (1) aparecer en su salida slo en caso de
queambasentradas(AyB)seanllevadasaalto(1).
La tabla a la derecha muestra la relacin entre las
entradasysalidasdelacompuertaY.

Elprincipiodefuncionamientoeselmismocuandola
compuerta disponga de ms de dos entradas: la
salidaproporcionaununolgico(1)slositodaslas
entradas son llevadas a alto (1). Cualquier otra
combinacin de voltajes de entrada proporcionar
un cero lgico (0) en su salida. Utilizada en el
programa,laoperacinYlgicoesrealizadaporuna
instruccin de programa, de la que vamos a hablar
ms tarde. Por ahora basta con conocer que Y
lgicoenunprogramaserefierealarealizacinde
este

tipo

de

operacin

sobre

los

bits

correspondientesdedosregistrosdiferentes.

CompuertaO(OR)
Demanerasimilar,lacompuertaOtambindispone
de dos o ms entradas y de una salida. Si la
compuerta dispone de slo dos entradas, es
aplicable lo siguiente: la salida proporciona un uno
lgico(1)siunauotraentrada(AoB)esllevadaa
alto(1).EncasodequelacompuertaOdispongade
ms de dos entradas, es aplicable lo siguiente: La
salidaproporcionaununolgico(1)siporlomenos
una entrada es llevada a alto (1). Si todas las
entradas estn a cero lgico (0), la salida estar a
cerolgico(0)tambin.

Enunprograma,laoperacinOlgicoserealizade
lamismamaneraquelaoperacinYlgico.

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

EnelprogramalaoperacinlgicaNOserealizasobreunbyte.Elresultadoesunbyteconlosbitsinvertidos.Silosbitsdeunbytese
consideran nmero, el valor invertido es un complemento a ese nmero. El complemento de un nmero es el valor que se aade al
nmerohastallegaralmayornmerobinariode8dgitos.Enotraspalabras,lasumadeundgitode8nmerosydesucomplementoes
siempre255.

COMPUERTA XOR (O EXCLUSIVA)

LacompuertaXOR(OEXCLUSIVA)esunpococomplicadaencomparacinconlasdems.Representaunacombinacindetodaslas
compuertasanteriormentedescritas.Lasalidaproporcionaununolgico(1)slosisusentradasestnenestadoslgicosdiferentes.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

6/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Enelprograma,estaoperacinseutilizaconfrecuenciaparacomparardosbytes.Larestasepuedeutilizarconelmismopropsito(siel
resultado es 0, los bytes son iguales). A diferencia de la resta, la ventaja de esta operacin lgica es que no es posible obtener los
resultadosnegativos.

REGISTRO
Unregistroounaceldadememoriaesuncircuitoelectrnicoquepuedememorizarelestadodeunbyte.

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

Enotraspalabras,elestadodelosbitsderegistrossefijadentrodeprograma,losregistrosSFRdirigenlospequeoscircuitosdentrodel
microcontrolador, estos circuitos se conectan por los pines del microcontrolador a un dispositivo perifrico utilizado para... Bueno,
dependedeusted.

PUERTOSDEENTRADA/SALIDA(E/S)
Parahacertilunmicrocontrolador,hayqueconectarloaundispositivoexterno,osea,aunperifrico.Cadamicrocontroladortieneunoo
ms registros (denominados puertos) conectados a los pines en el microcontrolador. Por qu se denominan como puertos de
entrada/salida?Porqueustedpuedecambiarlafuncindecadapincomoquiera.Porejemplo,usteddeseaquesudispositivoencienday
apaguelostressealesLEDsyquesimultneamentemonitoreeelestadolgicode5sensoresobotonesdepresin.Unodelospuertos
debeestarconfiguradodetalmaneraquehayatressalidas(conectadasalosLEDs)ycincoentradas(conectadasalossensores).Esose
realizasimplementepormediodesoftware,loquesignificaquelafuncindealgnpinpuedesercambiadaduranteelfuncionamiento.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

7/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Unadelascaractersticasmsimportantesdelospinesdeentrada/salida(E/S)eslacorrientemximaquepuedenentregar/recibir.Enla
mayoradelosmicrocontroladoreslacorrienteobtenidadeunpinessuficienteparaactivarunLEDuotrodispositivodebajacorriente
(1020mA).
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(0o1lgico,respectivamente).

UNIDADDEMEMORIA
La unidad de memoria es una parte del microcontrolador utilizada para almacenar los datos. La manera ms fcil de explicarlo es
compararlo con un armario grande con muchos cajones. Si marcamos los cajones claramente, ser fcil acceder a cualquiera de sus
contenidosalleerlaetiquetaenlapartedelanteradelcajn.
Demanerasimilar,cadadireccindememoriacorrespondeaunalocalidaddememoria.Elcontenidodecualquierlocalidadsepuede
leeryselepuedeaccederaldireccionarla.Lamemoriasepuedeescribirenlalocalidadoleer.

Hayvariostiposdememoriadentrodelmicrocontrolador:

MemoriaROM(ReadOnlyMemory)memoriadeslolectura
LamemoriaROMseutilizaparaguardarpermanentementeelprogramaqueseestejecutando.Eltamaodeprogramaquesepuede
escribirdependedeltamaodeestamemoria.Losmicrocontroladoresactualesnormalmenteutilizaneldireccionamientode16bits,que
significaquesoncapacesdedireccionarhasta64Kbdememoria,osea65535localidades.Porejemplo,siustedesprincipiante,su
programaexcederpocasvecesellmitedevarioscientosdeinstrucciones.HayvariostiposdememoriaROM.

ROMdemscara(enmascarada)MROM
LaROMenmascaradaesuntipodeROMcuyocontenidoesprogramadoporelfabricante.Eltrminodemscaravienedelprocesode
fabricacin,dondelaspartesdelchipseplasmanenlasmascarasutilizadasduranteelprocesodefotolitografa.Encasodefabricacin
degrandesseries,elprecioesmuybajo.Olvidelaideademodificarla...

OTPROM(OneTimeProgrammableROM)ROMprogramableunasolavez
Lamemoriaprogramableunasolavezpermitedescargarunprogramaenelchip,perocomodicesunombre,unasolavez.Sisedetecta
unerrordespusdedescargarlo,lonicoquesepuedehaceresdescargarelprogramacorrectoenotrochip.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

8/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

UVEEPROM(ROMErasableprogrammableROM)ROMprogramableborrableporrayosultravioleta

Elencapsuladodeestemicrocontroladortieneunaventanareconocibleenlapartealta.Esopermiteexponerlasuperficiedelchipde
silicioalaluzdeultravioletayborrarelprogramacompletamenteenvariosminutos.Luegoesposibledescargarunnuevoprogramaenl.
Lainstalacindeestaventanaescomplicada,loqueporsupuestoafectaalprecio.Desdenuestropuntodevista,desgraciadamente,de
maneranegativa...

MemoriaFlash
Estetipodememoriaseinventenlosaos80enloslaboratoriosdelacompaaINTEL,comoformadesarrolladadelamemoriaUV
EPROM. Ya que es posible escribir y borrar el contenido de esta memoria prcticamente un nmero ilimitado de veces, los
microcontroladoresconmemoriaFlashsonperfectosparaestudiar,experimentaryparalafabricacinenpequeaescala.Porlagran
popularidaddeestamemoria,lamayoradelosmicroconroladoressefabricancontecnologaflashhoyenda.Siustedvaacomprarun
microcontrolador,steesendefinitivalaopcinperfecta!

MEMORIARAM(RandomAcMemoriaRAM(RandomAccessMemory)memoriadeaccesoaleatorio
Alapagarlafuentedealimentacin,sepierdeelcontenidodelamemoriaRAM.Seutilizaparaalmacenartemporalmentelosdatosylos
resultadosinmediatoscreadosyutilizadosduranteelfuncionamientodelmicrocontrolador.Porejemplo,sielprogramaejecutalaadicin
(decualquiercosa)esnecesariotenerunregistroquerepresentaloquesellamasumaenvidacotidiana.Contalpropsito,unodelos
registrosdelaRAMesdenominadosumayseutilizaparaalmacenarlosresultadosdelaadicin.

MemoriaEEPROM(ElectricallyErasableProgrammableROM)ROMprogramableyborrableelctricamente
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.

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

UNIDADCENTRALDEPROCESAMIENTO(CentralprocessorunitCPU)
Comoindicasunombre,estoesunaunidadquecontrolatodoslosprocesosdentrodelmicrocontrolador.Consisteenvariasunidades
mspequeas,delasquelasmsimportantesson:

Decodificadordeinstrucciones.Eslapartequedescodificalasinstruccionesdelprogramayaccionaotroscircuitos
basndoseenesto
Unidad lgica aritmtica (Arithmetical Logical Unit ALU) realiza todas las operaciones matemticas y lgicas
sobre datos. El conjunto de instrucciones que es diferente para cada familia de microcontrolador expresa las
capacidadesdeestecircuitoy
Acumuladororegistrodetrabajo.EsunregistroSFRestrechamenterelacionadoconelfuncionamientodelaALU.
Es un tipo de escritorio de trabajo utilizado para almacenar todos los datos sobre los que se debe realizar alguna
operacin (sumar, mover). Tambin almacena los resultados preparados para el procesamiento futuro. Uno de los
registros SFR, denominado Registro Status (PSW), est estrechamente relacionado con el acumulador. Muestra el
estado de un nmero almacenado en el acumulador (el nmero es mayor o menor que cero etc.) en cualquier
instantedado.Elacumuladoresdenominadoregistrodetrabajo(workingregister),osea,registroWosolamenteW.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontroladores/

9/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

COMUNICACINSERIE
Laconexinparalelaentreelmicrocontroladorylosperifricosatravsdelospuertosdeentrada/salidaesunasolucinperfectaparalas
distanciascortashastavariosmetros.Noobstante,cuandoesnecesarioestablecercomunicacinentredosdispositivosalargas
distanciasnoesposibleutilizarlaconexinparalela.Envezdeeso,seutilizalaconexinenserie.
Hoyenda,lamayoradelosmicrocontroladoresllevanincorporadosvariossistemasdiferentesparalacomunicacinenserie,comoun
equipoestndar.Culdeestossistemasseutilizarenuncasoconcreto,dependedemuchosfactores,delosquemsimportantesson:

Concuntosdispositivoselmicrocontroladortienequeintercambiarlosdatos?
Culeslavelocidaddelintercambiodedatosobligatoria?
Culesladistanciaentrelosdispositivos?
Esnecesariotransmitiryrecibirlosdatossimultneamente?

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

VELOCIDADDETRANSMISINDEDATOS
Lavelocidaddetransmisindedatos(datarate)eseltrminoutilizadoparadenotarelnmerodebitstransmitidosporsegundo[bps].
Fjesequeestetrminoserefiereabits,ynoabytes!Elprotocolonormalmenterequierequecadabytesetransmitajuntoconvariosbits
decontrol.Esoquieredecirqueunbyteenunflujodedatosserialpuedeconsistiren11bits.Porejemplo,sivelocidaddetransmisin
seriales300bpsunmximode37yunmnimode27bytessepuedentransmitirporsegundo.
Lossistemasdecomunicacinserialmsutilizadosson:

I 2C(InterIntegratedCircuit)CircuitoInterIntegrado
Circuitointerintegradoesunsistemaparaelintercambiodedatosserialentrelosmicrocontroladoresyloscircuitosintegradosdenueva
generacin.Seutilizacuandoladistanciaentreellosescorta(elreceptoryeltransmisorestnnormalmenteenlamismaplacadecircuito
impreso).Laconexinseestablecepormediodedoslneasunaseutilizaparatransmitirlosdatos,mientrasquelaotraseutilizaparala
sincronizacin(lasealdereloj).Comosemuestraenlafigura,undispositivoessiempreelprincipal(mastermaestro),elquerealizael
direccionamientodeunchipsubordinado(slaveesclavo)antesdequeseinicielacomunicacin.Deestamaneraunmicrocontrolador
puedecomunicarsecon112dispositivosdiferentes.Lavelocidaddetransmisindedatosesnormalmente100Kb/seg(elmodoestndar)
o 10 Kb/seg (modo de velocidad de transmisin de datos baja). Recientemente han aparecido los sistemas con la velocidad de
transmisindedatosde3.4Mb/sec.LadistanciaentrelosdispositivosquesecomunicanporelbusI2Cestlimitadaaunosmetros.

SPI(SERIALPERIPHERALINTERFACEBUS)BUSSERIALDEINTERFAZDEPERIFRICOS

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

10/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Unbusserialdeinterfazdeperifricosesunsistemaparalacomunicacinserialqueutilizatresdecuatrolneaspararecibirlosdatos,
para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comunica. Esto es la conexin full
duplex,loquesignificaquelosdatosseenvanyserecibensimultneamente.
LavelocidaddetransmisindedatosmximaesmayorqueenelmdulodeconexinI2C.

UART(UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER)TRANSMISORRECEPTORASNCRONOUNIVERSAL
Este tipo de conexin es asncrona, lo que significa que no se utiliza una lnea especial para transmitir la seal de reloj. En algunas
aplicacionesesterasgoescrucial(porejemplo,enmandardatosadistanciaporRFoporluzinfrarroja).Puestoqueseutilizaslouna
lneadecomunicacin,tantoelreceptorcomoeltransmisorrecibenyenvanlosdatosavelocidadmismaquehasidopredefinidapara
mantenerlasincronizacinnecesaria.Estoesunamanerasimpledetransmitirdatospuestoquebsicamenterepresentaunaconversin
dedatosde8bitsdeparaleloaserial.Lavelocidaddetransmisinnoesalta,eshasta1Mbit/sec.

OSCILADOR

Los pulsos uniformes generados por el oscilador permiten el funcionamiento armnico y sncrono de todos los circuitos del
microcontrolador. El oscilador se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico para
estabilizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como oscilador RC). Es importante decir que las
instruccionesdelprogramanoseejecutanalavelocidadimpuestaporelmismoosciladorsinovariasvecesmsdespacio.Esoocurre
porquecadainstruccinseejecutaenvariosciclosdeloscilador.Enalgunosmicrocontroladoressenecesitaelmismonmerodeciclos
para ejecutar todas las instrucciones, mientras que en otros el tiempo de ejecucin no es el mismo para todas las instrucciones. Por
consiguiente, si el sistema utiliza el cristal de cuarzo con una frecuencia de 20 MHZ, el tiempo de ejecucin de una instruccin de
programanoes50nS,sino200,400o800nSdependiendodeltipodelmicrocontrolador.

CIRCUITODEALIMENTACIN
Hayquemencionardoscosasdignasdeatencinconrelacinalcircuitodelafuentedealimentacindemicrocontroladores:

Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el
voltaje de la fuente de alimentacin salga de unos mrgenes debido al ruido elctrico. Como el microcontrolador
disponedevarioscircuitosquefuncionananivelesdevoltajediferentes,eseestadopuedecausaruncomportamiento
descontrolado.Paraevitarlo,elmicrocontroladornormalmentetieneuncircuitoincorporadoparaelbrownoutreset.El
circuitoreiniciainmediatamenteelmicrocontroladorsielvoltajedealimentacincaepordebajodellmite.
El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo
del microcontrolador al aplicar un cero (0) o un uno (1) lgico dependiendo del tipo del microcontrolador. En caso de
queelcircuitobrownoutnoestincorporado,unsimplecircuitoexternoparaelbrownoutresetsepuedeconectaral
pinMCLR.

TEMPORIZADORES/CONTADORES
El oscilador del microcontrolador utiliza cristal de cuarzo para su funcionamiento. Aunque no se trata de la solucin ms simple, hay
muchasrazonesparautilizarlo.Lafrecuenciadelosciladoresdefinidaconprecisinymuyestable,asquesiempregeneralospulsosdel
mismoancho,loqueloshaceperfectosparamedicindetiempo.Talesosciladoresseutilizanenlosrelojesdecuarzo.Siesnecesario
medireltiempotranscurridoentredoseventos,bastaconcontarlospulsosgeneradosporesteoscilador.Estoesexactamenteloquehace
eltemporizador.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

11/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

Lamayoradelosprogramasutilizaestoscronmetroselectrnicosenminiatura.GeneralmentesonregistrosSFRde8o16bitscuyo
contenidoseaumentaautomticamenteconcadapulso.Unavezquesellenaelregistro,segeneraunainterrupcin!
Sieltemporizadorutilizaelosciladordecuarzointernoparasufuncionamiento,esposiblemedireltiempoentredoseventos(elvalorde
registroenelmomentodeiniciarlamedicinesT1,enelmomentodefinalizarlamedicinesT2,eltiempotranscurridoesigualal
resultadodelarestaT2T1).Silosregistrosseaumentanconlospulsosquevienendelafuenteexterna,taltemporizadorseconvierteen
uncontador.
Estoesunaexplicacinsimpledesufuncionamiento.Esunpocomscomplicadoenprctica.

CMOFUNCIONANLOSTEMRPORIZADORES?
Enprctica,lospulsosgeneradosporelosciladordecuarzosonllevadosalcircuitounavezporcadaciclodemquinadirectamenteopor
elpreescalador,loqueaumentaelnmeroenelregistrodeltemporizador.Alincorporaralcuarzoqueoscilaconunafrecuenciade4
MHz se aplica lo siguiente:si una instruccin (un ciclo de mquina) dura cuatro perodos del oscilador de cuarzo, este nmero ser
cambiadounmillndevecesporsegundo(cadamicrosegundo).

Es fcil de medir los intervalos de tiempo cortos de la manera descrita anteriormente (hasta 256 microsegundos porque es el mayor
nmeroqueunregistropuedecontener).Estaobviadesventajasepuedesuperardevariasmaneras:alutilizarelosciladormslento,por
medioderegistrosconmsbits,delpreescaladorodelainterrupcin.Lasprimerasdossolucionestienenalgunasdebilidadesasquese
recomiendautilizarelpreescaladory/olainterrupcin.

UTILIZARUNPREESCALADORENELFUNCIONAMIENTODELTEMPORIZADOR
Unpreescaladoresundispositivoelectrnicoutilizadoparadividirlafrecuenciaporunfactorpredeterminado.Estoquieredecirquese
necesitallevar1,2,4omspulsosasuentradaparagenerarunpulsoalasalida.Lamayoradelosmicrocontroladoresdisponendeuno
omspreescaladoresincorporadosysutasadedivisinpuedesercambiadadentrodelprograma.Elpreescaladorseutilizacuandoes
necesariomedirlosperodosdetiempomslargos.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

12/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

UTILIZARUNAINTERRUPCINENELFUNCIONAMIENTODELTEMPORIZADOR
Sielregistrodeltemporizadoresde8bits,elmayornmeroquesepuedeescribirenles255.Enlosregistrosde16bitseselnmero
65.535. Si se excede este nmero, el temporizador se reinicia automticamente y el conteo comienza de nuevo en cero. Esto es
denominadodesbordamientoosobreflujo(overflow).Permitidoporelprograma,eldesbordamientopuedeprovocarunainterrupcin,lo
queabrecompletamentenuevasposibilidades.Porejemplo,elestadoderegistrosutilizadosparacontarsegundos,minutosodaspuede
serimplementadoenunarutinadeinterrupcin.Elprocesoentero(exceptolarutinadeinterrupcin)sellevaacabointernamente,loque
permitequeloscircuitosprincipalesdelmicrocontroladorfuncionenregularmente.

La figura anterior describe el uso de una interrupcin en el funcionamiento del temporizador. Al asignarle un preescalador al
temporizador,seproducenretrasosdeduracinarbitrariaconmnimainterferenciaenlaejecucindelprogramaprincipal.

CONTADORES
Si un temporizador se suministra por los pulsos ingresados por el pin de entrada en el microcontrolador, se produce un contador.
Evidentemente,eselmismocircuitoelectrnicocapazdefuncionarendosmodosdiferentes.Lanicadiferenciaesquelospulsospara
contarseingresanporelpindeentradayquesuduracin(anchura)noesdefinida.Poreso,nosepuedenutilizarparamedicinde
tiempo,sinoqueseutilizanparaotrospropsitos,porejemplo:contarlosproductosenlacadenademontaje,nmeroderotacionesdel
ejedeunmotor,pasajerosetc.(dependiendodelsensorutilizado).

TEMPORIZADORPERROGUARDIN(WATCHDOG)
ElperroguardinesuntemporizadorconectadoaunosciladorRCcompletamenteindependientedentrodelmicrocontrolador.
Sielperroguardinesthabilitado,cadavezquecuentahastaelmximovalorenelqueocurreeldesbordamientodelregistrosegenera
unasealdereiniciodelmicrocontroladorylaejecucindeprogramainiciaenlaprimerainstruccin.Elpuntoesevitarqueesoocurraal
utilizarelcomandoadecuado.
Laideasebasaenelhechodequecadaprogramaseejecutaenvariosbucles,mslargosocortos.Silasinstruccionesquereinicianel
temporizadorperroguardinsecolocanenlugaresestratgicosdelprograma,aparteloscomandosqueseejecutanregularmente,el
funcionamientodelperroguardinnoafectaralaejecucindelprograma.Siporcualquierrazn(confrecuenciaporlosruidos
elctricos)elcontadordeprogramasequedaatrapadodentrodeunbucleinfinito,elvalordelregistrocontinuaraumentadoporel
temporizadorperroguardinalcanzarelmximovalor,elregistrosedesbordary,aleluya!Ocurreelreinicioyelprogramaser
ejecutadodesdeelprincipio!

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

13/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

CONVERTIDORA/D

Lassealesexternassonmuydiferentesdelasqueentiendeelmicrocontrolador(solamente0Vy5V),asquedebenserconvertidas
para que el microcontrolador pueda entenderlas. Un convertidor analgicodigital es un circuito electrnico encargado de convertir las
sealescontinuasennmerosdigitalesdiscretos.Enotraspalabras,estecircuitoconvierteunnmerorealenunnmerobinarioyselo
envaalaCPUparaserprocesado.Estemduloseutilizaparamedirelvoltajeenelpindeentrada(voltajeanalgico).
Elresultadodeestamedicinesunnmero(elvalordigital)utilizadoyprocesadomstardeenelprograma.

ARQUITECTURAINTERNA
TodoslosmicrocontroladoresactualesutilizanunodedosmodelosbsicosdearquitecturadenominadosHarvardyvonNeumann.
SondosmanerasdiferentesdelintercambiodedatosentrelaCPUylamemoria.

ARQUITECTURADEVONNEUMANN

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

14/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

LosmicrocontroladoresqueutilizanlaarquitecturavonNeumanndisponendeunsolobloquedememoriaydeunbusdedatosde8bits.
Comotodoslosdatosseintercambianpormediodeestas8lneas,estebusestsobrecargado,ylacomunicacinporsimismaesmuy
lentaeineficaz.LaCPUpuedeleerunainstruccinoleer/escribirdatosde/enlamemoria.Losdosprocesosnopuedenocurriralavez
puestoquelasinstruccionesylosdatosutilizanelmismobus.Porejemplo,sialgunalneadeprogramadicequeelregistrodelamemoria
RAMllamadoSUMdebeseraumentadoporuno(instruccin:incfSUMA),elmicrocontroladorharlosiguiente:

1. Leer la parte de la instruccin de programa que especifica QU es lo que debe realizar (en este caso es la
instruccinparaincrementarincf)
2. Seguir leyendo la misma instruccin que especifica sobre CUL dato lo debe realizar (en este caso es el
contenidodelregistroSUMA)
3. Despus de haber sido incrementado, el contenido de este registro se debe escribir en el registro del que fue
ledo(direccindelregistroSUMA)
ElmismobusdedatosseutilizaparatodasestasoperacionesintermediasalintercambiarlosdatosentrelaCPUylamemoria.

ARQUITECTURADEHARVARD

Losmicrocontroladoresqueutilizanestaarquitecturadisponendedosbusesdedatosdiferentes.Unoesde8bitsdeanchoyconectala
CPUconlamemoriaRAM.Elotroconsisteenvariaslneas(12,14o16)yconectaalaCPUylamemoriaROM.Porconsiguiente,laCPU
puedeleerlasinstruccionesyrealizarelaccesoalamemoriadedatosalavez.PuestoquetodoslosregistrosdelamemoriaRAMsonde
8 bits de ancho, todos los datos dentro del microcontrolador que se intercambian son de la misma anchura. Durante el proceso de la
escrituradeprograma,slosemanejanlosdatosde8bits.Enotraspalabras,todoloqueustedpodrcambiarenelprogramayaloque
podrafectarserde8bitsdeancho.Todoslosprogramasescritosparaestosmicrocontroladoressernalmacenadosenlamemoria
ROMinternadelmicrocontroladordespusdehabersidocompiladosacdigomquina.Noobstante,estaslocalidadesdememoriaROM
notienen8,sino12,14o16bits.4,6o8bitsadicionalesrepresentanunainstruccinqueespecificaalaCPUquhacerconlosdatosde
8bits.
Lasventajasdeestaarquitecturasonlassiguientes:

Todos los datos en el programa son de un byte (8 bits) de ancho. Como un bus de datos utilizado para lectura de
programa tiene unas lneas ms (12, 14 o 16), tanto la instruccin como el dato se pueden leer simultneamente al
utilizar estos bits adicionales. Por eso, todas las instrucciones se ejecutan en un ciclo salvo las instrucciones de
saltoquesondedosciclos.
Elhechodequeunprograma(laROM)ylosdatostemporales(laRAM)estnseparados,permitealaCPUpoder
ejecutardosinstruccionessimultneamente.Dichodemanerasencilla,mientrasqueserealizalalecturaoescritura
delaRAM(quemarcaelfindeunainstruccin),lasiguienteinstruccinseleepormediodeotrobus.
EnlosmicrocontroladoresqueutilizanlaarquitecturadevonNeumann,nuncasesabecuntamemoriaocuparalgn
programa. Generalmente, la mayora de las instrucciones de programa ocupan dos localidades de memoria (una
contieneinformacinsobreQUsedeberealizar,mientrasquelaotracontieneinformacinsobreCULdatosedebe
realizar). Sin embargo, esto no es una frmula rgida, sino el caso ms frecuente. En los microcontroladores que
utilizanunaarquitecturaHarvard,elbusdelapalabradeprogramaesmsanchoqueunbyte,loquepermite
que cada palabra de programa est compuesto por una instruccin y un dato. En otras palabras, una localidad de
memoriaunainstruccindeprograma.

JUEGODEINSTRUCCIONES

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

15/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

ElnombrecolectivodetodaslasinstruccionesquepuedeentenderelmicrocontroladoresllamadoJuegodeInstrucciones.Cuandose
escribeunprogramaenensamblador,enrealidadseespecificaninstruccionesenelordenenelquedebenserejecutadas.Larestriccin
principaleselnmerodeinstruccionesdisponibles.Losfabricantesnormalmenteelijenentreunadedossolucionesopuestasydisean
losmicrocontroladoresqueaplicanelmayoroelmenornmeroposibledeinstrucciones.Enotraspalabras,elijenentredosjuegosde
instruccionesRISCoCISC,respectivamente.

RISC(REDUCEDINSTRUCTIONSETCOMPUTER)COMPUTADORACONJUEGODEINSTRUCCIONESREDUCIDAS
Enestecasolaideaesqueelmicrocontroladorreconoceyejecutaslooperacionesbsicas(sumar,restar,copiaretc...)Lasoperaciones
mscomplicadasserealizanalcombinarstas.Porejemplo,multiplicacinsellevaacaboalrealizaradicinsucesiva.Escomointentar
explicarleaalguienconpocaspalabrascmollegaralaeropuertoenunanuevaciudad.Sinembargo,notodoestanoscuro.Porltimo,
no es tan difcil explicar dnde est el aeropuerto si se utilizan las palabras adecuadas tales como: a la derecha, a la izquierda, el
kilmetroetc.

CISC(COMPLEXINSTRUCTIONSETCOMPUTER)COMPUTADORASCONJUEGODEINTRUCCIONESCOMPLEJO
CISC es opuesto a RISC! Los microcontroladores diseados para reconocer ms de 200 instrucciones diferentes realmente pueden
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
sercapazdemanejarcualquiermodeloquepertenecealamismafamilia...
Msomenos,todosepareceamontarenbicicleta:despusdevariascadasinevitablesenelprincipio,sercapazdemantenerel
equilibrioymontarencualquierotrabicicleta.Porsupuesto,nuncaseolvidatantodemontarenbicicleta,comodeladestrezade
programacin!

1.4MICROCONTROLADORESPIC
ElnombreverdaderodeestemicrocontroladoresPICmicrocontroladordeinterfazperifrico(PeripheralInterfaceController),conocido
bajoelnombrePIC.Suprimerantecesorfuecreadoen1975porlacompaaGeneralInstruments.EstechipdenominadoPIC1650fue
diseadoparapropsitoscompletamentediferentes.Aproximadamentediezaosmstarde,alaadirunamemoriaEEPROM,este
circuitoseconvirtienunverdaderomicrocontroladorPIC.
Siestinteresadoenaprendermssobreeso,sigaleyendo.
Laideaprincipaldeestelibroesproporcionarlainformacinnecesariaalusuarioparaqueseacapazdeutilizarlosmicrocontroladoresen
laprctica.Paraevitarexplicacionespesadasylashistoriasinfinitassobrelascaractersticastilesdelosmicrocontroladoresdiferentes,
estelibrodescribeelfuncionamientodeunmodeloparticularquepertenecealaclasemediaalta.EsPIC16F887bastantepoderoso
para ser digno de atencin y bastante simple para poder ser utilizado por cualquiera. As, los siguientes captulos describen este
microcontroladorendetalleytambinserefierenalafamiliaPICentera..
TodoslosmicrocontroladoresPICutilizanunaarquitecturaHarvard,loquequieredecirquesumemoriadeprogramaestconectadaala
CPUpormsde8lneas.Haymicrocontroladoresde12,14y16bits,dependiendodelaanchuradelbus.Lasiguientetablarmuestralas
caractersticasprincipalesdeestastrescategorasdelosmicrocontroladoresPIC.

RAM
[bytes]

Frecuencia

Entradas

Resolucin
del
convertidor
A/D

Familia

ROM
[Kbytes]

PIC10FXXX

0.375
0.75

1624

68

48

02

01

PIC12FXXX

0.75
1.5

2538

48

03

01

Pines

dereloj
[MHz]

A/D

Compar
adores

Temporizadores

Com.

Salidas

de8/16bits

serial

PWM

1x8

1x8

EEPROM

Otros

Arquitecturadelagamabajade8bits,palabradeinstruccinde12bits

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

16/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

PIC16FXXX

0.753

25
134

14
44

20

03

02

1x8

EEPROM

PIC16HVXXX

1.5

25

18
20

20

1x8

Vdd=
15V

01

EEPROM

Arquitecturadelagamamediade8bits,palabradeinstruccinde14bits
PIC12FXXX

1.75
3.5

PIC12HVXXX

1.75

PIC16FXXX
PIC16HVXXX

64
128

20

04

10

12x81x16

64

20

04

10

12x81x16

01

1.7514

64
368

14
64

20

013

8or10

02

12x81x16

USART
I2CSPI

03

1.75
3.5

64
128

14
20

20

012

10

2x81x16

USART
I2CSPI

Arquitecturadelagamaaltade8bits,palabradeinstruccinde16bits

PIC18FXXX

4128

256
3936

18
80

3248

416

10or12

03

02x823x16

USB2.0
CAN2.0
USART
I2CSPI

05

PIC18FXXJXX

8128

1024
3936

28
100

4048

1016

10

02x823x16

USB2.0
USART
Ethernet
I2CSPI

25

PIC18FXXKXX

864

768
3936

28
44

64

1013

10

1x83x16

USART
I2CSPI

Como se puede ver en la tabla de la pgina anterior, salvo los monstruos de 16 bits PIC 24FXXX y PIC 24HXXX todos los
microcontroladores tienen la arquitectura Harvard de 8 bits y pertenecen a una de las tres grandes grupos. Por eso, dependiendo del
tamaodepalabradeprogramaexistenlaprimera,lasegundaylaterceracategorademicrocontroladores,esdecirmicrocontroladores
de12,14o16bits.Puestoquedisponendelncleosimilarde8bits,todosutilizanelmismojuegodeinstruccionesyelesqueletobsico
dehardwareconectadoamsomenosunidadesperifricas.
LosmicrocontroladoresPICconpalabrasdeprogramade14bitsparecenserlamejoropcinparalosprincipiantes.Aquestelporqu...

JUEGODEINSTRUCCIONES
Eljuegodeinstruccionesparalosmicrocontroladores16F8XXincluye35instruccionesentotal.Laraznparaunnmerotanreducidode
instruccionesyaceenlaarquietecturaRISC.Estoquieredecirquelasinstruccionessonbienoptimizadasdesdeelaspectodelavelocidad
operativa, la sencillez de la arquitectura y la compacidad del cdigo. La desventaja de la arquitectura RISC es que se espera del
programador que haga frente a estas instrucciones. Por supuesto, esto es relevante slo si se utiliza el lenguaje ensamblador para la
programacin.EstelibroserefierealaprogramacinenellenguajedealtonivelBasic,loquesignificaquelamayorpartedeltrabajoya
fuehechoporalguienms.As,slosetienenqueutilizarinstruccionesrelativamentesimples.

TIEMPODEEJECUCINDEINSTRUCCIONES
Todaslasinstruccionesseejecutanenunciclo.Lanicasexcepcionespuedenserlasinstruccionesderamificacincondicionalolas
instruccionesquecambianelcontenidodelcontadordeprograma.Enamboscasos,dosciclosderelojsonnecesariosparalaejecucin
delainstruccin,mientrasqueelsegundocicloseejecutacomounNOP(Nooperation).Lasinstruccionesdeuncicloconsistenencuatro
ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la ejecucin de la instruccin es 1mS. En cuanto a las
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

CLRFf

Borrarelcontenidodef

0>f

SWAPFf,d

Intercambiardenibblesenf

f(7:4),(3:0)>f(3:0),(7:4)

1,2

1
1,2

Instruccionesaritmticolgicas
ADDLWk

SumarliteralaW

W+k>W

C,DC,Z

ADDWFf,d

SumarelcontenidodeWyf

W+f>d

C,DC,Z

SUBLWk

RestarWdeliteral

kW>W

C,DC,Z

1,2

SUBWFf,d

RestarWdef

fW>d

C,DC,Z

ANDLWk

ANDWconliteral

WANDk>W

1,2

ANDWFf,d

ANDWconf

WANDf>d

IORLWk

ORinclusivodeWconliteral

WORk>W

IORWFf,d

ORinclusivodeWconf

WORf>d

1,2

XORWFf,d

ORexclusivodeWconliteral

WXORk>W

1,2

XORLWk

ORexclusivodeWconf

WXORf>d

1,2

INCFf,d

Sumar1af

f+1>f

1,2

DECFf,d

Restar1af

f1>f

1,2

RLFf,d

RotarFalaizquierdaatravsdelbitdeAcarreo

1,2

1,2

RRFf,d

RotarFaladerechaatravsdelbitde
Acarreo

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

17/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

COMFf,d

Complementarf

f>d

1,2

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

Otrasinstrucciones
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

*1SiunregistrodeE/Sestmodificado,elvalorutilizadoserelvalorpresentadoenlospinesdelmicrocontrolador.
*2SilainstruccinseejecutaenelregistroTMRysid=1,elpreescaladorserborrado.
*3Sielcontadordeprogramaestmodificadooelresultadodepruebaesununolgico(1),lainstruccintieneunaduracindedos
ciclos.ElsegundocicloseejecutacomounNOP

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

18/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC

ArquitecturadelosmicrocontroladoresPICde8bits.Culesdeestosmdulospertenecernalmicrocontrolador,dependerdeltipode
microcontrolador.
tableofcontents|nextchapter

MikroElektronika Embedded Solutions


PICSolution

dsPICSolution

STM32Solution

8051Solution

AdditionalSoftware

RealTimeClock

PICDev.Boards

dsPICDev.Boards

STM32Dev.Boards

8051Dev.Boards

VisualTFT

Display

PICCompilers

dsPICCompilers

STM32Compilers

8051Compilers

VisualGLCD

Measurement

PICProgrammers

dsPICProgrammers

STM32Programmers

8051Programmers

PackageManager

Audio&Voice

PICKits

dsPICKits

STM32Kits

8051Books

GLCDFontCreator

PowerSupply

PICBooks

dsPICBooks

8051Kits

TimerCalculator

GPS

PIC32Solution

AVRSolution

TivaCSeriesSolution
TivaCDev.Boards

FT90xSolution

Addonboards

PIC32Dev.Boards

AVRDev.Boards

TivaCCompilers

FT90xDev.Boards

ClickBoards

PIC32Compilers

AVRCompilers

TivaCProgrammers

FT90xCompilers

mikromediashields

PIC32Programmers

AVRProgrammers

TivaCKits

FT90xProgrammers

Communication

PIC32Kits

AVRKits

FT90xKits

Storage

GSM/GPRS

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

19/20

14/3/2015

ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC
Support

Forum

mikroBUS

Letsmake

Press

Legal

Archive

AboutUs

Customization

Copyright19982015.MikroElektronika.Allrightsreserved.Alltradeand/orservicesmarksmentionedarethepropertyoftheirrespectiveowners.

http://www.mikroe.com/chapters/view/84/librodelaprogramaciondelosmicrocontroladorespicenbasiccapitulo1mundodelosmicrocontrolador

20/20

Вам также может понравиться