Problema con simulacion de un at89s52 en proteus

que tal, soy nuevo en este foro.

como dice el titulo, he tenido algunos problemas con una practica de la escuela en la cual, mediante dos puertos de entradas, controle 3 secuencias diferentes (esto para mandar la salidas a un moc y controlar unos focos -.-)

uso el keil para tal cuestión (programo en c) y el AT89S52.

en el keil pruebo el código y aparentemente todo esta correcto, sin embargo cuando cargo el archivo con extensión ".h" en el micro de proteus, este simplemente no anda, ni siquiera oscila, simplemente se queda ahí quieto.

ya tengo mas de dos semanas con esto y sencillamente no puedo hacerlo funcionar. quisiera pensar que la razón de la falla en la simulación es lo siguiente: en proteus no existe el dispositivo AT89S52 y lo sustituí por un AT89C52, aunque un compañero de la escuela me dijo que debería funcionar de todas formas la simulación.

como nota adicional, he decirles que no lleve un curso "formal" de programación de micros, apenas y nos explicaron el entorno de manera muy escueta y mucho menos el como programar en el, pues aunque se programe en C, hay ciertas diferencias, o al menos eso me pareció.

Aquí les dejo el código que he desarrollado, así como una imagen del proyecto en si.

Código:
#include <reg52.h>

void main (void)
{ 
     int tiempo,retardo=23000;
    
   while(1)
     {
         
         if (P1==0)
         {
          P3=0;
         }
         
     if (P1==1)
         {
             P3=120;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=228;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=156;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
         }
         if (P1==2)
         {
             P3=152;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=236;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=116;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
             
         }
         if (P1==3)
         {
             P3=232;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=124;
                
             for(tiempo=0; tiempo<retardo; tiempo++);
                
                 P3=148;
                
             for(tiempo=0; tiempo<retardo; tiempo++);

         }
    }
}
Captura.png



De antemano gracias por la ayuda. :)
 
Última edición por un moderador:
Hola comino628 Según he visto por aquí es que el archivo que se programa en el uProsesador es el de extensión “xxx.HEX” y no el “.h” como lo mencionas. Al compilar el código que adjuntaste se generan muchos archivos, entre ellos el que te menciono_Otra opción es programarlo con el de extensión “xxx.COF”.saludosa sus ordenes
 
Atrás
Arriba