#include <REG52.H> /* special function register declarations */
/* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */
#ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
/* is enabled */
sfr AUXR= 0x8e;
#define mainclk 11059200
#define bsp 9600
void main (void) {
/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
//unsigned long int mainclk=11059200;
//unsigned long int bsp =9600;
unsigned char k =0;
PCON=0x80; //Power Control SMOD SMOD0 LVDF POF GF1 GF0 PD IDL 0001,0000
SCON=0x50; //Serial Control SM0/FE SM1 SM2 REN TB8 RB8 TI RI 0000,0000
AUXR=AUXR|0x40; //Auxiliary Register T0x12 T1x12 UART_M0x6 BRTR S2SMOD BRTx12 EXTRAM S1BRS 0000,0000
TH1=TL1=256-(unsigned char)((unsigned long int )mainclk/((unsigned long int )bsp*(32/2)) ) ;
TMOD=(TMOD&0x0f)|0x20;
TR1=1;
// ES=1;
// EA=1;
//#if 0 //MONITOR51
// SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
// TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
// TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
// TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
//#endif
while (1)
{
P1 ^= 0x01; /* Toggle P1.0 each time we print */
printf ("Hello World\n"); /* Print "Hello World" */
/*
for(k=0;k<245;k++)
{
TI=0;
SBUF=k;
while(TI==0);
}
*/
}
}
“`