Вы находитесь на странице: 1из 21

El Microcontrolador PIC16F877

Resumen de hoja de datos


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/

Вам также может понравиться