Professional Documents
Culture Documents
ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPICProgramacinenBASIC
Products
Solutions
Store
Distributors
Libstock
ContactUs
searchhere
Login|Cart(0)
ElmundodelosmicrocontroladoresCaptulo1Libro:MicrocontroladoresPIC
ProgramacinenBASIC
FeaturedDevelopmentTools
EasyPICv7DevelopmentSystem
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
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.
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
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