2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde...

84

Transcript of 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde...

Page 1: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.
Page 2: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1

Page 3: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Los microcontroladores de la empresa Microchip, “ los PIC” ,están ocupando un lugar de privilegio dentro de la industria elec-trónica, gracias a la facilidad de implementar programas con unset reducido de instrucciones y a la importancia que poseen suscaracterí sticas.

Cuando en 1998 publiqué el primer artí culo sobre estos circuitosintegrados, no creí que su divulgación llegarí a tan lejos; sinembargo, ocho años después debo reconocer que trabajar conestos chips es un placer del que no se deben privar los amantesde la electrónica.

Hace algo más de cinco años Editorial Quark publicó el primerlibro sobre este tema titulado: “ Todo Sobre PICs” , texto quetrata sobre las caracterí sticas fundamentales de estos dispositivosy qué es necesario para editar programas, simularlos y cargarlosen la memoria de los integrados.

Todo Sobre PICs (que también fue el primer texto publicado porEditorial Quark en forma simultánea en varios paí ses de AméricaLatina) es el libro que debe leer todo aquel que se inicia en esta dis-ciplina, mientras que Microcontroladores PICs persigue enseñar allector a construir programas para armar sus propios dispositivos.Este es también un texto básico, dado que utilizamos estructuras muysencillas para realizar los primeros programas. Somos conscientesque para que alguien pueda trabajar con un dispositivo primerodebe conocerlo y por ello en el capí tulo 1 hablamos sobre los difer-entes bloques que integran a los PIC, basándonos en la familia16X54/84 (que fue el componente que tomamos como referencia enel primer libro). De esta manera Ud. debe saber qué es y cómo seemplea la memoria de datos, la memoria de programa, el perroguardián, el registro de STATUS, etc.

Una vez que tiene conocimientos sobre los recursos con que cuen-ta, en el capí tulo 2 presentamos las 35 instrucciones del set RISCde esta familia, dando ejemplos de uso en cada caso. Por ello, espro-bable que cuando lea algunos temas del capí tulo 1 (comoverificación de un dato escrito en la memoria) precise “ conocer”cómo se manejan determinadas instrucciones. Dicho de otraforma, si al leer un punto en particular no entiende algún con-cepto, continúe la lectura y, seguramente, más adelante compren-derá lo que hemos querido decir.

Por último, en el capí tulo 3 damos ejemplos de programaciónsobre “ circuitos reales” , utilizando algunos temas escritos por elIng. Picerno en Saber Electrónica, modificados convenientementepara que “ aprenda mientras se ejercita” . Estoy convencido queeste texto es mejor que el primero, pero no caben dudas que, siUd. no sabe nada sobre microcontroladores, precisará leer el libroTodo Sobre PICs.

Ing. Horacio D. Vallejo

Microcontroladores PIC

Editorial

1ISBN Nº: 987-1116-69-1ISBN Nº: 978-987-1116-69-0

Page 4: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Legales

2

N º 1 2 0

Di rec tor de la Colección Club SaberElectrónicaIng. Ho ra cio D. Va lle joJefe de RedacciónPablo M. Dodero

Club Saber Electrónica es una publi-cación de Saber Internacional SA deCV de México y Editorial Quark SRL de Argentina

Editor Responsable en Argentina yMéxico: Ing. Horacio D. Vallejo

Administración México: Patricia Rivero Rivero

Comercio Exterior México: Margarita Rivero Rivero

Director Club Saber Electrónica: José María Nieves

Responsable de Atención al Lector:Alejandro A. Vallejo

Coordinador InternacionalLuis Alberto Castro Regalado

PublicidadArgentina: 4301-8804 - México: 5839-5277

Internet: www.webelectronica.com.arWeb Manager: Pablo Ábalos

Club Sa ber Elec tró ni ca. Fe cha de pu bli ca ción:julio 2014. Pu bli ca ción men sual edi ta da y pu bli ca -da por Edi to rial Quark, He rre ra 761 (1295) Ca pi talFe de ral, Ar gen ti na (005411-43018804), en con jun -to con Sa ber In ter na cio nal SA de CV, Av. Moc te -zu ma Nº 2, Col. Sta. Ague da, Eca te pec de Mo re -los, Mé xi co (005255-58395277), con Cer ti fi ca do deLi ci tud del tí tu lo (en trá mi te). Dis tri bu ción en Mé -xi co: REI SA de CV. Dis tri bu ción en Ar gen ti na:Ca pi tal: Car los Can ce lla ro e Hi jos SH, Gu ten berg3258 - Cap. 4301-4942 - In te rior: Dis tri bui do ra Ber -trán S.A.C. Av. Vé lez Sárs field 1950 - Cap. – Dis -tri bu ción en Uru guay: Ro de sol SA Ciu da de la1416 – Mon te vi deo, 901-1184 – La Edi to rial no seres pon sa bi li za por el con te ni do de las no tas fir ma -das. To dos los pro duc tos o mar cas que se men cio -nan son a los efec tos de pres tar un ser vi cio al lec -tor, y no en tra ñan res pon sa bi li dad de nues tra par -te. Es tá pro hi bi da la re pro duc ción to tal o par cialdel ma te rial con te ni do en es ta re vis ta, así co mo lain dus tria li za ción y/o co mer cia li za ción de los apa -ra tos o ideas que apa re cen en los men cio na dostex tos, ba jo pe na de san cio nes le ga les, sal vo me -dian te au to ri za ción por es cri to de la Edi to rial.

Revista Club Saber Electrónica, ISSN: 1668-6004

Page 5: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Sumario

3

SumarioArquitectura de un PIC ..........................................................................................4

Características del PIC ..............................................................................................................................................4

Patas del PIC .............................................................................................................................................................5

Resumen del dispositivo ............................................................................................................................................6

Lo que debe saber sobre los PICs.............................................................................................................................9

Palabras de configuración e identificación ..............................................................................................................13

Organización de la memoria....................................................................................................................................13

Los registros del PIC ...................................................................................................................................................14

Ports I/O......................................................................................................................................................................20

Módulo temporizador timer0.....................................................................................................................................23

Memoria de datos EEPROM ......................................................................................................................................25

La CPU del PIC...........................................................................................................................................................27

Configuraciones del oscilador ..................................................................................................................................29

El perro guardián (WDT) .............................................................................................................................................32

Interrupciones del micro............................................................................................................................................32

Manejo de las instrucciones de un PIC.................................................................36

Introducción ..............................................................................................................................................................37

El set de instrucciones del 16X84..............................................................................................................................39

Palabras de configuración e identificación ..............................................................................................................54

Aprendiendo a programar ....................................................................................56

Circuito de un entrenador.........................................................................................................................................58

Encendido intermitente de un led ............................................................................................................................60

Secuenciador de 4 canales .....................................................................................................................................65

Generador de señales de audio ..............................................................................................................................69

Secuenciador de 8 canales .....................................................................................................................................70

Compilación de un programa..................................................................................................................................72

Carga del programa en un PIC ................................................................................................................................75

Page 6: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

CA rAC te rIs tI CAs del PICEs­ta­fa­mi­lia­de­mi­cro­con­tro­la­do­res­PIC­se­des­ta­-

ca­por­las­si­guien­tes­pres­ta­cio­nes­es­pe­cia­les:

• Só­lo­se­ne­ce­si­tan­35­ins­truc­cio­nes­de­una­so­la

pa­la­bra­pa­ra­usar­lo.

• To­das­las­ins­truc­cio­nes­son­de­un­so­lo­ci­clo­con

ex­cep­ción­ de­ las­ ra­mi­fi­ca­cio­nes­ del­ pro­gra­ma­que

son­de­dos­ci­clos.

• Me­mo­ria­de­pro­gra­ma­con­ca­pa­ci­dad­pa­ra­1024

pa­la­bras­(1kB).

• La­me­mo­ria­RAM­de­da­tos­es­de­68­by­tes.

• La­me­mo­ria­de­da­tos­EE­PROM­es­de­64­by­tes.

• Las­pa­la­bras­de­ins­truc­cio­nes­tie­nen­una­ex­ten­-

sión­de­14­bits.

• Los­by­tes­de­da­tos­ tie­nen­una­ex­ten­sión­de­8

bits.

• Po­see­15­ re­gis­tros­ de­hard­wa­re­ de­ fun­cio­nes

es­pe­cia­les.

• Tie­ne­una­Pi­la­de­hard­wa­re­de­ocho­ni­ve­les.­

• Pro­ce­sa­mo­dos­de­ac­ce­so­di­rec­to,­ in­di­rec­to­ y

re­la­ti­vo.

• Tie­ne­cua­tro­fuen­tes­de­in­te­rrup­cio­nes:

-Pa­ta­ex­ter­na­RB0/INT

-Ex­ce­so­del­tem­po­ri­za­dor­TMR0

-In­te­rrup­ción­al­cam­bio­PORTB<7:4>

-Al­com­ple­tar­la­es­cri­tu­ra­del­EE­PROM­de­da­tos.

• La­ ve­lo­ci­dad­ de­ fun­cio­na­mien­to­ es­ de­ DC­ a

20MHz­en­la­en­tra­da­del­clock­y­de­DC­a­200­ns­(na­-

no­se­gun­dos)­en­el­ci­clo­de­ins­truc­cio­nes.

Ca­rac­te­rís­ti­cas­Pe­ri­fé­ri­cas• 13­pa­tas­I/O­con­con­trol­in­di­vi­dual­de­di­rec­ción.

• Fuen­te­de­al­ta­co­rrien­te­pa­ra­ex­ci­ta­ción­di­rec­ta

de­LED´s:

-25mA­má­xi­mo­de­sink­(áno­do)­por­pa­ta

-25mA­má­xi­mo­de­sour­ce­(cá­to­do)­por­pa­ta.

• Tem­po­ri­za­dor­/con­ta­dor­ de­ 8­ bits­ TMR0­ con

prees­ca­ler­(di­vi­sor­de­fre­cuen­cia)­pro­gra­ma­ble­de­8

bits.

Ca­rac­te­rís­ti­cas­Es­pe­cia­les­del­Mi­cro­con­tro­la­dor• Me­mo­ria­de­pro­gra­ma­de­1000­ci­clos­de­es­cri­-

tu­ra­/bo­rra­do­de­flash­re­for­za­do.

• Me­mo­ria­de­da­tos­EE­PROM­de­1.000.000­de­ci­-

clos­de­bo­rra­do/es­cri­tu­ra­tí­pi­ca.

• Re­ten­ción­de­da­tos­de­EE­PROM­de­>40­años.

• Pro­gra­ma­ción­ en­ se­rie­ den­tro­ del­ cir­cui­to

(ICSP­ =­ In­ Cir­cuit­ Se­rial­ Pro­gram­ming)­ me­dian­te

dos­pa­tas.

• Po­wer-on­Re­set­(POR),­Po­wer-up­Ti­mer­(PWRT),

Os­ci­lla­tor­Start-up­Ti­mer­(OST).­

• Watch­dog­Ti­mer­(WDT)­con­su­pro­pio­os­ci­la­dor

RC­in­cor­po­ra­do­en­el­chip­pa­ra­un­fun­cio­na­mien­to

con­fia­ble.

Microcontroladores PIC

Arquitecturade un PIC

4

Page 7: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

• Pro­tec­ción­de­có­di­gos.

• Mo­do­SLEEP­pa­ra­eco­no­mi­zar­con­su­mo.

• Op­cio­nes­se­lec­cio­na­bles­de­os­ci­la­dor.

• Tec­no­lo­gía­ CMOS­ con­ Flash­ re­for­za­do­ y­ EE­-

PROM.

• Tec­no­lo­gía­de­ba­ja­po­ten­cia­y­al­ta­ve­lo­ci­dad.

• Di­se­ño­es­tá­ti­co­com­ple­to.

• Ran­go­am­plio­de­ten­sio­nes­de­fun­cio­na­mien­to:

-Co­mer­cial:­2,0­Volt­a­5,5­Volt

-In­dus­trial:­­2,0­Volt­a­5,5­Volt.­

• Con­su­mo­muy­ba­jo:

-­<­2mA­tí­pi­co­a­5­Volt,­4MHz

-­15µA­tí­pi­co­a­2­Volt,­32kHz

-­<­0,5µA­tí­pi­co­de­co­rrien­te­en­re­po­so­a­2­Volt.

PA tAs del PIC

El­mi­cro­con­tro­la­dor­PIC16C84­es­un­chip­que­co­-

mo­pue­de­apre­ciar­se­en­ la­ fi­gu­ra­1,­dis­po­ne­de­18

pa­tas.­

La­fun­ción­que­cum­ple­ca­da­una­de­ellas­es­la­si­-

guien­te:

Pa­tas­1,­2,­3­17­y­18­-­RA0-RA­4/TOCK1­:­Es­el­PORT

A.­Co­rres­pon­den­a­5­ lí­neas­bi­di­rec­cio­na­les­de­E/S.

Es­ca­paz­de­en­tre­gar­ni­ve­les­TTL­cuan­do­la­ten­sión

de­ali­men­ta­ción­apli­ca­da­en­VDD­es­de­5V­±­5%.­El

pin­RA4,­si­se­pro­gra­ma­co­mo­sa­li­da­es­de­co­lec­tor

abier­to.­ Co­mo­ en­tra­da­ pue­de­ pro­gra­mar­se­ en­ fun­-

cio­na­mien­to­ nor­mal­ o­ co­mo­ en­tra­da­ del­ con­ta­dor­-

/tem­po­ri­za­dor­TMR0.

______

Pa­ta­ 4­ -­ MLCR­ /­ Vpp: Es­ una­ pa­ta­ de­ múl­ti­ples

apli­ca­cio­nes,­es­la­en­tra­da­de­Re­set­si­es­tá­a­ni­vel

ba­jo­ y­ tam­bién­ es­ la­ ha­bi­li­ta­ción­ de­ la­ ten­sión­ de

pro­gra­ma­ción­cuan­do­se­es­tá­pro­gra­man­do­el­dis­po­-

si­ti­vo.­Cuan­do­su­ten­sión­es­la­de­VDD,­el­PIC­fun­cio­-

na­nor­mal­men­te.

Pa­tas­5­y­14­-­VSS­y­VDD: Son­res­pec­ti­va­men­te­las

pa­tas­de­ma­sa­y­ali­men­ta­ción.­La­ten­sión­de­ali­men­-

ta­ción­ de­ un­ PIC­ es­tá­ com­pren­di­da­ en­tre­ 2V­ y­ 6V

aun­que­se­re­co­mien­da­no­so­bre­pa­sar­los­5,5V.­

De­pen­dien­do­de­la­le­tra­que­po­sea­al­fi­nal,­el­PIC

se­rá­la­ten­sión­ad­mi­si­ble.­

Los­mo­de­los­que­con­tie­nen­ las­ le­tras­C,­F­o­CR

ad­mi­ten­ ten­sio­nes­ de­ ali­men­ta­ción­ com­pren­di­das

en­tre­4V­y­4,5V­co­mo­mí­ni­mo­has­ta­5,5V­a­6V­co­mo

má­xi­mo.­

CAPItUlO 1 - Arquitectura de un PIC

el mi cro con tro la dor PIC 16F84A, de la mar ca Mi cro chip, es del ti po de 8 bits con ee PrOM ti po flash re for za do en cap su la do de 18pa tas. el ele va do ren di mien tode es te mi cro con tro la dor dedi se ño avan za do, per mi terea li zar una gran can ti dadde fun cio nes y pres ta cio nesco mo ve re mos a con ti nua -ción.

Figura 1

5

Page 8: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Los­ mo­de­los­ que­ con­tie­nen­ las­ le­tras­ LC,­ LF­ o

LCR­ad­mi­ten­des­de­2V­a­6V.

Pa­tas­ 6,­ 7,­ 8,­ 9,­ 10,­ 11,­ 12,­13­ -­ RB0-RB7: Es­ el

PORT­B.­Co­rres­pon­den­a­ocho­lí­neas­bi­di­rec­cio­na­les

de­E/S.­Pue­den­ma­ne­jar­ni­ve­les­TTL­cuan­do­ la­ ten­-

sión­de­ali­men­ta­ción­apli­ca­da­en­VDD­es­de­5V­±­5%.

RB0­ pue­de­ pro­gra­mar­se­ ade­más­ co­mo­ en­tra­da­ de

in­te­rrup­cio­nes­ ex­ter­nas­ INT.­ Los­ pi­nes­ RB4­ a­ RB7

pue­den­ pro­gra­mar­se­ pa­ra­ res­pon­der­ a­ in­te­rrup­cio­-

nes­por­cam­bio­de­es­ta­do.­Las­pa­tas­RB6­y­RB7­se

co­rres­pon­den­con­las­lí­neas­de­en­tra­da­de­re­loj­y­en­-

tra­da­de­da­tos­res­pec­ti­va­men­te,­cuan­do­es­tá­en­mo­-

do­pro­gra­ma­ción­del­in­te­gra­do.

Pa­tas­15­y­16­-­OSC1/CL­KIN­y­OSC2/CL­KOUT: Co­-

rres­pon­den­a­los­pi­nes­de­la­en­tra­da­ex­ter­na­de­re­-

loj­ y­ sa­li­da­de­os­ci­la­dor­a­cris­tal­ res­pec­ti­va­men­te.

Los­ dis­tin­tos­ ele­men­tos­ de­ la­ fa­mi­lia­ 16X84X,­ de­-

pen­dien­do­ de­ la­ no­men­cla­tu­ra­ que­ uti­li­zan­ tie­nen

dis­tin­tas­ ca­rac­te­rís­ti­cas­ de­ fre­cuen­cia­ má­xi­ma­ de

fun­cio­na­mien­to,­ti­po­de­os­ci­la­dor­uti­li­za­do­pa­ra­ge­-

ne­rar­fre­cuen­cias­de­re­loj­y­mar­gen­de­la­ten­sión­de

ali­men­ta­ción.

Los­mi­cro­con­tro­la­do­res­ PIC,­ per­mi­ten­ cua­tro­ ti­-

pos­de­os­ci­la­do­res­ex­ter­nos­pa­ra­apli­car­les­ la­ fre­-

cuen­cia­ de­ fun­cio­na­mien­to.­Du­ran­te­ el­ pro­ce­so­ de

gra­ba­ción,­ an­tes­ de­ in­tro­du­cir­ el­ pro­gra­ma­ en­me­-

mo­ria,­de­be­in­di­car­se­el­ti­po­de­os­ci­la­dor­em­plea­do

en­los­bits­FSOC1­y­FSOC2­de­la­Pa­la­bra­de­Con­fi­gu­-

ra­ción.­Los­ti­pos­de­os­ci­la­do­res­que­pue­den­uti­li­zar

los­PIC16X54/84­son:­

*­Os­ci­la­dor­de­cris­tal­o­re­so­na­dor­de­al­ta­ve­lo­ci­-dad­"HS­"(High­Speed­Crys­tal­/Re­so­na­tor):­Es­un­os­ci­-la­dor­con­una­fre­cuen­cia­com­pren­di­da­en­tre­4MHz­y20MHz­(fi­gu­ra­2).

*­ Os­ci­la­dor­ o­ re­so­na­dor­ ce­rá­mi­co­ "XT"­ (Crys­tal­-/Re­so­na­tor):­ Es­ un­ os­ci­la­dor­ es­tán­dar­ que­ per­mi­teuna­fre­cuen­cia­de­clock­má­xi­ma­de­4MHz.

*­Os­ci­la­dor­a­cris­tal­o­re­so­na­dor­ce­rá­mi­co­de­ba­-ja­po­ten­cia­"LP"­(Low­Po­wer­Crys­tal):­Se­tra­ta­de­unos­ci­la­dor­de­ba­jo­con­su­mo­cons­trui­do­con­un­cris­talde­cuar­zo­o­un­re­so­na­dor­di­se­ña­do­pa­ra­tra­ba­jar­confre­cuen­cias­com­pren­di­das­en­tre­30kHz­y­200kHz.

*­ Os­ci­la­dor­ RC­ (re­sis­ten­cia­ ca­pa­ci­tor):­ Tam­biénes­po­si­ble­cons­truir­un­os­ci­la­dor­me­dian­te­la­co­lo­ca­-ción­ de­ una­ re­sis­ten­cia­ y­ un­ ca­pa­ci­tor­ ex­ter­no.­ Setra­ta­de­un­os­ci­la­dor­de­ba­jo­cos­to.­

Su­cir­cui­to­de­apli­ca­ción­es­el­que­se­mues­tra­enla­fi­gu­ra­3.­Po­see­ba­ja­pre­ci­sión­la­cual­de­pen­de­dela­es­ta­bi­li­dad­de­la­red­RC,­pe­ro­es­fá­cil­de­cons­truiry­de­ba­jo­pre­cio­lo­que­lo­ha­ce­in­te­re­san­te­pa­ra­mu­-chas­apli­ca­cio­nes.­La­re­sis­ten­cia­de­be­te­ner­un­va­-lor­com­pren­di­do­en­tre­5kΩ­y­10kΩ.

El­cir­cui­to­que­ope­ra­con­un­cris­tal­o­un­re­so­na­-

dor­se­mues­tra­en­la­fi­gu­ra­2­y­de­pen­de­de­los­va­lo­-

res­ de­ C1,­ C2­ y­ del­ cris­tal­ pa­ra­ el­ buen­ fun­cio­na­-

mien­to­del­mis­mo.­Se­re­co­mien­da­ver­la­ta­bla­de­da­-

tos­del­fa­bri­can­te,­aun­que­pa­ra­los­PIC16X54/84­los

ca­pa­ci­to­res­pue­den­ser­del­or­den­de­los­27pF­pa­ra

ca­si­to­do­el­ran­go­de­fre­cuen­cias.­

En­la­fi­gu­ra­3­se­mues­tra­un­os­ci­la­dor­cons­trui­do

a­par­tir­de­una­cel­da­RC.

re sU Men del dIs PO sI tI vOEl­PIC­16F84A,­uti­li­za­do­en­mu­chas­apli­ca­cio­nes­y

que­ha­ser­vi­do­de­ba­se­pa­ra­la­ela­bo­ra­ción­de­­­var-

ios­tex­tos,­per­te­ne­ce­a­la­fa­mi­lia­de­ran­go­me­dio­de

los­mi­cro­con­tro­la­do­res­PIC.­Un­dia­gra­ma­en­blo­ques

se­en­cuen­tra­en­la­fi­gu­ra­4.

Fi­cha­Di­dác­ti­caAn­tes­de­avan­zar­so­bre­la­es­truc­tu­ra­in­ter­na­de

un­PIC,­va­mos­a­rea­li­zar­el­pri­mer­re­su­men­me­dian­-

te­una­fi­cha­téc­ni­ca­que­con­tie­ne­la­des­crip­ción­in­-

ter­na­del­cir­cui­to­in­te­gra­do.

Los­ cir­cui­tos­ in­te­gra­dos­ pro­gra­ma­bles­ (PIC)­ de

Mi­cro­chip­son­mi­cro­con­tro­la­do­res­con­una­es­truc­tu­-

ra­in­ter­na­co­mo­la­mos­tra­da­en­la­fi­gu­ra­4.­

Exis­te­un­gru­po­de­blo­ques­de­di­ca­dos­a­me­jo­rar

el­ fun­cio­na­mien­to­ pe­ro­ sin­ in­fluir­ di­rec­ta­men­te­ en

el­ flu­jo­de­ se­ña­les.­Ve­mos­un­ tem­po­ri­za­dor­de­en­-

cen­di­do,­un­tem­po­ri­za­dor­de­arran­que­del­os­ci­la­dor

de­CLOCK,­un­cir­cui­to­de­re­set­y­un­cir­cui­to­lla­ma­do

de­vi­gi­lan­cia­o­WATCH­DOG.­

Microcontroladores PIC

Figura 2 Figura 3

6

Page 9: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Los­dos­pri­me­ros­blo­ques­pro­cu­ran­un­arran­que

or­de­na­do­pa­ra­no­pro­du­cir­una­car­ga­al­mis­mo­tiem­-

po­so­bre­la­fuen­te.­El­cir­cui­to­in­ter­no­de­re­set­se­en­-

car­ga­de­vol­ver­a­ “ce­ro”­el­ fun­cio­na­mien­to­del­ cir­-

cui­to­cuan­do­sea­re­que­ri­do.­Por­úl­ti­mo,­exis­te­un­cir­-

cui­to­con­un­nom­bre­cu­rio­so,­si­el­ lec­tor­sa­be­al­go

de­in­glés­ha­brá­tra­du­ci­do­el­nom­bre­li­te­ral­men­te­co­-

mo­“pe­rro­guar­dián”.­Su­fun­ción­es­es­tar­vi­gi­lan­te­el

má­xi­mo­ tiem­po­ que­ tar­da­ el­ mi­cro­pro­ce­sa­dor­ en

com­ple­tar­su­pro­gra­ma­(o­me­jor­se­ría­de­cir,­la­de­ri­-

va­ción­más­lar­ga­de­su­pro­gra­ma)­y­en­ca­so­de­su­pe­-

rar­se­ese­tiem­po,­pro­vo­car­un­re­set­au­to­má­ti­co­por­-

que­el­mi­cro­pro­ce­sa­dor­se­que­dó­tra­ba­do­en­al­gu­na

par­te­de­su­pro­gra­ma.­Tam­bién­se­di­ce­que­el­mi­cro­-

CAPItUlO 1 - Arquitectura de un PIC

Figura 4

7

Page 10: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

pro­ce­sa­dor­se­que­dó­col­ga­do­o­con­ge­la­do.­Es­te­blo­-

que­de­cir­cui­tos­no­tra­ba­ja­in­de­pen­dien­te­men­te­si­-

no­que­re­quie­re­co­ne­xio­nes­al­ex­te­rior­y­al­in­te­rior­

del­dis­po­si­ti­vo.­Por­ejem­plo,­no­siem­pre­son­uti­-

li­za­dos­y­es­el­pro­gra­ma­quien­de­ter­mi­na­su­uti­li­za­-

ción­y­ade­más­ajus­ta­sus­pa­rá­me­tros.­Es­to­se­rea­li­-

za­a­tra­vés­del­blo­que­de­con­trol­o­de­co­di­fi­ca­dor­de

ins­truc­cio­nes.

Ana­li­ce­mos­ aho­ra­ la­ sec­ción­ de­ arri­ba­ a­ la­ iz­-

quier­da­en­don­de­ob­ser­va­mos­la­me­mo­ria­de­pro­gra­-

ma,­el­con­ta­dor­de­pro­gra­ma,­el­re­gis­tro­de­ins­truc­-

cio­nes­y­la­pi­la­o­STACK­de­8­ni­ve­les.

Cuan­do­ ha­bla­mos­ de­ re­gis­tros­ nos­ re­fe­ri­mos­ a

pe­que­ñas­ uni­da­des­ de­ me­mo­ria­ tran­si­to­ria,­ cons­-

trui­da­ por­ lo­ ge­ne­ral­ con­ un­ re­gis­tro­ de­ des­pla­za­-

mien­to.­Son­me­mo­rias­vo­lá­ti­les­que­se­uti­li­zan­pa­ra

guar­dar­in­for­ma­ción­por­un­tiem­po­mí­ni­mo­con­el­fin

de­rea­li­zar­una­ope­ra­ción­com­ple­ja­de­va­rios­pa­sos.

El­ con­ta­dor­ de­ pro­gra­ma­ es­ el­ res­pon­sa­ble­ de

que­el­mi­cro­pro­ce­sa­dor­va­ya­ana­li­zan­do­las­ins­truc­-

cio­nes­en­or­den­as­cen­den­te.­El­guar­da­el­nú­me­ro­de

ins­truc­ción­en­el­STACK­y­la­ins­truc­ción­mis­ma­le­pa­-

sa­re­gis­tro­de­ins­truc­cio­nes,­des­de­don­de­se­en­vía

al­res­to­del­mi­cro­pro­ce­sa­dor.

El­STACK­es,­en­rea­li­dad,­una­pi­la­de­re­gis­tros­(en

nues­tro­ ejem­plo­ hay­ 8)­ de­bi­do­ a­ que­ el­ pro­gra­ma

pue­de­te­ner­de­ri­va­cio­nes­(en­la­jer­ga­LOOPS,­ru­los­o

sub­pro­gra­mas).­

Cuan­do­se­ter­mi­na­de­eje­cu­tar­un­ loop­se­de­be

vol­ver­al­mis­mo­pun­to­del­pro­gra­ma­en­don­de­se­ha­-

bía­pro­du­ci­do­la­bi­fur­ca­ción­y­eso­es­po­si­ble­por­que

ese­nú­me­ro­de­ ins­truc­ción­que­dó­guar­da­do­en­uno

de­los­re­gis­tros­de­la­pi­la.­

Es­co­mún­que­un­loop­ten­ga,­a­su­vez,­un­loop­se­-

cun­da­rio­ y­ cuan­do­ se­ eje­cu­ta­ ese­ loop­ se­cun­da­rio

se­de­be­vol­ver­al­mis­mo­pun­to­del­loop­pri­ma­rio,­eso

se­con­si­gue­guar­dan­do­ese­nú­me­ro­­de­ins­truc­ción

del­loop­se­cun­da­rio­en­otro­re­gis­tro­de­la­pi­la.­

Ana­li­ce­mos­aho­ra­la­sec­ción­in­fe­rior­de­re­cha.­En

ese­ sec­tor­ se­ ubi­can­ los­ blo­ques­ res­pon­sa­bles­ de

efec­tuar­ ope­ra­cio­nes­ ma­te­má­ti­cas­ y­ ló­gi­cas­ bi­na­-

rias;­ re­cor­de­mos­ que­ el­ nom­bre­ ALU­ pro­vie­ne­ de

Arit­me­tic­Lo­gic­Uni­te­(uni­dad­ari­mé­ti­ca­y­ló­gi­ca).­En

es­te­sec­tor­es­im­pres­cin­di­ble­uti­li­zar­un­re­gis­tro­ya

que­ una­ ope­ra­ción­ arit­mé­ti­ca­ o­ ló­gi­ca­ siem­pre­ se

efec­túa­ en­tre­ dos­ nú­me­ros.­ Los­ nú­me­ros­ bi­na­rios

que­de­ben­pro­ce­sar­se­ se­ to­man­de­ la­me­mo­ria­de

da­tos,­el­pri­me­ro­se­acu­mu­la­en­el­re­gis­tro­de­tra­ba­-

jo­o­re­gis­tro­W­(de­Work­=­tra­ba­jo)­el­se­gun­do­es­el

pre­sen­te­en­el­ins­tan­te­en­que­se­in­vo­ca­la­me­mo­ria

de­da­tos.

Co­mo­las­ope­ra­cio­nes­pue­den­ser­en­ca­de­na­das

(cuan­do­el­ re­sul­ta­do­sir­ve­co­mo­ope­ran­do­de­ la­si­-

guien­te­ope­ra­ción,­tal­co­mo­el­ca­so­de­un­pro­duc­to)

el­re­gis­tro­W­tie­ne­un­re­tor­no­a­la­ALU.

Ve­mos­ade­más­que­ la­ALU­es­tá­co­man­da­da­por

el­blo­que­MUX­(MUl­ti­ple­Xa­dor).­En­efec­to,­la­ALU­re­-

quie­re­que­se­le­en­víen­nú­me­ros­pa­ra­pro­ce­sar­que

le­lle­guen­des­de­la­me­mo­ria­de­da­tos­pe­ro­an­tes­se

la­de­be­pre­dis­po­ner­pa­ra­que­efec­túe­ la­ope­ra­ción

re­que­ri­da­(com­pa­ra­ción,­ro­ta­ción­de­dí­gi­tos,­etc.).

El­re­gis­tro­de­es­ta­do­o­es­ta­tus­co­la­bo­ra­du­ran­te

las­ope­ra­cio­nes­ma­te­má­ti­cas.­

Pien­se­ có­mo­ope­ra­Ud.­ pa­ra­ rea­li­zar­ una­ res­ta:

pri­me­ro­ubi­ca­el­pri­mer­nú­me­ro,­lue­go­el­se­gun­do­y

des­pués­co­mien­za­a­ana­li­zar­los­bits­me­nos­sig­ni­fi­-

ca­ti­vos­(las­uni­da­des),­pe­ro­si­el­nú­me­ro­de­arri­ba­es

me­nor­que­el­nú­me­ro­de­aba­jo,­en­ton­ces­to­ma­pres­-

ta­do­de­ la­co­lum­na­de­ las­de­ce­nas,­ lue­go­de­be­ re­-

cor­dar­es­to­por­que­el­nú­me­ro­de­arri­ba­en­la­co­lum­-

na­de­las­de­ce­nas­se­re­du­jo­en­una­uni­dad.­

En­ rea­li­dad,­ aun­que­ se­ tra­te­ de­ una­ ope­ra­ción

en­tre­dos­nú­me­ros­su­eje­cu­ción­re­quie­re­guar­dar­lo

que­se­ lla­ma­aca­rreo­en­otro­ re­gis­tro­y­és­te­no­es

otra­co­sa­más­que­el­ re­gis­tro­STA­TUS.­En­re­su­men,

las­ ca­rac­te­rís­ti­cas­ so­bre­sa­lien­tes­ de­ los­ PICs­ son

las­si­guien­tes:

De­no­mi­na­ción:­PIC1XXXX.

Lon­gi­tud­de­pa­la­bra:­14­bits.

Me­mo­ria:­ EE­PROM.­ Des­de­ 512by­tes­ de­ ROM­ y

32by­tes­de­RAM­a­4kB­de­ROM­y­256by­tes­de­RAM.

In­ter­fa­ce­I/O:­13­pa­tas­se­lec­cio­na­bles­de­en­tra­-

da­/sa­li­da­en­los­mo­de­los­es­tán­dar.

Ar­qui­tec­tu­ra:­Von­Neu­mann­ (Ins­truc­cio­nes­ y­da­-

tos­jun­tos).­La­ma­yo­ría­de­las­ins­truc­cio­nes­se­eje­cu­-

tan­en­un­ci­clo.­Pe­ro­po­see­un­set­de­só­lo­35­ins­truc­-

cio­nes­de­ti­po­RISC­(Re­du­ced­Ins­truc­tion­Set­Com­pu­-

ter).

Ali­men­ta­ción:­4­a­6V.

En­cap­su­la­do:­ Múl­ti­ples­ ver­sio­nes,­ lo­ nor­mal­ es

DIP­de­18­pa­tas.

Fá­cil­ de­ pro­gra­mar,­ fá­cil­ de­ car­gar,­ ex­tre­ma­da­-

men­te­con­fia­ble,­eco­nó­mi­co.­Se­en­cuen­tra­gran­can­-

ti­dad­de­soft­wa­re­y­hard­wa­re­sin­car­go.

Ideal­ pa­ra­Apli­ca­cio­nes­en­ ser­vi­cio­ de­equi­pos,

di­se­ños­ y­ ­ cons­truc­ción­ de­ "cir­cui­tos­ in­te­gra­dos­ a

me­di­da".

La­ me­mo­ria­ de­ pro­gra­ma­ con­tie­ne­ pa­la­bras­ de

1kB,­lo­que­per­mi­te­la­for­ma­ción­de­1024­ins­truc­cio­-

nes,­ya­que­ca­da­pa­la­bra­del­pro­gra­ma­po­see­el­mis­-

mo­an­cho­que­ca­da­ins­truc­ción.­La­me­mo­ria­de­da­-

tos­RAM­con­tie­ne­68­by­tes.­La­me­mo­ria­de­da­tos­EE­-

PROM­con­tie­ne­64­by­tes.

Ade­más­exis­ten­13­pa­tas­de­I/O­que­se­pue­den

con­fi­gu­rar­pa­ra­el­usua­rio­en­for­ma­in­di­vi­dual.­Al­gu­-

nas­pa­tas­son­mul­ti­ple­xa­das­con­otras­fun­cio­nes­del

dis­po­si­ti­vo­ (tal­ co­mo­ vi­mos­ an­te­rior­men­te).­ Es­tas

fun­cio­nes­in­clu­yen:

Microcontroladores PIC

8

Page 11: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

• In­te­rrup­cio­nes­ex­ter­nas.• Cam­bios­en­la­in­te­rrup­ción­de­PORTB.• En­tra­da­de­clock­Ti­mer0.

La­ta­bla­1­mues­tra­las­fun­cio­nes­de­las­pa­tas­del

dis­po­si­ti­vo­con­las­des­crip­cio­nes­y­de­ta­lles­de­ca­da

una.

lO qUe debe sAber sObre lOs PICs

El­PIC16X84,­al­igual­que­los­de­más­miem­bros­de

su­fa­mi­lia,­se­ca­rac­te­ri­zan­por­que:

a)­El­Pro­ce­sa­dor­es­seg­men­ta­do­ti­po­"pi­pe-li­ne":

Lo­que­sig­ni­fi­ca­que­apli­ca­la­téc­ni­ca­de­seg­men­ta­-

ción­que­per­mi­te­al­pro­ce­sa­dor­rea­li­zar­si­mul­tá­nea­-

men­te­la­eje­cu­ción­de­una­ins­truc­ción­y­la­bús­que­da

del­có­di­go­de­la­si­guien­te­ins­truc­ción.­Es­to­per­mi­te

que­se­pue­da­eje­cu­tar­una­ ins­truc­ción­en­un­ci­clo.

(Ca­da­ci­clo­de­ins­truc­ción­son­cua­tro­ci­clos­de­re­loj).­

Es­de­cir,­la­ma­yo­ría­de­las­ins­truc­cio­nes­se­rea­li­-

zan­en­un­ ci­clo­ de­ con­ta­dor­ de­pro­gra­ma­ (ci­clo­ de

ins­truc­ción)­ex­cep­to­ las­ ins­truc­cio­nes­de­sal­to­que

ne­ce­si­tan­dos­ci­clos­pa­ra­eje­cu­tar­la.

Se­ de­ter­mi­na­ el­ ci­clo­ de­ ins­truc­ción­ di­vi­dien­do

por­cua­tro­la­fre­cuen­cia­del­os­ci­la­dor,­ele­gi­da­pa­ra

el­fun­cio­na­mien­to­del­mi­cro­con­tro­la­dor­tal­co­mo­se

ob­ser­va­en­la­fi­gu­ra­5.

Es­de­cir,­ la­se­ñal­que­pro­vie­ne­del­os­ci­la­dor­ex­-

ter­no,­ co­nec­ta­do­ a­ los­ pi­nes­ OSC1/CL­KIN­ y

OSC2/CL­KOUT­ del­ mi­cro­con­tro­la­dor,­ se­ di­vi­de­ en

cua­tro­ ci­clos,­ ob­te­nién­do­se­ así­ la­ se­ñal­ re­que­ri­da

por­el­pro­ce­sa­dor­in­ter­no­pa­ra­rea­li­zar­las­ope­ra­cio­-

nes.­De­es­ta­ma­ne­ra­se­pue­de­rea­li­zar­la­bús­que­da

y­eje­cu­ción­de­la­ins­truc­ción.­

El­re­loj­de­ins­truc­ción­es­el­ci­clo­in­ter­no­que­po­-

see­el­mi­cro­con­tro­la­dor­pa­ra­cro­no­me­trar­el­tiem­po

de­eje­cu­ción­de­las­ins­tru­cio­nes.­

Los­pul­sos­en­tran­tes­del­ re­loj­son­di­vi­di­dos­por

4,­ ge­ne­ran­do­ di­fe­ren­tes­ se­ña­les­ de­no­mi­na­das­ Q1,

Q2,­Q3­y­Q4.­El­es­ta­do­Q1­ha­ce­in­cre­men­tar­el­con­ta­-

dor­de­pro­gra­ma,­Q2­y­Q3,­se­en­car­gan­de­la­de­co­di­-

fi­ca­ción­y­eje­cu­ción­de­ la­ ins­truc­ción­y­por­úl­ti­mo,

Q4­es­la­fa­se­de­bús­que­da­de­la­ins­truc­ción.­El­có­di­-

go­se­al­ma­ce­na­en­el­re­gis­tro­de­ins­truc­cio­nes.

b)­ El­ pro­ce­sa­dor­ es­ de­ ti­po­RISC: Es­to­ im­pli­ca

que­el­µP­pue­de­ope­rar­con­un­jue­go­de­ins­truc­cio­-

nes­mí­ni­mo­(35­ins­truc­cio­nes).­Las­CPU´s­aten­dien­-

do­al­ti­po­de­ins­truc­cio­nes­que­uti­li­zan­pue­den­cla­si­-

fi­car­se­en:

• CISC:­ (Com­plex­ Ins­truc­tion­Set­Com­pu­ter).­Pro­-ce­sa­do­res­de­jue­go­de­ins­truc­cio­nes­com­ple­jo,­quedis­po­nen­ de­ un­ ele­va­do­ nú­me­ro­ de­ ins­truc­cio­nes(unas­80),­al­gu­nas­de­ellas­com­ple­jas­y­po­ten­tes,­pe­-ro­que­re­quie­ren­mu­chos­ci­clos­de­má­qui­na­pa­ra­eje­-cu­tar­las­ins­truc­cio­nes­más­po­de­ro­sas.­

• RISC:­(Re­du­ced­Ins­truc­tion­Set­Com­pu­ter).­Con­-tro­la­do­res­ que­ma­ne­jan­ un­ jue­go­ de­ ins­truc­cio­nesre­du­ci­do,­en­los­que­la­can­ti­dad­de­ins­truc­cio­nes­esmí­ni­ma­(en­nues­tro­ca­so­35).­Las­ins­truc­cio­nes­sonmuy­sim­ples­y­sue­len­eje­cu­tar­se­en­un­ci­clo­má­qui­-na.­Ade­más­los­RISC­de­ben­te­ner­una­es­truc­tu­ra­pi­-pe­li­ne­(vea­nue­va­men­te­la­fi­gu­ra­1)­y­eje­cu­tan­to­daslas­ins­truc­cio­nes­a­la­mis­ma­ve­lo­ci­dad.­

• SISC:­ (Spe­ci­fic­ Ins­tric­tion­Set­Com­pu­ter).­Com­-pu­ta­do­ras­que­ma­ne­jan­un­set­de­ins­truc­cio­nes­es­-pe­cí­fi­co.­

CAPItUlO 1 - Arquitectura de un PIC

9

Tabla 1

Page 12: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Microcontroladores PIC

10

Figura 5

Figura 6

Page 13: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

c)­Po­seen­una­ar­qui­tec­tu­ra

ti­po­Har­vard: Pa­ra­ la­ cons­truc­-

ción­ de­ mi­cro­pro­ce­sa­do­res

exis­ten­ bá­si­ca­men­te­ dos­ ti­pos

de­ar­qui­tec­tu­ras,­una­en­la­que

los­da­tos­y­la­me­mo­ria­del­pro­-

gra­ma­ po­seen­ la­ mis­ma­ di­rec­-

ción­ (de­no­mi­na­da­ Von­ Neu­-

mann)­y­otra­en­la­que­exis­te­un

BUS­de­ co­mu­ni­ca­ción­ in­de­pen­-

dien­te­ pa­ra­ la­ me­mo­ria­ de­ da­-

tos­ y­ la­ me­mo­ria­ de­ pro­gra­ma­ (ar­qui­tec­tu­ra­ Har­-

vard).

La­ma­yo­ría­de­los­mi­cro­pro­ce­sa­do­res­tra­di­cio­na­-

les­se­ba­san­en­la­es­truc­tu­ra­ti­po­Von­Neu­mann­(fi­-

gu­ra­6),­que­se­ca­rac­te­ri­za­por­dis­po­ner­de­una­úni­-

ca­me­mo­ria­prin­ci­pal­en­la­que­se­al­ma­ce­nan­los­da­-

tos­y­las­ins­truc­cio­nes,­te­nien­do­en­cuen­ta­que­exis­-

te­un­sis­te­ma­de­BUS­de­ac­ce­so­for­ma­do­por:

• Bus­de­da­tos­

• Bus­de­di­rec­cio­nes­

• Bus­de­con­trol­

El­mo­de­lo­Har­vard,­ re­pre­sen­ta­do­en­ la­ fi­gu­ra­7,

dis­po­ne­de­dos­me­mo­rias:

• Me­mo­ria­de­da­tos­

• Me­mo­ria­de­Pro­gra­ma­

En­los­pro­ce­sa­do­res­ba­sa­dos­en­es­ta­ar­qui­tec­tu­-

ra­ ca­da­ me­mo­ria­ dis­po­ne­ de­ su­ res­pec­ti­vo­ bus,­ lo

que­per­mi­te,­que­la­CPU­pue­da­ac­ce­der­de­for­ma­in­-

de­pen­dien­te­y­si­mul­tá­nea­a­la­me­mo­ria­de­da­tos­y­a

la­de­pro­gra­ma­(ins­truc­cio­nes).­Co­mo­los­bu­ses­son

in­de­pen­dien­tes­és­tos­pue­den­te­ner­dis­tin­tos­con­te­-

ni­dos­en­la­mis­ma­di­rec­ción­.

d)­Son­de­ar­qui­tec­tu­ra­or­to­go­nal­ba­sa­da­en­ban­-

co­de­re­gis­tros: Es­to­sig­ni­fi­ca­que­cual­quier­ins­truc­-

ción­pue­de­uti­li­zar­ cual­quier­ele­men­to­de­ la­ar­qui­-

tec­tu­ra­ co­mo­ fuen­te­ o­ des­ti­no.

Ade­más­ to­dos­ los­ ele­men­tos­ del

sis­te­ma­ (tem­po­ri­za­do­res,­ puer­tos

de­ en­tra­da­/sa­li­da,­ po­si­cio­nes­ de

me­mo­ria,­etc.),­es­tán­im­ple­men­ta­-

dos­ fí­si­ca­men­te­ co­mo­ re­gis­tros

(de­ahí­el­nom­bre­“ban­co­de­re­gis­-

tros”).­ Al­ te­ner­ ma­ne­jo­ de­ ban­co

de­ re­gis­tros,­ la­ ALU­ (Uni­dad­ Arit­-

mé­ti­co-Ló­gi­ca)­efec­túa­sus­ope­ra­-

cio­nes­ con­ dos­ ope­ran­dos,­ uno

que­pro­vie­ne­del­re­gis­tro­W­(Work­-

que­en­otras­CPUs­ re­ci­be­el­nom­-

bre­de­Acu­mu­la­dor-),­y­el­otro­que

se­en­cuen­tra­en­cual­quier­otro­re­-

gis­tro­del­µP.­En­la­fi­gu­ra­8­ve­mos

el­dia­gra­ma­que­in­di­ca­có­mo­se­eje­cu­ta­una­ins­truc­-

ción,­la­ALU­re­ci­be­da­tos­del­re­gis­tro­de­tra­ba­jo­y­un

re­gis­tro­MPX­y­el­re­sul­ta­do­pue­de­ir­a­cual­quier­re­-

gis­tro­o­al­re­gis­tro­W.

El­PIC­16X54/84­po­see­ca­rac­te­rís­ti­cas­im­por­tan­-

tes­que­lo­ha­ce­útil­pa­ra­el­di­se­ño­de­cir­cui­tos­ge­ne­-

ra­les.­En­tre­las­ca­rac­te­rís­ti­cas­más­im­por­tan­tes­po­-

de­mos­re­sal­tar­las­si­guien­tes:

• Me­mo­ria­de­pro­gra­ma­EE­PROM­de­1Kx14­bits­• Me­mo­ria­de­da­tos­di­vi­di­da­en­2­áreas:­

Área­RAM­for­ma­da­por­22­re­gis­tros­de­pro­-pó­si­to­ es­pe­cí­fi­co­ (SFR)­ y­ 36­ de­ pro­pó­si­to­ ge­ne­ral(GPR).­

Área­EE­PROM­for­ma­da­por­64­by­tes.­• ALU­de­8­bits­y­re­gis­tro­de­tra­ba­jo­W­del­que­nor­-

mal­men­te­ re­ci­be­ un­ ope­ran­do­ que­ pue­de­ ser­ cual­-quier­re­gis­tro,­me­mo­ria,­puer­to­de­En­tra­da­/Sa­li­da­oel­pro­pio­có­di­go­de­ins­truc­ción.­

• Va­rios­ca­na­les­pa­ra­co­nec­tar­al­bus­de­da­tos:Por­tA­ de­ 5­ bits­ <RA­0:RA4>­ ,­ PortB­ de­ 8­ bits<RB0:RB7>,­Tem­po­ri­za­dor­con­Prees­ca­ler­TMR0,­etc.­

• Con­ta­dor­de­pro­gra­ma­de­13­bits­(lo­que­en­teo­-ría­per­mi­ti­ría­di­rec­cio­nar­4kB­de­me­mo­ria,­aun­que­el16X84­só­lo­dis­po­ne­de­1kB­de­me­mo­ria­im­ple­men­ta­-da).­

• Pi­la­de­8­ni­ve­les.­La­ar­qui­tec­tu­ra­del­PIC16X84­se­man­tie­ne­pa­ra

CAPItUlO 1 - Arquitectura de un PIC

11

Figura 7

Figura 8

Page 14: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

to­dos­los­mi­cro­con­tro­la­do­res­de­es­ta­sub­fa­mi­lia,­di­-

fe­ren­cián­do­se­unos­de­otros­por­ las­si­guien­tes­ca­-

rac­te­rís­ti­cas:

• PIC­16F84:­ La­me­mo­ria­de­pro­gra­ma­es­de­ lk,las­pa­la­bras­son­de­l4­bits,­pe­ro­de­ti­po­Flash.­La­me­-mo­ria­de­da­tos­RAM­tie­ne­68­re­gis­tros­de­ta­ma­ño­by­-te­de­pro­pó­si­to­ge­ne­ral,­en­lu­gar­de­36.­

• PIC16CR84: La­me­mo­ria­de­pro­gra­ma­es­de­1kcon­pa­la­bras­de­14­bits­ti­po­ROM­y­la­de­da­tos­tie­neigua­les­ca­rac­te­rís­ti­cas­que­el­PIC16F84.­

• PIC16F83:­La­me­mo­ria­de­pro­gra­ma­es­de­512

pa­la­bras­de­14­bits­y­la­RAM­de­da­-tos­ tie­ne­ 36­ by­tes­ de­ re­gis­tros­ depro­pó­si­to­ge­ne­ral.­

• PIC16CR83: Es­ igual­ que­ elPIC16F83,­ pe­ro­ la­me­mo­ria­ de­ ins­-truc­cio­nes­ es­ de­ ti­po­ ROM,­ o­ sea,só­lo­ gra­ba­ble­ du­ran­te­ el­ pro­ce­sode­ fa­bri­ca­ción­ pa­ra­ ser­ uti­li­za­doscon­fi­nes­es­pe­cí­fi­cos­(cir­cui­to­in­te­-gra­do­a­me­di­da).

La­ca­rac­te­rís­ti­ca­más­im­por­tan­-

te­del­PIC16C84­es­que­su­me­mo­ria

de­pro­gra­ma­es­del­ti­po­EE­PROM­y

en­el­ca­so­del­PIC16F84­la­prin­ci­pal

ca­rac­te­rís­ti­ca­es­que­su­me­mo­ria­es­del­ti­po­flash,

por­lo­de­más,­otros­dis­po­si­ti­vos­de­es­ta­fa­mi­lia­dis­-

po­nen­de­más­me­mo­ria,­tie­nen­más­pe­ri­fé­ri­cos,­etc.

Los­mi­cro­con­tro­la­do­res­de­la­ga­ma­me­dia­dis­po­-

nen­ de­ un­ Con­ta­dor­ de­ Pro­gra­ma­ (PC­ ó­ CP)­ de­ 13

bits,­cu­yos­bits­de­me­nor­pe­so­co­rres­pon­den­a­los­8

bits­del­ re­gis­tro­PCL,­ im­ple­men­ta­do­en­ la­po­si­ción

de­ me­mo­ria­ RAM­ 02h­ (y­ du­pli­ca­do­ en­ la­ po­si­ción

82h),y­ los­ cin­co­ bits­ de­ma­yor­ pe­so­ del­ CP­ co­rres­-

pon­den­ con­ los­ 5­ bits­ de­ me­nor­ pe­so­ del­ re­gis­tro

PCLATCH,­im­ple­men­ta­do­en­la­po­si­ción­de­me­mo­ria

RAM­0Ah­(y­du­pli­ca­do­en­la­po­si­ción­8Ah),­lo­que­le

per­mi­te­ di­rec­cio­nar­ has­ta­ 8k­ x­ 14­ bits­ di­vi­di­do­ en

pá­gi­nas­de­2k­x­14­bits.­­El­PIC16C84­dis­po­ne­de­1k

x14­bits­de­me­mo­ria­ im­ple­men­ta­da,­des­de­ la­po­si­-

ción­0000h­has­ta­la­03FFh,­los­3­bit­de­ma­yor­pe­so

del­CP­no­se­uti­li­zan,­así­pues­la­di­rec­ción­20h,­320h,

420h,­A20h,1420h,­etc.­se­con­si­de­ra­co­mo­la­mis­ma

(fi­gu­ra­9).

Un­Re­set­pro­vo­ca­que­se­pon­gan­a­ce­ro­to­dos­los

bits­ de­ los­ re­gis­tros­ PCL­ (par­te­ ba­ja­ del­ PC)­ y

PCLATCH,­for­zan­do­que­la­di­rec­ción­de­ini­cio­sea­la

0000h.­ El­ vec­tor­de­ re­set­ se­al­ma­ce­na­en­ la­di­rec­-

ción­0000h,­mien­tras­que­el­ vec­tor­de­ in­te­rrup­ción

es­tá­en­la­di­rec­ción­0004h­(fi­gu­ra­10).­

La­me­mo­ria­de­pro­gra­ma­de­usua­rio­pro­pia­men­-

te­di­cha,­co­mien­za­en­la­po­si­ción­0005h­y­lle­ga­has­-

ta­la­03FFh.

La­pi­la­es­una­zo­na­de­me­mo­ria,­que­se­en­cuen­-

tra­se­pa­ra­da­tan­to­de­la­me­mo­ria­de­pro­gra­ma­co­mo

de­ la­ de­ da­tos.­ Tie­ne­ una­ es­truc­tu­ra­ LI­FO­ (Last­ In

First­Out),­lo­que­sig­ni­fi­ca­que­el­úl­ti­mo­da­to­que­se

guar­da­es­el­pri­me­ro­que­sa­le.­ Tie­ne­8­ni­ve­les­con

una­lon­gi­tud­de­13­bits­ca­da­uno.­Su­fun­cio­na­mien­-

to­es­co­mo­el­de­un­buf­fer­cir­cu­lar,­de­tal­for­ma­que

el­ va­lor­que­se­ob­tie­ne­al­ rea­li­zar­nue­ve­des­pla­za­-

mien­tos,­es­igual­al­pri­mer­des­pla­za­mien­to.­La­úni­ca

ma­ne­ra­de­car­gar­ la­Pi­la­es­a­ tra­vés­de­ la­ ins­truc­-

ción­CALL­(lla­ma­da­a­su­bru­ti­na)­o­por­una­in­te­rrup­-

ción­que­ha­cen­que­con­ca­da­una­de­ellas,­se­car­gue

el­con­te­ni­do­del­PC­en­el­ va­lor­su­pe­rior­de­ la­Pi­la.

Microcontroladores PIC

12

Figura 10

Figura 9

Page 15: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Pa­ra­re­cu­pe­rar­el­con­te­ni­do­de­la­Pi­la­en­la­PC­hay

que­eje­cu­tar­una­ins­truc­ción­RE­TURN,­RETLW­o­RET­-

FIE­(vuel­ta­del­pro­gra­ma­de­aten­ción­a­una­su­bru­ti­-

na­o­in­te­rrup­ción).

PA lA brAs de COn FI gU rA -CIOn e Iden tI FI CA CIOn

Los­PIC­de­la­ga­ma­me­dia­dis­po­nen­de­una­pa­la­-

bra­de­con­fi­gu­ra­ción­de­14­bits­que­se­es­cri­be­du­-

ran­te­el­pro­ce­so­de­gra­ba­ción­del­dis­po­si­ti­vo­y­que

de­be­ha­cer­se­de­acuer­do­con­el­sis­te­ma­en­el­que­se

va­a­in­ser­tar.­Di­chos­bits­ocu­pan­la­po­si­ción­re­ser­va­-

da­de­me­mo­ria­de­pro­gra­ma­2007h.­La­es­truc­tu­ra­de

la­pa­la­bra­de­con­fi­gu­ra­ción­es­la­mos­tra­da­en­la­fi­-

gu­ra­11.

Bit­4:­CP,­bit­de­con­fi­gu­ra­ción­de­la­pro­tec­ción­

1=­Pro­tec­ción­de­có­di­go­de­sac­ti­va­do

0=­Pro­tec­ción­de­có­di­go­ac­ti­va­do­

Bit­ 3:­ PWR­TE, ac­ti­va­ción­ del­ tem­po­ri­za­dor­ "Po­-

wer-Up"

1=­De­sac­ti­va­do

0=­Ac­ti­va­do

Bit­2:­WD­TE, bit­de­con­fi­gu­ra­ción­ha­bi­li­ta­ción­del

Watch­dog­(WDT)

1:­WDT­ac­ti­va­do

0:­WDT­de­sac­ti­va­do

Bit­ 1­ y­ Bit­ 0:­ FOSC<1:0>,­ ti­po­ de­ os­ci­la­dor­ em­-

plea­do

11:­Os­ci­la­dor­RC

10:­Os­ci­la­dor­HS­(­8­-­20MHz)

01:­Os­ci­la­dor­XT­(­100­KHz-­4MHz)

00:­Os­ci­la­dor­LP­(Ba­jo­con­su­mo­32-­200Hz)­

Ade­más­dis­po­ne­de­cua­tro­po­si­cio­nes­de­me­mo­-

ria­ de­ pro­gra­ma­ ubi­ca­das­ en­ las­ di­rec­cio­nes

<2000h:2003h>,­ re­ser­va­das­ pa­ra­ las­ Pa­la­bras­ de

Iden­ti­fi­ca­ción­ID.­Es­tas­pa­la­bras­que­se­es­cri­ben­du­-

ran­te­el­ pro­ce­so­de­gra­ba­ción,­ só­lo­ em­plean­ los­4

bits­de­me­nos­pe­so­y­se­uti­li­zan­por­el­pro­gra­ma­dor

pa­ra­in­di­car­el­có­di­go­del­dis­po­si­ti­vo,­el­nú­me­ro­de

se­rie,­la­ver­sión­del­pro­gra­ma,­etc.

Or gA nI zA CIOn de lA Me MO rIA

En­el­PIC­16F84A­exis­ten­dos­blo­ques­de­me­mo­-

ria.­Es­tos­son­la­me­mo­ria­del­pro­gra­ma­y­la­me­mo­ria

de­da­tos.­Ca­da­blo­que­po­see­su­pro­pio­bus,­de­ tal

for­ma­que­el­ ac­ce­so­a­ ca­da­uno­pue­de­pro­du­cir­se

du­ran­te­el­mis­mo­ci­clo­del­os­ci­la­dor.

La­me­mo­ria­de­da­tos­pue­de­di­vi­dir­se­más­aún­en

la­RAM­de­fi­nes­ge­ne­ra­les­y­los­Re­gis­tros­de­Fun­cio­-

nes­Es­pe­cia­les­(SFR).­

El­área­de­la­me­mo­ria­de­da­tos­con­tie­ne­tam­bién

los­da­tos­de­la­me­mo­ria­EE­PROM.­Es­ta­me­mo­ria­no

es­tá­di­rec­ta­men­te­in­tro­du­ci­da­en­la­me­mo­ria­de­da­-

tos,­si­no­es­re­gis­tra­da­en­for­ma­in­di­rec­ta.­Es­to­sig­-

ni­fi­ca­que­un­pun­te­ro­in­di­rec­to­de­di­rec­cio­nes­es­pe­-

ci­fi­ca­la­di­rec­ción­de­la­me­mo­ria­de­da­tos­EE­PROM

pa­ra­es­cri­bir­y­ leer.­Los­64­by­tes­de­la­me­mo­ria­de

da­tos­EE­PROM­po­seen­el­ran­go­de­di­rec­cio­nes­de­0h

a­3Fh.­Más­de­ta­lles­so­bre­la­me­mo­ria­EE­PROM­ve­re­-

mos­en­otro­apar­ta­do.

Or­ga­ni­za­ción­de­la­Me­mo­ria­de­Pro­gra­mas.El­PIC16FXX­po­see­un­con­ta­dor­de­pro­gra­mas­de

13­bits­ca­paz­de­di­rec­cio­nar­un­es­pa­cio­de­me­mo­ria

de­pro­gra­mas­de­8k­x­14.­Pa­ra­el­Pic­16F84A,­los­pri­-

me­ros­1k­x­14­(0000h-03FFh)­es­tán­fí­si­ca­men­te­im­-

ple­men­ta­dos­co­mo­vi­mos­en­ la­fi­gu­ra­10.­Tal­co­mo

se­mues­tra,­el­ac­ce­so­a­una­lo­ca­ción­por­en­ci­ma­de

la­di­rec­ción­fí­si­ca­men­te­im­ple­men­ta­da,­cau­sa­rá­un

ple­ga­do.­ Por­ ejem­plo,­ las­ lo­ca­cio­nes­ 20h,­ 420h,

820h,­C20h,­1020h,1420h,­1820h­y­1C20h­ten­drán­la

mis­ma­ins­truc­ción.

El­vec­tor­de­re­set­es­tá­en­000h­y­el­vec­tor­de­in­-

te­rrupt­en­0004h.

No­ta:­ Co­mo­ pue­de­ ob­ser­var,­ es­ta­mos­ “re­pi­tien­-

do”­al­gu­nos­con­cep­tos;­es­to­lo­ha­ce­mos­por­que­tra­-

ta­mos­de­ver­un­te­ma­des­de­dis­tin­tos­pun­tos­de­vis­-

ta­con­el­ob­je­to­de­fa­ci­li­tar­el­apren­di­za­je­del­lec­tor.

Or­ga­ni­za­ción­de­la­Me­mo­ria­de­Da­tos.La­ me­mo­ria­ de­ da­tos­ es­tá­ re­par­ti­da­ en­ dos

áreas.­El­pri­me­ro­es­el­área­de­Re­gis­tros­de­Fun­cio­-

nes­Es­pe­cia­les­(SFR),­mien­tras­que­el­se­gun­do­es­el

Re­gis­tro­ de­ Fi­nes­ Ge­ne­ra­les­ (GPR).­ Los­ re­gis­tros

CAPItUlO 1 - Arquitectura de un PIC

13

Figura 11

Page 16: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

SFR­ con­tro­lan­ el­ fun­cio­na­mien­to­ del­ dis­po­si­ti­vo.

Par­tes­de­la­me­mo­ria­de­da­tos­es­tán­co­lo­ca­dos­en

ban­cos.­Es­to­es­vá­li­do­tan­to­pa­ra­el­área­de­SFR­co­-

mo­pa­ra­el­área­GPR.­El­área­de­GPR­es­api­la­do­pa­ra

per­mi­tir­más­que­116­by­tes­de­RAM­de­uso­ge­ne­ral.

Los­áreas­de­api­la­dos­del­SFR­se­des­ti­nan­a­los­re­-

gis­tros­ que­ con­tro­lan­ las­ fun­cio­nes­ pe­ri­fé­ri­cas.­ El

api­la­do­re­quie­re­el­uso­de­bits­de­con­trol­pa­ra­la­se­-

lec­ción­de­ban­cos.­Es­tos­bits­de­con­trol­se­en­cuen­-

tran­en­el­re­gis­tro­de­STA­TUS.­La­fi­gu­ra­12­mues­tra­la

or­ga­ni­za­ción­del­ma­pa­de­da­tos­de­la­me­mo­ria.

Las­ ins­truc­cio­nes­MOVWF­y­MOVF­per­mi­ten­mo­-

ver­va­lo­res­del­re­gis­tro­W­has­ta­cual­quier­ lo­ca­ción

en­el­ar­chi­vo­de­re­gis­tros­(“F”)­y­vi­ce­ver­sa.

Se­pue­de­ac­ce­der­a­la­me­mo­ria­de­da­tos­en­te­ra

en­for­ma­di­rec­ta­usan­do­la­di­rec­ción­ab­so­lu­ta­de­ca­-

da­re­gis­tro­o­en­for­ma­in­di­rec­ta­me­dian­te­el­Re­gis­-

tro­ de­ Se­lec­ción­ de­ Ar­chi­vos­ (FSR).­ El­ di­rec­cio­na­-

mien­to­ in­di­rec­to­usa­el­bit­RP0­pa­ra­ac­ce­der­a­ las

áreas­api­la­das­de­la­me­mo­ria­de­da­tos.

La­me­mo­ria­de­da­tos­es­tá­di­vi­di­da­ ­en­dos­ban­-

cos­que­con­tie­nen­los­re­gis­tros­de­uso­ge­ne­ral­y­los

re­gis­tros­de­fun­cio­nes­es­pe­cia­les.­El­Ban­co­0­es­se­-

lec­cio­na­do­ eli­mi­nan­do­ el­ bit­ RP0­ (STA­TUS<5>).­ El

ajus­te­del­bit­RP0­se­lec­cio­na­el­Ban­co­1.­Ca­da­Ban­-

co­se­ex­tien­de­has­ta­7Fh­(128­by­tes).­Las­pri­me­ras

do­ce­ lo­ca­cio­nes­ de­ ca­da­ Ban­co­ es­tán­ re­ser­va­das

pa­ra­los­Re­gis­tros­de­Fun­cio­nes­Es­pe­cia­les­(SFR).­El

res­to­son­Re­gis­tros­de­Uso­ge­ne­ral­im­ple­men­ta­dos

co­mo­RAM.

lOs re gIs trOs del PIC

Ar­chi­vo­de­Re­gis­tro­de­Uso­Ge­ne­ral.Ca­da­Re­gis­tro­de­Uso­ge­ne­ral­(GPR)­tie­ne­un­an­-

cho­de­8­bits­y­se­ac­ce­de­en­for­ma­di­rec­ta­o­in­di­rec­-

ta­me­dian­te­el­FSR,­co­mo­se­ex­pli­ca­más­ade­lan­te.

Las­di­rec­cio­nes­GPR­en­el­ban­co­1­es­tán­co­nec­-

ta­dos­con­di­rec­cio­nes­en­el­Ban­co­0.­Co­mo­ejem­plo,

la­di­rec­ción­de­la­lo­ca­ción­0Ch­o­8Ch,­lla­ma­rá­el­mis­-

mo­GPR.

Re­gis­tros­de­Fun­cio­nes­Es­pe­cia­les­(SFR).Los­Re­gis­tros­de­Fun­cio­nes­es­pe­cia­les­de­ la­Fi­-

gu­ra­13­son­usa­dos­por­la­CPU­y­las­fun­cio­nes­Pe­ri­-

fé­ri­cas­pa­ra­con­tro­lar­el­fun­cio­na­mien­to­del­dis­po­si­-

ti­vo.­Es­tos­re­gis­tros­son­RAM­Es­tá­ti­cos­(si­bien­man­-

te­ne­mos­la­fi­gu­ra­en­in­glés­pa­ra­pre­ser­var­el­for­ma­-

to­ da­do­ por­ los­ ma­nua­les­ de­ Mi­cro­chip,­ tam­bién

brin­da­mos­la­ver­sión­en­cas­te­lla­no).­

Los­ Re­gis­tros­ de­ Fun­cio­nes­ Es­pe­cia­les­ pue­den

cla­si­fi­car­se­en­dos­gru­pos:­

a)­nú­cleo­y­b)­pe­ri­fé­ri­co.­

Aque­llos­aso­cia­dos­con­las­fun­cio­nes­del­nú­cleo

se­des­cri­ben­en­es­ta­Sec­ción.­Los­re­la­cio­na­dos­con

el­fun­cio­na­mien­to­de­las­ca­rac­te­rís­ti­cas­pe­ri­fé­ri­cas

se­des­cri­ben­en­la­Sec­ción­res­pec­ti­va.

Le­yen­das­de­la­fi­gu­ra­13­A­y­B:

x­=­des­co­no­ci­do,­

u­=­sin­cam­bio,­

-­=­sin­im­ple­men­tar,­leer­co­mo­ce­ro

q­=­va­lor­de­pen­de­de­las­con­di­cio­nes.

No­ta:

1.­El­by­te­su­pe­rior­del­con­ta­dor­de­pro­gra­ma­no

es­ di­rec­ta­men­te­ ac­ce­si­ble.­ PCLATH­ es­ un­ re­gis­tro

es­cla­vo­pa­ra­PC<12:8>.­El­con­te­ni­do­de­PCLATH­pue­-

de­ser­ trans­fe­ri­do­al­by­te­su­pe­rior­del­con­ta­dor­de

Microcontroladores PIC

14

Figura 12

Page 17: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

pro­gra­ma,­ pe­ro­ el­ con­te­ni­do­ de­ PC<12:8>­ no­ es

trans­fe­ri­do­nun­ca­a­PCLATH.

2.­Los­bits­de­Sta­tus­TO­y­PD­del­re­gis­tro­de­STA­-

TUS­no­son­afec­ta­dos­por­­el­re­set­de­MCLR.

3.­Otros­ re­sets­que­no­son­PO­WER­UP­ in­clu­yen:

re­set­ex­ter­no­por­MCLR­y­el­re­set­del­tem­po­ri­za­dor

de­watch­dog.

4.­En­to­dos­los­re­sets­del­dis­po­si­ti­vo,­es­tas­pa­tas

son­con­fi­gu­ra­das­co­mo­en­tra­das.

5.­Es­te­es­el­va­lor­que­se­en­con­tra­rá­en­el­latch

de­la­sa­li­da­del­port.

Re­gis­tro­de­Sta­tusEl­re­gis­tro­del­STA­TUS­con­tie­ne­el­sta­tus­arit­mé­-

ti­co­de­la­ALU,­el­sta­tus­de­re­set­y­el­bit­se­lec­tor­de

ban­cos­pa­ra­la­me­mo­ria­de­da­tos.

Co­mo­en­to­do­re­gis­tro,­el­re­gis­tro­de­STA­TUS­pue­-

de­ser­el­des­ti­no­de­cual­quier­ ins­truc­ción.­Si­el­ re­-

gis­tro­ de­ STA­TUS­ es­ el­ des­ti­no­ de­ una­ ins­truc­ción

que­afec­ta­los­bits­Z,­DC­o­C,­en­ton­ces­la­es­cri­tu­ra

de­ es­tos­ tres­ bits­ es­ de­sac­ti­va­do.­ Es­tos­ bits­ son

ajus­ta­dos­o­anu­la­dos­en­con­cor­dan­cia­con­la­ló­gi­ca

del­dis­po­si­ti­vo.­Ade­más,­ los­bits­TO’­y­PD’­ (la­no­ta­-

ción­TO’­sig­ni­fi­ca­que­el­bit­es­tá­ac­ti­vo­con­“1”­o­lo

que­es­lo­mis­mo:­TO’­=­ne­ga­do­de­TO)­no­pue­den­ser

es­cri­tos.­ Por­ lo­ tan­to,­ el­ re­sul­ta­do­ de­ una­ ins­truc­-

ción­con­el­re­gis­tro­de­STA­TUS­co­mo­des­ti­no,­pue­de

ser­di­fe­ren­te­al­pre­vis­to.

Por­ejem­plo,­CLRF­STA­TUS­anu­la­rá­los­tres­bits­su­pe­-

rio­res­y­ajus­ta­rá­el­bit­Z.­Es­to­de­ja­rá­el­re­gis­tro­de­STA­-

TUS­co­mo­000u­u1uu­(don­de­u­que­da­sin­cam­bio).

Só­lo­las­ins­truc­cio­nes­BCF,­BSF,­SWAPF­y­MOVWF

de­ben­ser­usa­dos­pa­ra­al­te­rar­el­re­gis­tro­STA­TUS,­co­-

mo­ ve­re­mos­en­el­ ca­pí­tu­lo­ de­di­ca­do­al­ Set­ de­ Ins­-

truc­cio­nes,­ de­bi­do­ a­ que­ es­tas­ ins­truc­cio­nes­ no

afec­tan­nin­gún­bit­de­sta­tus.

CAPItUlO 1 - Arquitectura de un PIC

15

Figura 13A

Page 18: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Microcontroladores PIC

16

Figura 13B

Page 19: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

No­tas:

1.­Los­bits­IRP­y­RP1­(STA­TUS<:6>)­no­se­usan­en

el­PIC­16F84A­y­de­ben­ser­pro­gra­ma­dos­co­mo­anu­-

la­dos.­El­uso­de­es­tos­bits­co­mo­bits­R/W­de­uso

ge­ne­ral,­no­es­re­co­men­da­do,­de­bi­do­a­que­pue­de

afec­tar­ la­ com­pa­ti­bi­li­dad­pa­ra­arri­ba­ con­pro­duc­-

tos­fu­tu­ros.

2.­ Los­ bits­ C­ y­ DC­ fun­cio­nan­ co­mo­ bits­ de­ BO­-

RROW’­(BO­RROW’­es­el­ne­ga­do­de­BO­RROW),­en­ope­-

ra­cio­nes­de­res­ta.­Ver­ejem­plos­en­las­ins­truc­cio­nes

de­SUBLW­y­SUBWF­del­ca­pí­tu­lo­de­Set­de­Ins­truc­cio­-

nes.

3.­Cuan­do­el­re­gis­tro­de­STA­TUS­es­el­des­ti­no­pa­-

ra­una­ins­truc­ción­que­afec­ta­los­bits­Z,­DC­o­C,­en­-

ton­ces­se­ im­pi­de­ la­es­cri­tu­ra­de­es­tos­ tres­bits.­El

bit­es­pe­cí­fi­co­se­rá­ac­tua­li­za­do­en­con­cor­dan­cia­con

la­ló­gi­ca­del­dis­po­si­ti­vo.

En­ la­ Fi­gu­ra­14­ ve­mos­as­pec­tos­del­ re­gis­tro­de

STA­TUS.­

Vea­mos­qué­sig­ni­fi­ca­do­y­qué­va­lor­pue­de­te­ner

ca­da­bit­del­re­gis­tro­STA­TUS:

Bit­7,­IRP: Bit­de­Se­lec­ción­de­Ban­co­de­Re­gis­tro,

usa­do­pa­ra­di­rec­cio­na­mien­to­in­di­rec­to.­El­bit­IRP­no

es­usa­do­por­el­PIC­16F84A.­Man­ten­ga­IRP­de­sac­ti­va­-

do.

Bit­6-5,­RP1:RP0:­Bits­de­Se­lec­ción­de­Ban­co­de

Re­gis­tro,­usa­do­pa­ra­di­rec­cio­na­mien­to­di­rec­to.­

00­=­Ban­co­0­(00h­–­7Fh)

01­=­Ban­co­1­(80h­–­FFh)

Ca­da­ Ban­co­ po­see­ 128­ by­tes.­ En­ el­ PIC­-

16F84A­se­usa­so­lo­RP0.­Man­ten­ga.

RP1­se­man­ten­drá­de­sac­ti­va­do.

Bit­4,­TO’: Bit­de­Ti­me­out­(fin­de­tiem­po).­

1­=­Des­pués­de­En­cen­di­do,­ins­truc­ción­CLR-

WDT,­o­ins­truc­ción­SLEEP­(to­ma­el­es­ta­do­“1”).

0­=­Cuan­do­es­tá­en­ “0”­es­por­que­su­ce­dió

un­Ti­me­out­WDT­(pe­rro­guar­dián).

Bit­3,­PD: Bit­de­Po­wer­Down.

1­ =­ Des­pués­ de­ Po­wer­ up­ o­ por­ la­ ins­truc­ción

CLRWDT.

0­=­Al­eje­cu­tar­la­ins­truc­ción­SLEEP.

Bit­2,­Z: Bit­ce­ro.

1­=­El­re­sul­ta­do­de­una­ope­ra­ción­arit­mé­ti­ca­o

ló­gi­ca­es­ce­ro.

0­=­El­re­sul­ta­do­de­una­ope­ra­ción­arit­mé­ti­ca­o

ló­gi­ca­no­es­ce­ro.

Bit­1,­DC:­Bit­de­lle­var­o­pres­tar­en­las­ins­truc­cio­-

nes­ADDWF­y­ADDLW.­Pa­ra­pres­tar­la­po­la­ri­dad­es­in­-

ver­ti­da.­

1­=­Cuan­do­ocu­rre­un­ex­ce­so­en­el­re­sul­ta­do

del­4º­bit­de­me­nos­pe­so.­Aca­rreo­en­la­su­ma.

0­=­Cuan­do­no­ocu­rre­un­ex­ce­so­en­el­re­sul­ta­-

do­del­4º­bit­de­me­nos­pe­so.­No­hay­aca­rreo­en­la­su­-

ma­(en­la­res­ta­es­lo­con­tra­rio).

Bit­0,­C: Bit­de­carry­/bo­rrow­(lle­var­/pres­tar)­pa­ra

las­ins­truc­cio­nes­ADDWF­y­ADDLW.

1­=­Cuan­do­ocu­rre­un­ex­ce­so­en­el­re­sul­ta­do

del­bit­más­sig­ni­fi­ca­ti­vo.­Aca­rreo­en­la­su­ma­y­no­en

la­res­ta.

0­=­Cuan­do­no­ocu­rre­un­ex­ce­so­en­el­re­sul­-

ta­do­del­bit­más­sig­ni­fi­ca­ti­vo.­Aca­rreo­en­la­res­ta­y

no­en­la­su­ma.

No­ta:­Pa­ra­BO­RROW­(pres­tar­­dí­gi­tos)­se­in­vier­te

la­po­la­ri­dad.­Una­res­ta­se­eje­cu­ta­al­su­mar­el­com­-

ple­men­to­ de­ dos­ del­ se­gun­do­ ope­ran­do.­ Pa­ra­ ins­-

truc­cio­nes­de­ro­ta­ción­(RRF,­RLF),­es­te­bit­es­car­ga­-

do­con­el­bit­de­or­den­su­pe­rior­o­in­fe­rior­del­re­gis­tro

de­fuen­te.

Re­cuer­de­que:

_______­­­­­­­­­­­­­­­___­­­­­­­­­­­­­­­­­­___

BO­RROW’­=­BO­RROW­­­­­­­­­­­­­­­­­­­­TO’­=­TO PD’­=­PD

CAPItUlO 1 - Arquitectura de un PIC

17

Figura 14

Page 20: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Re­gis­tro­OP­TION­_REG.­Ocu­pa­la­po­si­ción­la­81h­del­ban­co­de­re­gis­tro­1.

Es­ re­co­men­da­ble­ dar­le­ otro­ nom­bre­ por­ ejem­plo

"OP­TION"­en­el­pro­gra­ma­en­sam­bla­dor,­­pa­ra­que­el

pro­gra­ma­en­sam­bla­dor­no­­dé­men­sa­jes­de­error,­ya

que­en­los­PIC­de­la­ga­ma­ba­ja­exis­te­la­ins­truc­ción

OP­TION.

El­re­gis­tro­OP­TION­_REG­(o­sim­ple­men­te­re­gis­tro

OP­TION)­es­un­re­gis­tro­pa­ra­es­cri­bir­y­leer,­que­con­-

tie­ne­va­rios­bits­de­con­trol­pa­ra­con­fi­gu­rar­el­pres­-

ca­ler­TMR0/WDT,­el­in­te­rrupt­INT­ex­ter­no,­el­TMR0­y

el­pull-up­dé­bil­de­PORTB.

No­ta:­

Cuan­do­el­pres­ca­ler­es­asig­na­do­a­WDT­(PSA­=­1),

TMR0­tie­ne­una­asig­na­ción­de­pres­ca­la­dor­de­1:1.

En­la­fi­gu­ra­15­ve­mos­el­Re­gis­tro­de­OP­TION­_REG

(di­rec­ción­81h).

bit­7,­RP­BU’: Re­sis­ten­cia­Pull-up,­Puer­to­B,­ha­bi­-

li­ta­el­bit

1:­De­sac­ti­va­das

0:­Ac­ti­va­das

bit­6,­IN­TEDG: Flan­co­ac­ti­vo­pa­ra­el­con­trol­de­in­-

te­rrup­cio­nes

1:­Con­flan­co­As­cen­den­te

0:­Con­flan­co­Des­cen­den­te

bit­5,­TOCS: Fuen­te­de­Re­loj­pa­ra­TMR0

1:­ Pul­sos­ in­tro­du­ci­dos­ a­ tra­vés­ de

RA4/T0CK1­(Con­ta­dor)

0:­Pul­sos­de­ re­loj­ in­ter­no­Fosc/4­ (Tem­po­ri­-

za­dor)

bit­4,­TO­SE: Ti­po­de­flan­co­en­TOCK1

1:­In­cre­men­to­de­TMR0­ca­da­flan­co­des­cen­-

den­te

0:­ In­cre­men­to­de­ TMR0­ca­da­ flan­co­as­cen­-

den­te

bit­3,­PSA: Bit­de­asig­na­ción­del­pres­ca­ler­di­vi­sor

de­fre­cuen­cia

1:­El­di­vi­sor­de­fre­cuen­cia­se­asig­na­al­WDT

0:­El­di­vi­sor­de­fre­cuen­cia­se­asig­na­al­TMR0

bit­2-0,­PS2:P­SO: Ran­go­con­el­que­ac­túa­el­di­vi­-

sor­de­ fre­cuen­cia,­és­te­pro­ce­de­de­acuer­do­con­ la

ta­bla­2.

El­Re­gis­tro­INT­CONEl­re­gis­tro­INT­CON­es­un­re­gis­tro­de­lec­tu­ra­y­es­-

cri­tu­ra­ que­ con­tie­ne­ los­ di­fe­ren­tes­ bits­ de­ ac­ti­va­-

ción­de­to­das­las­fuen­tes­de­in­te­rrup­ción.­Sus­de­ta­-

lles­se­en­cuen­tran­en­la­fi­gu­ra­16.­

Las­si­glas­de­es­ta­fi­gu­ra­sig­ni­fi­can­lo­si­guien­te:­

Microcontroladores PIC

18

Tabla 2

Figura 15

Figura 16

Page 21: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

R­=­Bit­Le­gi­ble

W­=­Bit­Es­cri­bi­ble

U­=­Bit­sin­im­ple­men­tar,­leer­co­mo­ce­ro

-­X­=­va­lor­en­re­set­POR.

Ca­da­bit­po­see­el­sig­ni­fi­ca­do­y­to­ma­el­va­lor­que

des­cri­bi­mos­a­con­ti­nua­ción:

Bit­7,­GIE: Bit­Glo­bal­In­te­rrupt­Ena­ble.

1­=­Ac­ti­va­to­dos­los­In­te­rrupt­sin­más­ca­ra.

0­=­De­sac­ti­va­to­dos­los­In­te­rrupt.

Bit­6,­EIIE: Bit­ EE­Wri­te­Com­ple­te­ In­te­rrupt­Ena­-

ble.

1­=­Ac­ti­va­el­­EE­Wri­te­Com­ple­te­In­te­rrupt.

0­ =­ De­sac­ti­va­ el­ EE­ Wri­te­ Com­ple­te­ In­te­-

rrupt.

Bit­5,­T0IE:­Bit­de­TMR0­Over­flow­In­te­rrupt­Ena­ble.

1­=­Ac­ti­va­el­TMR0­In­te­rrupt.

0­=­De­sac­ti­va­el­TMR0­In­te­rrupt.

Bit­4,­IN­TE: Bit­de­In­te­rrupt­Ena­ble­RB0/INT.

1­=­Ac­ti­va­el­In­te­rrupt­RB0/INT.

0­=­De­sac­ti­va­el­In­te­rrupt­RB0/INT.

Bit­3,­RBIE: Bit­de­RB­Port­Chan­ge­In­te­rrupt­Ena­-

ble.

1­=­Ac­ti­va­el­RB­Port­Chan­ge­In­te­rrupt.

0­=­De­sac­ti­va­el­RB­Port­Chan­ge­In­te­rrupt.

Bit­2,­T0IF: Bit­de­TMR0­Over­flow­In­te­rrupt­Flag.

1­=­TMR0­tie­ne­ex­ce­so­y­de­be­ser­lim­pia­do

en­soft­wa­re.

0­=­TMR0­no­tie­ne­ex­ce­so.

Bit­1,­INTF: Bit­de­RB0/INT­In­te­rrupt­Flag.­

1­=­Ocu­rrió­un­RB0/INT­In­te­rrupt.

0­=­No­ocu­rrió­un­RB0/INT­In­te­rrupt.

Bit­0,­RBIF:­Bit­de­RB­Port­Chan­ge­In­te­rrupt­Flag.

1­=­Cuan­do­por­lo­me­nos­una­de­las­pa­tas­de

RB7­a­RB4­cam­bió­(de­be­ser­lim­pia­do­en­soft­wa­re).­

0­=­­Nin­gu­na­de­las­pa­tas­RB7:RB4­cam­bió.

PCL­y­PCLATHEl­con­ta­dor­de­pro­gra­mas­(PC­de­“pro­gram­coun­-

ter”,­tam­bién­de­no­mi­na­do­CP­en­es­te­tex­to)­es­pe­ci­-

fi­ca­ la­di­rec­ción­de­ la­ ins­truc­ción­a­bus­car­pa­ra­ la

eje­cu­ción.­

El­an­cho­del­PC­es­de­13­bits.­El­by­te­ba­jo­se­de­-

no­mi­na­Re­gis­tro­PCL.­Es­te­Re­gis­tro­es­le­gi­ble­y­es­-

cri­bi­ble.­El­by­te­al­to­se­de­no­mi­na­Re­gis­tro­PCH.­Es­te

Re­gis­tro­ con­tie­ne­ PC<12:8>­ bits­ y­ no­ es­ le­gi­ble­ ni

es­cri­bi­ble­en­for­ma­di­rec­ta.­To­das­ las­ac­tua­li­za­cio­-

nes­del­Re­gis­tro­PCH­se­ca­na­li­zan­a­ tra­vés­del­Re­-

gis­tro­PCLATH.

STACK­(PI­LA)La­pi­la­per­mi­te­que­ocu­rra­una­com­bi­na­ción­de

has­ta­8­lla­ma­das­de­pro­gra­ma­e­in­te­rrup­cio­nes.­La

pi­la­con­tie­ne­la­di­rec­ción­de­re­tor­no­de­es­ta­ra­ma­de

la­eje­cu­ción­de­pro­gra­mas.

Los­dis­po­si­ti­vos­de­ran­go­me­dio­po­seen­una­pi­la

de­hard­wa­re­de­una­pro­fun­di­dad­de­8­ni­ve­les­por­13

bits­de­an­cho.­El­es­pa­cio­de­ la­pi­la­no­es­par­te­de

nin­gún­pro­gra­ma­ni­de­es­pa­cio­de­da­tos­y­el­pun­te­ro

de­la­pi­la­no­es­le­gi­ble­ni­es­cri­bi­ble.­El­con­ta­dor­PC

(ó­CP)­es­co­lo­ca­do­a­la­pi­la­vía­PUSH­cuan­do­una­ins­-

truc­ción­CALL­es­eje­cu­ta­da­o­cuan­do­una­or­den­de

in­te­rrupt­pro­du­ce­una­ ra­mi­fi­ca­ción.­La­pi­la­eje­cu­ta

la­ or­den­ POP­ cuan­do­ se­ eje­cu­tan­ las­ ór­de­nes­ RE­-

TURN,­RETLW­o­RET­FIE.­PCLATH­no­se­mo­di­fi­ca­cuan­-

do­la­pi­la­eje­cu­ta­PUSH­o­POP.

Des­pués­de­eje­cu­tar­ocho­ve­ces­la­or­den­PUSH,

la­no­ve­na­so­bres­cri­be­el­va­lor­que­fue­ra­al­ma­ce­na­-

do­del­pri­mer­PUSH.­El­dé­ci­mo­PUSH­so­bres­cri­be­el

se­gun­do­PUSH­y­así­su­ce­si­va­men­te.

RE­GIS­TROS­INDF­y­FSREl­re­gis­tro­INDF­no­es­un­re­gis­tro­fí­si­co.­Di­ri­gir­se

a­INDF­en­rea­li­dad­pro­du­ce­la­di­rec­ción­del­re­gis­tro

que­ es­tá­ con­te­ni­do­ en­ el­ re­gis­tro­ FSR.­ FSR­ es­ un

pun­te­ro.­ Es­to­ se­ de­no­mi­na­ Di­rec­cio­na­mien­to­ In­di­-

rec­to.

EJEM­PLOS:1:­Di­rec­cio­na­mien­to­In­di­rec­to.

• El­ar­chi­vo­de­re­gis­tro­05­con­tie­ne­el­va­lor­10h.

• El­ar­chi­vo­de­re­gis­tro­06­con­tie­ne­el­va­lor­0Ah.

• Car­gue­el­va­lor­05­al­re­gis­tro­FSR.

• La­lec­tu­ra­del­re­gis­tro­INDF­de­vuel­ve­el­va­lor­de

10h.

• In­cre­men­te­ el­ va­lor­ del­ re­gis­tro­ INDF­ por­ uno

(FSR­=­06).

• La­ lec­tu­ra­del­ re­gis­tro­ INDF­de­vuel­ve­aho­ra­el

va­lor­de­0Ah.

La­ lec­tu­ra­ in­di­rec­ta­ de­ INDF­ mis­mo­ (FSR­ =­ 0),

pro­du­ci­rá­00h.­

Es­cri­bir­al­re­gis­tro­in­di­rec­ta­men­te­re­sul­ta­en­una

no-ope­ra­ción,­si­bien­el­bit­de­STA­TUS­pue­de­que­dar

afec­ta­do.

Un­pro­gra­ma­sim­ple­pa­ra­de­sac­ti­var­las­lo­ca­cio­-

nes­ 20h-2Fh­ del­ RAM,­ usan­do­ el­ di­rec­cio­na­mien­to

in­di­rec­to,­pue­de­ver­se­en­el­si­guien­te­ejem­plo:­vea

la­tabla­3.

Una­di­rec­ción­efec­ti­va­de­9­bits­se­ob­tie­ne­por­la

con­ca­te­na­ción­del­re­gis­tro­FSR­de­ocho­bits­con­el

bit­IRP­(STA­TUS<7>),­co­mo­ve­mos­en­la­fi­gu­ra­17.­

Sin­em­bar­go,­IRP­no­es­usa­do­en­el­PIC­16F84A.

CAPItUlO 1 - Arquitectura de un PIC

19

Page 22: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

POrts I/O

Al­gu­nas­pa­tas­de­ports­I/O­es­tán­mul­ti­ple­xa­das

con­ una­ fun­ción­ al­ter­na­ti­va­ pa­ra­ las­ pres­ta­cio­nes

pe­ri­fé­ri­cas­del­dis­po­si­ti­vo.­En­ge­ne­ral,­cuan­do­se­ac­-

ti­va­ un­ pe­ri­fé­ri­co,­ es­ta­ pa­ta­ no­ de­be­ usar­se­ co­mo

pa­ta­I/O­de­uso­ge­ne­ral.

Re­gis­tros­POR­TA­y­TRI­SAPOR­TA­es­un­puer­to­bi­di­rec­cio­nal­de­un­an­cho­de

5­bits.­El­re­gis­tro­de­di­rec­cio­nes­de­da­tos­co­rres­pon­-

dien­te­es­TRI­SA.­Ajus­tar­el­bit­de­TRI­SA­a­“1”,­ha­rá

de­la­pa­ta­co­rres­pon­dien­te­de­POR­TA­una­en­tra­da,­lo

que­sig­ni­fi­ca­que­el­dri­ver­de­sa­li­da­co­rres­pon­dien­-

te­ad­quie­re­un­mo­do­de­al­ta­im­pe­dan­cia.­De­sac­ti­var

un­bit­de­TRI­SA­(=­0)­con­vier­te­la­pa­ta­co­rres­pon­dien­-

te­de­POR­TA­en­sa­li­da,

lo­que­sig­ni­fi­ca­que­el

con­te­ni­do­del­ latch­de

sa­li­da­se­en­cuen­tra­en

la­pa­ta­se­lec­cio­na­da.

NO­TA: En­ un­ Re­set

de­Fuen­te­(PO­WER­RE­-

SET),­ es­tas­ pa­tas­ son

con­fi­gu­ra­das­co­mo­en­-

tra­das­ y­ leen­ co­mo

“0”.

En­ la­ lec­tu­ra,­el­ re­-

gis­tro­de­POR­TA­ lee­el

sta­tus­ de­ las­ pa­tas,

mien­tras­ que­ al­ es­cri­-

bir,­ se­ es­cri­be­ en­ el

latch­del­port.

Un­ latch­ o­ ce­rro­jo

es­un­cir­cui­to­que­per­-

mi­te­ re­te­ner­ da­tos­ en

una­po­si­ción­de­pre­pa­ra­ción­has­ta­que­sea­pe­di­do,

ge­ne­ral­men­te­por­me­dio­de­otro­cir­cui­to.­­­

To­das­ las­ope­ra­cio­nes­de­es­cri­tu­ra­son­del­ ti­po

de­ “lec­tu­ra-mo­di­fi­ca­ción-es­cri­tu­ra”.­ Es­to­ sig­ni­fi­ca

que­es­cri­bir­a­un­port­im­pli­ca­que­las­pa­tas­del­port

son­leí­das,­es­te­va­lor­es­mo­di­fi­ca­do,­y­des­pués­es­-

cri­to­al­latch­del­port.­

La­ pa­ta­ RA4­ es­ mul­ti­ple­xa­da­ con­ el­ tem­po­ri­za­-

dor,­“en­tra­da­Ti­mer0” de­la­en­tra­da­del­mó­du­lo­del

clock­y­se­trans­for­ma­en­la­pa­ta­RA4/T0C­KI.­Es­ta­pa­-

ta­RA4/T0C­KI­es­la­en­tra­da­de­un­dis­pa­ra­dor­Sch­mitt

y­po­see­una­sa­li­da­de­co­lec­tor­abier­to.­Las­de­más

pa­tas­ de­ port­ RA­ po­seen­ ni­ve­les­ de­ en­tra­da­ TTL­ y

son­dri­vers­com­ple­tos­del­ti­po­CMOS.­En­la­fi­gu­ra­18

ve­mos­el­dia­gra­ma­en­blo­ques­de­una­de­las­pa­tas

RA3­a­RA0.

Microcontroladores PIC

20

Figura 17

Tabla 3Movlw 0x22 ;­car­go­al­re­gis­tro­W­con­el­nú­me­ro­22­

;­en­he­xa­de­ci­mal

Movwf FSR ;­trans­fie­ro­el­con­te­ni­do­de­W­al­re­gis­tro­FSR

PROX Clrf INDF ;­bo­rro­el­con­te­ni­do­del­re­gis­tro­INDF

Incf FSR ;­in­cre­men­to­en­una­uni­dad­el­con­te­ni­do­

;­del­re­gis­tro­FSR

Btfss FSR,4 ;­que­el­CP­sal­te­una­uni­dad­si­el­bit­4­

;­del­FSR­es­“1”

Go­to PROX ;­si­el­bit­4­de­FSR­=­0,­en­ton­ces­vuel­va­

;­a­PROX­

Page 23: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Pa­ra­ini­cia­li­zar­el­POR­TA,­po­de­mos­rea­li­zar­la­si­guien­te­ru­ti­na:

CLRF­­­­­­­POR­TA­­­­­­­­­­­­ ;­bo­rro­el­con­te­ni­do­del­

;­re­gis­tro­POR­TA

BSF­­­­­­­­­STA­TUS,­RPO­­­ ;­po­ne­a­“1”­el­bit­RPO­del­

;­re­gis­tro­STA­TUS

MOVLW­­­­B’0000­1111’­­ ;­car­go­a­W­con­el­

;­nú­me­ro­0x0F­

MOVWF­­­­TRI­SA­­­­­­­­­­­­­;­se­lec­cio­no­a­las­pa­tas­RA3­a­RA0­

;­co­mo­sa­li­das­

;­y­la­pa­ta­RA4­co­mo­en­tra­da.

En­el­ejem­plo­del­pro­gra­ma,­las­dos­pri­me­ras­ins­-

truc­cio­nes­no­tie­nen­na­da­que­ver­con­la­de­fi­ni­ción

de­ las­pa­tas­del­puer­to­A,­en­ rea­li­dad­ la­ ini­cia­li­za­-

ción­co­mien­za­con­la­ter­ce­ra­ins­truc­ción­o­lí­nea­de

pro­gra­ma.­En­la­fi­gu­ra­19­se­ob­ser­va­el­dia­gra­ma­de

la­pa­ta­RA4.­

Una­ sín­te­sis

de­ la­ fun­ción

que­ cum­ple­ ca­-

da­ pa­ta­ del

PORT­ se­ mues­-

tra­en­la­ta­bla­4.

Re­gis­tros­PORTB­y­TRISBPORTB­es­un

port­ bi­di­rec­cio­-

nal­ con­ un­ an­-

cho­de­8­bits.­El

re­gis­tro­ de­ di­-

rec­cio­nes­de­da­-

CAPItUlO 1 - Arquitectura de un PIC

21

Figura 19Figura 18

Tabla 4

Page 24: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

tos­ co­rres­pon­dien­te­ es­ TRISB.­ Si­ se­ ajus­ta­ el­ bit

TRISB­=­1,­la­pa­ta­PORTB­co­rres­pon­dien­te­se­trans­-

for­ma­en­en­tra­da,­quie­re­de­cir­que­co­lo­ca­el­dri­ver

de­sa­li­da­co­rres­pon­dien­te­en­el­mo­do­de­al­ta­im­pe­-

dan­cia.­

Lim­piar­el­bit­TRISB­(=­0),­trans­for­ma­la­pa­ta­co­-

rres­pon­dien­te­de­PORTB­en­sa­li­da,­quie­re­de­cir­que

el­con­te­ni­do­del­latch­de­sa­li­da­apa­re­ce­en­la­pa­ta

se­lec­cio­na­da.­

Pa­ra­ini­cia­li­zar­el­PORTB­po­de­mos­eje­cu­tar­la­si­-

guien­te­sen­ten­cia:

MOVLW­­­B’0010­1111’­­­­­­­­­;­car­go­a­W­con­el­nú­me­ro­0x0F­

MOVWF­­TRISB­­­­­­­­­­­­­­­­­­­­­­;­se­lec­cio­no­las­pa­tas­RB0­a­

;­RB3­y­RB5­co­mo­sa­li­das,­

;­mien­tras­que­las­pa­tas­RB4,­RB6­y­RB7­

;­se­rán­en­tra­das.

Ca­da­una­de­las­pa­tas­de­PORTB­po­see­un­re­sis­-

tor­de­po­la­ri­za­ción­ in­ter­no.­Un­bit­de­con­trol­úni­co

pue­de­ac­ti­var­ to­dos­ los­ re­sis­to­res.­ Se­ rea­li­za­ es­to

lim­pian­do­el­bit­RB­PU­(OP­TION<7>).­

Es­te­ cir­cui­to­ es­ de­sac­ti­va­do­ au­to­má­ti­ca­men­te

cuan­do­la­pa­ta­del­port­es­con­fi­gu­ra­da­co­mo­sa­li­da.

Es­tos­cir­cui­tos­son­de­sac­ti­va­dos­en­un­re­set­de­en­-

cen­di­do.

Cua­tro­de­las­pa­tas­de­PORTB,­RB7:RB4,­po­seen

una­ca­rac­te­rís­ti­ca­de­ in­te­rrupt­al­cam­biar.­So­lo­ las

pa­tas­con­fi­gu­ra­das­co­mo­en­tra­das­pue­den­pro­du­cir

es­te­in­te­rrupt.­

Es­to­sig­ni­fi­ca­que­to­da­pa­ta­RB7­a­RB4­con­fi­gu­-

ra­da­ co­mo­ sa­li­da­ es­tá­ ex­clui­da­de­ la­ com­pa­ra­ción

de­in­te­rrupt­al­cam­biar.­Las­pa­tas­de­en­tra­da­de­RB7

a­RB4,­se­com­pa­ran­con­el­va­lor­an­te­rior­asen­ta­do

en­el­latch­de­la­úl­ti­ma­lec­tu­ra­de­PORTB.­Las­sa­li­das

de­de­se­qui­li­brio­de­RB7­a­RB4­son­com­bi­na­das­en

una­fun­ción­ló­gi­ca­OR­pa­ra­ge­ne­rar­el­cam­bio­del­RB

Port­con­el­bit­de­in­di­ca­ción­RBIF­(INT­CON<0>)­co­mo

flag.

Es­ta­in­te­rrup­ción­pue­de­des­per­tar­el­dis­po­si­ti­vo

de­SLEEP.­El­usua­rio­pue­de­lim­piar­el­in­te­rrupt­en­la

ru­ti­na­de­ser­vi­ce­en­la­si­guien­te­ma­ne­ra:

a)­To­da­lec­tu­ra­o­es­cri­tu­ra­de­PORTB.­Es­to­ter­mi­-na­con­la­con­di­ción­de­de­se­qui­li­brio.

b)­Lim­pie­el­bit­del­flag­RBIF.

Una­ con­di­ción­ de­ de­se­qui­li­brio­ ha­rá­ ­ ajus­tar­ el

bit­de­flag­RBIF.­

La­lec­tu­ra­de­PORTB­ter­mi­na­con­la­con­di­ción­de

de­se­qui­li­brio­ y­per­mi­te­ la­ lim­pie­za­del­bit­RBIF.­ La

pres­ta­ción­de­in­te­rrum­pir­al­cam­biar­es­re­co­men­da­-

da­pa­ra­ope­ra­cio­nes­de­des­per­tar­al­opri­mir­una­te­-

cla­y­pa­ra­ope­ra­cio­nes­don­de­PORTB­so­lo­es­usa­do

pa­ra­la­pres­ta­ción­de­in­te­rrupt­al­cam­biar.­No­se­re­-

co­mien­da­el­es­cru­ti­nio­(po­lling)­de­PORTB­mien­tras

se­usa­la­pres­ta­ción­de­in­te­rrupt­al­cam­bio.­

En­la­fi­gu­ra­20­se­pue­de­ob­ser­var­el­dia­gra­ma­en

blo­que­co­rres­pon­dien­te­al­sis­te­ma­de­pa­tas­RB4­a

RB7,­mien­tras­que­la­fi­gu­ra­21­mues­tra­lo­pro­pio­pa­-

ra­las­pa­tas­RB0­a­RB3.­

En­la­ta­bla­5­ve­mos­las­fun­cio­nes­de­PORTB.

Microcontroladores PIC

22

Figura 20 Figura 21

Page 25: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

MO dU lO teM PO rI zA dOr tI Mer0

El­ mó­du­lo­ tem­po­ri­za­dor­/con­ta­dor­ po­see­ las­ si­-

guien­tes­pres­ta­cio­nes:

• Tem­po­ri­za­dor­/con­ta­dor­de­8­bits.

• Le­gi­ble­y­es­cri­bi­ble.

• Se­lec­tor­de­clock­in­ter­no­o­ex­ter­no.

• Pres­ca­la­dor­de­8­bits­pro­gra­ma­ble­por­soft­wa­re.

• In­te­rrupt­por­ex­ce­so­de­FFh­a­00h.

En­ la­ fi­gu­ra­22­ ­ ve­mos­un­dia­gra­ma­en­blo­ques

sim­pli­fi­ca­do­del­tem­po­ri­za­dor.

El­ tem­po­ri­za­dor­ TI­MER0­ pue­de­ fun­cio­nar­ co­mo

tem­po­ri­za­dor­o­co­mo­con­ta­dor.

El­mo­do­de­tem­po­ri­za­dor­se­se­lec­cio­na­­lim­pian­-

do­el­bit­T0CS­(OP­TION­_REG<5>).­En­el­mo­do­de­tem­-

po­ri­za­dor,­ el­mó­du­lo­ Ti­mer0­ in­cre­men­ta­ ca­da­ ci­clo

de­ins­truc­cio­nes­sin­di­vi­sión­de­fre­cuen­cia.­Si­se­es­-

cri­be­en­el­re­gis­tro­TMR0,­el­in­cre­men­to­es­in­hi­bi­do

du­ran­te­ los­ si­guien­tes­ ci­clos­ de­ ins­truc­cio­nes.­ El

usua­rio­pue­de­evi­tar­eso­es­cri­bien­do­un­va­lor­ajus­-

ta­do­al­re­gis­tro­TMR0.

El­mo­do­de­con­ta­dor­se­se­lec­cio­na­al­ajus­tar­el

bit­T0CS­(OP­TION­_REG<5>).­

En­el­mo­do­de­con­ta­dor,­el­mó­du­lo­Ti­mer0­in­cre­-

men­ta­en­el­flan­co­as­cen­den­te­o­des­cen­den­te­de­la

pa­ta­RA4/T0C­KI.­El­flan­co­as­cen­den­te­es­de­ter­mi­na­-

do­por­el­bit­Ti­mer­Sour­ce­Ed­ge­Se­lect,­T0SE­(OP­TION­-

_REG<4>).­Lim­pian­do­el­bit­T0SE­se­lec­cio­na­el­bor­de

as­cen­den­te.

CAPItUlO 1 - Arquitectura de un PIC

23

Tabla 5

Figura 22

Page 26: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Cuan­do­se­usa­una­en­tra­da­de­clock­ex­ter­no­en

el­Ti­mer0,­se­de­ben­cum­plir­cier­tos­re­qui­si­tos­pa­ra

que­el­clock­ex­ter­no­pue­da­ser­sin­cro­ni­za­do­con­la

fa­se­del­clock­in­ter­no­(Tosc).­Ade­más­exis­te­un­re­tar­-

do­en­el­ in­cre­men­to­ real­del­ Ti­mer0­des­pués­de­ la

sin­cro­ni­za­ción.

Pres­ca­ler­(Di­vi­sor­de­Fre­cuen­cia)Se­dis­po­ne­de­un­con­ta­dor­de­8­bits­co­mo­pres­ca­-

ler­en­el­mó­du­lo­Ti­mer0,­o­co­mo­post­es­ca­la­dor­pa­ra

el­ tem­po­ri­za­dor­ Watch­dog,­ res­pec­ti­va­men­te.­ En­ la

fi­gu­ra­23­ve­mos­es­te­es­que­ma.­

Pa­ra­ ma­yor­ sim­pli­ci­dad,­ nos­ re­fe­ri­mos­ a­ es­te

con­ta­dor­ co­mo­ pres­ca­ler.­ Ob­ser­ve­ que­ só­lo­ exis­te

un­di­vi­sor­que­es­com­par­ti­do­mu­tua­men­te­en­for­ma

ex­clu­si­va­por­el­mó­du­lo­del­Tem­po­ri­za­dor­y­el­Tem­-

po­ri­za­dor­del­Watch­dog.­De­es­ta­ma­ne­ra,­una­asig­-

na­ción­del­pres­ca­ler­pa­ra­el­mó­du­lo­del­tem­po­ri­za­-

dor­sig­ni­fi­ca­que­no­hay­di­vi­sor­pa­ra­el­Tem­po­ri­za­dor

del­Watch­dog­y­vi­ce­ver­sa.­

El­pres­ca­ler­no­es­le­gi­ble­ni­es­cri­bi­ble.

Los­bits­PSA­y­PS2:PS0­(OP­TION­_REG<3:0>)­de­ter­-

mi­nan­la­asig­na­ción­y­la­ta­sa­de­la­di­vi­sión.­­Al­lim­-

piar­el­bit­PSA­se­asig­na­rá­el­pres­ca­ler­al­mó­du­lo­del

Ti­mer0.­Cuan­do­és­te­es­asig­na­do­al­mó­du­lo­Ti­mer0,

los­ va­lo­res­ de­ di­vi­sión­ son­ se­lec­cio­na­bles­ en­ 1:2,

1:4,.....­1:256.

El­ajus­te­del­bit­PSA­asig­na­rá­el­pres­ca­ler­al­Tem­-

po­ri­za­dor­ Watch­dog­ (WDT).­ Cuan­do­ el­ pres­ca­ler­ es

asig­na­do­a­WDT,­los­va­lo­res­de­di­vi­sión­son­se­lec­cio­-

na­bles­en­1:1,­1:2,­.....­1:128.

Cuan­do­ es­tá­ asig­na­do­ al­ mó­du­lo­ Ti­mer0,­ to­das

las­ ins­truc­cio­nes­ es­cri­tas­ al­ re­gis­tro­ TMR0,­ co­mo

por­ ejem­plo:­ CLRF­ 1,­ MOVWF­ 1,­ BSF­ 1,x­ ...y­ otros,

lim­pia­rán­ el­ pres­ca­ler.­ Cuan­do­ es­tá­ asig­na­do­ al

WDT,­una­ ins­truc­ción­CLRWDT­lim­pia­rá­el­pres­ca­ler

jun­to­con­WDT.

NO­TA:­Es­cri­bir­a­ TMR0­cuan­do­el­pres­ca­ler­es­tá

asig­na­do­a­Ti­mer0,­lim­pia­rá­el­con­teo­del­pres­ca­ler,

pe­ro­no­mo­di­fi­ca­rá­su­asig­na­ción.

Ca­be­acla­rar­que­la­asig­na­ción­del­pres­ca­ler­es­-

tá­com­ple­ta­men­te­ba­jo­el­con­trol­del­soft­wa­re­y­por

lo­ tan­to­ pue­de­ ser­ cam­bia­do­ du­ran­te­ la­ eje­cu­ción

del­pro­gra­ma.

NO­TA: Pa­ra­ evi­tar­ un­ RE­SET­ no­ in­ten­cio­nal­ del

dis­po­si­ti­vo,­es­ne­ce­sa­rio­eje­cu­tar­una­se­cuen­cia­de

ins­truc­cio­nes­es­pe­cí­fi­cas­cuan­do­se­cam­bia­la­asig­-

na­ción­del­pres­ca­ler­del­Ti­mer0­a­WDT.­Es­ta­se­cuen­-

cia­de­be­ser­se­gui­da­aún­cuan­do­WDT­es­tá­inac­ti­vo.

In­te­rrup­ción­de­Ti­mer0La­in­te­rrup­ción­de­TMR0­se­ge­ne­ra­cuan­do­el­re­-

gis­tro­TMR0­ex­ce­de­su­ca­pa­ci­dad­de­FFh­a­00h.­Es­te

ex­ce­so­ ajus­ta­ el­ bit­ T0IF­ (INT­CON<2>).­ La­ in­te­rrup­-

Microcontroladores PIC

24

Figura 23

Page 27: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

ción­ pue­de­ ser­ en­mas­ca­ra­da­ lim­pian­do­ el­ bit­ T0IE

(INT­CON<5>).­

El­bit­T0IF­se­lim­pia­por­soft­wa­re­por­la­ru­ti­na­de

ser­vi­ce­del­mó­du­lo­Ti­mer0,­an­tes­de­ reac­ti­var­es­ta

in­te­rrup­ción.­ La­ in­te­rrup­ción­ TMR0­ no­ pue­de­ “des­-

per­tar”­al­pro­ce­sa­dor­de­SLEEP,­de­bi­do­a­que­el­tem­-

po­ri­za­dor­es­tá­des­co­nec­ta­do­du­ran­te­SLEEP.

En­la­ta­bla­6­ve­mos­los­re­gis­tros­aso­cia­dos­con

el­Ti­mer.

Me MO rIA de dA tOs ee PrOMLa­me­mo­ria­de­da­tos­EE­PROM­se­pue­de­leer­y­es­-

cri­bir­du­ran­te­el­fun­cio­na­mien­to­nor­mal­del­µP,­pa­ra

el­ran­go­com­ple­to­de­Vdd.­Es­ta­me­mo­ria­no­es­tá­or­-

de­na­da­en­for­ma­de­ma­pa­di­rec­ta­men­te­en­el­es­pa­-

cio­de­los­ar­chi­vos­del­re­gis­tro­si­no­que­es­di­rec­cio­-

na­da­in­di­rec­ta­men­te­me­dian­te­los­Re­gis­tros­de­Fun­-

cio­nes­Es­pe­cia­les­(SFR).­Exis­ten­cua­tro­SFR­usa­dos

pa­ra­leer­y­es­cri­bir­en­es­ta­me­mo­ria.­Es­tos­re­gis­tros

son:

• EE­CON1

• EE­CON2­(es­te­re­gis­tro­no­es­tá­im­ple­men­ta­do­fí­-

si­ca­men­te)­

• EE­DA­TA

• EEADR

EE­DA­TA­con­tie­ne­ los­da­tos­de­8­bits­pa­ra­ leer­y

es­cri­bir,­y­EEADR­con­tie­ne­las­di­rec­cio­nes­de­las­lo­-

ca­cio­nes­del­EE­PROM­que­son­ac­ce­di­dos.­Los­dis­po­-

si­ti­vos­PIC­16F84A­po­seen­64­by­tes­de­da­tos­de­EE­-

PROM­con­un­ran­go­de­di­rec­cio­nes­que­abar­ca­de­0h

a­3Fh.

La­me­mo­ria­de­da­tos­EE­PROM­per­mi­te­leer­y­es­-

cri­bir­by­tes.­Una­es­cri­tu­ra­de­by­te­bo­rra­au­to­má­ti­ca­-

men­te­la­lo­ca­ción­y­es­cri­be­los­da­tos­nue­vos­(bo­rra

an­tes­de­es­cri­bir).­La­me­mo­ria­de­da­tos­EE­PROM­es­-

tá­pre­pa­ra­da­pa­ra­ci­clos­ele­va­dos­de­leer­y­es­cri­bir.

El­tiem­po­de­es­cri­bir­es­con­tro­la­do­por­un­tem­po­ri­-

za­dor­in­cor­po­ra­do­en­el­chip.­El­tiem­po­de­es­cri­tu­ra

pue­de­va­riar­con­la­ten­sión­y­tem­pe­ra­tu­ra­y­tam­bién

en­tre­una­uni­dad­y­otra.­Pa­ra­lí­mi­tes­exac­tos­sír­va­se

re­fe­rir­a­las­es­pe­ci­fi­ca­cio­nes­de­co­rrien­te­al­ter­na.

Cuan­do­el­dis­po­si­ti­vo­po­see­pro­tec­ción­co­di­fi­ca­-

da,­la­uni­dad­CPU­pue­de­con­ti­nuar­de­leer­y­es­cri­bir

los­da­tos­en­ la­me­mo­ria­del­EE­PROM.­El­pro­gra­ma­-

dor­del­dis­po­si­ti­vo­no­tie­ne­más­ac­ce­so­a­la­me­mo­-

ria.­­En­la­fi­gu­ra­24­ve­mos­el­­re­gis­tro­EE­CON1­en­su

di­rec­ción­88h.

Las­si­glas­de­es­ta­fi­gu­ra­tie­nen­el­si­guien­te­sig­-

ni­fi­ca­do:

R­=­Bit­Le­gi­ble W­=­Bit­Es­cri­bi­ble

S­=­Bit­Ajus­ta­bleU­ =­ Sin­ Im­ple­men­tar,­ lea

co­mo­ce­ro,­­

-n­=­Va­lor­de­acuer­do­al­Re­set­POR­(don­de­n

pue­de­ser­x,­o).

El­sig­ni­fi­ca­do­y­es­ta­do­de­los­bits­de­la­me­mo­ria

son­los­si­guien­tes:

Bits­7,­6­y­5:­ Sin­Im­ple­men­tar,­lea­co­mo­ce­ro.

Bit­4,­EEIF: Bit­in­di­ca­dor­de­EE­PROM­Wri­te­Ope­ra­-

tion­In­te­rrupt­(FLAG).­

1­=­La­ope­ra­ción­de­es­cri­tu­ra­es­tá­cum­pli­da,

de­be­ser­bo­rra­do­en­el­soft­wa­re.

0­=­La­ope­ra­ción­de­es­cri­bir­no­es­tá­cum­pli­da

o­no­em­pe­zó­aún.

Bit­3,­WRERR: Bit­in­di­ca­dor­de­Error­en­EE­PROM.

1­ =­ Una­ ope­ra­ción­ de­ es­cri­bir­ ter­mi­nó­ en

for­ma­pre­ma­tu­ra.­Cau­sa­do­por­un­RE­SET­MCLR­o­un

RE­SET­WDT­du­ran­te­el­fun­cio­na­mien­to­nor­mal.

0­=­La­ope­ra­ción­de­es­cri­bir­es­tá­ter­mi­na­da.

Bit­2,­WREN: Bit­de­Ac­ti­var­la­Es­cri­tu­ra.

1­=­Per­mi­te­ci­clos­de­es­cri­tu­ra.

0­=­In­hi­be­la­es­cri­tu­ra­al­EE­PROM.

Bit­1,­WR: Bit­de­Con­trol­de­Es­cri­tu­ra.

1­=­Ini­cia­un­ci­clo­de­es­cri­tu­ra.­El­bit­es­anu­-

la­do­por­hard­wa­re­una­vez­ter­mi­na­da­ la­ope­ra­ción.

CAPItUlO 1 - Arquitectura de un PIC

25

Figura 24

Tabla 6

Page 28: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

El­bit­WR­só­lo­pue­de­ser­ajus­ta­do­por­soft­wa­re,­pe­-

ro­no­bo­rra­do.

0­ =­ El­ ci­clo­ de­ es­cri­tu­ra­ al­ EE­PROM­ es­tá

com­ple­to.

Bit­0,­RD: Bit­de­Con­trol­de­Lec­tu­ra.

1­=­Ini­cia­una­lec­tu­ra­del­EE­PROM.­La­lec­tu­-

ra­ocu­pa­só­lo­un­ci­clo.

RD­es­bo­rra­do­con­hard­wa­re.­El­bit­RD­só­-

lo­pue­de­ser­ajus­ta­do­por­soft­wa­re,­pe­ro­no­bo­rra­do.

0­=­No­co­mien­za­una­lec­tu­ra­del­EE­PROM.

Lec­tu­ra­de­la­Me­mo­ria­de­Da­tos­de­EE­PROMPa­ra­ leer­una­ lo­ca­ción­de­me­mo­ria­de­da­tos,­el

usua­rio­de­be­es­cri­bir­la­di­rec­ción­al­re­gis­tro­EEADR

y­des­pués­ajus­tar­el­bit­de­con­trol­RD­(EE­CON1<0>).

El­da­to­es­tá­dis­po­ni­ble­en­el­si­guien­te­ci­clo­en­el­re­-

gis­tro­ EE­DA­TA­ y­ por­ lo­ tan­to­ pue­de­ ser­ leí­do­ en­ la

ins­truc­ción­si­guien­te.­

EE­DA­TA­con­ser­va­rá­es­te­va­lor­has­ta­otra­lec­tu­ra

o­has­ta­que­sea­es­cri­to­por­el­usua­rio­du­ran­te­una

ope­ra­ción­de­es­cri­bir.

Ejem­plo:Lec­tu­ra­de­EE­PROM­de­Da­tos.­Vea­mos­co­mo­po­-

dría­ser­la­se­cuen­cia­de­un­pro­gra­ma­pa­ra­leer­una

lo­ca­ción­de­me­mo­ria,­vea

la­tabla­7.

Es­cri­tu­ra­ de­ la­ Me­mo­-ria­de­Da­tos­EE­PROM

Pa­ra­es­cri­bir­una­lo­ca­-

ción­de­me­mo­ria­de­da­tos

EE­PROM,­ el­ usua­rio­ de­be

es­cri­bir­ la­ di­rec­ción­ pri­-

me­ro­ al­ re­gis­tro­ EEADR­ y

los­da­tos­al­re­gis­tro­EE­DA­-

TA.­Des­pués­el­usua­rio­de­-

be­ se­guir­ una­ se­cuen­cia

es­pe­cí­fi­ca­ pa­ra­ ini­ciar­ la

es­cri­tu­ra­ de­ ca­da­ by­te.

Ca­be­acla­rar­que­si­de­seo

leer­ o­ es­cri­bir­ una­ di­rec­-

ción­de­me­mo­ria­tam­bién

es­ po­si­ble­ “nom­brar­ una

va­ria­ble”,­te­ma­que­ana­li­-

za­re­mos­más­ade­lan­te.

Ejem­plo­Es­cri­tu­ra­ de­ EE­PROM

de­ Da­tos.­ ­ Vea­mos­ có­mo

po­dría­ser­la­se­cuen­cia­de

un­pro­gra­ma­pa­ra­es­cri­bir

una­lo­ca­ción­de­me­mo­ria,

vea­la­tabla­8.

La­es­cri­tu­ra­no­se­ini­cia­si­las­se­cuen­cias­arri­ba

men­cio­na­das­no­se­cum­plen­exac­ta­men­te­pa­ra­ca­da

by­te.­Es­cri­bir­55h­a­EE­CON2,­es­cri­bir­AAh­a­EE­CON2,

des­pués­ajus­tar­el­bit­WR.­Re­co­men­da­mos­es­pe­cial­-

men­te­ de­sac­ti­var­ las­ in­te­rrup­cio­nes­ du­ran­te­ es­te

seg­men­to­del­có­di­go.

Ade­más,­el­bit­WREN­en­EE­CON1­de­be­ser­ajus­ta­-

do­pa­ra­ac­ti­var­la­es­cri­tu­ra.­Es­te­me­ca­nis­mo­im­pi­de

la­es­cri­tu­ra­ac­ci­den­tal­al­EE­PROM­de­da­tos­de­bi­do­a

ines­pe­ra­das­ eje­cu­cio­nes­ del­ có­di­go,­ por­ ejem­plo

por­pro­gra­mas­per­di­dos.­El­usua­rio­de­be­man­te­ner

el­bit­WREN­lim­pio­en­to­do­mo­men­to,­ex­cep­to­cuan­-

do­es­tá­ac­tua­li­zan­do­EE­PROM:­el­bit­WREN­no­se­lim­-

pia­con­hard­wa­re.

Des­pués­de­ha­ber­ini­cia­do­una­se­cuen­cia­de­es­-

cri­tu­ra,­la­lim­pie­za­del­bit­WREN­no­afec­ta­rá­el­ci­clo

de­es­cri­tu­ra.­El­bit­WR­no­po­drá­ser­ajus­ta­do­has­ta

que­el­bit­WREN­es­té­ajus­ta­do.

Al­ com­ple­tar­ el­ ci­clo­ de­ es­cri­tu­ra,­ el­ bit­WR­ es

lim­pia­do­por­el­hard­wa­re­y­el­bit­in­di­ca­dor­de­EE­Wri­-

te­Com­ple­te­In­te­rrupt­(EEIF)­tam­bién­se­ajus­ta.­EEIF

de­be­ser­lim­pia­do­por­soft­wa­re.

Ve­ri­fi­ca­ción­de­Es­cri­tu­raDe­acuer­do­a­la­apli­ca­ción,­la­prác­ti­ca­de­bue­na

pro­gra­ma­ción­pue­de­in­di­car­que­­los­da­tos­es­cri­tos

Microcontroladores PIC

26

Tabla 7BCF STA­TUS,­RPO ;­po­ne­a­ce­ro­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­0

MOVLW 0x20 ;­car­go­al­re­gis­tro­W­con­la­di­rec­ción­de­la­me­mo­ria

;­de­da­tos­que­voy­a­leer

MOVWF EEADR ;­mue­vo­el­con­te­ni­do­del­re­gis­tro­W­al­re­gis­tro­

;­EEADR­que­es­el­re­gis­tro­de­di­rec­cio­na­mien­to­de­

;­la­EE­PROM,­di­cho­de­otra­ma­ne­ra,­es­toy­

;­rea­li­zan­do­el­di­rec­cio­na­mien­to­pa­ra­leer

BSF STA­TUS,­RPO ;­po­ne­a­uno­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­1

BSF EE­CON1,­RD ;­po­ne­a­uno­el­bit­0­(RD)­de­con­trol­de­lec­tu­ra­del­

;­re­gis­tro­de­la­me­mo­ria­de­da­tos­(EE­CON1),­es­to­

;­sig­ni­fi­ca­que­se­ini­cia­la­lec­tu­ra­del­da­to­

;­con­te­ni­do­en­la­di­rec­ción­que­he­mos­

;­car­ga­do­en­EEADR

BCF STA­TUS,­RPO ;­po­ne­a­ce­ro­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­0

MOVF EE­DA­TA,­W ;­co­mo­en­la­ins­truc­ción­an­te­rior­di­ji­mos­que­

;­ha­ría­mos­un­di­rec­cio­na­mien­to­di­rec­to­y­EE­DA­TA­

;­es­el­re­gis­tro­de­da­tos­don­de­es­tá­la­in­for­ma­ción­

;­leí­da,­aho­ra,­con­la­ins­truc­ción­MOVF­he­mos­

;­car­ga­do­al­re­gis­tro­de­tra­ba­jo­con­el­da­to­leí­do­

;­de­la­me­mo­ria­de­da­tos.

Page 29: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

a­ la­EE­PROM­de­Da­tos­de­ben­ser­ ve­ri­fi­ca­dos.­ Es­te

pro­ce­di­mien­to­de­be­ser­usa­do­cuan­do­un­bit­de­ la

EE­PROM­es­tá­muy­cer­ca­de­su­ lí­mi­te­es­pe­ci­fi­ca­do.

Ge­ne­ral­men­te­una­ fa­lla­de­ la­EE­PROM­con­sis­te­en

un­bit­ que­ fue­es­cri­to­ co­mo­ “0”,­ pe­ro­ se­ lee­ co­mo

“1”,­de­bi­do­a­pro­ble­mas.­

Pa­ra­ve­ri­fi­car­un­da­to­es­cri­to,­de­be­mos­pri­me­ro

leer­la­po­si­ción­de­me­mo­ria­gra­ba­da­(si­to­ma­mos­el

ejem­plo­de­re­cién­de­be­ría­mos­leer­el­da­to­con­te­ni­-

do­en­la­di­rec­ción­22h);­pos­te­rior­men­te­de­be­ría­mos

car­gar­al­re­gis­tro­W­con­el­da­to­que­es­pe­ra­mos­en­-

con­trar,­rea­li­zar­una­res­ta­en­tre­el­­da­to­leí­do­(en­EE­-

DA­TA)­y­el­con­te­ni­do­de­W,­lue­go­por­me­dio­del­flag

Z­del­re­gis­tro­de­STA­TUS,­nos­fi­ja­mos­si­la­di­fe­ren­cia

es­ce­ro;­si­es­to­ocu­rre,­el­pro­gra­ma­con­ti­nua­rá­nor­-

mal­men­te.­

Hay­mu­chas­for­mas­de­ha­cer­es­te­pro­ce­so,­pe­ro

una­al­ter­na­ti­va­se­ría­la­vista­en­la­tabla­9.

En­la­ta­bla­10­ve­mos­los­Re­gis­tros­y­Bits­aso­cia­-

dos­con­la­EE­PROM­de­Da­tos.

lA CPU del PIC

Un­mi­cro­con­tro­la­dor­se­di­fe­ren­cia­de­otros­ti­pos

de­pro­ce­sa­do­res­por­te­ner­cir­cui­tos­es­pe­cia­les­pa­ra

aten­der­las­ne­ce­si­da­des­de­cier­tas­apli­ca­cio­nes­en

tiem­po­ real.­El­PIC­16F84A,­por­ejem­plo,­po­see­una

can­ti­dad­ im­por­tan­te­ de­ es­te­ ti­po­ de­ pres­ta­cio­nes

cu­yo­pro­pó­si­to­es­au­men­tar­al­má­xi­mo­la­con­fia­bi­li­-

dad­del­sis­te­ma,­mi­ni­mi­zar­los­cos­tos­por­la­eli­mi­na­-

ción­de­com­po­nen­tes­ex­ter­nos,­pro­veer­mo­dos­ope­-

ra­ti­vo­de­eco­no­mía­del­con­su­mo­y­ofre­cer­una­bue­-

na­pro­tec­ción­de­có­di­gos.­Es­tas­pres­ta­cio­nes­son:

• Se­lec­ción­del­os­ci­la­dor.

• Re­set­

-Re­set­al­En­cen­der­(POR)

-Tem­po­ri­za­dor­de­en­cen­di­do­(PWRT)

-Tem­po­ri­za­dor­de­arran­que­del­Os­ci­la­dor

• In­te­rrup­cio­nes

• Tem­po­ri­za­dor­Watch­dog­(WDT­ó­pe­rro­guar­dián).

CAPItUlO 1 - Arquitectura de un PIC

27

Tabla 8BSF STA­TUS,­RPO ;­po­ne­a­uno­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­1

MOVLW 0x18 ;­car­go­al­re­gis­tro­de­tra­ba­jo­con­la­di­rec­ción­

;­de­la­me­mo­ria­don­de­es­cri­bi­ré­el­da­to

MOVWF EEADR ;­en­la­di­rec­ción­de­re­gis­tro­de­es­cri­tu­ra­

;­co­lo­co­la­di­rec­ción­don­de­es­cri­bi­ré­el­da­to

MOVLW 0x12 ;­car­go­a­W­con­el­nú­me­ro­12­en­he­xa­de­ci­mal­que­

;­se­rá­el­da­to­que­voy­a­es­cri­bir­en­la­po­si­ción­18h

MOVWF EE­DA­TA ;­es­cri­bi­mos­el­da­to­en­EE­DA­TA­

BSF EE­CON1,W­REN ;­so­li­ci­to­el­per­mi­so­de­es­cri­tu­ra­y­

;­co­mien­za­la­se­cuen­cia­de­es­cri­tu­ra­

MOVLW 0x55 ;­car­go­a­W­con­55h­

MOVWF EE­CON2 ;­se­es­cri­be­el­da­to­12h­en­EE­CON2­

MOVLW 0xAA ;­car­go­a­W­con­AAh­

MOVWF EE­CON2 ;­se­es­cri­be­AAh­en­EE­CON2­

BSF EE­CON1,­WR ;­co­mien­za­la­es­cri­tu­ra

WI BTFSC EE­CON1,WR ;­es­pe­ra­a­que­ter­mi­ne­la­es­cri­tu­ra

GO­TO WI ;­

BCF STA­TUS,R0 ;­se­lec­ción­del­ban­co­0

Secuencia

requerida p

ara

realiz

ar

la e

scritu

ra

Page 30: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Microcontroladores PIC

28

Tabla 9BCF STA­TUS,­RPO ;­po­ne­a­ce­ro­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­0

MOVLW 0x22 ;­car­go­al­re­gis­tro­W­con­la­di­rec­ción­de­la­me­mo­ria

;­de­da­tos­que­voy­a­leer,­en­es­te­ca­so­22h

MOVWF EEADR ;­mue­vo­el­con­te­ni­do­del­re­gis­tro­W­al­re­gis­tro­

;­EEADR­que­es­el­re­gis­tro­de­di­rec­cio­na­mien­to­de­

;­la­EE­PROM,­di­cho­de­otra­ma­ne­ra,­es­toy­

;­rea­li­zan­do­el­di­rec­cio­na­mien­to­pa­ra­leer

BSF STA­TUS,­RPO ;­po­ne­a­uno­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­1

BSF EE­CON1,­RD ;­po­ne­a­uno­el­bit­0­(RD)­de­con­trol­de­lec­tu­ra­del­

;­re­gis­tro­de­la­me­mo­ria­de­da­tos­(EE­CON1),­es­to­

;­sig­ni­fi­ca­que­se­ini­cia­la­lec­tu­ra­del­da­to­

;­con­te­ni­do­en­la­di­rec­ción­que­he­mos­

;­car­ga­do­en­EEADR,­en­EE­DA­TA­ten­dré­el­

;­nú­me­ro­15h­(si­es­tá­to­do­bien),­si­hu­bo­un­error­

;­de­es­cri­tu­ra­no­ha­brá­ese­va­lor

BCF STA­TUS,­RPO ;­po­ne­a­ce­ro­el­bit­5­(RPO)­del­re­gis­tro­STA­TUS,­

;­di­cho­bit­se­usa­pa­ra­di­rec­cio­na­mien­to­di­rec­to­y,­

;­en­es­te­ca­so,­ele­gi­mos­el­ban­co­0

MOVLW 0x15 ;­car­go­a­W­con­15h

SUBWF EE­DA­TA,­W ;­res­to­el­con­te­ni­do­de­EE­DA­TA­con­el­de­W

BTFSS STA­TUS,­Z ;­si­el­flag­Z­del­STA­TUS­es­“1”­es­por­que­el­

;­re­sul­ta­do­de­la­res­ta­es­ce­ro­(es­tá­to­do­bien),

;­lue­go,­la­si­guien­te­ins­truc­ción­se­ig­no­ra­y­el

;­pro­gra­ma­con­ti­núa­nor­mal­men­te.­Si­Z­=­0,­

;­en­ton­ces­se­eje­cu­ta­la­pró­xi­ma­ins­truc­ción

GO­TO ERROR ;­el­pro­gra­ma­irá­a­una­eti­que­ta­que­eje­cu­ta­una

;­ru­ti­na­que­in­di­ca­que­hu­bo­error.

MOVLW ........ ;­el­pro­gra­ma­con­ti­núa­nor­mal­men­te

Tabla 10

Page 31: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

• Sleep­(mo­do­de­ope­ra­ción­en­ba­jo­con­su­mo)

• Pro­tec­tor­de­Có­di­gos.

• Lo­ca­cio­nes­de­Iden­ti­fi­ca­ción­(ID).

• Pro­gra­ma­ción­ en­ se­rie­ (en­ la­ con­fec­ción­ del

pro­gra­ma).

El­ PIC­16F84A­po­see­un­ tem­po­ri­za­dor­Watch­dog

que­pue­de­ser­de­sac­ti­va­do­so­la­men­te­me­dian­te­bits

de­con­fi­gu­ra­ción.­Pa­ra­ma­yor­con­fia­bi­li­dad­fun­cio­na

con­su­pro­pio­os­ci­la­dor­RC.­Exis­ten­dos­tem­po­ri­za­-

do­res­que­ofre­cen­el­re­tar­do­ne­ce­sa­rio­al­apli­car­ali­-

men­ta­ción­al­PIC.­Uno­es­el­Tem­po­ri­za­dor­de­arran­-

que­ del­ os­ci­la­dor­ (Os­ci­lla­tor­ Start-up­ Ti­mer­ =­OST),

cu­ya­fun­ción­es­la­de­man­te­ner­el­chip­en­Re­set­has­-

ta­que­el­os­ci­la­dor­a­cris­tal­se­es­ta­bi­li­za.­El­otro­es

el­ Tem­po­ri­za­dor­ de­ En­cen­di­do­ (Po­wer-up­ Ti­mer­ =

PWRT)­que­pro­vee­un­re­tar­do­fi­jo­de­72ms­(va­lor­no­-

mi­nal)­al­apli­car­ten­sión­VDD­úni­ca­men­te.­Es­te­di­se­-

ño­man­tie­ne­el­dis­po­si­ti­vo­en­Re­set­du­ran­te­el­tiem­-

po­ de­ es­ta­bi­li­za­ción­ de­ la­ fuen­te­ de­ ali­men­ta­ción.

Con­es­tos­dos­tem­po­ri­za­do­res­in­cor­po­ra­dos,­la­ma­-

yo­ría­ de­ las­ apli­ca­cio­nes­ no­ ne­ce­si­ta­ cir­cui­tos­ de

Re­set­ex­ter­nos.­El­mo­do­de­SLEEP­ofre­ce­una­for­ma

de­“apa­ga­do”­de­muy­ba­jo­con­su­mo.­El­usua­rio­pue­-

de­des­per­tar­des­de­SLEEP­me­dian­te­un­Re­set­ex­ter­-

no,­ fin­de­ tiem­po­del­ Tem­po­ri­za­dor­de­Watch­dog­o

una­ In­te­rrup­ción.­ Se­ pro­veen­ va­rias­ op­cio­nes­ pa­ra

los­os­ci­la­do­res­pa­ra­po­der­adap­tar­el­com­po­nen­te­a

di­fe­ren­tes­apli­ca­cio­nes.­La­op­ción­de­os­ci­la­dor­RC

aho­rra­ cos­tos­ del­ sis­te­ma­ aun­que­ no­ es­ es­ta­ble,

mien­tras­que­la­op­ción­con­cris­tal­aho­rra­con­su­mo,

es­muy­es­ta­ble­pe­ro­es­más­cos­to­sa.­Co­mo­vi­mos,

en­la­pa­la­bra­de­con­fi­gu­ra­ción­del­PIC­se­de­be­de­cir

qué­ti­po­de­os­ci­la­dor­se­va­a­em­plear.

Bits­de­Con­fi­gu­ra­ciónTal­co­mo­vi­mos­an­te­rior­men­te,­los­bits­de­con­fi­-

gu­ra­ción­ pue­den­ ser­ pro­gra­ma­dos­ pa­ra­ leer­ “0”­ o

que­dar­sin­pro­gra­ma­ción­pa­ra­leer­“1”­y­de­es­ta­ma­-

ne­ra­se­lec­cio­nar­di­fe­ren­tes­con­fi­gu­ra­cio­nes­del­dis­-

po­si­ti­vo.­Es­tos­bits­se­en­cuen­tran­en­la­lo­ca­ción­de

me­mo­ria­del­pro­gra­ma­2007h.

En­la­tabla­11­ve­mos­otro­as­pec­to­de­la­pa­la­bra

de­con­fi­gu­ra­ción.

Las­re­fe­ren­cias­son­las­si­guien­tes:

R­=­bit­que­pue­de­ser­leí­do

P­=­bit­pro­gra­ma­ble

u­=­sin­cam­bio

Ya­he­mos­ha­bla­do­de­la­fun­ción­que­cum­ple­ca­da

bit.­La­di­rec­ción­2007h­es­tá­fue­ra­del­es­pa­cio­de­la

me­mo­ria­del­pro­gra­ma­de­usua­rio­y­per­te­ne­ce­al­es­-

pa­cio­de­la­me­mo­ria­de­test­es­pe­cial­y­con­fi­gu­ra­ción

(2000h­–­3FFFh).­Es­te­es­pa­cio­só­lo­es­ac­ce­si­ble­du­-

ran­te­la­pro­gra­ma­ción.

COn FI gU rA CIO nes del Os CI lA dOr

Ti­pos­de­Os­ci­la­do­resEl­PIC­16F84A­pue­de­fun­cio­nar­con­cua­tro­mo­dos

di­fe­ren­tes­de­os­ci­la­dor.­El­usua­rio­pue­de­pro­gra­mar

dos­bits­de­con­fi­gu­ra­ción­(FOSC1­y­FOSC0)­pa­ra­se­-

lec­cio­nar­uno­de­es­tos­cua­tro­mo­dos:

• LP­=­Cris­tal­de­Ba­ja­Po­ten­cia

• XT­=­Cris­tal­o­Re­so­na­dor

• HS­=­Cris­tal­o­Re­so­na­dor­de­Al­ta­Ve­lo­ci­dad

• RC­=­Os­ci­la­dor­RC

Os­ci­la­dor­de­Cris­tal­o­Re­so­na­dor­de­Ce­rá­mi­caEn­los­mo­dos­XT,­LP­o­HS­se­co­nec­ta­un­cris­tal­o

re­so­na­dor­ ce­rá­mi­co­ a­ las­ pa­tas­ OSC1/CL­KIN­ y

OSC2/CL­KOUT­ pa­ra­ es­ta­ble­cer­ la­ os­ci­la­ción­ de

acuer­do­a­la­fi­gu­ra­2­de­es­te­ca­pí­tu­lo.

El­di­se­ño­del­os­ci­la­dor­del­PIC­16F84A­re­quie­re­el

uso­de­un­cris­tal­de­cor­te­pa­ra­le­lo.­El­uso­de­un­cris­-

tal­ de­ cor­te­ se­rie­ pue­de­ dar­ os­ci­la­cio­nes­ con­ una

fre­cuen­cia­fue­ra­del­ran­go­es­pe­ci­fi­ca­do­por­el­fa­bri­-

can­te­del­cris­tal.­En­los­mo­dos­XT,­LP­o­HP,­el­dis­po­-

si­ti­vo­per­mi­te­la­co­ne­xión­de­una­fuen­te­ex­ter­na­pa­-

ra­ex­ci­tar­la­pa­ta­OSC1/CL­KIN,­co­mo­ve­mos­en­la­fi­-

gu­ra­25.

Os­ci­la­dor­RCPa­ra­apli­ca­cio­nes­in­sen­si­bles­a­va­ria­cio­nes­tem­-

po­ra­les,­el­uso­de­la­op­ción­de­os­ci­la­dor­RC­ofre­ce

ven­ta­jas­adi­cio­na­les.­La­fre­cuen­cia­del­os­ci­la­dor­RC

CAPItUlO 1 - Arquitectura de un PIC

29

Tabla 11

Figura 25

Page 32: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

es­una­fun­ción­de­la­ten­sión­de­la­fuen­te,­del­va­lor

de­Rext,­del­va­lor­de­Cext­y­de­la­tem­pe­ra­tu­ra­de­fun­-

cio­na­mien­to.­Ade­más­de­es­tos­pa­rá­me­tros,­tam­bién

pue­de­ha­ber­una­va­ria­ción­de­la­fre­cuen­cia­del­os­ci­-

la­dor­de­bi­do­a­las­va­ria­cio­nes­nor­ma­les­de­los­pa­rá­-

me­tros­del­pro­ce­so.­Ade­más,­las­di­fe­ren­cias­en­las

ca­pa­ci­da­des­ de­ con­duc­to­res­ del­ dis­po­si­ti­vo­ pue­de

in­tro­du­cir­ va­ria­cio­nes,­ es­pe­cial­men­te­ con­ va­lo­res

muy­ba­jos­de­Cext.­El­usua­rio­de­be­to­mar­en­cuen­ta

asi­mis­mo,­ va­ria­cio­nes­ de­bi­do­ a­ las­ to­le­ran­cias­ de

los­com­po­nen­tes­ex­ter­nos­R­y­C­usa­dos.­La­fi­gu­ra­3

vista­ anteriormente,­ mues­tra­ có­mo­ co­nec­tar­ una

com­bi­na­ción­RC­al­PIC­16F84A.

Re­setEl­PIC­16F84A­dis­tin­gue­en­tre­va­rios­ti­pos­de­re­-

set.

• Re­set­al­en­cen­der­(Po­wer-on­Re­set­POR).

• Re­set­MCLR’­du­ran­te­el­fun­cio­na­mien­to­nor­mal.

• Re­set­MCLR’­du­ran­te­SLEEP.

• Re­set­WDT­du­ran­te­el­fun­cio­na­mien­to­nor­mal.

• Re­set­WDT­de­des­per­tar­du­ran­te­SLEEP.

No­ta: La­no­ta­ción­MCLR’­im­pli­ca­que­el­re­set­se

ac­ti­va­con­un­“0”­(ne­ga­do),­es­de­cir:

_____

MCLR’­=­MCLR

La­ fi­gu­ra­ 26­ mues­tra­ un­ dia­gra­ma­ en­ blo­ques

sim­pli­fi­ca­do­del­cir­cui­to­de­re­set­in­cor­po­ra­do­en­el

chip.­El­pa­so­de­re­set­MCLR’­po­see­un­fil­tro­de­rui­do

pa­ra­ig­no­rar­pul­sos­pe­que­ños.­Las­es­pe­ci­fi­ca­cio­nes

eléc­tri­cas­fi­jan­los­re­qui­si­tos­del­an­cho­de­pul­so­ne­-

ce­sa­rio­pa­ra­la­pa­ta­MCLR’.

Al­gu­nos­re­gis­tros­no­son­afec­ta­dos­por­nin­gu­na

con­di­ción­de­re­set,­su­sta­tus­es­des­co­no­ci­do­en­un

re­set­POR­y­sin­cam­bios­en­cual­quier­otro­re­set.­La

ma­yo­ría­ de­ los­ de­más­ re­gis­tros­ se­ co­lo­can­ en­ un

“es­ta­do­de­re­set”­en­re­sets­POR,­MCLR’­o­WDR­du­-

ran­te­el­fun­cio­na­mien­to­nor­mal­y­en­un­re­set­MCLR’

du­ran­te­SLEEP.­No­son­afec­ta­dos­por­un­re­set­WDT

du­ran­te­SLEEP­de­bi­do­a­que­es­te­re­set­es­vis­to­co­-

mo­re­su­men­del­fun­cio­na­mien­to­nor­mal.­­En­la­ta­bla

Microcontroladores PIC

30

Figura 26

Tabla 12

Page 33: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

12­ve­mos­la­des­crip­ción­de­con­di­cio­nes­de­re­set­pa­-

ra­el­con­ta­dor­de­pro­gra­mas­PC­y­el­re­gis­tro­de­STA­-

TUS.

Le­yen­da:­

u­=­sin­cam­bios,

x­=­des­co­no­ci­do.

No­ta­1. Cuan­do­el­“Des­per­tar”­(vol­ver­de­SLEEP)

se­de­be­a­una­In­te­rrup­ción­y­el­bit­GIE­es­ajus­ta­do,

el­ con­ta­dor­PC­ se­ car­ga­ con­ el­ vec­tor­ de­ in­te­rrupt

(0004h).

En­la­ta­bla­13­se­brin­da­una­des­crip­ción­com­ple­-

ta­de­los­es­ta­do­de­re­set­pa­ra­to­dos­los­re­gis­tros:

Le­yen­da:­

u­=­sin­cam­bios

x­=­des­co­no­ci­do­

-­=­bit­sin­im­ple­men­tar,­leí­do­co­mo­0,­­

q­=­va­lor­de­pen­de­las­con­di­cio­nes.­

No­tas­1:­Uno­o­más­bits­de­INT­CON­se­rán­afec­ta­-dos­pa­ra­cau­sar­des­per­tar.

No­ta­ 2: Cuan­do­ el­ des­per­tar­ se­ de­be­ a­ un­ in­te­-rrupt­y­el­bit­GIE­es­ajus­ta­do,­el­con­ta­dor­PC­se­car­-ga­con­el­vec­tor­de­in­te­rrupt­(0004h).

No­ta­3: Los­va­lo­res­pa­ra­ca­da­con­di­ción­es­pe­cí­fi­-ca­es­tán­lis­ta­dos­en­la­ta­bla­de­con­di­cio­nes­de­re­setpa­ra­ el­ con­ta­dor­ de­ pro­gra­mas­ PC­ y­ el­ re­gis­tro­ deSTA­TUS.

No­ta­4. En­to­do­re­set­del­dis­po­si­ti­vo,­es­tas­pa­tasson­con­fi­gu­ra­dos­co­mo­en­tra­das.

No­ta­5:­Es­te­es­el­ va­lor­ que­ se­en­cuen­tra­en­ellatch­del­port­de­sa­li­da.

Los­bits­TO’­y­PD’­son­ajus­ta­dos­o­lim­pia­dos­­en

for­ma­di­fe­ren­te­en­di­fe­ren­tes­si­tua­cio­nes­de­re­set.

Es­tos­ bits­ se­ usan­en­ soft­wa­re­ pa­ra­ de­ter­mi­nar­ la

na­tu­ra­le­za­del­re­set.

Re­set­de­En­cen­di­do­(POR)Un­pul­so­de­re­set­de­en­cen­di­do­se­ge­ne­ra­en­el

chip­cuan­do­se­de­tec­ta­una­ele­va­ción­de­VDD­en­el

ran­go­de­1,2­a­1,7­Volt.­Pa­ra­apro­ve­char­el­POR,­so­-

lo­de­be­co­nec­tar­la­pa­ta­MCLR’­di­rec­ta­men­te­o­a­tra­-

vés­ de­ un­ re­sis­tor­ a­ VDD.­ Es­to­ eli­mi­na­ los­ com­po­-

nen­tes­RC­ex­ter­nos­que­se­ne­ce­si­tan­ge­ne­ral­men­te

pa­ra­ crear­ un­ re­set­ de­ en­cen­di­do.­ Se­ ne­ce­si­ta­ un

tiem­po­ de­ cre­ci­mien­to­ mí­ni­mo­ pa­ra­ VDD­ pa­ra­ que

fun­cio­ne­ co­rrec­ta­men­te.­ Las­ es­pe­ci­fi­ca­cio­nes­ res­-

pec­ti­vas­sur­gen­de­las­Es­pe­ci­fi­ca­cio­nes­Eléc­tri­cas.­­­­

Cuan­do­ el­ dis­po­si­ti­vo­ co­mien­za­ su­ fun­cio­na­-

mien­to­nor­mal­al­sa­lir­de­ la­con­di­ción­de­ re­set,­es

ne­ce­sa­rio­ ase­gu­rar­ los­ pa­rá­me­tros­ (ten­sión,­ fre­-

cuen­cia,­tem­pe­ra­tu­ra,­etc)­en­sus­va­lo­res­nor­ma­les

pa­ra­ ga­ran­ti­zar­ el­ fun­cio­na­mien­to.­ Si­ es­tas­ con­di­-

cio­nes­no­son­cum­pli­das,­el­dis­po­si­ti­vo­de­be­man­te­-

ner­se­en­re­set­has­ta­que­se­nor­ma­li­ce.­En­la­fi­gu­ra

27­ve­mos­un­cir­cui­to­de­RE­SET­de­en­cen­di­do­ex­ter­no

pa­ra­una­apli­ca­ción­len­ta­de­VDD.

El­re­set­de­en­cen­di­do­(POR)­no­pro­du­ce­un­re­set

in­ter­no­cuan­do­VDD­cae.

CAPItUlO 1 - Arquitectura de un PIC

31

Tabla 13

Page 34: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

So­bre­el­cir­cui­to­de­la­fi­gu­ra­27,­de­be­mos­de­cir­lo

si­guien­te:

1.­El­cir­cui­to­de­Po­wer-on­Re­set­(ex­ter­no)­só­lo­es

ne­ce­sa­rio­cuan­do­la­ta­sa­de­cre­ci­mien­to­de­VDD­es

de­ma­sia­do­len­ta.­El­dio­do­D­ayu­da­a­des­car­gar­el­ca­-

pa­ci­tor­rá­pi­da­men­te­al­apa­gar­el­equi­po.

2.­El­re­sis­tor­R­<­40­kΩ­es­re­co­men­da­do­pa­ra­es­-

tar­se­gu­ro­que­la­caí­da­de­ten­sión­so­bre­R­no­ex­ce­-

da­0,2­volt.­La­má­xi­ma­co­rrien­te­de­fu­ga­so­bre­la­pa­-

ta­ MCLR’­ es­tá­ es­pe­ci­fi­ca­da­ en­ 5µA.­ Una­ caí­da­ de

ten­sión­ma­yor­pro­du­ci­rá­la­de­gra­da­ción­del­ni­vel­de

Vih­en­la­pa­ta­MCLR’.

3.­El­re­sis­tor­R1­=­100Ω­a­1000Ω­li­mi­ta­to­da­co­-

rrien­te­que­cir­cu­la­en­MCLR­des­de­un­ca­pa­ci­tor­ex­-

ter­no­ C­ en­ el­ su­pues­to­ que­ ha­ya­ una­ rup­tu­ra­ de

MCLR’­de­bi­do­a­ESD­o­EOS.

Tem­po­ri­za­dor­de­Arran­que­del­Os­ci­la­dor­(OST)El­OST­ (Os­ci­lla­tor­ Start-up­ Ti­mer­ =­OST)­ tie­ne­ la

fun­ción­de­man­te­ner­el­chip­en­Re­set­has­ta­que­el

os­ci­la­dor­a­cris­tal­se­es­ta­bi­li­za­y­en­tra­en­fun­cio­nes

en­los­mo­dos­XT,­LP­y­HS­del­os­ci­la­dor.­

Tem­po­ri­za­dor­de­En­cen­di­do­(PWRT)El­PWRT­ (Po­wer-up­Ti­mer)­es­un­cir­cui­to­ in­ter­no

que­pro­vee­un­re­tar­do­fi­jo­de­72ms­(va­lor­no­mi­nal)­al

apli­car­ ten­sión­VDD­úni­ca­men­te.­ Es­te­ di­se­ño­man­-

tie­ne­el­ dis­po­si­ti­vo­en­Re­set­ du­ran­te­ el­ tiem­po­de

es­ta­bi­li­za­ción­de­la­fuen­te­de­ali­men­ta­ción.­Con­es­-

tos­dos­tem­po­ri­za­do­res­in­cor­po­ra­dos,­la­ma­yo­ría­de

las­apli­ca­cio­nes­no­ne­ce­si­tan­cir­cui­tos­de­Re­set­ex­-

ter­nos.

el Pe rrO gUAr dIAn (Wdt)Se­tra­ta­de­un­con­ta­dor­de­8­bits­que­ac­túa­co­mo

tem­po­ri­za­dor­y­tie­ne­el­ob­je­ti­vo­de­ge­ne­rar­un­re­set

a­ to­do­el­sis­te­ma­cuan­do­se­des­bor­da­su­va­lor.­Su

con­trol­ de­ tiem­pos­ es­ in­de­pen­dien­te­ del­ os­ci­la­dor

prin­ci­pal­y­se­ba­sa­en­una­red­RC.­La­tem­po­ri­za­ción

no­mi­nal­ con­ la­ que­ se­ ha­lla­ pro­gra­ma­do­ el­ Pe­rro

guar­dián­es­de­18ms,­pe­ro­pue­de­au­men­tar­se­uti­li­-

zan­do­el­Di­vi­sor­de­fre­cuen­cia,­con­el­cual,­tra­ba­jan­-

do­en­el­ran­go­ma­yor,­pue­de­al­can­zar­has­ta­2,3­se­-

gun­dos.­

Pa­ra­evi­tar­que­se­des­bor­de­el­WDT­y­ge­ne­re­un

re­set,­hay­que­re­car­gar­o­re­fres­car­su­cuen­ta­an­tes

de­que­lle­gue­a­com­ple­tar­se.­

Es­te­re­fres­co,­que­en­rea­li­dad­con­sis­te­en­po­ner­-

lo­ a­ “0”­ pa­ra­ ini­ciar­ la­ tem­po­ri­za­ción,­ se­ con­si­gue

por­soft­wa­re­con­las­ins­truc­cio­nes­CLRWDT­y­SLEEP.

El­di­se­ña­dor­de­be­ana­li­zar­el­pro­gra­ma­de­tra­ba­jo­y

si­tuar­ al­gu­na­ de­ es­tas­ dos­ ins­truc­cio­nes­ en­ si­tios

es­tra­té­gi­cos­por­los­que­pa­sa­el­flu­jo­de­con­trol­an­-

tes­que­ trans­cu­rra­el­ tiem­po­que­con­tro­la­el­Pe­rro

Guar­dián.­

De­es­ta­ma­ne­ra,­si­el­pro­gra­ma­se­“cuel­ga”­(bu­-

cle­in­fi­ni­to,­es­pe­ra­de­acon­te­ci­mien­to­que­no­se­pro­-

du­ce,­etc.),­no­se­re­fres­ca­a­tiem­po­al­Pe­rro­guar­dián

y­se­pro­du­ce­una­rei­ni­cia­li­za­ción.­

La­ins­truc­ción­CLRWDT­bo­rra­sim­ple­men­te­el­va­-

lor­ de­ WDT,­ rei­ni­cian­do­ la­ cuen­ta.­ Sin­ em­bar­go,­ la

ins­truc­ción­SLEEP,­ade­más­de­bo­rrar­el­WDT,­de­tie­ne

a­to­do­el­sis­te­ma­en­tran­do­en­un­mo­do­de­tra­ba­jo­en

el­que­el­con­su­mo­es­mí­ni­mo­(mo­do­de­Re­po­so­o­de

ba­jo­con­su­mo).­Si­no­se­de­sac­ti­va­al­Pe­rro­guar­dián

cuan­do­se­en­tra­en­el­mo­do­de­Re­po­so,­al­aca­bar­su

con­teo­pro­vo­ca­rá­un­re­set­y­se­sal­drá­de­di­cho­mo­-

do.­Otra­for­ma­de­sa­lir­del­mo­do­de­Re­po­so­es­ac­ti­-

van­do­la­pa­ti­ta­MCLR’.­

Co­mo­he­mos­vis­to,­pa­ra­de­sac­ti­var­al­Pe­rro­Guar­-

dián,­hay­que­po­ner­un­“0”­en­el­bit­2­ (WD­TE)­de­ la

Pa­la­bra­de­con­fi­gu­ra­ción.­

Exis­te­la­po­si­bi­li­dad­de­que­el­Di­vi­sor­de­fre­cuen­-

cia­ope­re­con­el­TMR0­o­con­el­WDT,­se­gún­el­va­lor

que­ten­ga­el­bit­PSA.­Los­im­pul­sos­de­con­teo­pa­san

por­el­Di­vi­sor­an­tes­de­apli­car­se­al­TMR0­(pres­ca­ler).

Por­el­con­tra­rio,­ los­ im­pul­sos­pa­san­pri­me­ro­por­el

WDT­y­lue­go­por­el­Di­vi­sor­(Post-di­vi­sor).­

In te rrUP CIO nes del MI CrOLas­in­te­rrup­cio­nes­son­el­me­ca­nis­mo­más­im­-

por­tan­te­pa­ra­la­co­ne­xión­del­mi­cro­con­tro­la­dor­con

el­ mun­do­ ex­te­rior,­ sin­cro­ni­zan­do­ la­ eje­cu­ción­ de

pro­gra­mas­con­acon­te­ci­mien­tos­ex­ter­nos.

Las­in­te­rrup­cio­nes­son­una­es­pe­cie­de­su­bru­ti­-

nas­de­las­cua­les­se­di­fe­ren­cian­en­los­pro­ce­di­mien­-

tos­que­las­po­nen­en­mar­cha.­Por­otra­par­te­las­su­-

bru­ti­nas­ se­ eje­cu­tan­ ca­da­ vez­ que­ en­ el­ pro­gra­ma

apa­re­ce­una­ins­truc­ción­CALL,­mien­tras­que­las­in­te­-

rrup­cio­nes­se­po­nen­en­mar­cha­al­apa­re­cer­en­cual­-

quier­ins­tan­te­un­even­to­ex­ter­no­al­pro­gra­ma,­es­de­-

cir­por­un­me­ca­nis­mo­de­hard­wa­re.­El­PIC16X­84/PIC,

por­ejem­plo,­dis­po­ne­de­4­po­si­bles­fuen­tes­de­in­te­-

rrup­ción:­

1.­Ac­ti­va­ción­del­pin­RB0/INT­2.­Des­bor­de­del­tem­po­ri­za­dor­TMR0­

Microcontroladores PIC

32

Figura 27

Page 35: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

3.­Cam­bio­de­es­ta­do­en­una­de­las­4­pa­tas­de­máspe­so­(RB7:RB4)­del­PORTB­

4.­ Fi­na­li­za­ción­de­ la­es­cri­tu­ra­en­ la­EE­PROM­deda­tos.­

Cuan­do­se­pro­du­ce­al­gu­no­de­es­tos­es­ta­dos,­se

ori­gi­na­una­pe­ti­ción­de­in­te­rrup­ción,­que­si­se­acep­-

ta,­guar­da­el­va­lor­del­con­ta­dor­de­pro­gra­ma­ (PC­ó

CP)­ac­tual­en­la­Pi­la,­po­ne­a­ce­ro­el­bit­GIE­(Glo­bal­In­-

te­rrupt­ Ena­ble),­ lo­ que­pro­hi­be­ cual­quier­ otra­ in­te­-

rrup­ción­y­se­car­ga­el­PC­con­el­va­lor­0004H­,­que­es

la­po­si­ción­del­vec­tor­de­in­te­rrup­ción,­y­co­mien­za­a

eje­cu­tar­se­el­pro­gra­ma­de­aten­ción­a­la­in­te­rrup­ción

que­se­en­cuen­tra­a­par­tir­de­es­ta­di­rec­ción.

Una­ in­te­rrup­ción­ es­tá­ con­tro­la­da­ me­dian­te­ dos

bits.­Uno­de­ellos­ac­túa­co­mo­se­ña­li­za­dor­o­flag­que

in­di­ca­si­se­ha­pro­du­ci­do­o­no­ la­ in­te­rrup­ción,­y­ la

otra­fun­cio­na­co­mo­bit­de­per­mi­so­o­in­hi­bi­ción­de­la

in­te­rrup­ción­en­sí.

Los­bits­de­con­trol­que­se­en­cuen­tran­en­el­re­gis­-tro­INT­CON­(0Bh­ó­8Bh)­ha­bi­li­tan­y­con­fi­gu­ran­las­in­-te­rrup­cio­nes.

Pa­ra­que­se­pue­da­pro­du­cir­una­in­te­rrup­ción­por

al­gu­na­de­es­tas­fuen­tes,­el­bit­co­rres­pon­dien­te­de­-

be­es­tar­en­“1”,­mien­tras­que­los­bits­se­ña­li­za­do­res

o­flags­que­es­tán­en­los­re­gis­tros­INT­CON­y­EE­DA­TA

(08h)­ in­for­man­ si­ se­ ha­ pro­du­ci­do­ la­ in­te­rrup­ción

cuan­do­és­tos­se­po­nen­a­“1”.­Cual­quie­ra­de­las­in­te­-

rrup­cio­nes­ tam­bién­ pue­de­ sa­car­ al­ pro­ce­sa­dor­ del

mo­do­de­re­po­so­SLEEP.

El­bit­GIE­(Glo­bal­In­te­rrupt­Ena­ble)­es­el­de­ac­ti­va­-

ción­glo­bal­del­per­mi­so­de­ in­te­rrup­ción,­y­se­bo­rra

au­to­má­ti­ca­men­te­cuan­do­apa­re­ce­una­in­te­rrup­ción,

con­ el­ ob­je­to­ de­ evi­tar­ que­ se­ pro­duz­ca­ otra­ in­te­-

rrup­ción­mien­tras­se­es­tá­aten­dien­do­a­ la­pri­me­ra.

Cuan­do­por­pro­gra­ma­se­re­tor­na­de­ la­ in­te­rrup­ción

con­una­ins­truc­ción­RET­FIE,­el­bit­GIE­se­vuel­ve­a­ac­-

ti­var­po­nién­do­se­a­1.­Pa­ra­el­res­to­de­los­flags­o­bits

in­di­ca­do­res­de­in­te­rrup­ción,­no­es­tá­pre­vis­to­me­ca­-

nis­mo­de­pues­ta­a­ce­ro,­por­lo­que­es­el­pro­gra­ma­de

aten­ción­a­la­in­te­rrup­ción­el­que­de­be­rea­li­zar­el­tra­-

ta­mien­to­de­ la­co­rres­pon­dien­te­ in­te­rrup­ción­y­ade­-

más,­el­que­de­be­po­ner­el­o­los­flags­de­in­di­ca­ción

de­in­te­rrup­ción­a­0.­De­no­ser­así,­no­se­po­drá­sa­lir

de­la­ru­ti­na­de­aten­ción­a­la­in­te­rrup­ción.­­Es­ta­fa­mi­-

lia­de­PICs­po­see­un­vec­tor­de­in­te­rrup­ción­en­la­di­-

rec­ción­0004h;­es­to­quie­re­de­cir­que,­sea­cual­sea­la

fuen­te­de­la­in­te­rrup­ción,­el­PC­se­car­ga­con­0004h.

Por­lo­tan­to,­el­pro­gra­ma­de­aten­ción­a­la­in­te­rrup­-

ción­de­be­en­car­gar­se­de­com­pro­bar­el­es­ta­do­de­ca­-

da­uno­de­los­flags­pa­ra­sa­ber­cuál­es­la­fuen­te­de

in­te­rrup­ción­y­ac­tuar­se­gún­el­ca­so.

Si­se­ne­ce­si­ta­pre­ser­var­al­gún­otro­re­gis­tro­ade­-

más­del­PC,­cuan­do­se­atien­de­una­in­te­rrup­ción,­de­-

be­ser­el­pro­pio­pro­gra­ma­de­aten­ción­a­la­in­te­rrup­-

ción­el­que­se­en­car­gue­de­sal­var­su­es­ta­do­al­ini­cio

de­la­ru­ti­na­y­de­de­vol­ver­los­al­fi­nal­del­mis­mo,­de

igual­mo­do­que­se­ha­cía­en­las­su­bru­ti­nas.

Por­ lo­ di­cho,­ el­ µP­ de­be­ rea­li­zar­ de­ter­mi­na­dos

pro­ce­sos­ au­to­má­ti­ca­men­te­ mien­tras­ que­ otros­ se

eje­cu­tan­por­pro­gra­ma,­es­tos­pro­ce­sos­son:

1.­Cuan­do­se­ac­ti­va­una­in­te­rrup­ción,­el­flag­co­-rres­pon­dien­te­se­ac­ti­va.­Si­el­bit­de­per­mi­so­co­rres­-pon­dien­te­es­tá­en­“1”­y­el­bit­de­ha­bi­li­ta­ción­de­to­-das­las­in­te­rrup­cio­nes­(GIE)­es­tá­en­“1”,­se­pro­du­cela­in­te­rrup­ción.­

2.­Pa­ra­evi­tar­que­se­pro­duz­ca­otra­in­te­rrup­ciónmien­tras­ se­ es­tá­ aten­dien­do­ a­ otra­ an­te­rior,­ el­ bitGIE­se­po­ne­en­“0”.­

3.­El­va­lor­del­PC­se­guar­da­en­la­PI­LA­4.­El­PC­se­car­ga­con­el­va­lor­0004h,­que­es­el­vec­-

tor­de­in­te­rrup­cio­nes­5.­ El­ pro­gra­ma­dor,­ de­be­ co­men­zar­ la­ ru­ti­na­ de

aten­ción­a­la­in­te­rrup­ción­con­un­sal­to­a­la­po­si­ciónde­ me­mo­ria­ don­de­ se­ en­cuen­tra­ el­ pro­gra­ma­ deaten­ción­ a­ di­cha­ in­te­rrup­ción,­ se­gui­da­men­te­ seguar­dan­to­dos­los­re­gis­tros­que­pue­dan­ser­mo­di­fi­-ca­dos­por­és­ta,­lue­go­si­es­tán­ha­bi­li­ta­das­va­rias­víasde­in­te­rrup­ción,­se­de­be­ve­ri­fi­car­el­va­lor­de­los­flagpa­ra­de­ter­mi­nar­la­cau­sa­de­la­in­te­rrup­ción.­

6.­La­ru­ti­na­de­in­te­rrup­ción­lle­va­al­pro­gra­ma­a­lasu­bru­ti­na­co­rres­pon­dien­te.­

7.­An­tes­de­re­tor­nar­al­pro­gra­ma­prin­ci­pal­se­de­-ben­rees­ta­ble­cer­los­va­lo­res­que­te­nían­los­re­gis­trosan­tes­de­pro­du­cir­se­ la­ in­te­rrup­ción­ y­ se­de­ben­bo­-rrar­por­soft­wa­re­los­flags­que­in­di­can­las­fuen­tes­delas­in­te­rrup­cio­nes.­

8.­Cuan­do­se­lle­ga­a­la­úl­ti­ma­ins­truc­ción­de­la­ru­-ti­na­de­in­te­rrup­ción,­RE­TURN,­se­car­ga­el­PC­con­elva­lor­que­se­guar­dó­ ini­cial­men­te­en­ la­PI­LA­y­el­bitGIE­se­po­ne­au­to­má­ti­ca­men­te­en­“1”.

In­te­rrup­ción­Ex­ter­na­(INT)La­ fuen­te­ de­ in­te­rrup­cio­nes­ INT­ es­ su­ma­men­te

im­por­tan­te­pa­ra­aten­der­even­tos­ex­ter­nos­en­tiem­-

po­real.­Cuan­do­en­la­lí­nea­RB0/INT­se­ha­ce­una­pe­-

ti­ción­de­in­te­rrup­ción,­en­ton­ces,­de­for­ma­au­to­má­ti­-

ca,­el­bit­INTF­del­re­gis­tro­INT­CON­se­po­ne­en­“1”­y­si

el­bit­GIE=1.­Lue­go­se­po­ne­en­mar­cha­el­me­ca­nis­mo

de­aten­ción­a­la­in­te­rrup­ción.­Me­dian­te­el­bit­INT­DEG

del­re­gis­tro­OP­TION,­se­pue­de­se­lec­cio­nar­el­flan­co

ac­ti­vo­de­RBO/INT,­ya­que­con­es­ta­pues­ta­en­“1­“el

flan­co­ac­ti­vo­es­el­de­su­bi­da­y­cuan­do­es­tá­en­“0”­el

flan­co­ac­ti­vo­es­el­de­ba­ja­da.­El­pro­gra­ma­de­aten­-

ción­a­la­in­te­rrup­ción­an­tes­de­re­gre­sar­al­pro­gra­ma

prin­ci­pal­de­be­bo­rrar­el­flag­INTF,­pa­ra­que­no­se­re­-

pi­ta­el­pro­ce­so­de­aten­ción­a­la­in­te­rrup­ción­cuan­do

se­eje­cu­ta­la­ins­truc­ción­de­re­tor­no­de­in­te­rrup­ción

RET­FIE.

CAPItUlO 1 - Arquitectura de un PIC

33

Page 36: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

In­te­rrup­ción­por­Des­bor­de­del­TMR0Pa­ra­ac­ti­var­la­in­te­rrup­ción­del­TMR0,­los­bit­T0IE

y­GIE­del­ re­gis­tro­ INT­CON­de­ben­es­tar­en­ “1”;­ba­jo

es­tas­con­di­cio­nes­cuan­do­el­tem­po­ri­za­dor­TMR0­se

des­bor­da­al­pa­sar­de­FFh­a­00h,­se­ac­ti­va­el­flag­TOIF

del­re­gis­tro­INT­CON.

Si­no­se­car­ga­de­nue­vo­TMR0­cuan­do­se­des­bor­-

da,­és­te­si­gue­con­tan­do­des­de­00h­has­ta­FFh.­Es­te

re­gis­tro­pue­de­es­cri­bir­se­o­leer­se­en­cual­quier­mo­-

men­to,­pe­ro­hay­que­te­ner­en­cuen­ta­que­al­es­cri­bir

so­bre­él,­se­pier­den­dos­ci­clos­de­re­loj­pa­ra­man­te­-

ner­el­sin­cro­nis­mo.

Cuan­do­ se­ car­ga­ el­ re­gis­tro­ TMR0­ con­ un­ va­lor

XXh,­és­te­cuen­ta­FFh-XXh­im­pul­sos­y­el­tiem­po­que

tar­da­en­ha­cer­lo­vie­ne­da­do­por­la­ex­pre­sión:

Tem­po­ri­za­ción­=­4­.­Tosc­.­(256­–N10).­Ran­go­del

Di­vi­sor­de­Fre­cuen­cia

In­te­rrup­ción­por­Cam­bio­de­Es­ta­do­en­ las­pa­tasRB7­y­RB4

Pa­ra­ac­ti­var­ la­ in­te­rrup­ción­por­cam­bio­de­ni­vel

en­las­pa­tas­RB4­y­RB7,­los­bits­RBIE­y­GIE­del­re­gis­-

tro­INT­CON­de­ben­es­tar­a­‘1”.­Cuan­do­es­to­es­así­y­se

pro­du­ce­un­cam­bio­de­ni­vel­en­cual­quie­ra­de­los­pi­-

nes­RB4­ó­RB7,­se­ac­ti­va­el­flag­RBIF­del­re­gis­tro­INT­-

CON.­Es­te­ti­po­de­in­te­rrup­cio­nes­es­tá­es­pe­cial­men­-

te­pen­sa­da­pa­ra­el­con­trol­de­un­te­cla­do­ma­tri­cial­4

x­4­de­16­te­clas.

In­te­rrup­ción­por­Fi­na­li­za­ción­de­la­Es­cri­tu­ra­en­laEE­PROM­de­Da­tos

El­área­de­EE­PROM­dis­po­ne­de­64­by­tes­don­de­se

pue­den­al­ma­ce­nar­da­tos­que­no­se­pier­den­al­des­co­-

nec­tar­la­ali­men­ta­ción.­La­me­mo­ria­EE­PROM­no­es­tá

ma­pea­da­en­la­zo­na­de­me­mo­ria­de­da­tos­don­de­se

en­cuen­tran­los­re­gis­tros­SFR­y­GPR.­Pa­ra­po­der­leer­-

la­y­es­cri­bir­la­du­ran­te­el­fun­cio­na­mien­to­nor­mal­del

mi­cro­con­tro­la­dor­hay­que­uti­li­zar­los­re­gis­tros­es­pe­-

cia­les­EE­DA­TA,­EEADR,­EE­CON1­y­EE­CON2,­tal­co­mo

ya­he­mos­vis­to.­Re­cuer­de­que­el­Re­gis­tro­EEADR,­se

en­cuen­tra­en­la­po­si­ción­de­me­mo­ria­09h­del­ban­co

0,­en­él­se­car­ga­di­rec­ta­men­te­la­di­rec­ción­a­la­que

ac­ce­den­de­la­EE­PROM­de­da­tos.­Las­64­po­si­cio­nes

de­un­by­te­ocu­pan­las­di­rec­cio­nes­de­un­ma­pa­que

co­mien­za­en­la­po­si­ción­00h­y­ter­mi­na­en­la­3Fh,­por

eso­los­2­bits­de­más­pe­so­del­re­gis­tro­EEADR­siem­-

pre­va­len­0.

Los­bit­RD­y­WR­in­di­can­res­pec­ti­va­men­te­lec­tu­ra

o­es­cri­tu­ra.­No­hay­que­po­ner­los­a­0­só­lo­a­1.­Se­bo­-

rran­au­to­má­ti­ca­men­te­cuan­do­la­ope­ra­ción­de­lec­tu­-

ra­ha­si­do­com­ple­ta­da.

El­re­gis­tro­EE­CON2­no­es­tá­im­ple­men­ta­do­fí­si­ca­-

men­te,­por­lo­que­es­im­po­si­ble­leer­lo­(si­se­in­ten­ta

leer,­to­dos­sus­bits­se­po­nen­a­0).­Se­em­plea­co­mo

dis­po­si­ti­vo­de­se­gu­ri­dad­du­ran­te­el­pro­ce­so­de­es­-

cri­tu­ra­de­la­EE­PROM,­pa­ra­evi­tar­las­in­ter­fe­ren­cias

en­el­tiem­po­que­pre­ci­sa­su­de­sa­rro­llo.­La­se­gu­ri­dad

se­con­si­gue­es­cri­bien­do­los­va­lo­res­con­cre­tos­55h­y

AAh.­Un­ci­clo­de­es­cri­tu­ra­en­una­po­si­ción­EE­PROM

de­ da­tos­ tie­ne­ una­ du­ra­ción­ de­ 10­ ms,­ que­ es­ un

tiem­po­ muy­ gran­de­ pa­ra­ la­ ve­lo­ci­dad­ del­ pro­ce­sa­-

dor.

Microcontroladores PIC

34

Page 37: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Art Tapa - OBD y escaner.qxd:ArtTapa 17/01/14 09:56 Página 13

Page 38: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

36

Microcontroladores PIC

Manejo de las

Instrucciones de un PICUna ins truc ción es un co man do, par te del pro gra ma, que se le apli ca al PIC pa ra que lo in ter pre te y eje cu -

te su cum pli mien to. La ins truc ción se com po ne de una se rie de bits pre sen ta da en sec cio nes o po si cio nes per -

fec ta men te de li mi ta das, que el pro ce sa dor in ter pre ta pa ra cum plir una or den de sea da, que dan do es ta ble ci -

das las va ria bles que se mo di fi can.

Di cho de otra for ma, las ins truc cio nes po seen un for ma to de acuer do a un sis te ma de co di fi ca ción. El for -

ma to cam bia de acuer do con la ope ra ción que se va a rea li zar.

Page 39: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

37

In TrO dUC CIOn

Ca­da­ins­truc­ción,­pa­ra­la­lí­nea­ba­ja­de­los­PICs­ti­-

po­16C5X,­con­sis­te­en­una­pa­la­bra­de­12­bits­que­co­-

di­fi­ca­ en­ un­ so­lo­ blo­que,­ la­ or­den,­ el­ ope­ra­dor­ y­ la

ubi­ca­ción­del­re­sul­ta­do­o­el­sal­to­(en­ca­so­de­que­lo

hu­bie­re).­En­los­mi­cro­con­tro­la­do­res­PICs­ti­po­16X84

ca­da­ins­truc­ción­tie­ne­una­lon­gi­tud­de­14­bits.

Los­ bits­ que­ ac­túan­ co­mo­ da­tos­ de­ la­ me­mo­ria

EPROM­se­re­ci­ben­en­el­de­co­di­fi­ca­dor­de­ins­truc­cio­-

nes,­y­ope­ran­con­el­con­ta­dor­de­pro­gra­ma­y­el­re­gis­-

tro­de­tra­ba­jo­W,­pa­ra­ac­ce­der­a­lu­ga­res­es­pe­cí­fi­cos

del­mi­cro­con­tro­la­dor,­ ta­les­co­mo­ la­ALU,­po­si­cio­nes

de­me­mo­ria,­re­gis­tros,­etc.

Co­mo­sa­be­mos,­los­PICs­16X84­en­tre­otros,­ma­ne­-

jan­ un­ set­ re­du­ci­do­ de­ ins­truc­cio­nes­ (35­ ins­truc­cio­-

nes­en­lo­que­se­de­no­mi­na­RISC)­que­pre­sen­tan­una

co­di­fi­ca­ción­ muy­ par­ti­cu­lar­ lla­ma­da­ “for­ma­to­ de­ la

ins­truc­ción”.­

Ca­da­ins­truc­ción­po­see­su­for­ma­to­y­es­to­tal­men­-

te­de­fi­ni­do­por­MI­CRO­CHIP.­

En­la­fi­gu­ra­1­­po­de­mos­apre­ciar­“la­sin­ta­xis”­de

una­ins­truc­ción­del­set.­Se­tra­ta­de­la­ins­truc­ción­que

su­ma­el­con­te­ni­do­del­re­gis­tro­de­tra­ba­jo­con­el­con­-

te­ni­do­de­un­re­gis­tro­cu­ya­di­rec­ción­es­tá­de­ter­mi­na­-

da­por­el­ope­ra­dor­“f”.

En­ es­ta­ fi­gu­ra,­ en­ pri­mer­ lu­gar­ se­ ob­ser­va­ la

“sin­ta­xis”,­ es­ de­cir,­ la­ for­ma­ en

que­ el­ pro­gra­ma­dor­ es­cri­bi­rá­ la

ins­truc­ción­ en­ el­ len­gua­je­ “en­ten­-

di­ble­por­el­ope­ra­dor”­(el­pro­gra­ma

en­.asm).­La­co­di­fi­ca­ción­es­el­for­-

ma­to­ de­ la­ pa­la­bra­ que­ de­fi­ne­ la

ins­truc­ción­y­que­ve­re­mos­en­de­ta­-

lle­ lue­go.­ ­ No­te­ que­ pa­ra­ que­ se

com­ple­te­ la­ ins­truc­ción­se­ne­ce­si­-

ta­una­so­la­pa­la­bra­y­un­so­lo­ci­clo

del­con­ta­dor­de­pro­gra­mas.

Co­mo­ve­re­mos,­el­re­sul­ta­do­de­la

ope­ra­ción­se­guar­da­en­un­si­tio­de­fi­-

ni­do­por­el­pro­gra­ma­dor­(de­pen­dien­-

do­de­qué­es­ta­do­to­me­el­bit­“d”)­y

que­ es­ta­ ins­truc­ción­ mo­di­fi­ca­ los

bits­C,­DC­y­Z­del­re­gis­tro­de­es­ta­do

(STA­TUS).

Es­to­quie­re­de­cir­que­cuan­do­co­-

lo­co­la­ins­truc­ción:

ADDWF­­f,d

El­en­sam­bla­dor­ge­ne­ra­rá­el­có­di­go:

0001­11df­ffff

CAPITULO 2 - Manejo de las instrucciones de un PIC

Figura 1Figura 1

Figura 2Figura 2

Page 40: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

En­es­te­có­di­go,­los­seis­bits­de­ma­yor­pe­so­(bits­6

al­11­en­la­fi­gu­ra­2)­de­fi­nen­la­ope­ra­ción­que­va­a­rea­-

li­zar­ la­ ins­truc­ción­de­acuer­do­a­ lo­ re­que­ri­do­por­el

pro­gra­ma­dor.­ Aquí­ se

de­fi­ne­una­or­den­que­el

PIC­in­ter­pre­ta­y­eje­cu­ta

so­bre­ un­ ope­ran­do­ de­-

ter­mi­na­do,­ cu­ya­ di­rec­-

ción­ la­ bus­ca­ se­gún­ lo

in­di­ca­do­ por­ los­ 5­ bits

me­nos­ sig­ni­fi­ca­ti­vos

(bits­0­al­4­en­la­fi­gu­ra

2).

El­bit­5­es­un­có­di­go

de­ re­co­no­ci­mien­to­ de

des­ti­no­y­de­ter­mi­na­en

qué­lu­gar­se­va­a­alo­jar

el­ re­sul­ta­do­de­ la­ope­-

ra­ción.­ Si­ es­te­ bit­ es

“0”­ el­ des­ti­no­ de­ la

ope­ra­ción­ se­rá­ pues­to

en­el­re­gis­tro­de­tra­ba­-

jo­ (W).­ Si­ el­ bit­ “d”­ es

pues­to­a­“1”­el­des­ti­no

se­rá­ el­ de­ la­ po­si­ción

de­ me­mo­ria­ de­fi­ni­do

por­“f”.

Los­ cin­co­ bits­ de

me­nor­ pe­so­ en­ el­ for­-

ma­to­ de­ la­ ins­truc­ción

re­pre­sen­tan­ la­ di­rec­-

ción­ don­de­ es­tá­ guar­-

da­do­ el­ ope­ran­do­ (f),

que­es­tá­en­la­me­mo­ria

de­ da­tos­ y­ por­ te­ner

cin­co­bits­só­lo­po­de­mos­di­rec­cio­nar­una­de­las­32­po­-

si­cio­nes­de­me­mo­ria­de­da­tos.­

La­ma­yo­ría­de­las­ins­truc­cio­nes­se­rea­li­zan­en­un

ci­clo­de­con­ta­dor­de­pro­gra­ma­(ci­clo­de­ins­truc­ción)

ex­cep­to­las­ins­truc­cio­nes­de­sal­to­que­ne­ce­si­tan­dos

ci­clos­pa­ra­eje­cu­tar­la.

Se­ de­ter­mi­na­ el­ ci­clo­ de­ ins­truc­ción­ di­vi­dien­do

por­cua­tro­la­fre­cuen­cia­del­os­ci­la­dor,­ele­gi­da­pa­ra­el

fun­cio­na­mien­to­del­mi­cro­con­tro­la­dor­tal­co­mo­se­ob­-

ser­va­en­la­fi­gu­ra­3.

Es­de­cir,­la­se­ñal­que­pro­vie­ne­del­os­ci­la­dor­ex­ter­-

no,­ co­nec­ta­do­ a­ los­ pi­nes­ OSC1/CL­KIN­ y­ OSC2/CL­-

KOUT­ del­ mi­cro­con­tro­la­dor,­ se­ di­vi­de­ en­ cua­tro­ ci­-

clos,­ob­te­nién­do­se­así­la­se­ñal­re­que­ri­da­por­el­pro­-

ce­sa­dor­in­ter­no­pa­ra­rea­li­zar­las­ope­ra­cio­nes.­De­es­-

ta­ma­ne­ra­se­pue­de­rea­li­zar­la­bús­que­da­y­eje­cu­ción

de­la­ins­truc­ción.­

El­re­loj­de­ins­truc­ción­es­el­ci­clo­in­ter­no­que­po­-

see­el­mi­cro­con­tro­la­dor­pa­ra­cro­no­me­trar­el­tiem­po

de­eje­cu­ción­de­las­ins­tru­cio­nes.­

Los­pul­sos­en­tran­tes­del­re­loj­son­di­vi­di­dos­por­4,

ge­ne­ran­do­di­fe­ren­tes­se­ña­les­de­no­mi­na­das­Q1,­Q2,

Q3­y­Q4.­El­es­ta­do­Q1­ha­ce­in­cre­men­tar­el­con­ta­dor

Microcontroladores PIC

38

Figura 4Figura 4

Figura 3Figura 3

Page 41: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

de­pro­gra­ma,­Q2­y­Q3,­se­en­car­gan­de­la­de­co­di­fi­ca­-

ción­y­eje­cu­ción­de­la­ins­truc­ción­y­por­úl­ti­mo,­Q4­es

la­fa­se­de­bús­que­da­de­la­ins­truc­ción.­El­có­di­go­se­al­-

ma­ce­na­en­el­re­gis­tro­de­ins­truc­cio­nes.­

EL SET dE InS TrUC CIO nES dEL 16X84Vi­mos­có­mo­es­ la­es­truc­tu­ra­de­una­ ins­truc­ción,

ra­zón­ por­ la­ cual­ le­ re­co­men­da­mos­ que­ lea­ nue­va­-

men­te­el­co­mien­zo­de­es­te­ca­pí­tu­lo­si­no­en­tien­de­lo

que­a­con­ti­nua­ción­ex­pre­sa­re­mos.­

Los­có­di­gos­(de­no­mi­na­dos­mne­mó­ni­cos)­que­sim­-

bo­li­zan­un­con­jun­to­de­ins­truc­cio­nes,­re­pre­sen­tan­la

ta­rea­ que­ de­be­ ha­cer­ el­ mi­cro­con­tro­la­dor­ una­ vez

que­las­ana­li­ce­en­fun­ción­del­ope­ran­do.­

Un­ mne­mó­ni­co­ ayu­da­ a­ re­cor­dar­ el­ sig­ni­fi­ca­do

que­tie­ne­la­ins­truc­ción.­

Pa­ra­po­der­ana­li­zar­al­con­jun­to­de­ ins­truc­cio­nes

que­con­for­man­el­set­RISC,­se­ los­sue­le­agru­par­ te­-

nien­do­en­cuen­ta­el­ ti­po­de­ope­ra­ción­que­ rea­li­zan,

así­ es­ co­mún­que­se­ las­pre­sen­te­ba­jo­ cua­tro­po­si­-

bles­for­mas,­a­sa­ber:

1. Ins truc cio nes orien ta das a re gis tros.

2. Ins truc cio nes orien ta das a bits.

3. Ins truc cio nes con li te ra les.

4. Ins truc cio nes de con trol y es pe cia les.

En­la­fi­gu­ra­4­ve­mos­un­cua­dro­don­de­se­re­pro­du­-

cen­las­ins­truc­cio­nes­orien­ta­das­a­re­gis­tros,­la­fi­gu­ra

5­mues­tra­las­ope­ra­cio­nes­orien­ta­das­a­bits­y­la­fi­gu­-

ra­6­nos­per­mi­te­co­no­cer­cuá­les­son­las­ins­truc­cio­nes

con­li­te­ra­les­y­de­con­trol.

So­bre­las­no­tas­a­las­que­ha­ce­mos­re­fe­ren­cia­en

di­chas­fi­gu­ras,­de­be­te­ner­en­cuen­ta­lo­si­guien­te:

No­ta­1. Al­mo­di­fi­car­un­re­gis­tro­de­en­tra­da­/sa­li­da

(E/S)­con­una­ope­ra­ción­so­bre­él­mis­mo­(por­ejem­plo

MOVF­ PORTB,1),­ el­ va­lor­ uti­li­za­do­ es­ el­ que­ se­ en­-

cuen­tre­pre­sen­te­en­las­pa­tas­del­PORTB.­

Por­ejem­plo,­si­el­bies­ta­ble­tie­ne­un­"1"­pa­ra­una

pa­ta­con­fi­gu­ra­da­co­mo­en­tra­da­y­se­po­ne­a­ni­vel­ba­-

jo­des­de­el­ex­te­rior,­el­da­to­se­vol­ve­rá­a­es­cri­bir­co­-

mo­un­"0".­

No­ta­ 2. Si­ se­ eje­cu­ta­ es­ta­ ins­truc­ción­ so­bre­ el

TMR0­ y­ d=1,­ se­rá­ bo­rra­do­ el­ di­vi­sor­ de­ fre­cuen­cia

(prees­ca­ler),­si­es­tá­asig­na­do­al­TMR0.­

CAPITULO 2 - Manejo de las instrucciones de un PIC

39

Figura 5Figura 5

Figura 6Figura 6

Page 42: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

40

No­ta­ 3. Si­ se­mo­di­fi­ca­ el­ Con­ta­dor­ de­ Pro­gra­ma

(PC­ó­CP)­o­es­ver­da­de­ra­una­con­di­ción­de­prue­ba,­la

ins­truc­ción­re­quie­re­dos­ci­clos­de­má­qui­na.­El­se­gun­-

do­ci­clo­se­eje­cu­ta­co­mo­un­NOP.

En­la­figura­7­vemos­có­mo­de­ben­em­plear­se­ca­da

una­de­es­tas­ins­truc­cio­nes:

C­Se­po­ne­a­1­si­se­pro­du­ce­un­aca­rreo­des­de­el

bit­de­ma­yor­pe­so.

DC­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­3­al

bit­4.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

Que­re­mos­su­mar­el­con­te­ni­do­del­re­gis­tro­­de­tra­-

ba­jo­con­el­nú­me­ro­10­ex­pre­sa­do­en­he­xa­de­ci­mal,­la

ins­truc­ción­se­rá:

ADDLW­H´10´

La­ no­ta­ción­ H´10´­ sig­ni­fi­ca­ que­ el­ nú­me­ro­ es­tá

ex­pre­sa­do­ en­ he­xa­de­ci­mal.­ Si­ la­ no­ta­ción­ fue­se

D´10´­sig­ni­fi­ca­que­el­nú­me­ro­es­tá­ex­pre­sa­do­en­de­-

ci­mal­y­si­fue­se­B´10´­en­ton­ces­el­nú­me­ro­es­tá­en­no­-

ta­ción­bi­na­ria.

Vol­vien­do­a­nues­tro­ejem­plo:

Si­an­tes­de­la­ins­truc­ción­te­nía­en­ca­da­re­gis­tro:

W­=­21h­­­­(21h­sig­ni­fi­ca­que­el­nú­me­ro­es­tá­ex­pre­-

sa­do­en­he­xa­de­ci­mal,­que­es­lo­mis­mo­que­0010­0001

b­–ex­pre­sa­do­en­bi­na­rio-)

Al­ eje­cu­tar­se­ la­ ins­truc­ción,­ se­ su­ma­rán­ am­bos

nú­me­ros­y­el­re­sul­ta­do­se­guar­da­en­el­re­gis­tro­W,­es

de­cir:

W­=­21­h­+­10­h­=­31­h­(en­he­xa­de­ci­mal),­ó

W­=­0001­0000­b­+­0001­0000­b­=­0010­0000­b­(en

bi­na­rio)­(Vea­la­figura­8).

C­Se­po­ne­a­1­si­se­pro­du­ce­un­aca­rreo­des­de­el

bit­de­ma­yor­pe­so.

DC­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­3­al

bit­4.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

Su­pon­ga­mos­que­rer­su­mar­el­con­te­ni­do­del­re­gis­-

tro­de­tra­ba­jo­con­el­con­te­ni­do­de­un­re­gis­tro­lla­ma­-

do­REG,­y­que­re­mos­guar­dar­el­re­sul­ta­do­en­el­re­gis­-

tro­de­tra­ba­jo,­la­no­ta­ción­se­rá:

ADDWF­ REG,0

Si­an­tes­de­la­ins­truc­ción­W­=­10­h­y­REG­=­21­h,­el

re­sul­ta­do­de­la­su­ma­se­rá­31­h­que­se­guar­da­rá­en­el

re­gis­tro­de­tra­ba­jo,­es­de­cir,­lue­go­de­la­su­ma­el­con­-

te­ni­do­de­los­re­gis­tros­se­rá:

W­=­31­h REG­=­21­h

Microcontroladores PIC

Figura 7Figura 7

Page 43: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

No­te­que­el­con­te­ni­do­del­re­gis­tro­­REG­no­se­mo­-

di­fi­có­lue­go­de­la­ope­ra­ción.­Si­la­ins­truc­ción­hu­bie­se

si­do:

ADDWF­­ REG,1

En­ton­ces­ el­ re­sul­ta­do­ se­ hu­bie­se­ guar­da­do­ en

REG,­por­lo­tan­to,­lue­go­de­la­ope­ra­ción­el­con­te­ni­do

de­los­re­gis­tros­se­ría:

W­=­10­h REG­=­31­h

Ver­figura­9.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

Su­pon­ga­mos­que­rer­ha­cer­ la­ fun­ción­ ló­gi­ca­AND

en­tre­el­nú­me­ro­0001­0010­b­que­es­tá­al­ma­ce­na­do­en

el­re­gis­tro­de­tra­ba­jo­y­el­nú­me­ro­0011­1001­b.­La­ins­-

truc­ción­se­rá:

ANDLW­ B´00111001´

Lue­go,­an­tes­de­la­ins­truc­ción­te­nía­mos:

W­=­0001­0010­b

Se­rea­li­za­la­ope­ra­ción:

(0001­0010)­AND­(0011­1001)­=­0001­0000

Lue­go­de­la­ins­truc­ción,­en­W­ten­dre­mos:

W­=­0001­0000­b­(Vea­la­figura­10)

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­ro

CAPITULO 2 - Manejo de las Instrucciones de un PIC

41

Figura 8Figura 8

Figura 9Figura 9

Figura 10Figura 10

Page 44: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

EJEM PLO:

Que­re­mos­ rea­li­zar­ la­ope­ra­ción­AND­en­tre­el­nú­-

me­ro­0001­1110­b­que­es­tá­al­ma­ce­na­do­en­el­re­gis­tro

ST­y­el­nú­me­ro­1001­0110­b­que­es­tá­al­ma­ce­na­do­en

el­re­gis­tro­de­tra­ba­jo,­la­ins­truc­ción­se­rá:

ANDWF­ ST,1

An­tes­de­eje­cu­tar­se­la­ins­truc­ción­te­ne­mos:

W­=­1001­0110­b ST­=­0001­1110­b

Se­rea­li­za­rá­la­ope­ra­ción:

(1001­0110)­AND­(0001­1110)­=­0001­0110­

Es­de­cir­que­en­los­re­gis­tros,­lue­go­de­eje­cu­ta­da

la­ins­truc­ción­ten­dre­mos:

W­=­1001­0110­b­(no­ha­cam­bia­do)

ST­=­0001­0110­ (se­ha­al­ma­ce­na­do­el­ re­sul­ta­do).

(Fig.­11)

EJEM PLO:

Que­re­mos­ po­ner­ a­ “0”­ el­ bit­ Nº­ 5­ del­ re­gis­tro

DESC,­lue­go­la­ins­truc­ción­se­rá:

BCF DESC,­5

Si­an­tes­de­la­ins­truc­ción­el­re­gis­tro­DESC­te­nía:

DESC­=­­1111­0111­b

Al­eje­cu­tar­se­la­ins­truc­ción,­el­re­gis­tro­que­da­con

el­va­lor:­

DESC­=­­1110­0111­b

No­ta: Re­cuer­de­que­el­bit­me­nos­sig­ni­fi­ca­ti­vo­es

el­ce­ro­y­el­más­sig­ni­fi­ca­ti­vo­es­el­7,­es­de­cir,­los­ocho

bits­de­un­re­gis­tro­se­nu­me­ran­de­0­a­7.­Vea­la­figura

12.

EJEM PLO:

Que­re­mos­ po­ner­ a­ “1”­ el­ bit­ Nº­ 0­ del­ re­gis­tro

DESC,­lue­go­la­ins­truc­ción­se­rá:

BSF DESC,­0

Si­an­tes­de­la­ins­truc­ción­el­re­gis­tro­DESC­te­nía:

DESC­=­­1111­0111­b

Al­eje­cu­tar­se­la­ins­truc­ción,­el­re­gis­tro­que­da­con

el­va­lor:­

DESC­=­­1111­0110­b­(Vea­la­figura­13)

EJEM PLO:

RU­TI­NA BTFSC REG,2

GO­TO DEC

GO­TO SIM

Bien,­aquí­he­mos­in­tro­du­ci­do­al­gu­nas­va­ria­bles­a

sa­ber:

RU TI NA es­una­eti­que­ta,­de­mo­do­tal­que­cuan­do

al­gu­na­ins­truc­ción­ha­ga­que­el­con­ta­dor­de­pro­gra­ma

Microcontroladores PIC

42

Figura 12Figura 12

Figura 11Figura 11

Page 45: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

apun­te­a­di­cha­eti­que­ta,­en­ton­ces­se­eje­cu­ta­rá­la­ins­-

truc­ción­BTFSC.

REG es­un­re­gis­tro­que­yo­de­bía­ha­ber­pos­tu­la­do

con­an­te­rio­ri­dad­en­el­pro­gra­ma.

DEC y SIM son­eti­que­tas,­de­mo­do­que­cuan­do­el

con­ta­dor­de­pro­gra­ma­es­tá­apun­tan­do­a­la­lí­nea:

GO­TO DEC­

En­ton­ces­el­pro­gra­ma­se­se­gui­rá­eje­cu­tan­do­des­-

de­la­lí­nea­don­de­es­té­la­eti­que­ta­DEC.

Si­an­tes­de­la­ins­truc­ción­el­con­ta­dor­de­pro­gra­ma

(PC­ó­CP)­es­tá­en­la­lí­nea­don­de­se­en­cuen­tra­la­eti­-

que­ta­RU­TI­NA,­ en­ton­ces­ se­ eje­cu­ta­rá­ la­ ins­truc­ción

BTFSC.­Al­eje­cu­tar­se,­si­el­BIT­2­del­ re­gis­tro­REG­es

igual­a­ce­ro,­el­con­ta­dor­de­pro­gra­ma­“sal­ta­rá”­una­lí­-

nea­e­irá­a­eje­cu­tar­la­ins­truc­ción:

GO­TO SIM­

Por­úl­ti­mo,­no­te­que­en­es­ta­ins­truc­ción­te­ne­mos

tres­co­lum­nas­y­es­ la­ for­ma­en­que,­en­ge­ne­ral,­ va­-

mos­ a­ es­cri­bir­ un­ pro­gra­ma­ en­ len­gua­je­ de­ usua­rio

(edi­tar­un­pro­gra­ma).­En­la­pri­me­ra­co­lum­na­se­co­lo­-

can­las­“eti­que­tas”,­en­la­se­gun­da­co­lum­na­se­es­cri­-

be­siem­pre­la­ins­truc­ción­y­en­la­ter­ce­ra­co­lum­na­se

es­cri­be­el­ope­ran­do­de­ la­ ins­truc­ción.­Nor­mal­men­te

va­una­cuar­ta­co­lum­na­pre­ce­di­da­del­sig­no­; (pun­to­y

co­ma)­que­se­uti­li­za­pa­ra­es­cri­bir­ob­ser­va­cio­nes­que

no­se­rán­te­ni­das­en­cuen­ta­por­el­com­pi­la­dor­o­el­en­-

sam­bla­dor­que­con­ver­ti­rá­al­pro­gra­ma­que­es­ta­ba­en

len­gua­je­de­usua­rio­en­un­pro­gra­ma­en­ len­gua­je­de

má­qui­na­(pa­ra­los­PICS­es­un­len­gua­je­he­xa­de­ci­mal­o

.hex).

La­mis­ma­ ins­truc­ción­ de­ nues­tro­ ejem­plo­ la­ po­-

dría­mos­es­cri­bir­de­la­si­guien­te­ma­ne­ra:

RU TI NA BTFSC REG,2

;co mien zo de una ru ti na

La­cuar­ta­co­lum­na­no­se­rá­te­ni­da­en­cuen­ta­da­do

que­es­tá­pre­ce­di­da­del­sig­no­;­(Vea­la­figura­14).

EJEM PLO:

RU­TI­NA BTFSS REG,0

GO­TO DEC

GO­TO SIM

Igual­ que­en­el­ ca­so­an­te­rior­ he­mos­ in­tro­du­ci­do

al­gu­nas­va­ria­bles­a­sa­ber:

RU TI NA es­una­eti­que­ta,­de­mo­do­tal­que­cuan­do

al­gu­na­ins­truc­ción­ha­ga­que­el­con­ta­dor­de­pro­gra­ma

apun­te­a­di­cha­eti­que­ta,­en­ton­ces­se­eje­cu­ta­rá­la­ins­-

truc­ción­BTFSS.

REG es­un­re­gis­tro­que­yo­de­bía­ha­ber­pos­tu­la­do

con­an­te­rio­ri­dad­en­el­pro­gra­ma.

DEC y SIM son­eti­que­tas,­de­mo­do­que­cuan­do­el

con­ta­dor­de­pro­gra­ma­es­tá­apun­tan­do­a­la­lí­nea:

GO­TO DEC­

En­ton­ces­el­pro­gra­ma­se­se­gui­rá­eje­cu­tan­do­des­-

de­la­lí­nea­don­de­es­té­la­eti­que­ta­DEC.

Si­an­tes­de­la­ins­truc­ción­el­con­ta­dor­de­pro­gra­ma

PC­es­tá­ en­ la­ lí­nea­ don­de­ se­ en­cuen­tra­ la­ eti­que­ta

RU­TI­NA,­en­ton­ces­se­eje­cu­ta­rá­la­ins­truc­ción­BTFSS.

Al­eje­cu­tar­se,­si­el­BIT­0­del­ re­gis­tro­REG­es­ igual­a

uno,­el­con­ta­dor­de­pro­gra­ma­“sal­ta­rá”­una­lí­nea­e­irá

CAPITULO 2 - Manejo de las Instrucciones de un PIC

43

Figura 13Figura 13 Figura 14Figura 14

Page 46: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

a­eje­cu­tar­la­ins­truc­ción:

GO­TO SIM­­(Ver­figura­15)

EJEM PLO:

DIV CALL RU­TIN

En­la­lí­nea­DIV­se­en­cuen­tra­la­ ins­truc­ción­CALL.

Cuan­do­el­PC­apun­ta­a­es­ta­lí­nea,­au­to­má­ti­ca­men­te

va­a­eje­cu­tar­un­pro­gra­ma­que­se­en­cuen­tra­en­la­lí­-

nea­que­po­see­la­eti­que­ta­RU­TIN.­Cuan­do­ter­mi­na­de

eje­cu­tar­se­la­su­bru­ti­na,­se­vuel­ve­al­pro­gra­ma­prin­ci­-

pal­ a­ la­ lí­nea­ si­guien­te­ a­ DIV­ (se­ di­ce­ DIV+1).­ ­ (Ver

figura­16).

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

CLRF­ REG

Si­an­tes­de­la­ins­truc­ción:

REG­=­5A­h­

Al­eje­cu­tar­se:­

REG­=­00­h

flag­Z­=­1 (Vea­la­figura­17)

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:­­­­

CLRW­

Si­an­tes­de­la­ins­truc­ción:

W=­0011­1111­b­

Al­eje­cu­tar­se:­

W­=­00

flag­Z­=­1

En­ de­fi­ni­ti­va,­ es­ una­ ins­truc­ción­ que­ se­ uti­li­za

cuan­do­ de­be­mos­ ase­gu­rar­nos­ que­ el­ con­te­ni­do­ del

Microcontroladores PIC

44

Figura 17Figura 17

Figura 16Figura 16

Figura 15Figura 15

Page 47: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

re­gis­tro­de­tra­ba­jo­es­igual­a­“0”.

Observe­la­figura­18.­Cuan­do­se­eje­cu­tan­las­ins­-

truc­cio­nes­CLRWDT­o­SLEEP,­T0#­se­po­ne­a­1.­Se­po­ne

a­0­si­el­tem­po­ri­za­dor­Watch­dog­se­des­bor­da.

PD#­ se­ po­ne­ a­ 1­ cuan­do­ eje­cu­ta­ la­ ins­truc­ción

CLRWDT­o­SLEEP.

EJEM PLO:

CLRWDT­

Si­an­tes­de­eje­cu­tar­se­la­ins­truc­ción:­

WDT­=­0000­0100­b

Al­eje­cu­tar­se:­

WDT­=­0000­0000­b

Prees­ca­ler­WDT­=­0

bit­de­es­ta­do­T0­=­1

bit­de­es­ta­do­PD­=­1

Ver­figura­19.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

COMF­DIS,0

Rea­li­za­el­com­ple­men­to­del­nú­me­ro­al­ma­ce­na­do

en­el­re­gis­tro­DIS­y­guar­da­el­re­sul­ta­do­en­el­re­gis­tro

W.­Si­an­tes­de­la­ins­truc­ción:

DIS­=­0011­1110­b

W­=­0000­0000­b

Al­eje­cu­tar­se:­

DIS­=­0011­1110­b

W­=­1100­0001­b

flag­Z­=­0

Ver­figura­20.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

CAPITULO 2 - Manejo de las Instrucciones de un PIC

45

Figura 18Figura 18 Figura 19Figura 19

Figura 20Figura 20

Page 48: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

EJEM PLO:

DECF­SINT,1

Cuan­do­el­PC­lle­ga­a­es­ta­lí­nea,­se­de­cre­men­ta­el

con­te­ni­do­ del­ re­gis­tro­ SINT­ y­ en­ di­cho­ re­gis­tro­ se

guar­da­el­re­sul­ta­do.­El­re­gis­tro­de­tra­ba­jo­no­in­ter­vie­-

ne­pa­ra­na­da.­Si­an­tes­de­la­ins­truc­ción:

SINT­=­0011­0111­b­

Z­=­0

Al­eje­cu­tar­se:­

SINT­=­0011­0110­b­

Z­=­0

Vea­la­figura­21.

EJEM PLO:

TEMP DECFSZ DEL,1

GO­TO­ TEMP

CLRF­ REG

Con­es­tas­lí­neas­de­pro­gra­ma­es­ta­mos­rea­li­zan­do

una­ “tem­po­ri­za­cón”,­ con­su­mien­do­ ci­clos­ de­ re­loj.

Cuan­do­el­PC­se­ubi­ca­en­la­lí­nea­TEMP,­se­de­cre­men­-

ta­el­con­te­ni­do­del­re­gis­tro­DEL.­Su­pon­ga­mos­que­el

re­gis­tro­DEL­es­ta­ba­car­ga­do­con­el­nú­me­ro­50­ex­pre­-

sa­do­ en­ no­ta­ción­ de­ci­mal,­ al­ eje­cu­tar­se­ la­ ins­truc­-

ción,­ aho­ra­ el­ con­te­ni­do­ de­ di­cho­ re­gis­tro­ se­rá­ 49

(dis­tin­to­de­ce­ro)­por­lo­tan­to­el­PC­se­ubi­ca­rá­en­la­si­-

guien­te­ lí­nea­ (GO­TO­ TEMP).­ Cuan­do­ es­to­ ocu­rre,­ la

ins­truc­ción­es­tá­en­vian­do­al­PC­nue­va­men­te­a­la­eti­-

que­ta­TEMP,­con­lo­cual­se­vol­ve­rá­a­de­cre­men­tar­el

con­te­ni­do­del­re­gis­tro­DEL­que­aho­ra­ten­drá­car­ga­do

el­nú­me­ro­48.­

Es­te­ci­clo­se­re­pi­te­cons­tan­te­men­te­has­ta­que­en

el­re­gis­tro­DEL­se­en­cuen­tre­el­nú­me­ro­00­en­cu­yo­ca­-

so­el­CP­sal­ta­rá­una­lí­nea­y­eje­cu­ta­rá­la­si­guien­te­ins­-

truc­ción­que­en­es­te­ca­so­es­CLRF­REG.

Vea­la­figura­22.

EJEM PLO:

GO­TO­ TEMP

Al­ eje­cu­tar­se­ la­ ins­truc­ción,­ el­ con­ta­dor­ de­ pro­-

gra­ma­se­di­ri­ge­a­la­di­rec­ción­don­de­se­en­cuen­tra­la

eti­que­ta­TEMP.

Vea­la­figura­23.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro­al­ha­ber­des­bor­da­mien­to.

EJEM PLO:

INCF­ REG,1

Cuan­do­el­PC­lle­ga­a­es­ta­ins­truc­ción­se­in­cre­men­-

ta­ el­ con­te­ni­do­ del­ re­gis­tro­ REG­ y­ el­ re­sul­ta­do­ se

guar­da­en­el­mis­mo­re­gis­tro,­en­es­te­ca­so­el­re­gis­tro

de­tra­ba­jo­no­in­ter­vie­ne­pa­ra­na­da.­Si­an­tes­de­la­ins­-

truc­ción:

REG­=­FF­h

flag­Z­=­0­

Microcontroladores PIC

46

Figura 22Figura 22

Figura 21Figura 21

Page 49: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Al­eje­cu­tar­se:­­­­­

REG­=­00­(FF­h­+1­h­=­00­h)

flag­Z­=­1

Vea­la­figura­24.

EJEM PLO:

ABA INCFSZ­ DEN,1

GO­TO­ ABA

GO­TO SI­GA

Pa­ra­en­ten­der­có­mo­es­que­si­in­cre­men­ta­mos­un

nú­me­ro­en­al­gún­mo­men­to­és­te­pue­de­lle­gar­a­ce­ro,

hay­que­de­cir­que­cuan­do­se­lle­ga­a­la­ca­pa­ci­dad­má­-

xi­ma­de­un­re­gis­tro,­el­pró­xi­mo­in­cre­men­to­ha­rá­que

és­te­se­co­lo­que­en­ce­ro­(en­to­dos­sus­bits)­pro­du­cién­-

do­se­un­des­bor­de.

Si­el­re­gis­tro­DEN­te­nía­el­nú­me­ro:

DEN­=­­0111­0001­b

Al­eje­cu­tar­se­la­ins­truc­ción­INCFSZ:

DEN­=­­0111­0010­b­(se­in­cre­men­tó­en­una­uni­dad)

En­ton­ces­el­PC­va­a­la­di­rec­ción­GO­TO­ABA­lo­que

ha­ce­que­se­vuel­va­a­in­cre­men­tar­nue­va­men­te­el­con­-

te­ni­do­de­DEN.­

Es­te­ci­clo­se­re­pi­te­has­ta­que­el­con­te­ni­do­de­DEN

sea­ce­ro­en­cu­yo­ca­so­el­PC­sal­ta­una­ ins­truc­ción­y

eje­cu­ta­rá­la­lí­nea­GO­TO­SI­GA­(SI­GA­es­el­nom­bre­que

le­he­mos­da­do­a­otra­va­ria­ble­o­re­gis­tro).­Vea­la­figu-

ra­25.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­ro

EJEM­PLO:­­­­­

IORLW­ 0x32

O­sea­que­se­rea­li­za­la­ope­ra­ción­OR­en­tre­el­con­-

te­ni­do­del­re­gis­tro­de­tra­ba­jo­y­el­nú­me­ro­32­ex­pre­sa­-

do­en­he­xa­de­ci­mal,­lue­go:

32­h­=­0011­0010­b

Si­en­W­es­tá­al­ma­ce­na­do­el­nú­me­ro:

W­=­0001­1110­b,­lue­go­de­la­ins­truc­ción,­en

el­re­gis­tro­de­tra­ba­jo­se­al­ma­ce­na­rá­el­re­sul­ta­-

do­es­de­cir:

CAPITULO 2 - Manejo de las Instrucciones de un PIC

47

Figura 23Figura 23

Figura 24Figura 24 Figura 25Figura 25

Page 50: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

W­=­0010­1100­b

Ver­figura­26.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

IORWF­ RES,1

Si­an­tes­de­la­ins­truc­ción:

RES­=­13­h­=­0001­0011­b

W­=­91­h­=­1001­0001­b

Al­eje­cu­tar­se­la­ins­truc­ción:

RES­=­0001­0011­b­OR­1001­0001­b­=­1001­0011­b

=­93­h

El­con­te­ni­do­del­re­gis­tro­de­tra­ba­jo­no­se­al­te­ra.

Vea­la­figura­27.

EJEM PLO:

MOVLW­ 0x50

Al­eje­cu­tar­se­la­ins­truc­ción,­en­el­re­gis­tro­de­tra­-

ba­jo­ten­dre­mos:

W­=­50­h

La­ ins­truc­ción­ MOVLW­ sue­le­ em­plear­se­ en­ la

cons­truc­ción­ de­ las­ de­no­mi­na­das­ “ta­blas”­ que­ se

cons­tru­yen­me­dian­te­la­com­pa­ra­ción­de­nú­me­ros.­En

ese­ca­so­se­car­ga­di­rec­ta­men­te­en­el­re­gis­tro­de­tra­-

ba­jo­el­nú­me­ro­de­re­fe­ren­cia­que­se­com­pa­ra­rá­con

can­ti­da­des­al­ma­ce­na­das­en­me­mo­ria­(da­tos)­me­dian­-

te­una­ins­truc­ción­pos­te­rior.­Vea­la­figura­28.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

EJEM PLO:

MOVF SER,0

Si­el­con­te­ni­do­del­re­gis­tro­SER­es:

SER­=­12­h

Lue­go­de­eje­cu­tar­se­la­ins­truc­ción­se­ten­drá:

Microcontroladores PIC

48

Figura 27Figura 27

Figura 28Figura 28Figura 26Figura 26

Page 51: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

W­=­12­h

SER­=­12­h

No­te­que­en­es­te­ca­so­si­el­ope­ran­do­hu­bie­se­si­do

SER,1,­ en­ton­ces­el­ pro­pio­ con­te­ni­do­del­ re­gis­tro­ se

hu­bie­se­car­ga­do­en­el­mis­mo­re­gis­tro,­lo­que­se­em­-

plea­pa­ra­co­rro­bo­rar­que­real­men­te­esa­po­si­ción­de

me­mo­ria­tie­ne­el­da­to­es­pe­ra­do.­Vea­la­figura­29.

EJEM PLO:­­­­­

MOVWF DIR

En­es­te­ca­so­se­car­ga­al­re­gis­tro­DIR­con­el­con­te­-

ni­do­del­re­gis­tro­de­tra­ba­jo­(W).­Si­an­tes­de­la­ins­truc­-

ción:

W­=­4C­h

Al­eje­cu­tar­se:­

DIR­=­4C­h

W­=­4C­h

MOVWF­es­ una­de­ las­ ins­truc­cio­nes­más­em­plea­-

das­pa­ra­la­cons­truc­ción­de­pro­gra­mas­da­do­que­sue­-

le­ser­el­me­dio­em­plea­do­pa­ra­car­gar­da­tos­en­po­si­cio­-

nes­de­me­mo­ria­RAM.­Pa­ra­que­ten­ga­una­idea,­es­muy

co­mún­en­con­trar­la­si­guien­te­se­cuen­cia:

MOVLW d’22”

MOVWF DIR

Aquí­he­mos­car­ga­do­al­re­gis­tro­DIR­con­el­nú­me­ro

22­ex­pre­sa­do­en­de­ci­mal.­Vea­la­figura­30.

EJEM PLO:

NOP

Vea la figura 31.

EJEM PLO:

RET­FIE

Al­eje­cu­tar­se­es­ta­ins­truc­ción­el­con­ta­dor­de­pro­-

gra­ma­se­di­ri­ge­a­la­di­rec­ción­car­ga­da­en­la­po­si­ción

más­al­ta­de­la­pi­la­y­el­bit­GIE­se­po­ne­a­1­con­el­ob­-

je­to­de­ha­bi­li­tar­ ­nue­va­men­te­ la­po­si­bi­li­dad­de­ in­te­-

rrup­ción.­Vea­la­figura­32.

EJEM PLO:

RETLW k

Co­mo­es­ ló­gi­co,­es­ta­ ins­truc­ción­es­tá­ li­ga­da­con

las­su­bru­ti­nas,­da­do­que­nos­in­di­ca­que­és­ta­ha­ter­-

mi­na­do­y­el­re­tor­no­in­me­dia­to­con­la­car­ga­en­el­re­-

gis­tro­de­tra­ba­jo­W­de­un­nú­me­ro­que­es­tá­ex­pre­sa­do

en­ la­ si­guien­te­ co­lum­na­ de­ la­ ins­truc­ción.­ Ade­más

car­ga­al­CP­con­el­ va­lor­que­pre­via­men­te­al­ma­ce­nó

CAPITULO 2 - Manejo de las Instrucciones de un PIC

49

Figura 30Figura 30

Figura 31Figura 31

Figura 29Figura 29

Page 52: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

en­la­PI­LA­(STACK).­

Es­ta­ins­truc­ción­tar­da­dos­ci­clos­de­ins­truc­ción.­

Siem­pre­W­de­be­ re­gre­sar­ con­un­ li­te­ral­ (mu­chas

ve­ces­ese­li­te­ral­es­ce­ro).­Mu­chas­ve­ces­es­útil­es­ta

ins­truc­ción,­es­pe­cial­men­te­cuan­do­de­sea­mos­re­gre­-

sar­al­pro­gra­ma­prin­ci­pal­con­al­gún­va­lor­ob­te­ni­do­de

la­su­bru­ti­na.­Vea­la­figura­33.

Es­ta­ins­truc­ción­no­ame­ri­ta­ejem­plo­al­gu­no,­da­do

que­ cuan­do­ és­ta­ se­ eje­cu­ta,­ se­ vuel­ve­ al­ pro­gra­ma

prin­ci­pal­a­una­di­rec­ción­que­es­tá­al­ma­ce­na­da­en­el

STACK.­Vea­la­figura­34.

EJEM PLO:

RLF REG,0

Si­an­tes­de­la­ins­truc­ción:

REG­=­1110­0110­b

flag­C­=­0

Co­mo­d­=­0­el­re­sul­ta­do­se­guar­da­rá­en­W.

Al­eje­cu­tar­se­la­ins­truc­ción:­­­

REG­=­1110­0110­b

W­=­1100­1100­b

flag­C­=­1­

Vea­la­figura­35

Microcontroladores PIC

50

Figura 35Figura 35

Figura 32Figura 32

Figura 33Figura 33

Figura 34Figura 34

Page 53: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

EJEM PLO:

RRF­ REG,0

Si­an­tes­de­la­ins­truc­ción:­

REG1­=­1110­0110­b

flag­C­=­1

Co­mo­d­=­0­el­re­sul­ta­do­se­guar­da­rá­en­W.

Al­eje­cu­tar­se­la­ins­truc­ción:

REG­=­1110­0110­b

W­=­0111­0011­b

flag­C­=­0

Vea­la­figura­36

TO­Se­po­ne­a­1­al­eje­cu­tar­la­ins­truc­ción­SLEEP­o

CLRWDT.

PD­Se­po­ne­a­0­al­eje­cu­tar­la­ins­truc­ción­SLEEP.

Es­una­ins­truc­ción­muy­usa­da­en­pro­gra­mas­al­ma­-

ce­na­dos­ en­ los­ mi­cro­pro­ce­sa­do­res­ em­plea­dos­ en

con­tro­les­ re­mo­to.­ Nor­mal­men­te­ el­ cir­cui­to­ es­tá­ en

mo­do­SLEEP­mien­tras­no­se­de­tec­te­la­ac­ción­de­una

te­cla,­pe­ro­cuan­do­no­hay­nin­gu­na­or­den,­vuel­ve­a­es­-

te­es­ta­do.­Vea­la­figura­37.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­-

ro.

DC­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­3­al

gru­po­de­4­bits­su­pe­rior.

C­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­de

ma­yor­pe­so.

EJEM PLO:

SUBLW­ 0x­05

a)­Si­an­tes­de­la­ins­truc­ción:

W­=­01­h

Al­eje­cu­tar­se­la­ins­truc­ción:­

W­=­(05­–­01)­=­04

flag­C­=­1­;­el­re­sul­ta­do­es­po­si­ti­vo

b)­Si­an­tes­de­la­ins­truc­ción:­W­=­05­h

Al­eje­cu­tar­se­la­ins­truc­ción:­W­=­(05­–­05)­=­00­h

flag­C­=­1­;­el­re­sul­ta­do­es­ce­ro

flag­Z­=­1

c)­Si­an­tes­de­la­ins­truc­ción.­W­=­07­h

Al­eje­cu­tar­se:­W­=­(05­–­07)­=­FE­h

flag­C­=­0­;­el­re­sul­ta­do­es­ne­ga­ti­vo.

Vea­la­figura­38.

Z­Se­po­ne­a­1­si­el­re­sul­ta­do­de­la­ope­ra­ción­es­ce­ro.

DC­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­3­al

gru­po­de­4­bits­su­pe­rior.

CAPITULO 2 - Manejo de las Instrucciones de un PIC

51

Figura 36Figura 36

Figura 37Figura 37

Page 54: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

C­Se­po­ne­a­1­si­se­ge­ne­ra­un­aca­rreo­del­bit­de

ma­yor­pe­so.

Ten­ga­pre­sen­te­que­el­com­ple­men­to­a­2­de­un­re­-

gis­tro­ (sus­traen­do),­ equi­va­le­ a­ res­tar­ di­cho­ re­gis­tro

de­256­(255+1).­Si­el­re­sul­ta­do­se­lo­de­be­mos­su­mar

a­otro­re­gis­tro­(mi­nuen­do),­si­el­mi­nuen­do­(que­lo­va­-

mos­ a­ su­mar),­ es­ ma­yor­ o­ igual­ que­ el­ sus­traen­do

(que­se­ lo­ res­ta­mos­a­256),­el­ re­sul­ta­do­se­rá­ma­yor

que­255­y­por­en­de­se­pro­du­ci­rá­un­des­bor­de­u­over­-

flow­con­lo­que­C="1".­Es­to­quie­re­de­cir­que­si­C=1­en­-

ton­ces­el­reul­ta­do­de­la­res­ta­es­po­si­ti­vo.

Pa­ra­el­aca­rreo­de­ci­mal,­el­bit­DC­se­co­lo­ca­rá­en

"1"­ cuan­do­ el­ va­lor­ del­ nib­ble­ me­nos­ sig­ni­fi­ca­ti­vo

(des­de­el­bit­0­al­3)­del­re­gis­tro­W,­sea­me­nor­que­el

nib­ble­me­nos­sig­ni­fi­ca­ti­vo­del­re­gis­tro­REG­(re­gis­tro

fuen­te).­

EJEM PLO:

SUBWF­ REG,1

a)­Si­an­tes­de­la­ins­truc­ción:

REG­=­04­h

W­=­02­h

Al­eje­cu­tar­se­la­ins­truc­ción:

REG­=­(04­–­02)­=­02h

W­=­02­h

flag­C­=­1­;­el­re­sul­ta­do­es­po­si­ti­vo

b)­Si­an­tes­de­la­ins­truc­ción:

REG­=­04­h

W­=­04­h

Al­eje­cu­tar­se­la­ins­truc­ción:

REG­=­(04­–­04)­=­00h

W­=­04­h

flag­C­=­1­;­el­re­sul­ta­do­es­ce­ro

flag­Z­=­1­;­el­re­sul­ta­do­es­ce­ro

c)­Si­an­tes­de­la­ins­truc­ción:

REG­=­0100­0110­b­(70­en­de­ci­mal)

W­=­1110­0000­b­(224­en­de­ci­mal)

Aquí­ocu­rre­un­ca­so­es­pe­cial,­vea­mos­por­qué.­La

ope­ra­ción­es­la­si­guien­te:

•­Se­ rea­li­za­el­ com­ple­men­to­a­2­del­ sus­traen­do

(com­ple­men­to­a­2­de­W)

•­Se­su­ma­el­con­te­ni­do­de­REG­con­di­cho­com­ple­-

men­to­a­2­de­W.

•­El­ re­sul­ta­do­de­es­ta­adi­ción,­se­rá­el­ re­sul­ta­do

de­la­res­ta.

Re­gis­tro­w 1110­0000

Com­ple­men­to­a­1 0001­1111

Su­man­do­1 +­­­­­­­­­­­­1

–––––––––––

Re­sul­ta­do 0010­0000­(com­ple­men­to­a­2

del­con­te­ni­do­de­W­=­32­en­de­ci­mal)

Aho­ra­de­be­mos­su­mar­32­más­70­que­es­el­con­te­-

ni­do­de­REG,­el­re­sul­ta­do­se­rá:

32­+­70­=­102

•­El­re­sul­ta­do­no­ex­ce­de­de­255,­por­lo­que­no­hay

bit­de­aca­rreo­y­en­con­se­cuen­cia­"C"­es­igual­a­0­(lo

que­in­di­ca­re­sul­ta­do­ne­ga­ti­vo).

Cuan­do­el­mi­nuen­do­sea­me­nor­que­el­sus­traen­-

do,­el­nú­me­ro­que­de­be­mos­res­tar­de­256,­es­ma­yor

que­el­que­ha­brá­que­su­mar­(REG),­por­lo­tan­to­no­ha­-

brá­ des­bor­da­mien­to­ y­ el­ bit­ Carry­ C­ se­rá­ siem­pre

igual­a­"0".

El­aca­rreo­de­ci­mal­DC­se­ha­co­lo­ca­do­en­1,­ya­que

el­va­lor­del­pack­me­nos­sig­ni­fi­ca­ti­vo­(del­bit­0­al­3),

del­re­gis­tro­de­tra­ba­jo­W­(es­0000)­y­es­me­nor­que­el

del­re­gis­tro­REG­(re­gis­tro­fuen­te,­es­0110).­Por­úl­ti­mo

el­bit­Z­es­0,­ya­que­el­re­sul­ta­do­de­la­ope­ra­ción­no­es

ce­ro.

Co­mo­con­se­cuen­cia­de­un­ re­sul­ta­do­ne­ga­ti­vo,­el

re­gis­tro­Reg­per­ma­ne­ce­inal­te­ra­ble­y­en­el­re­gis­tro­W

es­ta­rá­el­re­sul­ta­do­de­la­ope­ra­ción:

W­=­­0010­0110­b­(de­ci­mal­102)

REG­=­0100­0110­b­(de­ci­mal­70)

Flaf­C­=­1

Flag­DC­=­0

Flag­Z­=­0

Vea­la­figura­39

Microcontroladores PIC

52

Figura 38Figura 38

Page 55: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

EJEM PLO:

SWAPF IN­DI,0

Si­an­tes­de­la­ins­truc­ción:

IN­DI­=­1010­0101­h

Co­mo­d=0­el­re­sul­ta­do­se­al­ma­ce­na­rá­en­W,­lue­go

de­la­eje­cu­ción­de­la­ins­truc­ción­ten­dre­mos:

IN­DI­=­1010­0101­b

W­=­0101­1010­b

Vea­la­figura­40

Z­Se­po­ne­a­1­si­el­ re­sul­ta­do­de­ la­úl­ti­ma­ope­ra­-

ción­es­ce­ro.

EJEM PLO:

XORLW­ B’0011­1000’

Si­an­tes­de­la­ins­truc­ción:

W­=­1011­0101­b­

Al­eje­cu­tar­se­la­ins­truc­ción:­

W­=­1011­0101­b­⊕ 0011­1000­b­=­1000­1101

Vea­la­figura­41.

EJEM­PLO:­­­­­

XORWF­ REG,1

Si­an­tes­de­la­ins­truc­ción:

REG­=­0011­1000­b

W­=­1011­0101­b­

Co­mo­d=1,­el­re­sul­ta­do­se­al­ma­ce­na­en­REG

Al­eje­cu­tar­se­la­ins­truc­ción:

REG­=­1011­0101­b­⊕ 0011­1000­b­=­1000­1101

W­=­1011­0101­b

CAPITULO 2 - Manejo de las Instrucciones de un PIC

53

Figura 39Figura 39

Figura 40Figura 40

Figura 41Figura 41

Page 56: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

No­ta­1:

En­ las­ ins­truc­cio­nes­ CALL­ y­ GO­TO­ los­ 11­ <10:0>

bits­de­me­nos­pe­so­co­rres­pon­den­al­có­di­go­de­ope­ra­-

ción,­mien­tras­que­ los­2­bit­de­ma­yor­pe­so­<12:11>

los­su­mi­nis­tran­res­pec­ti­va­men­te­los­bit­4­y­3­del­re­-

gis­tro­PCLATH­que­real­men­te­apun­tan­a­una­de­las­4

pá­gi­nas­del­ma­pa­de­me­mo­ria­que­pue­de­di­rec­cio­nar

el­PC.

PA LA brAS dE COn fI gU rA CIOn

E IdEn TI fI CA CIOn

Los­PIC­de­la­ga­ma­me­dia­dis­po­nen­de­una­pa­la­-

bra­de­con­fi­gu­ra­ción­de­14­bits­que­se­es­cri­be­du­ran­-

te­el­pro­ce­so­de­gra­ba­ción­del­dis­po­si­ti­vo­y­que­de­be

ha­cer­se­de­acuer­do­con­el­sis­te­ma­en­el­que­se­va­a

in­ser­tar.­

Di­chos­bits­ocu­pan­ la­po­si­ción­re­ser­va­da­de­me­-

mo­ria­de­pro­gra­ma­2007h.­La­es­truc­tu­ra­de­la­pa­la­bra

de­con­fi­gu­ra­ción­es­la­si­guien­te:

Bit 4: CP, bit de con fi gu ra ción de pro tec ción de có -

di go

1=­Pro­tec­ción­de­có­di­go­de­sac­ti­va­do

0=­Pro­tec­ción­de­có­di­go­ac­ti­va­do­

Bit 3: PWR TE, Ac ti va ción del tem po ri za dor "Po wer-

Up"

1=­De­sac­ti­va­do

0=­Ac­ti­va­do

Bit 2: bit de con fi gu ra ción ha bi li ta ción del Watch -

dog (WDT)

1:­WDT­ac­ti­va­do

0:­WDT­de­sac­ti­va­do

Bit 1 y Bit 0: FOSC<1:0>, ti po de os ci la dor em plea -

do

11:­Os­ci­la­dor­RC

10:­Os­ci­la­dor­HS­(­8­-­20MHz)

01:­Os­ci­la­dor­XT­(­100­KHz-­4MHz)

00:­ Os­ci­la­dor­ LP­ (Ba­jo­ con­su­mo­ 32-

200Hz)­

Microcontroladores PIC

54

Page 57: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Tec Punta - Redes:ArtTapa 08/27/2013 15:29 Página 69

Page 58: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Ele Auto - Uso escaner.qxd:ArtTapa 17/01/14 10:04 Página 65

Page 59: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

CAPITULO 3 - Aprendiendo a programar

57

Aprendiendo aProgramar

Hace unos cuantos años, comenzamos a mostrar cómo se debenescribir programas en nuestra querida revista Saber Electrónica;fue así que tanto Federico Prado, el Ing. Alberto Picerno y esteautor hemos escrito artículos con la explicación de programassencillos que le permitirán aprender a utilizar las instrucciones delPIC 16X84.

En este capítulo utilizaremos la misma técnica comenzando desdeel principio, basándonos en prototipos reales.

Page 60: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

CIr CUI TO dE Un En TrE nA dOr

En Sa ber Elec tró ni ca he mos de sa rro lla do un “en -

tre na dor” pa ra apren der a pro gra mar y car gar PICs,

es te en tre na dor se mues tra en la fi gu ra 1.

Sea el pro gra ma: (Programa 1).

El pro gra ma co mien za con un (;), por lo tan to, lo

que si gue en el ren glón es to ma do co mo un co men ta -

rio. Los sig nos = for man un re sal te pa ra in di car el ini -

cio del pro gra ma y ayu dan a dar le una dis tri bu ción

agra da ble a la vis ta.

El pro gra ma se lis ta en cua tro co lum nas; la pri me -

ra sir ve pa ra co lo car las “va ria bles” que uti li za re mos

Microcontroladores PIC

58

Figura 1Figura 1

; Pri mer pro gra ma de prác ti ca

List p = 16C84 ; voy a uti li zar el PIC16C84

ptob equ 0x06 ; ini cia li zo la va ria ble ptob en

; la di rec ción 06h

Re set org h’0’ ; co mien za el pro gra ma

Ini cio movlw h’0’ ; car go a W con 0

tris ptob ; man do el con te ni do de W a ptob

movlw h’0f’ ; car go a W con el nú me ro bi na rio 15

ci clo nop ; ru ti na nu la

go to ci clo ; va ya a ci clo

Programa 1

Page 61: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

co mo re gis tros y las “eti que tas” que son ubi ca cio nes

del pro gra ma adón de se de be ir cuan do el ope ran do

de una ins truc ción así lo re quie ra.

En la se gun da co lum na se co lo ca la ins truc ción y

en la ter ce ra el ope ran do de la ins truc ción. La cuar ta

co lum na siem pre va pre ce di da de (;) y se uti li za pa ra

co lo car ob ser va cio nes que le sir van al pro gra ma dor

co mo guía pa ra sa ber qué qui so ha cer o qué fun ción

cum ple esa sen ten cia, ob via men te, al com pi lar esa

ins truc ción, las ob ser va cio nes no son te ni das en

cuen ta.

List p = 16C84

Es el en ca be za do del pro gra ma que le in di ca al

en sam bla dor qué ti po de PIC se es tá uti li zan do pa ra

que és te pue da re co no cer qué set de ins truc ción de -

be uti li zar.

ptob equ 06

Nom bré a la va ria ble ptob y la co lo qué en la di rec -

ción 06 de la RAM, “es ta di rec ción es tá re ser va da pa -

ra el PUER TO B”, es de cir, ra ti fi co que ptob es el re gis -

tro del PORT B.

Cuan do, más ade lan te, de ba en viar in for ma ción

al puer to b, só lo de bo men cio nar ptob.

Re set org 0

Sig ni fi ca que al rea li zar se el re set, el pro gra ma

co mien za por la po si ción 0 de la me mo ria del pro gra -

ma. Pe ro de in me dia to pa sa a la po si ción 1 que tie ne

es cri ta la si guien te sen ten cia:

Ini cio movlw 0

Con es to se car ga el re gis tro w con el he xa de ci -

mal 0 (es de cir el bi na rio 00000000)

tris ptob

Es ta ins truc ción en vía la in for ma ción del re gis tro

W al puer to B pa ra in di car le que to dos sus pi nes son

de sa li da (si se hu bie ra car ga do el bi na rio 11111111

to dos los pi nes se rían de en tra da y si se hu bie ra car -

ga do 11001010 al gu nos se rían en tra das y otros sa li -

das).

movlw 0f

Car ga el re gis tro W con el he xa de ci mal 15 que

equi va le al bi na rio 00001111 y

movlw ptob

En vía el va lor car ga do al puer to "B" que pro du ci rá

un es ta do al to en RB0, RB1, RB2 y RB3 y un es ta do

ba jo en RB4, RB5, RB6 y RB7. La in for ma ción del puer -

to pa sa al buf fer que lle va las pa tas 15, 16, 17 y 18 de

un PIC16C84 a ma sa en cen dien do los leds D7, D8, D9

Y D10.

Ci clo nop

Rea li za una ru ti na nu la, es de cir, que no efec túa

ope ra ción al gu na.

go to ci clo

En vía el pro gra ma ha cia la eti que ta "ci clo". Las

dos úl ti mas ope ra cio nes ha cen que al eje cu tar se un

pro gra ma, és te se que de en un la zo que se lla ma

“loop ce rra do”.

La úni ca ma ne ra de sa lir de es te loop es pul san -

do RE SET. En ton ces se ob ser va que los leds se apa -

gan has ta que se suel ta el pul sa dor y el pro gra ma co -

mien za nue va men te por la eti que ta RE SET.

Ob via men te, es te pro gra ma de be ser edi ta do en

un u ti li ta rio ade cua do (MPLAB, por ejem plo) y lue go

de be ser com pi la do (uti li zan do el MPASM o el mis mo

MPLAB) pa ra ob te ner el ar chi vo .hex que me per mi ti -

rá car gar el PIC que de be ré co lo car en el cir cui to de

la fi gu ra 1 pa ra ve ri fi car que real men te “ha ce” lo que

es ta mos di cien do.

Pa ra car gar el PIC con el pro gra ma .hex se uti li za

un pro to ti po ade cua do (car ga dor de PICs) que con sis -

te en un cir cui to que es ma ne ja do por un pro gra ma

59

CAPITULO 3 - Aprendiendo a programar

Fig. 2Fig. 2

Page 62: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

pa ra per mi tir la car ga. To do es te pro ce so se ex pli ca

con to tal cla ri dad en el pri mer tex to de es ta se rie, ti -

tu la do: “To do So bre PICs”.

En la fi gu ra 2 se pue de ob ser var un dia gra ma de

flu jo que re fle ja el fun cio na mien to del pro gra ma que

aca ba mos de ex pli car.

¿Cuán­to­ tar­dan­en­en­cen­der­se­ los­ leds­ lue­go­de

sol­tar­el­bo­tón­de­re­set?­

Si se ob ser va el cir cui to, se ve rá un cris tal de

clock de 4MHz (0,25µS de pe río do); co mo in ter na men -

te exis te un di vi sor x4 ca da ope ra ción se rea li za rá en

0,25 x 4 = 1µS. Si con ta mos las sen ten cias has ta lle -

gar a car gar el puer to B, ve re mos que hay 5 (cin co

ren glo nes de pro gra ma); por lo tan to, la de mo ra es de

5µS.

Si Ud. no quie re ar mar el en tre na dor com ple to

(que sir ve pa ra un sinfín de apli ca cio nes que se en se -

ñan en el Cur so: “PICs para Estudiantes &

Aficionados”, que es tá en ven ta en va rios paí ses de

Amé ri ca a tra vés de la red de dis tri bui do res de Edi to -

rial Quark y Saber Internacional - vea en Inter net la di -

rec ción: www .we be lec tro ni ca .co m.ar) le pro po ne mos

que ar me só lo lo im pres cin di ble pa ra en cen der los

leds se gún el cir cui to de la fi gu ra 3; un cir cui to tan

sim ple que no re quie re pla que ta, pue de ar mar se ti po

ara ña so bre la me sa de tra ba jo, por que no es al go pa -

ra mos trar si no pa ra apren der. Ob ser ve que los leds

es tán co nec ta dos di rec ta men te al puer to B pre dis -

pues to co mo de sa li da por el pro gra ma. En efec to, el

puer to de sa li da ad mi te per fec ta men te los 3mA que

to ma ca da led al co nec tar los con re sis to res en se rie

de 1k5. Co mo úni ca pre cau ción pa ra el ar ma do de be

uti li zar un zó ca lo de 18 pa tas pa ra el PIC. Las co ne -

xio nes de X1, C1 y C2 de ben ser lo más cor tas po si -

bles. Si us ted re pa ra TV y vi deo gra ba do res se gu ra -

men te ten drá cris ta les de 3,58MHz (de PALN o NTSC o

in clu si ve de PALM).

Pue de uti li zar los sin ma yor in con ve nien te pe ro re -

cuer de que los tiem pos cal cu la dos es ta rán afec ta dos

de un coe fi cien te igual a 3,58/4.

Nues tro pro gra ma va a ha cer uso de lo que se lla -

ma una su bru ti na. Una su bru ti na es co mo un se gun do

pro gra ma ane xo al prin ci pal. El pro gra ma prin ci pal va

a la su bru ti na a tra vés de una ins truc ción "CALL" que

no ha bía mos em plea do has ta aho ra.

Es ta ins truc ción sal ta del pa so del pro gra ma don -

de se en cuen tra, a la su bru ti na y cuan do se eje cu ta

por com ple to vuel ve al mis mo pun to del pro gra ma en

don de se ha bía pro du ci do el sal to.

Una su bru ti na de be es tar siem pre di ri gi da a una

eti que ta pa ra que el sal to se rea li ce con un des ti no

bien de ter mi na do.

Por lo ge ne ral, las su bru ti nas se es cri ben a con ti -

nua ción del pro gra ma prin ci pal, pe ro es to es sim ple -

men te una cos tum bre, bien po drían ubi car se en otro

lu gar co mo el prin ci pio. Re cuer de que to do co mien za

cuan do se pul sa re set o cuan do se en cien de el equi -

po y, en ese mo men to, se eje cu ta lo in di ca do con la

eti que ta re set y se sal ta al ren glón si guien te. Cuan do

ter mi na una su bru ti na, se de be co lo car una re fe ren -

cia "RE TURN", que sig ni fi ca re tor nar al si guien te ren -

glón del pro gra ma prin ci pal don de es tá la in vo ca ción

a la su bru ti na.

Otra ins truc ción nue va que no ha bía mos uti li za do

es "decfsz" que siem pre va acom pa ña da de un nú me -

ro he xa de ci mal. Es ta ins truc ción se uti li za pa ra pro -

gra mar re tar dos. Por ejem plo, si su pa so del pro gra -

ma fue ra:

CONST equ 06

decfsz CONST

En el en ca be za do se de cla ra que la va ria ble

CONST es ta rá en la di rec ción 06 lue go, al eje cu tar se

la ins truc ción el con te ni do de la va ria ble CONST se ha

de cre men ta do en una uni dad.

Es to pa re ce más una com pli ca ción sin sen ti do,

pe ro no es así; en un pro gra ma bien es truc tu ra do los

cam bios se rea li zan en el en ca be za do y, ade más, mu -

chas ve ces es ne ce sa rio cam biar so li da ria men te va -

rios ope ran dos y el mé to do pro pues to lo lo gra fá cil -

men te.

Tam bién va mos a uti li zar una ins truc ción de do ble

uso y que for ma par te de una su bru ti na (ge ne ral men -

Microcontroladores PIC

60

Fig. 3Fig. 3

ENCENDIDO INTERMITENTE

DE UN LED

Page 63: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

te la cie rra). Se tra ta de "retlw" que de be ir acom pa -

ña do de un li te ral (nú me ro he xa de ci mal). Es ta ope ra -

ción car ga el re gis tro w con el li te ral que lo acom pa -

ña y re tor na al pro gra ma prin ci pal to do en un so lo

ren glón. Su fun cio na mien to se apre cia rá me jor cuan -

do vea mos el pro gra ma de apli ca ción pe ro es equi va -

len te a:

movlw 0x12 ; car go a W con el nú me ro 12h

re turn

A es ta altura Ud. de be re cor dar unas cuan tas sen -

ten cias y to da vía fal tan unas cuan tas más (re cuer de

to do lo vis to en el ca pí tu lo 2). Co mo ayu da pa ra que

no de ba es tu diar to das las sen ten cias de me mo ria le

de ci mos que lo me jor es re la cio nar las con pa la bras

co mu nes del idio ma in glés. Por ejem plo "equ" pro vie -

ne de "equal" que sig ni fi ca igual. En la fi gu ra 4 le da -

mos una ta bla con más ayu das.

Pa ra di se ñar un pro gra ma us ted de be te ner en cla -

ro la fun ción del pro yec to. En nues tro ca so que re mos

que al en cen der la fuen te el led co nec ta do a RB0 se

en cien da y apa gue con un tiem po que pue da mo di fi -

car se fá cil men te pa ra al te rar el pro gra ma. Al apre tar

el pul sa dor de re set se de be apa gar el led y al sol tar lo

se en cen de rá lue go de un re tar do y con ti nua rá al ter -

nan do pe río dos de en cen di do y apa ga do.

El pro gra ma com ple to lo va mos a di vi dir en dos

par tes: un pro gra ma prin ci pal y una su bru ti na que lla -

ma mos “re tar dar”.

Los ha ce mos así por que ca si to dos los pro gra mas

in clu yen re tar do y el di se ño de esa su bru ti na lo po de -

mos em plear pos te rior men te y nos aho rra re mos tra -

ba jo.

Un pro gra ma de be es tar es truc tu ra do en for ma

cla ra, se de ben di fe ren ciar cla ra men te los dis tin tos

sec to res y es to se ha ce no só lo pa ra que sea agra da -

ble a la vis ta, si no pa ra fa ci li tar los fu tu ros cam bios.

La pri me ra sec ción es el tí tu lo y la de cla ra ción de

qué PIC se va a uti li zar. La se gun da es el en ca be za do

en don de se le da nom bre a los li te ra les (nú me ros he -

xa de ci ma les) más im por tan tes. La ter ce ra es el pro -

gra ma prin ci pal y la cuar ta las su bru ti nas, vea pro-

grama 2.

Ana li ce mos el en ca be za do, las pri me ras lí neas

has ta la eti que ta “portb” ya las co no ce mos del pro -

gra ma an te rior (aquí em plea mos portb en lu gar de

ptob). Lue go te ne mos tres sen ten cias que le dan

nom bre reg1, reg2 y reg3 a tres re gis tros de uso ge -

ne ral, ubi ca dos en las po si cio nes de me mo ria RAM

des ti na das a los re gis tros. Re cuer de que las pri me -

ras 12 po si cio nes de me mo ria has ta 0B es tán ocu pa -

das por re gis tros fi jos. A par tir de 0C se ubi can los re -

gis tros de pro pó si tos ge ne ra les de los cua les usa re -

CAPITULO 3 - Aprendiendo a programar

61

Fig. 4Fig. 4

Page 64: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

mos 3, a sa ber: 0C, 0D y 0E (que son los re gis tros que

he mos de no mi na do reg1, reg2 y reg3).

En esos re gis tros vol ca mos ini cial men te los li te -

ra les 30, 40 y 50 que nom bra mos co mo “grue so”,

“me dio” y “fi no”. Es to se rea li za en las tres úl ti mas

sen ten cias del en ca be za do que son aque llas que Ud.

de be va riar si de sea que el rit mo de en cen di do se ha -

ga más len to o más rá pi do. Des de lue go que es tas

tres sen ten cias no son im pres cin di bles pe ro si no se

usan, lue go ha bría que bus car den tro de la su bru ti na

pa ra cam biar los li te ra les. Tra ba jan do de es ta ma ne -

ra es más fá cil in tro du cir cam bios por que los ha ce -

mos des de el en ca be za do.

La sec ción prin ci pal del pro gra ma es muy si mi lar

a la uti li za da en el pri mer pro gra ma pa ra en cen der

per ma nen te men te un led, vea programa 3.

Siem pre se co mien za a ana li zar el pro gra ma ob -

ser van do qué ocu rre al rea li zar un re set. En es te ca -

so, ve mos que to do co mien za en la po si ción 00 de la

me mo ria de pro gra ma. En la si guien te po si ción se en -

vía el con trol del pro gra ma a la po si ción “co men zar”,

en don de se pre dis po ne el puer to b pa ra ope rar co mo

sa li da. Lue go, co mien za el pro gra ma prin ci pal en el

eti que ta ppal, en don de se car ga el re gis tro w con el

nú me ro he xa de ci mal 01. Cuan do es te nú me ro se des -

car ga en el puer to “b” se en cien de el led co nec ta do

en RB0.

Aho ra se en vía el con trol a la su bru ti na “de mo ra”

por que pre ten de mos que el led que de en cen di do al -

go me nos de un se gun do. Cuan do se cum pla ese

tiem po vol ve rá el con trol des de “de mo ra” con ti nuan -

do por la car ga de w con el he xa de ci mal 00. Al des car -

gar w en el pun to “b” se pro du ce el apa ga do de led

co nec ta do en RB0.

Nue va men te el con trol pa sa a la su bru ti na de mo -

ra, en don de se que da por al go me nos de 1 se gun do

Microcontroladores PIC

62

;===========================================================

; Se cuen cia dor de en cen di do de un led

list p=16C84 ;mi cro PIC16C84

;===========================================================

portb equ 06 ;el puer to b se ubi ca en la di rec ción de

;me mo ria RAM06

reg1 equ 0c ;asig na ción de los regis tros don de se car gan los

reg2 equ 0d ;di fe ren tes li te ra les

reg3 equ 0e ;

grue so equ 40 ;al li te ral 40 lo lla ma mos grue so

me dio equ 40 ;al li te ral 40 lo lla ma mos me dio

fi no equ 50 ;al li te ral 50 lo lla ma mos fi no

;===========================================================

re set org 0 ;un re set en vía a la po si ción 00 de la me mo ria

;de pro gra ma.

Go to co mien zo ;reen vío al co mien zo del pro gra ma

;===========================================================

Programa 2

re set org 0 ;un re set en vía el pro gra ma a la po si ción 0

go to co men zar ;se en vía el con trol al co mien zo

co men zar movlw 00 ;se car ga w con 00

tris ptob ;se pro gra ma el puer to b co mo sa li da

ppal movlw 01 ;se car ga w con 01

movwf ptob ;se des car ga w en el puer to b pa ra

;en cen der el led co nec ta do RB0

call de mo ra ;se man tie ne el led en cen di do por

;un in ter va lo de tiem po

movlw 00 ;se car ga w con 00

movwf ptob ;se des car ga w en el puer to b pa ra

;apa gar el led de RB0

call de mo ra ;se man tie ne el led apa ga do por

;un in ter va lo de tiem po

go to ppal ;con ti nua el pro gra ma en el prin ci pio

;has ta rea li zar un re setPrograma 3

Page 65: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

an tes de vol ver al pro gra ma prin ci pal. Cuan do vuel ve

es en via do de in me dia to al co mien zo de ppal con un

nue vo en cen di do de RB0 y así per ma nen te men te has -

ta que se ope re el re set.

Es el tur no de pla ti car so bre la su bru ti na de­mo­ra.

Es ta su bru ti na es más com pli ca da que el pro gra ma

prin ci pal. Lo que ocu rre es que la di se ña mos pa ra uso

ge ne ral, ya que la va mos a apli car en una in fi ni dad de

pro gra mas. En prin ci pio, la de mo ra la va mos a po der

va riar con tres nú me ros he xa de ci ma les que fue ron

de fi ni dos en el en ca be za mien to co mo “grue so”, “me -

dio” y “fi no” por que ope ran de ese mo do so bre el re -

tar do fi nal, vea programa 4.

La su bru ti na co mien za car gan do los re gis tros de

uso ge ne ral con los nú me ros he xa de ci ma les de cla ra -

dos en el en ca be za do. Lue go que los tres re gis tros

es pe cia les es tán car ga dos con los he xa de ci ma les

30, 40 y 50 se co mien za a de cre men tar el re gis tro 3

de a una uni dad; mien tras el re gis tro ten ga un nú me -

ro ma yor o igual a 1 se con ti núa es te pro ce so, pe ro al

lle gar a ce ro se sal ta a la si guien te sen ten cia que jus -

ta men te es un "go to".

Es co mo si el con trol re tor na ra y fue ra a dem1

tan tas ve ces co mo lo in di ca el nú me ro he xa de ci mal

car ga do en el re gis tro 1. Lue go la su bru ti na pa sa a la

si guien te sen ten cia que co mien za a de cre men tar el

nú me ro car ga do en reg2, só lo que el "go to" es a la eti -

que ta dem2 que es an te rior a la dem1, es de cir, que

se vuel ve a pa sar por "dem1" a ha cer to do el pri mer

de cre men to del nú me ro guar da do en "reg3" y re cién

des pués se ha ce el si guien te de cre men to en el re gis -

tro "reg2". Cuan do "reg2" lle ga a ce ro se pro du ce el

pri mer de cre men to de "reg3" y pa ra que se pro duz ca

el se gun do tie nen que de cre men tar se a ce ro "reg2".

En una pa la bra, que la su bru ti na da mu chí si mas vuel -

tas so bre "dem 1", mu chas so bre "dem2" y po cas so -

bre "dem3". Fi nal men te cuan do "reg3" lle ga a ce ro, se

pa sa retlw que reen vía el con trol al pro gra ma prin ci -

pal jus to en la sen ten cia que in vo có a la su bru ti na pe -

ro an tes de re tor nar lle va el re gis tro w a ce ro. El pro -

gra ma ter mi na en "end" que no pue de con si de rar se

co mo una sen ten cia, ya que no rea li za nin gu na ta rea;

sin em bar go, su exis ten cia es im pres cin di ble pa ra

que el pro gra ma dor de PICs dé por ter mi na da su ta -

rea. Cuan do no se co lo ca el pro gra ma en sam bla dor

emi te un men sa je de error.

Ten ga en cuen ta “que le es ta mos en se ñan do a pro -

gra mar”, es de cir, a uti li zar las ins truc cio nes del set

del PIC. Si Ud. es pro gra ma dor, es tos ejem plos le van

a pa re cer muy tor pes, da do que el ex per to sa be có mo

uti li zar ru ti nas que per mi tan ha cer lo mis mo con me -

nos es fuer zo de pro gra ma ción. Ud. es tá apren dien do

co mo cuan do co men zó a su mar y en aque lla opor tu ni -

dad se gu ra men te le cos ta ba en ten der que 1 + 1 es

igual a dos, aun que hoy le pa rez ca un ejem plo muy

bur do. Vol vien do a nues tro pro gra ma, sa be mos que la

su bru ti na "de mo ra" tie ne una cier ta du ra ción. Con un

mí ni mo co no ci mien to de ma te má ti cas po de mos cal cu -

lar ese re tar do en fun ción de los nú me ros he xa de ci -

ma les que ha lla mos ele gi do.

To me mos pri me ro el "loop" (ru lo) más in ter no de

la su bru ti na; mien tras no se cum pla que "reg 3" = 0 se

CAPITULO 3 - Aprendiendo a programar

63

de mo ra movlw grue so ;re car ga w con el nú me ro he xa de ci mal

;“grue so” es de cir, con 30

movwf reg1 ;se vuel ca “grue so” en el re gis tro

;reg 1

dem3 movlw me dio ;se car ga w con el nú me ro he xa de ci mal

;“me dio” es de cir con 40

movwf reg2 ;se vuel ca "me dio" en el re gis tro

;reg2.

dem2 movlw fi no ;se car ga w con el nú me ro he xa de ci mal "fi no"

;es de cir con 50.

movwf reg3 ;se vuel ca "fi no" en el re gis tro reg3.

dem1 decfsz reg3 ;se de cre men ta el re gis tro reg3 en una uni dad

;y si el re sul ta do es ce ro se sal ta a la si guien te

;ins truc ción, si no se si gue de cre men tan do.

go to dem1 ;re tor no a la fre cuen cia eti que ta dem1.

decfsz reg2 ;idem con reg2.

go to dem2 ;re tor no a la eti que ta dem2.

decfsz reg3 ;idem con reg1.

go to dem1 ;re tor no a la eti que ta dem3.

retlw 0 ;se car ga w con 0 y se re tor na al pro gra ma

;prin ci pal

end

Programa 4

Page 66: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

con su me un ci clo de ins truc ción por vuel ta (ge né ri ca -

men te po de mos de cir que to das las sen ten cias con -

su men un ci clo sal vo las de sal to co mo la "go to" que

con su me dos).

Nú me ro de ci clos "reg 3" = 3 x "grue so"

= 3 x 80 (ya que 50 Hex = 80 de ci mal)

= 240 ci clos de ins truc ción

Pa ra cal cu lar la de mo ra de los dos loops si guien -

tes es con ve nien te rea li zar un dia gra ma de los mis -

mos tal co mo el mos tra do en la fi gu ra 5.

Aho ra ve mos que el loop in ter me dio du ra 2 + 1 +

1 + 1 = 5 ci clos de ins truc ción a los cua les se les su -

man los 240 ci clos del loop más in ter no. En to tal se -

rían 5 + 240 = 245. Pe ro es te loop es re co rri do has ta

que el he xa de ci mal 40 (equi va len te al de ci mal 64) se

anu le:

nú me ro de ci clos "reg 2" = 245 x me dio

= 245 x 64

= 15.860 ci clos de ins truc ción.

El loop más ex ter no du ra 2 + 1 + 1 + 1 = 5 ci clos de

ins truc ción a los cua les se les su man los 15.860.

Pe ro es te loop es re co rri do has ta que el he xa de -

ci mal 40 (equi va len te al de ci mal 64) se anu le:

nú me ro de ci clos "reg 1" = 15.860 x fi no

= 15.860 x 64

= 1.015.040 ci clos de ins truc ción.

Microcontroladores PIC

64

Fig. 6Fig. 6

Fig. 5Fig. 5

Page 67: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Nos que da rían 1 + 1 ci clos al co mien zo de la su -

bru ti na y 2 ci clos al fi nal pa ra lle gar a un va lor de

1.015.044 ci clos de ins truc ción.

La du ra ción de un ci clo de ins truc ción de pen de

del cris tal uti li za do. Si usa mos un cris tal de 4MHz ca -

da ci clo de ins truc ción du ra 1µs y ten dría mos una de -

mo ra de 1,015 seg.

El led es ta ría en cen di do ca si un se gun do y apa ga -

do otro tan to.

El fun cio na mien to del pro gra ma prin ci pal y la su -

bru ti na de de mo ra pue den re pre sen tar se en un dia -

gra ma de flu jo co mo el mos tra do en la fi gu ra 6 pa ra

el pro gra ma prin ci pal.

Ele gi mos tra ba jar con cua tro leds pa ra que us ted

pue da en ten der el te ma con más fa ci li dad. Pe ro to do

lo que ve re mos pue de apli car se a un se cuen cia dor de

8 leds. Nues tro dis po si ti vo en cien de cua tro leds en

se cuen cia de ma ne ra que nun ca es tén en cen di dos to -

dos al mis mo tiem po.

En el ejem plo an te rior vi mos pri me ro el pro gra ma

y lue go el dia gra ma de flu jo. En rea li dad el mé to do es

el in ver so. Un dia gra ma de flu jo per mi te vi sua li zar el

fun cio na mien to de un pro gra ma y por lo tan to de be

efec tuar se pre via men te.

Por ejem plo, en la fi gu ra 7 pue de ver el dia gra ma

de flu jo co rres pon dien te a la ru ti na “de mo ra” del pro -

gra ma que per mi te el en cen di do in ter mi ten te de un

led.

El pro gra ma es la in ter pre ta ción del dia gra ma de

flu jo; en el pro gra ma se plas man los de ta lles que no

tie ne el dia gra ma de flu jo. Pa ra cons truir el pro gra ma

de nues tro se cuen cial, nos ba sa mos en el dia gra ma

de flu jo de la fi gu ra 8.

Ob ser ve que lue go de ini cia do, el pro ce so no se

de tie ne ja más, ya que ter mi na da la se cuen cia, vuel ve

a co men zar. Ob via men te, la apli ca ción de un re set

apa ga rá to dos los leds mien tras se man ten ga el re set

pul sa do.

En es te pro gra ma se van a uti li zar nue vas ins truc -

cio nes que de be mos de ta llar. En tre otras uti li za mos

la ins truc ción movf que se acom pa ña con un do ble

ope ran do. Es una sen ten cia que sir ve pa ra rea li zar

CAPITULO 3 - Aprendiendo a programar

65

Fig. 7Fig. 7

Fig. 8Fig. 8

SECUENCIADOR DE 4 CANALES

Page 68: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

trans fe ren cias en el con te ni do de cual quier re gis tro

nom bra do co mo pri mer ope ran do al re gis tro W.

Otra ins truc ción nue va es rlf, cu ya fun ción es des -

pla zar el con te ni do de un re gis tro nom bra do co mo

ope ran do.

El con te ni do se des pla za ha cia la iz quier da y el

pri mer bit vuel ve a in gre sar co mo úl ti mo.

Fi nal men te se uti li za tam bién la ins truc ción btfss

que in clu ye dos ope ran dos; el pri mer ope ran do in di -

ca en qué re gis tro se rea li za la ope ra ción y el se gun -

do que po si ción del re gis tro se ana li za (en que bit, del

bit 0 al bit 7). La ope ra ción con sis te en ana li zar la po -

si ción si guien te a la nom bra da co mo se gun do ope -

ran do. Por ejem plo:

btfss rot,4

Aquí se ana li za el es ta do de 5 bit (bit 4, da do que

el pri mer bit o bit me nos sig ni fi ca ti vo es el bit 0), si

és te es ce ro se con ti nua con la sen ten cia si guien te ,

si es 1 se sal tea en la si guien te se cuen cia. En la fi gu -

ra 9 se rea li za un di bu jo que ex pli ca es tas úl ti mas

ins truc cio nes.

Ima gí ne se a movf co mo si vol ca ra el con te ni do de

un bal de en otro, se lo asi mi la a un trans va sa mien to.

La sen ten cia rlf la pue de ima gi nar co mo si apre ta ra

un re gis tro con el de do pues to por la de re cha del mis -

mo; el bit que se cae por la iz quier da lo to ma con la

ma no y lo po ne por la de re cha don de que dó un es pa -

cio va cío.

Vea a btfss co mo si es tu vie ra con la ma no so bre

el quin to bit. Si esa po si ción es ta fría, man de el con -

trol de pro gra ma al ren glón si guien te. Si es tá ca lien -

Microcontroladores PIC

66

Fig. 9Fig. 9

Page 69: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

CAPITULO 3 - Aprendiendo a programar

67

; SE CUEN CIA DOR

list P=16C84 ;el dis po si ti vo usa el 16C84

;-------------------------------------------------------------------------------------------

ptob equ 06 ;el puer to f se ubi ca en 06 de la RAM.

Rot equ 0d ;al re gis tro ubi ca do 0d se lo lla ma est.

Reg1 equ 0e ;al re gis tro ubi ca do en 0e se lo lla ma reg1

reg2 equ 0f ;al re gis tro ubi ca do en 0f se lo lla ma reg1

reg3 equ 10 ;al re gis tro ubi ca do en 10 se lo lla ma reg3

grue so equ 00 ;se asig nan nom bres a los li te ra les.

me dio equ 40 ;se asig nan nom bres a los li te ra les.

fi no equ 50 ;se asig nan nom bres a los li te ra les.

;-------------------------------------------------------------------------------------------

re set org 0 ;re set en di rec ción 00h

go to co men zar ;se lle va el con trol a co mien zo

co men zar movlw 00 ;se car ga w con 00h

tris ptob ;se pro gra ma el puer to "b" co mo sa li da.

ppal movlw 01 se car ga w con 01h

movwf rot ;se des car ga w en el re gis tro rot

;pre pa rán do lo pa ra la ro ta ción.

sec movf rot,0 ;el con te ni do de rot pa sa a w

movwf ptob ;en cien de el led co nec ta do don de in di ca w

call de mo ra ;se man tie ne en cen di do el led.

rlf rot ;se mue ven los bits de "rot".

btfss rot,4 ;se com prue ba el 5º bit.

go to sec ;si el 5º bit es ce ro se reen vía a sec.

go to ppal ;si el 5º bit es uno se reen vía a ppal pa ra

;co men zar una nue va se cuen cia.

de mo ramovlw grue so ;re car ga w con el nú me ro he xa de ci mal

;“grue so” es de cir, con 30

movwf reg1 ;se vuel ca “grue so” en el re gis tro

;reg 1

dem3 movlw me dio ;se car ga w con el nú me ro he xa de ci mal

;“me dio” es de cir con 40

movwf reg2 ;se vuel ca "me dio" en el re gis tro

;reg2.

dem2 movlw fi no ;se car ga w con el nú me ro he xa de ci mal

;"fi no" es de cir con 50.

movwf reg3 ;se vuel ca "fi no" en el re gis tro reg3.

dem1 decfsz reg3 ;se de cre men ta el re gis tro reg3 en una

;uni dad y si el re sul ta do es ce ro se sal ta a

;la si guien te ins truc ción, si no se si gue

;de cre men tan do.

go to dem1 ;re tor no a la fre cuen cia eti que ta dem1.

decfsz reg2 ;idem con reg2.

go to dem2 ;re tor no a la eti que ta dem2.

decfsz reg3 ;idem con reg1.

go to dem1 ;re tor no a la eti que ta dem3.

retlw 0 ;se car ga w con 0 y se re tor na al

;pro gra ma prin ci pal.

end

Programa 5

Page 70: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

te, sal tee el que si gue y man de el con trol al pos te rior

a és te. Bien, el pro gra ma del se cuen cia dor es en rea -

li dad una mo di fi ca ción del pro gra ma de en cen di do y

apa ga do de un led. Co mo ve mos, los pro gra mas di fí -

cil men te se ini cien des de ce ro siem pre se uti li zan

otros pro gra mas que se mo di fi can y ade más se uti li -

zan su bru ti nas com ple tas co mo la "de mo ra". Vea pro-

grama 5.

To do co mien za car gan do el re gis tro w con el he xa -

de ci mal 01, es de cir que el re gis tro se lle na rá con el

bi na rio co rres pon dien te 00000001. Es te con te ni do se

trans va sa a "rot" y lue go de vuel ta a "w", des de don -

de se lo en vía al puer to "b" pa ra en cen der el úl ti mo

led. Aho ra el con trol del pro gra ma se en vía a de mo ra

pa ra que el led per ma nez ca en cen di do cer ca de 1 se -

gun do.

A con ti nua ción se pro du ce la ro ta ción de los bits

de "rot" con lo cual que da car ga do con el bi na rio

00000010. Aho ra se com prue ba el es ta do del quin to

bit; co mo es 0 se reen vía el con trol a "sec”, se car ga

"w" con el con te ni do de "rot" se trans va sa "rot" a "w"

y lue go se en vía "w" al "ptob", en ton ces el se gun do

led se en cien de y así su ce si va men te, has ta que se

en cien de el cuar to led. En ese mo men to, al ha cer la

ro ta ción se lle va el quin to bit a 1, mo men to en que se

sal tea el go to "sec", se ha ce un go to a ppal y co mien -

za una nue va se cuen cia. Si lo ana li za mos glo bal men -

te, lo úni co que ha ce el pro gra ma es car gar el puer to

w con los bi na rios 00000001; 00000010; 00000100;

00001000 y rea li zar un cam bio ca da se gun do apro xi -

ma da men te.

Su ge ri mos que cam bie ini cial men te la su bru ti na

de mo ra pa ra que la se cuen cia sea más rá pi da. Lue go

lo in vi ta mos a rea li zar un cam bio ma yor, que im pli -

que se cuen ciar 8 leds en lu gar de 4, y por úl ti mo lo in -

vi ta mos a cons truir una guir nal da pa ra un ar bo li to de

na vi dad. Lo úni co que se mo di fi ca en es te ca so es

que con el sis te ma sim pli fi ca do, se re quie re ma ne jar

un so lo led. Pa ra ma ne jar una can ti dad ma yor, le su -

ge ri mos el cir cui to de la fi gu ra 10.

Microcontroladores PIC

68

Fig. 10Fig. 10

Page 71: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

El pro gra ma que re cién vi mos pue de uti li zar se pa -

ra ge ne rar se ña les de au dio con for ma de es ca le ra,

que son el me dio idó neo pa ra com pro bar la li nea li dad

de los am pli fi ca do res de po ten cia de au dio. En efec -

to, una es ca le ra de 8 es ca lo nes de 1kHz de fre cuen -

cia apro xi ma da, nos per mi te pro bar si la am pli fi ca -

ción es li neal. Bas ta con usar un os ci los co pio y me -

dir si los 8 es ca lo nes ge ne ra dos son idén ti cos.

En fun ción del es ca lón de for ma do, se pue de lue -

go de ter mi nar en qué par te del am pli fi ca dor se en -

cuen tra la fa lla. Por ejem plo, los es ca lo nes cen tra les

se de for man cuan do fa lla el cir cui to de co rrien te va -

cío. Una fa lla en los es ca lo nes ex tre mos sig ni fi ca que

no fun cio nan co rrec ta men te los cir cui tos de boos -

trap. (fi gu ra 11). Es ta for ma de on da es tam bién ideal

pa ra con tro lar la res pues ta en fre cuen cia del am pli fi -

ca dor de po ten cia, sin ne ce si dad de rea li zar va rias

me di cio nes con un os ci la dor de au dio. Un am pli fi ca -

dor so bre com pen sa do en fre cuen cia (real ce de agu -

dos) pro du ci rá so breim pul sos en los es ca lo nes y uno

sub com pen sa do (fal ta de agu dos) re don dea rá los

fren tes (fi gu ra 12).

La fa bri ca ción de un ge ne ra dor es ca le ra nos da

mo ti vo pa ra es tu diar el ma ne jo de lla ves ana ló gi cas

con un PIC. Es ta es una de las uti li da des más im por -

tan tes del PIC y se usa en una gran can ti dad de apli -

ca cio nes.

Por ejem plo, un uso fre cuen te es la co di fi ca ción y

de co di fi ca ción de se ña les de TV. En es te pro yec to

usa re mos dos lla ves CD4066 pa ra con mu tar 8 va lo res

de ten sión de sa li da, que for man una se ñal es ca le ra

de 8 pel da ños y 3,5V de am pli tud pi co a pi co. El cir cui -

to se mues tra en la fi gu ra 13.

Los re sis to res R15 a R23 for man ca da pel da ño de

la es ca le ra y su va lor de be ser su ma men te exac to. Si

no pue de con se guir re sis to res al 1%, los de be con se -

guir con re sis to res en pa ra le lo me di dos con un buen

tés ter di gi tal. Una vez ar ma da la se rie y con CI1 fue -

ra del zó ca lo se de ben con tro lar las ten sio nes con ti -

nuas en las unio nes de los re sis to res con un tés ter di -

gi tal.

Los re sis to res R6 a R9 y R11 a R14 se uti li zan co -

mo re pa ra do res pa ra fa ci li tar el ser vi ce. En el uso

nor mal no cum plen fun ción es pe cial al gu na.

El re set es au to má ti co al en cen der la fuen te de

5V a tra vés de R10 y C3 que de mo ran el cre ci mien to

de la ten sión so bre el ter mi nal 4 (MCLR’).

El puer to A se co nec ta con re sis to res de 1kΩ a

los +5 V pa ra evi tar cap ta cio nes es pu rias. La sa li da

de se ñal en es ca le ra se pro du ce so bre la co ne xión

co mún de sa li da de las lla ves ana ló gi cas y se ate núa

con el fin de re du cir la im pe dan cia de sa li da me dian -

te R24 y RV1. La ten sión de sa li da má xi ma es de

100mV pap apro xi ma da men te. La úni ca mo di fi ca ción

que re quie re el pro gra ma es la mo di fi ca ción de las

cons tan tes li te ra les pa ra que ca da es ca lón du re

12µS. (8 es ca lo nes du ra ran 8 x 125 = 1000µS = 1mS).

Si re pa sa mos la sec ción de la su bru ti na de mo ra

del ar tí cu lo an te rior ve re mos que ca da ins truc ción

sim ple de mo ra 1 µS y que el loop de fi ni do con "FI NO"

du ra 3 x FI NO µS. En nues tro ca so, de be mos bus car

un nú me ro he xa de ci mal cu yo equi va len te ana ló gi co

sea 125.

Lo más sim ple es re cu rrir al tan teo, usan do he -

xa de ci ma les que ter mi nen en ce ro; sa bien do que

el he xa de ci mal 10 co rres pon de al ana ló gi co 16, po -

de mos de du cir que el ana ló gi co 20 co rres pon de al

32, el 30 al 48 y así su ce si va men te, ir mul ti pli can -

do el he xa de ci mal x 1,6. Si 3 x FI NO = 125 µS im pli -

ca que FI NO = 125/3 = 41,6 ana ló gi co, que di vi di do

por 1,6 es 26. Apro xi ma mos al he xa de ci mal 30, ya

que con és te ten dre mos que el loop "FI NO" de mo ra -

rá 3 x 30 Hex = 3 x 48 = 144µS. La fre cuen cia ob te -

ni da se rá de F = 1/(144 x 8) = 868Hz que se apro xi -

ma a la bus ca da. Si de sea ma yor pre ci sión ajus te

el li te ral "FI NO". Sin­te­ti­zan­do:­el pro gra ma de be va -

riar se ha cien do que fi no val ga 30 y me dio y grue so

sean am bos igua les a 00.

CAPITULO 3 - Aprendiendo a programar

69

Fig. 11Fig. 11

Fig. 12Fig. 12

GENERADOR DE SEÑALES DE AUDIO

Page 72: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Pien se que el cir cui to pro pues to pue de te ner mu -

chas po si bi li da des de mo di fi car se a vo lun tad y adap -

tar se a otros usos. Por ejem plo, si en lu gar de co nec -

tar las en tra das de las lla ves a ten sio nes con ti nuas,

las apli can a se ña les al ter nas pro ve nien tes de 8 os -

ci la do res si nu soi da les, se pue de ha cer un ba rre dor

de au dio. Si re du ce la fre cuen cia de re pe ti ción pue de

cons truir un ge ne ra dor mu si cal de acor des de 8 no -

tas, si mi la res a los uti li za dos co mo bo ci na mu si cal

en au to mó vi les y etc., etc., etc. Pien se en otras po si -

bi li da des más.

Los­For­ma­tos­de­los­Ar­chi­vos

Men cio na mos el pro gra ma MPASM, que es un en -

sam bla dor que trans for ma el pro gra ma di se ña do por

no so tros en un idio ma he xa de ci mal co rres pon dien te

al PIC. El pro gra ma ge ne ra do a ma no (el que es cri be

el pro gra ma dor, en ba se a las pau tas da das en es te

ca pí tu lo) tie nen una ex ten sión ASM (de “ASEM­BLER"

o en sam bla dor) y cuan do lo apli cá ba mos al MPASM

se ge ne ra ban tres ar chi vos con ter mi na cio nes di fe -

ren tes .err .err don de se en cuen tran los men sa jes de

error, si se co me tió un error de sin ta xis al es cri bir el

ar chi vo .asm.asm; un ar chi vo .lst.lst con los ren glo nes nu me -

ra dos pa ra ubi car en cual se pro du ce el error y el más

im por tan te, el ar chi vo .hex que con tie ne los da tos

que su pues ta men te en tien de el mi cro pro ce sa dor.

En rea li dad del mi cro pro ce sa dor no en tien de el

ar chi vo con ter mi na ción .hex.hex. El ne ce si ta otro pro -

gra ma que trans for ma el .hex en un len gua je bi na rio

de da tos en se rie que es lo úni co que en tien de el mi -

cro pro ce sa dor PIC, és to es lo que ha ce un “PRO GRA -

MA DOR” o car ga dor de PICs.

Vea mos un pro gra ma di fe ren te al pro pues to pa ra

ro tar el en cen di do de 4 leds. Es te pro gra ma sir ve pa -

ra en cen der 8 leds en su ce sión de la fi gu ra 3 y con al -

gu nos cam bios pa ra ex ci tar las lla ves ana ló gi cas del

ge ne ra dor de es ca le ra que aca ba mos de ana li zar, vea

el programa 6.

En la pri me ra sen ten cia se ob ser va la de cla ra ción

del mi cro pro ce sa dor uti li za do. Co mo pue de obser var

Microcontroladores PIC

70

Fig. 13Fig. 13

SECUENCIADOR DE 8 CANALES

Page 73: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

en lu gar de uti li zar el 16C84, co mo lo hi ci mos has ta

aho ra, uti li za mos el 16F84. La di fe ren cia en tre am bos

ra di ca en el ti po de me mo ria uti li za da.

El 16F84 con tie ne una me mo ria más rá pi da del ti -

po EE PROM FLASH que se pue de rees cri bir un mi llón

de ve ces. El al ma ce na mien to de es ta in for ma ción es -

tá ga ran ti za do por el fa bri can te por un lap so ma yor a

40 años con el dis po si ti vo sin ali men ta ción.

El 16C84 es to tal men te si mi lar, pe ro con tie ne una

me mo ria EE PROM co mún, de ac ce so más len to y con

me no res ga ran tías de man te ni mien to de la in for ma -

ción gra ba da. Tam bién se pue de uti li zar el 16F83 si -

mi lar al 16F84 pe ro con la mi tad de ca pa ci dad de me -

mo ria y por lo tan to más ba ra to. Cual quie ra de los

tres in te gra dos pue de ali men tar se con ten sio nes de

4 a 6V.

En el sec tor en tre lí neas pun tea das, se de cla ra

don de se van a ubi car 3 va ria bles que uti li za el pro -

gra ma, lla ma das ptob, j y k. Aquí se pue de ob ser var

que la po si ción de me mo ria pue de de cla rar se de di fe -

ren tes mo dos. En el pri mer ren glón só lo es cri bi mos

06. Cuan do no se co lo ca el nú me ro en tre acen tos, ni

se co lo ca una le tra ade lan te, se in ter pre ta que se tra -

ta de un nú me ro he xa de ci mal.

Es de cir que el pro gra ma en sam bla dor (el MPASM)

in ter pre ta un nú me ro "por de fec to" co mo si fue ra he -

xa de ci mal.

En el se gun do y ter cer ren glón se uti li za un cri te -

rio di fe ren te. La le tra H sig ni fi ca que el nú me ro en tre

acen tos se rá he xa de ci mal; en es te ca so par ti cu lar se

uti li za rán las po si cio nes de me mo ria 1F y 1E pa ra

guar dar a las va ria bles j y k.

En la car pe ta re set se ubi ca la par te del pro gra ma

que se eje cu ta só lo cuan do se pre sio na el pul sa dor

de re set. Se tra ta de 5 ren glo nes o sen ten cias de las

cua les la pri me ra ubi ca el con trol en la po si ción de

me mo ria de pro gra ma ce ro. En la se gun da se car ga el

re gis tro de tra ba jo w con el nú me ro ce ro. Ob ser ve

que en es te ca so uti li za mos otra no ta ción di fe ren te;

la le tra B in di ca que a con ti nua ción se co lo ca rá un nú -

me ro bi na rio de 8 dí gi tos (el PIC em plea do só lo pue -

de ma ne jar has ta 8 bits). En la si guien te sen ten cia se

vuel ca el con te ni do del re gis tro de tra ba jo en ptob,

que en el co pe te se de cla ró ubi ca do en la po si ción de

me mo ria 06. Es ta po si ción de me mo ria con tro la la

dis po si ción del puer to "B" co mo de sa li da (acla ra mos

que el uso del co man do TRIS­ge ne ra rá un men sa je de

pre cau ción pe ro que por aho ra no de be mos te ner en

cuen ta).

En la sen ten cia 4 de la car pe ta "re set", se vuel ve

CAPITULO 3 - Aprendiendo a programar

71

Programa 6

Page 74: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

a car gar el re gis tro de tra ba jo con el bi na rio

"00000001"; es to no im pli ca que se rea li ce nin gu na

mo di fi ca ción en la dis po si ción de puer tos, ya que una

vez car ga da la po si ción de me mo ria, és ta no se mo di -

fi ca rá has ta que se pro duz ca un re set. El re gis tro w

se uti li za pa ra car gar in for ma ción nue va y ubi car la

lue go don de se de sea.

Por ejem plo, en la sen ten cia 5 se des car ga w en

el puer to de sa li da B, que con TRIS se de cla ró co mo

de sa li da. Es to sig ni fi ca que se va a en cen der el led

ubi ca do en la pa ta 6 del mis mo (B0). Aquí ter mi na la

car pe ta re set y no se vol ve rá a ella has ta que se opri -

ma re set o se des co nec te y re co nec te al mi cro pro ce -

sa dor.

La si guien te car pe ta se lla ma "mci­clo" y co mien za

con el co man do "rlf" uti li za do pa ra mo ver pos te rior -

men te el bit pues to en uno del puer to B, una po si ción

ha cia la iz quier da. De cual quier mo do al eje cu tar rlf

no se pro du ci rá to da vía el cam bio de es ta do en las

sa li das. En la se gun da sen ten cia de la car pe ta "mci­-

clo" se car ga el re gis tro de tra ba jo, pe ro aho ra uti li za -

mos otra no ta ción di fe ren te. La le tra D in di ca que va -

mos a car gar un nú me ro de ci mal y lue go en tre acen -

tos de ci mos que ese nú me ro se rá el 50 (es to es ade -

cua do pa ra usar el mi cro pro ce sa dor co mo ge ne ra dor

de on da en es ca le ra, pe ro de be cam biar se por 500 si

se va a uti li zar co mo se cuen cia dor; co mo ve mos es te

nú me ro de ter mi na la du ra ción de los es ca lo nes o el

tiem po de en cen di do de ca da led). En la ter ce ra sen -

ten cia se des car ga el nú me ro 50 en la va ria ble "j"

que an tes se de cla ró ubi ca da en la po si ción de me -

mo ria 1F.

Aquí em pie za la car pe ta "jci­clo" de una so la sen -

ten cia, en don de el mis mo nú me ro 50 se vuel ca en la

va ria ble "k" que an tes se de cla ró ubi ca da en la po si -

ción de me mo ria 1E.

La si guien te car pe ta lla ma da "kci clo" se uti li za rá

pa ra de cre men tar es tos nú me ros 50 ubi ca dos en 1F y

en 1E de mo do de es ta ble cer una de mo ra ne ce sa ria

pa ra que los es ca lo nes o el en cen di do de los leds du -

re el va lor que no so tros im pon ga mos.

La pri mer sen ten cia de la car pe ta "kci­clo", de cre -

men ta k­­en una uni dad. El co man do "decfsz" es del ti -

po con di cio nal; si el va lor de k es su pe rior a ce ro (1 a

50 en nues tro ca so), el con trol del pro gra ma va a la

sen ten cia si guien te que es in con di cio nal y reen vía el

con trol de pro gra ma a la car pe ta "kci­clo". Cuan do k

lle ga al va lor ce ro, en vía el con trol a la sen ten cia pos -

te rior a "go­to", ob vian do el bu cle "kci­clo". En una pa -

la bra que los dos pri me ros ren glo nes de la car pe ta"kci­clo" de cre men tan el nú me ro 50 has ta ce ro y co mo

ca da sen ten cia du ra 1µseg, ya que es ta mos usan do

un cris tal de 4MHz, po de mos cal cu lar que es te bu cle

del pro gra ma du ra 100µseg.

En la ter ce ra sen ten cia se de cre men ta la va ria ble

"j", del mis mo mo do que se hi cie ra con "k" pe ro se re -

tor na a la car pe ta "jci clo" pa ra ge ne rar un nue vo bu -

cle de 100µseg. Es to im pli ca que los dos bu cles tie -

nen una du ra ción de 100 x 100µseg, es de cir:

10.000µseg o 10mseg (con 500, ca da bu cle du ra

1000µseg y el pro duc to es 1.000.000 de µseg o 1seg).

Trans cu rri do es te tiem po el con trol pa sa a la quin ta

sen ten cia de la car pe ta "kci clo" que es una sen ten cia

in con di cio nal go to que en vía el con trol a la car pe ta

"mci clo". Re cién en es te mo men to se pro du ce la ro ta -

ción de ptob, se apa ga el pri mer led y se en cien de el

si guien te por otro lap so de tiem po de 1seg.

El pro gra ma irá cam bian do el bi na rio acu mu la do

en el puer to B, co rre rá el 1 a la iz quier da has ta que

sal ga del re gis tro y vuel va a in gre sar por la de re cha.

Cuan do uno tie ne es cri to el pro gra -

ma con el edit del DOS, de be ve ri fi car lo

ex haus ti va men te, con tro lar el en co lum -

na do y los erro res de sin ta xis an tes del

pun to y co ma se pa ra dor. De cual quier

mo do siem pre se pue de des li zar un

error que pro vo ca rá una fa lla en el pro -

gra ma. Si us ted tra ba ja co rrec ta men te,

el pro gra ma en sam bla dor MPASM le

avi sa rá de los erro res y le da rá al gu nas

ad ver ten cias úti les so bre el uso de al -

gu nas sen ten cias.

Pa ra ver có mo fun cio na és to, vol va -

mos a es cri bir el pro gra ma del se cuen -

cial de 8 ca na les mo di fi cán do lo de mo -

do que pre sen te al gu nos erro res, vea el

programa 7.

Microcontroladores PIC

72

Fig. 14Fig. 14

COMPILACION

DE UN PROGRAMA

Page 75: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

A con ti nua ción se abrió el MPASM y se eje cu tó el

ar chi vo mo di fi ca do con in ten ción de ob te ner el ar chi -

vo HEX que re quie re el pro gra ma dor de pics. Pe ro si

lo so li ci ta mos se pue den ge ne rar los ar chi vos .err y

.lst que se rán de gran uti li dad pa ra en con trar erro res

de ti peo (si no sa be có mo se rea li za es te pro ce so, lea

el tex to: “To do So bre PICs”, de Edi to rial Quark).

Vea mos có mo se pro du ce la lim pie za de un pro -

gra ma con erro res. Al eje cu tar el ar chi vo con F10 del

MPASM, el en sam bla dor ofre ce un re sul ta do co mo el

in di ca do en la fi gu ra 14.

Lue go se mues tra la pan ta lla gra fi ca da en la fi gu -

ra 15 don de se in di can 5 erro res y 6

pre cau cio nes, ade más de la in di ca -

ción de la can ti dad de lí neas to ta les

en sam bla das (30 en es te ca so). Aho -

ra se de ben en con trar las lí neas con

erro res y pa ra eso se de be edi tar el

ar chi vo .ERR con el mis mo edi tor de

DOS que es ta mos uti li zan do.

Por ca da error o ad ver ten cia hay

una lí nea de res pues ta que co mien -

za con "WAR­NING" (ad ver ten cia) o

ERROR (error) y un nú me ro de có di go

por el que se pue den ob te ner más

de ta lles so bre el error o la ad ver ten -

cia, lue go el nom bre de ar chi vo ana -

li za do con el ár bol de di rec to rios co -

rres pon dien te y el nú me ro de lí nea

que con tie ne el error o ad ver ten cia.

Lue go un se pa ra dor dos pun tos y el

ti po de error o ad ver ten cia. Los men sa jes de ad ver -

ten cia no im pi den el de sa rro llo de la pos te rior pro -

gra ma ción, pe ro los men sa jes de error sí. Va mos a

aten der pri me ro los men sa jes de error y lue go los de

ad ver ten cia.

No es ne ce sa rio nu me rar las lí neas de pro gra ma

a ma no, y a ve ces no es con ve nien te, por que la fal ta

de un se pa ra dor (pun to y co ma) pue de ge ne rar lí neas

fan tas mas y con fun dir nos. Es pre fe ri ble edi tar el ar -

chi vo .lst (en nues tro ca so SE­CU­8NO.LST) que tie ne al

mis mo tiem po los men sa jes de error y el nú me ro de lí -

nea.

CAPITULO 3 - Aprendiendo a programar

73

Fig. 15Fig. 15

Programa 7

Page 76: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Observe la fi gu ra 16, en la pri me ra co lum na se

mar can los erro res o pre cau cio nes y la lo ca li za ción y

va lor de las va ria bles. En la se gun da, el nú me ro de lí -

nea y a con ti nua ción la lí nea de pro gra ma. El pri mer

error lo te ne mos in di ca do an tes de la lí nea 00005: y

nos in di ca que las va ria bles o sím bo los LA y VA RIA -

BLE no es tán de fi ni dos pre via men te y que se pro duz -

co un cam bio de ope ra dor. Mi ran do la lí nea se ob ser -

Microcontroladores PIC

74

Fig. 16Fig. 16

Page 77: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

va que el úni co

pro ble ma es que

fal ta el se pa ra -

dor de co men ta -

rios y el en sam -

bla dor con fun dió

el co men ta rio

con una sen ten -

cia.

El si guien te

error es tá en la

lí nea 12 y nos in -

di ca que el error

se pro du ce des -

pués de la pri me -

ra co lum na, en -

tre pa rén te sis se

en cuen tra el ar gu men to u or den equi va len te (molw

por movlw). En la lí nea 22 es tá el si guien te error y

con sis te en la or den GO TO es cri ta co mo GO RO. Vea -

mos aho ra los men sa jes de ad ver ten cia. El pri me ro

es tá en la pri mer lí nea y se pro du ce por que es ta lí nea

es tá di ri gi da al pro gra ma dor y no pue de ser en ten di -

da por el en sam bla dor.

Se pue de de jar sin in con ve nien tes. La si guien te

es tá en la lí nea 12 y se gu ra men te va a de sa pa re cer

cuan do se co rri ja la or den movlw. Lue go pa sa mos a la

lí nea 13 en don de es tá la or den TRIS; ocu rre que en

los mi cro pro ce sa do res más mo der nos es ta or den se

mo di fi ca por otra más com ple ja; por aho ra se pue de

se guir usan do TRIS pa ra pro gra mar los puer tos si se

usa el 16C84 o el 16F84. La si guien te pre cau ción es -

tá en la lí nea 18 y se de be a que el de ci mal 50000 es -

tá fue ra del ran go ad mi ti do por el mi cro pro ce sa dor.

Es ta pre cau ción de be ser con si de ra da mo di fi can do el

va lor por uno me nor. La si guien te pre cau ción es tá en

la lí nea 22 y se co rre gi rá al reem pla zar GO RO por GO -

TO. Al co rre gir los erro res y agre gar el se pa ra dor, el

MPASM va a re por tar só lo dos ad ver ten cias. Una en la

lí nea 1 por la de cla ra ción del mi cro pro ce sa dor di ri gi -

da al pro gra ma dor de PICs y la otra es la re fe ri da a la

or den TRIS que pue de ser ig no ra do por el mo men to.

Pa ra pro gra mar un PIC se de ben co nec tar va rias

de sus pa tas en una dis po si ción de ter mi na da que ha -

ce ac ce si ble su me mo ria pa ra re ci bir da tos se rie des -

de el puer to pa ra le lo de su PC.

El puer to pa ra le lo de la PC, en don de us ted co nec -

ta ha bi tual men te la im pre so ra, tie ne va rias vías de

co ne xión, cu yo es ta do pue de mo di fi car se por me dio

de un pro gra ma ade cua do.

Con un pro gra ma ade cua do co mo el NOPP Ud.

po dría va riar el es ta do de la pa ta 14 del puer to pa -

ra le lo de la PC en una rá pi da su ce sión que se co -

rres pon da con la in for ma ción se rie ne ce sa ria pa ra

car gar el PIC.

En una pa la bra que ca da hi lo de un puer to pa -

ra le lo pue de trans for mar se en un puer to se rie. Ca -

be acla rar que es te pro gra ma, de la em pre sa

Gerns back, pue de ba jar lo de In ter net de la di re -

cción:

ftp://ftp .gerns back .com /pu b/EN /noppp .zip

En el mo men to de gra bar un PIC se lo de be dis po -

ner se gún lo in di ca do en la fi gu ra 17. Las co ne xio nes

de fuen te y las se ña les de ben ser apli ca das se gún

una se cuen cia pre de ter mi na da que de be res pe tar se

in va ria ble men te:

A)­El­pri­mer­pa­so­es­co­lo­car­el­PIC­en­el­zó­ca­lo­del

pro­gra­ma­dor­ con­ se­ña­les­ y­ fuen­tes­ a­ po­ten­cial­ de

ma­sa.

B)­Le­van­tar­la­ten­sión­de­fuen­te­VDD­a­un­po­ten­-

cial­de­5V­±­0,2V­por­la­pa­ta­14­(VDD).

C)­Le­van­tar­ la­ten­sión­de­fuen­te­VPP­a­un­po­ten­-

cial­de­13V­±­0,3V­por­la­pa­ta­4­(MCLR­NE­GA­DO).

D)­ Es­pe­rar­en­esas­con­di­cio­nes­un­ tiem­po­su­pe­-

rior­a­1mS.

E)­ Po­si­cio­nar­ el­ pri­mer­ da­to­ en­ la­ pa­ta­ 13­ (RB7)

con­un­po­ten­cial­al­to­(ma­yor­a­4V)­o­ba­jo­(me­nor­a­1V).­

F)­Cuan­do­la­pa­ta­12­(RB6)­pa­se­a­un­es­ta­do­al­to,

su­pe­rior­a­4V,­el­da­to­­se­car­ga­en­la­me­mo­ria.

G)­Con­ti­nuar­car­gan­do­los­da­tos­con­el­mis­mo­cri­-

te­rio­a­un­rit­mo­tal­que­el­da­to­es­té­pre­sen­te­por­ lo

me­nos­du­ran­te­100nS.

H)­Cuan­do­to­dos­los­da­tos­fue­ron­car­ga­dos­se­de­-

be­es­pe­rar­1­se­gun­do.

CAPITULO 3 - Aprendiendo a programar

75

Fig. 17Fig. 17

CARGA DEL PROGRAMADE UN PIC

Page 78: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

I)­Des­co­nec­tar­la­fuen­te­de­13V.

J)­Des­co­nec­tar­la­fuen­te­de­5V.

K)­Re­ti­rar­el­mi­cro­gra­ba­do.

Por so bre to das la co sas, de be res pe tar se el cri -

te rio de no sa car un PIC de su zó ca lo con las fuen tes

co nec ta das por que pue de des pro gra mar se o, peor

aún, da ñar se de fi ni ti va men te. Tam bién es muy im por -

tan te res pe tar las ten sio nes de fuen te y no de mo rar

la lle ga da de da tos, lue go co nec tar VPP (por que po -

drían car gar se da tos fal sos por in ter fe ren cias elec -

tro mag né ti cas).

Co mo us ted pue de ob ser var de la des crip ción an -

te rior la en tra da RB6 es uti li za da co mo clock y la RB7

co mo en tra da de da tos en una clá si ca ope ra ción de

trans fe ren cia de da tos en se rie. Hay un tiem po en tre

el mo men to en que MCLR’ (MCLR NE GA DO) sa le de la

con di ción de re set has ta que apa re ce el pri mer da to

o el pri mer pul so de clock. Tam bién hay un tiem po mí -

ni mo pa ra la per ma nen cia de un da to en la en tra da (la

re pre sen ta ción usa da pa ra un da to sig ni fi ca que el

mis mo pue de ser al to o ba jo, de pen de del bit que se

es té gra ban do). Lo que no hay es un tiem po má xi mo

pe ro evi den te men te cuan do ma yor es es te tiem po

más len ta se rá la car ga del pro gra ma.

El tiem po más ade cua do de pen de de fac to res ta -

les co mo el lar go del ca ble uti li za do pa ra co nec tar el

pro gra ma dor a la PC. Si el ca ble es lar go, los pul sos

tien den a de for mar se y ate nuar se, so bre to do cuan do

son de cor ta du ra ción (100nS equi va len a una fre -

cuen cia de 10MHz). Pa ra evi tar pro ble mas to dos los

pro gra ma do res tra ba jan a ve lo ci da des in fe rio res a la

má xi ma, so bre to do con si de ran do que la ca pa ci dad

de me mo ria no es muy gran de y pa ra el uso ca se ro no

son im pres cin di bles gran des ve lo ci da des de gra ba -

ción.

Lue go de gra bar un PIC se pue de ve ri fi car que su

pro gra ma ha ya si do co rrec ta men te gra ba do. Es to se

rea li za uti li zan do la mis ma pa ta 13 del PIC (RB7) que,

co mo sa be mos, es de I/O (In pu t/Out put ; en tra da /sa -

li da).

La trans for ma ción del mo do de es cri tu ra a lec tu -

ra no re quie re cam bios de hard wa re; es de cir que va -

le lo in di ca do en la fi gu ra 17. El mi cro de tec ta los pri -

Microcontroladores PIC

76

Fig. 18Fig. 18

Page 79: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

CAPITULO 3 - Aprendiendo a programar

77

me ros bit emi ti dos pa ra sa ber si de be gra bar o leer y

lue go trans for ma RB7 en puer to de sa li da pa ra po der

leer los da tos gra ba dos. Así con ti núa to do has ta el fi -

nal de la lec tu ra de da tos.

La me jor prue ba pa ra sa ber si la gra ba ción es exi -

to sa con sis te en mo di fi car la ten sión de la fuen te

VDD des de 4 a 6V. Pri me ro se de be rea li zar una ve ri -

fi ca ción a 5V exac tos, lue go se de be pa sar a 6V y rea -

li zar una nue va ve ri fi ca ción; por úl ti mo ubi car la fuen -

te en 4V y rea li zar la úl ti ma prue ba.

Es ta ve ri fi ca ción es su ma men te im por tan te por -

que un PIC mal gra ba do pue de pre sen tar fa llas en su

fun cio na mien to o peor aún pue de fun cio nar co rrec ta -

men te al prin ci pio pe ro bo rrar se en po cos días.

Va mos aho ra a adap tar nues tro pro gra ma dor pa -

ra que fun cio ne con el soft wa re NOPP.

Las di fe ren cias en tre un pro gra ma dor y otro mu -

chas ve ces se de ben a la uti li za ción de di fe ren tes pa -

tas del puer to pa ra le lo de la PC. En efec to el soft wa -

re del pro gra ma dor pue de ele gir di fe ren tes pa tas pa -

ra uti li zar las co mo en tra das y sa li das de da tos se rie.

Tam bién es po si ble que se uti li cen otras pa tas pa ra

ge ne rar las ten sio nes de con trol de fuen tes y, por úl -

ti mo, al gu nos soft wa re só lo con tro lan la fuen te VPP;

que es jus ta men te el ca so que nos ocu pa. Por úl ti mo

los pro gra ma do res más com ple tos uti li zan una fuen -

te re gu la da que pue de ajus tar se en tre 4 y 6V pa ra

com pro bar la efec ti va gra ba ción de los da tos.

En la fi gu ra 18 rea li za mos dos mo di fi ca cio nes.

Por un la do agre ga mos la lla ve LL1 pa ra ope rar la

fuen te de 5V a ma no. Cuan do la lla ve es tá ce rra da Q1

con du ce y el mi cro es tá ali men ta do con 5V por la pa -

ta 14. La ac ción de la lla ve se con tro la por el en cen di -

do del led ver de. Por lo tan to, us ted de be co lo car el

PIC en el zó ca lo o re ti rar lo só lo cuan do el led ver de

es tá apa ga do.

Con re fe ren cia a la fuen te agre ga mos un re gu la -

dor LM317 en lu gar del 78L5 que tie ne la po si bi li dad

de po der pro gra mar su ten sión de sa li da. En efec to el

pre set RV1 en un ex tre mo de be ajus tar la sa li da en

4V y en el otro lo de be ajus tar en 6V.

Tan to la sec ción de fuen te co mo el vol tí me tro ne -

ce si tan ajus tes a rea li zar con un tés ter di gi tal. La

fuen te re quie re el ajus te de R21. Co mien ce co lo can -

do re sis to res de 1kΩ; lue go de be va riar am bos va lo -

res has ta que la sa li da cam bie en tre los lí mi tes es pe -

ci fi ca dos de 4 y 6V. En el vol tí me tro se de ben ajus tar

los re sis to res de 27 y 22kΩ pa ra que el led se en cien -

da en el ran go de 4,8 a 5,2V.

Con re fe ren cia a los cam bios en el puer to pa ra le -

lo pre fe ri mos mo di fi car el ca ble de co ne xión de jan do

el co nec tor de la pla que ta sin mo di fi ca cio nes.

Ob ser ve que si la pla que ta es tá des co nec ta da o

la fuen te es tá apa ga da el soft wa re NOPP re co no ce

es te es ta do a tra vés de la pa ta 5 de la fi cha DB9 que

es tá a po ten cial al to por me dio de R9 y abor ta la ope -

ra ción de car ga.

El tran sis tor Q2 que con tro la la fuen te VPP se ma -

ne ja a tra vés de CI1 des de la pa ta 1 de la fi cha DB9.

Pe ro la fuen te de 5V de be rá ma ne jar se a ma no por in -

ter me dio de la lla ve LL1. ***********

Page 80: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

Micro - Curso Micro 2.qxd:*Cap 4 - telefonia 17/01/14 09:59 Página 56

Page 81: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.
Page 82: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

2ª de forros.qxd:club 18/09/13 12:08 Página 2ªFo1

Page 83: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

3ª de forros.qxd:sumario 223 18/09/13 12:11 Página 3ªFo1

Page 84: 2ª forros.qxd:Maquetación 1 15/01/14 12:46 Página 1publicidad.ventadewebs.com.ar/Desde _26_11_13/Descargas... · Secuenciador de 4 canales ... deLED´s:-25mAmáximodesink(ánodo)porpata-25mAmáximodesource(cátodo)porpata.

4ª de forros.qxd:sumario 223 18/09/13 12:11 Página 4ªFo1