You are on page 1of 120

PicBasic PRO Compiler TABLA DE CONTENIDOS DEL MANUAL

PicMicro instalacin del soft PBP uso acerca de este manual Su rimer ro!rama o ciones ro!ramando el micro o cion (' "aria$les esta "i"o# ten!o ro$lemas o cion (E arra%s estilos de codi!os o cion () constantes comentarios nom$res de in % "aria$les o cion (L eti&uetas !oto

IO

E'

o cion (C alias

o cion (I sim$olos

o cion (O

o cion (P uertos

o cion (S ins

o cion

identificadores eti&uetas de linea declaraciones multi les multi licacion o eradores de $it 1 DIS'BLE )SERIN LO2 PULSOUT S)I0TIN /IN enca$e5ados es ecificos caracteres de e+tension de linea di"ision o eradores de com aracion 'DCIN DIS'BLE DEBU, )SEROUT N'P P2M S)I0TOUT /OUT li$reria de arc6i"os

constantes cadenas de numericas constantes

comenta

include

define

desplazamiento operadores logicos 'SM END'SM DIS'BLE INTERRUPT I.CRE'D ON DEBU, R'NDOM SLEEP ,OTO codi!o !enerado

'BS

COS

DCD

DI,

DI*-.

M'/ % MIN

NCD

RE*

SIN

BR'NC) DTM0OUT I.C2RITE

BR'NC)L EEPROM I0 T)EN

BUTTON EN'BLE DEBU, INPUT O2IN RE'DCODE S2'P

C'LL EN'BLE INTERRUPT LCDIN O2OUT RESUME TO,,LE

CLE'R END LCDOUT P'USE RETURN USBIN

CLE'R2DT 0OR NE/T LET P'USEUS RE*ERSE USBINIT

COUNT 0RE3OUT

D'T' ,OSUB

DEBU

)I,

LOO4DO2N LOO4DO2N. PEE4 SELECT C'SE USBOUT PO4E SERIN 2)ILE 2END

LOO4

ON OUTPUT INTERRUPT RCTIME SOUND EN'BLE estructura del arc6i"o 7'SM ala$ras reser"adas "ida des ues de los .4 RE'D STOP

POT

SERIN

2RIT

UN

ES

&ue tan ra ido8

"alores uso de la R'M redeterminados ro!ramar en ensam$lador

EN

dos ensam$ladores

u$icacion del to ico acerca ensam$lador en del asem$ler linea

interru ciones interru ciones en interru ciones en !eneral B'SIC en 'SM

INTRODUCCION

INDICE

Este manual describe los usos y operaciones del compilador PicBasic PRO propiedad de microEngieneerinc, inc El com ilador PicBasic Pro 9PBP: es nuestro len!ua;e de ro!ramacin de nue"a !eneracin &ue 6ace mas f<cil % r< ido ara usted ro!ramar micro controladores Pic micro de icroc!ip Tec!nology 7 El len!ua;e Basic es muc6o m<s f<cil de leer % escri$ir &ue el len!ua;e ensam$lador Microc6i 7 El PBP es similar al =B"#IC #T" P II> % tiene muc6as de las li$rer?as % funciones de los B'SIC ST'MP I % II7 Como es un com ilador real los ro!ramas se e;ecutan muc6o m<s r< ido % ueden ser ma%ores &ue sus e&ui"alentes ST'MP7 PBP no es tan com ati$le con los B'SIC ST'MP como nuestro com ilador PicBasic es con el BS I7 Decidimos me;orar el len!ua;e en !eneral7 Una de estas decisiones fue a!re!ar I0 777T)EN777ELSE777ENDI0 en lu!ar de I077 T)EN 9,OTO: de los Stam s7 Estas diferencias se "en lue!o en este manual7 PBP or defecto crea arc6i"os &ue corren en un PIC @A0BC(DCEP con un relo; de C M657 Solamente mu% ocas artes son necesarias ca acitores de dos ca acitores de .. f ara el cristal de CM65 un resistor de C7F4 en el inEMCLR % una fuente de G "olt7 Otros micros PIC adem<s del @A0BCH as? como otros osciladores de frecuencias distintas ueden ser usados or este com ilador7 INDICE

$O#

ICRO# INDICE

El PBP roduce cdi!o &ue uede ser ro!ramado ara una "ariedad de micro controladores PIC &ue ten!an de B a AB ins % "arias o ciones en el c6i inclu%endo con"ertidores 'EDH tem ori5adores % uertos seriales7 )a% al!unos micros PIC &ue no tra$a;aran con el PBPH or e;em lo las series PIC @ACG/ inclu%endo el PIC @ACGC I PIC @GCGB7 Estos micro PIC est<n $asados en el "ie;o nJcleo de

@. $it en lu!ar del nJcleo m<s corriente de @C $it7 El PBP necesita al!una de las o ciones &ue solamente est<n dis oni$les con el nJcleo de @C $it como el stacK 9 ila:de B ni"eles7 )a% muc6os micros PICH al!unos com ati$les in a in con la serie G /H &ue ueden ser usados con el PBP7 La lista inclu%e PIC@ACGGCH GGAH GGBH A@H A.9':H A.DH A.@H A..H A-H AC9':H AG9':H F@H F@DH F@@H F@GH F.H F-9':H FC9':H BCH L.-H L.CH el PIC@A0B- % BCH el PIC@.CAF@ % AF. % el PIC@CCDDDH % Microc6i si!ue a!re!ando otros7 Para reem la5o directo de un PIC@AACGC o GBH el PIC@ACGGCH GGBH A.D % A.. funcionan $ien con el com ilador % tienen a ro+imadamente el mismo recio7M Para ro sitos !enerales de desarrollo usando el PBPH el PIC@A0BC 9o PIC@ACBC si el 0BC no est< dis oni$le: es la eleccin comJn de micro PIC7 Este micro controlador de @B in usa tecnolo!?a flas6 9EEPROM: ara ermitir r< ido $orrado % re ro!ramacin ara acelerar la de uracin de ro!ramas7 Con el clic de un mouse en el softNareH el PIC@A0BC uede ser $orrado instant<neamente % lue!o ser re ro!ramado una % otra "e57 Otros micros PIC de las series @.CAF/H @ACGG/H @ACA/H @ACF/ % @ACL/ son ro!rama$les una "e5 9OTP: o tienen una "entana de cuar5o en su arte su erior 9O2: ara ermitir el $orrado e+ oniPndolo a una lu5 ultra"ioleta durante "arios minutos7 El PIC@A0BC 9% QCBC: adem<sH contiene AC $%tes de memoria de datos no "ol<til &ue uede ser usada ara arc6i"ar el datos de ro!rama % otros ar<metrosH aun cuando no 6a%a ener!?a7 ' Psta <rea de datosH se uede acceder sim lemente usando las rdenes =Read> % =2rite> del PBP7 9El cdi!o ro!rama es ermanentemente !uardado en el es acio de cdi!o del micro PICH tanto si 6a% o no ener!?a7: Usando el Q0BC ara el testeo del ro!rama inicial H el roceso de de uracin uede ser m<s r< ido7 Una "e5 &ue las rutinas rinci ales de un ro!rama estPn o erando satisfactoriamenteH se uede utili5ar un micro PIC con ma%or ca acidad o las o ciones e+ andidas del com ilador7 Si $ien muc6as de las o ciones del micro PIC ser<n discutidas en este manual H ara com letar la informacin del micro PICH es necesario o$tener las a ro iadas 6o;as de datos del micro PIC o el CD(ROM de icroc!ip Tec!nology Inc7 INDICE

"CERC" DE E#TE

"NU"$

INDICE

Este manual no es un tratado com leto del len!ua;e B'SIC7 Descri$e el con;unto de instrucciones del micro PIC % $rinda e;em los de cmo utili5arlo7 Si no est< familiari5ado con la ro!ramacin de B'SIC H de$er< o$tener un li$ro so$re dic6o tema7 O intentarlo directamente7 B'SIC est< diseRado como un len!ua;e f<cil de utili5ar %H 6a% e;em los adicionales de ro!ramas en el disco &ue ueden a%udarlo a comen5ar7 La r+ima seccin de este manual a$arca la instalacin del PBP % la escritura del rimer ro!rama7 Si!uiendo a estoH una seccin &ue descri$e diferentes o ciones ara la com ilacin de ro!ramas7

Des uPs son e+ licadas las $ases de la ro!ramacin H se!uidas or una seccin de referencia en donde cada comando del PBP es detallada en una lista7 La seccin de referencia muestra cada rototi o de comandoH una descri cin del comando % al!unos e;em los7 Las lla"es 9ST:H indican los ar<metros o cionales7 El resto del manualH ro"ee informacin ara ro!ramadores a"an5ados ( todo el tra$a;o interno &ue el com ilador 6ace7 INDICE

EMPEZANDO DESDE EL PRINCIPIO


IN#T"$"CI%N DE$ #O&T'"RE INDICE
El softNare PBP de$e ser co iado a su disco r?!ido antes de usarlo7 Cree un su$directorio en su disco llamado PBP u otro nom$re a su eleccinH ti eando md PBP en el rom t de DOS7 Co ie todos los arc6i"os desde el disKette ad;unto Hen el su$directorio recientemente creadoH ti eandoU (copy a)*+* PBP ,s La o cin Es ase!urar< &ue todos los su$directorios necesarios ser<n creados dentro del su$directorio PBP7 Si el arc6i"o es com rimido 97VIP: o e;ecuta$le 97E/E:H usted necesita descom rimirlo 9un5i : usando la o cin (d ara ase!urarse &ue los su$directorios sean recreados7 'se!urese &ue 0ILES % BU00ERS sean fi;ados en or lo menos GD en su arc6i"o CON0I,7SIS 7 De endiendo de cuantos 0ILES % BU00ERS %a estPn en uso or su sistemaH uede ser necesario aumentar su nJmero7 recomendaciones del fa$ricante INDICE

#U PRI ER PRO-R" " INDICE

Para o erar el PBP H necesitar< un editor rocesador de te+to ara crear su ro!rama fuente H al!Jn ti o de ro!ramador de micros PIC como el EPIC Plus PocKet PICmicro Pro!rammer % el ro io PBP7 Por su uesto H tam$iPn necesita un PCU La secuencia de e"entos es similar a la si!uiente U

Primero cree el arc6i"o fuente B'SIC ara el ro!rama H usando su editor o rocesador de te+to referido7 Si lo desea H EDIT 9 inclu?do en DOS: NOTEP'D 9inclu?do en 2INDO2S: H ueden ser utili5ados7El nom$re del arc6i"o fuente de$e terminar con la e+tensin 7B'S 9 ero no es e+clu%ente:H recomiendo el UltraEdit El arc6i"o de te+to creado de$e ser te+to 'SCII uro 7No de$e contener cdi!os es eciales insertados or rocesadores de te+to ara sus ro sitos es ec?ficos 7Normalmente se tiene la o cin de !ra$ar el arc6i"o como te+to 'SCII uro en la ma%or?a de los rocesadores de te+to7 El si!uiente ro!rama ro"ee un $uen rimer testeo de un micro PIC en el mundo real 7Puede ti earlo o sim lemente o$tenerlo del su$directorio S'MPLES inclu?do en el disKette distri$uido con el PBP 7El arc6i"o es BLIN47B'S 7 El arc6i"o fuente B'SIC de$e ser creado Wo mo"ido al mismo directorio donde se encuentra el arc6i"o PBP7E/E E;em lo de ro!rama ara 6acer ar adear un LED conectado al uerto PORTB7D H a ro+imadamente una "e5 or se!undo X loop) !ig! PORTB+. X enciende el LED pause /.. X demora de 7G se!undos lo0 PORTB+. X a a!a el LED pause /.. X demora de 7G se!undos goto loop X "uel"e a loo % 6ace ar adear el LED indefinidamente end Una "e5 &ue Ud7 estP con"encido &ue el ro!rama &ue 6a escrito funcionar< sin errores uede com ilarlo in!resando PBP se!uido del nom$re de su arc6i"o de te+to en el rom t de DOS 7Por e;em lo H si el arc6i"o de te+to &ue Ud7 creo se llama B$IN1+B"# H in!rese U PBP blin2 El com ilador mostrar< un mensa;e de iniciali5acin % rocesar< su arc6i"o 7Si lo ace ta H crear< un arc6i"o de cdi!o fuente ensam$lado 9 en este caso B$IN1+"# : % autom<ticamente in"ocar< al ensam$lador ara com letar la tarea 7Si todo funciona $ien H se crea un arc6i"o de cdi!o microPIC 9en este caso BLIN47)E/:7 Si e+isten errores H se emitir< un listado de los mismos H &ue de$er<n ser corre!idos en su arc6i"o fuente B'SIC antes de ser com ilados nue"amente7 Para a%udarlo a ase!urarse &ue su arc6i"o ori!inal funcione sin errores H es me;or comen5ar escri$iendo % ro$ando e&ueRas artes de su ro!rama % no escri$ir @DDDDD l?neas de ro!rama % lue!o tratar de de urarlas de rinci io a fin7 Si UdH no le indica otra cosa H el PBP H or defecto H crea c3digo para el PIC45&67 7 Para com ilar cdi!os ara otros micros PIC H sim lemente use la o cin 8p en la l?nea de comandos H como se descri$e mas adelante H ara es ecificar otro ti o de rocesador 7Por

e;em lo si intenta usar el ro!rama B$IN1+B"# en un PIC45C97 H com ile usando el comando PBP 8 p45c97 blin2 INDICE

PRO-R" "NDO E$

ICRO INDICE

)a% otros dos asos colocar su ro!rama com ilado dentro del micro controlador Picmicro % testearlo7 El PBP !enera arc6i"os de B $it standard de INTEL 97)E/: &ue ueden ser usados con cual&uier ro!ramador de microsPic inclu%endo nuestro ro!ramador EPIC Plus PocKet PICmicro Pro!rammer7 Los microPic no ueden ser ro!ramados con ca$les de ro!ramacin B'SIC Stam 7 El si!uiente es un e;em lo de cmo un microPic uede ser ro!ramado usando nuestro ro!ramador EPIC 7 'se!Jrese de &ue no 6a%a microsPic instalados en el 5calo de ro!ramacin del ro!ramador EPIC7 Conecte el ro!ramador EPIC al uerto aralelo de im resora del PC usando un ca$le de im resora DB.G mac6o a DB.G 6em$ra7 Enc6ufe el ada tador de 'C en la ared % lue!o en el ro!ramador EPIC 9o colo&ue dos $ater?as de L "olt en el ro!ramador % conecte el ;um er =Batt ON>:7 El LED en el ro!ramador uede estar encendido o a a!ado en este momento7 No colo&ue un microPic en el 5calo de ro!ramacin cuando el LED estP encendido o antes de &ue el softNare de ro!ramacin dP comien5o7 In!reseU EPIC7 En el rom t de DOS ara comen5ar el softNare de ro!ramacin7 El softNare EPIC uede ser iniciado desde una seccin de DOS ura o desde una seccin de DOS $a;o 2indoNs OSE.7 9No se recomienda utili5arlo $a;o 2indoNs or&ue altera el sistema de tiem os % ;ue!a con los uertos lo &ue uede causar errores de ro!ramacin:7 El softNare de EPIC $usca donde est< conectado el ro!ramador EPIC % lo de;a listo ara ro!ramar un microPIC7 Si no se encuentra un ro!ramador EPIC c6e&uea todas las cone+iones % "erifica &ue no 6a% un microPic o al!Jn ada tador conectado al ro!ramador7 Ti eandoU EPIC E 8 En el rom t de DOS mostrar< una lista de o ciones dis oni$les ara el softNare de EPIC7

Una "e5 &ue se muestra la antalla de ro!ramacinH use el mouse ara 6acer clicK so$re OPEN arc6i"o a riete 'lt(O en su teclado7 Use el mouse o el teclado ara seleccionar BLIN47)E/ cual&uier otro arc6i"o &ue usted desee ro!ramar dentro del microPic desde la ca;a de di<lo!o7 El arc6i"o se car!ar< % usted "er< una lista de nJmeros en la "entana de la i5&uierda7 Esto es su ro!rama en cdi!o de microPic7 ' la derec6a de la antalla se muestra informacin de la confi!uracin &ue ser< ro!ramada dentro del microPic7 *erifi&ue &ue es correcta antes de rose!uir7 En !eneralH el oscilador de$e ser colocado en /T ara un cristal de C M65 % el 2atc6do! Timer de$e ser colocado en ON ara ro!ramas de PBP7 Mas im ortanteH Code Protect de$e ser O00 cuando se ro!rama cual&uier micro con "entana de cuar5o 9O2:7 Usted no uede $orrar un microPic con "entanas &ue 6a sido rote!ido con cdi!o7 Cuando todo arece mara"illosoH es tiem o de insertar un microPic dentro del 5calo de ro!ramacin % 6acer clicK so$re Pro!ram teclear 'lt(P en el teclado7 El microPic rimero ser< c6e&ueado ara ase!urarse de &ue estP en $lanco % lue!o su cdi!o ser< ro!ramado dentro de Pl7 Si el microPic no est< en $lanco % es un @A0BC un @ACBCH usted sim lemente uede ele!ir ro!ramarlo sin $orrarlo rimero7 Una "e5 &ue se com let el ro!rama % se a a! el LED es tiem o de ro$ar su ro!rama7 INDICE

E#T" :I:O

INDICE

El es&uema de e;em lo si!uiente da una idea de los ocos elementos &ue se necesitan conectar a un microPic ara 6acerlo funcionar7 B<sicamente se necesita un resistor de ull( u en la l?nea EMCLRH un cristal de C M65 con . ca acitores % una fuente de G "olt7 )emos a!re!ado un LED % un resistor ara ro"eer la salida ara el ro!rama BLIN47 Constru%a % "erifi&ue este sim le circuito en una tar;eta % enc6ufe el microPic &ue usted ro!ram7 Nuestra l?nea de tar;etas PICProto es erfecta ara este ti o de cosas7 Conecte una fuente de alimentacin su microPIC arrancar< ar adeando el LED a ro+imadamente una "e5 or se!undo7 Si no lo 6ace "erifi&ue todas las cone+iones % ase!Jrese &ue 6a% G "olt en los ins a ro iados de su microPic Con este sim le comien5o H uede crear su ro io mundo de a licaciones7

INDICE

TEN,O PROBLEM'S

INDICE

Los ro!ramas mas comunes ara 6acer funcionar los microPic in"olucran ase!urarse &ue los ocos com onentes e+ternos sean de "alor a ro iado % est<n conectados adecuadamente7 Las si!uientes son al!unas cla"es ara a%udar a 6acer funcionar todo7 'se!Jrese &ue el in EMCLR est< conectada a G "olt a tra"Ps de al!Jn ti o de circuito rotector o sim lemente con un resistor de C7F47 Si de;a el in sin conectar su ni"el flota % al!unas "eces el microPic uede fallar7 El microPic tiene un circuito interno de oNer(on( reset 9 uesta a cero al encender: % en !eneral solo es necesario un resistor interno de ull( u es adecuado7 En al!unos casos el microPic uede no arrancar a ro iadamente % se necesita un circuito interno7 En los manuales encontrar< ma%or informacin7 'se!Jrese de usar un cristal en $uen estado con ca acitores de "alor adecuados conectados a Pl 7 Los "alores de los ca acitores ueden ser dif?ciles de leer7 Si los "alores son mu% diferentes el oscilador no arrancar< ni tra$a;ar< en forma a ro iada7 Un cristal de C M65 con . ca acitores cer<micos de .. f es un $uen comien5o ara la ma%or?a de los microPic7 Una "e5 masH $us&ue en los manuales informacin adicional en Pste tema7 'se!Jrese de &ue la fuente de alimantacin es a ro iada ara la tarea7 'un&ue el microPic consume mu% oca otencia la fuente de$e estar mu% $ien filtrada7 Si el microPic est< controlando dis ositi"os &ue consumen $astante corriente de su fuente cuando ellos se encienden o a a!an ueden causar un !litc6 9ruido interferencia: en las l?neas de alimentacin causando &ue el microPic de;e de funcionar a ro iadamente7 'un un "isor LED

uede crear un drena;e instant<neo en una e&ueRa fuente de alimentacin 9como una $ater?a de L "olt: % causar el microPic falle7 C6e&ue las 6o;as de datos del microPic7 'l!unos dis ositi"os tienen o ciones &ue ueden interferir con al!unas o eraciones7 Los PIC@ACA./ 9@ACA.DH A.@ % A..: son un $uen e;em lo7 Estos microPic tienen com aradores anal!icos en PORT'7 Cuando estos micros arrancanH PORT' se coloca en modo anal!ico7 Esto 6ace &ue la funcin en PORT' tra$a;e de una manera no es erada7 Para cam$iar el in a di!italH sim lemente a!re!ue la l?nea7 C CON ; 9 'l rinci io de su ro!rama 7Cual&uier micro YC con entradas anal!icas como la serie@ACF++ arrancar< en modo anal!ico 7De$er< colocarlos en modo di!ital si intenta usarlos en ese modo7 Otro e;em lo de desastre otencial es el in C PORT' H e+6i$e un com ortamiento inusual cuando es usado como salida 7Esto sucede or&ue tiene una salida a colector a$ierto H en lu!ar del estado $i olar del resto de los ins 7Esto si!nifica &ue uede ser lle"ada a tierra cuando se coloca en D 7 ero =flotar<> cuando se la colo&ue en @ H en lu!ar de ir a un estado alto 7Para 6acer &ue este in funcione de manera correcta H a!re!ue un resistor de ull(u entre el in % G "olt 7 El "alor del resistor uede estar entre @ 4 % -- 4 7 de endiendo de la cone+in de entrada 7Este in actua como cual&uier otro cuando se lo usa como entrada7 Todos los ins del microPIC se colocan como entradas cuando arranca 7Si necesita &ue un in actue como salida H colo&uelo como salida antes de usarlo use un comando de PBP &ue lo 6a!a or Ud 7Una "e5 m<s H uede re"isar las 6o;as de datos de los microsPIC 7 Comience en e&ueRo 7Escri$a ro!ramas cortos ara ro$ar o ciones de las &ue no est< se!uro con las &ue uede tener ro$lemas 7Una "e5 &ue estas funcionen 7 uede se!uir adelante Trate de 6acer las cosas de otra manera 7 'l!unas "eces H a&uello &ue trata de 6acer de$er?a funcionar H ero no lo 6ace 7 Normalmente 6a% mas de una forma de confeccionar un ro!rama 7 Trate de lle!ar utili5ando un <n!ulo diferente7

E#TI$O DE C%DI-O

INDICE

Escri$ir ro!ramas le!i$les % manteni$les es un arte 7 E+isten al!unas tPcnicas sim les &ue ud7 de$e se!uir % se con"ertir< en un artista7

CO ENT"RIO#

INDICE

Use comentarios 7 'un&ue sea erfectamente o$"io ara UdH lo &ue est< escri$iendo H al!uien m<s uede leerlo 9 Ud7 mismo m<s tarde: % uede no tener idea de lo &ue Ud7 6i5o 7'un&ue los comentarios usan es acio en el arc6i"o fuente B'SIC H no lo 6acen en el microPIC 7

)a!a &ue los comentarios le di!an al!o Jtil acerca de lo &ue el ro!rama est< 6aciendo 7Un comentario como = colocar in D en @ = sim lemente e+ lica la sinta+is del len!ua;e H ero no le dice nada acerca de la necesidad de 6acerlo 7 =Encender el LED de $ater?a $a;a> uede ser m<s Jtil 7 Un $lo&ue de comentarios en el comien5o del ro!rama % antes de cada seccin de cdi!o uede descri$ir &ue suceder< con m<s detalle &ue un sim le es acio des uPs de cada l?nea 7No inclu%a un $lo&ue de comentarios en lu!ar de comentarios indi"iduales de l?nea ( use am$os 7 En el comien5o del ro!rama &ue 6ar< el ro!rama H autor % fec6a 7Puede ser Jtil ara listar informaciones de re"isin % fec6as 7 Es ecificar las cone+iones de cada in uede ser Jtil ara recordar ara &ue e&ui o en es ecial se ro!ram 7Si se utili5 un cristal no standard H u o ciones es eciales de com ilacin ase!urese de indicarlo 7

NOMBRES DE PIN I DE *'RI'BLE

INDICE

)a!a &ue los nom$res sean al!o m<s co6erente &ue PinD o B@ 7 'dem<s de un uso li$re de comentarios H nom$res descri ti"os a%uda muc6o a la le!i$ilidad 7 El si!uiente fra!mento lo demuestra U Batt$ED <ar portb+. X LED de $ater?a $a;a $e<el <ar byte X la "aria$le contiene el ni"el de $ater?a I= le<el > 4. t!en X si el ni"el de $ater?a es $a;o ?ig! batt$ED X enciende el LED Endi=

ETI@UET"#

INDICE

Las eti&uetas 9la$els: de$en indicar al!o mas si!nificati"o &ue = eti!ueta @> =a&u?> 7'Jn una eti&ueta =loo > es m<s descri ti"a 9 ero oco: 7Usualmente la l?nea rutina a la &ue se est< saltando 6ace al!o Jnico 7Trate de dar un indicio de su funcin con la eti&ueta % lue!o si!a con un comentario 7

-OTO

INDICE

Trate de no usar demasiados -OTO 7 'un&ue ueden ser un mal necesario H trate de minimi5ar su uso en lo osi$le 7Trate de escri$ir su cdi!o en secciones l!icas % no ir saltando a cual&uier lado 7 Usar -O#UB uede ser Jtil ara esto 7

OPCIONE# DE $ANE" DE CO "NDO


U#O INDICE

INDICE

El PBP uede ser llamado desde la l?nea de comando del DOS usando el si!uiente formatoU PBP opciones nombre de arc!i<o+ Nin!una o "arias o ciones ueden ser usadas ara modificar la manera en &ue PBP com ila el arc6i"o es ecificado7 Las o ciones comien5an con un si!no menos 9(: o una $arra in"ertida 9E:7 El car<cter si!uiente al si!no menos o la $arra es una letra &ue selecciona la o cin7 Puede 6a$er m<s caracteres si la o cin re&uiere mas informacin7 Cada o cin de$e estar se arada or un es acioH ero no uede 6a$er nin!Jn es acio dentro de una o cin7 O ciones mJlti les ueden ser usadas al mismo tiem oH or e;em loU PBP 8p45c94 8ampasm blin2 Causar< &ue el arc6i"o BLIN47B'S sea com ilado usando MP'SM sea usado como ensam$lador % diri!ido a un rocesador PIC@ACF@7 El rimer elemento &ue no comien5a con un si!no menos se toma como nom$re de arc6i"o7 Si no se es ecifica e+tensin se usa la e+tensin 7B'S or defecto7 Si se es ecifica una rutaH en ese directorio es $uscado el nom$re del arc6i"o7 No im orta donde se encuentre el arc6i"o fuenteH los arc6i"os !enerados or PBP se colocan en el directorio actual7 Por defectoH PBP autom<ticamente arranca el ensam$lador 9PM7E/E: si la com ilacin se efectJa sin error7 PBP es era encontrar PM7E/E en el mismo directorio &ue PBP7E/E7 Si la com ilacin tiene errores o se usa la o cin (S no arranca el ensam$lador7 Si PBP es llamado sin ar<metro o sin nom$re de arc6i"o se muestra una antalla de a%uda7

OPCIONE# INDICE

Opci3n " C Usa un ensam$lador diferente

Descripci3n

Inserta l?neas fuente como comentarios dentro del arc6i"o ensam$lador

?BCD I $ O P # :

Muestra la antalla de a%uda Usa una ruta diferente ara Include Usa un arc6i"o diferente ara Li$rar% Pasa la o cin al ensam$lador Es ecifica el ti o de rocesador Saltea la e;ecucin del ensam$lador cuando est< 6ec6o7 Modo con comentario

Opci3n 8" INDICE

PBP tiene la osi$ilidad de usar tanto PMH &ue est< inclu?do con PBP MP'SM de Microc6i Zs como ensam$lador7 Para es ecificar MP'SMH use (am asm en la l?nea de comandos PBP 8ampasm nombre de arc!i<o Si no se es ecifica un ensam$lador en la l?nea de comandoH se usa PM7 *ea la seccin de ro!ramacin en len!ua;e ensam$lador ara m<s informacin7

Opci3n 8C INDICE
La o cin (C causa &ue PBP inserte las l?neas del arc6i"o fuente como comentario en el arc6i"o fuente en len!ua;e ensam$lador7 Esto uede ser Jtil como una 6erramienta de de uracin o una 6erramienta de a rendi5a;e %a &ue muestra la instruccin PBP se!uida or las instrucciones en len!ua;e ensam$lador &ue !enera7 PBP 8C nombre de arc!i<o

Opci3n 8E INDICE
La o cin (e causa &ue el PBP en"ie todos los errores a un arc6i"oHnom$re[de[arc6i"o7er 7 PBP 8e nombre de arc!i<o

Opci3n 8? 3 8C INDICE
La o cin () (8 causa &ue PBP muestre una antalla de a%uda7 Esta antalla de a%uda tam$iPn se muestra si no se es ecifica o cin o nom$re de arc6i"o en la l?nea de comandos

Opci3n 8I INDICE

La o cin (I le ermite seleccionar la ruta include usada or el PBP7

Opci3n 8$ INDICE
La o cin (L ermite seleccionar la li$rer?a usada or el PBP7 Esta o cin !eneralmente es innecesaria %a &ue el arc6i"o de li$rer?a or defecto se coloca en un arc6i"o de confi!uracin ara cada micro controlador7 Para mas informacin acerca de la li$rer?a PBPH "ea las secciones a"an5adas de Pste manual7 PBP (l $ s. nom$re del arc6i"o

Este e;em lo 6ace &ue PBP com ile el nom$re del arc6i"o usando la li$rer?a PicStic.7

Opci3n 8O INDICE
La o cin (O causa &ue las letras &ue la si!an sean asadas al ansam$lador en su l?nea de comando como o ciones7 'l!unas o ciones de PM se muestran en la si!uiente ta$laU

P OD O$

opci3n

Descripci3n ,enera listadosH Ta$la de s?m$olos % arc6i"os de ma eado Solamente !enera listados

PBP (ol nom$re de arc6i"o Este e;em lo le dice a PBP &ue !enere un arc6i"o nom$re de arc6i"o7lst des uPs de una com ilacin satisfactoria7 Se uede asar mas de una o cin (O al ensam$lador a la "e57 El manual del ensam$lador Macro Picmicro en el disco contiene mas informacin7

Opci3n 8P INDICE
Si no se le indica otra cosaH PBP com ila ro!ramas ara el PIC@A0BC7 Si el ro!rama est< destinado a otro rocesador su nom$re de$e ser es ecificado en la l?nea de comando usando la o cin (P7 Por e;em lo si el ro!rama PBP est< destinado a un rocesador PIC@ACFC la l?nea de comando de$er?a ser la si!uienteU PBP 8p45c97 nombre de arc!i<o

Opci3n 8# INDICE
Normalmente cuando PBP com ila e+itosamente un ro!rama autom<ticamente arranca el ensam$lador7 Esto se 6ace ara con"ertir la salida ensam$lada el PBP a una ima!en e;ecuta$le7 La o cin (S e"ita esto de;ando la salida del PBP en un arc6i"o 7'SM7 Ia &ue (S e"ita &ue sea llamado el ensam$lador todas la o ciones &ue son asadas al ensam$lador usando la o cin (O son anuladas7 PBP 8# nombre de arc!i<o

Opci3n 8: INDICE
La o cin (* coloca al PBP en modo de comentarios el &ue resenta ma%or informacin durante la com ilacin del ro!rama7 PBP (* nom$re de arc6i"o

B"#E# DE$ PBP

INDICE

IDENTI&IC"DORE# INDICE
Un identificador es sim lemente un nom$re7 Son usados en PBP como eti&uetas de l?neas % nom$res de "aria$les7 Un identificador es cual&uier secuencia de letrasH d?!itos % s?m$olosH aun&ue no de$en comen5ar con un d?!ito7 Los identificadores no distin!uen las letras ma%Jsculas de las minJsculasH or lo &ue etiEuetaH ETI@UET"H EtiEuEt" H son todas tratadas como e&ui"alentes7 'un&ue las eti&uetas ueden tener cual&uier nJmero de caracteres de lon!itud PBP solamente reconoce los rimeros -.7

ETI@UET"# DE $ANE" 9L'BELS: INDICE


Para marcar l?neas &ue el ro!rama uede desear referenciar con comandos -OTO -O#UBH PBP usa eti&uetas de l?nea7 PBP no ermite nJmero de l?nea % no re&uiere &ue cada l?nea sea eti&uetada7 Cual&uier l?nea PBP uede comen5ar con una eti&ueta de l?nea &ue es sim lemente un identificador se!uido or un unto % coma 9\:

mostrar) #erout ., NF7.., GH?ello, 'orldIJ, 4K, 4.L -oto mostrar

:"RI"B$E# INDICE
*aria$les es donde se !uardan datos en forma tem oraria en un ro!rama PBP7 Son creadas usando la ala$ra cla"e *'R7 Pueden $its H $%tes Nord7 Es acio ara cada "aria$le es autom<ticamente destinado en la memoria del micro controlador or PBP7 El formato ara crear una "aria$le es el si!uienteU EtiEueta :"R tamaMo B+modi=icadoresD Eti&ueta es cual&uier identificador e+clu%endo ala$ras cla"es como se descri$e anteriormente7 TamaRo es $itH $%te Nord7 Modificadores o cionales a!re!an control adicional acerca de cmo se crea la "aria$le7 'l!unos e;em los de creacin de "aria$les sonU perro <ar byte gato <ar bit '. <ar 0ord No 6a% "aria$les redefinidas de usuarios de PBP7 Por ra5ones de com ati$ilidad e+isten dos arc6i"os &ue crean las "aria$les standard usadas con B'SIC stam sU=$s@defs7$as> % =$s.defs7$as>7 Para usar uno de estos arc6i"os a!re!ue la l?nea Include Hbs4de=s+basJ Include HbsFde=s+basJ cerca del comien5o del ro!rama PBP7 Estos arc6i"os contienen numerosas declaraciones *'R &ue crean todas las "aria$les de B'SIC Stam s % definiciones de in7 De cual&uier maneraH en lu!ar de usar estos arc6i"os en"asados le recomendamos &ue cree su ro ias "aria$les usando nom$res con si!nificado ara usted7 El nJmero de "aria$les dis oni$les de ende de la cantidad de R'M en un dis ositi"o en articular % el tamaRo de las "aria$les % los arra%s 7PBP reser"a a ro+imadamente .C osiciones R'M ara su ro io uso7 Tam$iPn uede crear "aria$les tem orarias adicionales ara usar en ordenamiento de ecuaciones com le;as7

"$I"# INDICE

:"R tam$iPn uede ser usado ara crear un alias ara una "aria$le7 Esto es mu% Jtil ara acceder al interior de una "aria$le7 =ido <ar perroN =ido es otro nombre de perro b. <ar 0.+byte. N b. es el primer byte de 0ord 0. b4 <ar 04+byte4 N b4 es el segundo byte de 0ord 0. =lea <ar perro+. N =lea es bit. de perro

odi=icador BITD O D BIT@ O @ BIT. O . BIT- O BITC O C BITG O G BITA O A BITF O F BITB O B BITL O L BIT@D O @D BIT@@ O @@

Descripci3n Crea alias al $it D de $%te o Nord Crea alias al $it @ de $%te o Nord Crea alias al $it . de $%te o Nord Crea alias al $it - de $%te o Nord Crea alias al $it C de $%te o Nord Crea alias al $it G de $%te o Nord Crea alias al $it A de $%te o Nord Crea alias al $it F de $%te o Nord Crea alias al $it B de Nord Crea alias al $it L de Nord Crea alias al $it @D de Nord Crea alias al $it @@ de Nord

BIT@. O @. BIT@- O @BIT@C O @C BIT@G O @G BITED O LO2BITE BITE@ O )I,)BITE

Crea alias al $it @. de Nord Crea alias al $it @- de Nord Crea alias al $it @C de Nord Crea alias al $it @G de Nord Crea alias al loN$%te de Nord Crea alias al 6i!6$%te de Nord

"RR"O# B"RRE-$O#D INDICE


Los arre!los de "aria$les ueden ser creados en una manera similar a las "aria$les7 EtiEueta :"R tamaMo BnPmero de elementosD Eti&ueta es cual&uier identificadorH e+clu%endo ala$ras cla"esH como se descri$i anteriormente7 TamaRo es BITH BITE 2ORD7 NJmero de elementos es cuantos lu!ares en el arre!lo se desean7 'l!unos e;em los de creacin de arre!lo son los si!uientesU s!ar2s <ar byteG4.L =is! <ar bit G6L La rimer u$icacin dentro del arre!lo es el elemento cero7 En el arre!lo fis6 anterior los elementos est<n numerados fis6 9D: a fis6 9F: conteniendo B elementos en total 7 Dada la forma en &ue los arre!los est<n locali5ados en memoria 6a% l?mites de tamaRo ara cada ti o7

TamaMo BIT BOTE

NPmero mQ(imo de elementos 4F6 57

'ORD

KF

*ea la seccin de memoria ara mas informacin7

CON#T"NTE# INDICE
Las llamadas constantes ueden ser creadas de manera similar a las "aria$les7 Puede ser mas con"eniente usar un nom$re de constante en lu!ar de un nJmero constante7 Si el nJmero necesita ser cam$iadoH Jnicamente uede ser cam$iando en un lu!ar del ro!rama donde se define la constante7 No ueden !uardarse datos "aria$les dentro de una constante7 EtiEueta CON e(presi3n constante 'l!unos e;em los sonU ice con K Traps con mice *4...

#A BO$O# INDICE
#O BO$ ro"ee otro mPtodo ara renom$rar 9darle alias: a "aria$les % constantes7 SIMBOL no uede ser usado ara crear una "aria$le7 Use :"R ara crear una "aria$le #O BO$ lion ; cat N cat =ue pre<iamente creada usando :"R #O BO$ mouse ; 4 N igual Eue mouse con 4

CON#T"NTE# NU RRIC"# INDICE


PBP ermite definir constantes numPricas en tres $asesU decimalH $inario % 6e+adecimal7 *alores $inarios son definidos usando el refi;o =]> % "alores 6e+adecimales usando el refi;o =^>7 Los "alores decimales se toman or defecto % no re&uieren refi;o7

X "alor decimal @DD S4.. N <alor binario para el decimal 7+ T4.. N <alor !e(adecimal para el decimal F/5+

Para facilitar la ro!ramacinH los caracteres son con"ertidos en sus e&ui"alentes 'SCII7 La constante de$e ser uesta entre comillas % contener slo un caracter 9de lo contrarioH ellas son una cadena de constantes:7 H"J U "#CII <alor para el decimal 5/ HdJ U "#CII <alor para el decimal 4..

C"DEN" DE CON#T"NTE#U 9strin!: INDICE


PBP no ro"ee ca acidad de mane;o de cadenasH ero las cadenas ueden ser usados con al!unos comandos7 Una cadena contiene uno o m<s caracteres % es delimitado entre comillas7 No se so ortan secuencias de esca e ara caracteres no('SCII 9aun&ueH la ma%or?a de los comandos PBP tienen este mane;o incor orado: H?elloJ U #tring B=orma abre<iada de H?J, HeJ, HlJ, HlJ, HoJD Las cadenas son usualmente tratadas como una lista de "alores de caracteres indi"iduales7

PUERTO# O OTRO# RE-I#TRO# INDICE


todos los re!istros inclusi"e los uertos del PICmicro MCUH ueden ser accedidos como cual&uier otra "aria$le en PicBasic 7 Esto si!nifica &ue ueden ser le?dos H ser escritos o ser utili5ados en ecuaciones directamenteU

PORT" ; S.4.4.4.47 _ Escri$e el "alor en el PUERTO '

PORT" any<ar ; PORTB y T.&7 _ '?sle los C d?!itos $inarios $a;os de PORTB % on!a el resultado en an%"ar

PIN# INDICE
' los ins se uede acceder de diferentes modos7 El me;or camino ara es ecificar un in ara una o eracinH es sim lemente usar sus nom$res PORT % un nJmero de $itU PORTB+4; U Colocar PORTB, bit 4 a 4 Para recordar f<cilmente ara &uP uede ser usado un inH de$e asi!narse un nom$re usando el comando :"R7 De esta maneraH el nom$re uede ser utili5ado lue!o en cual&uier o eracinU

$ed <ar PORT"+O U Renombra PORT"+O como led ?ig! led U Coloca led BPORT")OD en <alor alto Para com ati$ilidad con el B'SIC Stam H los ins usados en los comandos del PBP uedenH adem<sH ser referidos or un nJmeroH D(@G7 Estos ins estan f?sicamente distri$uidos so$re diferentes uertos del 6ardNare del micro PICH de endiendo de cu<ntos ins tiene el microcontroladores

NV+ Pins del micro PIC B( in @B( in .B( in 9e+ce to @CCDDD: .B( in 9@CCDDD: CD( in M,PIO % PORT' no tienen B IEO ins7

.89 ,PIOM PORTB PORTB PORTC PORTB

684/ ,PIOM PORT'M PORTC PORTD PORTC

Si un conector no tiene oc6o insH como el PORT'H slo los nJmeros de in &ue e+isten ueden ser utili5adosH or e;em lo B(@.7 Usar los nJmeros de in @-(@G no tendr< un efecto erce ti$le7 Este nJmero de inH D(@GH no tiene relacin con el nJmero f?sico del in de un micro PIC7 De endiendo de cada micro PICH el in nJmero D odr?a ser el in f?sico AH.@ o --H ero en cada caso esto a unta a PORTB7D 9o ,PIO7D ara dis ositi"os B( inH o PORTC7D ara un PIC@CCDDD:7 Los ins ueden ser referenciados or un nJmero 9D(@G:H un nom$re 9E;U PinDH si uno de los arc6i"os $sdefs7$as son inclu?dos o si usted los tiene definidos:H o un nom$re com leto de $it 9E;U PORT'7@:7 ' cual&uier in o $it del microcontrolador se uede acceder usando el mPtodo anterior7

Los nom$res de los in 9E;U PinD: no son autom<ticamente inclu?dos en su ro!rama7 En la ma%or?a de los casosH usted define los nom$res de los ins como deseeH usando el comando *'RU

$ed <ar PORTB+K

Sin em$ar!oH dos arc6i"os de definicines 6an sido ro"istos ara me;orar la com ati$ilidad del B'SIC Stam 7 Los arc6i"os =$s@defs7$as> o =$s.defs7$as> ueden ser incluidos en el ro!rama PBP ara ro"eer nom$res de in % $itH com ati$les con los nom$res del B'SIC Stam 7

Include =$s@defs7$as> O Include =$s.defs7$as> BS@DE0S7B'S define Pins H BD ( B@- H 2D ( 2A % muc6os otros nom$res de in % "aria$les de BS@7 BS.DE0S7B'S define Ins H Outs H BD ( B.G H 2D ( 2@. % muc6os otros nom$res de in % "aria$les de BS@7 Cuando arranca un microPIC H todos los ins son colocados en entrada 7Para usar un in como salida H el in o ort de$e ser colocado como salida o se de$e usar un comando &ue automaticamente colo&ue al in como salida7

Para colocar un in o ort como salida 9 entrada: de$e dar "alores al re!istro TRI# 7 Colocando el $it de TRI# como . H 6ace su in una salida H % colocandolo en 4 lo 6ace una entrada 7Por e;em lo U TRI#" ; S........ N O TRI#" ; . Coloca todos los ins PORT' como salidas7 TRI#B ; S 44444444 N O TRI#B ; 4 Coloca todos los ins PORTB como entradas7 TRI#C ; S 4.4.4.4. Coloca todos los ins ares como salidas % los im ares como entradas7

Cada $it indi"idual uede ser mane;ado de la misma manera TRI#"+. ; . Coloca el PORT' H in D como salida7 Todos los dem<s in ermanecen sin cam$io7 Los nom$res de "aria$les de B'SIC Stam DirsH Dir6H Dirl % Dir D ( Dir @G no est<n definidos % no de$en ser usados con el PBPH en su lu!ar de$e ser usado TRISH ero tiene el estado o uesto de Dirs7 Esto no tra$a;ar< en PBP DirD ` @ X coloca el in PORTB7D como salida7 En su lu!ar TRISB7D ` D X coloca el in PORTB7D como salida7 O sim lemente use un comando &ue autom<ticamente colo&ue la direccin del in7

CO ENT"RIO# INDICE
Un comentario de PBP comien5a con la ala$ra cla"e REM o el a strofe 9X:7 Todos los dem<s caracteres de esa l?nea se i!noran7 REM es una Jnica ala$ra cla"e % no es una a$re"iacin de REMarKH or lo tantoH los nom$res de "aria$les ueden comen5ar con REM 9aun&ue REM or s? mismo no es "<lido:7

DEC$"R"CIONE#

W$TIP$E# INDICE

Para ermitir ro!ramas mas com actos % a!ru amientos l!icos de comandos relacionadosH PBP so orta el uso de 9U: ara se arar comandos u$icados en la misma l?nea7 Los si!uientes dos e;em los son e&ui"alentes7 'F ; '. '. ; '4 '4 ; 'F Es lo mismo &ueU 'F ; 0. ) '. ; '4 ) '4 ; 'F En los dos casosH el tamaRo del cdi!o !enerado es el mismo7

C"RXCTER DE EYTEN#I%N DE $ANE" INDICE


El nJmero m<+imo de caracteres &ue uede a arecer en una l?nea PBP es .GA7 Declaraciones mu% lar!as ueden ser e+tendidas a la l?nea si!uiente usando el car<cter 9 [ : al final de cada l?nea a ser continuada7 Branc! B. , Glabel., label4, labelF, Z $abelK, label7L

INC$UDE INDICE
Se uede a!re!ar arc6i"os fuente B'SIC a un ro!rama PBP usando INC$UDE7 Usted uede tener su rutina standardH definiciones u otros arc6i"os &ue desee !uardar en forma se arada7 Los arc6i"os de definicin de modo serial % de stam son e;em lo de esta7 Estos arc6i"os ueden ser incluidos en ro!ramas donde ser necesarioH ero no en ro!ramas donde no se los necesita7 Las l?neas de cdi!o fuente del arc6i"o incluido son insertadas dentro del ro!rama e+actamente donde se coloca el INCLUDE7 INC$UDE Hmodede=s+basJ

DE&INE INDICE
'l!unos elementosH como el oscilador % las u$icaciones de los in LCDH est<n redefinidas en PBP7 DE0INE le ermite a un ro!rama PBP cam$iar estas definiciones si as? lo desea7 Define uede ser usado ara cam$iar el "alor redefinido del osciladorH los ins de DEBU, % el $aud rate % las u$icaciones de los in LCD adem<s de otras cosas7 Estas definiciones de$en estar en ma%Jsculas

DE0INE BUTTON[P'USE GD DE0INE C)'R[P'CIN, @DDD DE0INE DEBU,[RE, [PORTL DE0INE DEBU,[BIT D

demora en el anti(re$ote del $otn en ms aso de la salida serial en us de uracion del in ort de uracion del in $it

DE0INE DEBU,[B'UD .CDD DE0INE DEBU,[MODE @ DE0INE DEBU,[P'CIN, @DDD DE0INE )SER[RCST' LD 6 DE0INE )SER[T/ST' .D 6 DE0INE )SER[B'UD .CDD DE0INE )SER[E*EN @ DE0INE )SER[ODD @ DE0INE I.C[INTERN'L @ DE0INE I.C[SLO2 @ DE0INE LCD[DRE, PORTB DE0INE LCD[DBIT D DE0INE LCD[RSRE, PORTB DE0INE LCD[RSBIT C DE0INE LCD[ERE, PORTB DE0INE LCD[EBIT G DE0INE LCD[BITS C DE0INE LCD[LINES .

de uracion del $aud rate modo de uracionU D`CIERTOH@`IN*ERTIDO aso de de uracion en us setear re!istro recei"e setear re!istro transmit setear $aud rate usar solo si se desea aridad ar usar solo si se desea aridad im ar usar ara EEPROM interno en @ACE// % @.CE// usar ara OSC a B M65 con dis ositi"os de "elocidad standard ort de data LCD datos LCD comen5ando en $it D o C ort de seleccin de re!istro LCD $it de seleccin de re!istro LCD ort de 6a$ilitacion LCD $it de 6a$ilitacion LCD $us del LCD de C u B $its numero de lineas en LCD

DE0INE OSC C DE0INE OSCC'L[@4 @ DE0INE OSCC'L[.4 @

- 9-7GB: C B @D @. @A .D

Mhz.

setea OSCC'L ara PIC@.CAF@ setea OSCC'L ara PIC@.CAF.

OPER"DORE#

"TE XTICO# INDICE

PBP efectua todas las o eraciones matem<ticas en urden ;er<r&uico 7Esto si!nifica &ue e+iste recedencia ara los o eradores 7Multi licacin % di"isin son efectuados antes &ue suma % resta H or e;em lo77Para ase!urarse &ue las o eraciones son efectuadas en el orden &ue se desea H use arPntesis ara a!ru ar las o eraciones7 " ; B B [ C D * B D 8 E D Todas las o eraciones matem<ticas se reali5an sin si!no % con una recisin de @A $it7 Los o eradores so ortados son U

Operador matemQtico [ 8 * ** *, , ,, >> #uma Resta ultiplicacion

Descripci3n

45 bits superiores de la multiplicacion 45 nits medios de la multiplicacion Di<ision Resto Bm3duloD Desplazamiento izEuierdo

\\ "B# CO# DCD DI"Y IN NCD RE: #IN #@R ] ^ _ ` ] , ^ , _ ,

Desplazamiento derec!o :alor absoluto Coseno Fm decodi=icador Digito a(imo * inimo * Codi=icar In<ertir bits #eno Raiz cuadrada Bit inteligente "ND Bit inteligente OR Bit inteligente EYC$U#I:E OR Bit inteligente NOT Bit inteligente NOT "ND Bit inteligente NOT OR Bit inteligente NOT EYC$U#I:E OR

La im lementacion difiere del B'SIC Stam

U$TIP$IC"CI%N INDICE
PBP efectua multi licaciones @A + @A $its 7El o erador XM X de"uel"e los @A $it inferiores del resultado de -. $it7 Esta es la multi licacin t? ica encontrada en los len!ua;es de ro!ramacin7 El o erador XMM Xde"uel"e los @A $it su eriores del resultado de -. $it7 Estos dos o eradores ueden ser utili5ados en con;unto ara reali5ar multi li+a+iones de @A + @A $it &ue rodu5can resultados de -. $it 7 '4 ; '. * 4... N multiplica el <alor de '. por 4... y coloca el resultado en '4 'F ; '. ** 4... N '. por 4... y coloca los 45 bit superiores BEue Deben ser . D en 'F El operador N*, Nlos 45 bit medios del resultado de KF bit+ 'K ; '4 *, '. N multiplica '4 por '. y coloca los 45 bit medios en 'K

DI:I#I%N INDICE
PBP efectua di"isiones de @A + @A $it 7 El o erador XE Xde"uel"e el resultado de @A $it 7 El o erador XEE X de"uel"e el resto 9mdulo del nJmero:7 '4 ; '. , 4... X Di"ide el "alor de 2D or @DDD % coloca el resultado en N@ 'F ; '. ,, 4... X Di"ide el "alor de 2D or @DDD % coloca el resto en 2.

DE#P$"a" IENTO INDICE


Los o eradores XbbX % Xaa X des la5an un "alor 6acia la i5&uierda derec6a res ecti"amente H @ a @G "eces 7Los $its des la5ados se colocan en D 7 B. ; B. >> K X Des la5a BD tres lu!ares a la i5&uierda 9 i!ual a multi licar or B: '4 ; '. aa @ X Des la5a 2D una osicin a la derec6a % coloca el resultado en 2@ 9i!ual a di"idir or . :

"B# INDICE

'BS de"uel"e el "alor a$soluto de un nJmero 7 Si un $%te es ma%or de @.F 9$its altos: 'BS de"uel"e un "alor .GA ( 7 Si un Nord es ma%or de -.FAF 9$its altos: H de"uel"e un "alor AGG-A ( 7 B4 ; "B# B.

CO# INDICE
COS es coseno en B $it de un "alor dado7 El resultado est< dado en forma de dos com lementos 7 9 7e;7 ( @.F a @.F : 7Usa una ta$la de cuarto de onda ara encontrar el resultado 7 El coseno comien5a con un "alor en radianes $inarios H D a .GG H en lu!ar de los comunes D a -GB !rados7 B4 ; CO# B.

DCD INDICE
DCD de"uel"e el "alor decodificado de un nJmero de $it 7 Cam$ia un nJmero de $it 9 D a @G: or un nJmero $inario con ese $it seteado en @7 Todos los dem<s $its son D 7 B. ; DCD F X setea BD como ] DDDDD@DD

DI- INDICE
DI, de"uel"e el "alor de un d?!ito decimal 7 Sim lemente se le indica el nJmero de d?!ito a conocer 9 D ( C H siendo D el rimero de la derec6a: % %a est<7 B. ; 4FK X setea BD en @.B4 ; B. DI- 4 X setea B@ en . 9d?!ito @ de @.-:

DI*-. INDICE
DI*-. PBPs multi lican 9M: la funcin @A($it + @A($it o$tienen un resultado -.($it7 Sin em$ar!oH uesto &ue el com ilador utili5a solamente una talla "aria$le m<+ima de @A d?!itos $inariosH el acceso al resultado tu"o &ue suceder en . asos de ro!resinU c ` $ M retorna los @A d?!itos $inarios m<s $a;os del multi licar mientras &ue d ` MM de $ retorna los @A d?!itos $inarios su eriores7 No 6a$?a manera de tener acceso al resultado -.($it como unidad7

En muc6os casos es desea$le oder di"idir el resultado -.($it entero de multi licar or un nJmero @A($it ara 6acer un romedio o escalar7 Una nue"a funcin se 6a a!re!ado ara este ro sitoU DI*-.7 DI*-. es limitado realmente a di"idir un entero sin si!no -@($it 9m<+imo .@CFCB-ACF: or un entero sin si!no @G($it 9m<+imo -.FAF:7 Esto de$e ser suficiente en la ma%or?a de las circunstancias7 Pues el com ilador ermite solamente una talla "aria$le m<+ima de @A d?!itos $inariosH DI*-. conf?a &ue una multi licacin aca$a de ser reali5ado % &ue las "aria$les internas del com ilador toda"?a contienen el resultado -.($it de la multi licacin 7 Nin!una otra o eracin uede ocurrir entre la multi licacin % el DI*-. o las "aria$les internas uede ser alteradoH destru%endo el resultado de -.($it de la multi licacin7 Este medioH entre otras cosasH de los cuales ON INTERRUPT de$e estar DIS'BLEd antes de &ue el multi licar 6asta des uPs del DI*-.7 Si ON INTERRUPT no se utili5aH all? no es nin!una necesidad de a!re!ar DIS'BLE al ro!rama7 Las interru ciones en ensam$lador no de$en tener nin!Jn efecto en las "aria$les internas as? &ue ueden ser utili5adas sin consideracin al!una 6acia DI*-.7 El fra!mento si!uiente del cdi!o muestra la o eracin de DI*-.U a *ar 2ord $ *ar 2ord c *ar 2ord dumm% "ar 2ord $ ` GDD c ` @DDD

DIS'BLED _ necesario si ON INTERRUPT es utili5ado

dumm% ` $ M c _ odr?a tam$iPn utili5ar el MM o M E a ` DI*-. @DD

EN'BLED _ necesario si se utili5 ON INTERRUPT este ro!rama asi!na a $ el "alor GDD % c el "alor @DDD7 Cuando esta$a multi licado ;untoH el resultado ser?a GDDDDD7 Este nJmero e+cede la talla @A($it de la ala$ra de una "aria$le 9AGG-G:7 La "aria$le simulada contiene tan solamente los @A d?!itos $inarios m<s $a;os del resultado7 En nin!Jn casoH no es utili5ada or la funcin DI*-.7 DI*-. utili5a las "aria$les internas al com ilador como los o erandos7 En este e;em loH DI*-. di"ide el resultado -.($it de la multi licacin $ M c or @DD % sal"a el resultado de esta di"isinH GDDDH en la "aria$le '7

"Y y

IN INDICE

M'/ % MIN de"uel"en el m<+imo % m?nimo Hres ecti"amente H de dos nJmeros 7 Se usan normalmente ara limitar nJmeros a un "alor7 B4 ; B. B4 ; B. "Y 4.. X setea B@ al ma%or de BD % @DD 9BD de$e estar entre @DD % .GG IN 4.. X setea B@ al menor de BD % @DD9B@no uede ser ma%or de @DD

NCD INDICE
NCD de"uel"e el nJmero de rioridad de $it codificado 9@(@A: de un "alor 7 Se usa ara encontrar el $it codificado con @ de un "alor dado 7 De"uel"e D si no e+isten $its con "alor @ 7 B. ; NCD S.4..4... X setea BD en F

RE: INDICE
RE* in"ierte el orden de los $its inferiores de un "alor 7El nJmero de $its a ser in"ertidos es de @ a @A 7 B. ; S4.4.44.. RE: 7 N setea B. a S4.4...44

#IN INDICE
SIN es seno en B $its de un "alor 7 El est< dado en dos com lementos 9 7e;7 (@.F a @.F : 7Usa una ta$la de cuarto de onda ara encontrar el resultado 7 Comien5a con un "alor en radianes $inarios H D a .GG H en lu!ar de los usuales D a -GL !rados7 B4 ; #IN B.

#@R INDICE
S3R de"uel"e la ra?5 cuadrada de un "alor 7 Como PBP dolo tra$a;a con enteros H el resultado ser< siem re un entero en B $its no ma%or &ue el resultado actual 7 B. ; #@R '4 X setea BD con la ra?5 cuadrada de 2@

OPER"DORE# DE BIT# INTE$I-ENTE# 9BIT2ISE: INDICE


Estos o eradores actuan so$re cada $it de un "alor en forma $ooleana 7Pueden ser usados ara aislar $its o ara a!re!ar $its dentro de un "alor 7

B. ; B. ] S.......4 X aisla el $it D de BD B. ; B. ^ S.......4 X setea el $it D de BD B. ; B. _ S.......4 X in"ierte el estado del $it D de BD

OPER"DORE# DE CO P"R"CI%N INDICE


Se usan en declaraciones I& +++ T?EN ara com arar una e+ resin con otra 7Los o eradores so ortados son U

Operador ; o ;; >\ o I; > \ >; \; I= i \ 4. t!en loop Igual No igual enor ayor

Descripci3n

enor o igual ayor o igual

OPER"DORE# $%-ICO#

INDICE

Los o eradores l!icos difieren de las o eraciones de $it inteli!ente 7 Entre!an un resultado CIERTO E 0'LSO de su o eracin 7*alores D son tratados como falso 7 Cual&uier otro "alor es cierto 7 Se usan ;unto a o eradores de com aracin en una declaracin I0 77 T)EN 7Los o eradores so ortados son U

Operador "ND o ]] OR o I I YOR o _ _ NOT "ND NOT OR NOT YOR

Descripci3n " D logico OR logico OR e(clusi<o logico N"ND logico NOR logico NYOR logico

I= B" ;; bigD "ND B B \ meanD t!en run 'se!urese de usar arentesis ara indicarle a PBP el orden en &ue &uiere &ue se realicen las o eraciones7

RE&ERENCI" DE DEC$"R"CIONE# PBP INDICE

b "# +++END"# BR"NC? BR"NC?$

Inserta una linea de codigo ensamblador Inserta una seccion de codigo ensamblador -OTO computadoBeEui<+ a ON++-OTOD BR"NC? =uera de paginaBBR"NC? largoD "nti8rebote y auto8repeticion de entrada en el pin especi=icado $lamada a subrutina de ensamblador

BUTTON

C"$$

C$E"R COUNT D"T" DEBUDI#"B$E DT &OUT EEPRO EN"B$E END &OR+++NEYT &RE@OUT -O#UB -OTO ?I-? ?#ERIN ?#EROUT IFCRE"D IFC'RITE

?ace cero todas las <ariables Cuenta el numero de pulsos en un pin De=ine el contenido inicial en un c!ip EEPRO #eMal asincronica de salida en un pin =ico y baud Des!abilita el procesamiento de ON INTERRUPT Produce tonos en un pin De=ine el contenido inicial en un c!ip EEPRO ?abilita el procesamiento de ON INTERRUPT Detiene la ececucion e ingresa en modo de baca potencia Ececuta declaraciones en =orma repetiti<a Produce !asta F =reuencias en un pin $lama a una subrutina B"#IC en la etiEueta especi=icada Continua la ececucion en la etiEueta especi=icada ?ace alto la salida del pin Entrada serial asincronicaB!ard0areD #alida serial asincronicaB!ard0areD $ee bytes de dispositi<o IFC -raba bytes en dispositi<o IFC

I&++T?EN++E$#E++ENDI& INPUT B$ETD $CDOUT $OO1DO'N $OO1DO'NF $OO1UP $OO1UPF $O' N"P ON INTERRUPT OUTPUT P"U#E P"U#EU# PEE1 PO1E POT PU$#IN

Ececuta declaraciones en =orma condicional Con<ierte un pin en entrada "signa el resultado de una e(presion a una <ariable uestra caracteres en $CD Busca un <alor en una tabla de constantes Busca un <alor en una tabla de constantes o <ariables Obtiene un <alor constante de una tabla Obtiene un <alor constante o <ariable de una tabla ?ace baco la salida de un pin "paga el procesador por un corto periodo de tiempo Ececuta una subrutina B"#IC en un interrupt Con<ierte un pin en salida Demora Bresolucion 4mseg+D Demora Bresolucion 4 useg+D $ee un byte del registro -raba un byte en el registro $ee el potenciometro en el pin especi=icado ide el anc!o de pulso en un pin

PU$#OUT P' R"NDO RCTI E RE"D RE#U E RETURN

-enera pulso !acia un pin #alida modulada en anc!o de pulso a un pin -enera numero pseudo8aleatorio ide el anc!o de pulso en un pin $ee byte de un c!ip EEPRO Continua la ececucion despues de una interrupcion Continua en la declaracion Eue sigue al ultimo -O#UB Con<ierte un pin de salida en entrada o uno de entrada en salida Entrada serial asincronica Btipo B#ID Entrada serial asincronica Btipo B#FD #alida serial asincronica Btipo B#4D #alida serial asincronica Btipo B#FD Entrada serial sincronica #alida serial sincronica "paga el procesador por un periodo de tiempo -enera un tono o ruido blanco en un pin Detiene la ececucion del programa Intercambia los <alores de dos <ariables

RE:ER#E

#ERIN #ERINF #EROUT #EROUTF #?I&TIN #?I&TOUT #$EEP #OUND #TOP #'"P

TO--$E '?I$E++'END 'RITE YIN YOUT

?ace salida a un pin y cambia su estado Ececuta declaraciones mientras la condicion sea cierta -raba bytes a un c!ip EEPRO Entrada Y 8 4. #alida Y 8 4.

b
1 declaracion

INDICE

Cuando se usa al comien5o de una l?nea H ro"ee un ata;o ara insertar una declaracion en len!ua;e ensam$lador en un ro!rama PBP7 Este ata;o se uede usar li$remente ara unir codi!o ensam$lador con declaraciones PBP 7 I <ar byte Rollme <ar byte &or i ; 4 to 7 b rl= Zrollme, & U rotar $%te a la i5&uierda una "e5 ne(t i El ata;o 1 tam$ien se uede usar ara incluir rutinas en len!ua;e ensam$lador en otro arc6i"o 7Por e;em lo U b Include H =p+asm H 1 resetea a D la <!ina del re!istro antes de e;ecutar la instruccin en len!ua;e ensam$lador 7La <!ina del re!istro no de$e ser alterada usando 1 *ea la seccion de ro!ramacion del ensam$lador ara ma%or informacion7

"DCIN INDICE
"DCIN C6annel H *ar

LPe el con"ersor analo!ico del micro % !uarda el resultado en el *ar7 Mientras &ue los re!istros del 'DC se ueden alcan5ar directamenteH 'DCIN 6ace el roceso un oco m<s f<cil7

'ntes de &ue 'DCIN ueda ser utili5adoHel re!istro de TRIS se de$e fi;ar como entradas 7 'DCON@ tam$iPn necesita ser asi!nado como entradas de informacin analo!icas % en al!unos casos ara fi;ar el formato del resultado % la fuente del relo;7 *ea las 6o;as de datos del microc6i ara m<s informacin so$re estos re!istros % cmo fi;arlos ara el dis ositi"o es ec?fico7 De endiendo del dis ositi"oH uede tener B (H @D o @.($it 'DC7 El $it alto de 'DCON@ controla si el resultado est< a la i5&uierda o a la derec6a7 En la ma%or?a de los casosH los resultados B($it se de$en de;ar alineados 9'DCON@7F ` D: % @D % los resultados @.($it ;ustificados a la derec6a 9'DCON@7F ` @:7 *arios DE0INEs ueden tam$iPn ser utili5ados7 Los "alores or defecto se muestran a$a;oU

DE0INE 'DC[BITS B _ 0i;e el nJmero de BITS en el resultado 9BH @D o @.: DE0INE 'DC[CLOC4 - _0i;e EL CLOC4 9rc ` -: DE0INE 'DC[S'MPLEUS GD _ 0i;e el tiem o de muestreo en microse!undos 'DC[S'MPLEUS es el nJmero demicrose!undos &ue el ro!rama es era entre fi;ar el canal % comen5ar la con"ersin analo!icaEdi!ital7

TRIS' ` .GG _ 0i;e PORT' todas entradas 'DCON@ ` D _ PORT' es analo!ico

'DCIN DH BD _ Lea el canal D a BD

"#

END"#

INDICE

"# END"#

Estas instrucciones le dicen a PBP &ue el codi!o entre estas dos l?neas esta en len!ua;e ensam$lador % no de$e ser inter retado como declaraciones PBP 7Se uede usar estas dos instrucciones li$remente ara me5clar cdi!o ensam$lador con declaraciones PBP 7 El tamaRo m<+imo ara una seccin de te+to ensam$lador es B 4 7 Este es el tamaRo m<+imo ara el fuente actual H inclu%endo comentarios H no el cdi!o !enerado 7Si el $lo&ue de te+to es ma%or H di"?dalo en mJlti les secciones 'SM 77END'SM o inclu%alo en un arc6i"o se arado 7 'SM resetea a D el re!istro de <!ina 7De$e ase!urarse &ue el re!istro de <!ina sea D antes de END'SM si el cdi!o de ensam$lador lo 6a alterado 7 *ea la seccin de ro!ramacin de ensam$lador ara mas informacin 7

"# Bs= PORT",. \setea $it D en PORT' Bc= PORTB+. \setea $it D en PORTB END"#

BR"NC?
BR"NC? inde+ H c eti&ueta S Heti&ueta 77777T d

INDICE

Causa &ue el ro!rama salte a una osicin diferente H $asada en una "aria$le inde+ada7 Es similar al ON777,OTO de otros B'SIC7 Inde+ selecciona una eti&ueta de una lista 7La e;ecucion comien5a en la eti&ueta es ecificada 7Por e;em lo H si Inde+ es D H el ro!rama salta a la rimer eti&ueta es ecificada en la lista Hsi Inde+ es @ H salta a la se!unda % as? sucesi"amente 77Si Inde+ es ma%or i!ual al nJmero de eti&uetas Hno se toma nin!una accin % la e;ecucin continJa con la declaracin si!uiente al BR'NC) 7Se ueden usar 6asta .GA eti&uetas en un BR'NC) 7

Eti&ueta de$e estar en la misma <!ina de cdi!o &ue la instruccin BR'NC) 7 Si no est< se!uro de esto H use BR'NC)L 7

BR"NC? B7 , G dog,cat,=is! L X i!ual &ue U X if BC`D t6en do! 9!oto do!: X if BC`@ t6en cat9!oto cat: X if BC`. t6en fis6 9!oto fis6:

BR"NC?$ INDICE

BR"NC?$ Inde+ H c eti&ueta SH eti&ueta 7777T d

BR"NC?$ tra$a;a en forma similar a BR"NC? H6aciendo &ue el ro!rama salte a una locali5acin determinada H $as<ndose en una "aria$le inde+ada 7Las rinci ales diferencias son &ue uede saltar a una eti&ueta u$icada en otra <!ina de cdi!o % &ue !enera un cdi!o dos "eces ma%or en tamaRo al de BR'NC) 77Si est< se!uro &ue las eti&uetas est<n en la misma <!ina &ue el BR'NC) si el microcontrolador no tiene m<s &ue una <!ina de cdi!o 9.4 menos de ROM: H use BR'NC) ara minimi5ar el uso de memoria 7 Inde+ selecciona una eti&ueta de una lista 7La e;ecucion comien5a en la eti&ueta es ecificada 7Por e;em lo H si Inde+ es D H el ro!rama salta a la rimer eti&ueta es ecificada en la lista Hsi Inde+ es @ H salta a la se!unda % as? sucesi"amente 77Si Inde+ es ma%or i!ual al nJmero de eti&uetas Hno se toma nin!una accin % la e;ecucin continJa con la declaracin si!uiente al BR'NC)L 7Se ueden usar 6asta @.B eti&uetas en un BR'NC)L 7

BR"NC?$ B7 , G dog,cat,=is! L X i!ual &ue U X if BC`D t6en do! 9!oto do!: X if BC`@ t6en cat9!oto cat:

X if BC`. t6en fis6 9!oto fis6:

BUTTON INDICE

BUTTON H Pin H DoNn H Dela% H Rate H B"ar H 'ction H Eti&ueta

Lee Pin % o cionalmente e;ecuta anti(re$ote % auto(re eticin 7 Pin autom<ticamente se toma como entrada 7Pin de$e ser una constante H D ( @G H o una "aria$le &ue conten!a un nJmero D ( @G 9 7e;7 BD: un nJmero de in 9 7e;7 PORT' HD:

Do0n

Estado del pin cuando se oprime el pulsador B . ++4D Contador de ciclos antes de Eue comience la auto8repetici3nB.++F//D+ #i es . ,no se e=ectua anti8rebote ni auto+repetici3n +#i es F// se eliminan rebotes , pero no auto8repetici3n+ :alor de auto8repetici3n B.++F//D :ariable con tamaMo de byte usada internamente para conteo de demoras y repeticiones,Dene ser inicializada a . antes de ser usada y no ser usada en cualEuier lugar del programa+ Estado del pulsador a ser actuado+ $a ececuci3n comienza en esta etiEueta si es cierto "ction+

Delay

Rate

B<ar

"ction EtiEueta

X !oto not ressed if $utton not ressed on Pin. BUTTON PORTB ,F,.,4..,4.,bF,.,notpressed BUTTON necesita ser usado dentro de un loo adecuadamente7 ara auto(re eticin ara funcionar

BUTTON ermite eliminar re$otes H demorando la e;ecucin de un ro!rama or un er?odo de milise!undos ara ermitir &ue los contactos se asienten 7La demora or defecto es @D ms7 7Para cam$iarlo a otro "alor use DE0INE 7 X setea la demora de anti(re$ote a GD ms DE&INE BUTTONZP"U#E /. BUTTONZP"U#E debe estar en mayPsculas+ En !eneral H es m<s f<cil leer el estado del in con un I077T)EN &ue usar el comando BUTTON 7 I& PORTB,F ; 4 T?EN notpressed

C"$$ INDICE
C"$$ etiEueta E;ecuta la su$rutina ensam$lador llamada eti&ueta7 Normalmente se usa ,OSUB ara e;ecutar una su$rutina PBP 7La rinci al diferencia entre ,OSUB % C'LL H es &ue con Psta Jltima no se c6e&uea la e+istencia de eti&uetas 6asta el momento de ensam$lar 7Usando C'LL se uede acceder a una eti&ueta en una seccin de len!ua;e ensam$lador H lo &ue es inaccesi$le mediante PBP 7 C'LL ass X e;ecuta la su$rutina ensam$lada Hdenominada [ ass

C$E"R INDICE
C$E"R Coloca en cero todos los re!istros en cada $anco 7 Coloca en cero todas las "aria$les Hinclu%endo las del sistema 7Esto no se 6ace autom<ticamente al comen5ar un ro!rama en

PBP H como sucede en B'SIC Stam s 7Por lo !eneral Hlas "aria$les de$en ser colocadas en un estado inicial a ro iado or el ro!rama H % no usando CLE'R 7 CLE'R X Coloca todas las "aria$les en cero

C$E"R'DT INDICE
C$E"R'DT CLE'R2DT $orra el tem ori5ador 2'TC)DO, 9 erro !uardi<n :7 El tem ori5ador del 2'TC)DO, se utili5a con;untamente con las instrucciones de SLEEP 9dormir: % de N'P 9siesta: ara des ertar el PICmicro MCU des uPs de cierto er?odo de tiem o7 Las instrucciones de ensam$lador 9clrNdt: $a;o circunstancias normales se insertan autom<ticamente en los lu!ares a ro iados a tra"Ps del ro!rama7 CLE'R2DT ermite la colocacin de las instrucciones adicionales del clrNdt en el ro!rama7 C$E"R'DT7 _$orra el tem ori5ador del Natc6do! DE0INE uede ser utili5ado ara &uitar todas las instrucciones del clrNdt &ue el com ilador a!re!a autom<ticamenteU DE0INE NO[CLR2DT @ _ no insertar CLR2DTs

COUNT INDICE
COUNT Pin,Period,:ar Cuenta el numero de ulsos en un Pin H durante un er?odo eriodoH% !uarda el resultado en *ar 7Pin es autom<ticamente colocado como entrada 7Pin de$e ser una constante H D(@G H una "aria$le &ue conten!a un nJmero de D a @G 9 7e;7 BD: 7 un numero de in 7 La resolucin de eriodoest< dada en milise!undos 7Si!ue la frecuencia del oscilador $asado en DE0INE OSC 7 *COUNT c6e&uea el estado de Pin mediante un loo % cuenta las transiciones de $a;o a alto 7Con un oscilador de C M65 c6e&uea el estado del in cada .D us 7Con un oscilador de .D M65 c6e&uea el estado cada C us 7De esto Hse infiere &ue la ma%or frecuencia de ulsos &ue uede ser contada Hes de .G 465 con un oscilador de C M65 % de @.G 465 con un oscilador de .D M65 si la frecuencia tiene un ciclo Jtil del GD ] 9 los tiem os altos son i!uales a los $a;os:7 X cuenta el nJmero de ulsos en Pin@ en @DD ms

COUNT PORTB+4,4..,'4 X determinar la frecuencia en un Pin COUNT PORT"+F,4...,'4 contar or @ se!undo #erout PORTB+.,NF7.., G '4 L

D"T" INDICE
D"T" S 1 location H T constante S Hconstante T ,uarda constantes en un c6i EEPROM cuando este dis ositi"o se ro!rama or rimera "e5 7Si se omite el "alor o cional location H la rimer declaracin de D'T' comien5a a almacenarse en la direccin D % las declaraciones si!uientes H en las direcciones si!uientes 7Si e+iste un "alor location este indica la direccin de comien5o donde se almacenar< la informacin 7Una eti&ueta o cional se le uede asi!nar a la direccin de comien5o H ara futuras referencias del ro!rama H Constante uede ser una constante numPrica una cadena de constantes 7Solo se !uarda el $%te menos si!nificati"o del "alor numPrico H e+ce to &ue se use el modificador 2ORD 7 Las cadenas se !uardan como $%tes consecuti"os de "alores 'SCII 7No se a!re!an terminadores ni se com leta el lar!o H D'T' solo funciona con micro controladores con EEPROM incor orado como el PIC@A0BC % PIC@ACBC 7Dado &ue el EEPROM es una memoria no("olatil H los datos ermanecen intactos aJn cuando se &uite la ener!?a 7 Los datos se !uardan dentro del EEPROM una sola "e5 en el momento en &ue se ro!rama el micro controlador H no cada "e5 &ue se e;ecuta el ro!rama 7 2RITE se usa ara colocar los "alores en el EEPROM en el momento de e;ecucin 7 X !uardar @DH.D % -D comen5ando en la osicin G D"T" b/,4.,F.,K. X asi!nar una eti&ueta a un Nord en la r+ima u$icacin dlabel D"T" 0ord T4FK7 X !uarda ^-CH ^@. X saltear C osiciones % !uardar @D ceros D"T" B7D , . B4.D

DEBU- INDICE
DEBU- itemS Hitem 77T

En"ia uno m<s items a un in redefinido con un $aud rate redefinido en formato standard asincrnico H usando B $its de datos Hsin aridad % con @ $it de arada 9sto $it: 9BN@: 77El in Hautom<ticamente se con"ierte en salida 7 Si un si!no 9 e : recede a un item Hse en"?a serialmente la re resentacin 'SCII ara cada d?!ito 7DEBU, so orta los mismos modificadores de datos &ue SEROUT.7 DEBU, es una de "arias funciones seriales asincronicas re(construidas 7Es la m<s e&ueRa de las rutinas seriales !eneradas or softNare 7Puede ser usada ara en"iar informacin de de uracin 9"aria$les H osicin de marcadores H etc:7a un ro!rama terminal como )% erTerm 7Tam$iPn se uede usar cuando se desee salida serial so$re un in determinado % con un $aud rate determinado 7 Los in % $aud rate seriales son es ecificadas usando DE0INEsU Q Set De$u! in ort DE&INE DEBU-ZRE- PORTB Q Set De$u! in $it DE&INE DEBU-ZBIT . Q Set De$u! $aud rate DE&INE DEBU-ZB"UD F7.. Q Set De$u! modeU D` ciertoH @` in"ertido DE&INE DEBU-Z ODE 4 DEBU, asume un oscilador de C M65H cuando est< !enerando su tiem o de $it7 Para mantener el tiem o a ro iado del $aud rate con otros "alores de osciladoresH ase!urese de DE0INE el seteo de OSC al "alor de oscilador deseado7 En al!unos casosH la tasa de transmisin de las instrucciones de DEBU, odr?an resentar los caracteres demasiado r< idamente al dis ositi"o rece tor7 Un DE0INE a!re!a una demora de caracteres ara las transmisiones seriales de salida7 Esto ermite un tiem o adicional entre los caracteres a medida &ue son transmitidos7 La demora de caracter DE0INE ermite un atraso de @ a AGHG-G microse!undos 97DD@ a AG7G-G milise!undos: entre cada car<cter transmitido7 Por e;em loH ara ausar @ milise!undo entre la transmisin de cada caracterU DE&INE DEBU-ZP"CIN- 4... Si $ien los c6i s con"ertidores de ni"el RS(.-. son comunes % econmicosH !racias a la im lementacin de corriente RS(.-. % a las e+celentes es ecificaciones IEO del micro PIC \ la ma%or?a de las a licaciones no re&uieren con"ertidores de ni"el7 Se uede usar TTL in"ertido 9DEBU,[MODE `@: Se su!iere un resistor limitador de corriente 9se su one &ue RS(.-. es tolerante a los cortocircuitos:7

X En"iar el te+to =BD`> se!uido or el "alor decimal de BD % un a"ance de l?nea 9linefeed: serialmente a la salida DEBU- HB.;J ,dec B.,4.

DEBU-IN INDICE
Debugin d Timeout, etiEueta, eGItemd, Item+++ e L Reci$a unos o m<s items de un in redefinido en una "elocidad redefinida en formato as?ncrono est<ndar usando B $its de datosH nin!una aridad % @ $it de sto 9BN@:7 El in autom<ticamente se 6ace una entrada 7

Se ueden incluir un TIMEOUT % una eti&ueta o cional ara ermitir &ue el ro!rama continJe si un car<cter no se reci$e dentro de cierta cantidad de tiem o7 TIMEOUT se es ecifica en unidades de @ milise!undo7 Si el PIN serial de la entrada de informacin ermanece ocioso durante el tiem o del descansoH el ro!rama saldr< del comando de DEBU,IN % saltar< a la ETI3UET'7 DEBU,IN 9en todos los dis ositi"os e+ce to los de @.($it: utili5a los mismos modificadores &ue SERIN.7 O$ten!a mas informacin en la seccin SERIN. 7 modi=icadores BINd4++45 e DECd4++/ e ?EYd4++7 e #1IP n #TR "rray:argndgc e '"IT B D '"IT#TR "rray:ardgn e operaci3n recibir dfgito binario recibir dfgitodecimal recibir dfgito !e(adecimal saltar n caracteres a recibir recibir cadena de n caracteres opcionalmente terminar en caracter c espera para secuencia caracter espera para cadena de caracteres

DEBU,IN Es la m<s e&ueRa % m<s r< ida &ue de las rutinas seriales as?ncrono !eneradas or l!ica e softNare 7 Puede ser utili5ada ara reci$ir la informacin &ue one a unto un ro!rama terminal como )% erterminal7 Puede tam$iPn ser utili5ada la entrada de informacin serial en un PIN fi;o en una "elocidad fi;a7 Se es ecifican el PIN % la "elocidad seriales usando DE0INEsU

_ 0i;e el ort del PIN de De$u!in DE0INEN DEBU,IN[RE, PORTB Q Set De$u!in in $it DE0INE DEBU,IN[BIT D

Q Set De$u!in $aud rate 9same as De$u! $aud: DE0INE DEBU,[B'UD .CDD

Q Set De$u!in modeU D `"erdaderoH @ ` in"ertido DE0INE DEBU,IN[MODE @

Si cuales&uiera de estos DE0INEs no se inclu%en en un ro!ramaH el uertoH in o el modo de DEBU,IN se fi;a a los mismos "alores &ue est<n en DEBU,IN 9 oner a unto:7 La "elocidad de DEBU,IN essiem re i!ual &ue DEBU,7s7 No uede ser DE0INEd diferentemente7 DEBU,IN asume un oscilador CM)5 al !enerar su sincroni5acin de $it7 Para mantener la sincroni5acin a ro iada de la "elocidad con otros "alores del osciladorH DE0INIR el OSCIL'DOR 7 Mientras &ue los IC con"ertidores de ni"el RS(.-. 9ma+.-.:son comunes % $aratosH !racias a la actual RS(.-. % las es ecificaciones e+celentes de la entrada(salida del PICmicro MCUH la ma%or?a de las a licaciones ueden no re&uerir IC con"ertidores 7 Puede ser utili5ando lo!ica TTL in"ertida 9DEBU,IN[MODE @:7 Solo una resistencia limitadora de ..K7 es necesaria ara disi ar el "olta;e m<s alto % a "eces ne!ati"o de RS( .-.7

_ Es ere 6asta &ue el caracter ' es reci$ido en serie % el caracter si!uiente es uesto en BD DEBU-IN G '"ITB+"+D, b. L _ Salte . caracteres % !ra$ C d?!itos un nJmero decimal DEBU-IN G #"$TO F, dec7 B. L

DI#"B$E INDICE
DI#"B$E DIS'BLE interrum e el rocesamiento si!uiente a la instruccin7 Pueden ocurrir otras Interru cionesH ero el mani ulador de interru ciones del B'SIC en el PBPH no se e;ecutar< 6asta &ue se encuentre un EN'BLE 7 DIS'BLE % EN'BLE son seudo(o eraciones en el sentido &ue dan direcciones de com iladorH en lu!ar de roducir cdi!o7 *ea ON INTERRUPT ara m<s informacin7 DIS'BLE Q Des6a$lita interru ciones en el 6andler M%intU led ` @ Q enciende el LED cuando es interrum ido Resume Q *uel"e al ro!rama rinci al Ena$le Q EN'BLE interrum e des uPs del 6andler

DI#"B$E DEBU- INDICE


DI#"B$E DEBU- des6a$ilita el roceso de DEBU- des uPs de esta instruccin7 el monitoreo de DEBU, 9 oner a unto: no ser< llamado 6asta &ue un EN'BLE o EN'BLE DEBU, sea encontrado7 DIS'BLED DEBU, % EN'BLE DEBU, son m<s como seudo(o s &ue dan al com ilador directi"asH m<s &ue !enerar cdi!o7 *ea ON DEBU, ara m<s informacin7 DIS'BLE DEBU, _ In"alide el llamado de monitoreo de DEBU,

DI#"B$E INTERRUP INDICE


DI#"B$E INTERRUPT DIS'BLE INTERRUPT Se rocesa des uPs de esta instruccin7 Las interru ciones ueden ocurrir ero no se e;ecutar<n 6asta &ue un EN'BLE o EN'BLE INTERRUPT en el ro!rama de PicBasic se encuentra7 DIS'BLE INTERRUPT 9IN*'LIDE L' INTERRUPCIN: % EN'BLE INTERRUPT

9 PERMIT' L' INTERRUPCIN :son m<s como seudo(o s &ue dan al com ilador directi"asH m<s &ue !eneran cdi!o7 *ea ON INTERRUPT ara m<s informacin7 DI#"B$E INTERRUPT_ In"alide las interru ciones

m%intU led ` @ _encienda el LED con una interru cion

resume _ retorne al ro!rama rinci al

ena$led interru t _ Permita al ro!rama "erificar las interru ciones

DT &OUT INDICE
DT &OUT PinH S Onms HOffmsHT c Tone SHToneT d Produce una secuencia DTM0 Touc6 Tone en Pin HPin autom<ticamente se con"ierte en salida 7 Pin de$e ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D a @G 9 7e;7 BD: un nJmero de in 9 7e;7 BD: Onms es el nJmero de milise!undos &ue suena cada tono % Offms es el nJmero de milise!undos de ausa entre cada tono 7Si no est<n es ecificados H or defecto Onms es .DD ms % Offms es GD ms7 Tones tiene un "alor de D ( @G 7Los tonos de D ( L son los mismos &ue en un teclado telefnico 7Tone @D es la cla"e M H Tone @@ es la cla"e e H% los Tones @. ( @G corres onden a las teclas e+tendidas ' (D 7 DTM0OUT usa &RE@OUT ara !enerar los tonos duales 70RE3OUT !enera tonos usando una forma de modulacin de anc6o de ulso 7Los datos en $ruto &ue salen del in son $astante 6orri$les 7Usualmente se necesita al!Jn ti o de filtro ara sua"i5ar la seRal 6asta una forma de onda senoidal &uit<ndole al!unas armnicas !eneradasU DTM0OUT tra$a;a me;or con un oscilador de .D M65 7Tam$iPn uede tra$a;ar con uno de @D M65 % aJn con uno de C M65 H aun&ue ser< mu% dif?cil de filtrar % tendr< mu% $a;a am litud 7Cual&uier otra frecuencia causar< &ue DTM0OUT !enere una frecuencia ro orcional al oscilador com arado a .D M65 H lo &ue no ser< mu% Jtil ara en"iar touc6 tones 7 X en"iar DTM0 tones ara .@. en Pin@

DT &OUT PORTB+4 , G F,4,F L

EEPRO
EEPRO

INDICE

SLocation HT c constante SHconstante 777T d

,uarda constantes en un c6i EEPROM 7 Si se omite el "alor o cional Location Hla rimera declaracin se !uarda en la direccin D del EEPROM % las su$si!uientes en las si!uientes direcciones del mismo 7Si se indica un "alor Location H Pste indica la direccin de comien5o ara !uardar los datos 7 Constante uede ser una constante numPrica una cadena de constantes 7Solo se !uardan los $%tes menos si!nificati"os de los "alores numPricos 7 Las cadenas son !uardadas como $%tes consecuti"os d "alores 'SCII 7No se a!re!an autom<ticamente terminadores Hni se com leta el lar!o 7 EEPROM solo tra$a;a con micro controladores con EEPROM incor orado como el PIC@A0BC % PIC@ACBC 7 Dado &ue el EEPROM es una memoria no "ol<til H los datos ermanecer<n intactos aJn sin alimentacin 7 Los datos son !uardados en el EEPROM solo una "e5 H cuando el micro controlador es ro!ramado H no cada "e5 &ue se e;ecuta el ro!rama 7Se uede usar 'RITE ara colocar "alores en el EEPROM en el momento de la e;ecucin 7 X ,uardar @D H.D H -D comen5ando en la direccin G EEPRO /, G 4.,F.,K. L

EN"B$E INDICE
EN"B$E EN"B$E interrum e el rocesamiento &ue fue re"iamente des6a$ilitado con DIS'BLE Hsi!uiendo a esta instruccin7

DIS'BLE % EN'BLE son seudo(o eraciones en el sentido &ue dan direcciones de com iladorH en lu!ar de roducir cdi!o7 *ea ON INTERRUPT ara m<s informacin7 DIS'BLE Q Des6a$lita interru ciones en el 6andler M%intU led ` @ Q enciende el LED cuando es interrum ido Resume Q *uel"e al ro!rama rinci al Ena$le Q EN'BLE interrum e des uPs del 6andler

EN"B$E DEBU-INDICE
EN"B$E DEBU- roceso re"iamente DIS'BLEd des uPs de esta instruccin7 DIS'BLE DEBU, I EN'BLE DEBU, son seudo(o s &ue dan al com ilador directi"asH m<s &ue !eneran cdi!o7 *ea ON DEBU, ara m<s informacin7

EN"B$E DEBU- _6a$ilita las llamadas al monitor de DEBU,

EN"B$E INTERRUPT

INDICE

EN"B$E INTERRUPT EN'BLE INTERRUPT Permite el roceso de la INTERRUPCIN &ue era re"iamente DIS'BLEd des uPs de esta instruccin7 DIS'BLE INTERRUPT I EN'BLE INTERRUPT son seudo(o s &ue dan al com ilador directi"asH m<s &ue !eneran cdi!o7 *ea ON INTERRUPT ara m<s informacin7 DIS'BLE INTERRUPT _In"alide las interru ciones en )'NDLER m%intULED ` @ _ encienda el LED con interru cion resume _retorne al ro!raman rinci al EN'BLE INTERRUPT_ Permita al ro!rama iloto de las interru ciones

END
END

INDICE

Detiene la e;ecucin del roceso % entra en modo de $a;a otencia 7Todos los ins de IEO ermanecen en el estado en &ue se encuentran HEND tra$a;a e;ecutando una instruccin #$EEP continua dentro de un loo 7 Un END H STOP ,OTO de$en ser colocados al final de un ro!rama ara e"itar asar del l?mite de la misma u comience nue"amente 7END

&OR ++ NEYT INDICE


&OR Count ` Start TO End S#TEP S(T IncT SBod%T NEYT SCountT El loo 0OR 77 NE/T ermite a los ro!ramas e;ecutar un nJmero de declaraciones 9 Bod% : un numero de "eces H usando una "aria$le como contador 7 De$ido a su com le;idad % "ersatilidad H es me;or descri$irla aso a aso 7 El "alor de Start se asi!na a la "aria$le ?ndice HCount H &ue uede ser una "aria$le de cual&uier ti o 7 Se e;ecuta el Bod% 7 Bod% es o cional % uede ser omitido 9 &ui5<s or un loo de demora :7 El "alor de Inc es sumado a 9 restado si se es ecifica =(= : Counr 7Si no se define una cl<usula STEP H se incrementa Count en uno 7 Si Count no as End des$ord el ti o de "aria$le H la e;ecucin "uel"e al aso .: 7 Si el loo necesita contar m<s de .GG 9 Count a .GG : H se de$e usar una "aria$le de tamaRo Nord 7

&OR i;4 TO 4. X cuenta de @ a @D Serout DHN.CDDH c e iH> =d X en"?a cada nJmero al inD en forma serial

NEYT i X "uel"e % efectJa la r+ima cuenta Serout DHN.CDDH c @D d X en"?a un a"ance de l?nea &OR B.`.D TO @D #TEP (. X cuenta de .D a @D de a . Serout DHN.CDDH c e B. H = =d X en"?a cada nJmero al inD en forma serial

NEYT B. X "uel"e % efectJa la r+ima cuenta Serout DHN.GDDH H c @D d X en"?a un a"ance de l?nea

&RE@OUT INDICE
&RE@OUT PinHOnmsH0re&uenc%@SH0re&uenc%.T Produce la las frecuencias es ecificadas en el Pin H durante Onms milise!undos 7Pin se con"ierte autom<ticamene en salida 7Pin uede ser una constante H D(@G H una "aria$le &ue conten!a un nJmero D ( @G 79 7e;7 BD: un nJmero de in 9 7e;7 PORT'7D: 7 Puede roducir una dos frecuencias de D a -.FAF )5 al mismo tiem o 7 0RE3OUT !enera tonos usando una forma de modulacin de anc6o de ulso 7 Los datos en $ruto &ue salen del in son $astante 6orri$les 7Usualmente se necesita al!Jn ti o de filtro ara sua"i5ar la seRal 6asta una forma de onda senoidal &uit<ndole al!unas armnicas !eneradasU

0RE3OUT tra$a;a me;or con un oscilador de .D M65 7Tam$iPn uede tra$a;ar con uno de @D M65 % aJn con uno de C M65 H aun&ue ser< mu% dif?cil de filtrar % tendr< mu% $a;a am litud 7Cual&uier otra frecuencia causar< &ue 0RE3OUT !enere una frecuencia ro orcional al oscilador com arado a .D M65 7 X En"iar un tono de @ 465 al Pin@ durante . se!undos 0RE3OUT PORTB7@ H.DDDH@DDD

-O#UB INDICE
-O#UB eti&ueta Salta a la su$rutina indicada en la eti&ueta H !uardando su direccin de re!reso en la ila 9stacK: 7' diferencia del ,OTO H cuando se lle!a a un RETURN Hla e;ecucin si!ue con la declaracin si!uiente al Jltimo ,OSUB e;ecutado 7

Se uede usar un nJmero ilimitado de su$rutinas en un ro!rama % ueden estar anidadas 7En otras ala$ras H las su$rutinas ueden llamar a otra su$rutina 7Cada anidamiento no de$e ser ma%or de cuatro ni"eles 7 -O#UB $ee X e;ecuta la su$rutina $ee $ee U 6i!6 D X enciende el LED conectado a PinD sound @H c BD H @D d X 6ace sonar el arlante conectado a Pin@ loN D X a a!a el LED conectado a PinD return X "uel"e a la rutina rinci al

-OTO INDICE
-OTO eti&ueta La e;ecucin del ro!rama continua en la declaracin de la eti&ueta 7 -OTO send X salta a la declaracin eti&uetada send sendU serout DHN.CDDH c > )i> d X en"?a = )i> como salida al PinD en forma serial

?I-? INDICE
?I-? Pin )ace de "alor alto el Pin es ecificado % lo con"ierte autom<ticamente en salida 7Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: ?I-? . X con"ierte PinD en salida % lo coloca en "alor alto 9(G "olt: ?I-? PORT"+. X con"ierte PORT'HPinD en salida % lo coloca en "alor alto 9(G "olt: led "ar PORTB7D X define el in LED )I,) led X con"ierte el Pin LED en salida % lo coloca en "alor alto 9(G "olt:

Como alternati"a H si el in %a es salida H 6a% una forma m<s r< ida % corta de setearlo en "alor alto 9desde un codi!o !enerado stand oint : U PORTB7D ` @ X setea PORTB PinD a "alor alto 7

?P'
?P' H C6annelH Dut%c%cleH frecuencia

INDICE

)ace salir un tren de ulso modulado en anc6ura usando P2M or 6ardNare Hdis oni$le en al!unos PICmicro 7 Puede e;ecutarse continuamente en se!undo lano mientras &ue el ro!rama est< e;ecutando otras instrucciones7 C6annel es ecifica &uP canal fisico P2M se "a a utili5ar7 'l!unos dis ositi"os tienen @H . o - canales de P2M7 En los dis ositi"os con . canalesH la frecuencia de$e ser i!ual en am$os canales7 Dut%c%cle es ecifica la relacin de 9alta($a;a: con7Edesc7 de la seRal7 Se e+tiende a artir de D a .GGH donde D est< a a!ado todo el tiem o % .GG es alto todo el tiem o7 Un "alor de @.F da un ciclo de GD] 9onda cuadrada:7 La frecuencia es la frecuencia deseada de la seRal de P2M7 No todas las frecuencias est<n dis oni$les en todas las confi!uraciones del oscilador7 La frecuencia m<s alta a cual&uier "elocidad del oscilador es -.FAF)57 La frecuencia usa$le m<s $a;a de )P2M en cada confi!uracin del oscilador se muestra en la ta$la si!uienteU

OSC C M657 B M657 @D M657 @. M657 @A M657 .D M657 .C M657 -- M657 CD M657

@C($it core % @BC/// .CG 657 CBL 657 A@@ 657 F-- 657 LFF 657 @..@ 657 @CAG 657 .D@G 657 .CC. 657

@FC+++ -LDF 657 FB@- 657 LFAA 657 @@F@L 657 @GA.G 657 @LG-@ 657 .-C-B 657 -...F 657 na

'l!unos dis ositi"osH tales como el PIC@BCCG.H tienen ines alternos &ue se uedan utili5ar ara )P2M7 Los DE0INEs si!uientes ermiten el usar de estos inesU

DE0INE DE0INE DE0INE DE0INE

CCP@[RE, PORTC Q) CCP@[BIT . Q) Nm @ CCP.[RE, PORTC Q) CCP.[BIT @ Q) Nm .

Nm @ in ort in $it Nm . in ort in $it

los si!uientes DE0INEs es ecifican &uP tem ori5adorH @ o .H utili5ar con el canal . de P2M % el canal - de P2M ara los dis ositi"os de PIC@FCF++7 El "alor or defecto es el tem ori5ador @ si nin!Jn DE0INE se es ecifica7 DE0INE )P2M.[TIMER @ Q) Nm . timer select DE0INE )P2M-[TIMER @ Q) Nm - timer select )P2M @H@.FH@DDD Q en"ie a GD] ciclo de tra$a;o P2M a @K)5 )P2M @HACH.DDD Q en"ie a .G] ciclo de tra$a;o P2M a .K)5

?#ERIN INDICE
?#ERIN SParit%La$el H TSTimeout HLa$el HT c Item S 7 7 7 T d Reci$e uno m<s Items de un ort serial 9 de 6ardNare : en dis ositi"os &ue so ortan comunicaciones seriales asincrnicas or 6ardNare 7 )SERIN es una de "arias funciones seriales asincrnicas re(constru?das 7Slo uede ser usada en dis ositi"os &ue osean 6ardNare US'RT 7*ea la 6o;a de datos del dis ositi"o ara informacin de los in seriales de entrada % otros 7Los arametros seriales % el $aud( rate son es ecificados usando DE0INE U X colo&ue el re!istro rece tor en rece tor 6a$ilitado DE0INE )SER[RCST' LD6 X colo&ue el re!istro de transmisin en transmisin 6a$ilitada DE0INE )SER[TST' .D6 X colo&ue $aud rate DE0INE )SER[B'UD .CDD )SERIN asume un oscilador de C M65 cuando calcula el $aud rate 7Para mantener una relacin de $aud rate a ro iada con otros "alores de oscilador Huse DE0INE ara es ecificar el nue"o "alor OSC 7 Timeout % La$el ueden ser inclu?dos en forma o cional ara ermitir al ro!rama continuar si un car<cter no es reci$ido dentro de un l?mite de tiem o 7 Timeout est< es ecificado en unidades de @ milise!undo 7

El formato or defecto de los datos seriales es BN@ H B $its de datos Hsin aridad % @ sto $it 7FE@ 9 F $its de datos H aridad ar H @ sto $it : F O @ 9 F $its de datos H aridad im ar H@ sto $it : ueden ser 6a$ilitados usando los si!uientes DE0INEs U X use solo si se desea aridad ar DE0INE )SER[E*EN @ X use solo si se desea aridad im ar DE0INE )SER[ODD @ El seteo de aridad i!ual &ue todos los DE0INE )SER afectan tanto a )SERIN como a ?#EROUT Se uede incluir Parit%La$el como o cional en la declaracin 7El ro!rama continuar< en este unto si se reci$e un car<cter con error de aridad 7Solo de$e ser usado si se 6a$ilit aridad con un DE0INE anterior 7 Dado &ue la rece cin serial se reali5a or 6ardNare Hno es osi$le in"ertir los ni"eles ara eliminar un dri"er RS ( .-. 7Por esto de$e usarse un dri"er adecuado con )SERIN 7 )SERIN so orta los mismos modificadores de datos &ue SERIN. 7Refierase a la seccin de #ERINF ara ma%or informacin 7 )SERIN c BD H dec 2@ d

?#EROUT INDICE
?#EROUT cItem SHItem T d En"?a uno m<s Items al ort serial de 6ardNare en dis ositi"os &ue so ortan comunicaciones seriales asincrnicas or 6ardNare 7 )SEROUT es una de "arias funciones seriales asincrnicas re(constru?das 7Slo uede ser usada en dis ositi"os &ue osean 6ardNare US'RT 7*ea la 6o;a de datos del dis ositi"o ara informacin de los in seriales de entrada % otros 7Los arametros seriales % el $aud( rate son es ecificados usando DE0INE U X colo&ue el re!istro rece tor en rece tor 6a$ilitado DE0INE )SER[RCST' LD6 X colo&ue el re!istro de transmisin en transmisin 6a$ilitada DE0INE )SER[TST' .D6 X colo&ue $aud rate

DE0INE )SER[B'UD .CDD )SEROUT asume un oscilador de C M65 cuando calcula el $aud rate 7Para mantener una relacin de $aud rate a ro iada con otros "alores de oscilador Huse DE0INE ara es ecificar el nue"o "alor OSC 7 El formato or defecto de los datos seriales es BN@ H B $its de datos Hsin aridad % @ sto $it 7FE@ 9 F $its de datos H aridad ar H @ sto $it : F O @ 9 F $its de datos H aridad im ar H@ sto $it : ueden ser 6a$ilitados usando los si!uientes DE0INEs U X use solo si se desea aridad ar DE0INE )SER[E*EN @ X use solo si se desea aridad im ar DE0INE )SER[ODD @ El seteo de aridad i!ual &ue todos los DE0INE )SER afectan tanto a ?#ERIN como a ?#EROUT Dado &ue la rece cin serial se reali5a or 6ardNare Hno es osi$le in"ertir los ni"eles ara eliminar un dri"er RS ( .-. 7Por esto de$e usarse un dri"er adecuado con )SEROUT 7 )SEROUT so orta los mismos modificadores de datos &ue SEROUT. 7RefiPrase a la seccin de #EROUTF ara ma%or informacin 7 X en"iar el "alor decimal de BD se!uido or un linefeed a tra"Ps del US'RT ?#EROUT G dec B. , 4. L

IFCRE"D INDICE
IFCRE"D DataPin HClocKPinHControlHS'ddressHT c *ar SH*ar 777T d S 7 La$el T En"?a los $%tes de Control % o cionalmente los de 'ddress H a tra"Ps del ClocKPin % el DataPin % !uarda los $%tes reci$idos dentro de *ar 7ClocKPin % dataPin ueden ser constantes H D(@G H una "aria$le &ue conten!a un nJmero 9 7e;7 BD: H un nJmero de Pin 9 7e;7 PORT'7D: I.CRE'D % I.C2RITE ueden ser usados ara leer % !ra$ar datos de un EEPROM serial usando una interfase I.C de . ca$les H como Microc6i .CLCD@B similar 7Esto ermite !uardar datos en una memoria e+terna no "ol<til H ara &ue sean mantenidos aJn sin ener!?a conectada 7Estos comandos funcionan en modo I.C master % tam$iPn son usados ara comunicarse con otros dis ositi"os con interfase I.C H como sensores de tem eratura % con"ertidores 'ED 7

Los F $its su eriores del $%te de Control contienen el cdi!o de control ;unto con la seleccin del c6i e informacin adicional de direccin 7H de endiendo de cada dis ositi"o 7El $it inferior es una $andera interna &ue indica si es un comando de lectura escritura % no se de$e usar 7 Este formato ara el $%te de Control es diferente al usado or el PBP ori!inal 7'se!Jrese de usar este formato en o eraciones PBP I.C 7 Por e;em lo H cuando comunicamos con un .CLCD@B H el cdi!o de control es ]@D@D % no se usa la seleccin de c6i H or lo &ue el $%te de Control ser< ]@D@DDDDD ^'D 7'l!unos formatos de Control son U

Dispositi<o F7$C.4B F7$C.FB F7$C.7B F7$C.6B F7$C45B F7$CKFB F7$C5/

Capacidad 4F6 bytes F/5 bytes /4F bytes 4 1bytes F 1bytes 7 1bytes 6 1bytes

Control S4.4.(((. S4.4.(((. S4.4.((b. S4.4.(bb. S4.4.bbb. S4.4.ddd. S4.4.ddd.

TamaMo direcci3n 4 byte 4 byte 4 byte 4 byte 4 byte F bytes F bytes

bbb ` $its de seleccin de $locK 9direcciones de orden alto: ddd ` $its de seleccin de dis ositi"o ((( ` no im orta El tamaRo de direccin en"iado 9$%te Nord: es determinado or el tamaRo de la "aria$le usada 7Si se usa una "aria$le con tamaRo $%te se en"?a una direccin de B $its7Si se en"?a una "aria$le de tamaRo Nord Hse en"?a una direccin de @A $its7 'se!Jrese de usar una "aria$le a ro iada al dis ositi"o a comunicar 7

Si se es ecifica *ar con tamaRo Nord H se leen . $%tes % se !uarda rimero el de ma%or orden % lue!o el de orden inferior dentro de *ar 7Este orden es el in"erso al &ue se osa normalmente con "aria$les 7 Si se usa la o cin La$el H se saltar< a ella H si no se reci$e un reconocimiento del dis ositi"o I.C 7 Las instrucciones I.C ueden ser usadas ara acceder al EEPROM incor orado en los dis ositi"os @.CE+++ % @ACE+++ 7Sim lemente es ecifi&ue los nom$res de in de las l?neas internas adecuadas como arte del comando I.C % colo&ue el si!uiente DE0INE en el rinci io del ro!rama 7 DE0INE I.C[INTERN'L @ *ea las 6o;as de datos de icroc!ip ara m<s indormacin 7

El tiem o de las instrucciones I.C es tal &ue los dis ositi"os de "elocidad standard 9@DD 465: ueden ser accedidos a "elocidad de clocK de 6asta B M65 7Dis ositi"os r< idos 9CDD M65: ueden ser usados 6asta .D M65 7Si se desea acceder un dis ositi"o de "elocidad standard a B M65 H se de$e usar el si!uiente DE0INE en el ro!rama U DE0INE I.C[SLO2 @ El clocK I.C % las l?neas de datos ueden ser em u;ados a *cc con un resistor de C(F 4 de acuerdo al si!uiente es&uema H%a &ue am$os tra$a;an en modo de colector a$ierto 7 addr "ar $%te cont con ]@D@DDDDD addr `@F X coloca la direccin en @F X lee datos de la direccin @F % los de;a en B. I.CRE'D PORT'7DHPORT'7@HcontHaddrH c B. d

*ea el li$ro Microc6i = NON *OL'TILE MEMORI PRODUCTS> ara ma%or informacin de este J otros dis ositi"os &ue ueden ser usados con los comandos I.CRE'D % I.C2RITE 7

IFC'RITE INDICE
IFC'RITE DataPin HClocKPinHControlHS'ddressHT c *alue SH*alue 777T d S 7 La$el T En"?a los $%tes de Control % o cionalmente los de 'ddress H a tra"Ps del ClocKPin % el DataPin se!uidos or *alue 7ClocKPin % DataPin ueden ser constantes H D(@G H una "aria$le &ue conten!a un nJmero 9 7e;7 BD: H un nJmero de Pin 9 7e;7 PORT'7D: El tamaRo de direccin en"iado 9$%te Nord: es determinado or el tamaRo de la "aria$le usada 7Si se usa una "aria$le con tamaRo $%te se en"?a una direccin de B $its7Si se en"?a una "aria$le de tamaRo Nord Hse en"?a una direccin de @A $its7 'se!Jrese de usar una "aria$le a ro iada al dis ositi"o a comunicar 7 Cuando se escri$e un EEPROM serial H es necesario es erar @D ms 9de endiendo del dis ositi"o : ara com letar la !ra$acin H antes de intentar comunicarse nue"amente con el dis ositi"o 7Si se intenta un I.C2RITE I.CRE'D antes &ue se com lete la !ra$acin H se i!norar< el acceso 7 'un&ue una sola declaracin I.C2RITE uede ser usada ara !ra$ar mJlti les $%tes simultaneamente H se uede "iolar los re&uerimientos de tiem o de !ra$acin ara los EEPROM seriales 7'l!unos ermiten !ra$ar mJlti les $%tes en una <!ina sim le antes de necesitar una es era 7Re"ise la 6o;a de datos del dis ositi"o &ue estP usando 7La o cin de

!ra$acin mJlti le uede ser Jtil con dis ositi"os I.C &ue no de$an es erar entre !ra$aciones 7 Si se usa la o cin La$el H se saltar< a ella H si no se reci$e un reconocimiento del dis ositi"o I.C 7 Las instrucciones I.C ueden ser usadas ara acceder al EEPROM incor orado en los dis ositi"os @.CE+++ % @ACE+++ 7Sim lemente es ecifi&ue los nom$res de in de las l?neas internas adecuadas como arte del comando I.C % colo&ue el si!uiente DE0INE en el rinci io del ro!rama 7 DE0INE I.C[INTERN'L @ *ea las 6o;as de datos de Microc6i ara m<s indormacin 7

El tiem o de las instrucciones I.C es tal &ue los dis ositi"os de "elocidad standard 9@DD 465: ueden ser accedidos a "elocidad de clocK de 6asta B M65 7Dis ositi"os r< idos 9CDD M65: ueden ser usados 6asta .D M65 7Si se desea acceder un dis ositi"o de "elocidad standard a B M65 H se de$e usar el si!uiente DE0INE en el ro!rama U DE0INE I.C[SLO2 @ *ea el si!uiente comando I.CRE'D addr "ar $%te cont con ]@D@DDDDD addr `@F X coloca la direccin en @F X en"?a el $%te A a la direccin @F I.C2RITE PORT'7DHPORT'7@HcontHaddrH c A d Pause @D X es era @D ms &ue se com lete la !ra$acin addr `@ X coloca la direccin en @ X en"?a el $%te en B. a la direccin @ I.C2RITE PORT'7DHPORT'7@HcontHaddrH c B. d Pause @D X es era @D ms &ue se com lete la !ra$acin

I& +++T?EN INDICE


I0 Com S 'NDEOR Com 777 T T)EN La$el

I0 Com S 'NDEOR Com 777 T T)EN Declaracin ELSE Declaracin ENDI0 EfectJa una m<s com araciones 7Cada tPrmino Com uede relacionar una "aria$le con una constante J otra "aria$le e inclu%e uno de los o eradores listados anteriormente 7 I0 777 T)EN e"alJa la com aracin en tPrminos de CIERTO o 0'LSO 7Si lo considera cierto H se e;ecuta la o eracin osterior al T)EN 7 Si lo considera falso H no se e;ecuta la o eracin osterior al T)EN 7Las com araciones &ue dan D se consideran falso 7Cual&uier otro "alor es cierto 7Todas las com araciones son sin si!no H %a &ue PBP solo so orta o eraciones sin si!no 7 'se!urese de usar arPntesis ara es ecificar el orden en &ue se de$en reali5ar las o eraciones 7De otra manera H la rioridad de los o eradores lo determina % el resultado uede no ser el es erado 7 I077T)EN uede o erar de dos maneras7 De una formaH el T)EN en un I077T)EN es esencialmente un ,OTO7 Si la condicin es ciertaH el ro!rama ir< 6acia la eti&ueta &ue si!ue al T)EN7 Si la condicin es falsaH el ro!rama "a a continuar 6acia la r+ima l?nea des uPs del I077T)EN7 Otra declaracin no uede ser uesta des uPs del T)EN\ sino &ue de$e ser una eti&ueta7 I= Pin. ; . T!en pus!d Q si el $otn conectado al in D es o rimido 9D:H salta a la eti&ueta us6d I= B. \;7. T!en old Q si el "alor en la "aria$le BD es ma%or i!ual a CDH salta a old I= PORTB+. T!en itson Qsi PORTBH in D es alto 9@:H salta a itson I= BB. ; 4.D "ND BB4 ; F.D T!en loop En la se!unda formaH I077T)EN uede e;ecutar condicionalmente un !ru o de declaraciones &ue si!an al T)EN7 Las declaraciones de$en estar se!uidas or un ELSE o un ENDI0 ara com letar la estructura7 I= B. >\ 4. T!en B. ; B. [ 4 B4 ; B4 8 4 Endi=

I= B. ; F. T!en led ; 4 Else led ; . Endi=

INPUT INDICE
INPUT Pin Con"ierte el Pin es ecificado en una entrada7 Pin de$e ser una constanteH D(@GH o una "aria$le &ue conten!a un nJmero D(@G 9 7 e;;7H BD: o el nom$re de un in 9 7 e;7H PORT'7D:7 INPUT . Q con"ierte el PinD en entrada INPUT PORT"+. Q con"ierte el PORT'H in D en entrada En forma alternati"aH el in uede ser colocado como entrada de una forma m<s r< ida % corta 9desde un cdi!o !enerado stand oint:U TRISB7D `@ Q Setea el PORTBH in D como entrada Todos los ins en un ort ueden ser colocados como entradas seteando el re!istro TRIS com leto de una sola "e5U TRISB ` ]@@@@@@@@ Q Setea todo el PORTB como entrada

$ET INDICE
S$ETT *ar ` *alue 'si!na un *alue a una *aria$le7 El *alue uede ser una constanteH otra "aria$le o el resultado de una e+ resin7 RefiPrase a la seccin re"ia acerca de o eradores ara m<s informacin7 La ala$ra cla"e LET H or s? misma H es o cional7 $ET BD ` B@ M B. W BBD ` S&r 2@

$CDIN INDICE
$CDIN S DireccionH Tc*arSH *ar777 T d

LPe la R'M del LCD en el direccionamiento % sal"a los datos en *ar7 LCDs tienen R'M on$oard Heso se utili5a ara la memoria de caracter7 La ma%or?a de los LCDs tienen m<s R'M dis oni$le &ue la necesaria ara el <rea mostra$le7 Esta R'M se uede escri$ir usando la instruccin de $CDOUT7 La instruccin de LCDIN ermite &ue esta R'M sea le?da7 Los funcionamientos de la R'M del C, 9!enerador de car<cter: del LCD est<n en la direccin ^CD a ^F0 7 comien5an en la direccin ^BD7 *ea la 6o;a de datos del LCD es ec?fico ara estos direccionamientos % funciones7 Es necesario conectar la l?nea de lecturaE!ra$acin del LCD con un contacto de PICmicro MCU ara oder seleccionar si el modulo es le?do 9LCDIN: o ara escri$ir 9LCDOUT:7

Dos DE0INEs se em lean en las direccionesU DE0IN' LCD[R2RE, PORTE7 _lecturaE!ra$acin del in ort del LCD DE0INE LCD[R2BIT .7 _ in $it LCD lecturaE!ra$acin LCDOUT Hconsidere la informacin ara conectar un LCD con un PICmicro MCU7 LCDIN c BD d

$CDOUT INDICE
$CDOUT ItemS H Item777T Muestra Items en un "isor de cristal l?&uido inteli!ente 9LCD:7 PBP so orta mdulos LCD con un controlador )itac6i CCFBD o e&ui"alente7 Estos LCDH usualmenteH tienen un ca$e5al de @C o @A ins sim les o duales en un e+tremo7 Si el si!no 9e: est< colocado antes de un ItemH la re resentacin 'SCII ara cada d?!ito es en"iada al LCD7 LCDOUT tam$iPn uede usar cual&uiera de los modificadores usados con SEROUT.7 *ea la seccin de #EROUTF ara m<s informacin7 Un ro!rama de$e es erarH or lo menosH medio se!undo antes de en"iar el rimer comando a un LCD7 Puede tomar $astante tiem o a un LCD arrancar7 Los comandos son en"iados al LCDH en"iando un ^0E se!uido or el comando7 'l!unos comandos Jtiles se muestran en la si!uiente ta$laU

Comando T&E, 4 T&E, F T&E, T.C T&E, T.E T&E, T.& T&E, T4. T&E, T47 T&E, TC. $impia <isor

Operaci3n

:uel<e a inicio Bcomienzo de la primera lfneaD Cursor apagado #ubrayado del cursor acti<o Parpadeo del cursor acti<o ue<e cursor una posici3n !acia la izEuierda ue<e cursor una posici3n !acia la derec!a ue<e cursor al comienzo de la segunda lfnea INDICE

Note &ue 6a% un comando ara mo"er el cursor al comien5o de la se!unda l?nea en un "isor de dos l?neas7 Para muc6os LCDH los caracteres % l?neas mostrados no son consecuti"os en la memoria del "isor ( uede 6a$er un salto entre las locali5aciones7 Para muc6os "isores @A+.H la rimera l?nea comien5a en ^D % la se!undaH en ^CD7 El comandoU $CDOUT T&E, TC. 6ace &ue el "isor comience a escri$ir caracteres en el rinci io de la se!unda l?nea7 Los "isores @A+@ usualmente est<n formateados como "isores de B+.H con un salto entre las locaciones de memoria ara los rimeros % se!undos caracteres de B7 Los "isores de C l?neasH tam$iPn tienen un ma a de memoria no ordenado7 *ea la 6o;a de datos ara el dis ositi"o LCDH en articular el &ue usted estP usandoH ara las locaciones de memoria de caracter % comandos adicionales7 $CDOUT T&E, 4, H?elloJ Qlim ia el "isor % muestra =)ello> $CDOUT B., hB4 El LCD uede estar conectado al micro PicH usando un $us de C $it o uno de B $it7 Si se usa un $us de B $itH todos los B $its de$en estar en un ort7 Si se usa un $us de C $it H de$e estar conectado o a los C $it inferiores o a los C $it su eriores de un ort7 Ena$le %

Re!ister Select de$en estar conectados a al!Jn in del ort 7 RE2 de$e estar colocado a tierraH %a &ue el comando de LCDOUT solamente es de !ra$acin7 PBP su one &ue el LCD est< conectado a ins es ec?ficosH a menos &ue se le di!a de otra manera7 'sume &ue el LCD "a a ser usado con un $us de C $itsH con las l?neas de data DBC ( DBF conectadas en el micro Pic a PORT'7D ( PORT'7-H Re!ister Select a PORT'7C % Ena$le a PORTB7-7 'dem<sH iniciali5a el LCD como un "isor de dos l?neas7 Para cam$iar este seteoH colo&ue uno o m<s de los si!uientes DE0INEsH todos en ma%JsculasH en el comien5o de su ro!rama PBPU Q Setea el ort de datos LCD DE0INE LCD[DRE, PORTB Q Setea el $it de comien5o de datos 9D o C: si el $us es de C($it DE0INE LCD[DBIT D Q Setea el ort LCD Re!ister Select DE0INE LCD[RSRE, PORTB Q Setea el $it LCD Re!ister Select DE0INE LCD[RSBIT C Q Setea el ort LCD Ena$le DE0INE LCD[ERE, PORTB Q Setea el $it LCD Ena$le DE0INE LCD[EBIT G Q Setea el tamaRo del $us LCD 9C o B $its: DE0INE LCD[BITS C Q Setea el numero de lineas en el LCD DE0INE LCD[LINES . Este seteoH le dir< a PBP &ue 6a% conectado un LCD de . l?neas en modo de C $it con el $us de datos en los C $it inferiores de PORTBH Re!ister Select en el PORTB7CH % Ena$le en el PORTB7G7 El si!uiente es&uema muestra una forma de conectar un LCD a un micro PicU

$OO1DO'N INDICE
$OO1DO'N Searc6H cConstantS H Constant777Td H *ar La declaracin LOO4DO2N $usca en una lista de B $it los "alores Constant &ue coincidan con un "alor Searc67 Si se encuentraH el ?ndice de la constante es !uardado en *ar as?H si el "alor es el rimero de la listaH *ar ` D7 Si es el se!undoH *ar ` @ % as?H sucesi"amente7 Si no se encuentraH no se toma nin!una accin % *ar ermanece sin cam$ios7 La lista de constantes uede ser una me5cla de constantes numPricas % cadenas7 Cada car<cter en una cadena es tratado como una constante se arada con el "alor del car<cter 'SCII7 Las "aria$les de arra% con ?ndice "aria$le no ueden ser usadas en LOO4DO2NH aun&ue "aria$les de arra% con ?ndice constantes son ermitidas7

#erin 4,NF7..,B. X O$tiene un car<cter 6e+adecimal de in@ en forma serial $OO1DO'N B., GH.4FK7/596i"BCDE&JL, B4 X Con"ierte el car<cter 6e+adecimal en BD a un "alor decimal B@ #erout .,NF7.., GhB4L X En"?a un "alor decimal a inD en forma serial

$OO1DO'NF INDICE

$OO1DO'NF Searc6H STestT c*alueSH *alue777Td H *ar La declaracin LOO4DO2N. $usca un "alor Searc6 en una lista de *alues7 Si lo encuentraH el ?ndice de la constante es !uardado en *ar as?H si el "alor es el rimero de la listaH *ar ` D7 Si es el se!undoH *ar ` @ % as?H sucesi"amente7 Si no se encuentraH no se toma nin!una accin % *ar ermanece sin cam$ios7 El ar<metro o cional Test uede ser usado ara efectuar una $us&ueda distinta a la i!ualdad 9=`>:7Por e;em lo H se uede $uscar el rimer *alue &ue sea ma%or &ue el ar<metro Searc6 usando 9= a = : H Si no se indica nada H se asume 9=`>: 7 La lista de *alues uede ser una me5cla de constantes numPricas % cadenas en @A $its % "aria$les7 Cada car<cter en una cadena es tratado como una constante se arada con el "alor del car<cter 'SCII7 No se ueden usar e+ resiones en una lisia de *alues H aun&ue ueden ser usadas como "alor Searc6 Las "aria$les de arra% con ?ndice "aria$le no ueden ser usadas en LOO4DO2N.H aun&ue "aria$les de arra% con ?ndice constantes son ermitidas7 $OO1DO'NF !enera un cdi!o - "eces m<s !rande &ue $OO1DO'N 7Si la lista consiste solamente de constantes % cadenas de B $its H use LOO4DO2N 7

$OO1DO'NF '.,G/4F,'4,4.F7L,B. $OO1DO'NF '.,>G4.,4..,4...L,B.

$OO1UP INDICE

$OO1UP Inde+H cConstantS H Constant777Td H *ar

LOO4UP uede ser usado ara o$tener "alores de una ta$la de constantes de B $its HSi Inde+ es cero H *ar toma el "alor de la rimer Constanet 7Si Inde+ es @ H *ar toma el "alor de la se!unda Constante % as? sucesi"amente 7Si Inde+ es ma%or i!ual &ue el nJmero de entradas en la lista de constantes H no se toma nin!una accin % *ar ermanece sin cam$ios 7 La lista de constantes uede ser una me5cla de constantes numPricas % cadenas7 Cada car<cter en una cadena es tratado como una constante se arada con el "alor del car<cter 'SCII7 Las "aria$les de arra% con ?ndice "aria$le no ueden ser usadas en LOO4UPH aun&ue son ermitidas las "aria$les de arra% con ?ndice constantes 7

0or BD`D to G X cuenta de D a G $OO1UP B.,G H?ello H L,B4 X o$tiene el car<cter BD de la cadena % lo de;a en B@ Serout DHN.CDDH c B@ d X en"?a el car<cter en B@ al PinD en forma Serial Ne+t BD X "a al se!undo car<cter

$OO1UPF INDICE

$OO1UPF Inde+Hc*alue c H*alue 777Td H *ar

LOO4UP. uede ser usado ara o$tener entradas de una ta$la de *alues HSi Inde+ es cero H *ar toma el "alor del rimer *alue 7Si Inde+ es @ H *ar toma el "alor del se!undo *alue % as? sucesi"amente 7Si Inde+ es ma%or i!ual &ue el nJmero de entradas en la lista H no se toma nin!una accin % *ar ermanece sin cam$ios 7 La lista de *alues uede ser una me5cla de constantes numPricas % cadenas en @A $its % "aria$les7 Cada car<cter en una cadena es tratado como una constante se arada con el "alor del car<cter 'SCII7 No se ueden usar e+ resiones en una lisia de *alues H aun&ue ueden ser usadas como "alor Inde+ Las "aria$les de arra% con ?ndice "aria$le no ueden ser usadas en LOO4UP.H aun&ue "aria$les de arra% con ?ndice constantes son ermitidas7 $OO1UPF !enera un cdi!o - "eces m<s !rande &ue $OO1UP 7Si la lista consiste solamente de constantes % cadenas de B $its H use LOO4UP 7

$OO1UPF B. , GF/5,/4F,4.F7L,'4

$O' INDICE

$O' Pin

Coloca el in es ecificado en "alor $a;o % autom<ticamente lo con"ierte en salida 7Pin uede ser una +onstante H D(@G H Wo una "aria$le &ue conten!a un nJmero D(@G 9 7e;7 BD: un nom$re de in 9 7e;7 PORT'7D:

$O' . X Coloca el PinD en salida % ni"el $a;o 9 D "olt: $O' PORT"+. X Coloca PORT'7D como salida % en ni"el $a;o 9D "olt: Led "ar PORTB7D X define un in LED $O' led X coloca el in LED como salida % en "alor $a;o 9D "olt:

Si el in %a es una salida H es m<s r< ido usar un cdi!o %a !enerado U

PORTB+. ; . X coloca en ni"el $a;o el inD de PORTB

N"P INDICE

N"P Period

Coloca al micro controlador en modo de $a;a otencia or er?odos de tiem o reducidos 9siesta:7 Durante este N'P H se reduce al m?nimo el consumo de ener!?a 7 Los er?odos indicados son solo a ro+imados H or&ue el tiem o se deri"a del 2atc6do! Timer &ue est< controlado or REC % uede "ariar de c6i a c6i % tam$iPn con la tem eratura 7 Como N'P usa el 2atc6do! Timer es inde endiente de la frecuencia del oscilador 7

Period

Demora Bapro(+D en milisegundos 46 K5 9F 477 F66 /95 44/F FK.7

. 4 F K 7 / 5 9

N'P F X ausa en $a;a otencia or a ro+7 .H- se!undos

ON INTERRUPT INDICE

ON INTERRUPT ,OTO La$el

Permite el mane;o de las interru ciones del micro controlador or medio de una su$rutina PBP 7 E+isten dos formas de mane;ar interru ciones usando PBP 7 La rimera es escri$ir una su$rutina de interru cin en len!ua;e ensam$lador 7Esta es la forma de mane;ar

interru ciones con la menor latencia % el menor o"er6ead 7Este mPtodo se discute m<s adelante H en la seccin a"an5ada 7 El se!undo mPtodo es escri$ir un 6andler 9 mane;ador : de interru ciones PBP 7Es similar a una su$rutina PBP H ero termina con un RESUME 7 Cuando ocurre una interru cin H se marca con una $andera 7Cuando la e;ecucin de la declaracin PBP &ue se esta$a e;ecutando termina H el ro!rama salta al 6andler de interru ciones indicado en La$el 7Una "e5 &ue termina el tra$a;o del 6andler H una declaracin RESUME en"?a el ro!rama de "uelta a donde esta$a cuando ocurri la interru cin H tomando todo como lo de; 7 DIS'BLE % EN'BLE ermiten &ue distintas secciones de un ro!rama PBP se e;ecuten sin la osi$ilidad de ser interrum idas El lu!ar m<s notorio ara usar DIS'BLE es ;usto antes del actual 6andler de interru ciones 7 O el 6andler uede ser colocado antes &ue la declaracin ON INTERRUPT %a &ue la $andera de interru ciones no se c6e&uea antes del rimer ON INTERRUPT en un ro!rama 7 Latencia es el tiem o entre el edido de interru cin % el momento en &ue se in!resa en el 6andler de interru ciones 7Como las declaraciones de PBP no son reentrantes 9 7e;7 no se uede e;ecutar una declaracin mientras se est< e;ecutando una anterior: H uede e+istir una latencia considera$le 6asta &ue se in!rese a la rutina de interru ciones 7 PBP no in!resar< al 6andler B'SIC de interru ciones 6asta &ue 6a%a terminado de e;ecutar la declaracin en curso 7Si la declaracin es P'USE SERIN H uede demorarse $astante 6asta &ue sea reconocida la interru cin 7Se de$e diseRar el ro!rama tomando en cuenta esta latencia 7Si esta es inace ta$le % las interru ciones de$en ser mane;ados m<s ra idamente H se de$e usar una rutina en len!ua;e ensam$lador 7 ON INTERRUPT a!re!ar< una instruccin des uPs de cada declaracin H ara c6e&uear si ocurre no una interru cin DIS'BLE elimina la osi$ilidad de usar esta instruccin % EN'BLE la 6a$ilita 7Normalmente H las instrucciones adicionales no son un ro$lema H ero ro!ramas lar!os en e&ueRas com utadoras si lo son 7 Se uede usar m<s de un ON INTERRUPT en un ro!rama U

ON INTERRUPT ,OTO m%int X el 6andler de interru ciones es m%int INTCON ` ]@DD@DDDD X 6a$ilita la interru cin RBD 77777777 DIS'BLE X des6a$ilita las interru ciones en el )andler M%int U led`@ X enciende el LED con una interru cin

RESUME X "uel"e al ro!rama rinci al EN'BLE X 6a$ilita las interru ciones des uPs del )andler

Para des6a$ilitar ermanentemente las interru ciones 9 6asta &ue se necesiten : H una "e5 &ue se us ON INTERRUPT H colo&ue INTCON en ^BD

INTCON ` ^BD

OUTPUT INDICE

OUTPUT Pin

Con"ierte el in es ecificado en salida 7 7Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D:

OUTPUT . X con"ierte in D en salida OUTPUT PORT"+. X con"ierte PORT' in D en salida

En forma alternati"a H el in uede ser con"ertido en salida de una manera m<s r< ida % corta 9con un cdi!o !enerado stand oint:7

TRI#B+. ; . X setea PORTB in D como salida Todos los ins de un ort ueden ser seteados simultaneamente como salida usando el re!istro TRIS com leto U TRI#B ; S........ X setea todos los ins de PORTB como salidas

O'IN INDICE
O'IN PinH ModoH cItem777 d

En"?a o cionalmente un ulso de reset a un dis ositi"o de one(Nire 9un alam$re: % des uPs lee unos o m<s $its o $%tes de datos de PlH terminando o cionalmente con otro ulso de restauracin7 9reset: Pin uede ser una constanteH un D ( @GH o una "aria$le &ue conten!a un nJmero D (@G 9e7!7 BD: o un nom$re de in 9e7!7 PORT'7D:7 Modo es ecifica antes si un reset est< en"iado %Eo des uPs de la o eracin % el tamaRo de los datosH $it o $%tes ODE numero de bit . 4 F

E&ECTO 4 ; en<ia un pulso de reset antes Eue los datos 4 ; en<ia un pulso de reset despues de los datos . ; dotos de un byte, 4 ; datos de un bit

ser?an al!unos e;em los de modoU El modo D no RESET % datos de un $%teH modo de @ si!nifica RESET antes de &ue los datosH los datos son de un $%teH modo de C nin!un RESET % datos de un $it7 El item es unas o m<s "aria$les o modificadores se arados or comas7 Los modificadores ermitidos son STR ara los datos de lectura en una "aria$le de arra% de $%te % S4IP ara saltar un nJmero de "alores de la entrada de informacin7 El S4IP % el STR no se ueden utili5ar ara PICmicro de @.($it core 9$ase: de$ido a la R'M % al limite de ST'C4 O'IN PORTC7DHDHctem eraturef.HS4IP CH count[remainH count[ er[c d esta declaracin reci$ir?a $%tes de un dis ositi"o de un(alam$re en el PIN D de PORTC sin el ulso de reset &ue es en"iado7 Reci$ir?a . $%tes % los ondr?a en el arra% de tem eratura H salta los C $%tes si!uientes % des uPs le% los . $%te finales en "aria$les se aradas7

O'OUT INDICE
O'OUT PinH ModoH cItem777 d En"?e un ulso o cional de reset a un dis ositi"o de one[Nire 9un(alam$re: % des uPs escri$e unos o m<s $it o $%tes de datosH terminando o cionalmente con otro ulso de reset7

in uede ser una constanteHD ( @GH o una "aria$le &ue conten!a un nJmero D (@G 9e7!7 BD: o un nom$re de in 9e7!7 PORT'7D:7 Modo es ecifica si un ulso de reset se en"ia antes %Eo des uPs de la o eracin % el tamaRo del los $%te de datosH$it o $%te7 ODE nPmero de bit . 4 F

E&ECTO 4 ; en<fa pulso de reset antes de Eue los datos 4 ; en<iar pulso de reset despujs de los datos . ; datos en<iados en bytes , 4 ; datos en<iados en bit

e;em los de ModoU modo D si!nifica nin!un reset % $%te de datosH modo de @ si!nifica reset antes de los datos % los $%tes de datosHmodo de C nin!un reset % $it de datos7 Item es unas o m<s constantesH "aria$les o modificadores se arados or comas7 Los modificadores ermitidos son STR ara en"iar datos de $%tes arra% % REP ara en"iar un nJmero de "alores re etidos7 REP % STR no estan so ortados ara PICmicro de @.($it core de$ido a la R'M % el limite de ST'C47 O'OUT PORTC7DH@Hc^ccH^$e d esta declaracin en"iar?a un ulso de reset a un dis ositi"o del un(alam$re en el in D de PORTC se!uido or los BITES ^^cc % ^^$e7

P"U#E INDICE

P"U#E Periodo de milise!undos

Detiene el ro!rama or un Periodo milise!undos 7Periodo tiene @A $it H or lo &ue los retardos ueden ser de 6asta AG7G-G milise!undos 79 un oco mas de @ minuto : 7No coloca el micro controlador en modo de $a;a otencia como las otras funciones de retardo 9N'P % SLEEP :7 Inclusi"e H consume ma%or otenciaH ero es m<s e+acto 7Tiene la misma recisin &ue el clocK 7

P'USE asume la frecuencia de C M65 del oscilador 7 Si se usa un oscilador de otra frecuencia Hse de$e indicar usando el comando DE0INE OSC 7 *ea la seccin so$re "elocidad ara ma%ores detalles 7 P"U#E 4... _ demora de @ se!undo

P"U#EU# INDICE

P"U#EU# Periodo

Detiene el ro!rama or Periodo milise!undos 7Periodo tiene @A $it H or lo &ue los retardos ueden ser de 6asta AG7G-G milise!undos 7No coloca el micro controlador en modo de $a;a otencia como las otras funciones de retardo 9N'P % SLEEP :7 Inclusi"e H consume ma%or otenciaH ero es m<s e+acto 7Tiene la misma recisin &ue el clocK 7 P'USE tiene un nJmero m?nimo de ciclos ara o erar 7Como de ende de la frecuencia del oscilador H no es osi$le o$tener demoras menores a un nJmero m?nimo de microse!undos usando P'USEUS 7Para o$tener demoras recisas H menores &ue esto use una rutina ensam$ladora ti o 'SM777END'SM 7La ta$la si!uiente muestra el nJmero m?nimo de microse!undos o$teni$le ara una determinada frecuencia de oscilador 7

O#C KBK+/6D 7 6 4. 4F 45 F.

Demora mfnima F.us F7us 4Fus 6us 9us /us Kus

P'USEUS asume la frecuencia de C M65 del oscilador 7 Si se usa un oscilador de otra frecuencia Hse de$e indicar usando el comando DE0INE OSC 7 *ea la seccin so$re "elocidad ara ma%ores detalles 7 P"U#EU# 4... _ demora de @ se!undo

PEE1 INDICE

PEE1 'ddress H*ar

Lee el re!istro del micro controlador en la direccin 'ddress es ecificada % !uarda la lectura en *ar 7O ciones es eciales del microPIC H como con"ertidores 'ED % orts adicionales ueden ser le?dos usando PEE4 7 PEE1 % PO1E ermiten acceso directo a los re!istros del microPIC inclu%endo PORT'HPORTBHPORTCHPORTDHPORTE % sus re!istros asociados de direccin de datos 9TRIS: 7PEE4 % PO4E o eran en todos los $its de un re!istro simultaneamente 7Cuando se 6ace un PO4E de datos a PORT' H se actuali5a el ort com leto H no solamente un $it indi"idual 7

PEE1 , PORT",B. X toma el estado actual de PORT' % lo coloca en BD

PBP uede acceder directamente a re!istros % $its sin necesidad de utili5ar PEE4 % PO4E 7Se recomienda usar el acceso directo % no PEE4 % PO4E 7

BD ` PORT' toma el estado actual de PORT' % lo coloca en BD

PO1E INDICE

PO1E 'ddress H *alue

,ra$a *alue en el re!istro del micro controlador en la direccin 'ddress es ecificada 7O ciones es eciales del microPIC H como con"ertidores 'ED % orts adicionales ueden ser le?dos usando PEE1 7

PO1E T6/,. X !ra$a D en el re!istro BG 6e+adecimal 9setea todo PORT' como salidas : PBP uede acceder directamente a re!istros % $its sin necesidad de utili5ar PEE4 % PO4E 7Se recomienda usar el acceso directo % no PEE4 % PO4E 7 TRIS' ` D X setea todo PORT' como salidas : PORT'7D ` @ X setea alto el $it D de PORT'

POT INDICE

POT PinHScaleH*ar

Lee un otencimetro 9J otro dis ositi"o resisti"o: en Pin 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: La resistencia se mide tomando el tiem o de descar!a de un ca acitor a tra"Ps de un resistor 79 G 4 a GD 4 : 7Scale se usa ara a;ustar distintas constantes RC 7 Para constantes RC !randes H Scale de$e ser $a;a 9"alor m?nmo @ : 7 Para constantes RC e&ueRas H Scale de$e ser m<+ima 9.GG: 7 Si el "alor de Scale es correcto H *ar de$e ser cero ara m?nma resistencia % .GG ara m<+ima resistencia 7 Desafortunadamente H Scale de$e ser determinada en forma e+ erimental 7Para Psto H colo&ue el dis ositi"o a medir en m<+ima resistencia % midalo con Scale`.GG 7 En estas condiciones H *ar tendr< un "alor a ro iado de Scale 79Este es el mismo ti o de roceso &ue efectJa la o cin 'LT(P en BS@ :7 POT,K,F//,B. X lee el otencimetro en in - ara determinar Scale Serout DHN.CDDHceBDd X en"ia el "alor del otenciometro en forma serial al in D

PU$#IN INDICE
PU$#IN PinHStateH*ar

Mide el anc6o del ulso en Pin 7 Si State es cero se mide el anc6o de un ulso $a;o 7 Si State es uno H se mide el anc6o de un ulso alto 7 El anc6o medido se coloca en *ar 7 Si el flanco del ulso no lle!a H el anc6o del ulso es demasiado !rande ara ser medido H *ar`D 7 Si se usa una "aria$le de B $it H solo se usan los $its menos si!nificati"os de la medicin de @A $its 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: La resolucin de PULSIN de ende de la frecuencia del oscilador 7 Si se usa un oscilador de C M65 H el anc6o de ulso se o$tiene en incrementos de @D us 7Si se usa un oscilador de .D M65 Hel anc6o de ulso tendr< una resolucin de . us 7Definir un "alor de OSC no tiene efectos so$re PULSIN 7 La resolucin siem re cam$ia con la "elocidad del oscilador en uso 7 PU$#IN PORTB+7,4,'K X mide el ulso alto en in C !uardado en 2-

PU$#OUT INDICE
PU$#OUT PinHPeriodo ,enera un ulso en Pin H con un eriodo es ecificado 7 El ulso se !enera acti"ando dos "eces el in H or lo &ue la olaridad del ulso de ende del estado inicial del in 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: La resolucin de PULSOUT de ende de la frecuencia del oscilador 7 Si se usa un oscilador de C M65 H el eriodo del ulso !enerado estar< en incrementos de @D us 7Si se usa un oscilador de .D M65 H eriodo una resolucin de . us 7Definir un "alor de OSC no tiene

efectos so$re PULSOUT 7 La resolucin siem re cam$ia con la "elocidad del oscilador en uso 7

X en"ia un ulso de @ mse!7a in G 9 a C M65: PU$#OUT PORTB+/,4..

P'
P' PinHDut%HC%cle

INDICE

En"?a un tren de ulsos modulados en anc6o a Pin 7Cada ciclo de P2M est< com uesto de .GA asos 7 El ciclo Jtil Dut% ara cada ciclo "ar?a de D 9D]: a .GG 9@DD]` 7El ciclo P2M es re etido C%cle "eces 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: C%cle de ende de la frecuencia del oscilador 7Con un oscilador de C M65 H cada C%cle ser< de a ro+imadamente G mse!7 de lar!o 7Con un oscilador de .D M65 el lar!o a ro+imado ser< de @ mse!7 Definir un "alor de OSC no tiene efecto so$re P' 7 El tiem o de C%cle siem re cam$ia con la "elocidad del oscilador en uso 7 Pin se con"ierte en salida ;usto antes de la !eneracin del ulso % "uel"e a ser entrada H cuando cesa 7La salida de P2M en un in tiene muc6o ruido H % no tiene forma de onda cuadrada 7Es necesario usar al!Jn ti o de filtro ara con"ertirla en al!o Jtil 7 Un circuito REC se uede usar como un sim le con"ertidor DE' 7 P' PORTB+9,4F9,4.. X en"?a una seRal P2M con un ciclo Jtil del GD] al in F H durante @DD ciclos

R"NDO

INDICE

R"NDO

*ar

EfectJa una interacin seudo(aleatoria en *ar 7*ar de$e ser una "aria$le de @A $it 7No se ueden usar "aria$les de arra% con ?ndice "aria$le H ero se ermite usar "aria$les de arra% con ?ndice constante 7*ar se usa tanto como ori!en H como ara !uardar el resultado 7El al!oritmo seudo(aleatorio usado tiene un aso de AGG-G 9 el Jnico nJmero &ue no roduce es el cero:7

R"NDO

'7 X coloca un nJmero aleatorio en 2C

RCTI E INDICE

RCTI E PinHStateH*ar

Mide el tiem o &ue un Pin ermanece en un estado State determinado 7B<sicamente es la mitad de un PULSIN 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: RCTIME uede usarse ara leer un otencimetro 9 cual&uier dis ositi"o resisti"o : 7La resistencia uede ser medida descar!ando un ca acitor a tra"Ps de un resistor 9 G 4 a GD 4 : % midiendo el tiem o de car!a 9 "ice"ersa : La resolucin de RCTIME de ende de la frecuencia del oscilador 7 Si se usa un oscilador de C M65 H el tiem o estar< en incrementos de @D us 7Si se usa un oscilador de .D M65 Hel tiem o tendr< una resolucin de . us 7Definir un "alor de OSC no tiene efectos so$re PULSOUT 7 La resolucin siem re cam$ia con la "elocidad del oscilador en uso 7

Si el in no cam$ia de estado H se de"uel"e D

$o0 PORTB+K X descar!a el ca acitor ara comen5ar Pause 4. X descar!a or @D mse!7 RCTI E PORTB+K,.,'. X lee el otencimetro en in -

RE"D INDICE

RE"D 'ddressH*ar

Lee el EEPROM incor orado en la direccin 'ddress H % !uarda el resultado en *ar 7Esta instruccin solo uede ser usada con un microPIC &ue ten!a un EEPROM incor orado como el PIC@A0BC PIC@ACBC

RE"D /,BF X coloca en B. el "alor de la direccin G del EEPROM

RE"DCODE INDICE
RE"DCODEH addressH *ar

Lee tamaRo de ala$ra en el direccionamiento de 'ddress dentro de *ar7 Los dis ositi"os de PIC@A0BF+ ermiten &ue el cdi!o sea le?do % escrito mientras se e;ecuta7 Mientras &ue escri$ir cdi!o self(modif%in! uede ser una tPcnica eli!rosaH ermite el almacena;e de datos ermanente so$re AC ( .GA $%tes7 Uno de$e tener muc6o cuidado de no escri$ir so$re la memoria del ro!rama acti"o7 El e;em lo se uede e+aminar ara determinar direccionamientos del ro!rama7

RE"DCODE @DDH 2 _ colo&ue la ala$ra de cdi!o en la locali5acin @DD en 2

RE#U E INDICE

RE#U E S La$el T

*uel"e al lu!ar del ro!rama &ue se a$andon H des uPs &ue termina de rocesarse una interru cin 7 RESUME es similar a RETURN H ero es usado al final de un 6andler de interru ciones PBP 7

Si se usa el La$el o cional H la e;ecucin del ro!rama "a a continuar en este La$el % no donde esta$a el ro!rama cuando ocurri la interru cin 7En este caso H cual&uier otra direccin de retorno H no ser< accesi$le 7*ea ON INTERRUPT ara ma%or informacin 7

clocKintU seconds`secondsW@ X cuenta tiem o RESUME X "uel"e al ro!rama des uPs de la Interru cin errorU 6i!6 errorled X enciende el led de error RESUME restart X "uel"e a al!un otro lu!ar

RETURN INDICE

RETURN

*uel"e desde una su$rutina 7 Retoma la e;ecucin en la declaracin &ue si!ue al ,OSUB &ue llam la su$rutina 7

,osu$ su$@ X "a a la su$rutina denominada su$@ 777 su$@U serout DHN.CDDHc=Lunc6>d X en"ia =Lunc6> al in D en forma serial RETURN X "uel"e al ro!rama rinci al des ues del !osu$

RE:ER#E INDICE

RE:ER#E Pin

Si Pin es entrada H lo con"ierte en salida 7Si es salida H lo con"ierte en entrada 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D:

Output 7 X con"ierte in C en salida RE:ER#E 7 X cam$ia in - a entrada

#ERIN INDICE

#ERIN PinHModeH STimeoutHLa$elHTSc3ual777dHT SItem777T

Reci$e uno m<s Items en Pin H en formato standard asincrnico H usando B $it de datos Hsin aridad % un sto $it 9BN@: 7SERIN es similar al comando Serin de BS@ con el a!re!ado de Timeout 7 Pin automaticamente se con"ierte en entrada 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: Los nom$res Mode 9 7e;7 T.CDD : est<n definidos en el arc6i"o MODEDE0S7B'S 7Para usarlos Ha!re!ue la l?nea U

Include =modedefs7$as>

al comien5o del ro!rama PBP 7 BS@DE0SHB'S % BS.DE0S7B'S %a inclu%en MODEDE0S7B'S 7No lo inclu%a H si %a est< usando al!uno de estos arc6i"os 7Los nJmeros Mode ueden ser usados sin incluir este arc6i"o 7

ode TF7.. T4F..

ode NV . 4

Baud rate F7.. 4F..

#tate :ERD"DERO

Ti5.. TK.. NF7.. N4F.. Ni5.. NK..

F K 7 / 5 9

i5.. K.. F7.. 4F.. i5.. K.. &"$#O

Timeout % La$el son o ciones &ue ueden ser inclu?das ara ermitir al ro!rama continuar si no se reci$e un car<cter durante un cierto tiem o 7 Timeout est< es ecificado en unidades de @ milise!undo 7 La lista de Items de datos a ser reci$ida uede estar recedida or uno m<s calificadores encerrados entre corc6etes 7 SERIN de$e reci$ir estos $%tes en un orden e+acto H antes de reci$ir los datos 7Si al!Jn $%te reci$ido no concuerda con el $%te si!uiente de la secuencia de calificacin Hel roceso de calificacin comien5a nue"amente 9 7e;7 el r+imo 6%te reci$ido es com arado con el rimer Item de la lista de calificacin : 7Un 3ualifier uede ser constanteH"aria$le una cadena de constantes 7 Cada car<cter de una cadena es tratado como un calificador indi"idual 7 Una "e5 &ue se com letan los calificadores H SERIN comien5a a !uardar datos en la "aria$le asociada con cada Item 7Si el nom$re de "aria$le es Jnico Hel "alor del car<cter 'SCII reci$ido es !uardado en la "aria$le 7Si la "aria$le es recedida or el si!no e 7 SERIN con"ierte un "alor decimal en 'SCII % !uarda el resultado en esa "aria$le 7Todos los no( d?!itos reci$idos antes del rimer d?!ito del "alor decimal son i!norados % descartados 7El car<cter no(d?!ito &ue termina el "alor decimal tam$iPn se descarta 7 'un&ue los c6i s con"ertidores de ni"el RS(.-. son comunes % $aratos H las e+celentes es ecificaciones de IEO de los microPIC ermiten e;ecutar muc6as a licaciones sin usar con"ertidores de ni"el 7M<s aJn H se ueden usar entradas in"ertidas 9 N-DD777NLADD: ;unto con un resistor limitador de corriente de ..K7 SERIN @HN.CDDH c='>dHBD X es era 6asta &ue el car<cter ='> sea reci$ido en forma serial en el in @ % coloca el r+imocaracter en BD

#ERINF INDICE
#ERINF DataPin S 0loNPin T HModeHSParit%La$elHT STimeoutHLa$elHTcItem777d Reci$e uno m<s Items en el Pin es ecificado en formato standard asincrnico 7SERIN. es similar al comando Serin de BS. 7DataPin es colocado como entrada en forma autom<tica 70loNPin es o cional % es autom<ticamente colocado como salida 7DataPin % 0loNPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: El in o cional de control de flu;o 0loNPin H uede ser inclu?do ara a%udar a &ue los datos no des$orden la ca acidad del rece tor 7Si se usa H 0loNPin es autom<ticamente 6a$ilitado ara ermitir la transmisin de cada car<cter 7Este estado 6a$ilitado es determinado or la olaridad del dato es ecificado en Mode 7 Mode se usa ara es ecificar el $aud rate % los ar<metros de o eracin de la transferencia serial 7Los @- $its de menor orden seleccionan el $aud rate 7 Bit @- selecciona aridad no aridad 7 Bit @C selecciona ni"el cierto in"ertido 7 Bit @G no se usa 7 Los $its de $aud rate es ecifican el el tiem o de $it en microse!undos (.D 7Para encontrar un "alor dado H use la ecuacin U

9@DDDDDDE$a%d:(.D

'l!unos $aud rate standard se muestran en la ta$la si!uiente U

Baud rate K..

Bits . 8 4F KK4K

5.. 4F.. F7.. 76.. i5.. 4iF..

4575 64K Ki5 466 67 KF INDICE

Bit @- selecciona aridad ar 9$it@-`@: sin aridad 9$it@-`D: 7Normalmente Hlas transmisiones seriales son BN@ 9B $it de datosH sin aridad H@ sto $it: 7Si se selecciona aridad Hlos datos son reci$idos como FE@ 9F $it de datos H aridad ar H@ sto $it: 7 Bit @C selecciona el ni"el de los ins de datos % de control de flu;o 7Si $it @C`D H se reci$en los datos en forma normal H ara usar con los dri"ers RS(.-. 7Si $it @C`@ H los datos se reci$en in"ertidos 7Esto se uede usar ara e"itar usar dri"ers RS(.-. 'l!unois e;em los de Mode son U Mode ` BC 9LADD $aud Hsin aridad H cierto:HMode ` @AFBD 9 .CDD $aud H sin aridad H in"ertido : H Mode ` .FBBL 9 -DD $aud H aridad ar in"ertido : 7 Si se inclu%e Parit%La$el H se saltar< a la eti&ueta indicada si se reci$e un car<cter con error de aridad 7Solo de$e ser usado con aridad ar seleccionada 9$it @-`@: En forma o cional se uede incluir Timeout % La$el ara ermitir &ue el ro!rama continJe si no se reci$e un car<cter dentro de un cierto tiem o 7Timeout se es ecifica en unidades de @ milise!undo 7 SERIN. so orta distintos modificadores H &ue ueden ser com$inados entre s? Hdentro de una declaracin SERIN. ara o$tener distintos formatos 7

odi=icador BIN d4++45e

Operaci3n Recibe digitos binarios

DECd4++/e ?EYd4++7e #1IP n

Recibe digitos decimales Recibe digitos !e(adecimales #altea n caracteres recibidos Recibe una cadena de n caracteres ,opcionalmente terminada en el carQcter c Espera por una secuencia de caracteres Espera por una cadena de caracteres INDICE

#TR "rray:arde

'"IT BD '"IT#TR"rray:ard e

Una "aria$le recedida or BIN "a a reci$ir la re resentacin 'SCII de su "alor $inario 77Por e;em lo Hsi est< es ecificado BIN BD % se reci$e =@DDD> H BD ser< B7 Una "aria$le recedida or DEC "a a reci$ir la re resentacin 'SCII de su "alor decimal 77Por e;em lo Hsi est< es ecificado DEC BD % se reci$e =@.- > H BD ser< @.-7 Una "aria$le recedida or )E/ "a a reci$ir la re resentacin 'SCII de su "alor 6e+adecimal 77Por e;em lo Hsi est< es ecificado )E/ BD % se reci$e =0E > H BD ser< .GC7 S4IP se!uido or un contador H "a a saltear esa cantidad de caracteres en el flu;o de datos 7Por e;em lo H S4IP C saltear< C caracteres 7 STR se!uido or una "aria$le de arra% H un contador % un car<cter o cional de finali5acin H"a a reci$ir una cadena de caracteres 7La lon!itud de la cadena est< determinada or el contador cuando se encuentre el car<cter o cional 7 La lista de items de datos a ser reci$idos H uede estar recedida or uno m<s calificadores entre arentesis des uPs del 2'IT 7 SERIN. de$e reci$ir estos $%tes en un orden e+acto Hantes de reci$ir los datos 7Si al!Jn $%te reci$ido no concuerda con el r+imo en la secuencia de calificacin Hrecomien5a el roceso de calificacin 79 7e;7 el el r+imo $%te reci$ido se com ara con el rimer item en la lista de calificadores :77Un 3ualifier uede ser constante H "aria$le una cadena de constantes HCada car<cter de una cadena es tratado como un calificador indi"idual 7 2'ITSTR uede ser usado como 2'IT anteriormente H ara for5ar a SERIN. a es erar or una cadena de caracteres de un determinado lar!o Hantes de se!uir adelante 7

Una "e5 &ue los calificadores 2'IT % 2'ITSTR est<n cum limentados H SERIN> comien5a a !uardar los datos en las "aria$les asociadas con cada Item 7Si se usa solo el nom$re de la "aria$le H se !uarda el "alor del car<cter 'SCII 7 Si la "aria$le est< recedida or BINHDEC g )E/ H SERIN. con"ierte un "alor $inario H decimal 6e+adecimal en su e&ui"alente 'SCII % !uarda el resultado en esa "aria$le 7Todos los no(d?6itos reci$idos antes &ue el rimer di!ito del "alor decimal es i!norado % descartado 7El car<cter no(di!ito &ue termina el "alor tam$iPn es descartado 7 BIN H DEC % )E/ ueden estar se!uidos or un nJmero 7reci$en tantos di!itos como 6a% en la entrada 7Sin em$ar!o H si un nJmero si!ue a un modificador HSERIN. siem re reci$ir< ese nJmero de d?!itos H salteando d?!itos adicionales si es necesario 7 SERIN. asume un "alor de oscilador de C M65 cuando !enera sus tiem os de $it 7Para mantener los "alores de $aud rate adecuados con otro oscilador H ase!Jrese de usar DE0INE OSC con el nue"o "alor de oscilador 7 'un&ue los c6i s con"ertidores de ni"el RS(.-. son comunes % $aratos !racias a la im lementacin de corriente RS(.-. % las e+celentes es ecificaciones de IEO del microPIC H no se re&uieren con"ertidores de ni"el en muc6as a licaciones 7 Se uede usar TTL in"ertido 9 Mode $it@C ` @ : 7Se su!iere el uso de un resistor limitador de corriente 9se su one &ue RS(.-. es tolerante a los cortocircuitos :7

#ERINF 4,4596.,G0ait BJ"JD,B.L X es era 6asta &ue el car<cter ='> sea reci$ido en forma serial en Pin@ % one el r+imo car<cter en BD #ERINF PORT"+4 ,67,Gs2ip F,dec7 B.L X saltea . caracteres % toma un nJmero decimal de C d?!itos #ERINF PORT"+4+. ,67,4..,tlabel,G0ait BH(J,b.D,str arL

#EROUT INDICE

SEROUT PinHModeHcItemcHItem777Td

En"?a uno m<s Items a Pin H en formato standard asincrnico usando B $its de datos H sin aridad % @ sto $it 9BN@: 7SEROUT es similar al comando Serout de BS@ 7Pin es

autom<ticamente colocado como salida 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: Los nom$res Mode 9 7e;7 T.CDD: est<n definidos en el arc6i"o MODEDE0S7B'S 7 Para usarlos Ha!re!ue la l?nea U

Include =modedefs7$as>

al comien5o de su ro!rama PBP 7 BS@DE0S7B'S % BS.DE0S7B'S %a inclu%en MODEDE0S7B'S 7 No lo inclu%a Hsi %a est< usando uno de ellos 7Los nJmeros Mode ueden ser usados sin incluir este arc6i"o 7

ode TF7.. T4F.. Ti5.. TK.. NF7.. N4F.. Ni5.. NK.. OTF7.. . 4 F K 7 / 5 9 6

ode NV

Baud rate F7.. 4F.. i5.. K.. F7.. 4F.. i5.. K.. F7..

Estado $$E:"DO " CIERTO

$$E:"DO " IN:ERTIDO

"BIERTO CIERTO

OT4F.. OTi5.. OTK.. ONF7.. ON4F.. ONi5.. ONK..

i 4. 44 4F 4K 47 4/

4F.. i5.. K.. F7.. 4F.. i5.. K.. INDICE "BIERTO IN:ERTIDO

SEROUT so orta - ti os distintos de datos H &ue ueden ser com$inados li$remente dentro de una declaracin SEROUT 7 Una cadena de constantes es en"iada como una cadena de caracteres literales 7 Un "alor numPrico 9constante "aria$le : "a a en"iar el corres ondiente car<cter 'SCII 7M<s aJn H @- es retorno de carro 9 Carria!e Return CR : % @D es a"ance de l?nea 9 Line 0eed L0 : 7 Un "alor numPrico recedido or el si!no e "a a en"iar la re resentacin 'SCII de su "alor decimal 7Por e;em lo H si 2D`@.- Hentonces e2D 9 e@.-: "a a en"iar =@>H>.>H>-> 7

SEROUT asume un "alor de oscilador de C M65 cuando !enera sus tiem os de $it 7Para mantener los "alores de $aud rate adecuados con otro oscilador H ase!Jrese de usar DE0INE OSC con el nue"o "alor de oscilador 7 En al!unos casos Hlos ran!os de transmisin de SEROUT ueden resentar los caracteres demasiado r< idamente en el dis ositi"i rece tor 7Un DE0INE a!re!a tiem o entre caracteres en la transmisin de salida 7Esto ermite un tiem o adicional entre caracteres a medida &ue son transmitidos 7Se uede lo!rar una demora entre cada car<cter transmitido de @ a AGG-G microse!undos 9 7DD@ a AGHG-G milise!undos : 7 Por e;em lo H ara ausar @ milise!undo entre cada car<cter transmitido U DE0INE C)'R[P'CIN, @DDD

'un&ue los c6i s con"ertidores de ni"el RS(.-. son comunes % $aratos !racias a la im lementacin de corriente RS(.-. % las e+celentes es ecificaciones de IEO del microPIC H no se re&uieren con"ertidores de ni"el en muc6as a licaciones 7 Se uede usar TTL in"ertido 9 N-DD 777NLADD : 7Se su!iere el uso de un resistor limitador de corriente de @4 9se su one &ue RS(.-. es tolerante a los cortocircuitos :7

#EROUT .,NF7..,GhB.,4.L X en"?a el "alor 'SCII de BD Hse!uido or un L0 al in D H en forma serial

#EROUTF INDICE
#EROUTF DataPin S 0loNPin T HModeHSPaceHT STimeoutHLa$elHTcItem777d En"?a uno m<s Items al Pin es ecificado en formato standard asincrnico 7SEROUT. es similar al comando Serout de BS. 7DataPin es colocado como salida en forma autom<tica 70loNPin es o cional % es autom<ticamente colocado como entrada 7DataPin % 0loNPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: El in o cional de control de flu;o 0loNPin H uede ser inclu?do ara a%udar a &ue los datos no des$orden la ca acidad del rece tor 7Si se usa H los datos seriales no ser<n en"iados 6asta &ue 0loNPin estP en el estado adecuado 7 7Este estado es determinado or la olaridad del dato es ecificado en Mode 7 Como o cin se uede incluir Timeout % La$el ara ermitir continuar al ro!rama si el 0loNPin no cam$ia al estado de 6a$ilitacin dentro de un cierto tiem o 7Timeout esta es ecificado en unidades de @ milise!undo 7 En al!unos casos Hlos ran!os de transmisin de SEROUT. ueden resentar los datos demasiado r< idamente al dis ositi"o rece tor 7Puede no desearse usar un in e+tra ara control de flu;o 7La o cin Pace se uede usar ara a!re!ar tiem o entre cada car<cter durante la transmisin 7La demora uede ser de @ a AGG-G milise!undos entre cada car<cter transmitido 7 Mode se usa ara es ecificar el $aud rate % los ar<metros de o eracin de la transferencia serial 7Los @- $its de menor orden seleccionan el $aud rate 7 Bit @- selecciona aridad no aridad 7 Bit @C selecciona ni"el cierto in"ertido 7 Bit @G selecciona si est< a$ierto no7 Los $its de $aud rate es ecifican el el tiem o de $it en microse!undos (.D 7Para encontrar un "alor dado H use la ecuacin U

9@DDDDDDE$a%d:(.D

'l!unos $aud rate standard se muestran en la ta$la si!uiente U

Baud rate K.. 5.. 4F.. F7.. 76.. i5.. 4iF..

Bits . 8 4F KK4K 4575 64K Ki5 466 67 KF

Bit @- selecciona aridad ar 9$it@-`@: sin aridad 9$it@-`D: 7Normalmente Hlas transmisiones seriales son BN@ 9B $it de datosH sin aridad H@ sto $it: 7Si se selecciona aridad Hlos datos son en"iados como FE@ 9F $it de datos H aridad ar H@ sto $it: 7 Bit @C selecciona el ni"el de los ins de datos % de control de flu;o 7Si $it @C`D H se en"ian los datos en forma normal H ara usar con los dri"ers RS(.-. 7Si $it @C`@ H los datos se en"ian in"ertidos 7Esto se uede usar ara e"itar usar dri"ers RS(.-. Bit @G selecciona si el in de datos est< siem re con car!a 9$it@G`D: si &ueda a$ierto en uno de los estados 9$it@G`@:7El modo a$ierto uede usarse ara conectar "arios dis ositi"os ;untos en el mismo $us serial 7 'l!unos e;em los de Mode son U Mode ` BC 9LADD $aud Hsin aridad H cierto H con car!a :HMode ` @AFBD 9 .CDD $aud H sin aridad H in"ertido Hcon car!a : H Mode ` ADAGF 9 -DD $aud H aridad arH in"ertido H a$ierto: 7

SEROUT. so orta distintos modificadores H &ue ueden ser com$inados entre s? Hdentro de una declaracin SEROUT. ara o$tener distintos formatos 7

odi=icador dIed#eBIN d4++45e dIed#eDECd4++/e dIed#e?EYd4++7e REP c n #TR "rray:arde

Operaci3n En<ia digitos binarios En<ia digitos decimales En<ia digitos !e(adecimales En<ia el caracter c repetido n <eces En<ia una cadena de n caracteres

Una cadena de constantes es en"iada como una cadena de caracteres literales 7 Un "alor numPrico 9constante "aria$le : "a a en"iar el corres ondiente car<cter 'SCII 7M<s aJn H @- es retorno de carro 9 Carria!e Return CR : % @D es a"ance de l?nea 9 Line 0eed L0 : 7 Un "alor numPrico recedido or BIN "a a en"iar la re resentacin 'SCII de su "alor $inario 77Por e;em lo Hsi BD`B H entonces BIN BD "a a en"iar =@DDD> Un "alor numPrico recedido or DEC "a a en"iar la re resentacin 'SCII de su "alor decimal 77Por e;em lo Hsi BD`@.- H entonces DEC BD "a a en"iar >@.- > Un "alor numPrico recedido or )E/ "a a en"iar la re resentacin 'SCII de su "alor 6e+adecimal 77Por e;em lo Hsi BD`.GC H entonces )E/ BD en"ia =0E >7 REP se!uido or un car<cter % un contador H "a a re etir el car<cter la cantidad de "eces &ue indi&ue el contador 7Por e;em lo H REP =D>X C en"iar< =DDDD> STR se!uido or una "aria$le de arra% H % un contador o cional H"a a en"iar una cadena de caracteres 7La lon!itud de la cadena est< determinada or el contador cuando se encuentre un car<cter D en la cadena 7 BIN HDEC % )E/ ueden estar recedidos H se!uidos or "arios ar<metros o cionales 7 Si al!uno de ellos est< recedido or una I 9 or indicado :7la salida estar< recedida or

al!uno de los s?m$olos ] H e H ^ ara indicar &ue el "alor si!uiente es $inario H decimal 6e+adecimal 7 Si al!uno est< recedido or una s 9 or si!no: Hla salida estar< recedida or = ( = H si el $it de alto orden del dato est< alto 7Esto ermite la transmisin de nJmeros ne!ati"os 7Recuerde &ue todas las o eraciones u com araciones de PBP son sin si!no 7Sin em$ar!o Hlas matem<ticas sin si!no ueden lle"ar a resultados con si!no 7Por e;em lo H BD ` L ( @D 7El resultado de DEC BD ser< =.GG> 7En"iando sDEC BD dar?a =(@> H dado &ue se en"?a el $it de alto orden 7 BIN H DEC % )E/ tam$iPn ueden estar acom aRados de un nJmero 7Normalmente H estos modificadores muestran e+actamente tantos d?!itos como sean necesarios 9sin en"iar los ceros a la i5&uierda:7Sin em$ar!o H si un n umero si!ue a un modificador H SEROUT. siem re ese nJmero de d?!itos H a!re!ando tantos ceros al comien5o Hcomo sea necesario 7'dem<s H a;usta cual&uier $it e+tra de orden su erior7P7e;7 BINA B ser?a en"iado como =DD@DDD> % BIN. B como =DD> 7 Se uede usar cual&uier com$inacin de modificadores simult<neamente 7P7e;7 ISDECC BD 7 'un&ue los c6i s con"ertidores de ni"el RS(.-. son comunes % $aratos !racias a la im lementacin de corriente RS(.-. % las e+celentes es ecificaciones de IEO del microPIC H no se re&uieren con"ertidores de ni"el en muc6as a licaciones 7 Se uede usar TTL in"ertido 9 N-DD 777NLADD : 7Se su!iere el uso de un resistor limitador de corriente 9se su one &ue RS(.-. es tolerante a los cortocircuitos :7

#EROUTF .,4596.,Gdec B.,4.L X en"?a el "alor 'SCII de BD Hse!uido or un L0 al in D H en forma serial a .CDD $aud #EROUTF PORT"+4,67 ,GHB.;.J,i!e(7 B.L X en"?a =BD ` D> se!uido or el "alor $inario de BD Ha PORT' in@ Hen forma serial H a LADD $aud

#?I&TIN INDICE
#?I&TIN DataPinHClocKPinHModeH c*arST777d

El ClocKPin H des la5a en forma sincrnica los $its en DataPin % !uarda los $%tes reci$idos en *ar 7 ClocKPin % DataPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: 9en forma o cional: es ecifica el nJmero de $its a ser des la5ado 7Si no se es ecifica H se des la5an B $its H inde endientemente del ti o de "aria$le 7 Los nom$res Mode 9 7e;7 MSBPRE: est<n definidos en el arc6i"o MODEDE0S7B'S 7 Para usarlos Ha!re!ue la l?nea U

Include =modedefs7$as>

al comien5o de su ro!rama PBP 7 BS@DE0S7B'S % BS.DE0S7B'S %a inclu%en MODEDE0S7B'S 7 No lo inclu%a Hsi %a est< usando uno de ellos 7Los nJmeros Mode ueden ser usados sin incluir este arc6i"o 7

ode

ode NV

Operaci3n Primero desplaza datos en el bit superior ,lee datos antes de mandar cloc2 Primero desplaza datos en el bit in=erior , lee datos antes de mandar cloc2 Primero desplaza datos en el bit superior ,lee datos despujs de mandar cloc2 Primero desplaza datos en el bit in=erior , lee datos despujs de mandar cloc2

#BPRE

$#BPRE

#BPO#T

$#BPO#T

#?I&TIN .,4, #BPRE,GB.L

#?I&TOUT INDICE

#?I&TOUT DataPinHClocKPinHModeH c*arST777d

Des la5a en forma sincrnica el contenido de *ar so$re DataPin % ClocKPin 7 ClocKPin % DataPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: 9en forma o cional: es ecifica el nJmero de $its a ser des la5ado 7Si no se es ecifica H se des la5an B $its H inde endientemente del ti o de "aria$le 7 Los nom$res Mode 9 7e;7 LSB0IRST: est<n definidos en el arc6i"o MODEDE0S7B'S 7 Para usarlos Ha!re!ue la l?nea U

Include =modedefs7$as>

al comien5o de su ro!rama PBP 7 BS@DE0S7B'S % BS.DE0S7B'S %a inclu%en MODEDE0S7B'S 7 No lo inclu%a Hsi %a est< usando uno de ellos 7Los nJmeros Mode ueden ser usados sin incluir este arc6i"o 7

ode $#B&IR#T #B&IR#T

ode NV . 4

Operaci3n Primero desplaza datos del bit in=erior Primero desplaza datos del bit superior

#?I&TOUT .,4, #B&IR#T,GB.L #?I&TOUT PORT"+4,PORT"+F,4,G0ord<ar 7L

#$EEP INDICE

#$EEP Period

Coloca al micro controlador en modo de $a;a otencia or eriodo se!undos 7 eriodo tiene @A $it H or lo &ue los retardos ueden ser de 6asta AGG-G se!undos 9a ro+7 @B 6oras:7 SLEEP usa el 2atc6Do! Timer H or lo &ue es inde endiente de la frecuencia del oscilador utili5ado 7La !ranulacin es a ro+imadamente .7- se!undos % uede "ariar de acuerdo al dis ositi"o % la tem eratura 7 Esta "ariacin es distinta a la de B'SIC Stam 7 Se necesit este cam$io H or&ue cuando el micro PIC one a cero 9resetea: el 2atc6Do! Timer H tam$iPn one "alores redefinidos en los re!istros internos 7Estos "alores ueden diferir de los es erados or su ro!rama 7E;ecutando el comando SLEEP sin cali$rar H este aso se de;a de lado 7

#$EEP 5. X duerme or a ro+7 @ minuto

#OUND INDICE

#OUND PinHcNoteHDurationSHNoteHDuration777Td

,enera un tono %Eo ruido $lanco en el Pin es ecificado 7 Pin es autom<ticamente colocado como salida 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: Note D es silencio 7Nte @(@.F son tonos 7Notes @.B(.GG son ruido $lanco 7Los tonos % el ruido $lanco est<n en una escala ascendente 9 7e;7 @ % @.B son las frecuencias menores H @.L % .AA las ma%ores:7Note @ es a ro+7 FBHFC )5 % Note @.F es a ro57 @DDDD )5 7 Duration es D(.GG % determina el lar!o de la nota Hen incrementos de @. milise!undos 7Note % Duration no necesitan ser constantes 7 SOUND entre!a como salida ondas cuadradas con ni"el TTL 7,racias a las caracter?sticas del micro PIC H se uede mane;ar un arlante a tra"Ps de un ca acitor (El "alor del ca acitor de$e ser determinado enfuncin de las frecuencias a usar % la car!a del arlante 7Parlantes ie5o elPctricos ueden ser conectados directamente 7

#OUND PORTB+9,4G4..,4.,/.,4.L Xen"?a . sonidos consecuti"os a inF

#TOP INDICE
#TOP Detiene la e;ecucin del ro!rama H e;ecutando un loo sin fin HNo coloca al micro controlador en modo de $a;a otencia 7El micro controlador tra$a;a i!ual &ue siem re 7

#TOP X en"?a el ro!rama a un loo ( detiene

#'"P INDICE

#'"P *aria$le@H*aria$le.

Intercam$ia los "alores de dos "aria$les 7Normalmente intercam$iar los "alores de dos "aria$les es un roceso tedioso 7S2'P lo 6ace con una sola declaracin Hsin "aria$les intermedias 7Puede ser usado con "aria$les de $itH"%te % Nord 7*aria$les de arra% con ?ndice "aria$le no son ermitidas H ero s? "aria$les de arra% con ?ndice constante 7

Tem ` BD X anteriormente BD`B@ B@`Temo

S2'P BD HB@ Xa6ora

TO--$E INDICE

TO--$E Pin

In"ierte el estado del Pin es ecificado 7 Pin es autom<ticamente colocado como salida 7 Pin uede ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: LoN D X comien5a PinD como $a;o TO--$E . X cam$ia a alto el estado del in D

'?I$E+++'END INDICE

'?I$E Condition Statement 'END E;ecuta las declaraciones Statement en forma re etida Hmientras la condicin Condition sea cierta 7Cuando Condition de;a de ser cierta Hla e;ecucin continua con la declaracin si!uiente al 2END 7Condition uede ser cual&uier e+ resin de com aracin 7 I`@ '?I$E i > ; 4. Serout DHN.CDDHc=NoU>HeiH@-H@Dd 'END

'RITE INDICE

'RITE 'ddressH*alue ,ra$a "alores *alue en el EEPROM incor orado en la direccin 'ddress es ecificada 7 7Esta instruccin solo uede ser usada con un microPIC &ue ten!a un EEPROM incor orado como el PIC@A0BC PIC@ACBC Es usado ara colocar datos en el EEPROM durante el momento de la e;ecucin 7Para !ra$ar datos en el EEPROM durante la ro!ramacin Hse usan las declaraciones D'T' % EEPROM 7 Cada 2RITE se auto re!ula en tiem o % toma a ro+imadamente @D milise!undos e;ecutarlo en un microPIC 7 'RIT /,B. X en"?a el "alor de BD al EEPROM in G

'RITECODE INDICE

YIN INDICE

YIN DataPinHVeroPinHSTimeoutHLa$elHT c*arSH777Td Reci$e datos /(@D % !uarda el )ouse Code % el 4e% Code en *ar7 /IN se usa ara reci$ir informacin de dis ositi"os /(@D 7Los mdulos /(@D est<n dis oni$les en muc6os lu!ares % de distintos ro"eedores 7Se re&uiere una interfase ara conectar el micro controlador a la l?nea de 'C 7Se necesita un T2(G.- ara comunicaciones de dos "?as ara tra$a;ar con /IN 7Este dis ositi"o tiene la interfase a la l?nea de alimentacin % a?sla el micro controlador de la l?nea de 'C 7Como /(@D est< atentado H esta interfase tam$iPn cu$re el licenciamiento 7 DataPin es autom<ticamente con"ertido en entrada ara reci$ir datos de la interfase /( @D 7VeroPin es autom<ticamente con"ertido en entrada ara reci$ir el tiem o de cruce or cero de la interfase /(@D 7'm$os ins ueden ser lle"ados a G "olt con resistores de C7F 4 7 DataPin % VeroPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: En forma o cional se ueden incluir Timeout % La$el ara ermitir continuar el ro!rama Hsi no se reci$en datos en un la so de tiem o determinado 77Timeout est< es ecificado en medios ciclos de la l?nea de 'C 9 a ro+7 B7-- milise!undos :7 /IN solamente rocesa datos en el momento en &ue la l?nea de 'C asa or cero 9en ese momento reci$e VeroPin:7Si no 6a% transiciones en esta l?nea H /IN es erar< &ue las 6a%a 7 Si *ar tiene tamaRo de Nord Hcada cdi!o )ouse Code reci$ido H se !uarda en el $%te su erior del Nord 7Cada cdi!o 4e% Code reci$ido se !uarda en el $%te inferior del Nord 7Si *ar es un $%te H solo se !uarda el 4e% Code 7 El ) use Code es un nJmero D(@G H &ue corres onde al ;ue!o )ouse Code del mdulo /(@D de ' a P 7 El 4e% Code uede ser el nJmero de un mdulo es ec?fico de /(@D la funcin &ue de$e ser reali5ada or un mdulo 7En la r<ctica H rimero se en"?a un comando es ecificando el nJmero de mdulo /(@D Hse!uido or un comando es ecificando la funcin deseada 7'l!unas funciones o eran en todos los mdulos H or lo &ue el nJmero de mdulo es innecesario 7Los e;em los osteriores a%udar<n a clarificar el tema 74e% Code D(@G corres onden a nJmeros de mdulo @(@A 7 /OUT des uPs lista las funciones % la informacin de cone+ionado 7

)ouseKe% "ar Nord loop) YIN PORT"+F,PORT"+.,G!ouse2eyL X o$tiene datos /(@D $cdout T=e,4,J?ouse;J,h!ouse2ey+byte4,J1ey;J,h!ouse2ey+byte. X muestra los datos /(@D en un LCD ,oto loo X or siem re YIN PORT"+F,PORT"+.,4,nodata,G!ouse2eyL X c6e&uea or datos /(@D H si no 6a% "a a nodata

YOUT INDICE

YOUT DataPinHVeroPinHc)ouseCode 4e%CodeST SH777Td

En"?a un )ouseCode se!uido or un 4e%Code H re etidos un nJmero Re eat de "eces en formato /(@D 7Si no se usa Re eat se asume . "eces como m?nimo 7Re eat usualmente se usa con los comandos Bri!6t % Dim 7 YOUT se usa ara en"iar informacin de control a dis ositi"os /(@D 7Los mdulos /(@D est<n dis oni$les en muc6os lu!ares % de distintos ro"eedores 7Se re&uiere una interfase ara conectar el micro controlador a la l?nea de 'C 7Se necesita un T2(G.- ara comunicaciones de dos "?as H un PL(G@- ara en"iar solamente H ara tra$a;ar con YIN 7Estos dis ositi"os tienen la interfase a la l?nea de alimentacin % a?slan el micro controlador de la l?nea de 'C 7Como /(@D est< atentado H esta interfase tam$iPn cu$re el licenciamiento 7 DataPin es autom<ticamente con"ertido en salida ara en"iar datos a la interfase /(@D 7VeroPin es autom<ticamente con"ertido en entrada ara reci$ir el tiem o de cruce or cero de la interfase /(@D 7'm$os ins ueden ser lle"ados a G "olt con resistores de C7F 4 7 DataPin % VeroPin ueden ser una constante H D ( @G H una "aria$le &ue conten!a un nJmero de D(@G 9 7e;7 BD: un nJmero de Pin 9 7e;7 PORT'7D: /OUT solamente rocesa datos en el momento en &ue la l?nea de 'C asa or cero 9en ese momento reci$e VeroPin:7Si no 6a% transiciones en esta l?nea H /IN es erar< &ue las 6a%a 7 El )ouse Code es un nJmero D(@G H &ue corres onde al ;ue!o )ouse Code del mdulo /(@D de ' a P 7El )ouseCode a ro iado de$e ser en"iado como arte de cada comando 7 El 4e% Code uede ser el nJmero de un mdulo es ec?fico de /(@D la funcin &ue de$e ser reali5ada or un mdulo 7En la r<ctica H rimero se en"?a un comando es ecificando el nJmero de mdulo /(@D Hse!uido or un comando es ecificando la funcin deseada 7'l!unas funciones o eran en todos los mdulos H or lo &ue el nJmero de mdulo es innecesario 7Los

e;em los osteriores a%udar<n a clarificar el tema 74e% Code D(@G corres onden a nJmeros de mdulo @(@A 7 Los nom$res 4e%code 9funciones: 9 7e;7 uniton: est<n definidos en el arc6i"o MODEDE0S7B'S 7Para usarlos Ha!re!ue la l?nea U

Include =modedefs7$as> INDICE al comien5o de su ro!rama PBP 7BS@DE0S7B'S % BS.DE0S7B'S %a inclu%en MODEDE0S7B'S 7 No lo inclu%a Hsi %a est< usando uno de ellos 7Los nJmeros 4e%Code ueden ser usados sin incluir este arc6i"o 7

1eyCode unitOn UnitO== UnitsO== $ig!tsOn $ig!tsO== Brig!t Dim

1eyCode NV S4..4. S44.4. S444.. S4.4.. S4.... S4.44. S4444.

Operaci3n Enciende el m3dulo "paga el m3dulo "paga todos los m3dulos Enciende m3dulos de luz "paga m3dulos de luz Qs brillo al m3dulo de luz enos brillo al m3dulo de luz

Conectarse a la interfase /(@D re&uiere C cone+iones 7La salida de la interfase /(@D 9 cruce or cero % datos: es a colector a$ierto % necesita un resistor de a ro+7 C7F 4 conectado a G "olt 7La ta$la si!uiente muestra el +one+ionado U

Cable NV

Color del cable

Cone(i3n

4 F K 7

Negro Roco :erde "marillo

#alida cruce por cero Comun cruce por cero ComPn transmisi3n Y84. Entrada transmisi3n Y84.

T2(G.INDICE

Cable NV 4 F K 7

Color del cable Negro Roco :erde "marillo

Cone(i3n #alida cruce por cero Comun cruce por cero #alida recepci3n Y84. Entrada transmisi3n Y84.

6ouse "ar $%te unit "ar $%te IncKude =modedefsH$as> 6ouse`D X coloca D en 6ouse 9': unit`B X coloca B en unit 9L: X enciende unit B en 6ouse D /OUT PORT'7@HPORT'7DHc6ouse unitH6ouse unitOnd

X a a!a todas las luces en 6ouse D /OUT PORT'7@HPORT'7D Hc6ouse li!6tsOffd X ar adea la lu5 D cada @D se!undos /OUT PORT'7@HPORT'7D Hc6ouseDd loo /OUT PORT'7@ PORT'7D Hc6oused ause @DDDD X es era @D se!undos /OUT PORT'7@ PORT'7D Hc6oused ause @DDDD X es era @D se!undos ,oto loo

E#TRUCTUR" DE UN PRO-R" " CO PI$"DO INDICE


PBP est< diseRado ara ser usado f<cilmente 7Se uede com ilar % e;ecutar ro!ramas !racias al tra$a;o interno de PBP 7'l!unos solo tienen confian5a en un roducto cuando sa$en como tra$a;a internamente H otros son solo curiosos 7 Esta seccin es ara ellos 7 Descri$e los arc6i"os usados % !enerados or PBP % da una idea de lo &ue esta sucediendo 7

"PUNT"R " ENC"BEa"DO# DE#TINO E#PECI&ICO# INDICE


Se usan tres arc6i"os de enca$e5ados destino es ecificos cuando se com ila un ro!rama 7Uno es usado or PBP % los otros dos est<n inclu?dos ara uso del ensam$lador 7 Un arc6i"o con el nom$re del micro controlador Hse!uido or la e+tensin 7B'S contiene la informacin es ec?fica del c6i necesaria ara PBP 7Inclu%e el erfil de memoria del c6i H &ue li$rer?as usa % la definicin de las "aria$les &ue necesita 7Para el PIC@A0BC Hel micro controlador or defecto H se llama @A0BC7B'S 7 Un arc6i"o con el nom$re del micro controlador Hse!uido or la e+tensin 7INC es inclu?do en el arc6i"o !enerado 7'SM ara dar al ensam$lador informacin del c6i Hinclu%endo los ar<metros de confi!uracin 7 7Para el PIC@A0BC Hel micro controlador or defecto H se llama @A0BC7INC 7 0inalmente Hel ensam$lador tiene su arc6i"o include ro io H &ue define las direcciones de los re!istros del micro controlador 7Usualmente se lo llama P@A0BC7INC 7

"RC?I:O# DE $IBRERA" INDICE

P$ tiene un ;ue!o de arc6i"os de li$rer?a &ue contienen todo el cdi!o % los arc6i"os de definicin ara un !ru o articular de micro controladores 7En el caso de los microPIC con nJcleo de @C $it H estos arc6i"os comien5an con el nom$re PBPPIC@C 7 PBPIC@C7LIB contiene todas las su$rutinas en len!ua;e ensam$lador usadas or el com ilador 7PBPPIC@C7M'C contiene todas las macros &ue llaman a estas su$rutinas 7Muc6os comandos de PBP consisten en una macro % una li$rer?a de su$rutina asociadas 7 PBPPIC@C7R'M contiene las declaraciones *'R &ue direccionan la memoria necesitada or la li$rer?a 7 PIC@CE/T7B'S contiene las definiciones e+ternas &ue le dicen a PBP todos los nom$res de los re!istros de un microPIC con nJcleo de @C $its 7

CODI-O -ENER"DO PBP INDICE


Un ro!rama PBP com ilado se constru%e en "arias eta as 7Primero PBP crea el arc6i"o 7'SM 7Lue!o constru%e un arc6i"o 7M'C &ue contiene solo las macros 9tomadas de la li$rer?a: usadas en el arc6i"o 7'SM 7Si 6asta ese momento no e+isten errores H "a al ensam$lador 7 El ensam$lador !enera su ro io ;ue!o de arc6i"os 7Estos inclu%en el arc6i"o final 7)E/ % como o cionales H arc6i"os de listado % de uracin 7

E#TRUCTUR" DE$ "RC?I:O +"#

INDICE

El arc6i"o 7'SM tiene su estructura ro ia 7 Todo de$e ser 6ec6o en un orden determinado ara &ue el tra$a;o funcione correctamente 7 El rimer elemento colocado en el arc6i"o es la definicin de &ue ensam$lador se usar< H se!uida or un INCLUDE ara indicarle al ensam$lador &ue micro rocesador es el destino % darle al!una informacin $<sica H como los datos de confi!uracin 7 Des uPs se listan todas las direcciones de "aria$les % alias 7 Si se solicita H si!ue la iniciali5acin del EEPROM 7 Lue!o se coloca un INCLUDE ara el arc6i"o de macros Hse!uido or un INCLUDE ara las li$rer?as de su$rutinas 7 0inalmente se coloca el cdi!o del ro!rama 7Este cdi!o es sim lemente una lista de las macros &ue fueron !eneradas a artir de las l?neas PBP

OTR"# CON#IDER"CIONE# PBP INDICE


@UE T"N R"PIDO E# #U&ICIENTE ENTE R"PIDO C INDICE

Por defecto PBP !enera ro!ramas so$re la $ase de un microPIC con un cristal de C M65 un resonador cer<mico 7 Todas las instrucciones sensi$les al tiem o H asumen un tiem o de instruccin de @ microse!undo ara sus demoras 7Esto ermite a P'USE @DDD H or e;em lo H es erar @ se!undo % a los comandos SERIN % SEROUT H $aud rates e+actos 7 Sin em$ar!o H uede ser Jtil 6acer funcionar al microPIC a otra frecuencia distinta de C M65 7'un&ue los ro!ramas com ilados son r< idos H es me;or 6acerlos funcionar m<s r< ido 7 O &ui5<s se desea entrada % salida serial con un $aud rate de @L.DD $aud en lu!ar de usar el to e comJn de LADD $aud Los ro!ramas PBP ueden funcionar a frecuencias de clocK distintas de C M65 de dos maneras 7La rimera H es sim lemente usar un oscilador de frecuencia distinta de C M65 % no indicarselo a PBP 7Esta es una tPcnica Jtil si usted rest atencin a lo &ue sucede con las instrucciones de endientes del tiem o 7 Si desea 6acer funcionar el $us serial a @L.DD $aud Hsim lemente cam$ie el cristal de C M65 H or uno de B M65 7Esto H en efecto H 6ace funcionar todo dos "eces m<s r< ido H inclu%endo los comandos SERIN % SEROUT 7Si le indica a los comandos SERIN % SEROUT &ue o eren a LADD $aud H do$lando la "elocidad del oscilador H funcionar<n a @L.DD $aud 7 Sin em$ar!o Hten!a en cuenta &ue comandos como P'USE % SOUND se e;ecutar<n dos "eces m<s r< ido 7 P'USE @DDD slo es erar< medio se!undo con un cristal de B M65 antes de ermitir la continuacin del ro!rama 7 La otra manera es usar una frecuencia de oscilador diferente e indicarselo al PBP 7Esto se 6ace usando DE0INE 7DE0INE H como se demostr con el comando LCDOUT anteriormente H se usa ara indicarle a PBP &ue de$e usar utros ar<metros &ue no son los usados or defecto 7 Normalmente H or defecto PBP usa un oscilador de C M65 7'!re!ando la declaracin U

DE&INE O#C 6 Cerca del comien5o del ro!rama PBP H se asume &ue se usar< un oscilador de B M65 7Las definiciones ace ta$les son U

O#C K

Oscilador usado K+/6 !z

7 6 4. 4F 45 F.

7 6 4. 4F 45 F.

!z !z !z !z !z !z

Indicando a PBP la frecuencia del oscilador se le ermite com ensar % roducir los tiem os correctos ara COUNT HDEBU, HDTM0OUT H0RE3OUT H)SERIN H)SEROUT HI.CRE'D HI.C2RITE HLCDOUT HP'USE HP'USEUS HSERIN HSERIN. HSEROUT H SEROUT. H S)I0TIN HS)I0TOUT HSOUND H/IN % /OUT 7 Cam$iando la frecuencia del oscilador uede ser usado ara me;orar la resolucin de las instrucciones PULSIN HPULSOUT % RCTIME 7' C M65 Ho eran con una resolucin de @D microse!undos 7Si se usa un cristal de .D M65 H la resolucin ser< de . microse!undos 7Pero H el anc6o del ulso es medido en una "aria$le de @A $it 7Con una resolucin de . microse!undos H el m<+imo anc6o de ulso medi$le ser< de @-@DFD microse!undos 7 Iendo en la otra direccin % utili5ando un oscilador de -.FAB 465 es ro$lem<tico 7Puede ser desea$le H si se desea reducir el consumo de otencia 7Los comandos SERIN % SEROUT son inutili5a$les H% el 2atc6Do! Timer uede 6acer &ue el ro!rama recomience slo en cual&uier momento 7E+ erimente si su a licacin funciona con esta "elocidad del oscilador 7

:"$ORE# PREDETER IN"DO# 9SETEOS:DE CON0I,UR'CION INDICE


Como se mencion anteriormente H los "alores or defecto de confi!uracin ara un dis ositi"o en articular Hest<n en el arc6i"o 7INC con el mismo nom$re del dis ositi"o 7Estos "alores ueden ser cam$iados en el mismo momento en &ue el dis ositi"o es ro!ramado 7

El oscilador or defecto es /T en muc6os dis ositi"os (Este es el "alor ara un oscilador de C M65 or defecto 7Si se usa un oscilador m<s ra ido H se de$e cam$iar a )S 7Dis ositi"os con oscilador interno usan INTRC 7 El 2atc6Do! Timer es 6a$ilitado or PBP 7Se usa H ;unto con el rescaler TMRD H en las instrucciones N'P % SLEEP 7Si estas instrucciones no se usan en el ro!rama H uede ser des6a$ilitado % el rescaler usado ara otra funcin 7 La roteccin de cdi!o Code Protect est< 6a$ilitada or defecto H ero uede des6a$ilitarse cuando el dis ositi"o se est< ro!ramando f?sicamente 7 *ea la 6o;a de datos de icroc!ip ara cada dis ositi"o en articular 7

U#O DE R"

INDICE

En !eneral Hno es necesario conocer como PBP distri$u%e la memoria R'M 7PBP se encar!a de todos los detalles ara &ue el ro!ramador no lo ten!a &ue 6acer 7Sin em$ar!o 6a% momentos en &ue es Jtil sa$er como lo 6ace 7 Las "aria$les son !uardadas en los re!istros R'M del microPIC 7La rimer direccin dis oni$le es ^DC ara el micro PIC@A0BC % al!unos de los microPIC menores H% ^.D ara el PIC@ACFC % otros microPIC ma%ores 7RefiPrase al manual de icroc!ip H ara determinar la direccin de comien5o de los re!istros de cada microcrontrolador 7 Las "aria$les son asi!nadas en memoria secuencialmente % en un orden articular 7Primero los arra% de Nord 9si e+isten: Hse!uidos or los arra%s de $%te % $it 7Lue!o se osicionan los Nord % $%tes % finalmente los $its indi"iduales 7Los $its se em a&uetan en $%tes si es osi$le 7Este orden $rinda el me;or a ro"ec6amiento de la memoria dis oni$le 7 Los arra%s de$en estar dentro de un $anco 7No de$en cru5ar los l?mites de un $anco 7Esto limita el tamaRo de un arra% indi"idual 7*ea la seccin re"ia so$re arra%s ara conocer estos l?mites 7 Se uede su!erir a PBP en &ue $anco de$e colocar una "aria$le U

enn% *'R 2ORD B'N4D nicKel *'R 2ORD B'N4@

Si se 6acen solicitudes de un $anco es ec?fico H Pstos son mane;ados rimero 7Si no e+iste lu!ar dentro del $anco solicitado H se usa el rimer es acio dis oni$le % se a"isa lo sucedido 7

Tam$iPn se ueden solicitar direcciones es ec?ficas ara las "aria$les 7En muc6os casos H es me;or de;ar &ue PBP mane;e la distri$ucin de memoria or usted 7Pero en al!unos casos Hcomo el mane;o del re!istro 2 durante un 6andler de interru ciones es necesario definir una direccin fi;a 7Esto uede ser 6ec6o de una manera similar al direccionamiento de un $anco U

2[store *'R BITE ^.D

*arias "aria$les de sistema Husando .C $%tes de memoria Hson autom<ticamente distri$u?das or el com ilador ara el uso de las su$rutinas de li$rer?a 7Estas "aria$les est<n en el arc6i"o PBPPIC@C7R'M % de$en estar en $anco D 7 Las "aria$les de usuario usan el s?m$olo 9 [ : H mientras &ue las "aria$les de sistema no lo 6acen H or lo &ue no interfieren entre s? 7 Las "aria$les BD(B.G % 2D(2@. de B'SIC Stam no son distri$u?das autom<ticamente 7Es me;or crear sus ro ias "aria$les usando la instruccin *'R 7Sin em$ar!o H si desea &ue se creen estas "aria$les Hsim lemente inclu%a el arc6i"o a ro iado H BS@DE0S7B'S g BS.DE0S7B'S al comien5o del ro!rama PBP 7Estas "aria$les se colocan en un es acio se arado % a arte de las dem<s "aria$les &ue usted ueda crear osteriormente 7Es diferente &ue en BS. donde usar "aria$les re(confeccionadas % "aria$les de usuario ocasiona ro$lemas 7 El com ilador uede crear autom<ticamente "aria$les adicionales tem orarias H ara a%udar a resol"er ecuaciones 7Una lista de estas "aria$les Has? como el ma a de memoria com leto H est<n en los arc6i"os !enerados 7'SM % 7LST 7

P"$"BR"# RE#ER:"D"# INDICE


Pala$ras reser"adas son a&uellas &ue son usadas or el com ilador % no ueden ser definidas como nom$res de "aria$le ni eti&ueta 7Estas ala$ras reser"adas ueden ser nom$res de comandos H seudo(o eraciones Hti os de "aria$les o los nom$res de los re!istros del microPIC 7 Las seudo(o eraciones H ti os de "aria$les % ala$ras cla"e de comandos son listadas en cada seccin 7Los nom$res de los re!istros del microPIC son definidos en el arc6i"o PIC@CE/T7B'S 7Si se inclu%en los arc6i"os BS@DE0S7B'S % BS.DE0S7B'S Hlas definiciones dentro de ellos H se con"ierten en ala$ras reser"adas % no de$en ser redefinidas 7

:ID" DE#PUE# DE F1 INDICE


Si H 6a% "ida des uPs de .4 usando el com ilador PBP 7

Los microPIC tienen un es acio de cdi!o se!mentado 7Las instrucciones microPIC Hcomo Call % ,oto %a tienen suficiente cdi!o como ara llenar . 4 de es acio de ro!rama 7Para lle!ar al cdi!o &ue est< fuera del l?mite de . 4 Hel re!istro PCL'T) de$e ser acti"ado antes de cada Call ,oto 7 PBP autom<ticamente setea estos $its PCL'T) or usted 7Sin em$ar!o H 6a% al!unas restricciones 7 La li$rer?a PBP de$e entrar com leta dentro de la <!ina D del es acio de cdi!o 7Normalmente Hno es ro$lema H%a &ue la li$rer?a es el rimer elemento en un ro!rama PBP % la li$rer?a com leta es menor de . 4 7Sin em$ar!o H se de$e restar atencin a esto Hsi se usan li$rer?as adicionales 7 Los 6andler de interru cin de len!ua;e ensam$lador tam$iPn de$en entrar en la <!ina D del es acio de cdi!o 7Esto se lo!ra coloc<ndolos al rinci io del ro!rama PBP 7*ea la r+ima seccin so$re len!ua;e ensam$lador ara ma%or informacin 7 '!re!ar instrucciones ara setear los $its PCL'T) a!re!a o"er6ead al cdi!o !enerado 7PBP "a a setear los $its de PCL'T) ara cual&uier cdi!o &ue cruce el l?mite de . 4 ara cual&uier referencia en los microPIC con m<s de . 4 de es acio de cdi!o 7 )a% instrucciones PBP es ec?ficas ara a%udar al uso de m<s de . 4 7 BR'NC)L se cre ara ermitir saltos a eti&uetas &ue est<n del otro lado del l?mite de . 4 7Si el microPIC tiene . 4 menos de es acio de cdi!o Hse de$e usar BR'NC) H %a &ue ocu a menos es acio &ue BR'NC)L 7Si el micro controlador tiene m<s de . 4 de es acio de cdi!o H% no est< se!uro de &ue los saltos siem re ser<n en la misma <!ina H use BR'NC)L 7 El ensam$lador uede en"iar un a"iso acerca de &ue el l?mite de <!ina 6a sido cru5ado 7Esto es normal % es aconse;a$le &ue usted controle or cual&uier BR'NC) &ue cruce el l?mite de <!ina 7

PRO-R" "CION EN $EN-U"kE EN#" B$"DOR INDICE


Las rutinas en len!ua;e ensam$lador ueden ser una Jtil a%uda ara un ro!rama de PBP Com iler 7'un&ue muc6as tareas ueden ser 6ec6as com letamente en PBP 76a% casos en &ue uede ser necesario un tra$a;o m<s r< ido H usar un es acio de cdi!o m<s e&ueRo diferente a como lo 6ace el com ilador 7En esos momentos es Jtil tener las osi$ilidades de un ensam$lador en l?nea 7 Puede ser $eneficioso escri$ir r< idamente un ro!rama usando PBP % lue!o colocar unas ocas l?neas de cdi!o ensam$lador ara aumentar su funcionalidad 7Estos cdi!os adicionales ueden ser insertados directamente en el ro!rama PBP inclu?dos en otro arc6i"o 7

DO# EN#" B$"DORE# 8 #IN DE OR" INDICE

PBP rimero com ila el ro!rama en len!ua;e ensam$lado % lue!o comien5a autom<ticamente un ensam$lador 7Esto con"ierte la salida del ensam$lador en el arc6i"o final 7)E/ &ue uede ser ro!ramado dentro de un micro controlador 7 Se uede usar dos ensam$ladores distintos con PBP U PM H nuestro PICmicro Macro 'ssem$ler H % MP'SM Hel ensam$lador de Microc6i 7PM est< inclu?do con el com ilador mientras &ue MP'SM de$e ser o$tenido directamente de icroc!ip H"?a Internet est< inclu?do en sus ro!ramadores microPic 7 )a% $eneficios % contras en el uso de cada uno de ellos 7PM est< a mano H or&ue est< inclu?do "omo arte de PBP 7Es m<s r< ido &ue MP'SM % uede ensam$lar ro!ramas m<s !randes en DOS 7PM inclu%e un ;ue!o de instrucciones estilo BGD@ &ue es m<s intuiti"o &ue los mnemnicos usados or MP'SM 7Informacin com leta acerca del PICmicro Macro 'ssem$ler "ea el arc6i"o PM7T/T en el disco7 MP'SM H tiene la osi$ilidad de crear un arc6i"o 7COD 7Este arc6i"o contiene informacin adicional &ue uede ser mu% Jtil con simuladores % emuladores 7MP'SM es tam$iPn m<s com ati$le con la am lia "ariedad de e;em los en len!ua;e ensam$lador &ue 6a% en Internet H % en los manuales de Microc6i 7 PBP or defecto usa PM 7Para usar MP'SM Hsim lemente co ie todos los arc6i"os MP'SM en su ro io su$directorio H ro$a$lemente llamado MP'SM 7Este su$directorio tam$iPn de$e estar en la ruta 9P'T): de DOS 7 MP'SM se uede usar de dos maneras 7Si se usa la o cin de l?nea de comando =(am asm>H MP'SM ser< comen5ado si!uiendo a la com ilacin ara com letar el roceso 7MP'SM muestra su ro ia antalla con el ro!reso de la tarea 7 PBP 8ampasm =ilename En forma alternati"a H la o cin de l?nea de comando =(am > comen5ar< MP'SM en modo silencioso % solo mostrar< si 6a% errores 7Sin em$ar!o el dis arador consume memoria adicional &ue no est< dis oni$le ara MP'SM 7 PBP 8amp =ilename Para dis oner del m<+imo de memoria ara MP'SM H se de$e usar la o cin =( am asm> la "ersin 2indoNs de MP'SM 7 En cual&uier caso H MP'SM no est< incluida en PBP % de$e ser o$tenida de Microc6i 7

PRO-R" "NDO EN $EN-U"kE EN#" B$"DOR INDICE


Los ro!rama s PBP ueden una l?nea sim le de len!ua;e ensam$lador recedida or un s?m$olo 9b: H una m<s l?neas de cdi!o ensam$lador recedidas or la ala$ra cla"e 'SM % terminada or la ala$ra cla"e END'SM 7 'm$as H a arecen solas en sus res ecti"as l?neas 7

1 $sf PORT'H D "sm $sf ST'TUSHRPD $cf TRIS'H D $cf ST'TUSHRPD Endasm Las l?neas de ensam$lador son co iadas e+actamente dentro del arc6i"o ensam$lador de salida 7Esto le ermite al ro!rama PBP usar todas las "enta;as de PM 7Sin em$ar!o Hre&uiere &ue el ro!ramador estP familiari5ado con las li$rer?as PBP 7 Las con"enciones PBP son similares a la de otros com iladores comerciales % no ser?an ro$lema ara un ro!ramador e+ erimentado 7 Todos los nom$res identificatorios definidos en un ro!rama PBP son definidos en forma similar en el ensam$lador H ero recedidos or un 9 [ : Esto ermite el acceso a "aria$les de usuario H constantes % aJn a direcciones eti&uetadas en ensam$lador 7 Cual&uier nom$re definido en ensam$lador &ue comience con un 9[: tiene la osi$ilidad de conflictuar con un s?m$olo !enerado or PBP 7 h Si se e"itan los conflictos H se uede acceder a estos "alores marcados or el ensam$lador H desde PBP 8 7 No 7Recuerde &ue los nom$res con 9[: !enerados or PBP son solo im<!enes de la informacin actual definida en el com ilador 7Como el ensam$lado en l?nea es co iado directamente al arc6i"o de salida % no es rocesado or el com ilador H Pste i!nora cual&uier informacin de ti o "alor de los s?m$olos ensam$ladores 7Si las "aria$les son com artidas or el ensam$lador % PBP Hde$en ser definidas en PBP 7 Tam$iPn ueden tener conflictos H s?m$olos &ue no comiencen con 9[: 7El ro$lema son los identificadores internos de las li$rer?as 7'fortunadamente H muc6os de ellos contienen un =8> 6acen referencia a uno de los re!istros de tra$a;o 9como RD: 7E"itar esos nom$res es e"itar ro$lemas 7Si usted tiene un conflicto de nom$res Hel com ilador re orta las definiciones du licadas como un error 7 En len!ua;e ensam$lador el desi!nador de comentarios cam$ia del 9X : de PBP a 9U: 7 X comentario de PBP U comentario de len!ua;e ensam$lador

UBIC"CI%N DE$ EN#" B$"DOR EN $INE" INDICE

Las declaraciones PBP se e;ecutan se!Jn su orden de a aricin en el ro!rama fuente 7El cdi!o se or!ani5a de la si!uiente manera U Comen5ando en la u$icacin D H "ector de reset HPBP inserta un cdi!o de arran&ue se!uido or un salto a INIT 7Des uPs se !uardan las li$rer?as de su$rutina utili5adas 7'l final de las li$rer?as est< INIT H dnde se com leta una iniciali5acin adicional 70inalmente Hen la eti&ueta M'IN H se a!re!a el cdi!o com ilado PBP La rimer l?nea e;ecuta$le &ue a arece en el fuente PBP es donde se em ie5a a e;ecutar el ro!rama 7Esa declaracin a arece des uPs del arran&ue del controlador H las li$rer?as de cdi!o % la eti&ueta M'IN 7 La tendencia de los ro!ramadores es a u$icar sus ro ias li$rer?as usando el ensam$lador en l?nea H antes des uPs de su cdi!o 7 Esto uede crear ro$lemas o$"ios 7Si a arecen antes H las rutinas ensam$ladoras se e;ecutan antes &ue cual&uier instruccin PBP 9al!unos ro!ramadores in"aria$lemente a ro"ec6an esta o cin: 7Si a arecen en la cola del ro!rama la e;ecucin &ue =falla cuando est< or terminar = uede encontrarse e;ecutando rutinas ines eradas7 )a% un ar de factores decisi"os acerca de cual uede ser el me;or lu!ar ara insertar su$rutinas en len!ua;e ensam$lador 7Si todo el ro!rama entra en . 4 9una <!ina de cdi!o: Hcolo&ue sus rutinas ensam$ladoras des uPs del cdi!o PBP 7Si necesita terminar su ro!rama H e+ l?citamente colo&ue un END STOP al final de su cdi!o H en lu!ar de de;arlo flotando en el lim$o 7 Si el ro!rama es ma%or a . 4 H tiene m<s sentido colocar las rutinas en len!ua;e ensam$lador en el comien5o del ro!rama PBP 7Esto las coloca en la rimera <!ina % usted sa$r< donde 6allarlas 7Esta es la forma de colocar las rutinas de interru cin en len!ua;e ensam$lador7 Si las rutinas est<n u$icadas al rinci io Hde$e incluir un ,OTO 9 OMP: rodeando el cdi!o de la rimer declaracin e;ecuta$le PBP 7*ea la seccin de interru ciones 7 El cdi!o ara las rutinas de len!ua;e ensam$lador uede ser inclu?do en su ro!rama en un arc6i"o se arado 7Si una rutina es usada solo or un ro!rama en articular H tiene sentido incluir el cdi!o ensam$lador dentro del arc6i"o fuente PBP 7' esta rutina se uede acceder usando el comando C'LL 7 Si es usada or "arios ro!ramas Hse uede incluir un arc6i"o se arado Hconteniendo las rutinas en len!ua;e ensam$lador H en el lu!ar a ro iado en el fuente PBP 7 "sm Include =m%asm7inc> Endasm

OTRO TOPICO 'CERC' DEL ENS'MBL'DOR

INDICE

Los re!istros del microPIC est<n ordenados en $ancos 7PBP sa$e a &ue $anco de re!istros est< a untando en todo momento 7Sa$e &ue si est< a untando a un re!istro TRIS Hnecesita cam$iar los $its de seleccin de $anco antes de acceder a un ort 7 Sa$e tam$iPn &ue de$e oner en cero los $its de seleccin de $anco antes de efectuar un Call un Oum 7Lo 6ace as? H or&ue no uede sa$er el estado de los $its de seleccin de $anco de la nue"a u$icacin 7 's? H cada "e5 &ue 6a% un cam$io de u$icacin H una eti&ueta &ue uede ser llamada a la cual saltar H one en cero los $its de seleccin de $anco 7 Tam$iPn one en cero los $its de seleccin de $anco antes de cada 'SM % ata;o 1 de ensam$lador 7Una "e5 m<s Hla rutina ensam$ladora no sa$e el estado actual de los $its H or lo &ue son colocados en un estado conocido 7El cdi!o ensam$lador de$e estar se!uro de oner en cero los $its de seleccin de $anco antes de salir H si los 6a alterado 7

INTERRUPCIONE# INDICE
Las interru ciones ueden ser una forma de 6acer &ue su ro!rama sea realmente dif?cil de de urar 7 Las interru ciones son dis aradas or e"entos de 6ardNare H %a sea un in de IEO cam$iando su estado un tiem o terminado cual&uier otro 7Si est< 6a$ilitada 9 or defecto no lo est<: H la interru cin causa &ue el rocesador deten!a lo &ue est< 6aciendo % salte a una rutina es ec?fica en el micro controlador H llamada 6andler de interru ciones 7 Pueden ser dificiles de im lementar adecuadamente H ero tam$iPn ueden ro"eer funciones mu% Jtiles 7 Por e;em lo H una interru cin uede ser usada ara acumular datos seriales de entrada Hmientras el ro!rama rinci al est< 6aciendo otra tarea 79este uso articular re&uiere un micro controlador con un ort serial : 7 )a% muc6as formas de e"itar usar las interru ciones 7Un ollin! r< ido de un in un $it de re!istro 6ace el mismo tra$a;o en forma r< ida 7O se uede "erificar el "alor de una $andera de interru cin sin tener &ue 6a$ilitarlo 7 Sin em$ar!o Hsi usted desea 6acerlo H le damos al!unas ideas de cmo 6acerlo 7 El com ilador PBP tiene dos mecanismos diferentes ara mane;ar interru ciones 7La rimera es sim lemente escri$ir el 6andler de interru cin en ensam$lador % colocarlo en el frente de un ro!rama PBP 7El se!undo mPtodo es usar la declaracin ON INTERRUPT 7Cada mPtodo ser< e+ licado or se arado Hdes uPs de e+ licar las interru ciones en !eneral 7

INTERRUPCIONE# EN -ENER"$ INDICE


Cuando ocurre una interru cin H el microPIC !uarda la direccin de la r+ima instruccin &ue de$er?a e;ecutar en el stacK 9 ila: % salta a la direccin C 7Esto si!nifica &ue se necesita una direccin e+tra en el stacK de 6ardNare H &ue solamente tiene B 7 Las li$rer?as de rutinas de PBP ueden usar 6asta C direcciones del stacK Hellas solas 7Las C restantes est<n reser"adas ara C'LLs % ,OSUBs anidados 7De$e ase!urarse de &ue sus ,OSUB no estPn anidados en m<s de tres ni"eles H % sin C'LL dentro de ellos H ara tener una direccin de stacK dis oni$le ara la direccin de re!reso Si su 6andler de interru ciones usa el stacK 96aciendo un C'LL un ,OSUB H 7e;7: necesitar< es acio adicional dis oni$le en el stacK 7 Des uPs H usted necesita 6a$ilitar las interru ciones a ro iadas 7Eso si!nifica dar "alores al re!istro INTCON 7Setee los $its de 6a$ilitacin necesarios ;unto con el ,lo$al Interu t Ena$le 7Por e;em lo \ INTCON ; S4..4.... 6a$ilita la interru cin ara RBDEINT 7De endiendo de la interru cin deseada H uede necesitar setear el re!istro PIE 7 RefiPrase a los manuales de Microc6i ara informacin adicional acerca de cmo usar las interru ciones 77)a% e;em los del conte+to !eneral del rocesador % de cmo 6a$ilitar una interru cin en articular 7

INTERRUPCIONE# EN B"#IC INDICE


La forma m<s f<cil de escri$ir un 6andler de interru cin Hes escri$irlo en PBP ;unto a una declaracin ON INTERRUPT 7ON INTERRUPT le indica a PBP &ue acti"e su 6andler interno de interru cin 9el de PBP: % salte tan ronto ueda a su 6andler de interru cin B'SIC 9creado or el usuario: des uPs de reici$ir una interru cin 7 Usando ON INTERRUPT H cuando ocurre una interru cin HPBP sim lemente marca el e"ento % "uel"e a la tarea &ue esta$a reali5ando 7 No salta inmediatamente al 6andler 7Como las declaraciones de PBP no son re(entrantes 9PBP de$e terminar con la declaracin en curso antes de e;ecutar otra: uede 6a$er considera$le demora 9latencia: antes de mane;ar a la interru cin 7 Como e;em lo Hdi!amos &ue el ro!rama PBP reciPn comen5 la e;ecucin de P'USE @DDDD cuando ocurre una interru cin 7PBP marca la interru cin % continJa con el P'USE H ueden transcurrir @D se!undos antes de &ue se e;ecute el 6andler de interru cin 7Si se est<n acumulando caracteres en un ort serial H muc6os de ellos ueden erderse 7 Para minimi5ar este ro$lema Huse declaraciones &ue no tomen muc6o tiem o de e;ecucin 7Por e;em lo H en lu!ar de P'USE @DDD use P'USE @ dentro de un loo 0OR777NE/T 7Esto ermite com letar cada declaracin m<s r< idamente % mane;ar cual&uier interru cin endiente 7

Si se necesita un roceso de interru cin m<s r< ido &ue el ro"isto or ON INTERRUPT H se de$en usar interru ciones en len!ua;e ensam$lador 7 Lo &ue sucede cuando se usa ON INTERRUPT es lo si!uiente Uun corto 6andler de interru cin es colocado en la direccin C del microPIC 7Este 6andler de interru cin es sim lemente un RETURN 7 Esto en"?a el ro!rama de "uelta a lo &ue esta$a 6aciendo antes de ocurrir la interru cin 7No re&uiere !uardar nin!Jn conte+to del rocesador 7Lo &ue esto no 6ace es re(6a$ilitar el ,lo$al Interru ts H como 6ace el Retfie 7 Un Call a una e&ueRa su$rutina es colocado des uPs de cada declaracin en el ro!rama PBP cuando se encuentra un ON INTERRUPT 7Esta e&ueRa su$rutina "erifica el estado del $it de ,lo$al Interru t Ena$le 7si est< a a!ado 6a% una interru cin endiente H or lo &ue a unta al 6andler de interru cin del usuario 77Si no el ro!rama continJa con Ra r+ima declaracin B'SIC H des uPs de lo cual se "erifica nue"amente el $it ,IE H % as? sucesi"amente 7 Cuando se encuentra una declaracin RESUME des uPs del 6andler de interru cin B'SIC H setea el $it ,IE ara re6a$ilitar las interru ciones % "uel"e donde esta$a el ro!rama cuando ocurri la interru cin 7Si se indica en RESUME una eti&ueta 6acia donde saltar Hla e;ecucin continuar< en esa direccin 7En ese caso H se ierden todas las direcciones re"ias de re!reso 7 DIS'BLE detiene PBP insertando un Call al "erificador de interru cin des uPs de cada declaracin 7Esto ermite &ue se e;ecuten secciones de cdi!o sin la osi$ilidad de ser interrum idas 7EN'BLE ermite la insercin ara continuar 7 DIS'BLE de$e ser colocado antes &ue el 6andler de interru cin ara &ue Pste no sea arrancado cada "e5 &ue se c6e&uee el $it ,IE 7 Si or al!una ra5n se desea a a!ar las interru ciones des uPs &ue se encuentra un ON INTERRUPT Hno de$e a a!ar el $it ,IE 7' a!ando este $it H se le indica a PBP &ue 6a sucedido una interru cin % esto e;ecutar< el 6andler de interru cin or siem re 7En su lu!ar 6a!a U INTCON ; T6. Esto des6a$ilita todas las interru ciones indi"iduales H ero de;a seteado el $it -IE7 Una nota final acerca de las interru ciones en B'SIC 7Si el ro!rama usa U loop) goto loop % es era ser interrum ido Heso no suceder< 7Recuerde &ue la $andera de interru cin es c6e&ueada des uPs de cada instruccin 7Realmente no 6a% un lu!ar donde c6e&uear des uPs de un ,OTO 7 Inmediatamente salta al loo H sin c6e&uear la interru cin 7De$e colocarse al!una declaracin dentro del loo H ara &ue 6a%a un c6e&ueo de interru ciones 7

INTERRUPCIONE# EN EN#" B$"DOR INDICE

Las interru ciones en len!ua;e ensam$lador son un oco m<s com licadas 7 Como usted no tiene idea acerca de la tarea del rocesador cuando fue interrum ido Hno sa$e el estado del re!istro 2 H ni las $anderas de ST'TUS H ni PCL'T) H ni si&uiera a &ue <!ina esta$a a untando 7 Si necesita alterar al!uno de ellos H % es ro$a$le &ue as? sea H de$e !uardar los "alores encontrados H ara restaurarlos antes de 6acer &ue el rocesador "uel"a a la tarea &ue esta$a cum liendo antes de ser interrum ido 7' esto se le llama !uardar % restaurar el conte+to del rocesador 7 Si el conte+to del rocesador al "ol"er de la interru cin no es e+actamente i!ual al &ue ten?a antes de la misma H ueden suceder todo ti o de fallas menores % ma%ores 7 Esto H or su uesto H si!nifica &ue usted ni si&uiera uede usar en forma se!ura las "aria$les del com ilador ara !uardar el conte+to del rocesador 7Usted no uede sa$er cuales son las "aria$les usadas or las li$rer?as en un momento determinado 7 De$e crear "aria$les en el ro!rama PBP con el e+ reso ro sito de !uardar 2 H el re!istro ST'TUS % cual&uier otro re!istro &ue ueda alterar el 6andler de interru cin 7Estas "aria$les no ueden ser usadas or el ro!rama B'SIC 7 'un&ue arece sim le !uardar 2 en un re!istro R'M H en realidad es $astante com licado 7El ro$lema es &ue usted no sa$e a &ue $anco de re!istros est< a untando cuando ocurre la interru cin 7Si usted reser" un lu!ar en el $anco D % el a untador de re!istro corriente est< a untando a $anco @ H or e;em loH uede so$reescri$ir una direccin no deseada 7Por lo tanto Hde$e reser"ar una u$icacin en cada $anco de re!istros R'MH con la misma direccin 7 Como e;em lo H eli;amos el @ACFC9': 7Tiene dos $ancos de re!istros R'M comen5ando en ^.D % ^'D res ecti"amente 7Para estar se!uros Hde$emos reser"ar la misma direccin en am$os $ancos 7En este caso H ele!imos la rimera u$icacin de cada $anco 7El comando *'R nos ermite 6acerlo U N[sa"e "ar $%te ^.D s%stem N[sa"e@ "ar $%te ^aD s%stem Esto le dice al com ilador &ue colo&ue la "aria$le en una u$icacin articular de R'M De esta manera H la !ra$acin de 2 no "a a corrom er datos 7 La rutina de interru cin de$e ser tan corta % r< ida como sea osi$le 7Si demora muc6o en e;ecutarse H uede terminar el tiem o del 2atc6Do! Timer H lo &ue arruinar?a todo 7 La rutina de$e terminar con una instruccin Retfie ara "ol"er desde la interru cin % ermitir al rocesador retomar el ro!rama PBP donde lo 6a$?a a$andonado 7 El me;or lu!ar ara colocar el 6andler de interru cin en len!ua;e ensam$lador es ro$a$lemente el comien5o e+acto del ro!rama PBP 7Esto ase!ura &ue est< u$icado dentro de los rimeros . 4 ara minimi5ar ro$lemas de l?mites 7Se de$e insertar un ,OTO re"io H ara ase!urarse de &ue no se e;ecute al comen5ar el ro!rama 7*ea el e;em lo si!uiente 7

Si el microPIC tiene m<s de . 4 de es acio de cdi!o H e+istir< un ro$lema con el "ector de interru cin Hu$icacin C 7Este cdi!o es un sim le ,OTO al 6andler de interru cin 7El ro$lema uede ocurrir si PCL'T) a unta a la <!ina de cdi!o incorrecta cuando ocurre una interru cin H cuando 6a% m<s de una <!ina de cdi!o 9 m<s de . 4: 7Usted necesita una orcin de cdi!o muc6o m<s sofisticada ara !uardar los re!istros % setear PCL'T) antes del salto al 6andler de interru cin 7Tam$iPn se de$e resetear cuando se termina el 6andler de interru cin 'dem<s de$e informar a PBP &ue est< usando un 6andler de interru cin en len!ua;e ensam$lador % donde encontrarlo 7Esto se lo!ra con un DE0INE U DE0INE INT)'ND La$el La$el es el comien5o de su rutina de interru cin 7PBP coloca un salto a este La$el en la u$icacin C del microPIC 7 X e;em lo de interru cin en len!ua;e ensam$lador led "ar PORTB7@ N[tem "ar $%te ^.D s%stem s[tem "ar $%te $anKD s%stem !oto start X saltee el 6andler de interru cin X defina el 6andler de interru cin define INT)'ND m%int X 6andler de interru cin en len!ua;e ensam$lador \ !uarda 2 % ST'TUS m%int mo"Nf N[tem sNa f ST'TUSH2 clrf ST'TUS mo"Nf s[tem

\ inserte a&u? el cdi!o de interru cin \ !uarda % restaura PCL'T) % 0SR si los us $sf [led \enciende el ledH 9 or e;em lo:

\resta$lecer PCL'T)H status % Re!istros mo"f [tem HN mo"Nf PCL'T) sNa f s[tem HN mo"Nf ST'TUS sNa f N[tem Hf sNa f N[tem HN retfie endasm si es necesario reali5ar al!una traduccion INDICE Copyrig!t lF..4 microEngineering $abs, Inc+ "ll rig!ts reser<ed+

You might also like