1. 2. 3. 4. 5.
El PIC 16F84A tiene 35 tiene 35 instrucciones. El PIC 16F84A tiene una memoria para programas de 1792 de 1792 bytes. EL PIC 16f84A tiene 15 tiene 15 registros especiales especiales y 1 registro de trabao. El PIC 16F84A puede almacenar !asta 544 !asta 544 bits de datos en su memoria "A#. El PIC 16F84A 16F84A puede puede almac almacena enarr !asta !asta 512 bits bits de datos datos en su memo memori ria a EEP"$#.
6. Haga Haga una disti distinci nción ón entre entre memor memoria ia RAM RAM y EEPRM EEPRM.. !a memoria RAM se RAM se destina a guardar las %ariables y datos. Es %ol&til' es decir' los datos almacenados se borran cuando desaparece la alimentaci(n. )e di%ide en dos partes* Registros de "unciones Es#ecia$es %"R +)pecial %"R +)pecial Function "egisters,. )on los primeros registros' cada uno de ellos cumple un prop(sito especial en el control del microcontrolador. Registros de Pro#ósito &enera$ &PR +-eneral &PR +-eneral Purpose "egisters,. )on los primeros registros de uso general ue se pueden usar para guardar los datos temporales del programa ue se est& eecutando.
•
•
La memoria de datos cuenta con dos bancos de memoria' /anco 0 y /anco 1* Los registros del )F" est&n agrupados entre las direcciones 00! a 0/! para el /anco 0 y entre las direcciones 80! !asta 8/! para el /anco 1. Algunos de los registros del )F" se encuentran duplicados en la misma direcci(n en los dos bancos' con el obeto de simplificar su acceso. El banco banco de regis registro tross de prop(s prop(sito ito genera generall est& est& formad formado o por por 68 posici posicione oness de memoria' ya ue solo son operati%as las den /anco 0 +direcciones desde 0C! !asta la 4F!,' porue las del /anco 1 se mapean sobre el /anco 0. Es decir' cuando se apunta a un registro de prop(sito general del /anco 1 +direcciones de 8C! !asta 0CF!,' realmente se accede al mismo registro del /anco 0. Para seleccionar el banco a acceder !ay ue configurar el bit +"P0, del registro )2A23). Con "P0 0 se accede al /anco 0 y con "P0 1 se accede al /anco 1. El /anco 0 es seleccionado autom&ticamente autom&ticamente despu5s de un reset. !a memoria EEPRM EEPRM es una peuea &rea de memoria de datos de lectura y escritura escritura no %ol&til' %ol&til' gracias gracias a lo cual un corte del suministro suministro de la alimentaci(n alimentaci(n no ocasiona la perdida de informaci(n' informaci(n' ue est& disponible al reiniciali7arse el programa. )e pueden reali7ar dos tipos de operaciones* operaciones* $peraci(n de lectura. $peraci(n de escritura de grabaci(n.
• •
3n ciclo de grabaci(n en una posici(n EEP"$# de datos dura unos 10ms' un tiempo muy muy ele% ele%ad ado o para para la %elo %eloci cida dad d del del proc proces esad ador or'' ue ue se cont contro rola la medi median ante te un temp tempor ori7 i7ad ador or inte intern rno. o. Al escr escrib ibir ir en una una posi posici ci(n (n de memo memori ria a ya ocup ocupad ada' a' autom&ticamente se borra el contenido ue !aba y se introduce un nue%o dato' por lo ue no !ay comando de borrado. 7. 'i(eren 'i(erencie cie $as ar)uit ar)uitect ecturas uras *on *on +euma +eumann nn y Har,ard Har,ard 1
En $a ar)uitectura *on +eumann- dispone de la unidad central de proceso ue est& conectada a una memoria 9nica ue contiene las instrucciones del programa y los datos. El tamao de la unidad de datos o instrucciones est& fiado por el anc!o del bus de datos de la memoria e:terior utili7ada' ue es de 8 bits. Cuando deba acceder a una instrucci(n o dato de m&s de un byte de longitud deber& de reali7ar m&s de un acceso a la memoria y la %elocidad de operaci(n est& limitada por el efecto de cuello de botella ue significa un 9nico bus para datos e instrucciones' ue impide superponer ambos tiempos de acceso.
!a ar)uitectura Har,ard- dispone de dos memorias independientes a las ue se conecta mediante dos grupos de buses separados* #emoria de datos y memoria de programa. Ambos buses son totalmente independientes y pueden ser de distintos anc!os' esto permite ue la CP3 pueda acceder de forma independiente y simult&nea a la memoria de datos y a la de instrucciones. Por lo cual el tamao de las instrucciones no est& relacionado con el de los datos y' por lo tanto' puede ser optimi7ado para ue cualuier instrucci(n ocupe una sola posici(n de memoria de programa. As se logra una mayor %elocidad y una menor longitud del programa.
2
. Muestre $a asignación t/#ica de memoria de$ P0 16"4A A
anco 'irecc 1 2 3 4 5
;ombre I;?F 2#"0 PCL )2A23) F)" P$"2A
6
P$"2/
/it < /it 6 /it /it 4 /it = ?irecci(n de F)" +no es fsicamente un registro, Contador@2empori7ador de 8 bits 8 bits L)/ del PC I"P "P1 "P0 2$ P? Puntero para el ?ireccionamiento Indirecto B B B "A4 "A= 20CI "/< "/6 "/ "/4 "/=
7 9 A anco 1 'irecc 1 2 3 4 5 6 7 9 A
/it >
/it 1
/it 0
?C
C
"A>
"A1
"A0
"/>
"/1
"/0 I;2
B EE?A2A EEA?" PCLA2D I;2C$;
;o implementado "egistro de ?atos EEP"$# "egistro de ?irecciones EEP"$# B B B bits #)/ del PC -IE EEIE 20IE I;2E "/IE 20IF
I;2F
"/IF
;ombre I;?F $P2I$; PCL )2A23) F)" 2"I)A 2"I)/ B EC$;1 EC$;> PCLA2D I;2C$;
/it < /it 6 /it /it 4 /it = /it > /it 1 ?irecci(n de F)" +no es fsicamente un registro, "/P3 I;2E 20C) 20)E P)A P)> P)1 8 bits L)/ del PC I"P "P1 "P0 2$ P? ?C Puntero para el ?ireccionamiento Indirecto B B B ?irecci(n de datos del Puerto A ?irecci(n de los datos del Puerto / ;o Implementado B B B EEIF "" E; " > "E-I)2"$ ?E Control de la EEP"$# B B B bits #)/ del PC -IE EEIE 20IE I;2E "/IE 20IF I;2F
/it 0 P)0 C
"? "/IF
La memoria de datos est& repartida en dos &reas. El primero es el &rea de "egistros de Funciones especiales +)F",' mientras ue el segundo es el "egistro de Fines -enerales +-P",. Los registros )F" controlan el funcionamiento del dispositi%o. 3
Partes de la memoria de datos est&n colocados en bancos. Esto es %&lido tanto para el &rea de )F" como para el &rea -P". El &rea de -P" es apilado para permitir m&s ue 116 bytes de "A# de uso general. Las &reas de apilados del )F" se destinan a los registros ue controlan las funciones perif5ricas. El apilado reuiere el uso de bits de control para la selecci(n de bancos. Estos bits de control se encuentran en el registro de )2A23). La figura muestra la organi7aci(n del mapa de datos de la memoria. Las instrucciones #$GF y #$GF permiten mo%er %alores del registro !asta cualuier locaci(n en el arc!i%o de registros +F, y %ice%ersa. )e puede acceder a la memoria de datos entera en forma directa usando la direcci(n absoluta de cada registro o en forma indirecta mediante el "egistro de )elecci(n de Arc!i%os +F)",. El direccionamiento indirecto usa el bit "P0 para acceder a las reas apiladas de la memoria de datos. La memoria de datos est& di%idida en dos bancos ue contienen los registros de uso general y los registros de funciones especiales. El /anco 0 es seleccionado eliminando el bit "P0 +)2A23)H,. El auste del bit "P0 selecciona el /anco 1. Cada /anco se e:tiende !asta
8 bytes,. Las primeras doce locaciones de cada /anco est&n reser%adas para los "egistros de Funciones Especiales +)F",. El resto son "egistros de 3so general implementados como "A#. 9. Escria $a (unción de cada #in de$ P0 16"4A de acuerdo a$ ci# '0! mostrado. P8ER A RA : Pin de Entrada@)alida +22L,. RA1 : Pin de Entrada@)alida +22L,. RA2 : Pin de Entrada@)alida +22L,. RA3 : Pin de Entrada@)alida +22L,. RA4 : Pin de Entrada@)alida o entrada de "elo E:terno para el 2#"0' cuando este pin se configura como salida es de tipo $pen ?rain +)2,' cuando funciona como salida se debe conectar a Gcc +JG, a tra%5s de una resistencia. P8ER R : Pin de Entrada@)alida o entrada de interrupci(n e:terna. +22L@)2,. R1 : Pin de Entrada@)alida +22L,. R2 : Pin de Entrada@)alida +22L,. R3 : Pin de Entrada@)alida +22L,. R4 : Pin de Entrada@)alida con Interrupci(n por cambio de Flanco +22L,. R5 : Pin de Entrada@)alida con Interrupci(n por cambio de Flanco +22L,. R6 : Pin de Entrada@)alida con Interrupci(n por cambio de Flanco +22L@)2,. 4
R7 : Pin de Entrada@)alida con Interrupci(n por cambio de Flanco +22L@)2,. P0+E% A'00+A!E% M!R : Pin de "eset del #icrocontrolador +#aster Clear,. )e acti%a +el pic se resetea, cuando tiene un K0K l(gico en su entrada. *ss : -round o 2ierra *dd : Fuente Positi%a +JG, !;8 Entrada del $scilador del Cristal. )e conecta al Cristal o "esonador en modo 2 +$scilador de Cristal,. En modo "C +"esistenciaMCondensador,' este pin act9a como salida el cual tiene N de la frecuencia ue entra por el pin $C)1@CLI;. !;0+ Entrada del $scilador del Cristal @ Entrada de relo de una Fuente E:terna.
1. omando como re(erencia e$ diagrama de $o)ues de$ P0 16"4A- aga un cuadro en e$ )ue se indi)ue e$ nomre de cada e$emento y su (unción. E!EME+ Memoria #rograma
Registro 0nstrucción
"8+0<+ de$ )(lo se eecutar& el c(digo contenido en esta memoria' pudiendo almacenar en ella una cantidad limitada de datos como parte de la instrucci(n "E2L. En una sola palabra se agrupa el c(digo de la instrucci(n y el operando o su direcci(n. de )e almacena la instrucci(n ue se est& eecutando.
Memoria de datos )e destina a guardar las RAM %ariables y datos' es %ol&til.
E!EME+ ontador de Programa o Program ounter
"8+0<+ Oue apunta a la direcci(n memoria de la instrucci(n curso y permite ue programa a%ance cuando incrementa.
'ir M8=
En%iar por un solo canal l informaciones presentes %arias lneas.
!a #i$a o stac>- de )e utili7a cuando eecutam ni,e$es un subproceso o subrutina' decir' un conunto instrucciones ue !em aislado de las dem&s pa simplificar. Memoria EEPRM de rea de memoria de datos de Registros de Oue controlan datos "unciones lectura y escritura no %ol&til. funcionamiento del dispositi% Es#ecia$es Estos se emplean para control del funcionamiento la CP3 y de los perif5ricos. Registro EE'AA de Puede accederse a ellos tan -uarda el contenido de una Registros posici(n de la memoria Pro#ósito &enera$ directa como indirectamen EEP"$# de datos antes de su !aciendo uso del registro F) escritura o despu5s de su lectura' seg9n leamos o 5
Registro EEA'R
Registro de traa?o
Registro de Estado
em#ori@ador PoerB 8#
em#ori@ador sci$ador %tarB8#
PR% 0C
escribamos en ella. -uarda la direcci(n de la posici(n de memoria EEP"$#.
"egistro I;?F
Este registro sir%e 9nicamen para especificar la utili7aci del direccionamiento indirec unto con el registro F)". Almacena el %alor del contad 2#"' ue como ya sabemo est& funcionan continuamente incrementando el %alor tiene almacenado. El contenido del F)" se utili para el direccionamien indirecto unto con el regist I;?F. Este registro contiene bits.
)er%ir& para guardar "egistro 2#" temporalmente un dato ledo de memoria' y lo usaremos como si del portapapeles del escritorio se tratase. Contienen %arios bits de estado "egistro F)" de la unidad central' el estado aritm5tico de la AL3' el estado del reset y un par de bits de selecci(n de p&gina denominados "P1 y "P0. $cupa la posici(n 0=! del banco 0 y la 8=! del banco 1. Este proporciona un reset al "egistro P$"2A microcontrolador en el P$"2/ momento de conectar la fuente de alimentaci(n' lo ue garanti7a un arranue correcto del sistema.
y
2iene la funci(n de mantener el Poer B n Reset c!ip en "eset !asta ue el oscilador a cristal se estabili7a y entra en funciones en los modos 2' LP y D) del oscilador. Algunas patas de ports I@$ em#ori@ador Perro est&n multiple:adas con una &uardiDn funci(n alternati%a para las prestaciones perif5ricas del dispositi%o. En general' cuando se acti%a un perif5rico' esta pata no debe usarse como pata I@$ de uso general.
El uso de estos registros contienen los ni%eles l(gic de las patillas de E@). Cada se puede leer o escribir seg la patilla correspondiente !aya configurado co entrada o como salida. Elimina los componentes e:ternos ue se necesit generalmente para crear reset de encendido. )u funci(n es restablecer programa cuando 5ste se perdido por fallas en programaci(n o por algu ra7(n e:terna.
i$iogra(/a Enriue Palacios' F. ". +agosto >004,. Microcontrolador PIC16F84A Desarrollo de Proyectos. #A?"I?' Espaa* Alfomega -rupo Editor.
Re(erencias !ttp*@@perso.Qanadoo.es@pictob@indicemicroprg.!tm 6
!ttp*@@melca.com.ar@arc!i%os@LibroR>0#icrocontroladoresR>0PIC@aruitectura.pdf !ttp*@@Qeb.ing.puc.cl@Smtorrest@doQnloads@[email protected] !ttp*@@QQ1.microc!ip.com@doQnloads@en@de%icedoc@=00
7