Título: AT89S52 o AT89C52 Timer, Contadores Publicado por: CATBro en 28 Octubre 2011, 09:11 am Que tal foro, mi primer post en electronica y tengo tres dudas que no me entran en la cabeza, resulta que tengo unas practicas en la escuela con este microcontrolador AT89C52 o AT89S52 y ni el maestro se explica bien.
Consegui un manual de ese micro, no el datasheet si no el manual con los temas, y sigo sin entender como funcionan y como accedo a esto, todo las practicas las hacemos en ASM del micro. Alguien que sea amable y me ayude explicandome esto. No saben que agradecido estaria ;-) Título: Re: AT89S52 o AT89C52 Timer, Contadores Publicado por: skapunky en 30 Octubre 2011, 21:50 pm Realmente es dificil explicarlo bien y menos sobre Atmel que estos microcontroladores están obsoletos, por suerte yo en la facultad hace años me tocó la típica assignatura de micros y trabajé con atmel.
Cada micro tiene unos registros para los timers y los contadores, eso lo deberías mirar en tu datasheet, digo que realmente es dificil explicar eso porque debería ceñirme en tu caso en particular con esos modelos pero te lo explicaré de forma general. Tanto para manjear los timers como los contadores, exísten un o varios registros que se deben habilitar, estos registros tienen 8 bits. Cada bit de ellos es a su vez un "subregistro de 1 bit" que según si está a 0 o 1 lo activaremos. Es parecido a la palabra de estado, no se si habrás oído hablar de ella donde tiene 8 bits con 8 funciónes distintas. Lo mejor para entender esto, es en las practicas de laboratorio donde lo programes, y si tienes dudas deberías preguntar porque es algo que cuando tienes delante el programa se entiende fácilmente. Te recomiendo que leas detalladamente el apartado del datasheet de los contadores y temporizadores, aunque el micro tenga 2 o 3 de cada uno de ellos todos funcionan igual solo que su registro lleva el numero que sea. Si tienes dudas mas específicas te puedo ayudar. NOTA: No se si demasiada gente por aquí te podrá ayudar ya que Atmel se da en algunas universidades y en todos lados enseñan Microchip, yo ahóra estoy oxidado en Atmel pero si ves que tienes apuros me pongo contigo con lo que necesites. Título: Re: AT89S52 o AT89C52 Timer, Contadores Publicado por: CATBro en 11 Noviembre 2011, 00:17 am Jeje muchas gracias por contestar y por ofrecerte a echarme una mano, pense que nadie iva a contestar :laugh: , estuve estos dias con una practica que usaba un temporizador y mas o menos le entendi pero no muy bien , respecto a los registro de 8 bits que me dices, son el registro TMOD y TCON los que tengo que utilizar. Pero sigo sin entender el funcionamiento a la perfeccion dejen pongo un ejemplo:
Código:
Lo que debe de hacer es prender un led por 7 segundos y apagarlo por 3 segundos, pero todo esto esta muy difuso, como en la parte de ANL A,#020H no entiendo para que lo multiplica..... Saludos Título: Re: AT89S52 o AT89C52 Timer, Contadores Publicado por: skapunky en 11 Noviembre 2011, 21:18 pm Citar AQUI: MOV A,TCON ANL A,#020H ;<-------------------No entiendo esta parte... JZ AQUI RET Primero a entender que es "ANL", según la descripción del manual de instrucciónes de Atmel tenemos: Citar Operation: ANL Function: Bitwise AND Syntax: ANL operand1, operand2 Description: ANL does a bitwise "AND" operation between operand1 and operand2, leaving the resulting value in operand1. The value of operand2 is not affected. A logical "AND" compares the bits of each operand and sets the corresponding bit in the resulting byte only if the bit was set in both of the original operands, otherwise the resulting bit is cleared. Es decir, compara dos valores...esto lo hace en forma de "mascara" imagino que sabes lo que es, por si no lo sabes una mascara se utiliza para comparar si un valor de un registro o uno de los bits de un registro es el valor que deseamos, en este caso del registro TCON donde su valor lo almacenamos en el acumulador A. Vamos línea por línea: Código Ahora paso a explicarte lo de la mascara, el valor TCON = XXXXXXXX donde A = TCON = XXXXXXXX. Ahóra comparamos con una AND bit por bit el valor de TCON con el valor de la mascara 020h xxxxxxxx 00100000 ------------ Aplicamos AND bit a bit xx@xxxxx Donde el valor @ será 0 o 1 dependiendo del 6º bit de TCON, una vez comprovado si es cero salta a la etiqueta y si no es cero va a RET. Espero que entiendas la explicación, si tienes dudas pregunta a tu profesor lo que es una "mascara" porque en ensamblador para comprovar si el bit N de un registro es 0 o 1 es obligatorio siempre hacerlo. Enlaces que te pueden ayudar: 8051 instruccion set (http://www.win.tue.nl/~aeb/comp/8051/set8051.html#51anl) Assembler user guide ATMEL (http://www.atmel.com/dyn/resources/prod_documents/doc1022.pdf) Por cierto TL0 y THO era para cargar el valor de la temporización no? :xD deberé repasar los registros de atmel, todo por no mirar en el datasheet de uno de ellos jajaja. Si tienes mas dudas te ayudaré encantado, por suerte el oxido que tengo en atmel lo puedo pulir. |