Você está na página 1de 67

I.P.E.T.

Juan XXIII

Computadoras Electrnicas
Gustavo A. Yarce

Paran - Entre Ros 2011

Gustavo A. Yarce

ndice general
1. Microcontroladores 2. El PIC16f873
PFIF PFPF PFQF PFRF IFIF sntroduin F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F W IFPF istrutur de un miroontroldor F F F F F F F F F F F F F F F F F F IH istrutur F il reloj F F F ysildores eset F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

13

IQ IS IT IU

3. Estructura de la memoria

QFIF wemori de rogrm F F F F QFPF wemori de htos@ewA F F QFQF egistros ispe(os E il g QFQFIF v pil F F F F F F F F F QFRF hireionmiento F F F F F F F QFSF vos uertos del sg F F F F F QFTF uerto e F F F F F F F F F F F F QFUF uerto f F F F F F F F F F F F F QFVF uerto g F F F F F F F F F F F F QFWF il egistro de istdo F F F F QFIHF il umuldor F F F F F F F F F

19

IW PH PH PP PQ PR PR PS PT PU PW

4. Lenguaje Ensamblador

RFIF snstruiones F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QI RFPF snstruiones del wvef F F F F F F F F F F F F F F F F F F F F F F F QR RFQF istrutur de un progrm ew F F F F F F F F F F F F F F F F F F F QS SFIF gevv E ix F F F F F F F F F F F F F F F F F F F F F F F F F F F QU SFPF utins de retrdo F F F F F F F F F F F F F F F F F F F F F F F F F F F QV Q

31

5. Programacin

37

Gustavo A. Yarce

SFPFIF utin simple de retrdo F F F F F F F F F F F F F F F F F F F F QV SFPFPF utin de demor dole F F F F F F F F F F F F F F F F F F F F QW SFPFQF utin de retrdo triple F F F F F F F F F F F F F F F F F F F F RH

6. Programacin en C de Microcontroladores
TFIF sntroduin ggs F F F F F F F F F TFPF istrutur de un progrm en g F TFPFIF ggs F F F F F F F F F F F F F TFQF ipos F F F F F F F F F F F F F F F F F TFQFIF ixpresiones F F F F F F F F F TFQFPF riles voles y qloles TFQFQF gonversiones entre tipos F F TFRF yperdores F F F F F F F F F F F F F TFSF remulo F F F F F F F F F F F F F F TFTF hiretivs F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F

F F F F F F F F F F

F F F F F F F F F F

F F F F F F F F F F

F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F

43

RQ RR RS RT RT RU RV RW SI SQ

7. EL PUERTO PARALELO

UFIF sntroduin F F F F F F F F F F F F F F F F F F F F F F UFPF istrutur del interfe prlelo F F F F F F F F F F F UFQF vos registros del puertoF F F F F F F F F F F F F F F F UFQFIF vnes de dtos F F F F F F F F F F F F F F F F UFQFPF vnes de istdo F F F F F F F F F F F F F F F UFQFQF vnes de gontrol F F F F F F F F F F F F F F F UFQFRF vige hiv iqsy hi iehy UFQFSF veturEisritur del registro de ontrol F F UFRF reuiones en el mnejo del puertoF F F F F F F F

59

SW TH TP TP TQ TR TR TS TS

ndice de guras
IFIF Estructura de sistema programable F F F F F F F F F F F F F F F F F F F F W IFPF Estructura de un microcontrolador F F F F F F F F F F F F F F F F F F F F II PFIF pic16f873 F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IR PFPF Esquema del Ciclo de Instruccin F F F F F F F F F F F F F F F F F F F F IT QFIF Organizacin de la memoria de Programa F F F F F F F F F F F F F F F F IW QFPF Organizacin de la memoria RAM F F F F F F F F F F F F F F F F F F F F PI TFIF Compilador CCs F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RS TFPF Fusibles vlidos F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RS UFIF UFPF UFQF UFRF UFSF UFTF UFUF
Conector Puerto Paralelo en la PC Registro de Datos F F F F F F F F Registro de Estado F F F F F F F F Registro de Control F F F F F F F F Lectura del registro de estado F F Lectura del registro de control F F Escritura del registro de control F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

TI TQ TQ TR TS TS TT

Gustavo A. Yarce

ndice de tablas
QFIF l de on(gurin de nos F F F F F F F F F F F F F F F F F F F PH QFPF egistro de istdo F F F F F F F F F F F F F F F F F F F F F F F F F F F PV RFIF snstruiones orientds registros F F F F F F F F F F F F F F F F F F QP RFPF snstruiones orientds it F F F F F F F F F F F F F F F F F F F F F QQ RFQF snstruiones orientds literl y onrol F F F F F F F F F F F F F F F QQ TFIF TFPF TFQF TFRF TFSF TFTF TFUF ipos de dtos F F F F F F F F ixpresiones F F F F F F F F F F yperdores de signin F F F yperdores ritmtios F F F F yperdores de relin F F F F yperdores lgios F F F F F F yperdores de mnejo de its F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F RT RT RW SH SH SH SH

UFIF hireiones del puerto prlelo F F F F F F F F F F F F F F F F F F F F F TH UFPF xomre y punin de los pines puerto rlelo F F F F F F F F F F F F TI

Prologo
iste doumento no pretende ser un liro ompleto sore miroontroldoresD es un yud pr el lumnoD pr su utilizin omo gu de prendizjeF e tiene omo ojetivo presentr los oneptos sios y ls rterstis generles de los dispositivos miroprogrmlesD pr el desrrollo y resoluin de prolems que se presentn en el mito tnioF vos tems trtdos y el desrrollo que se reliz sore ellos persiguen l ensenz en entornos edutivos tnios de nivel medio que neesitn onoimientos sore ests tenologsF e prioriz l ensenz de un metodolog de progrmin orret trtndo de onservr l filidd de uso omo herrmientF iempre se onsider que lo ms importnte es dquirir un se de onoimientos que permit un posterior evoluin hi onoimientos reliondos on l iletrni y l progrminF

Captulo 1 Microcontroladores
1.1

Introduccin

entes de ver qu es un miroontroldor y de nlizr sus puntos fuertes y sus defetosD ser til her un repso reltivo l estrutur de ulquier sistem progrmleD que pued her uso de un miroontroldorF

pigur IFIX Estructura de sistema programable

v (gur IFI present el esquem tipo de ulquier sistem progrmleF emos que elementos son indispensles pr su funionmientoX v unidd entrl v memori yw W

IH v memori ew vos iruitos de interfz n us de interonexin

Gustavo A. Yarce

v preseni de estos elementos sios es indispensle y un undo no siempre se presenten tn lrmente omo en nuestro esquem siempre existenF ysrveseD que son los mismos que los de un sistem informtio lsioD pero dentro del mro de un pliin que pued ser trtd por un miroontroldorF v unidd entrlD generlmente onstituid por un miroproesdor ms o menos evoluiondoD ejeut el progrm que d vid l pliinF vos progrms pueden ser muy diversosD puesto queD omo es evidenteD el que segur l gestin de un termostto inteligente no tiene nd que ver on el que ontrol el orreto funionmiento de un fotoopidorF in emrgoD estos progrms tienen en omn el heho de que muy rrmente neesitn lulos omplejos yD en mioD s suelen inluir numeross mnipuliones de l informin de entrdGslidF il progrm se lmen en un segundo elementoD que es l memori ywF ist memori puede onstituirse de diferentes formsX ywywD iiyw u yywyywD ulquier que se l que se utilie es un memori no voltil desde l que se ejeutr el progrm un vez limentdo el sistemF r poder trjr orretmenteD nuestro miroproesdor neesitD menudoD lmenr dtos temporles en lgun prteD y qu es donde interviene l memori ewD que no neesit ser de grndes dimensionesF

1.2

Estructura de un microcontrolador

he lo visto nteriormenteD un miroontroldor dee ontener todos los elementos de l (gur IFI en un nio enpsuldoF il esquem sio de un miroontroldor ser inontrmos en l l unidd entrl pero se h simpli(do on respeto los miroproesdores lsiosF in ontrprtid se le hn dido instruiones

Computadoras Electrnicas

II

pigur IFPX Estructura de un microcontrolador

de mnejo de itsD muy tiles pr ls entrdsGslidsF in iertos iruitosD est unidd entrl est dotd de un grn nmero de registros internosD que sirven de memori ewD por lo que puede preer que st ltim est usente de lgunos esquemsF e ontinuin podemos ver l memori ywD unque st no siempre preeF gierto nmero de miroontroldores estnD y todv estnD disponiles sin yw @ywlessAF osteriormenteD los frintes hn introduido en el hip un memori progrmle eltrimente y orrle medinte ryos ultrviolet @ywA oD ms reientementeD orrle eltrimente @iiywAF n ltimo produto pr lmenr de form no voltil son ls memoris pverD de jo onsumoD que se puede esriir y orrr en iruito l igul que ls iiywD pero suelen disponer de myor pidd que ests ltimsF il orrdo solo es posile on loques ompletos y no se puede relizr sore posiiones onretsF in lo referente l memori ewD suele utilizrse un del tipo ew @ew esttiA de pequeo tmoD por qu generlmente l unidd entrl posee su(ientes registros pr relizr operiones intermedisF in lgunos sosD est memori se omplet on un iiyw de dtosD que memoriz de form semipermnente dtos del usurio que se mnejn omo onstnte en l ejeuin del progrm y que de vez en undo @psdos meses o osA deen ser modi(dosF

IP

Gustavo A. Yarce

elgo ms delido es her un esquem tipo pr los iruitos de interfzD y que es un punto donde se distinguen los diferentes miroontroldoresD en funin de ls pliiones que pretendenF xo ostnte se pueden enontrr los siguientes elementos siosX vnes de entrdGslid prleloD en ntidd vrileD segn l (nlidd y el tmo del enpsuldo @se plnte un prolem de nmero mximo de pines deido l reimiento del nmero de ests lnesAF el menos un interfz de entrdGslid serie snronD ms o menos evoluiond segn los iruitosF no o vrios temporizdores internos uys posiiliddes pueden ser muy vriles pero queD generlmenteD funionn omo ontdores sendentes y desendentesD generdores de impulsos progrmlesD etF no o vrios onvertidores nlgiosGdigitlesD preedidos o no de multipleE xores pr ofreer vris vsF e veesD pero es rroD un overtidor digitlGnlgioF or ltimoD unque no se un verdder interfz de entrdGslid en el sentido en que nosotros entendemosD iertos miroontroldores disponen de un eso su us internoF isto permite onetr on otros iruitos destindos umplir funiones que fltn en el hipD lo que vees result tilF reisemosD unque es evidenteD que todos los miroontroldores sin memori yw intern disponen neesrimente de est interfzD puesto que es neesrio permitirle eder un memori yw externF

Captulo 2 El PIC16f873
2.1

Estructura

wiroontroldor disedo por l empres wirohip @httpXGGwwwFmirohipFomAD que se fri en vris versiones de ls ules se nlizr on ms detlle el piITfVUQF on idntis en unto su rquitetur intern todos los pi de l fmili ITfVUx exepin de l memori yw y l memori ew y puertosF v memori iiyw y l plsh son eltrimente grles y orrlesD lo que permite esriir y orrr el progrm jo prue mnteniendo el miroontroldor en el mismo zlo y usndo el mismo dispositivo pr grr y orrrF ist rtersti supone un grn ventj frente l myor de los miroontroldoresD que tienen omo memori de progrm reesriile un tipo iywF e gr eltrimenteD pero pr orrrls hy que someterls durnte ierto tiempo ryos ultrvioletD lo que impli sr del zlo el iruito integrdo y olorlo en un orrdor de iywF ytr ventj del sgITpVUQ en unto simpli(r el proeso de esriturD orrdo y reesritur de progrmsD tn neesrio en l fse de diseoD es su sistem de grin de dtosD que se reliz en serieF r esriir un progrm en l memori se mnd l informin en serie usndo slo dos pinsD un pr l sel de reloj y otr pr los dtos serieF e ontinuin exponemos ls rterstis ms signi(tivsX preueni de operin PH wrz wemori pver de progrm @plr de IR itsA Rk IQ

IR wemori de dtos IWP ytes wemori de dtos iiyw IPV ytes snterrupiones IQ uertos de iG uertos eD fD g emporizdores Q wdulos de gpturGgomprionGw P gomuniin seril tipo wD e

Gustavo A. Yarce

wdulo de onversin enlogoEhigitl @IH itsA S nles de entrd gonjunto de QS instruiones il sgITpVUQ se present en un enpsuldo de PV pines omo se ve en l pigur PFI y l desripin de d pin se muestrn en el udro

pigur PFIX pic16f873

Computadoras Electrnicas

IS

2.2

El reloj

v freueni de trjo del miroontroldor es un prmetro fundmentl l hor de estleer l veloidd de ejeuin de instruiones y el onsumo de energF gundo un sgITpVUQ funion PH wrzD que es su mxim freueniD le orresponde un ilo de instruin de PHH nsD puesto que d instruin trd en ejeutrse R perodos de relojD o seD

Ciclo de instruccin = o

4 fOSC

4 = 200ns 20M HZ

ods ls instruiones del sg se relizn en un ilo de instruinD menos ls de slto que trdn el doleF vos impulsos de reloj entrr por l pin ygIGgvusx y se dividen por R internmenteD dndo lugr ls seles ID PD Q y RF hurnte un ilo de instruinD que omprende ls utro seles meniondsD se desrrolln ls siguientes operionesX IX hurnte este impulso se inrement el gontdor de rogrmF RX hurnte este impulso se us el digo de l instruin en l memori del progrm y se rg en el egistro de snstruionesF PEQX hurnte l tivin de ests dos seles se produe l deodi(in y l ejeuin de l instruinF r onseguir ejeutr d instruin en un ilo de instruin @exepto ls de sltoAD se pli l tni de segmentin o pipeElineD que onsiste en relizr en prlelo ls dos fses que omprende d instruinF v estrutur segmentd del proesdor permite relizr l mismo tiempo l fse de ejeuin de un instruin y l de squed de l siguienteF gundo l instruin ejeutd orresponde un slto no se onoe ul ser l siguiente hst que se relieD por eso en est situin se sustituye l fse de squed por un ilo vioD originndo que ls instruiones de slto trde en relizrse dos ilos de instruinF

IT

Gustavo A. Yarce

pigur PFPX Esquema del Ciclo de Instruccin

2.3

Osciladores

vos sg dmiten utro tipos de osildores externos pr plirles l freueni de funionmientoD se olon entre ls pins ygI y ygPF il tipo empledo dee espei(rse en dos its de l lr de gon(gurinD omo se omentr ms delnteF vos tipos que se pueden empler sonX ysildor gX is un osildor de jo oste formdo por un simple resisteni y un ondensdorF roporion un estilidd mediore de l freueniD uyo vlor depende de los vlores de los dos elementos EgF ysildor rX is un osildor que lnz un lt veloidd omprendid entre R y IH wrz y est sdo en un ristl de urzo o un resondor ermioF ysildor X is un osildor de ristl o resondor pr freuenis estndr omprendids entre IHH urz y R wrzF ysildor vX ysildor de jo onsumo on ristl o resondor disedo pr trjr en un rngo de freuenis de QS PHH urzF

Computadoras Electrnicas

IU

2.4

Reset

gundo se pli un nivel lgio jo l pin wgv5 el miroontroldor reiniiliz su estdoF hos iones importntes se produen en l reiniilizin o esetX IF il gontdor de rogrm se rg on l direin HD puntndo l primer direin de l memori de progrm en donde deer estr situd l primer instruin del progrm de pliinF PF l myor de los registros de estdo y ontrol del proesdor tomn un estdo onoido y determindoF e puede provor el eset de vris mnersD pero si se dese relizr mnulmenteD hr que olorD onetdo l pin wgv5D que l ser pretdo genere un nivel lgio joF

IV

Gustavo A. Yarce

Captulo 3 Estructura de la memoria


3.1

Memoria de Programa

v memori pver tiene un pidd Ru plrs de IR its d unF ist memori est dividid en pgins de Pu y est direiondo on el g@QFQAD que tiene un tmo de IQ itsF

pigur QFIX Organizacin de la memoria de Programa

IW

PH
3.2

Gustavo A. Yarce

Memoria de Datos(RAM)

v memori ew de dtos de los sg ITpVUQ posee un pidd de IWP ytesD en un estrutur de R nos de IPV ytes d unoF r seleionr el no eder hy que mnipulr el it S @HA y el it T @IA del registro iehy@HQhAF fexgy H I P Q I H H I I H H I H I

l QFIX l de on(gurin de nos v memori de dtos tiene posiiones implementds en ew y iiywD IF ere de ew estti o ewD se lojn los registros opertivos fundmentles en el funionmiento del proesdor y en el mnejo de todos los perifrios y registros que el se pueden omo informin de trjo propi de l pliinF PF ere iiywD de TR ytes dondeD opionlmenteD se pueden lmenr dtos que no se pierden l deonetr l limentinF v zon de memori ew se hll dividid en R nos @no HDIDP y QA de IPV ytes d unoFin ls posiiones iniiles de d no se uin los egistros ispe(os que goiernn l proesdor y sus reursos

3.3

Registros Especcos - El PC

vos IQ its ontenidos en el gD que direionn l memori de digoD estn gurddos en dos registros espe(osF il registro gv@HPhA gurd los V its de menos peso y se puede leer y esriirF vos its `IPXVbdel g se lojn en grD

Computadoras Electrnicas

PI

pigur QFPX Organizacin de la memoria RAM

que l no poder ser ledo ni esritoD se ede l trvs del gver@HehAF

vs instruiones de slto gevv y qyy slo proporionn II its de l direin sltrD esto es un limitnte del tmo del slto que se puede produirD siendo su tmo mximo de PuF el reseterse el sgD todos los its del g tomn vlor ID de mner que l direin de rrnque del progrm es siempre l ultim posiin de memori de progrmF in est posiin se deer poner un instruin de slto l punto donde verddermente se inii el progrmF e difereni de l myor de los

PP

Gustavo A. Yarce

miroproesdores onvenionlesD el g es tmin esile l progrmdor omo registro de memori intern de dtosD en l posiin de HPF is deir que ulquier instruin omn que opere sore registros puede ser utilizd pr lterr el g y desvir l ejeuin del progrmF il uso indisrimindo de este tipo de instruiones ompli el progrm y puede ser muy peligrosoD y que puede produir omportmientos difiles de predeirF in emrgoD lguns de est instruiones utilizds on ierto mtodoD pueden ser muy tiles pr implementr podeross estruturs de ontrol tles omo el goto omputdoF gomo el sg oper on dtos de V itsD y l memori de dtos es tmin de V itsD ests instruiones solo pueden leer o modi(r los its H U del gF r sltr entre un pgin y otrD los its ms signi(tivos del g deern ser modi(dosF heido que ls instruiones qyy y gevv slo pueden direionr un loque de Pu @pues usn un direin de II itsA deen existir otros dos its que ompleten los IQ its del g pr moverse sore los Ru de memori de progrmF istos dos its extr se enuentrn en un p denomindo gver @rogrm gounter vth righA en sus its gver`RXQbF or esto ntes de un qyy o un gevv el usurio deer segurrse que estos its punten l pgin desedF i ls instruiones se ejeutn seuenilmente el g ruz liremente los lmites de pgin sin neesidd de que el usurio esri en el gverF

La pila
v memori de stk o pil es un re de memori ompletmente seprd de l memori de dtos y l memori de progrmF il stk onst de V niveles de IQ its d unoF ist memori es usd por l g pr lmenr ls direiones de retorno de surutinsF il puntdor de stk no es ni legile ni esriileF gundo se ejeut un instruin gevv o es reonoid un interrupin el g es gurddo en el stk y el puntdor de stk es inrementdo en I pr puntr l siguiente posiin vF e l inversD undo se ejeut un instruin ixD iv o ipsi el ontenido de l posiin tul del stk es olodo en el gF il tk o ilD es un zon de memoriD trnsprente l usurioD on l ul se slvn ls direiones undo se ejeut l instruin gevv y ls interrupionesD en est zon se gurd el vlor del g@QFQAF is de vitl importni no sorepsr el lmite de V niveles en l relizin de progrmsF gver no se modi( en ningun de ests operiones y undo el puntdor de stk y est en l posiin V y se ejeut otro gevv se reinii l posiin I soresriiendo en dih posiinF xo existe ningn indidor que vise de est situinF

Computadoras Electrnicas

PQ

3.4

Direccionamiento

in los sg de gm medi l memori de dtos est orgnizd pr lojr un mximo de R nos de IPV ytes d unoF vos sgITgVR slo tienen implementdos los RV primeros ytes de los nos H y IF in el resto de los sg de est fmili se destinn dos its del registro iehy @H y IA pr determinr el no y otros siete pr elegir un de ls IPV posiiones del no seleiondoD tl y omo muestr l (gur VF hireionmiento hiretoX il operndo que utiliz l instruin en urso se refereni medinte su direinD que viene inluid en el digo y de l mismD onretmente en los U its de menos pesoF il no eder lo determinn los its H y I del registro iehyF in el so del sgITgVR slo se us el it H l tener implementdos nimente dos nosF e ede l ew de form inmeditF v direin de ew l que se quiere eder est implit en l propi instruinF or ejemploX wyp PH reliz un operin de esritur en l direin HxPHF iste modo de direionmiento es el ms hitulF hireionmiento sndiretoX iste modo de direionmiento se us undo en un instruin se utiliz omo operndo el registro sxhpD que oup l direin ade mos nosF in relidd el registro sxhp no est implementdo fsimente y undo se le he refereniD se ede l direin de un no espei(d on los its de menos peso del registro pF il it de ms peso de p junto l it s del registro iehy se enrgn de seleionr el no ederD mientrs que los U its de menos peso puntn l posiinF gomo slo hy dos nos en el sgITgVR en este modo de direionmientoD el it s es H siempreF in este modo de direionmiento se utilizn dos registros espeilesX p y sxhpF p es un puntero de ewD es deirD ontiene l direin de memori l que se dese ederF il registro sxhpD utiliz el vlor del registro p pr eder l registro desedoF or ejemploX si esriimos PH en p y despus esriimos PIS en sxhpD hremos esrito un PIS en l direin de memori PH @que er l que onten pAF il direionmiento indireto se us pr mnejr tls mnipulr segmentos de memoriF or ejemploD odemos progrmr un uleD en el ulD inrementmos el vlor de p pr eder uns direiones de memori onseutivsF

PR
3.5

Gustavo A. Yarce

Los Puertos del PIC

vos sgITfVUQ disponen de tres puertos de iGF v uert f tiene V lnesD fHEfUD y tmin tiene un on funiones multiplexdsD l fHGsxD queD dems de lne tpi de iGD tmin sirve omo pin por l que reien los impulsos externos que provon un interrupinF edems tenemos el puerto gD on V lnesF gd lne de iG puede on(gurrse independientemente omo entrd o omo slidD segn se pong I o HD respetivmenteD el it soido del registro de on(gurin de d puert @seD sf y sgAF e llmn yeD yf y yg los registros que gurdn l informin que entr o sle por l puert y oupn ls direiones S y T del no H de l memori de dtosF vos registros de on(gurin seD sf sg oupn ls misms direiones pero en el no IF el reiniirse el sg todos los its de los registros s quedn ID on lo que ls lnes de ls puerts quedn on(gurds omo entrdsF gd lne de slid puede suministrr un orriente mxim de PH me y si es de entrd puede sorer hst PS meF el existir un limitin en l disipin mxim de l poteni del hip se restringe l orriente mxim de sorin de l uert e VH me y l de suministro SH meF v uert f puede sorer un mximo de ISH me y suministrr un totl de IHH meF

3.6

Puerto A

v uert e posee T lnesD eHEeSD y soportn funiones multiplexdsF on idireionles y dependen del vlor del registro seF vos pines eHGexHDeIGexI y ePGexPD dems de lnes de iG digitles tmin pueden tur omo los nles HDI y P por los que se pueden utilizr omo entrds l onversor eGhF il pin eQGexQDrefC puede tur omo entrd de l tensin de refereni pr los perifrios que l preisnF il pin eRGygusD que puede tur omo lne de iG o omo el pin por l que se reien los impulsos que dee ontr wHF vs lnes eQEeH dmiten niveles de entrd v y de slid gwyF v lne eRGygus dispone de un iruito rigger hmitt que proporion un uen inmunidd l ruido y l slid tiene drendor iertoF eR multiplex su

Computadoras Electrnicas

PS

funin de iG on l entrd de impulsos externos pr el wHF in el iruito de l (gur W se muestr l dptin de ls pins eQEeH ls seles interns del proesdorF gundo se lee un lne de l uert e se reoge el nivel lgio que tiene en ese momentoF vs lnes undo tn omo slids estn onetds unos iestleD lo que signi( que sus pins sn el nivel lgio que se hy rgdo por ltim vez en el registro ieeF v esritur de un puertD tl y omo se ve en l (gur WD impli que primero se deposit el nivel lgio en l lne orrespondiente del us interno de dtos y se tiv l sel siD lo que origin el lmenmiento de diho nivel en el iestleF in est situinD el iestle de on(gurin @sA deer tener vlor H pr que tuse omo slidF gon estos vlores l puert y tendr un H su slid y l exh tminF istos vlores produen l onduin de los trnsistores wyD en funin del vlor esritoD dndo omo slid (nl hh o @I H respetivmenteAF i un lne t omo entrdD el nivel lgio depositdo en ell desde el exterior ps l lne orrespondiente del us interno de dtos undo se tiv l sel ieh y se he ondutor el dispositivo triestdo que les uneF el progrmrse omo entrdD los dos trnsistores wy de slid quedn loquedos y l lne de lt impedniF ngse en uent que undo se lee un lne de entrd se otiene el estdo tul que tiene su pin orrespondiente @lmendo en el terer iestleA y no el que hy lmendo en el iestle de dtosF v informin presente en un lne de entrd se muestre l iniirse el ilo de instruin y dee mtenerse estle durnte su desrrolloF gundo se produe un ii l onetr l tensin de limentin@ower yn esetA tods ls ptits de l puert e quedn on(gurds omo nles de entrd pr el onversor eGh y son leds omo HF r que el ye funione omo lnes de iG digitles se dee on(gurr el vlor deudo en el ehgyxID en generl se suele rgr en diho registro el vlor HIIx en sus R its de menos pesoF

3.7

Puerto B

gonst de V lnes idireionles de iGD fUEfHD uy informin se lmen en el registro yfD que oup l direin T del no HF il registro de on(gurin sf oup l mism direin pero del no IF v lne fHGsx tiene dos funiones multiplexdsY dems de pin de iG t omo l pin pr l petiin de un interrupin externD undo se utoriz est funin

PT

Gustavo A. Yarce

medinte l deud progrmin del registro sxgyxF vs utro lnes de ms pesoD fUEfRD pueden progrmrse pr soportr un misin espeilF gundo ls R lnes tn omo entrds se ls puede progrmr pr generr un interrupin si lgun de ells mi su estdo lgioF ist posiilidd es muy prti en el ontrol de teldosF in l (gur IH se muestr el esquem de onexiondo entre ls pins fUEfR y ls lnes orrespondientes del us internoF il estdo de ls pins fUEfR en modo de entrd se ompr on el vlor ntiguo que tenn y que se h lmendo en un iestle durnte l ltim letur de l uert fF il mio de estdo en lgun de ess lnes origin un interrupin y l tivin del selizdor fspF v lne fT tmin se utiliz pr l grin serie de l memori de progrms y sirve pr soportr l sel de relojF v lne fU onstituye l entrd de los dtos en serieF vos pines del puerto f disponen de un resisteni intern de pullEup l positivo de l limentinD que qued onetd undo el it f5D que es el it U del registro ysyxD tiene el vlor HF vs resistenis pull up se utilizn pr forzr un nivel lto un entrd de un omponente lgioF irve por ejemplo undo neesits leer el estdo de un interruptor o un telF gundo l tel se tiv se llev un estdo lgio determindoD pero undo est iert est l ire y los iruitos lgios hen un interpretin indetermindF v resisteni pull up fuerz nivel lgio lto undo est iert y permite que se lleve nivel jo l errrse sin produir un ortoiruitoF min puede servir undo se onet un entrd un slid de oletor iertoF il pull up suple l resisteni fltnte del driver de oletor ierto

3.8

Puerto C

gonst de V lnes idireionl uyo sentido se on(gur medinte el registro sgD il uerto g tiene vris funiones en sus pinesD tiene ls funiones de omuniion sPgD el reloj externo del timer ID srtD etF gundo se usn los mdulos reliondos on este puertoD se dee tener uiddo pues lguns vees mi el estdo iG del pin sin importr lo que indique sgD pr ser undo si mir deemos ver l desripin de d mduloF odos los u'ers de este puerto son del tipo hmitt riggerD dems poseen ls siguientes funiones multiplexdsX

Computadoras Electrnicas

PU

gHGIyyGIgusX iGD puede ser tmin slid del imerI entrd del impulsos pr el imerIF gIGIysGggPX iGD puede ser tmin entrd l osildor del imerI entrd l mdulo de ptur PD slid del omprdor P D slid de wPF gPGggIX iGD puede ser tmin entrd ptur ID slid omprdor I o slid wIF gQGguGgvX iGD puede ser tmin sel de reloj en modo s sel de reloj en modo sPgF gRGhsGheX iGD puede ser tmin entrd de dtos en modo s o el de reloj en modo sPgF gSGhHX iGD puede ser tmin slid de dtos en modo sF gTGGguX iGD lne de trnsmisin e e sel de reloj snron en trnsmisin serieF gUGGhX iGD lne de reepin e lne de dtos en trnsmisin serie snronF

3.9

El Registro de Estado

rst hor iehy es el registro ms usdo y lleg el momento de desriirlo en su totliddF yup l direin Q tnto del no H omo del I de l memori de dtos ewF us its tienen tres misiones distintsX IF e enrgn de visr de l inidenis del resultdo de l ev @gD hg y AF PF sndin el estdo de eset @y5 y h5AF QF eleionn el no eder en l memori de dtos @sD H y IA in l tl QFPD se muestr el digrm de distriuin de los its del registro iehyD su misin es l siguienteX

PV s U I T H S H5 R h5 Q P hg I H

Gustavo A. Yarce

l QFPX egistro de istdo gX erreo en el it de ms peso IX erreo en el it de ms pesoF HX xo rreo en el it de ms pesoF hgX erreo en el Ro it IX erreo en el Ro itF HX xo rreo en el Ro itF X gero IX il resultdo de un instruin lgioEritmti h sido eroF HX il resultdo de un instruin lgioEritmti no h sido eroF h5X ower hown IX e pone este vlor despus de l onexin l limentin o l ejeutr lrwdtF HX e pone este vlor l ejeutr sleepF y5X ime yut IX e pone este vlor despus de l onexin l limentin o l ejeutr lrwdt y sleepF HX e pone este vlor l desordrse el erro qurdin @thdogAF IEHX elein de no en direionmiento direto il sgITpVUQ tiene utro nosD emple el it H y ID de form que se puede eder ulquier noF sX elein del no en direionmiento indireto iste it junto on el de ms peso del registro p sirven pr determinr el no de l memori de dtos seleiondoF

Computadoras Electrnicas

PW

3.10

El acumulador

no de los registros ms utilizdoD es el registro de trjo D el ulD se utiliz pr mover un dtoGvlor de un registro otroD rgr vlores en un registroD y on l yud de l ev puede her operiones mtemtisF il registro no est implementdo en l memori ew en l posiin HxHH ni en otr posiinF es un registro independiente que tiene un us direto on l ev @un mino privdoAF v ev es l ni entidd que puede leer o esriir este registro de trjoF

QH

Gustavo A. Yarce

Captulo 4 Lenguaje Ensamblador


4.1

Instrucciones

il juego de instruiones de un miroproesdor o miroontroldor es el onE junto de entrds inris que produen iones de(nids durnte un ilo de instruinF n juego de instruiones es pr el miroontroldor lo mismo que un tl de verdd es pr un puert lgiD un registro de desplzmiento o un sumdorF or supuestoD ls iones que reliz un miroontroldor on d instruinD son ms omplejs que ls que relizn los dispositivos y puerts ntes meniondosF n instruin es un ptrn de dgitos inrios el ul dee estr disposiin del miroontroldor en el tiempo y form que ste lo requierF or ejemploD undo el proesdor de un miroontroldor sgITpVRe reie el ptrn inrio de IP its 9HHHH HIHH HHHH9 en el momento deudoD signi(X gler @orrr o poner eroA el registro D y orresponde l instruin gvF r los sg se hn redo uns instruiones y un estrutur de progrm que los hen ms senillos y trtivos todvFF vs instruiones de los miroontroldor sg umplen on ls siguientes ondiionesX tuego de instruiones reduidoX or ejemploD solo existen QS instruiones en el sgITpVUQF enills y rpidsX v myor se ejeut en un ilo de instruinD y solo ls de slto preisn P ilosF il ilo de instruin onst de R ilos de reloj priniplF he est mner un dispositivo on un ristl de urzo de PH wrz reliz S millones de instruiones por segundoF QI

QP

Gustavo A. Yarce

yrtogonliddX v uiin de los operndos que mnejn es muy )exileF gulquier ojeto del proesdor puede tur omo origen o omo destinoF pormto uniforme de ls instruionesX ods ls instruiones tienen un longitud (j de itsF ist rtersti signi( un notle horro de l memori de progrm y un filidd en l onstruin de ompildoresF pormto uniforme de los dtosF n progrm es un serie de instruiones medinte ls ules un sistem sdo en g reliz un tre en prtiulr y l form ms simple de relizr un progrm es medinte el lenguje ensmldor @er istems miroprogrmlesD vengujes de progrmin pr sistems sdos en gAF odrmos deir que el lenguje ensmldor es omplejo por su senillezF isto quiere deir queD difereni de los lengujes de lto nivelD qu no hy funiones que soluionen y simpli(quen lgoritmosD si no que hy que implementr hst los psos ms elementlesF wnemnios ehhp fDd exhp fDd gvp f gv f gywp fDd higp fDd higp fDd sxgp fDd sxgp fDd syp fDd wyp fDd wyp f xy E vp fDd p fDd fp fDd ep fDd hesripin wCfd w exh f d HH h f HH h w gomplemento de f d fEId f E I d @si es H sltA fCId f C I d @si es H sltA w y f d fd wf xo operin ot f izq por rry d ot f dh por rry d fEwd sntermi niles de f d plgs gD hgD xingun xingun xingun xingun g g gDhgD xingun gilos I I I I I I I@PA I I@PA I I I I I I I I

l RFIX snstruiones orientds registros

Computadoras Electrnicas

QQ plgs xingun xingun xingun xingun gilos I I I@PA I@PA

wnemnios fgp fD fp fD fpg fD fp fD

hesripin one H it de registro f one I it de registro f lto si it de regF f es H lto si it de regF f es I

l RFPX snstruiones orientds it wnemnios ehhv k exhv k gevv k gvh E qyy k syv k wyv k ipsi E iv k ix E vii E fv k yv k hesripin wCkw w exh k w vlmd surutin k forr temporizdor del h sr direin k w y k w kw etorno de un interrupin etorno on k en w etorno de un surutin wodo tndy kEww w y k w plgs gDhgD xingun yDh xingun xingun xingun xingun xingun yD h gDhgD gilos I I P I P I I P P P I I I

l RFQX snstruiones orientds literl y onrol

xotsX el modi(r un registro de iG on un operin sore l mismo @por ejemplo wyp yfDIAD el vlor utilizdo es el que se hlle presente en ls ptills del yfF or ejemploD si el iestle tiene un I pr un ptill on(gurd omo entrd y se pone nivel jo desde el exteriorD el dto se volver esriir omo HF i se ejeut est instruin sore el wH y daID se orrr el onteo de l preesl signd @preeslerAD si est signdo l wHD pero no se orrr l preesl signd en ysyxiqD que ontrol imerHF i se modi( el gontdor de rogrm g o un ondiin de prue es

QR

Gustavo A. Yarce

verdderD l instruin requiere dos ilos mquinF il segundo ilo se ejeut omo un xyF in ls tls siguientesD por orden lftioD veremos todos los dtos de inters sore ls QS instruionesF elgunos son de po importniF in mio otrosD omo l operinD l sintxisD el omportmiento del registro e y los ejemplosD son impresindiles pr omprender su funionmientoF eprte de ests QS instruionesD hy otro tipo de instruiones usds pr simpli(r l tre de progrmrD y que generlmente estn formds por dos instruiones sisF ists no ls trtremos fondoD pero ls veremos en un resumen despus de omprender el funionmiento de ls QS instruiones sisF

4.2

Instrucciones del MPLAB

xo son propimente instruiones del miroontroldorD sino que son omndos insertdos en el progrm que ontroln el proeso de ensmldo istos omndos no tienen trduin l digo mquinF uelen esriirse en l segund olumnF elguns de ests pseudoinstruiones sonX ixhX sndi (n del progrmF is el nio omndo oligtorio y que el ensmldor neesit ser donde termin el proeso de ensmldoF e pone en l ltim lne del progrmF ods ls lnes posteriores l lne en l que se enuentr est diretiv son ignords y no se ensmlnF yqX u sintxis esX `lelb yq `exprb sndi l progrm ensmldor prtir de que posiin de memori de progrm tiene que ensmlr ls instruionesF ijemploX yq HxHR i ls instruiones de un progrm omienzn esriirse sin indir yqD el ensmldor tom por defeto yq HxHHF ueden esriirse vrios yq en el mismo progrm iF u sintxis esX

Computadoras Electrnicas

QS `lelbi `exprb

is un etiquet de signinF il vlor `exprbes signdo l etiquet `lelbF sulmente ls signiones i se ponen l prinipio del progrm @ntes que ls instruionesAF iempre que `lelbpree en el progrm es sustituido por el vlor numrio de l expresin que se le hy signdoF gyxpsqF ist diretiv indi l on(gurin elegid pr el proeso de grin del miroontroldorF ijemploX gyxpsq gypp 8 hypp 8 iyx 8 yg in este so l on(gurin elegid esX

xo hy protein de digo @gyppA xo se hilit el thdog @hyppA e hilit el eset medinte owerEup imer@iyxAF e utiliz el osildor por ristl de urzo @ygA

4.3

Estructura de un programa ASM

i generl l estrutur del progrm en ensmldor tieneD Q olumns oligtoriD l primer olumn es l isie y sirve pr drle el nomre un posiin de l memori del progrm l que se neesit puntr@iF v segund olumnD se llm sxggsx y lo que justmente heD es un instruin relizr por el progrmF v terer olumnD se llm yiexhy y es el operndo de un instruinD o seD de l segund olumnF ry instruiones que no tienen operndoF ypionlmente se puede inluir un urt olumnD llmd yfiegsyE xi y sirve solo pr el usurioD el que est progrmndo el sgF gomienzn on un Y @punto y omA

QT

Gustavo A. Yarce

Captulo 5 Programacin
CALL - RETURN

5.1

v instruin gevv @ llmd l surutinA onsigue que l ejeuin del progrm ontine en l direin donde se enuentr l surutin l que he refereniF is similr qyy pero olo en l pil l direin de l siguiente instruin que se dee ejeutr despus de l gevvF v surutin (nliz on l instruin ix @etorno de l surutinA que retom l direin gurdd en le pil y l olo en el ontdor del progrm g ontinundo el )ujo de ontrol on l instruin que sigue l gevvF

in l fmili sg de gm medi l pil tiene oho niveles de memori del tipo pspy @primero en entrrD ltimo en slirAF i se produe l llmd un surutin durnte l ejeuin de otr surutinD l direin de retorno de est segund es olod en l im de l pil sore l direin nteriorF ist segund direin es l primer en slir de l pil medinte l instruin ixF gon l pil de oho nivelesD un surutin puede llmr otr y stD su vezD llmr otr hst un mximo de ohoF v gm j slo puede relizr dos llmds de este tipo l poseer un pil de slo dos nivelesF vs surutins deen olorse l omienzo de ls pgins deido que el it V del ontdor del progrm es puesto H por l instruin gevv @o por ulquier instruin que modi( el gAF vs surutins deen olorse en l mitd iniil de ls pgins @ls PST plrsAF QU

QV
5.2

Gustavo A. Yarce

Rutinas de retardo

Rutina simple de retardo


n rutin de simple puede ser implementd omoX

ll retrdo rI movlw movwf defsz goto return

retrdo FkI memI memIDI rI

Yllm l rutin de retrdo Yrg kI en el umuldor Ygurd el vlor del w en memI Yderement memI Yse ejeut est instF si deF no es ero

gundo ejeut l instruin gll est llev en ejeutrse P ilosF gundo est dentro de l rutin retrdo se enuentr on l instruin movlw FkI que onsume I iloD luego ejeut l instruin movwf memI que onsume I iloF vuego se ejeut l prte prinipl de l rutin de demorD ls instruiones defsz memIDI y l instruin goto rI se ejeutn @kIEIA veesD y que mienstrs est derementdo y no lleg ero no se slte l instruin gotoD por lo tnto mienstrs no de ero el deremento l instruin defsz onsume I ilo y l instruin goto PD por lo tntoD@kIEI ABQ ilos le llev relizr este derementoD undo llego ero l instruin defsz onsume P ilosD por lo tnto el totl de ilo de l rutin de demor es QB@kIEIA C P ilosF vuego retorn l progrm prinipl medinte l instruin return que onsume P ilosF il totl de ilos que llev l rutin omplet es P C I C I C@kIEIA C P a QS ilosD y el tiempo que onsume esto es on un reloj de R whzD por lo tnto el perdo es 2, 5e7 Y d instruin onsume R ilosD por lo que el tiempo que trd en ejeutrse d instruin es 4 2,5e 7 = 1e6 F v seueni de demor es {3 254 + 2 = 764}D el mximo tiempo que puede relizr l demor es

(2 + 1 + 1 + 3 254 + 2 + 2) = 770ciclos vo que llev un tiempo de UUH u segF

Computadoras Electrnicas

QW

Rutina de demora doble


n rutin de dole puede ser implementd omoX ll retrdo Yllm l rutin de retrdo retrdo rP rI movlw movwf movlw movwf defsz goto defsz goto return FkP memP FkI memI memIDI rI memPDI rP Y{I} Y{P} Y{Q} Y{R} Y{S} Y{T} Y{U} Y{V} Y{W}

rg kI en el umuldor gurd el vlor del w en memI derement memI se ejeut est instrF si el deF `bH

v instruin gll onsume P ilosD luego se ejeut l instruin retrdoD luego ejeut l instruin {I} que trd I iloD luego se ejeut l instruin {P} E I iloF vuego ejeut l instruin {Q} qu est trd I iloD luego ejeut l instruin {R} E I iloD luego se ejeut l instruin {S} {T} que y fue nlizdo en el punto nterior y trd siempre QB@kIEIACP ilosF luego se ejeut l instruin {U} que derement memPD si el deremento no es ero trd en ejeutrse I ilo y ps ejeutr l instruin {V}D que vuelve l instruin {Q}F intones el seueni de instruionesX {Q} {R} {S} {T} {U} {V} otl I ilo I ilo QB@kIEIACP ilos I ilo P ilo UC@QB@kIEIA ilos

ist seueni ilos se ejeutn en su totlidd @kPEIA veesF vuego l terer vez est seueni result enX {Q} I ilo {R} I ilo {S} {T} QB@kIEIACP ilos {U} P ilos otl TCQB@kIEIA ilos se ejeut defsz memP omo el deremento es H onsume P ilos

RH

Gustavo A. Yarce

il totl de ilos onsumidos en est rutin 2 + 1 + 1 + {(7 + (3 (k1 1)) 2 + 6 + 3 (k1 1)} + 2 ciclos il mximo tiempo que se trdD se rgn memI y memP on HpphF v primer seueni trd {Q} I ilo {R} I ilo {S} {T} UTR ilos {U} I ilo {V} P ilo otl UTW ilos ist seueni se ejeut Hpeh vees o PSR veesF v segund seueni es {Q} I ilo {R} I ilo {S} {T} UTR ilos {U} P ilos otl UTV ilos iv nmero de ilos totl es 2 + 1 + 1 + {769 254 + 768} + 2 = 2 + 1 + 2 + {101} + 2 = 196100ciclos vo que llev un tiempo de 1961001e6 = 0,1961 segundos o IWTFI milisegundosF

Rutina de retardo triple

retrdo rQ rP rI

movlw movwf movlw movwf movlw movwf defsz goto defsz goto defsz goto return

FkQ memQ FkP memP FkI memI memIDI rI memPDI rP memQDI rQ

Y{I} Y{P} Y{Q} Y{R} Y{S} Y{T} Y{U} Y{V} Y{W} Y{IH} Y{II} Y{IP} Y{IQ}

Computadoras Electrnicas

RI

v llmd surutin ll trd P ilosF vuego slt l surutin en l ul se enuentr on {I} y {P} que trdn en ejeutrse P ilosF vuego entr en l rutin priniplD entre ls lnes {U}{V} tenemos el ule simple el ul trd en ejeutrse QB@kIEIACP ilosD intre ls lnes {S}{T}{U}{V}{W}{IH}D tenemos el ule doleD el ul inluye el ule simpleF henominremos l expresin del ule simple omo A = [3 (k1 1) + 2] or lo tnto el ule dole puede expresrse omoX {S} {T} {e} {W} {IH} I ilo I ilo e ilos I ilo P ilos

iste ule se ejeut @kPEIAF v expresin que rige el segundo uleD

[(1+1+A+1+2)*(k2-1)]+[1+1+A+2]= [(5+A)*(k2-1]+[4+A]ciclos
r indir l expresin del ule dole lo hremos omo

B=[(5+A)*(k2-1)]+[4+A]
in l lne Q omienz el ule triple y (nliz en IP l ul oup ls siguientes lnesX Q I ilo R I ilo f f ilos II I ilo IP P ilos

C=[(1+1+B+1+2)*(k3-1)]+[1+1+B+2]=[(5+B)*(k3-1)]+[4+B]=

r determinr un rutin generliz es

RP

Gustavo A. Yarce

A=[3*(k1-1)+2] B=[(5+A)*(k2-1)]+[4+A] C=[(5+B)*(k3-1)]+[4+B] D = 2 + 1 +1 +C + 2

r el mximo de los vlores rgdos en kID kP y kQ pr PSSF

A=[3*(255-1)+2]=764 ciclos B=[(5+764)*(255-1)]+[4+764] = [195326]+[768] = 196064 ciclos C=[(5+196094)*(255-1)]+[4+196094] = 50005244 ciclos D = 2 + 1 + 1 + 50005244 + 2 = 50005250 ciclos
r un osildor de R wrzD el tiempo de ilo de instruin es t = 1e6 seg F

D= 50.005250 segundos

Captulo 6 Programacin en C de Microcontroladores


Introduccin a CCs

6.1

gd progrm en g dee ontener un funin prinipl que es el punto de prtid de l ejeuin del progrmF il progrm puede dividirse en mltiples funiones segn el propsito y ls funiones pueden ser llmds desde l prinipl o sufunionesF in un grn proyetoD ls funiones tmin se pueden olor en diferentes rhivos de g o rhivos de eer que se pueden inluir en el rhivo prinipl de g l grupo de ls funiones relionds on su tegorF gg tmin requiere inluir el rhivo de dispositivo propido utilizndo l diretiv 5 inlude pr inluir el dispositivo de funionlidd espe(F min hy lguns diretivs de preproesdor omo 5 fuses pr espei(r los fusiles pr el hip y 5use dely pr espei(r l veloidd de relojF vs funiones ontienen ls delriones de dtosD de(niionesD delriones y expresionesF il ompildor tmin proporion un grn nmero de lirers estndr de gD s omo otros ontroldores de dispositivo que puede ser inluid y utilizd en los progrmsF gg tmin provee un grn nmero de funiones integrds pr eder los distintos perifrios inluidos en el miroontroldor sgF RQ

RR
6.2

Gustavo A. Yarce

Estructura de un programa en C

GB remulo BG 5 inlude 5 fuse 5 use 5 yte 5 it delrin de funiones de(niin de vriles gloles GB punin rinipl BG void min@voidA { de(niin de vriles lolesY de(niiones del sgY snstruionesY etY } GB puniones seundris BG funin I@A { de(niin de vriles loles instruionesY etY } funin P@A { de(niin de vriles lolesY instruionesY etY }

Computadoras Electrnicas

RS

CCs

pigur TFIX Compilador CCs

pigur TFPX Fusibles vlidos

RT
6.3

Gustavo A. Yarce

Tipos

il lenguje g proporion ino tipos sio de dtosD on utro modi(dores posilesF odemos utilizr vriles de ulquier de esos tiposF v tl siguiente muestr los tipos disponilesX ipo short short int int hr unsigned unsigned int signed signed int long long int signed long )ot enho @fitsA I I V V V V V V IT IT IT QP ngo HoI HoI H PSS H PSS H PSS H PSS EIPV IPU EIPV IPU H TSSQT H TSSQT EQPUTV QPUTU QFRiEQV QFRiCQV

l TFIX ipos de dtos

Expresiones

lor IPQ IPQ HxIPQ HHIHHIH 9x9 \010 \xA5

pormto heiml ytl rex finrio grter grter ytl grter rex

l TFPX ixpresiones

Computadoras Electrnicas

RU

Varibles Locales y Globales

i un vrile se delr dentro de un funinD ser visile solo dentro de stX

funionI @A { hr letrY FFFF }

in el ejemplo nteriorD l vrile tipo hr llmd letr solo podr utilizrse dentro de l funin funionI@AF i intentmos utilizrl fuer de ellD el ompildor nos dr un errorF i delrmos un vrile fuer de ulquier funinD el lne de est ser glolD lo que quiere deir que estr disponile en ulquier prte de nuestro progrmF emos un ejemplo de este ltimo soF hr letrY min@A { FFFF } funionI@A { FFF }

v vrile tipo hr llmd letr podr utilizrse dentro de min@A o de funionI@AF

RV

Gustavo A. Yarce

Conversiones entre tipos


gg nos permite mezlr diferentes tipos de vriles dentro de un mism expresinF existen un onjunto de regls que nos permiten ser que de que tipo ser el resultdo de l mismF or ejemploD el ompildor onvertir utomE timente int ulquier expresin que onteng vriles hrD short o intF ist onversin solo tiene efeto mientrs se relizn los lulosF vs vriles en s misms no min su tipoF vs regls de onversin de tipos hen que el resultdo de un operin se siempre el mismo que el de l vrile ms lrg que interveng en ellF in emrgoD podemos forzr que el resultdo se de un tipo en prtiulrD de l siguiente formX

(tipo) valor
donde tipo es el tipo l que queremos que pertenez vlorF il siguiente ejemplo nos lrr todo estoX int a PSHD a IHY long Y a B Y l omo explimosD no ontendr el vlor PSHH omo podr preer simple vistD por que el tipo de no se modi(F gg lul B y otiene efetivE mente el resultdo PSHHD pero slo ontendr los V its menos signi(tivos de ese resultdoD es deirD el deiml IWTF i huisemos hehoX int a PSHD a IHY long Y a @longA @ B AY

Computadoras Electrnicas

RW

el vlor lmendo en huiese sido efetivmente PSHHF

6.4

Operadores

in gg los operdores umplen un rol importnteF uizs g se uno de los lengujes que ms operdores tieneF n expresin es un ominin de operdores y operndosF in l myor de los sosD los operdores de gg siguen ls misms regls que en lgerD y se llmn de l mism mnerF

yperdor Ca Ea Ba Ga 7a <<a >>a 8a |= a a

hesripin esignin de sum esignin de rest esignin de multipliin esignin de divisin esignin de resto de divisin esignin de desplzmiento l izquierd esignin de desplzmiento l dereh esignin de exh de its esignin de y de its esignin de y exlusivo de its esignin de negin de its l TFQX yperdores de signin

SH yperdor C E B G E 7 hesripin um @enteros o relesA est @enteros o relesA wultipliin @enteros o relesA hivisin @enteros o relesA gmio de signo en enteros o reles wduloY resto de un divisin enter

Gustavo A. Yarce

ijemplo resul a vrI C vrP resul a vrI E vrP resul a vrI B vrP resul a vrI G vrP H rngo a n eI 7 PST

l TFRX yperdores ritmtios

yperdor ` b `a ba aa a

hesripin wenor que wyor que wenor o igul que wyor o igul que sgul histinto de

l TFSX yperdores de relin

yperdor 3 88 ||

hesripin xy lgio lgio y lgio

l TFTX yperdores lgios

yperdor 8 |

hesripin xegin de its @omplemento IA de its @exhA y exlusivo de its @iyA y de its @yA

l TFUX yperdores de mnejo de its

Computadoras Electrnicas

SI

6.5

Prembulo

v sein del premulo de(neD tipo de miroontroldor utilizrD fusilesD lokD etF n ejemplo de esto esX

#include<16f84a.h> #fuses nowdt, xt,put,noprotect #use delay(clock=4000000) #byte port_b = 0x06 #use standard_io(A)

/*Seleccin del PIC*/ /*Configuracin de fusibles*/ /*Velocidad del clock*/ /*Define la direccin del puerto b*/ /*Definicin del puerto A*/

hentro del premulo se enuentr l de(niin pr l funionlidd de los puertosF r usr los puertos omo entrd o slid digitlD gg provee diretivs y funiones prede(nids pr el uso de los puertos de iG digitlF vs funiones output@A e input@A dependen de l diretiv de on(gurin que usemosF 5sxgvhi ermite inluir en nuestro progrm uno o ms rhivos @onoidos omo heE der (leA que posen extensin FhF istos rhivos ontienen informin sore funE ionesD sus rgumentosD el nomre de los pines de un modelo determindo de sg o ulquier otr os que usemos hitulmente en nuestros progrmsF isto permiE te no tener que esriir un montn de oss d vez que omenzmos un progrm nuevoX st on inluir el Fh orrespondienteF v form de utilizr est instruin es l siguienteX 5sxgvhi `rhivobisto hr que el ontenido de `rhivobse ompile junto on nuestro progrmF or ejemploX 5sxgvhi `sgITpVUUeFrb

5pi ermite modi(r el vlor de los fuses del miroontroldor que estmos emplenE doF vos vlores posiles dependen de d miroontroldor en prtiulrD y los vlores posiles se rgn l utilizr 5sgxvhi seguido del rhivo orresponE dienteF v form de 5pi es l siguienteX 5pi opiones donde opiones es un list de ls opiones posiles seprds medinte omsF entes de seguirD reE uerd que puedes ver dentro del rhivo on extensin Fh orrespondiente ules son los vlores posiles pr ese miroontroldorF istn l omienzo del rhivoD

SP en form de omentriosF elgunos vlores omunes sonX ipo de osildorX vD D rD g h hog imerX hD xyh rotein de digoX yigD xyyig ower p imerX D xy frown yut esetX fyxyD xyfyxy 5hipsxi v instruin 5de(ne tiene l siguiente formX

Gustavo A. Yarce

#DEFINE <label>value <label>


es l etiquet que usremos en nuestro progrmF vlue es el vlor que estE mos signndo est etiquetF vs instruiones 5hipsxi no genern odigo ewD si no que el preproesdor reliz los reemplzos que ells indin en el momento de l ompilinF il uso de 5hipsxi permite onstruir progrms ms ordendos y files de mnE tenerF emos lgunos ejemplos de 5hipsxi

#DEFINE TRUE 1
gd vez que en nuestro progrm prez l etiquet iD el preompilE dor l reemplzr por IF

#DEFINE pi 3.14159265359
gd vez que en nuestro progrm prez l etiquet piD el preompildor l reemplzr por QFIRISWPTSQSWF

Computadoras Electrnicas

SQ

5i hive @gvyguafreueniA ist diretiv indi l ompildor l freueni del proesdorD en ilos por seE gundoD l vez que hilit el uso de ls funiones hivew@A y hive@AF ypionlmente podemos usr l funin restrth@A pr que el ompildor reiniie el h durnte el retrdoF ijemplosX

#use delay (clock=20000000) #use delay (clock=32000, RESTART_WDT)

6.6

Directivas

vs hiretivs que provee ggsX 5use fstio @puertoAX xo modi( el registro s en leturs y esritursF ry que segurrse de que los pines est on(gurdos orretmenteF 5use stndrio @puertoAX wodi( el registro s orrespondiente en leturs y esritursF @wodo por defetoA 5use (xedio @puertoAX gon(gur el puerto y no modi( el registro s en leturs y esritursF

#include <16f873a.h> #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP #use delay (clock=4000000) #use fixed_io(a_outputs=PIN_A0,PIN_A1) //A0,A1 como salidas en porta #use standard_io(b) #use fast_io(c) void main(void) { int aux; set_tris_c(0xFE); /* puerto c como salida RC0 */

SR

Gustavo A. Yarce

v on(gurin omo entrd o slid se he trvs del registro sx orrespondiente del no I de l memoriF r on(gurr los puertos se utiliz l funin settris@vlorAF e puede leer l on(gurin de los puertos on l funin gettris@vlorAF

set_tris_A (0x3F)

/* Puerto A como entradas.*/

gg tiene funiones prede(nids pr el uso de los puertos de iG digitlF vos prmetros de ests funiones estn de(nidos en un (hero inlude F vs funiones pueden trtr el puerto ompletoD trvs de ls instruiones output@A e input@AF min se pueden operr nivel de itD on un formto sxn donde es el puerto y n el itF outputlow@sxnA outputhigh@sxnA GBpone HF BG GBpone IF BG

outputit@sxnDvlorA GBpone el pin n vlor @H IAF BG outputtoggle @sxnA output)ot @sxnA inputstte@sxnA terminlF BG input@sxnA GBomplement el vlor del pin BG GBin omo entrd @simul dF F BG GBvee el vlor del pin sin mir el sentido del

GBvee el vlor del pinF BG

5i pesy @puertoA ist diretiv fet l digo que el ompildor generr pr ls instruiones de entrd y slidF iste mtodo rpido de her sGy osion que el ompildor relie sGy sin progrmr el registro de direinF il puerto puede ser eEqF ijemploX

#use fast_io(A)

Computadoras Electrnicas

SS

5i psihsy @puertoyapinx5D pinx5FFFA ist diretiv fet l digo que el ompildor generr pr ls instruioE nes de entrd y slidF il mtodo (jo de her sGy usr que el ompildor genere digo pr her que un pin de sGy se entrd o slid d vez que se utilizF isto horr el yte de ew usdo en sGy normlF ijemploX

#use xed_io(a_outputs=PIN_A2 ,PIN_A3)


5i exhehsy @puertoA ist diretiv fet l digo que el ompildor gener pr ls instruiones de entrd y slidF il mtodo estndr de her sGy usr que el ompildor genere digo pr her que un pin de sGy se entrd o slid d vez que se utilizF in los proesdores de l serie S esto neesit un yte de ew pr d puerto estleido omo sGy estndrF ijemploX

#use standard_io(A)
inputx@ A hevuelve el estdo del puerto espei(do ijemploX

x=input_a() ;
outputx@vlorA isrie el yte espei(do en el puerto indidoF ijemploX

ST

Gustavo A. Yarce

valor_a(255) ;
sx@pinA hevuelve el estdo H o I del pinF il mtodo de eso de sGy depende de l ltim diretiv 5i Bsy utilizdF il vlor de retorno es un entero ortoF ijemploX

while ( !input(PIN_B1) );
yfs@pinD vlueA ist funin s el it ddo en vlue@H o IA por el pin de sGy espei(doF il modo de estleer l direin del registroD est determind por l ltim diretiv 5i BsyF ijemploX

output_bit( PIN_B0, 0);


yrsqr@pinA

// es lo mismo que output_low(pin_B0);

one uno el pin indidoF il mtodo de eso de sGy depende de l ltim diretiv 5i Bsy utilizdF ijemploX

output_high(PIN_A0);
yvy@pinA one ero el pin indidoF il mtodo de eso de sGy depende de l ltim diretiv 5i BsyF

Computadoras Electrnicas

SU

ijemploX

output_low(PIN_A0);
ispuerto@vlueA ists funiones permiten esriir diretmente los registros triEestdo pr l on(gurin de los puertosF isto dee usrse on pesy@A y undo se ede los puertos de sGy omo si fuern memoriD igul que undo se utiliz un diretiv 5fiF gd it de vlue represent un pinF n I indi que el pinl es de entrd y un H que es de slidF ijemploX

SET_TRIS_B( 0x0F );
delyms@timeA ist funin reliz retrdos del vlor espei(do en timeF hiho vlor de tiempo es en milisegundos y el rngo es HETSSQSF r otener retrdos ms lrgos s omo retrdos 9vriles9 es preiso her llmds un funin seprdY vse el ejemplo siguienteF is preiso utilizr l diretiv 5use dely@lokafreueniA ntes de l llmd est funinD pr que el ompildor sep l freueni de relojF ijemploX

#include <16f628a.h> #fuses xt, nowdt, put #use delay(clock=4000000) #use fast_io(a) void main() {

SV

Gustavo A. Yarce

set_tris_a(0b00000000); int ba; output_low(pin_a0); do { delay_ms(1000); ba=input(pin_a0); if (ba==0) output_high(pin_a0); else output_low(pin_a0); } while(0==0); }

Captulo 7 EL PUERTO PARALELO


7.1

Introduccin

v internse de un omputdor on l impresor se enuentr resuelt trvs de un puerto prlelo de V itsF iste puertoD en reliddD involur tres registros llmdos de dtosD de estdo y de ontrolD medinte los ules mos dispositivos relizn onsults de estdoD ontrol y trnsfereni de dtos entre sF gundo sfw introdujo l g en el o IWVID est inorpor un puerto prlelo de V its pr mnejr l impresorD queD por muhos os est fue el prinipl @ o el nio A perifrio que lo utilizF gon el pso del tiempo y los vnes de l tenologD se desrrollron tod lse de prtos tles omo esnerD reprodutores de ghD drivers pr disqueteD etFD los ules utilizn dih interfeF vos disedores de perifrios siempre se enfrentn on ls limitiones de este puertoD entre ells se uentn l flt de rendimiento dds ls js veloiddes de trnsfereni de informin @ mximo ISH uytes por segundo A y l limitin de l mxim longitud del le @ IFS m AF in IWWID los frintes de impresors se reunieron pr desrrollr un nuevo estndr pr el puerto prleloF vos requisitos de este ern lt veloidd de trnsfereni de informin @hst I wyte por segundoAD idireionlidd y sore todo omptiilidd totl tnto en softwre omo en hrdwre on l interfe originl de sfwF es fue que en el o IWWR ni el estndr siii IPVR que rene ls rterstis enunids rri y rige ls interfes de los modernos gF

SW

TH
7.2

Gustavo A. Yarce

Estructura del interface paralelo

hdo que tods ls g omptiles soportn el interfe originl de sfwD nos limitremos l estudio de esteF gd g puede ontener hst R puertos prlelosD unque el fsy l rrnr en relidd us QD pero se puede inluir un urto espei(ndo su direin en el segmento de vriles del fsyF vs direiones de estos puertos estn estndrizds y se dn en l tl UFIF

hirein Qfgh E Qfih QUVh E QUeh PUVh E PUVh

uerto uerto prlelo en l trjet whe rimer puerto prlelo egundo uerto prlelo

l UFIX hireiones del puerto prlelo

gd puerto onst de Q registros esiles desde un direin seD QUVh pr el primer puerto prleloD es deir pr el registro de dtos del primer puerto prlelo se eder on l direin QUVhD pr eder l registro de estdo del primer puerto prlelo l direin ser QUWhaQUVh CI y pr el registro de ontrol del primer puerto prlelo l direin ser QUehaQUVh C PF vos nomres de dihos puertos se los sign el sistem opertivo hyD pr el ul el primero en ser detetdo por el fsy reie el nomre de vI @revitur de vine rinerA y si huierD el segundo vP y el terero vQF hesde el exterior de l mquin se identi( l puerto prlelo medinte un onetor h hemr de PS pinesF

hel ldo de l impresorD el le que onet mos llev un onetor tipo entronis de QT pinesF il nomre de ls seles s omo el nmero de pin se dn

Computadoras Electrnicas

TI

pigur UFIX Conector Puerto Paralelo en la PC

en l tl UFPF

in del g I P Q R S T U V W IH II IP IQ IR IS IT IU IVEPS

in de l impresor I P Q R S T U V W IH II IP IQ IR QP QI QT IWEQH

xomre de l lne Gyfi hH hI hP hQ hR hS hT hU Gegu Gf i vg ey piih Giy Gsxs vg sx qxh

igni(do sndi trnsmisin vne de dtos it H vne de dtos it I vne de dtos it P vne de dtos it Q vne de dtos it R vne de dtos it S vne de dtos it T vne de dtos it U ltimo rter eptdo smpresor oupd smpresor sin ppel smpresor en yx vsxi g utomtio despus de vp irror en trnsmisin de dtos eset de l impresor etivr yx vsxi en l impresor ws

l UFPX xomre y punin de los pines puerto rlelo

TP

Gustavo A. Yarce

v rr G delnte de los nomres de ls seles indin que son tivs nivel joD no que estn invertidsF
7.3

Los registros del puerto.

sndependientemente de l posiin en l zon de direionesD todos los puertos muestrn un register E interfz uni(do que se ompone de tres registrosF yupn ls primers tres direiones de l trjetD por ejemploD QUVhD QUWh y QUeh en el so del primer puerto prleloF is importnte her qu lguns oservionesX IF gd it de los diferentes registros est unido un le que lleg l exterior del gD ms extmente l onetor hfPSF i se esrie un I en uno de estos itsD l lne en uestin se pone jo tensin inmeditmente y este vlor se mntiene hst que se vuelve esriir sore l mism lneF PF elguns de ests lnes presentn lgi negtivF ists son ls lnes uyo nomre est negdo @llevn un guin sore lA o que omienzn on l rr GF v ondiin que est unid un de ests lnes pree siempre que l lne est eroF v lne errorD por ejemploD muestr un error en l slid de impresin pero solmente undo este it ontiene el vlor eroF wientrs que l lne se mnteng en uno no existe ningn errorF

Lneas de datos
in emrgoD los oho its del primer registro de un puerto prlelo reen de lgi negtivF gontiene V its de dtos que orresponden ls lnes de dtos hH E hUF

Tenga en cuenta que este registro del puerto est concebido como registro puro de salida, ya que no se plane ninguna recepcin de datos en el momento de su concepcin. El intentar ingresar un dato por estas lneas acarreara indefectiblemente la destruccin del puerto.
v siguiente ilustrin muestr l distriuin de los diferentes its en el registro de dtosF

Computadoras Electrnicas

TQ

pigur UFPX Registro de Datos

Lneas de Estado
il estdo tul del puerto prlelo se otiene del segundo registroD llmdo registro de estdoD que solo se puede leer pero no esriir por softwreD y que en el se re)ejn ls diferentes lnes de estdoF is deirD ls lnes de este registro se omportn omo entrds l g sore ls ules podemos esriirD ingresr lgn vlor lgio medinte hrdwreF il intentr esriir por softwre en este registro no tiene ningn efetoF v distriuin de los diferentes its de este registro se muestr ontinuinX

pigur UFQX Registro de Estado

TR

Gustavo A. Yarce

Lneas de Control
il terer registro sirve pr el ontrol del puerto prleloF edemsD jueg un ppel importnte durnte l trnsmisin de rteresF todos los itsD exepto los its R l UD estn unidos ls diferentes lnes del puerto entronisF v distriuin de los its es l siguienteX

pigur UFRX Registro de Control

ero no todo es tn trnsprente omo preeD sino que est interfe esonde lgo jo sus intrindos iruitosD y es que lgunos its estn invertidos por hrdwre en esritur y otros en letur por lo que deemos ver ules sonF gomenemos por deir que el registro de dtos no posee ningn it invertidoD pero el de estdo sF emos un gr( del mismo undo lo leemosF

LECTURA DEL REGISTRO DE ESTADO

il it Gf est invertidoD mientrs que los dems noF ehorD en el registro de ontrol deemos distinguir entre l letur y l esriturF gomenemos por l leturF

Computadoras Electrnicas

TS

pigur UFSX Lectura del registro de estado

Lectura-Escritura del registro de control

pigur UFTX Lectura del registro de control

gomo vemos quD los its invertidos en l letur de este registro son dosD eF piih y GyfiD mientrs que vg sx e Gsxs no sufren inversin lgunF iste mismo registro pero en esritur tiene ls siguientes rterstisX

pigur UFUX Escritura del registro de control

TT
7.4

Gustavo A. Yarce

Precauciones en el manejo del puerto.

hmos qu lgunos onsejos importntes l hor de trjr on un puerto prleloF xo onetr ningn dispositivo @impresorD esner o lgn prototipo onstruido por nosotrosA undo el g est funionndoF epgr el equipo y luego proederF odo prototipo onstruido por nosotros que se de onetr l puerto prleloD deer ontr on un u'er @interfeA entre mosF vs rzones de esto son dosX IA l pidd pr suministrr orriente del puerto es muy jD por lo que deemos olor un mpli(dor de orriente @puede ser un URvQUQ o URvPRRD PRS etFA pr poder mnejr nuestros dispositivos y PA este interfe reliz un islin eltri entre los pines del puerto y ls slids del mismo por lo que un desperfeto en nuestro prototipo osion l destruin de diho interfe y no del puerto del gF entes de onetr un prototipo l puertoD segurrse de que no existe lgn ortoiruito o ml onexin en el mismoD que el iruito est rmdo orretmente y ompror el estdo del le que onet l mismo on el g pr que no hy flsos onttos o ortoiruitos entre ls lnesF

ndice alfabtico
umuldorD PW gllD QU ggsD RQ ilo de instruinD IS ontdor de progrmD IUD PH direionmientoD PQ direionmiento diretoD PQ direionmiento indiretoD PQ iiywD IHD IQD IR iD QS istdoD PU estdoD PH pverD IID IQD IW instruionesD QI memori de dtosD PH osildoresD IT gD PHD PP sgD PR piITfVUQD IQD IR pilD PP puerto D PR puerto D PS puerto D PT ewD IHD PH registro de estdoD PU relojD IS resetD IU TU etrdoD QV eturnD QU ywD WD IH utin simpleD QV sistem progrmleD W ewD II