7 Introduccin a la Familia de Microcontroladores MCS-51
1.7.1 Breve resea histrica INTEL fue la compaa que desarroll el primer microprocesador en el mundo, el 4004 en el ao 1971. Ese microprocesador, con solo !"00 ransisores, fue el ori#en de una #ran canidad de disposii$os que se desarrollaron poseriormene, los cuales ine#ran acualmene m%s de un milln de ransisores en un encapsulado. Tampoco podemos ol$idar el &ec&o que INTEL &a desarrollado microprocesadores an e'iosos como el (0(), el (0!(), el (0"(), el (04() * m%s recienemene el +enium, INTEL es, &o* por &o*, uno de los ma*ores producores de microprocesadores en el mundo, con un mercado an amplio como codiciado, *a que millones de compuadores +- ienen insalado un microprocesador con su marca. INTEL am.i/n fa.rica microconroladores de ( * de 1) .is, cada uno de ellos iene amplias posi.ilidades de uili0acin * presaciones que los &acen adecuados para #ran canidad de aplicaciones. Los microconroladores INTEL &an enido una #ran acepacin, &asa el puno que oros fa.ricanes &an opado por producir sus propias $ersiones de esos disposii$os, como es el caso de 1IE2EN1, 3T2EL, * +4ILI+1. Esos microconroladores son la pare ineli#ene en una #ran canidad de sisemas como5 -onrol de procesos auom%icos, de m%quinas &erramienas, aparaos de manio.ra, de posicin, de $elocidad, ec/era. 1isemas de alarma de odo ipo5 indicadores * conrol de ni$el, re#ulacin de caudal, aperura auom%ica de disposii$os, ec/era. -onroladores de perif/ricos como impresoras, modems, eclados, unidades de disco, ploers, ec/era. Equipos de sonido * ele$isores donde son raadas las seales de audio * $ideo. 1isemas indusriales para el coneo de elemenos, la #eneracin de .ases de iempo, ec/era. 6enro de los microconroladores de ( .is e'isen dos #eneraciones5 la primera es la consiuida por la familia 21-74( la cual dio ori#en a las dem%s familias, mienras que la se#unda es la conformada por la familia 2-1781 la primera #eneracin a9n es% disponi.le, aunque es un poco m%s limiada en cuano a capacidades que la se#unda. 1.7.2 La amilia MCS-51 Los miem.ros m%s populares de los microconroladores de la familia 2-1781 son5 los (::1, * m%s concreamene, los (:81. Las diferencias enre esos dos miem.ros se muesran en la a.la Tab.1.7.A. -omo se puede o.ser$ar, e'isen res $ersiones para cada uno5 una $ersin sin ;<2, cu*o prefi=o es (0 * sufi=o "1, * $ersiones con ;<2, con sufi=o 81, la $ersin E+;<2 iene el prefi=o (7. E'ise un miem.ro un poco m%s compleo de esa familia, el cual cam.ia el n9mero 1 por el ! * posee ma*or capacidad de ;<2, de ;32 * de empori0adores>conadores. Tab.1.7.A. Miembros de la familia MCS-51 1IN ;<2 -<N ;<2 -<N E+;<2 ;<2 ?@TE1 ;32 ?@TE1 TI2E;1 1) ?IT1 INTE;;A+-I<NE1 (0"1 (081 (781 4B 1!( ! 8 (0"! (08! (78! (B !8) " ) 1.7.! Caracter"sticas de los microcontroladores #$51 La arquiecura .%sica de esa familia de microconroladores se muesra en la fi#ura Fi%.1.7.&. Fig.1.7.A Configuracin bsica de la familia MCS-51 Control de Interru'ciones C() *scilador 0 C 0 C 0 C 0 C +*M 12# B,tes +&M Bus de Control - (uertos I.* !8) ?*es en el (08! Timer 0 Timer 0 Timer 0 Enradas del -onador 6irecciones > 6aos +0 +1 +! +" (uerto Serial T'6 ;'6 1us caracersicas m%s imporanes son5 -+A de ( .is, opimi0ado para aplicaciones de conrol. +rocesador ?ooleano Doperacin so.re .isE. Espacio de memoria de pro#ramas de )4 B?*es. Espacio de memoria de daos de )4 B?*es. 4 B.*es de memoria inerna de pro#rama. 1!( .*es de memoria ;32 inerna. "! lneas de enrada salida, direcciona.les .i a .i. ! empori0adores>conadores de 1) .is. -omunicacin asncrona full duple'. 8 fuenes de inerrupcin. <scilador inerno. 1.7.- *r%ani/acin de la memoria Todos los disposii$os de la familia 2-1781 ienen separados los espacios de direcciones de daos * de pro#ramas, como se muesra en la fi#ura Fig.1.7.B. La separacin l#ica de am.as memorias permie que a ra$/s de la memoria de daos se acceda a direcciones de ( .is, lo cual permie que los daos puedan ser manipulados * almacenados m%s r%pidamene por las -+A de ( .is. Fig.1.7.B Organiacin de las memorias de !a"os # $rograma E3 F 0 E:TE;N3 INTE;N3 E3 F 1 0000 0GGG& 1GGG& (081 (08! E:TE;N3 GGGG& +1EN M0M*+I&10 (+*2+&M& 3S*L* 10 L0C4)+&5 1G; 00 7G& GG& (081 (08! E:TE;N3 00 GGGG& M0M*+I& 10 1&4*S 3L0C4)+& . 0SC+I4)+&5 ;6 H; La 2emoria de +ro#rama solamene puede ser leda, no escria, se pueden acceder &asa )4 ?*es en las $ersiones ;<2 * E+;<2 los m%s .a=os 4 B?*es u ( B?*es es%n denro del c&ip, dependiendo del ipo de disposii$o. En la $ersin sin ;<2, oda la memoria de pro#rama es e'erna. La sincroni0acin de la lecura para la memoria de pro#rama e'erna es la seal +1EN D+ro#ram 1ore Ena.leE. La memoria e'erna de daos puede ser direccionada &asa )4 B?*es * puede ser escria o leda, para lo cual la -+A #enera las seales H; * ;6, respeci$amene. Las memorias e'ernas de daos * de pro#rama pueden coe'isir, si se desea, aplicando las seales ;6 * +1EN a las enradas de una compuera 3N6 * uili0ando la salida de la compuera como seal de sincroni0acin a la memoria e'erna de +ro#rama>6aos. 1.7.5 Memoria de 'ro%rama La 2emoria de +ro#rama puede ser una com.inacin de inerna * e'erna o oalmene e'erna. En cualquiera de los dos casos aneriores, en la pare .a=a de la memoria de pro#ramas se encuenra una serie de posiciones de memoria, especiales para el raamieno de las inerrupciones. Ana inerrupcin se descri.e como una seal que #enera un disposii$o, para indicarle a la -+A que se requiere su aencin. Las inerrupciones nacen de la necesidad de e=ecuar un proceso en un insane preciso * ane la e'isencia de $arias, pueden crearse prioridades enre ellas, de al forma que una inerrupcin de .a=a prioridad puede ser inerrumpida por una de m%s ala, pero no se presena el proceso in$erso Las -+A aiende la inerrupcin mediane una ruina especial, reali0ada en el pro#rama, la cual es llamada ruina de ser$icio, una $e0 que la inerrupcin es aendida, la -+A re#resa al puno en el cual &a.a suspendido sus la.ores, fi#ura Fig.1.7.C ese proceso se lle$a a ca.o con la a*uda de la memoria ;32 inerna, en la cual se almacena pro$isionalmene la posicin de la insruccin que esa.a por e=ecuarse anes del llamado de inerrupcin. -omo pueden e'isir un .uen n9mero de inerrupciones, #eneradas por diferenes condiciones de los disposii$os, cada una de ellas de.e ener su propia ruina de ser$icio locali0ada en una posicin especfica de la memoria de pro#rama. Las inerrupciones pueden ser inernas o e'ernas, dependiendo de si la fuene que lo ori#ina esar denro del microconrolador o por fuera de ese. -omo se muesra en la fi#ura Fig.1.7.!, a cada inerrupcin se le asi#na una direccin fi=a de la memoria de pro#rama. La inerrupcin &ace que la -+A sale a esa localidad, donde comien0a la e=ecucin de una ruina de ser$icio. La posicin 000"4, por e=emplo, es% asociada a la inerrupcin E'erna 0 si la inerrupcin e'erna $a a ser uili0ada, la ruina de ser$icio de.e empe0ar en esa direccin. 1i la ruina no se uili0a, la posicin de memoria puede ser empleada como memoria de pro#rama Fig.1.7.C %s&uema de una in"erru'cin Las ruinas de ser$icio de las inerrupciones es%n separadas por iner$alos de ( .*es, si /sas no son lo suficienemene coras, las ruinas pueden uili0ar insrucciones de salo a una 0ona m%s amplia de la memoria de pro#ramas, con capacidad para conener el raamieno compleo a la inerrupcin. -omo se &a indicado, la pare .a=a de la memoria de pro#rama puede ser de 4 B?*es u ( B?*es, la cual se puede seleccionar denro de la memoria inerna o la e'erna. La seleccin se puede reali0ar mediane la conmuacin del pin E3 DE'ernal 3ccessE a Ccc o Ind, si ese pin se coneca a Ccc, la pare .a=a se .uscar% en la memoria inerna del microconrolador, si se coneca a Ind, lo &ar% en la memoria e'erna, en am.os casos, la pare superior de la memoria de pro#ramas D)0 B?*es o 8) B?*esE se .uscar% en la memoria e'erna. En los disposii$os sin ;<2, ese pin de.e conecarse a Ind para que el pro#rama se e=ecue apropiadamene. Ana seal de lecura de la ;<2 e'erna, +1EN D+ro#ram 1ore Ena.leE, se uili0a para odas las .9squedas de memoria e'erna * no es aci$ada en nin#9n caso para .9squedas en la memoria inerna. D!E CE-T<; 6E INTE;;A+-I<N +;<I;323 +;IN-I+3L D"E ;ATIN36E 1E;CI-I< 6E INTE;;A+-IJN ;TI D 1 E IN T E ; ; A + - I< N D 4 E ; E T < ; N < 6 E IN T E ; ; A + - I< N Fig.1.7.! (ec"ores de )n"erru'cin en la memoria de 'rograma En la fi#ura Fig.1.7.% se muesra la confi#uracin a uili0ar para la e=ecucin del pro#rama de memoria e'erna. 1e puede o.ser$ar que 1) lneas de I>< Dpueros +0 * +!E son dedicados a las funciones de .us durane la e=ecucin de la memoria e'erna. El puero +0 es muliple'ado en el iempo como .us de direcciones * de daos. Ese emie la pare .a=a del conador de pro#ramas D+-LE como una direccin * lue#o pasa un esado floane, esperando la lle#ada del cdi#o pro$eniene de la memoria de pro#ramas. Fig.1.7.% Configuracin del MCS-51 con memoria e*"erna de $rograma 6urane el iempo en el cual el .*e .a=o del conador de pro#ramas es esa.le en +0, la seal 3LE D3ddress Lac& Ena.leE fi=a ese .*e en el cerro=o de direcciones. 2ienras ano, el puero +! emie la pare ala del conador de pro#ramas D+-4E. Ginalmene, se emie el pulso de sincroni0acin +1EN * el cdi#o es ledo por el microconrolador. El direccionamieno de pro#ramas es siempre de 1) .is de anc&o, aunque el oal disponi.le de memoria de pro#ramas 0000& 000"& Inerrupcin E'erna 0 000?& 001"& 001?& 00!"& 00!?& Timer 0 Timer 1 Inerrupcin E'erna 1 Timer ! +uero 1erial 0GGG& +1 +" MCS-51 L3T-4 0 C +0 E3 3LE +! +1EN +*M0$40+6& IN1T; 366; <E sea menor a esa canidad. La e=ecucin de pro#ramas e'ernos sacrifica dos de los cuaro pueros de ( .is, +0 * +!, para direccin a la memoria de pro#ramas. Las secuencias de .9squeda * e=ecucin de las insrucciones no dependen de la uili0acin de la memoria inerna o e'erna lo que quiere decir que, en am.os casos, los iempos de e=ecucin ser%n los mismos. 1.7.7 Ciclo de m89uina En esa familia de microconroladores, un ciclo de m%quina consise en una secuencia de seis esados, numerados desde 11 &asa 1). -ada esado es% formado por dos perodos de la seal del relo=, * se denominan fases, +1 * +!, por lo ano, un ciclo de m%quina, oma 1! periodos de relo=, Dfi#ura Fig.1.7.FE. 1i la frecuencia de relo= es de 1! 240, el ciclo m%quina endr% una duracin de un microse#undo. Fig.1.7.F Ciclo de m&uina 1.7.7 Memoria de datos La familia 2-1781 puede acceder &asa )4 B.*es de memoria e'erna de daos. La fi#ura Fig.1.7.+ muesra la confi#uracin para uili0ar &asa dos B?*es de memoria e'erna. En ese caso, la e=ecucin se es% reali0ando desde la ;<2 inerna. 6e nue$o, el puero +0 es% siendo muliple'ado como .us de direcciones * daos de la ;32, * res lneas del puero +! se uili0an para pa#inarla. La -+A #enera la seales ;6 * H; necesarias durane el acceso de la ;32 e'erna. El direccionamieno de la memoria e'erna puede ser de uno o dos .*es de anc&o. El direccionamieno de un .*e se lo#ra por el puero +0, en con=uno con una o m%s lneas de I>< para pa#inar la ;32, como se muesra en la fi#ura Fig.1.7.+. Tam.i/n se puede uili0ar el direccionamieno de dos .*es, en cu*o caso el .*e alo de la direccin es emiido por el puero +!. +1 +! +1 +! +1 +! +1 +! +1 +! +1 +! 11 1! 14 1" 18 1) -I-L< 6E 23KAIN3 Fig.1.7.+ Configuracin del MCS-51 con memoria e*"erna de !a"os El mapa de memoria inerna se puede o.ser$ar en la fi#ura Fig.1.7.,. El espacio de memoria se muesra di$idido en res .loques, los cuales son llamados por lo #eneral como los 1!( .a=os, los 1!( alos * el espacio de los 1G; D1pecial Guncion ;e#isersE o ;e#isros de +ropsio Especial. Fig.1.7., Memoria de !a"os )n"erna El direccionamieno de la memoria es siempre de un .*e de anc&o, lo que implica que el espacio de direcciones es de solamene !8) .*es. 1in em.ar#o, los modos de direccionamieno pueden de &ec&o acomodar "(4 .*es, usando dos diferenes modos de direccionamieno de las insrucciones. El direccionamieno direco m%s alo que 7G4 uili0a un espacio de memoria, mienras que un direccionamieno indireco m%s alo que 7G4 accede a un espacio diferene de memoria. 6e.ido a eso, la fi#ura Fig.1.7., muesra los 1!( .*es alos * el espacio de los 1G; compariendo el mismo .loque de direcciones (04 &asa GG4, aunque ellos son fsicamene enidades separadas. 1e de aclarar que el %rea de direccionamieno slo indireco Dposiciones de ;32 (04 a GG4E es% +1 +" MCS-51 L3T-4 +0 E3 3LE +! +&M0$40+6& 63T<1 366; HE <E H; ;6 I>< ?is de +%#ina L8C 3--E1I?LE 1<L32ENTE 2E6I3NTE 6I;E--I<N32IENT< IN6I;E-T< 3--E1I?LE 2E6I3NTE 6I;E--I<N32IENT< 6I;E-T< E IN6I;E-T< 3--E1I?LE 2E6I3NTE 6I;E--I<N32IENT< 6I;E-T< ;e#isros de +ropsio Especia5l +ueros ?is de Esado * de -onrol Timers ;e#isros +unero de +ila 3cumulador 00& 7G& (0& GG& presene 9nicamene en los microconroladores (::!. Los 1!( .*es .a=os es%n presenes en odos los disposii$os 2-1781 * su mapa se encuenra en la fi#ura Fig.1.7.). -omo se puede o.ser$ar, se &a di$idido en res se#menos principales5 Fig.1.7.) -os 1./ b#"es ba0os de 1AM in"erna 1.7.7.1 Banco de re%istros Los "! .*es m%s .a=os D004 a1G4E se a#rupan en cuaro .ancos de ( re#isros. Las insrucciones del pro#rama llaman a esos re#isros ;0 &asa ;7. 6os .is en la pala.ra de esado D+1HE seleccionan cual .anco de re#isros es% en uso. Eso permie un uso m%s eficiene del espacio de cdi#o, as como insrucciones que in$olucran re#isros, m%s coras que aquellas que uili0an direccionamieno indireco. +or defeco cuando se aplica un ;E1ET al microconrolador, el .anco en uso es el 0. 1.7.7.2 &reas direcciona:les :it a :it Los 1) .*es si#uienes D!04 a !G4E, conforman un .loque en el que se puede direccionar direcamene .i por .i. El con=uno de insrucciones de los 2-1781 inclu*en una amplia $ariedad de insrucciones orienadas &acia .is, * los 1!( .is de esa %rea se pueden mane=ar direcamene por esas. Las direcciones de los .is de esa %rea $an desde 004 &asa7G4. 1.7.7.! ;rea de +&M del usuario Las posiciones resanes de la memoria ;32 inerna D"04 al 7G4E conforman la ;32 de ra.a=o del usuario o 1crac& +ad. La a.la Tab.1.7.B muesra la disposicin de los re#isros de propsio especial o 1G; D1pecial Guncion ;e#isersE, los cuales se pueden acceder solamene por direccionamieno direco. 3quellos re#isros que se encuenran en la columna i0quierda de la a.la am.i/n son direcciona.les .i a .i. Los re#isros encerrados enre par/nesis e'isen en los (::!, * no en los (::1. C/ase que no odas las direcciones es%n ocupadas, las direcciones desocupadas no es%n implemenadas en el ine#rado. 3l reali0ar lecuras en esas direcciones se o.endr%n daos aleaorios, mienras que escri.ir en ellas no endr%n efeco al#uno. Esas posiciones se reser$an para fuuros producos 2-1781, que poseer%n nue$as caracersicas. Tab.1.7.B 2rea de 1egis"ros de $ro'si"o %s'ecial SF1 F8 FF F0 B F7 E8 EF E0 ACC E7 D8 DF D0 PSW D7 C8 (T2CON) (RCAP2L) (RCAP2H) (TL2) (TH2) CF C0 C7 B8 IP BF B0 P3 B7 A8 IE AF A0 P2 A7 98 SCON SBUF 9F 90 P1 97 88 TCON TMOD TL0 TL1 TH0 TH1 8F 80 P0 SP DPL DPH PCON 87 La funcin de cada uno de los re#isros de propsio especial se descri.e a coninuacin 1.7.7.!.1 +e%istros direcciona:les :it a :it ACC. Es el re#isro acumulador, so.re el cual se reali0an las operaciones l#icas, arim/icas, de ransferencia, ec/era. B. 1e usa durane operaciones de muliplicacin * di$isin. +ara oras insrucciones, ese puede ser raado como cualquier oro re#isro del 1crac& +ad. (S<. +ro#ram 1aus Hord o +ala.ra de Esados del +ro#rama. -oniene informacin del esado del pro#rama * las .anderas que son afecadas como resulados de operaciones. (=> (1> (2> , (!. +ueros 0 a " son los cerro=os de los pueros 0,1,! * " respeci$amene. I0. Inerrup Ena.le o 4a.iliador de Inerrupciones. +ermie que se aiendan las inerrupciones que el usuario considere con$enienes. I(. Inerrup +riori* o +rioridad de Inerrupciones. -ada inerrupcin puede pro#ramarse con un #rado de prioridad, de al manera que una inerrupcin con ala prioridad no pueda ser inerrumpida por ora de prioridad m%s .a=a, pero si se presena el efeco in$erso. SC*6. 1erial +or -onrol o -onrol del +uero 1erial. Esa.lece los par%meros para la ransmisin o recepcin de daos a ra$/s del pueros serial Danc&o del dao, .is de inicio * parada, $elocidad, ec/era.E 4C*6. Timer>-ouner -onrol o -onrol de Tempori0ador>-onador. -onrola dos modos de operacin de los empori0adores * mane=a las inerrupciones asociadas, as como los .ancos de aci$acin. 1.7.7.!.2 +e%istros no direcciona:les :its a :it SB)F. 1erial ?uffer o ?uffer 1erial de daos. 1on dos re#isros que se uili0an para la ransmisin * recepcin de daos a ra$/s del puero serial. 4M*1. Timer>-ouner 2ode -onrol o -onrol de 2odo de Tempori0ador>-onador. 1elecciona los modos de operacin de los imers, si ac9an como empori0adores o como conadores, ec/era. S(. 1acM +oiner o +unero de +ila. Ese se incremena anes que un dao sea almacenado a causa de una insruccin +A14 o -3LL. La pila es un %rea de la memoria ;32, que se uili0a para almacenar emporalmene informacin .%sica del pro#rama, anes de aender una inerrupcin la pila puede residir en cualquier siio de la memoria ;32 pero el punero se iniciali0a despu/s del ;E1ET con 074. Eso ocasiona que la pila se inicie en la direccin 0(4. 1(4+. 6aa +oiner o +unero de 6aos. Es% consiuido por una are ala D6+4E * una pare .a=a D6+LE * coniene una direccin de 1) .is. 1e puede mane=ar como un re#isro de 1) .is o como dos re#isros independienes de ( .is. 4= , 41. Timers o Tempori0adores. 1on re#isros de 1) .is que pueden acuar como empori0adores o conadores e inclu*en dos re#isros de ( .is T40, TL0, T41 * TL1. (C*6. +oNer -onrol o -onrol de +oder. +osee un .i que cam.ia la $elocidad de comunicacin serial * en $ersiones -42<1 de esa familia, puede modificar el r/#imen de ra.a=o del microconrolador, reduciendo el consumo de ener#a. 1.7.7.!.! +e%istros e?clusivos de los microcontroladores #$$2 42C*6. Lo mismo queT2<6 *T-<N, pero aplicado al imer adicional que posee esa $ersin de microconrolador. +C&(2. -apure ;e#iser o ;e#isros de -apura. Inclu*e dos re#isros de ( .is D;-3+!4 * +-3+!LE que ra.a=an en con=uno con el TI2E;!. 4@2. La misma funcin de T0 * T1 descrios aneriormene. En la fi#ura Fig.1.7.3 se iene una esrucura m%s deallada de la familia de microconroladores 2-1781. 1e pueden o.ser$ar, adem%s de los .loques * los .uses, los pines de cone'in. Esos pines se muesran en la fi#ura Fig.1.7.4 * corresponden uno a uno con la fi#ura anerior. La si#uiene es la descripcin de esos pines5 Fig.1.7.3 %s"ruc"ura in"erna del microcon"rolador /551 Acc. Es la alimenacin del ine#rado * se de.e conecar por ano a L8 $olios dc. 3unque la familia 3mel permie una ran#o de alimenacin enre L!$ol a L) $ol. 2nd. Tierra o referencia del circuio. &L0.(+*2. 3ddress Lac& Ena.le o 4a.iliador del -erro=o de 6irecciones. +or ese pin se emie la seal para encla$ar el .*e .a=o de las direcciones, cuando se accede a la memoria e'erna. Tam.i/n es la enrada de los punos de pro#ramacin de la memoria E+;<2 Direcci!e"#D$%" Direcci!e"#D$%" Fig.1.7.4 Configuracin de 'ines del microcon"rolador /551 (S06. +ro#ram 1ore Ena.le o 4a.iliador de 3lmacenado de +ro#rama. Es la seal de sincroni0acin para leer la memoria e'erna del pro#rama. +1EN slo se ori#ina cuando se lee la memoria e'erna. 0&.A((. E'ernal 3ddress o 6ireccin E'erna. -uando se maniene en un ni$el l#ico alo, slo se e=ecua el pro#rama de la memoria inerna, a menos que conador de pro#rama e'ceda de 0GGG4 para los (:81 o 1GGG4 para los (:8!. 1i ese pin se maniene a un ni$el .a=o, el pro#rama que se e=ecua es el de la memoria e'erna, independienemene de la direccin del pro#rama durane la pro#ramacin de la memoria +;<2, ese pin reci.e un $ola=e que oscila enre 8 $olios * la ensin de pro#ramacin. $4&L1 , $4&L2. Enrada * salida del oscilador, respeci$amene se puede uili0ar un crisal de cuar0o un resonador cer%mico. +0S04. Enrada para la reiniciali0acin del sisema. El ;E1ET se produce cuando se coloca ese pin a un ni$el alo, por lo menos durane dos ciclos de m%quina. (uertos. Todos son .idirecciona.les de ( .is. -uando se escri.e O1P a los pines, esos se pueden usar como enradas de ala impedancia. -omo salida, cada pin del puero +0 puede mane=ar ( car#as TTL7L1, el reso de los pueros puede mane=ar slo cuaro car#as TTL7L1. Esos pueros am.i/n pueden acuar de la si#uiene manera5 (uerto = 3(=. 5 Es muliple'ado como la pare de .a=a de la direccin * del .us de daos durane el acceso a la memoria e'erna. 3dem%s, emie los cdi#os durane la pro#ramacin de la E+;<2 * los reci.e en la $erificacin del pro#rama. (uerto 1 3(15. 6urane la pro#ramacin * $erificacin de la E+;<2 reci.e la pare .a=a de las direcciones. 6os .is m%s .a=os ienen una funcin adicional en los ( ::!5 (1.=B42 Timer! o Tempori0ador!. Enrada e'erna para ese empori0ador>conador Dsolamene en los (::!E. (1.1B420$. -apura * recar#a de disparo para el Timer!. (uerto 2 3(25. Emie la pare ala de las direcciones durane el acceso e'erno de memoria * cuando el acceso de daos iene 1) .is, asimismo durane la pro#ramacin * $erificacin de la E+;<2. (uerto ! 3(!5. Ese iene funciones alernas especiales .ien deerminadas, ales como5 (!.=B+$1. Enrada del puero serial. (!.1B4$1. 1alida del puero serial. (!.2BI64=. Enrada de la inerrupcin e'erna 0. (!.!BI641. Enrada de la inerrupcin e'erna 1. (!.-B4=. Enrada e'erna del empori0ador>conador 0. (!.5B41. Enrada e'erna del empori0ador>conador 1. (!.7B<+. 1eal de escriura para elemenos e'ernos. (!.7B+1. 1eal de lecura para elemenos e'ernos. 1.7.# 4em'ori/adores . Contadores An imer ra.a=a como empori0ador cuando incremena o decremena su cuena con .ase en los impulsos reci.idos por relo= de insruccin del equipo. Lo &ar% como conador, cuando su cuena cam.ia ane la $ariacin de una condicin e'erna al disposii$o. Los dos esados son e'clu*enes * pueden ser pro#ramados por el usuario con $arias opciones de operacin * aci$acin. 1i se &a de usar el puero serial, uno de los imers de.e pro$eer la .ase de iempo requerida para la comunicacin serial asncrona. 1.7.C Comunicaciones En puero serie ra.a=a el modo full duple', lo que si#nifica que puede ransmiir * reci.ir daos simul%neamene. La familia2-1781 posee cuaro modos de comunicacin, denro de los cuales se encuenran sincrnicos * asncronicos, con $elocidades $aria.les por usuario. En esos modos de comunicacin no solamene le permien dialo#ar con oros microconroladores de la misma familia, sino con la de oros fa.ricanes, con memoria seriales e incluso con compuadores personales ipo +-. 1.7.1= Microcontrolador #=51 Todos los miem.ros de la familia 2-1781 e=ecuan del mismo con=uno de insrucciones, las cuales es%n orienadas &acia aplicaciones de ( .is. Esas insrucciones disponen de una amplia $ariedad de modos de direccionamieno para acceder a la ;32 inerna, faciliando las operaciones de .*e so.re una pequea esrucura de daos. Tam.i/n, esas permien la manipulacin direca de .is para sisemas l#icos * de conrol que requieran procesamieno ?ooleano. 1.7.1=.1 Modos de direccionamiento Los modos de direccionamieno son las formas en las cuales se puede acceder a la informacin e'isene, .ien sea denro de la ;32 inerna, la e'erna, la 0ona de re#isros de propsio especial o la ;<2 de pro#rama. E'isen $arias clases de direccionamieno5 1.7.1=.1.1 1ireccionamiento inmediato El operando fuene es un $alor consane que si#ue al operando desino. El sm.olo Q indica ese ipo de direccionamieno. Ejemplo: 2<C 1+,Q"44 ,car#a al punero de pila con el n9mero &e'adecimal "4E 3NL 3,Q101? ,reali0a operacin 3N6 enre el acumulador * el .inario 101 1.7.1=.1.2 1ireccionamiento directo. El operando se locali0a por un campo de direccin de ( .is, slo la ;32 inerna * las 0ona de los re#isros de propsio especial D1G;E pueden ser direccinados direcamene. Ejemplo: 2<C 1+,"44 ,car#a al punero de pila con lo e'isene en la posicin ,&e'adecimal "4 de la ;32 inerna 1.7.1=.1.! 1ireccionamiento indirecto La insruccin especifica un re#isro que coniene la direccin del operando, am.as memorias D;32 * ;<2E pueden ser direccinadlas indirecamene. El si#no R idenifica ese ipo de direccionamieno. El direccionamieno de ( .is se consi#ue a ra$/s de re#isro 1+ o de los re#isros ;0 * ;1 del .anco de re#isros seleccionado Dpor medio de los .is " * 4 del +1HE, mienras que el direccionamieno de los 1) .is slo se puede reali0ar por medio del punero de daos D6+T;E. Ejemplo: 2<C 3,R;0 ,car#a al acumulador con lo e'isene en la posicin de ,memoria descria por el conenido del re#isro ;0 aci$o. +ara aclarar lo anerior, supon#amos que ;0 coniene el $alor 404 * en la posicin 404 se iene un $alor 884, despu/s de la insruccin, el acumulador quedar% con el $alor 884. Esa forma de direccionamieno es mu* 9il para siuaciones en las cuales se requiere el mane=o de a.las * raslado coninuo de daos, por e=emplo. 1.7.1=.1.-. 1ireccionamiento 'or re%istro La insruccin especifica uno de los re#isros del .anco el uso. -omo se descri.i, los (:8: poseen cuaro .ancos de re#isros, los cuales se direccionan a ra$/s de los .is " * 4 del +1H, cada .anco coniene a su $e0, ( re#isros, desde ;0 &asa ;7. Ejemplo: 2<C ;1,Q"4 ,el re#isro ;1 aci$o se car#a con el n9mero decimal "4 En al#unas insrucciones, ese modo de direccionamieno iene un cdi#o m%s eficiene que el direccionamieno direco o inmediao Docupan menos .*es en la memoria de pro#ramaE. 1.7.1=.1.5 1ireccionamiento im'l"cito 3l#unas insrucciones son especficas en cuano al re#isro in$olucrado en la operacin, no necesian mencionar el operando porque es% implcio en el cdi#o de operacin. Ejemplo: -L; 3 ,odos los .is de re#isro acumulador se colocan en 0 IN- ;7 ,se incremena el conenido de re#isro ;7 1.7.1=.1.7 1ireccionamiento inde?ado 1lo es posi.le con la memoria de pro#ramas * 9nicamene permie la lecura, es 9il para acceder a a.las de daos que se encuenran en la memoria de pro#ramas. An re#isro de 1) .is Del 6+T; o conador pro#ramaE de.e apunar a la fase de la a.la * el acumulador se uili0a como despla0amieno para acceder al dao de iner/s. En oras pala.ras, al dao se accede por la suma de los conenidos del acumulador * el punero .ase. <ro ipo de direccionamieno inde'ado se uili0a en el caso de SsalosS de insruccin, en donde la direccin desino del salo es la suma del punero .ase * el acumulador. 1.7.1=.2 ConDunto de instrucciones En la familia de microconroladores 2-1781, el con=uno de insrucciones es% formado por )9 de ellas, aunque al#unas poseen disinos modos de direccionamieno, lo que proporciona un oal de 111 cdi#os diferenes. El con=uno de insrucciones se puede di$idir en los si#uienes ipos5 Insrucciones arim/icas Insrucciones l#icas Insrucciones para la ransferencia de daos en memoria inerna Insrucciones para la ransferencia de daos en memoria e'erna Insrucciones para el raamieno de a.las Insrucciones ?ooleanas Insrucciones de salo 1.7.1=.2.1 Instrucciones aritmEticas Tab.1.7.C )ns"rucciones ari"m6"icas Memnico Operandos Ciclos Descripcin 366 3,;n 1 3dd re#iser o 3ccumulaor 366 3,direc ! 3dd direc .*e o 3ccumulaor 366 3,R;i 1 3dd indirec ;32 o 3ccumulaor 366 3,Qdaa ! 3dd immediae daa o 3ccumulaor 366- 3,;n 1 3dd re#iser o 3ccumulaor Ni& -arr* 366- 3,direc ! 3dd direc .*e o 3ccumulaor Ni& -arr* 366- 3,R;i 1 3dd indirec ;32 o 3ccumulaor Ni& -arr* 366- 3,Qdaa ! 3dd immediae daa o 3cc Ni& -arr* 1A?? 3,;n 1 1u.rac ;e#iser from 3cc Ni& .orroN 1A?? 3,direc ! 1u.rac direc .*e from 3cc Ni& .orroN 1A?? 3,R;i 1 1u.rac indirec ;32 from 3-- Ni& .orroN 1A?? 3,Qdaa ! 1u.rac immediae daa from 3cc Ni& .orroN IN- 3 1 Incremen 3ccumulaor IN- ;n 1 Incremen re#iser IN- direc ! Incremen direc .*e IN- R;i 1 Incremen direc ;32 6E- 3 1 6ecremen 3ccumulaor 6E- ;n 1 6ecremen ;e#iser 6E- direc ! 6ecremen direc .*e 6E- R;i 1 6ecremen indirec ;32 IN- 6+T; 1 Incremen 6aa +oiner 2AL 3? 1 2ulipl* 3 T ? 6IC 3? 1 6i$ide 3 .* ? 63 3 1 6ecimal 3d=us 3ccumulaor En la a.la Tab.1.7.C se ienen las insrucciones arim/icas. En ella se indican los modos de direccionamieno que se pueden uili0ar para acceder al operando * los ciclos de m%quina que arda la e=ecucin de cada insruccin. . 6e la a.la Tab.1.7.C se o.ser$an al#unas cosas imporanes5 E'isen dos operaciones para la suma, una de ellas considera el acarre o carr*, mienras que la ora no. En la susraccin siempre paricipa el acarreo. 1e pueden incremenar o decremenar al#unos .*es de la memoria ;32 sin la paricipacin del acumulador. Ana de las operaciones de incremeno se reali0a so.re el re#isro 6+T; de 1) .is. E'isen un par de insrucciones D2AL * 6ICE que uili0an como fuenes * desinos o re#isros 3 * ?, con lo cual se permie la muliplicacin * di$isin de oper%ndose ( .is. E'ise la operacin 633, dedicada a reali0ar el a=use de la suma de numerosas ?-6. 1.7.1=.2.2 Instrucciones l%icas La a.la Tab.1.7.! coniene las insrucciones l#icas * los modos de direccionamieno permiidos. 1e o.ser$a que las operaciones ?ooleanas se pueden reali0ar so.re cualquiera de los 1!( .*e .a=os de la ;32 * el espacio de los 1G;, uili0ando direccionamieno direco, sin necesidad de uili0ar el acumulador. Las roaciones solo son posi.les so.re el acumulador * lo despla0an un .i, .ien sea a ra$/s del carr* o no. La insruccin 1H3+ inercam.ia los ni..les del acumulador, siendo una insruccin mu* uili0ada en manipulacin de n9meros ?-6. 6e ese con=uno de insrucciones, las 9nicas que afecan el carr* son ;L- 3 * ;;- 3. Tab.1.7.! )ns"rucciones -gicas Memnico Operandos Ciclos Descripcin 3NL 3,;n 1 3N6 ;e#iser o 3ccumulaor 3NL 3,direc ! 3N6 direc .*e o 3ccumulaor 3NL 3,R;i 1 3N6 indirec ;32 o 3ccumulaor 3NL 3,Qdaa ! 3N6 immediae daa o 3ccumulaor 3NL direc,3 ! 3N6 3ccumulaor o direc .*e 3NL direc,Qdaa " 3N6 immediae daa o direc .*e <;L 3,;n 1 <; re#iser o 3ccumulaor <;L 3,direc ! <; direc .*e o 3ccumulaor <;L 3,R;i 1 <; indirec ;32 o 3ccumulaor <;L 3,Qdaa ! <; immediae daa o 3ccumulaor <;L direc,3 ! <; 3ccumulaor o direc .*e <;L direc,Qdaa " <; immediae daa o direc .*e :;L 3,;n 1 E'clusi$e7<; re#iser o 3ccumulaor :;L 3,direc ! E'clusi$e7<; direc .*e o 3ccumulaor :;L 3,R;i 1 E'clusi$e7<; indirec ;32 o 3ccumulaor :;L 3,Qdaa ! E'clusi$e7<; immediae daa o 3ccumulaor :;L direc,3 ! E'clusi$e7<; 3ccumulaor o direc .*e :;L direc,Qdaa " E'clusi$e7<; immediae daa o direc .*e -L; 3 1 -lear 3ccumulaor -+L 3 1 -omplemen 3ccumulaor ;L 3 1 ;oae 3ccumulaor Lef ;L- 3 1 ;oae 3ccumulaor Lef &rou#& &e -arr* ;; 3 1 ;oae 3ccumulaor ;i#& ;;- 3 1 ;oae 3ccumulaor ;i#& &rou#& &e -arr* 1H3+ 3 1 1Nap ni..les Ni&in &e 3ccumulaor 1.7.1=.2.! Instrucciones de transerencia de datos La a.la Tab.1.7.% muesra las insrucciones disponi.les para mo$imieno de daos * los modos de direccionamieno que se puede uili0ar con cada uno de ellas. La insruccin 2<C UdesV,UsrcV permie ransferir daos enre la ;32 inerna * el %rea de re#isros 1G;, sin la paricipacin del acumulador. 1e de.e recordar que los 1!( .*es alos de la ;32 slo pueden ser direccinados indirecamene, mienras que el %rea de los 1G; slo se puede acceder por direccionamieno direco. La insruccin 2<C 6+T;,Qdao permie ransferir daos de 1) .is para iniciali0ar del punero de daos en el raamieno de a.las de la memoria de pro#rama, o para acceder a los daos de la memoria e'erna. La insruccin +A14 UsrcV incremena inicialmene en punero de pila D1+ o 1acM +oinerE * poseriormene copia de daos denro de la pila. La insruccin +<+ UdesV copia de daos desde la pila &acia re#isro desino * poseriormene decremena el punero de pila. 1e de.e recordar que la pila es% siuada denro de la memoria ;32 inerna * el punero de pila es% sealando &acia el .anco 1 de re#isros pero puede reu.icarse, de al manera que se localice en el %rea del 1crac& +ad. La operacin :-4 3,U.*eV &ace que el acumulador * el .*e direccinado inercam.ien sus daos. La insruccin :-46 3,R;i es similar, pero solamene los ni..les .a=os paricipan en el inercam.io. Tab.1.7.% )ns"rucciones de Transferencia de da"os Memnico Operandos Ciclos Descripcin 2<C 3,;n 1 2o$e re#iser o 3ccumulaor 2<C 3,direc ! 2o$e direc .*e o 3ccumulaor 2<C 3,R;i 1 2o$e indirec ;32 o 3ccumulaor 2<C 3,Qdaa ! 2o$e immediae daa o 3ccumulaor 2<C ;n,3 1 2o$e 3ccumulaor o re#iser 2<C ;n,direc ! 2o$e direc .*e o re#iser 2<C ;n,Qdaa ! 2o$e immediae daa o re#iser 2<C direc,3 ! 2o$e 3ccumulaor o direc .*e 2<C direc,;n ! 2o$e re#iser o direc .*e 2<C direc,direc " 2o$e direc .*e o direc 2<C direc,R;i ! 2o$e indirec ;32 o direc .*e 2<C direc,Qdaa " 2o$e immediae daa o direc .*e 2<C R;i,32o$e 1 3ccumulaor o indirec ;32 2<C R;i,direc ! 2o$e direc .*e o indirec ;32 2<C R;i,Qdaa ! 2o$e immediae daa o indirec ;32 2<C 6+T;,Qdaa " Load 6aa +oiner Ni& a 1)7.i consan 2<C- 3,R3L6+T;1 2o$e -ode .*e relai$e o 6+T; o 3cc 2<C- 3,R3L+- 1 2o$e -ode .*e relai$e o +- o 3cc 2<C: 3,R;i 1 2o$e E'ernal ;32 D(7.i addrE o 3cc 2<C: 3,R6+T; 1 2o$e E'ernal ;32 D1)7.i addrE o 3cc 2<C: R;i,3 1 2o$e 3cc o E'ernal ;32 D(7.i addrE 2<C: R6+T;,3 1 2o$e 3cc o E'ernal ;32 D1)7.i addrE +A14 direc ! +us& direc .*e ono sacM +<+ direc ! +op direc .*e from sacM :-4 3,;n 1 E'c&an#e re#iser Ni& 3ccumulaor :-4 3,direc ! E'c&an#e direc .*e Ni& 3ccumulaor :-4 3,R;i 1 E'c&an#e indirec ;32 Ni& 3ccumulaor :-46 3,R;i 1 E'c&an#e loN7order 6i#i indirec ;32 Ni& 3cc En la a.la Tab.1.7.% se muesran las insrucciones para acceder a la memoria e'erna de daos. 1olamene se puede uili0ar el direccionamieno indireco para lo#rarlo. El acceso a la memoria e'erna se puede o.ener mediane dos alernai$as5 por direccionamieno de un .*e, R;i, donde ;i es cualquiera de los re#isros ;0 o ;1 del .anco de re#isro seleccionado, o el direccionamieno de ! .*es, R6+T;. 1e de.e recordar que el direccionamieno de 1) .is dedica los pueros +0 * +! para #enerar la direccin de acceso, por ese moi$o, cuando se preende acceder a un .anco pequeo de memorias ;32, lo m%s $ena=oso es uili0ar el direccionamieno de un .*e, *a que permie uili0ar al#unas de las lneas del puero dos para oras aplicaciones. El direccionamieno de ! .*e slo se =usifica en caso de poseer una memoria ;32 de )4 B.*es. <.ser$e que en odas las insrucciones, el acumulador es siempre el desino o la fuene del dao. Las seales de sincroni0acin de lecura * escriura D;6 * H;E se aci$an 9nicamene durane la insruccin 2<C:, normalmene esas seales permanecen inaci$as. -uando no se posee memoria e'erna, los pin correspondienes se uili0an como lneas e'ras de enrada>salida. La a.la Tab.1.7.% am.i/n muesra las dos insrucciones disponi.les para la lecura de a.las en la memoria de pro#rama. -omo /sas insrucciones acceden solamene a la memoria de pro#ramas, las a.las slo pueden ser ledas, no acuali0adas. El memnico es 2<C-, para mo$er consane. 1i la a.la que se accede es% en la memoria e'erna de pro#rama, enonces la seal para la sincroni0acin de la lecura que es +1EN. La primera insruccin 2<C- puede acomodar una a.la de &asa !8) enradas, enumeradas desde 0 &asa !88. El n9mero de la enrada desea.a se car#a en el acumulador * el punero de daos seala el comien0o de la a.la, la e=ecucin de la insruccin copiar% el $alor deseado de la a.la en el acumulador. La ora insruccin 2<C- ra.a=a de la misma manera, e'cepo que el conador de pro#rama D+-E se a=usa como .ase de la a.la * a /sa se accede a ra$/s de una su.ruina. 6e nue$o, el acumulador coniene la enrada deseada * las su.ruina se llama, de manera similar a eso5 2<C 3,QEnrada -3LL Ta.la Las su.ruina Ta.la de.e ser al#o como lo si#uiene5 Ta.la5 2<C- 3,R3L+- ;ET 6? 8 6? 7 6? ( La insruccin si#uiene a la .ase de la a.la, en la memoria de pro#rama, de.e ser ;ET Dreorno de inerrupcinE. Ese ipo de a.la puede ener &asa !88 enradas, numerad%s desde 1 &asa !88. La enrada n9mero 0 no se puede uili0ar, porque una $e0 que la insruccin 2<C- se e=ecua, el conador de pro#rama se acuali0a con la direccin de la insruccin ;ET. Ana enrada numerada como 0 reornar% el cdi#o de la operacin de la insruccin ;ET. 1.7.1=.2.- )ns"rucciones Booleanas La familia 2-1781 coniene un procesador ?ooleano Dorienado &acia operaciones so.re .isE mu* compleo. La memoria ;32 coniene 1!( .is direccina.les * el espacio de los 1G; puede soporar oros 1!( .is direccina.les , como se descri.i aneriormene. Los .is direccionados desde 004 &asa 7G4 perenecen al %rea de los 1!( .is .a=os, mienras que los direccionados desde (04 &asa 0GG4 perenecen al espacio de los 1G;. Todas las lneas de los pueros son direcciona.les .i a .i, de manera que cada una puede ser raada como puero de un .i. Las insrucciones se muesran en la a.la Tab.1.7.F * se o.ser$a que /sas no solamene acceden a los .is para salos condicionales, am.i/n &a* un con=uno de car#as, aci$acines, limpie0as, complemenos * operaciones 3N6 * <;. En cuano a los salos condicionales, las insrucciones $erifican el esado de los .is direccinados * e=ecuan un salo relai$o al conador del pro#rama, si la condicin se cumple. El ran#o del salo relai$o es% locali0ado enre las 71!( a L 1!7 posiciones, con relacin al $alor del conador de pro#rama Dla insruccin acual L 1 .*eE. Tab.1.7.F )ns"rucciones Booleanas Memnico Operandos Ciclos Descripcin -L; - 1 -lear -arr* L; .i ! -lear direc .i 1ET? - 1 1e -arr* 1ET? .i ! 1e direc .i -+L - 1 -omplemen -arr* -+L .i ! -omplemen direc .i 3NL -,.i ! 3N6 direc .i o -3;;@ 3NL -,>.i ! 3N6 complemen of direc .i o -arr* <;L -,.i ! <; direc .i o -arr* <;L -,>.i ! <; complemen of direc .i o -arr* 2<C -,.i ! 2o$e direc .i o -arr* 2<C .i,- ! 2o$e -arr* o direc .i W- rel ! Wump if -arr* is se WN- rel ! Wump if -arr* no se W? .i,rel " Wump if direc ?i is se WN? .i,rel " Wump if direc ?i is No se W?- .i,rel " Wump if direc ?i is se T clear .i 1.7.1=.2.5 Instrucciones de salto La a.la Tab.1.7.+ muesra la lisa de salos incondicionales * condicionales disponi.les para la familia de microconroladores 2-1781. Tab.1.7.+ )ns"rucciones de sal"o Memnico Operandos Ciclos Descripcin 3-3LL addr11 ! 3.solue 1u.rouine -all L-3LL addr1) " Lon# 1u.rouine -all ;ET 1 ;eurn from 1u.rouine ;ETI 1 ;eurn from inerrup 3W2+ addr11 ! 3.solue Wump LW2+ addr1) " Lon# Wump 1W2+ rel ! 1&or Wump Drelai$e addrE W2+ R3L6+T; 1 Wump indirec relai$e o &e 6+T; WX rel ! Wump if 3ccumulaor is Xero WNX rel ! Wump if 3ccumulaor is No Xero -WNE 3,direc,rel " -ompare direc .*e o 3cc and Wump if No Equal -WNE 3,Qdaa,rel " -ompare immediae o 3cc and Wump if No Equal -WNE ;n,Qdaa,rel " -ompare immediae o re#iser and Wump if No Equal -WNE R;i,Qdaa,rel" -ompare immediae o indirec and Wump if No Equal 6WNX ;n,rel ! 6ecremen re#iser and Wump if No Xero 6WNX direc,rel " 6ecremen direc .*e and Wump if No Xero N<+ 1 No <peraion Las insrucciones de salo DWu2+E muesran res $arianes51W2+, 3W2+ * LW2+ 7 que difieren en el formao de la direccin desino. La insruccin 1W2+ codifica la direccin desino como una consane de ( .is, ra%ndola como un despla0amieno relai$o, similar al descrio en el puno anerior. 3s, la lon#iud del salo se limia en el ran#o enre 71!( * 1!7 .*e relai$os a la insruccin que si#ue a la insruccin 1W2+. La insruccin ocupa dos .*es en la memoria de pro#ramas. La insruccin LW2+ codifica la insruccin desino como una direccin de 1) .is, por lo ano, la direccin desino puede esar locali0ada en cualquier siio de la memoria de pro#rama de )4 B.*es. La insruccin iene una lon#iud de " .*es. La insruccin 3W2+ codifica la direccin desino como una consane de 11 .is, cuando se e=ecua esa insruccin, los 11 .is correspondienes a la direccin desino se copian en los 11 .is m%s .a=os del conador de pro#rama. 3s, la direccin desino puede ser un puno cualquiera de la memoria de pro#rama siuado en el mismo .loque de ! B?*es de la insruccin si#uiene al salo. La insruccin iene dos .*es de lar#o. En odos los casos, el pro#ramador especifica la direccin desino en el ensam.lador de la misma manera5 como una eiquea o como una direccin de 1) .is. El ensam.lador colocar% la direccin desino en el formao correco para la insruccin dada. La insruccin W2+ R3L6+T; es% diseada para el caso de salos. La direccin desino se calcula al momeno de e=ecucin, como las suma del re#isro de 1) .is 6+T; * el acumulador. Tpicamene, el 6+T; coniene la direccin de la .ase de la a.la * el acumulador el ndice de acceso. 1upon#amos, por e=emplo, que se leer% de un eclado un $alor comprendido enre 0 * 4 * ese $alor se car#a en el acumulador. -omo cada $alor de.e ener un raamieno diferene, las insrucciones que permie eso ienen, m%s o menos la si#uiene esrucura5 2<C 6+T;,QTa.la 2<C 3, Indice ;L 3 W2+ R3L6+T; La a.la respeci$a endra la forma5 Ta.la5 3W2+ -31<Y0 3W2+ -31<Y1 3W2+ -31<Y! 3W2+ -31<Y" La insruccin ;L 3 muliplica por dos el $alor ndice, *a que cada insruccin en la a.la de salos ocupa dos .*e de la memoria de pro#rama. La a.la Tab.1.7.+ muesra am.i/n una insruccin las $arianes de la insruccin de llamada a su.ruina D-3LLE5 L-3LL * 3-3LL. 3m.as se raan de la misma manera a como suceda en el caso de los salos. La insruccin L-3LL uili0a un formao de 1) .is, mienras que 3-3LL lo &ace con un formao de 11 .is. El pro#ramador especifica una eiquea o una direccin de 1) .is * el ensam.lador se encar#a de colocarle el formao correco a la direccin. Las su.ruinas de.en finali0ar con una insruccin ;ET, la cual o.li#a a que el pro#rama reorne a la insruccin si#uiene a la que &i0o la llamada con la insruccin -3LL. La insruccin ;ETI se uili0a para re#resar de la ruina de ser$icio a una inerrupcin. La a.la Tab.1.7.+ coniene la lisa de las insrucciones disponi.les para los salos relai$os en la familia 2-1781. odos los salos especifican el desino como un despla0amieno relai$o al .*e si#uiene de la insruccin, los salos es%n limiados al ran#o comprendido enre 71!( * 1!7 .*es. -omo se descri.i en los casos aneriores, el pro#ramador especifica la direccin desino como una eiquea una consane de 1) .is. 1i el salo es% por fuera del ran#o descrio, el ensam.lador escri.ir% el mensa=e S6esinaion ou of ;an#eS D6esino fuera de ran#oE en el lisado de errores del pro#rama. Las insrucciones WX * WNX $erifican direcamene el acumulador, *a que no se posee una .andera de cero en el re#isro +1H. La insruccin 6WNX D6ecremen and Wump if No Xero 7 decremeno * salo si no es ceroE se uili0a para conrolar .ucles. +ara e=ecuar unas insrucciones N n9mero de $eces, se car#a un conador con N * se ermina el .ucle con la insruccin 6WNX , como se muesran el si#uiene e=emplo5 2<C -onador,Q10 Loop5 ,comien0o del .ucle ,Insrucciones ,Gin del .ucle 6WNX conador,Loop Las insrucciones conenidas en el .ucle se e=ecuar%n, en ese caso die0 $eces. La insruccin -WNE D-ompare and Wump if No Equal 7 compare * sale si no es i#ualE am.i/n se puede uili0ar para operaciones de conrol de .ucles. El salo se reali0a solamene si los dos .*es no son i#uales. <ra aplicacin de esas insrucciones es la comparacin enre dos canidades sin si#no5 si el primero es menor que el se#undo, el carr* se aci$a Dse ponen 1E, si es ma*or o i#ual, el carr* se coloca en 0. 1.7.11 0l microcontrolador &4M0L &4#CC2=51
1.7.11.1 1escri'cin del &4#CC52 El 3T(9-!081 es un microconrolador -2<1 de (7.is de alo rendimieno * .a=o $ola=e de ra.a=o que coniene ! Bilo.*es de memoria +E;<2 DGlas& pro#ramma.le and erasa.le read onl* memor*E. Ese disposii$o se fa.rica usando la ecnolo#a de memoria no $ol%il de ala densidad * es compai.le a ni$el de con=uno de insrucciones * disri.ucin de pins con el sandard indusrial 2-1781. 3l com.inar el $ers%il -+A de (7.is con la memoria Glas& en un solo c&ip, el 3T(9-!081 de 3mel es un microconrolador poene que pro$ee una solucin alamene fle'i.le * efeci$a en coso para la reali0acin de aplicaciones de conrol. El 3T(9-!081 pro$ee las si#uiene opciones sandard5 ! B.*es de Glas&, 1!( .*es de ;32, 18 lneas I><, dos imer>couner de 1) .is, cinco $ecores de arquiecura de inerrupcin de dos ni$eles, puero serial full7duple', un comparador an%lo#o de precisin, oscilador en el propio c&ip * circuiera de relo=. En adicin, el 3T(9-!081 esa diseado con l#ica es%ica lo que permie una operacin con frecuencia cero. 1opora adem%s dos modos de a&orro de poder selecciona.les por sofNare. El modo Idle deiene el -+A mienras permie que la ;32, imer>couner, el puero serial * el sisema de inerrupcin conin9en funcionando. El modo +oNer 6oNn maniene los conenidos de la ;32 pero deiene el oscilador des&a.iliando, por lo ano, odas las oras funciones del c&ip &asa que ocurra el si#uiene ;ese por &ardNare. 1.7.11.2 Caracter"sticas del &4#CC2=51 -ompai.le con la familia 2-1781 ! B.*es de 2emoria Glas& repro#rama.le +ermie 1000 ciclos de Ira.acin>?orrado del Glas& ;an#o de operacin desde !.7 a ).0 $olios 6-. <peracin es%ica complea5 0 Z40[ a !4 Z240[ +roeccin conra lecura de 2emoria de +ro#rama D-erro=oE de dos ni$eles 1!( .*es de ;32 inerna 18 lineas I>< pro#ramam.les ! Timer>-ouner de 1) .is ) Guenes de inerrupcin -anal A3;T 1erial pro#rama.le 1alidas en corriene con capacidad direca de mane=o de LE61 -omparador an%lo#o inerno 2odos de a&orro de ener#ia +oNer Idle * +oNer 6oNn 1.7.11.! Coni%uracin de (ins 'ara el &4#CC2=51 El 3T(9-!081 $iene en un encapsulado de !0 pins D6I+ !0E * la diri.ucin del pailla=e se muesra en la fi#ura Fig.1.7.-. Fig.1.7.- AT/7C.5518Configuracion de $ins 1.7.12 0l microcontrolador &4M0L &4#CC52 1.7.12.1 1escri'cin del &4#CC52 El 3T(9-8! es un microconrolador -2<1 de (7.is de alo rendimieno * .a=o $ola=e de ra.a=o que coniene ( Bilo.*es de memoria +E;<2 DGlas& pro#ramma.le and erasa.le read onl* memor*E. Ese disposii$o se fa.rica usando la ecnolo#a de memoria no $ol%il de ala densidad * es compai.le a ni$el de con=uno de insrucciones * disri.ucin de pins con el sandard indusrial (0-81 * (0-8!. 3l com.inar el $ers%il -+A de (7.is con la memoria Glas& en un solo c&ip, el 3T(9-!081 de 3mel es un microconrolador poene que pro$ee una solucin alamene fle'i.le * efeci$a en coso para la reali0acin de aplicaciones de conrol. El 3T(9-8! pro$ee las si#uiene opciones sandard5 ( B.*es de Glas&, !8) .*es de ;32, "! lneas I><, res imer>couner de 1) .is, seis $ecores de arquiecura de inerrupcin de dos ni$eles, puero serial full7duple', oscilador en el propio c&ip * circuiera de relo=. En adicin, el 3T(9-!081 esa diseado con l#ica es%ica lo que permie una operacin con frecuencia cero. 1opora adem%s dos modos de a&orro de :T3L1 8 ;1T 1 C-- !0 D;:6E +".0 ! DT:6E +".1 " ) D INT0 E +".! 7 D INT1 E +"." D3IN0E +1.0 D3IN1E +1.1 +1.! +1." 1! 1" 14 18 :T3L! 4 DT0E +".4 ( DT1E +".8 9 11 +".7 +1.4 +1.8 +1.) +1.7 1) 17 1( 19 IN6 10 &4#CC2=51 poder selecciona.les por sofNare. El modo Idle deiene el -+A mienras permie que la ;32, imer>couner, el puero serial * el sisema de inerrupcin conin9en funcionando. El modo +oNer 6oNn maniene los conenidos de la ;32 pero deiene el oscilador des&a.iliando, por lo ano, odas las oras funciones del c&ip &asa que ocurra el si#uiene ;ese por &ardNare. 1.7.12.2 Caracter"sticas del &4#CC52 -ompai.le con la familia 2-1781 ( B.*es de 2emoria Glas& repro#rama.le +ermie 1000 ciclos de Ira.acin>?orrado del Glas& ;an#o de operacin desde !.7 a ).0 $olios 6-. <peracin es%ica complea5 0 Z40[ a !4 Z240[ +roeccin conra lecura de 2emoria de +ro#rama D-erro=oE de dos ni$eles !8) .*es de ;32 inerna "! lineas I>< pro#ramam.les " Timer>-ouner de 1) .is ( Guenes de inerrupcin -anal A3;T 1erial pro#rama.le 2odos de a&orro de ener#ia +oNer Idle * +oNer 6oNn 1.7.12.! Coni%uracin de (ins 'ara el &4#CC52 El 3T(9-!081 $iene en un encapsulado de 40 pins D6I+ 40E * la diri.ucin del pailla=e se muesra en la fi#ura Fig.1.7.M. Fig.1.7.M AT/7C5.8Configuracion de $ins :T3L1 19 C-- 40 :T3L! 1( E3 >C++ "1 "0 3LE> +;<I !9 +1EN ;1T 9 DT!E +1.0 1 DT! E:E +1.1 ! " +1.! 4 +1." D360E +0.0 D361E +0.1 D36!E +0.! D36"E +0." "9 "( "7 ") +1.4 8 +1.8 ) 7 +1.) ( +1.7 D364E +0.4 D368E +0.8 D36)E +0.) D367E +0.7 "8 "4 "" "! &4#CC52 D;:6E +".0 10 DT:6E +".1 11 1! D INT0 E +".! 1" D INT1 E +"." D3(E +!.0 D39E +!.1 D310E +!.! D311E +!." !1 !! !" !4 DT0E +".4 14 DT1E +".8 18 1) D H; E +".) 17 D ;6 E +".7 D31!E +!.4 D31"E +!.8 D314E +!.) D318E +!.7 !8 !) !7 !( IN6 !0