100%(1)100% au considerat acest document util (1 vot)
87 vizualizări21 pagini
El PIC16F877 es un microcontrolador de 8 bits fabricado por Microchip con memoria FLASH no volátil. Tiene 5 puertos configurables como entrada o salida y pines que pueden funcionar como entradas análogas o digitales. Requiere un oscilador externo para funcionar a velocidades de hasta 20 MHz y tiene bajo consumo de potencia.
El PIC16F877 es un microcontrolador de 8 bits fabricado por Microchip con memoria FLASH no volátil. Tiene 5 puertos configurables como entrada o salida y pines que pueden funcionar como entradas análogas o digitales. Requiere un oscilador externo para funcionar a velocidades de hasta 20 MHz y tiene bajo consumo de potencia.
El PIC16F877 es un microcontrolador de 8 bits fabricado por Microchip con memoria FLASH no volátil. Tiene 5 puertos configurables como entrada o salida y pines que pueden funcionar como entradas análogas o digitales. Requiere un oscilador externo para funcionar a velocidades de hasta 20 MHz y tiene bajo consumo de potencia.
El microcontrolador PIC16F877 2 El microcontrolador PIC16F877 El PIC16F877 es un microcontrolador con memoria de programa tipo FL!" #memoria no $ol%til& 'ue se puede escri(ir ) (orrar el*ctricamente tantas $eces como se 'uiera+& lo 'ue representa gran ,acilidad en el desarrollo de prototipos ) en su aprendi-aje )a 'ue no se re'uiere (orrarlo con lu- ultra$ioleta como las $ersiones EPR.M& sino 'ue permite reprogramarlo nue$amente sin ser (orrado con anterioridad/ El PIC16F877 es un microcontrolador de Microchip 0echnolog) ,a(ricado en tecnolog1a CM.!& su consumo de potencia es mu) (ajo ) adem%s es completamente est%tico& esto 'uiere decir 'ue el reloj puede detenerse ) los datos de la memoria no se pierden/ El encapsulado m%s com2n para este microcontrolador es el 3IP #3ual In4line Pin+ de 56 pines& propio para usarlo en e7perimentaci8n/ La re,erencia completa es PIC16F877465 para el dispositi$o 'ue utili-a cristal oscilador de hasta 5 M"-& PIC16F877426 para el dispositi$o 'ue utili-a cristal oscilador de hasta 26 M"- o PIC16F8774I para el dispositi$o tipo industrial 'ue puede tra(ajar hasta a 26 M"-/ !in em(argo& ha) otros tipos de encapsulado 'ue se pueden utili-ar seg2n el dise9o ) la aplicaci8n 'ue se 'uiere reali-ar/ Por ejemplo& el encapsulado tipo sur,ace mount #montaje super:cial+ tiene un reducido tama9o ) (ajo costo& 'ue lo hace propio para producciones en serie o para utili-arlo en lugares de espacio mu) reducido/ Configuracin de pines: Las agrupaci8nes de pines de entrada;salida 'ue se adaptan con los peri,*ricos e7ternos 'ue reci(en el nom(re de puertos/ En este microcontrolador est%n organi-ados en cinco puertos& el puerto con 6 l1neas& el puerto < con 8 l1neas& el puerto C con 8 l1neas& el puerto 3 con 8 l1neas ) el puerto E con = l1neas/ Cada pin de esos puertos se puede con:gurar como entrada o como salida independiente programando un par de registros dise9ados para tal :n/ En ese registro un (it en >6> con:gura el pin del puerto correspondiente como salida ) un (it en >1> lo con:gura como entrada/ 3ichos pines del microcontrolador tam(i*n pueden cumplir otras ,unciones especiales& siempre ) cuando se con:guren para ello& seg2n se $er% m%s adelante/ Los pines del puerto ) del puerto E pueden tra(ajar como entradas para el con$ertidor n%logo a 3igital interno #recurso au7iliar con el 'ue cuenta el microcontrolador+& es decir& all1 se podr1a conectar una se9al pro$eniente de un sensor o de un circuito anal8gico para 'ue el microcontrolador la con$ierta en su e'ui$alente digital ) pueda reali-ar alg2n proceso de control o de instrumentaci8n digital/ El pin R<6;I?0 se puede con:gurar por so,t@are para 'ue ,uncione como interrupci8n e7terna& para con:gurarlo se utili-an unos (its de los registros 'ue controlan las interrupciones/ El pin R5;0.CAI del puerto puede ser con:gurado como un pin de entrada;salida o como entrada del tempori-ador;contador/ Cuando este pin se programa como entrada digital& ,unciona como un disparador de !chmitt #!chmitt trigger+& puede reconocer se9ales un poco distorsionadas ) lle$arlas a ni$eles l8gicos #cero ) cinco $oltios+/ Cuando se usa como salida digital se comporta como colector a(ierto #open collector+& por lo tanto& se de(e poner una resistencia de pull4up #resistencia e7terna conectada a un ni$el de cinco $oltios+ para 'ue el circuito pueda proporcionar un ni$el alto/ El puerto E puede controlar la cone7i8n en modo microprocesador con otros dispositi$os utili-ando las l1neas R3 #read+& BR #@rite+ ) C! #chip select+/ En este modo el puerto 3 ,unciona como un (us de datos de 8 (its #pines P!P+/ Para el caso de 'ue sean programados como salida se denominan CModo FuenteD por 'ue suministran corriente ) cuando son programados como entrada se denominan CModo !umideroD por 'ue reci(en corriente/ La m%7ima capacidad de corriente de cada uno de los pines de los puertos en modo sumidero #sinE+ o en modo ,uente #source+ es de 2F m/ La m%7ima capacidad de corriente total de los puertos esG PHER0. PHER0. < PHER0. C PHER0. 3 Modo sumidero 1F6 m 266 m 266 m 266 m Modo ,uente 1F6 m 266 m 266m 266m El consumo de corriente del microcontrolador para su ,uncionamiento depende del $oltaje de operaci8n& la ,recuencia ) de las cargas 'ue tengan sus pines/ Para un oscilador de 5 M"- el consumo es de apro7imadamente 2 mI aun'ue este se puede reducir a 56 microamperios cuando se est% en el modo sleep #en este modo el micro se detiene ) disminu)e el consumo de potencia+/ !e sale de ese estado cuando se produce alguna condici8n especial 'ue $eremos m%s adelante/ El microcontrolador PIC16F877 3escripci8n de los pines del microcontrolador ?om(re pin Pin 3escripci8n R6;?6 2 E;! 3igital o Entrada an%loga 6/ R1;?1 = E;! 3igital o Entrada an%loga 1/ R2;?2 J re, 4 5 E;! 3igital o Entrada an%loga 2/ R=;?=;J re, K F E;! 3igital o Entrada an%loga =/ R5;06CAI 6 <it 5 del puerto #E;! (idireccional +/ 0am(i*n se usa como entrada de reloj al tempori-ador;contador 0MR6/ !alida de colector a(ierto/ RF;!!;?5 7 E;! 3igital o Entrada an%loga 5/ 0am(i*n lo usa el puerto serial s1ncrono/ R<6;I?0 == <it 6 del puerto < #E;! (idireccional+/ <uLer E;!G 00L;!0/ 0am(i*n se usa como entrada de interrupci8n e7terna #I?0+/ R<1 =5 <it 1 del puerto < #E;! (idireccional+/ <uLer E;!G 00L R<2 =F <it 2 del puerto < #E;! (idireccional+/ <uLer E;!G 00L R<=;PMM =6 <it = del puerto < #E;! (idireccional+/ <uLer E;!G 00L #Programaci8n en (ajo $oltaje+ R<5 =7 <it 5 del puerto < #E;! (idireccional+/ <uLer E;!G 00L/ Interrupci8n por cam(io del pin/ R<F =8 <it F del puerto < #E;! (idireccional+/ <uLer E;!G 00L/ Interrupci8n por cam(io del pin/ R<6;PMC =N <it 6 del puerto < #E;! (idireccional+/ <uLer E;!G 00L;!0/ Interrupci8n por cam(io del pin/ Entrada de reloj para programaci8n serial/ R<7;PM3 56 <it 7 del puerto < #E;! (idireccional+/ <uLer E;!G 00L;!0/ Interrupci8n por cam(io del pin/ Entrada de datos para programaci8n serial/ RC6;01.!.;01CAI 1F E;! 3igital/ !alida del oscilador 0imer 1 o entrada de reloj 0imer 1/ RC1;01.!I;CCP2 16 E;! 3igital/ Entrada del oscilador 0imer 1/ Entrada Captura 2I !alida Compara 2I !alida PBM 2 RC2;CCP1 17 E;! 3igital/ Entrada Captura 1I !alida Compara 1I !alida PBM 1 RC=;!CA;!C L 18 E;! 3igital/ L1nea de reloj serial as1ncrono en el modo !PI ) el modo IOC RC5;!3I;!3 2= E;! 3igital/ L1nea de datos en el modo !PI o en el modo IOC RCF;!3. 25 E;! 3igital/ RC6;0P;CA 2F E;! 3igital/ 0ransmisi8n as1ncrona #H!R0+ o reloj s1ncrono #!!P+/ RC7;RP;30 26 E;! 3igital/ Recepci8n as1ncrona #H!R0+ o l1nea de datos #!!P+/ J33 11&=2 Joltaje de alimentaci8n 3C #K+ J!! 12&=1 Re,erencia de $oltaje #M?3+/ 1 Entrada de RE!E0 al microcontrolador/ Joltaje de entrada durante la MCLR programaci8n/ En ni$el (ajo resetea el microcontrolador/ .!C1;CLAI? 1= Entrada oscilador cristal oscilador ; Entrada ,uente de reloj e7terna/ .!C2;CLA.H0 15 !alida oscilador cristal/ .scilador RCG !alida con un Q ,recuencia .!C1 R36;P!P6 1N E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R31;P!P1 26 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R32;P!P2 21 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R3=;P!P= 22 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R35;P!P5 27 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R3F;P!PF 28 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R36;P!P6 2N E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ R37;P!P7 =6 E;! 3igital/ Puede ser puerto paralelo en (us de 8 (its/ RE6;R3;?F 8 E;! 3igital/ Puede se pin de lectura #read+ en modo microprocesador/ RE1;BR;?6 N E;! 3igital/ Puede ser pin de escritura #@rite+ en modo microprocesador/ RE2;C!;?7 16 E;! 3igital/ Puede ser pin de selecci8n de chip #chip select+ en modo microprocesador/ El oscilador e7terno 0odo microcontrolador re'uiere un circuito e7terno 'ue le indi'ue la $elocidad a la 'ue de(e tra(ajar/ Este circuito& 'ue se conoce como oscilador o reloj #circuito 'ue es capa- de con$ertir la corriente continua en una corriente 'ue $ar1a de ,orma peri8dica en el tiempo o alternaI estas oscilaciones pueden ser senoidales& cuadradas& triangulares& etc/+& es mu) simple pero de $ital importancia para el (uen ,uncionamiento del sistema/ El PIC16F877 puede utili-ar cuatro tipos de oscilador di,erentes/ Estos tipos sonG RC/ .scilador ,ormado por una resistencia ) un condensador/ P0/ Cristal #por ejemplo de 1 a 5 M"-+/ "!/ Cristal de cuar-o de alta ,recuencia #por ejemplo 16 a 26 M"-+/ LP/ Cristal para (aja ,recuencia ) (ajo consumo de potencia/ En el momento de programar o C'uemarD el microcontrolador se de(e especi:car 'ue tipo de oscilador se usa/ Esto se hace a tra$*s de unos ,usi(les llamados C,usi(les de con:guraci8nD/ Los impulsos de reloj entran por la patita .!C1;CLAI? ) se di$iden por 5 internamente& dando lugar a las se9ales R1& R2& R= ) R5& mostradas en la Figura F/5/ 3urante un ciclo de instrucci8n& 'ue comprende las 5 se9ales mencionadas& se desarrollan las siguientes operacionesG Para conseguir ejecutar cada instrucci8n en un ciclo de instrucci8n #e7cepto las de salto& 'ue tardan dos+& se aplica la t*cnica de la segmentaci8n o pipe- fne, 'ue consiste en reali-ar en paralelo las dos ,ases 'ue comprende cada instrucci8n/ En realidad& cada instrucci8n se ejecuta en dos ciclosG en el primero se lle$a a ca(o la ,ase de (2s'ueda del c8digo de la instrucci8n en la memoria del programa& ) en el segundo se decodi:ca ) se ejecuta #,ase de ejecuci8n+/ La estructura segmentada del procesador permite reali-ar al mismo tiempo la ,ase de ejecuci8n de una instrucci8n ) la de (2s'ueda de la siguiente/ Cuando la instrucci8n ejecutada corresponde a un salto no se conoce cu%l ser% la siguiente hasta 'ue se complete& por eso en esta situaci8n se sustitu)e la ,ase de (2s'ueda de la siguiente instrucci8n por un ciclo S$ac1oT& originando 'ue las instrucciones de salto tarden en reali-arse dos ciclos de instrucci8n/ El cristal de(e ir acompa9ado de dos condensadores ) se conecta como se muestra en la :guraG !i no se re'uiere mucha precisi8n en el oscilador ) se 'uiere economi-ar dinero& se puede utili-ar una resistencia ) un condensador& como se muestra en la :guraG Reset En los microcontroladores se re'uiere un pin de reset para reiniciar el ,uncionamiento del sistema cuando sea necesario& )a sea por una ,alla 'ue se presente o por'ue as1 se ha)a dise9ado el sistema/ Cuando se produce un reset el contador de programa se carga con la direcci8n 6& apuntando la primera direcci8n del contador de programa donde de(er% estar situada la primera instrucci8n del programa de aplicaci8n/ El pin de reset en los PIC es llamado MCLR #master clear+/ E7isten $arias ,ormas de resetear o reiniciar el sistemaG l encendido #Po@er .n Reset+ Pulso en el pin MCLR durante operaci8n normal Pulso en el pin MCLR durante el modo de (ajo consumo #modo sleep+ El re(ase del conteo del circuito de $igilancia #@atchdog+ durante operaci8n normal El re(ase del conteo del circuito de $igilancia #@atchdog+ durante el modo de (ajo consumo #sleep+ El reset al encendido se consigue gracias a dos tempori-adores/ El primero de ellos es el .!0 #.scillator !tart4Hp 0imerG 0empori-ador de encendido del oscilador+& orientado a mantener el microcontrolador en reset hasta 'ue el oscilador del cristal es esta(le/ El segundo es el PBR0 #Po@er4Hp 0imerG 0empori-ador de encendido+& 'ue pro$ee un retardo :jo de 72 ms #nominal+ en el encendido 2nicamente& dise9ado para mantener el dispositi$o en reset mientras la ,uente se esta(ili-a/ Para utili-ar estos tempori-adores& s8lo (asta con conectar el pin MCLR a la ,uente de alimentaci8n& e$it%ndose utili-ar las tradicionales redes de resistencias e7ternas en el pin de reset/ El reset por MCLR se consigue lle$ando moment%neamente este pin a un estado l8gico (ajo& mientras 'ue el @atchdog B30 produce el reset cuando su tempori-ador re(asa la cuenta& o sea 'ue pasa de 6FFh a 66h/ Cuando se 'uiere tener control so(re el reset del sistema se puede conectar un (ot8n como se muestra en la :gura =/6/ r'uitectura interna del microcontrolador Este t*rmino se re:ere a los (lo'ues ,uncionales internos 'ue con,orman el microcontrolador ) la ,orma en 'ue est%n conectados& por ejemplo la memoria FL!" #de programa+& la memoria RM #de datos+& los puertos& la l8gica de control 'ue permite 'ue todo el conjunto ,uncione& etc/ La :gura =/7 muestra la ar'uitectura general del PIC16F877& en ella se pueden apreciar los di,erentes (lo'ues 'ue lo componen ) la ,orma en 'ue se conectan/ !e muestra la cone7i8n de los puertos& las memorias de datos ) de programa& los (lo'ues especiales como el @atchdog& los tempori-adores de arran'ue& el oscilador& etc/ 0odos los elementos se conectan entre s1 por medio de (uses/ Hn (us es un conjunto de l1neas 'ue transportan in,ormaci8n entre dos o m%s m8dulos/ Jale la pena destacar 'ue el PIC16F877 tiene un (lo'ue especial de memoria de datos de 2F6 ()tes del tipo EEPR.M #igual 'ue una FL!" pero con menos capacidad+& adem%s de los dos (lo'ues de memoria principales 'ue son el de programa ) el de datos o registros/ El PIC16F877 se (asa en la ar'uitectura "ar$ard& en la cual el programa ) los datos se pueden tra(ajar con (uses ) memorias separadas& lo 'ue posi(ilita 'ue las instrucciones ) los datos posean longitudes di,erentes/ Esta misma estructura es la 'ue permite la superposici8n de los ciclos de (2s'ueda ) ejecuci8n de las instrucciones& lo cual se $e reUejado en una ma)or $elocidad del microcontrolador/ Memoria de programa #FL!"+ Es una memoria de 8A de longitud con datos de 15 (its en cada posici8n/ Como es del tipo FL!" se puede programar ) (orrar el*ctricamente& lo 'ue ,acilita el desarrollo de los programas ) la e7perimentaci8n/ En ella se gra(a o almacena el programa o c8digos 'ue el microcontrolador de(e ejecutar/ En la :gura =/8 se muestra el mapa de la memoria de programa/ La memoria de programa est% di$idida en cuatro (ancos o p%ginas de 2A cada uno/ El primero $a de la posici8n de memoria 6666h a la 67FFh& el segundo $a de la 6866h a la 6FFFh& el tercero de la 1666h a la 17FFh ) el cuarto de la 1866h a la 1FFFh/ Jector de reset/ Cuando ocurre un reset al microcontrolador& el contador de programa se pone en ceros #6666"+/ Por esta ra-8n& en la primera direcci8n del programa se de(e escri(ir todo lo relacionado con la iniciaci8n del mismo/ Jector de interrupci8n/ Cuando el microcontrolador reci(e una se9al de interrupci8n& el contador de programa apunta a la direcci8n 65" de la memoria de programa& por eso& all1 se de(e escri(ir toda la programaci8n necesaria para atender dicha interrupci8n/ Pila #!tacE+ Es una -ona de memoria 'ue se encuentra separada tanto de la memoria de programa como de la de datos ) no permiten el acceso por parte del usuario/ !e usan para guardar el $alor del contador de programa cuando se hace un llamado a una su(rutina o cuando se atiende una interrupci8nI luego& cuando el micro regresa a seguir ejecutando su tarea normal& el contador de programa recupera su $alor le)*ndolo nue$amente desde la pila/ El PIC16F877 tiene una pila de 8 ni$eles& esto signi:ca 'ue se pueden anidar 8 llamados a su(rutina sin tener pro(lemas/ 0iene una estructura de tipo LIF. #Last in First out+ por lo 'ue el ultimo dato 'ue se guarda es el primero 'ue sale/ Memoria de datos #RM+ El PIC16F877 posee cuatro (ancos de memoria RM& cada (anco posee 128 ()tes/ 3e estos 128 los primeros =2 #hasta el 1Fh+ son registros 'ue cumplen un prop8sito especial en el control del microcontrolador ) en su con:guraci8n/ Los N6 siguientes son registros de uso general 'ue se pueden usar para guardar los datos temporales de la tarea 'ue se est% ejecutando& :gura =/N/ Resumen de algunos de los registros de con:guraci8n <?C. 6G - 0MR6G Registro del tempori-ador;contador de 8 (its/ - PCLG <)te menos signi:cati$o del contador de programa #PC+/ - !00H!G Contiene (anderas #(its+ 'ue indican el estado del procesador despu*s de una operaci8n aritm*tica;l8gica/ - F!RG Registro de direccionamiento indirecto/ - P.R0& P.R0<& P.R0C& P.R03& P.R0EG Registro de puertos de E;! de datos/ Conectan con los pines ,1sicos del micro/ - PCL0"G <)te alto #m%s signi:cati$o+ del contador de programa #PC+/ - I?0C.?G Registro de control de las interrupciones/ - 3RE!"G Parte alta del resultado de la con$ersi8n ;3/ - 3C.?6G Controla la operaci8n del m8dulo de con$ersi8n ;3 <?C. 1G - .P0I.?G Registro de control de ,recuencia del 0MR6/ - 0RI!& 0RI!<& 0RI!C& 0RI!3/ 0RI!EG Registros de con:guraci8n de la operaci8n de los pines de los puertos/ - 3RE!LG Parte (aja del resultado de la con$ersi8n ;3/ - 3C.?1G Controla la con:guraci8n de los pines de entrada an%loga/ <?C. 2G - 0MR6G Registro del tempori-ador;contador de 8 (its/ - PCLG <)te menos signi:cati$o del contador de programa #PC+/ - F!RG Registro de direccionamiento indirecto/ - EE30G Registro de datos de la memoria EEPR.M/ - EE3RG Registro de direcci8n de la memoria EEPR.M/ - PCL0"G <)te alto #m%s signi:cati$o+ del contador de programa #PC+/ - I?0C.?G Registro de control de las interrupciones/ <?C. =G - .P0I.?G Registro de control de ,recuencia del 0MR6/ - EEC.?1G Control de lectura;escritura de la memoria EEPR.M de datos/ - EEC.?2G ?o es un registro ,1sico/ Funcin de algunos registros especiales: 66h o I?3FG Registro para direccionamiento indirecto de datos/ Este no es un registro disponi(le ,1sicamenteI utili-a el contenido del registro F!R ) los (its RP6 ) RP1 del registro !00H! para seleccionar indirectamente la memoria de datos& la instrucci8n 'ue lo acompa9e determinar% 'ue se de(e reali-ar con el registro se9alado/ 61h o 0MR6/ 0empori-ador;contador de 8 (its/ Este es un contador 'ue se puede incrementar con una se9al e7terna aplicada al pin R5;0.CAI o de acuerdo a una se9al interna pro$eniente del reloj de instrucciones del microcontrolador/ La rata de incremento del registro se puede determinar por medio de un preescalador o di$isor de ,recuencia& locali-ado en el registro .P0I.?/ Como una mejora con respecto a re,erencias anteriores& se le ha agregado la generaci8n de interrupci8n cuando se re(asa la cuenta #el paso de 6FFh a 66h+/ 62h o PCLG Contador de programa& proporciona la direcci8n de memoria en la 'ue se de(e (uscar la instrucci8n a ejecutar/ !e utili-a para direccionar las pala(ras de 15 (its del programa 'ue se encuentra almacenado en la memoria R.MI este contador de programas es de 1= (its de ancho& :gura =/16/ !o(re el ()te (ajo& 'ue corresponde al registro PCL& se puede escri(ir #escri(ir el resultado de una operaci8n de la LH+ o leer directamente& mientras 'ue so(re el ()te alto& no/ El ()te alto se maneja mediante el registro PCL0" #6h+/ nte una condici8n de reset el microcontrolador inicia el contador de programa con todos sus (its en CceroD/ 3urante la ejecuci8n normal del programa& ) dado 'ue todas las instrucciones ocupan s8lo una posici8n de memoria& el contador se incrementa en uno con cada instrucci8n& a menos 'ue se trate de alguna instrucci8n de salto/ Registro PCLATH Registro PCL 12 11 10 9 8 7 6 5 4 3 2 1 6 Bits Incluios en l! instrucci"n# su$iciente %!r! ireccion!r to! l! &e&ori! el PIC16'877 Figura =/16/ Registros 'ue con,orman el Contador de programa/ En una instrucci8n CLL o M.0. la direcci8n de memoria a donde se 'uiere ir& es decir& los (its 12 a 6 del contador de programa se cargan desde el c8digo de operaci8n de la instrucci8n/ En algunas instrucciones donde la parte (aja del contador de programa& es decir los ocho (its (ajos del registro PCL& es el destino& los otros cinco (its se cargan directamente desde el PCL0" #(its 5 a 6+& por ejemplo en el caso de la instrucci8n 33BF/ Esto se de(e tener en cuenta cuando se desea hacer lectura de ta(las usando el comandoG 33BF PC&1 & en este caso se de(e tener en cuenta 'ue la ta(la de(e estar comprendida dentro de un solo (lo'ue de 2F6 ()tes #642FF& 2F64F11& etc/+/ 03h o STATUS: el Registro de estados esta ,ormado por 8 (its ) ocupa la posici8n = de cada (anco/ !us (its tienen tres misiones distintasG contiene la in,ormaci8n del estado aritm*tico de la LH #-& dc& c+& indican por'ue se produjo el ultimo reset #0. ) P3+ ) seleccionan el (anco a acceder en la memoria de datos #IRP&RP. ) RP1+/ lgunos (its los podemos cam(iar manualmente desde el programa pero otros (its se acti$an cuando se dan ciertos procesos& a estos 2ltimos se los denomina Uags o (anderas/
R;B signi:ca 'ue el (it correspondiente se puede leer ) escri(ir& mientras 'ue R signi:ca 'ue solamente puede ser le1do/ 0am(i*n se indica el estado 'ue se esta(lece tras un reset/ <it 7& IRPG !elecci8n del (anco en direccionamiento indirecto/ Este (it junto con el de m%s peso del registro F!R sir$en para determinar el (anco de la memoria de datos seleccionado/ <it 6 ) F& RP6 ) RP1G Register <anE !elect/ !elecci8n de p%gina o (anco de la memoria con direccionamiento directo/ <it 5 #Uag+& 0.G 0ime .ut #0iempo aca(ado+ o !e pone a 1 tras conectar la alimentaci8n al microcontrolador o al ejecutar CLRB30 o !LEEP/ o !e pone a 6 por des(ordamiento del Perro Muardi%n B30/ <it = #Uag+& P3G Po@er 3o@n #pagado+/ o !e pone autom%ticamente a 1 tras conectar la alimentaci8n Jdd o ejecutar CLRB30& 'ue resetea el contador Batch3og/ o !e pone a 6 al ejecutar la instrucci8n !LEEP/ <it 2 #Uag+& VG Cero o 1 W El resultado de una operaci8n aritm*tica o l8gica es 6/ o 6 W El resultado es distinto de 6/ <it 1 #Uag+& 3C #3igit Carr)+/ !e pone en uno cuando la suma de las dos mitades menos signi:cati$as #6 a =er (it+ es ma)or a 1F #(X1111X+ lo cual produce un acarreo del (it = al 5/ <it 6 #Uag+& C #Carr)+/ carreo en el 8Y (it o (it de mas peso/ Es el (it de >acarreo> en operaciones de suma 33BF ) 33LB as1 como tam(i*n el (it de >pido prestado o lle$ada> en las instrucciones de sustracci8n !H<BF ) !H<LB/ 0am(i*n lo emplean las instrucciones RLF ) RRF de rotaci8n de (its/ o !uma 1/ !e pone a 1 cuando se ha producido acarreo en la suma en el (it de ma)or peso con las operaciones 3BF ) 33LB& es decir& cuando el resultado supera el $alor (X11111111X/ 6/ !e pone a 6 si en la suma no se ha producido acarreo/ o Resta 1/ !e pone a 1 si en la resta no se ha producido lle$ada& resultado positi$o/ 6/ !e pone a 6 cuando se ha producido lle$ada en la resta& el resultado en este caso es negati$o/ 65h o F!R #direccionamiento indirecto+G Registro selector de registros/ En el registro F!R se introduce la direcci8n del registro 'ue se 'uiere leer cuando se acceda a I?3F/ F!R act2a como puntero& es decir& en el se guardan $alores 'ue corresponden a la direcci8n de una posici8n de memoria/ !i aumentamos o disminuimos con cual'uier operaci8n el contenido de F!R nos mo$eremos entre las posiciones de memoria/ !i en el programa no se utili-an llamadas indirectas& este registro se puede utili-ar como un registro de prop8sito general/ Para entender mejor el ,uncionamiento de este registro $eamos un programa simple 'ue (orra el contenido de la memoria RM desde la posici8n 26h #66166666+ hasta la posici8n =6h& empleando direccionamiento indirecto/ M.JLB 26h Iiniciali-a el puntero en la posici8n de memoria RM M.JBF F!R I'ue se $a a (orrar ?EP0 CLRF I?3F I(orra el registro inde7ado #es decir el 'ue est% Isiendo direccionado por el F!R& 26h en la primer ejecucion+ I?CF F!R&1 Iincrementa el puntero en uno/ <0F!! F!R&5 Ipregunta por el (it 5 de F!R para $er si )a lleg8 a (orrar la posici8n =6h/ si esta en uno el programa se salta una l1nea ) no entra al M.0./ M.0. ?EP0 Isigue (orrando los registros 'ue ,altan contin2a ////// 6Fh o P.R0G Puerto de Entrada;!alida de 6 (its/ Este puerto& al igual 'ue todos sus similares en los PIC& puede leerse o escri(irse como si se tratara de un registro cual'uiera/ El registro 'ue controla el sentido #entrada o salida+ de los pines de este puerto est% locali-ado en la p%gina 1& en la posici8n 8Fh ) se llama 0RI!/ El puerto tam(i*n puede ser con:gurado para 'ue tra(aje como entradas an%logas para el con$ertidor n%logo a 3igital interno del microcontrolador/ 66h o P.R0<G Puerto de entrada;salida de 8 (its/ l igual 'ue en todos los PIC& este puede leerse o escri(irse como si se tratara de un registro cual'uieraI algunos de sus pines tienen ,unciones alternas en la generaci8n de interrupciones/ El registro de control para la con:guraci8n de la ,unci8n de sus pines se locali-a en la p%gina 1& en la direcci8n 86h ) se llama 0RI!</ Puede ser con:gurado tam(i*n para cumplir otras ,unciones/ 67h o P.R0CG Puerto de entrada;salida de 8 (its/ l igual 'ue en todos los PIC& este puede leerse o escri(irse como si se tratara de un registro cual'uieraI algunos de sus pines tienen ,unciones alternas/ El registro de control para la con:guraci8n de la ,unci8n de sus pines se locali-a en la p%gina 1& en la direcci8n 87h ) se llama 0RI!C/ Puede ser con:gurado tam(i*n para cumplir otras ,unciones/ 68h o P.R03G Puerto de entrada;salida de 8 (its/ l igual 'ue en todos los PIC& este puede leerse o escri(irse como si se tratara de un registro cual'uieraI algunos de sus pines tienen ,unciones alternas cuando se utili-a el micro en modo microprocesador/ El registro de control para la con:guraci8n de la ,unci8n de sus pines se locali-a en la p%gina 1& en la direcci8n 88h ) se llama 0RI!3/ Puede ser con:gurado tam(i*n para cumplir otras ,unciones/ 6Nh o P.R0EG Puerto de Entrada;!alida de = (its/ Este puerto& al igual 'ue todos sus similares en los PIC& puede leerse o escri(irse como si se tratara de un registro cual'uiera/ El registro 'ue controla el sentido #entrada o salida+ de los pines de este puerto est% locali-ado en la p%gina 1& en la posici8n 8Nh ) se llama 0RI!E/ El puerto E tam(i*n puede ser con:gurado para 'ue tra(aje como entradas an%logas para el con$ertidor n%logo a 3igital interno del microcontrolador o para 'ue maneje las se9ales de control en el modo microprocesador/ 8Fh o 0RI!G Registro de con:guraci8n del puerto / Como )a se mencion8& es el registro de control para el puerto / Hn CceroD en el (it correspondiente al pin lo con:gura como salida& mientras 'ue un CunoD lo hace como entrada/ 86h o 0RI!<G Registro de con:guraci8n del puerto </ .rientado hacia el control del puerto </ !on $%lidas las mismas consideraciones del registro 0RI!/ 87h o 0RI!CG Registro de con:guraci8n del puerto C/ .rientado hacia el control del puerto C/ !on $%lidas las mismas consideraciones del registro 0RI!/ 88h o 0RI!3G Registro de con:guraci8n del puerto 3/ .rientado hacia el control del puerto 3/ !on $%lidas las mismas consideraciones del registro 0RI!/ 8Nh o 0RI!EG Registro de con:guraci8n del puerto E/ .rientado hacia el control del puerto E/ !on $%lidas las mismas consideraciones del registro 0RI!/ 626h a 7FhG Registros de prop8sito general/ Estas N6 posiciones est%n implementadas en la memoria RM est%tica& la cual con,orma el %rea de tra(ajo del usuario/ Pueden ser utili-adas para almacenar cual'uier dato de 8 (its/ Registro de tra(ajo B/ Este es el registro de tra(ajo principal& se comporta de manera similar al acumulador en los microprocesadores/ Este registro participa en la ma)or1a de las instrucciones/ Est% directamente relacionado con la Hnidad ritm*tica ) L8gica LH/