# Proteus simulation keep on looping forever

I have a simple proteus circuit simulation with a PIC18 chip and LED connected to RD0 port with a resistor.

My objective is to make the LED blink once only when i start the simulation and the following is the code I used. I set PortD as output and force it to 0 at the beginning. Thereafter, RD0 is forced to 1. 500ms later, RD0 is forced to 0.

#include <xc.h>
#define _XTAL_FREQ 8000000
void delay_ms(unsigned int t);

void main(void)
{
TRISD = 0x00;
LATD = 0x00;
LATD = 0b00000001;
delay_ms(500);
LATD = 0b00000000;
delay_ms(500);
}

void delay_ms(unsigned int t)
{
for (int i=0 ; i<t ; i++)
{
__delay_ms(1);
}
}


When I start the simulation, the LED keep blinking forever until I stop the simulation. I did not use any form of loop in my program, what is causing this behavior?

• what happens if you put return 0; at the end of main()? ... also try return 1; Apr 22 at 23:53