Vous êtes sur la page 1sur 19

ITSP

Documento traducido de la hoja de datos del ATmega32


1
DATASHEET DEL ATMEGA 32
2. !"#LE$ DEL #P"
La %rinci%al &unci'n del n(cleo del #P" es asegurar la correcta ejecuci'n de un %rograma. El #P" de)e ser ca%a* de
acceder a la memoria+ ejecutar c,lculos+ controlar los %eri&-ricos . manejar las interru%ciones. La &igura 2. muestra el diagrama a
)lo/ues de un n(cleo #P".
0EGIST0$S
1igura 2..
Es un es%acio es%ecial de almacenamiento de 2 )its+ el cual luce como3
4IT5 4IT6 4IT7 4IT8 4IT3 4IT2 4IT 4IT9
!ote /ue la numeraci'n de estos )its3 el )it menos signi&icati:o inicia con cero ;2
9
<=. "n registro %uede almacenar
n(meros desde 9 a 277 ;n(meros %ositi:os=+ o n(meros
desde >22 a 25 ;n(meros con signo . magnitud=+ o :alores /ue re%resentan caracteres en el c'digo AS#II.
Las caracter?sticas es%eciales de los registros+ com%arados con otros sitios de almacenamiento+ es /ue3
Ellos se usan directamente en los comandos en ensam)lador.
Las o%eraciones de su contenido re/uieren solamente comandos de una %ala)ra.
Ellos est,n ligados directamente a la "nidad #entral de Procesamiento.
Ellos son la &uente o destino de los argumentos en las o%eraciones.
E@isten 32 registros en un AA0. Ellos se nom)ran como 09 a 03+ %ero %uedes renom)rarlos usando las directi:as del
ensam)lador.
Los AA0 utili*an la Ar/uitectura Har:ard+ con el )us de datos . el )us de memorias se%arados. Mientras una instrucci'n se
ejecuta+ la %r'@ima instrucci'n esta lista %ara ser ejecutada en la memoria de %rograma. Las instrucciones se ejecutan en cada
ciclo de reloj. La memoria de %rograma esta en la memoria 1lash. Al ejecutarse una o%eraci'n en la AL"+ los dos
o%erandos est,n a la salida del archi:o de registros . el resultado se almacena al &ondo del archi:o de registros en un solo ciclo de
reloj. Seis de los 32 registros se %ueden usar como registros a%untadores de direccionamiento indirecto a 6 )its %ara datos
almacenados en memoria+ siendo los registros de 6 )its B+ C . D. Des%u-s de reali*ar una o%eraci'n aritm-tica el 0egistro de
Estado actuali*a la in&ormaci'n acerca del resultado de la o%eraci'n.
Durante las interru%ciones o llamados a su)rutinas+ la direcci'n del #ontador de Programa se almacena en la %ila. La %ila
se locali*a en la S0AM. El usuario al inicio de un %rograma de)er, iniciali*ar el SP en la rutina de reset.
El es%acio de memoria de IE$ contiene 68 direcciones %ara las &unciones %eri&-ricas del
#P" como 0egistros de #ontrol+ SPI+ . otras &unciones de IE$.
Las o%eraciones de la AL" se di:iden en tres categor?as+ aritm-ticas+ l'gicas . o%eraciones a )its.
0EGIST0$ DE ESTAD$
Este registro contiene in&ormaci'n del resultado m,s reciente de la o%eraci'n aritm-tica. As?+ esta in&ormaci'n %uede ser (til
%ara alterar el &lujo del %rograma . ejecutar o%eraciones condicionales. Puede ser manejado %or so&tFare. La &igura 2.2
muestra los )its /ue maneja.
4it 5 G I3 Ha)ilitaci'n de Interru%ci'n Glo)al. Se %one a %ara ha)ilitar las interru%ciones. Si el )it esta en 9 ninguna
interru%ci'n se ha)ilita. El )it I se lim%ia %or hardFare des%u-s de /ue una interru%ci'n ha ocurrido+ . es %uesto a %or
la instrucci'n 0ETI %ara ha)ilitar las interru%ciones su)secuentes.
4it 6 G T3 #o%ia de un 4it. "n )it de un registro %uede ser co%iado al registro T %or la instrucci'n 4ST ;4it STore= . el )it T
%uede ser co%iado a un )it de un registro %or la instrucci'n 4LD ;4it LoaD=.
4it 7 G H3 0egistro de Acarreo Intermedio. La )andera de acarreo intermedio se indica en cual/uier o%eraci'n aritm-tica. Se usa
en o%eraciones en 4#D.
4it 8 G S3 4it de Signo.
4it 3 G A3 4andera de So)re&lujo en #om%lemento a Dos.
4it 2 G !3 4andera de !egati:o. Indica cuando un resultado es negati:os de una o%eraci'n aritm-tica o l'gica.
4it G D3 4andera de #ero. Indica si el resultado es un cero de una o%eraci'n aritm-tica o l'gica.
4it 9 G #3 4andera de Acarreo. Indica un acarreo de una o%eraci'n aritm-tica o l'gica.
0EGIST0$S DE T0A4AH$ DE P0$P$SIT$ GE!E0AL
En la &igura 2.3 se o)ser:a el archi:o de registros+ donde los 32 registros de %ro%'sito general de 2 )its se locali*an al inicio
de las direcciones de memoria de la S0AM ;9999h a la 991h=.
1igura 2.3.
A %artir de la direcci'n 99Ah a la 991h+ comien*an los 3 registros de 6 )its ;B+ C . D=+ los cuales act(an como a%untadores
de direcciones %ara direccionamiento indirecto a es%acio de datos.
1igura 2.8.
AP"!TAD$0 DE PILA
La Pila se usa %rinci%almente %ara almacenar datos tem%orales+ %ara almacenamiento local de :aria)les . %ara almacenar
direcciones de retorno des%u-s de las interru%ciones . los llamados a su)rutina. El 0egistro de A%untador de Pila siem%re
a%unta al %rinci%io de la Pila.
El A%untador de la Pila a%unta a los datos de la S0AM /ue &uncionan como %ila. El es%acio de la %ila la de&ine el usuario .
de)er, a%untar a una direcci'n arri)a de la
9969h
TIEMP$ DE EHE#"#I$! DE "!A I!ST0"##I$!
Ejecuci'n . almacenamiento en &ila de una instrucci'n. Ejecuci'n en %aralelo de la
Ar/uitectura Har:ard+ se muestra en la &igura 2.7.
1igura 2.7.
2.2 MEM$0IA DE P0$G0AMA C DE DAT$S DEL AA0 ATmega32.
La ar/uitectura AA0 tiene dos es%acios %rinci%ales de memoria+ la Memoria de Datos . la Memoria de Programa. As? como
tam)i-n el Atmega32 %osee la Memoria EEP0$M %ara almacenar datos.
El Atmega32 contiene 32I ).tes de memoria 1lash 0e%rograma)le %ara almacenar el %rograma. Ca /ue todas las instrucciones
de los AA0 son de 6 o 32 )its de ancho+ la 1lash se organi*a en 6I @ 6. La memoria de Programa 1lash se di:ide en dos
secciones+ la secci'n de J4ooteoK de Programa . la secci'n de A%licaci'n del Programa. El contador de %rograma ;P#=
es de 8 )its de ancho+ as? direcciona localidades en la memoria de %rograma de 6I+ :-ase la &igura 2.7.
1igura 2.6.
Las 288 ;269h= localidades de Memoria de Datos direccionan el Archi:o de 0egistros+ la Memoria de IE$ . los datos internos de
la S0AM. Las %rimeras L6 ;69h= localidades direccionan el Archi:o de 0egistros . la Memoria de IE$+ . las siguientes 2982
localidades direccionan los datos internos de la S0AM+ :-ase la &igura 2.5.
1igura 2.5.
2.3 SISTEMA DE 0EL$H.
En la &igura 2.2 se muestra el sistema de reloj . su distri)uci'n %ara la ar/uitectura AA0. Puede /ue no todos los relojes
est-n acti:os al mismo tiem%o. Para reducir el consumo de %otencia+ los relojes /ue no est,n siendo usados se %aran usando los
di&erentes modos de ahorro de energ?a.
1igura 2.2.
0eloj del #P" G clM
#P"
. El reloj del #P" se dirige a las %artes del sistema concernientes con la o%eraci'n del
n(cleo AA0. Tales m'dulos ser,n el Archi:o de 0egistros de Pro%'sito General+ el 0egistro de Estado . el A%untador de Pila.
Parando el reloj del #P" se inhi)e el n(cleo.
0eloj de IE$ G clM
IE$
. El reloj de IE$ se usa %ara la ma.or?a de los m'dulos de IE$+ tales como los TimersE#ontadores+ SPI . el
"SA0T+ as? como tam)i-n el M'dulo de Interru%ciones E@ternas.
0eloj de la 1lash G clM
1LASH
. El reloj de la 1lash controla la o%eraci'n de la inter&ase
1lash. Se acti:a simult,neamente con el reloj del #P".
0eloj del Timer As?ncrono G clM
ASC
. El timer de reloj as?ncrono %ermite reci)ir directamente un cristal e@terno de 32 IH*.
0eloj del AD# G clM
AD#
. El AD# es %ro:isto con un reloj de dominio dedicado. Esto %ermite %arar los relojes del #P"
. de IE$ %ara reducir el ruido generado %or la circuiter?a digital. Esto %ro%orciona m,s %recisi'n en la con:ersi'n del AD#.
1"E!TES DE 0EL$H
El dis%ositi:o tiene las siguientes &uentes de reloj+ selecciona)les %or los )its de 1lash 1usi)les. El reloj de la &uente seleccionado
es la entrada al reloj generador del AA0 . se dirige a los m'dulos a%ro%iados.
Las &uentes de reloj son3 $scilador E@terno 0#+ 0eloj E@terno+ #ristal $scilador+ $scilador de #ristal a 4aja 1recuencia . el
$scilador #ali)rado 0#.
El dis%ositi:o es &a)ricado con un $scilador Interno 0# como &uente de reloj %or de&ault de MH*.
2.8 A0#HIA$ DE 0EGIST0$S.
La ta)la 2. muestra el archi:o de registros /ue utili*an el ATmega32+ as? como sus direcciones. Adem,s de la lista se
%roceder, a dar una )re:e e@%licaci'n de los mismos+ considerando /ue m,s adelante se reali*ara un an,lisis m,s
%ro&undo con&orme se :ean los ejercicios de a%licaci'n.
P"E0T$S $ 0EGIST0$S DEL AA0 ATMEGA32.
Los %uertos o registros es%eciales en el AA0 son com%uertas desde la "nidad #entral de Procesamiento a los com%onentes de
so&tFare . hardFare tanto internos como e@ternos. La comunicaci'n del #P" con estos com%onentes es %ara leer o escri)ir en
ellos.
E@isten 68 %uertos di&erentes+ los cuales tienen una direcci'n &ija. !o tienes /ue memori*ar todas las direcciones+ .a /ue
en el archi:o de de&inici'n del ATmega32 :ienen los alias. Por ejem%lo+ .EN" P$0T4+ 9@2.
ITSP
ITSP
Documento traducido de la hoja de datos del ATmega32
L
Documento traducido de la hoja de datos del ATmega32
10
10
ITSP
S0EG. 0egistro de Estado. Este registro contiene la in&ormaci'n del resultado m,s reciente de una o%eraci'n aritm-tica.
SPH+ SPL. 0egistro A%untador de Pila. El A%untador de la Pila a%unta a los datos de la S0AM /ue &uncionan como %ila.
Este a%untador del AA0 se im%lementa en 2 registros de 2 )its como es%acio de IE$.
$#09. 0EGIST0$ DE #$MPA0A#I$! DE SALIDA. Este registro contiene un :alor de 2 )its /ue se com%ara
continuamente con el :alor del contador ;T#!T9=. Al ser iguales %uede generar una interru%ci'n de salida %or com%araci'n o
generar una &orma de onda de salida en el %in $#9.
GI#0. 0EGIST0$ GE!E0AL DE #$!T0$L DE I!TE00"P#I$!ES. #ontiene los )its de ha)ilitaci'n de las interru%ciones
e@ternas I!T9+ I!T e I!T2. As? como tam)i-n los )its %ara mo:er el :ector de interru%ciones a %rinci%io de la memoria 1lash o
al inicio de la secci'n de J4ootK.
GI10. 0EGIST0$ GE!E0AL DE 4A!DE0AS DE LAS I!TE00"P#I$!ES. #ontiene las )anderas de las interru%ciones
e@ternas I!T9+ I!T e I!T2 cuando estas est-n acti:as.
TIMSI. 0EGIST0$ E!MAS#A0A4LE DE I!TE00"P#IO! DEL TIME0E#$!TAD$0. #ontiene los )its %ara ha)ilitar
los registros de com%araci'n . ha)ilitar las interru%ciones %ara cuando se cum%la la igualdad.
TI10. 0EGIST0$ DE 4A!DE0AS DE I!TE00"P#I$!ES DEL TIME0E#$!TAD$0. #ontiene los )its de las )anderas
cuando se cum%la la igualdad en la com%araci'n del TimerE#ontador . el dato de $#0. As? como tam)i-n contiene los )its de
)andera de So)re&lujo de los TimerE#ontador.
SPM#0. 0EGIST0$ DE #$!T0$L PA0A ALMA#E!A0 E! LA MEM$0IA DEL P0$G0AMA. Este 0egistro
contiene los )its necesarios %ara controlar las o%eraciones de J4oot LoaderK.
TP#0. 0EGIST0$ DE #$!T0$L DE D$S LQ!EAS. Se usa %ara ha)ilitar la #omunicaci'n a Dos L?neas ;TPI=+ al iniciar un
acceso a%licando la condici'n de I!I#I$ en el )us+ generar un reconocimiento del rece%tor+ generar la condici'n de sto%+ .
controlar el )us mientras los datos de escri)en en -l. As? como tam)i-n indica cuando e@iste una colisi'n de escritura si los datos
se intentan escri)ir en TPD0 . el registro no est, dis%oni)le.
M#"#0. 0EGIST0$ DE #$!T0$L DE LA "!IDAD DEL MI#0$#$!T0$LAD$0 ;M#"=. Este registro contiene los
)its de control %ara el manejo de la Energ?a.
M#"#S0. 0EGIST0$ DE #$!T0$L C ESTAD$ DEL M#". Este registro %ro:ee in&ormaci'n acerca de cuales &ueron
las &uentes /ue causaron el reinicio del M#".
Documento traducido de la hoja de datos del ATmega32
11
11
ITSP
T##09. 0EGIST0$ DE #$!T0$L DEL TIME0E#$!TAD$0 J9K. T#!T9. 0EGIST0$ DEL
TIME0E#$!TAD$0 J9K.
$S##AL. 0EGIST0$ DE #ALI40A#I$! DEL $S#ILAD$0. Escri)iendo en este ).te de cali)raci'n har, una :ariaci'n en la
&recuencia del oscilador.
$S#D0. 0EGIST0$ DE DE4"G DE!T0$ DEL SISTEMA. Este registro %ro:ee un canal de comunicaci'n desde un %rograma
corriendo en el microcontrolador hacia el de)ugger.
S1I$0. 0EGIST0$ DE 1"!#IO! ESPE#IAL DE IE$. Ajusta el Pre>escalador del
Timer 9+ . 2. As? como selecciona las &uentes %ara el auto>dis%aro.
T##0A. 0EGIST0$ DE #$!T0$L JAK PA0A EL TIME0E#$!TAD$0 JK. T##04. 0EGIST0$ DE
#$!T0$L J4K PA0A EL TIME0E#$!TAD$0 JK.
T#!TH . T#!TL. Las dos localidades del TimerE#ontador IE$ se com)inan %ara T#!T+ dan acceso directo+ am)as
o%eraciones %ara leer . escri)ir+ a la unidad de TimerE#ontador de 6 )its.
$#0AH . $#0ALR $#04H . $#04L. Los registros de #om%araci'n de Salida contienen un :alor de 6 )its /ue
continuamente se com%ara con el :alor del contador T#!T. "na igualdad genera una interru%ci'n de com%araci'n de salida+ o
genera una &orma de onda de salida en el %in $#@.
I#0H e I#0L. 0EGIST0$ DE #APT"0A DE E!T0ADA JK. Este registro se actuali*a con el :alor del contador
;T#!T= cada :e* /ue un e:ento ocurre en el %in I#P ;o con el com%arador an,logo de salida %ara el TimerE#ontador =.
T##02. 0EGIST0$ DE #$!T0$L PA0A EL TIME0E#$!TAD$0 J2K.
T#!T2. 0EGIST0$ DEL TIME0E#$!TAD$0. Este registro da acceso directo+ a am)as o%eraciones %ara leer . escri)ir a
la unidad de 2 )its del contador. Escri)iendo al registro T#!T2 remue:e la com%araci'n en el siguiente ciclo de reloj.
$#02. 0EGIST0$ DE #$MPA0A#I$! DE SALIDA J2K. Este registro contiene un :alor de 2 )its /ue continuamente se
com%ara con el :alor del contador T#!T2. "na igualdad genera una interru%ci'n de com%araci'n de salida+ o genera una
&orma de onda de salida en el %in $#2.
ASS0. 0EGIST0$ DE ESTAD$ ASQ!#0$!$.
PDT#0. 0EGIST0$ DE #$!T0$L DEL TIME0 JPAT#HD$GK.
Documento traducido de la hoja de datos del ATmega32
12
12
ITSP
"400H. PA0TE ALTA DEL 0EGIST0$ DE 4A"D 0ATE DE LA "!IDAD DE T0A!S1E0E!#IA SE0IAL
"!IAE0SAL SI!#0$!A C ASI!#0$!A ;"SA0T=.
"#S0#. 0EGIST0$ J#K DE #$!T0$L C ESTAD$ DE LA "!IDAD DE T0A!S1E0E!#IA SE0IAL
"!IAE0SAL SI!#0$!A C ASI!#0$!A ;"SA0T=.
EEA0H . EEA0L. 0EGIST0$ DE DI0E##IO! DE LA PA0TE ALTA C 4AHA DE LA EEP0$M.
EED0. 0EGIST0$ DE DAT$S DE LA EEP0$M. EE#0. 0EGIST0$ DE
#$!T0$L DE LA EEP0$M. P$0TA. 0EGIST0$ DE DAT$S DEL P"E0T$
JAK.
DD0A. 0EGIST0$ DE DI0E##IO! DE DAT$S DEL P"E0T$ JAK. PI!A. DI0E##I$!ES DE L$S
PI!S DE E!T0ADA DEL P"E0T$ JAK. P$0T4. 0EGIST0$ DE DAT$S DEL P"E0T$ J4K.
DD04. 0EGIST0$ DE DI0E##IO! DE DAT$S DEL P"E0T$ J4K. PI!4. DI0E##I$!ES DE L$S
PI!S DE E!T0ADA DEL P"E0T$ J4K. P$0T#. 0EGIST0$ DE DAT$S DEL P"E0T$ J#K.
DD0#. 0EGIST0$ DE DI0E##IO! DE DAT$S DEL P"E0T$ J#K. PI!#. DI0E##I$!ES DE L$S
PI!S DE E!T0ADA DEL P"E0T$ J#K. P$0TD. 0EGIST0$ DE DAT$S DEL P"E0T$ JDK.
DD0D. 0EGIST0$ DE DI0E##IO! DE DAT$S DEL P"E0T$ JDK. PI!D. DI0E##I$!ES DE L$S
PI!S DE E!T0ADA DEL P"E0T$ JDK.
SPD0. 0EGIST0$ DE DAT$S DE LA I!TE01ASE SE0IAL PE0I1E0I#A ;SPI=. En este registro se lee . se escri)e . se usa
%ara trans&erir datos entre el Archi:o de 0egistros . el 0egistro de corrimiento SPI. Al escri)ir en este registro comien*a la
transmisi'n de datos. Al leer este registro causa /ue el 0egistro de corrimiento sea almacenado en el )u&&er.
SPS0. 0EGIST0$ DE ESTAD$ DE LA I!TE01ASE SE0IAL PE0I1E0I#A ;SPI=. SP#0. 0EGIST0$ DE #$!T0$L
DE LA I!TE01ASE SE0IAL PE0I1E0I#A ;SPI=
Documento traducido de la hoja de datos del ATmega32
13
13
ITSP
"D0. 0EGIST0$ DE DAT$S DE IE$ DEL "SA0T.
"#S0A. 0EGIST0$ JAK DE #$!T0$L C ESTAD$ DE LA "!IDAD DE T0A!S1E0E!#IA SE0IAL "!IAE0SAL
SI!#0$!A C ASI!#0$!A ;"SA0T=.
"#S04. 0EGIST0$ J4K DE #$!T0$L C ESTAD$ DE LA "!IDAD DE T0A!S1E0E!#IA SE0IAL "!IAE0SAL
SI!#0$!A C ASI!#0$!A ;"SA0T=.
"400L. PA0TE 4AHA DEL 0EGIST0$ DE 4A"D 0ATE DEL "SA0T.
A#S0. 0EGIST0$ DE #$!T0$L C ESTAD$ DEL #$MPA0AD$0 A!SL$G$. ADM"B. 0EGIST0$ DE
SELE##IO! DEL AD# M"LTIPLEBAD$.
AD#S0A. 0EGIST0$ JAK DE #$!T0$L C ESTAD$ DEL AD#.
AD#H . AD#L. 0EGIST0$ DE DAT$S DE LA #$!AE0SI$! DEL AD# PA0TE ALTA C 4AHA.
TPD0. 0EGIST0$ DE DAT$S DE LA #$M"!I#A#IO! A D$S LQ!EAS. En modo de Transmisi'n+ TPD0 contiene el
%r'@imo ).te a ser transmitido. En modo 0ece%ci'n+ TPD0 contiene el (ltimo ).te reci)ido.
TPA0. 0EGIST0$ DE DI0E##IO! DE LA #$M"!I#A#IO! A D$S LQ!EAS. TPA0 de)er, ser cargado con 5 )its de
direcciones como escla:o+ al cual TPI res%onder, cuando sea %rogramado como transmisor o rece%tor escla:o.
TPS0. 0EGIST0$ DE ESTAD$ DE LA #$M"!I#A#IO! A D$S LQ!EAS. TP40. 0EGIST0$ DEL 4IT
0ATE DE LA #$M"!I#A#IO! A D$S LQ!EAS.
2.7 $PE0A#IO! DE 0ESET.
Durante el 0ESET+ todos los 0egistros de IE$ son %uestos en sus :alores iniciales+ . el %rograma comien*a su ejecuci'n desde el
Aector 0eset. La instrucci'n colocada en este Aector de)er, ser un Salto A)soluto ;HMP= a la rutina del %rograma u)icado en la
memoria 1lash o al ,rea de J)ootK.
Las &uentes de 0ESET en el ATmega32 son 73
PoFer>on 0eset. El M#" se reinicia cuando la &uente de :oltaje esta %or de)ajo del um)ral A
P$T
.
0eset E@terno. El M#" se reinicia cuando un ni:el )ajo esta %resente en el %in
0ESET %or un tiem%o de longitud m?nimo a un %ulso.
Documento traducido de la hoja de datos del ATmega32
14
14
ITSP
0eset Patchdog. El M#" se reinicia cuando el %eriodo del Timer de Patchdog e@%ira . el Patchdog esta ha)ilitado.
4roFn>out 0eset. El M#" se reinicia cuando la &uente de :oltaje A
##
esta %or de)ajo del um)ral A
4$T
. el
Detector de 4roFn>out esta ha)ilitado.
HTAG AA0 0eset. El M#" se reinicia tan %ronto como ha.a un uno l'gico en el
0egistro 0eset.
1igura 2.L.
Documento traducido de la hoja de datos del ATmega32
15
15
ITSP
2.6 I!TE00"P#I$!ES.
Esta secci'n descri)e las es%eci&icaciones %ara el manejo de interru%ciones /ue ejecuta el ATmega32. la ta)la siguiente muestra
el lugar de los :ectores de 0eset e Interru%ci'n. Si un %rograma no ha)ilita una &uente de interru%ci'n+ el Aector de
Interru%ciones no se usa+ . el c'digo de un %rograma regular %uede ser colocado en estas localidades de memoria.
Documento traducido de la hoja de datos del ATmega32
16
16
ITSP
"n %rograma %ara el Atmega32 con el :ector com%leto de interru%ciones se declara de la siguiente manera3
Documento traducido de la hoja de datos del ATmega32
17
17
ITSP
2.5 P"E0T$S DE E!T0ADAESALIDA.
Todos los %uertos de los AA0s tienen la caracter?stica de Leer>Modi&icar>Escri)ir+ esto signi&ica /ue la direcci'n de un %in de un
%uerto %uede leerse o escri)irse sin modi&icar al resto de los %ines+ usando las instrucciones S4I o #4I.
Son tres localidades de memoria de IE$ las /ue se asignan %or cada %uerto+ una %ara el 0egistro de Datos G P$0T@+ otra %ara el
0egistro de Direcci'n de Datos G DD0@+ . otra %ara los Pines del Puerto de Entrada G PI!@. La localidad de IE$ de los Pines de
Puerto de Entrada es de lectura solamente+ mientras /ue el 0egistro de Datos . el 0egistro de Direcci'n de Datos son de
LecturaEEscritura. En suma+ %ara desha)ilitar la &unci'n del Pull>"% %ara todos los %ines en los %uertos se de)er, colocar a uno el
)it P"D en el registro S1I$0.
#on&iguraci'n de un Pin
#ada %in del %uerto consiste de tres registros de )its3 DD0@+ P$0T@n . PI!@n. Los )its DD@n se accesan en la direcci'n de IE$
DD0@+ los )its de P$0T@ en la direcci'n de IE$ P$0T@+ . los )its de PI!@ en la direcci'n de IE$ PI!@.
El )it DD@n en el 0egistro DD0@ selecciona la direcci'n de ese %in. Si a DD@n se le escri)e un uno l'gico+ P@n se con&igura
como un %in de salida. Si a DD@n se le escri)e un cero l'gico+ P@n se con&igura como un %in de entrada.
Si se le escri)e a P$0T@n un uno l'gico cuando el %in esta con&igurado como un %in de entrada+ el resistor %ull>u% se acti:a.
Para desacti:ar al resistor de %ull>u%+ se le escri)ir, un cero l'gico a P$0T@n o se con&igura el %in como salida. Los %ines de
los %uertos son de tres>estados cuando se tiene la condici'n de reset.
Documento traducido de la hoja de datos del ATmega32
18
18
ITSP
Las con&iguraciones de los Puertos de los %ines se muestran a continuaci'n3
En el siguiente ejem%lo se muestra como con&igurar al Puerto 4 los %ines 9 . en alto+
2 . 3 en )ajo . se de&inen los %ines de 8 a 5 como entradas con %ull>u%s asignados a los %ines 6 . 5. "na instrucci'n no% se
inclu.e antes de leer el %uerto de entrada justamente des%u-s de con&igurarlo como entrada.

Vous aimerez peut-être aussi