C language code
//Operating frequency for testing is 24MHz
#include "reg51.h"
#include "intrins.h"
#define MAIN_Fosc 24000000UL //Define the main clock
#define Timer0_Reload (65536UL -(MAIN_Fosc / 600000)) //Timer 0 reload value corresponds to 300KHz
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xc9;
sfr P5M0 = 0xca;
sfr ADC_CONTR = 0xBC; // microcontrollers with ADC
sfr ADC_RES = 0xBD; / microcontrollers with ADC
sfr ADC_RESL = 0xBE; // microcontrollers with ADC
sfr AUXR = 0x8E;
sfr AUXR2 = 0x8F;
#define CHANNEL 8 //ADC channel numbers
#define ADC_90T (3<<5) //ADC conversion time 90T
#define ADC_180T (2<<5) //ADC conversion time 180T
#define ADC_360T (1<<5) //ADC conversion time 360T
#define ADC_540T 0 //ADC conversion time 540T
#define ADC_FLAG (1<<4) //Cleared by software
#define ADC_START (1<<3) //Cleared automatically
sbit P_LED7 = P2^7;
sbit P_LED6 = P2^6;