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.