#include <reg51.h>

void serial_init(void)
{
    TMOD = 0x20;        // Timer 1, Mode 2 (8-bit auto-reload)
    TH1  = 0xFD;        // 9600 baud at 11.0592 MHz
    SCON = 0x50;        // Mode 1, 8-bit UART, REN enabled
    TR1  = 1;           // Start Timer 1
}

void send_char(unsigned char ch)
{
    SBUF = ch;          // Load character into the serial buffer
    while (TI == 0);    // Wait for transmission to complete
    TI = 0;             // Clear transmit flag
}

void send_string(unsigned char *str)
{
    while (*str != '\0')
    {
        send_char(*str);
        str++;
    }
}

void delay(void)
{
    unsigned int i, j;
    for (i = 0; i < 500; i++)
        for (j = 0; j < 100; j++);
}

void main(void)
{
    serial_init();

    while (1)
    {
        send_string("Name: Ishaan Vaidya, Roll No: 2024200134");
        send_char('\r');    // Carriage return
        send_char('\n');    // New line
        delay();            // Gap between repeats
    }
}
