# Programar AT89C52



## olemishue (Jun 4, 2007)

Hola, estoy programadno el AT89C52. El programa lo hago en ensamblador porque es muy simple. Estoy utilizando el uVison3 para desarrollar el proyecto.
¿Hay que poner alguna cabecera especial al programa? 

Yo pongo:

$nomod51
$include (c8051f000.inc) 

Porque tengo una subrutina para desactivar el reset por el watchdog timer. ¿Estaria correcto con esta cabecera?

Gracias por adelantado. Espero respuestas


----------



## diego_daniel (Jun 4, 2007)

Estoy trabajando con el mismo micro, no se que haces con $include (c8051f000.inc), lo que se es que el $nomod51 es porque en realidad no es un 8051 de los originales, sino una vercion con unas prestaciones un poquito mejor, entonces con esa cabecera le decis al keil que no es el 8051.
Luego de eso yo pongo $include (reg52.inc), que de esta forma le digo al keil que es este el micro que uso. Mas que eso no te puedo aportar, espero sea de ayuda.
Yo estoy haciendo un proyecto tambien con ese micro y con el Keil tambien, asi que podemos estar en contacto....   Saludos.... diego_daniel


----------



## olemishue (Jun 4, 2007)

Muchas gracias!!

Mañana voy a probar a programar el microcontrolador con la cabecera que tengo y poniendo lo que me has comentado.


----------



## Danmoon (Sep 22, 2008)

Hola estoy trabajando con el AT89C52 el prog que uso para programarlo es uno que creó un catedratico de mi universidad pero el solo entrega un demo, y ahora que estoy haciendo un programa grande que tiene mas de 500 lineas no lo compila, quisiera saber que programa puedo usar para programar este micro, al menos un programa mas comercial, tengo mi archivo asm pero no lo puedo compilar a hex para probarlo en el micro, les agradeceria su ayuda. Gracias


----------



## DonGato (Abr 22, 2009)

Danmoon dijo:
			
		

> Hola estoy trabajando con el AT89C52 el prog que uso para programarlo es uno que creó un catedratico de mi universidad pero el solo entrega un demo, y ahora que estoy haciendo un programa grande que tiene mas de 500 lineas no lo compila, quisiera saber que programa puedo usar para programar este micro, al menos un programa mas comercial, tengo mi archivo asm pero no lo puedo compilar a hex para probarlo en el micro, les agradeceria su ayuda. Gracias


----------



## oscareev (Abr 22, 2009)

Cordial saludo...


pasen por este link

http://www.mecatronika.com/2009/04/programador-atmel-89series/

suerte


----------



## tripto (Abr 23, 2009)

Buenas , estoy estudiando con el micro hace bastante tiempo , estaria bueno  debatir ideas en todo tipo de temas relacionados con este . programacion y hardware.-
Hay mucha información , ya que es viejito , pero la familia 51 es muy fuerte , 
Para progamarlo uso c , en keil Uvision 3.
Les dejo algo.
Es un hard programador muy sencillo y funciona. 
Està un programa para cargar el  .hex (generado por nosotros) y enviarlo por puerto paralelo hacia el programador para que se grabe en el micro  . (ISP). Funciona ok.
Espero que les sirva.

Sls!

SLs!


----------



## luis carlos andres (May 23, 2009)

Hola a todos,  entré al chat de electronica hace muy poco y pués mirando un poco  se que hay personas que saben bastante  del tema de los microcontroladores, si es posible que me ayudaran con una duda les agradecería mucho su colaboración , mi duda es la  siguiente: necesito poner la señal de EA en 0 para utilizar la memoria externa,  si alguien sabe la instruccion en ensamblador me ayudaria en mucho. Gracias.


----------



## alejandro pino (Jun 17, 2017)

hola luis carlos andres:

para memoria externa pones exactamente /EA a cero, ademas de todas las conexiones externas que hay que hacer. en el prog dentro del micro solo tienes que emplear o R0 o R1 o el DPTR (para toda la memoria) y el acumulador para referirte a mem externa con la instruccion MOVX <destino>, <fuente>
destino es la direcc de mem de datos a la que quieres copiar algo y fuente es la direccion de la q quieres copiar algo.ej
MOV R0, 20h
MOVX A, @R0        //copia de la 20h de mem externa al acumulador

MOV R0, 20h
MOVX @R0, A        //copia a la 20h de mem externa lo que está en el acumulador

todo esto si usas la mem externa como datos, si la empleas como mem de programa tienes que trabajar con la señal PSEN (0 mem de prog  externa, el micro ignora la mem de codigo interna) estando igual EA a 0. Solo la utilizas para selecc las mem en cada caso, segun se active.es la misma instrucción solo que el opernando destino no puede ser la memoria

recuerda que solo tienes 64k de mem direccionable (p0 y P2)

saludos


----------

