
//define pin
sbit Chip_Select at P3.B3;
sbit SoftSpi_CLK at P3.B2;
sbit SoftSpi_SDI at P3.B1;
sbit SoftSpi_SDO at P3.B0;

unsigned char i;

void EWEN(){
SoftSpi_SDI=1;
SoftSpi_CLK=1;
Chip_Select=1;
Soft_SPI_Write(0b00);
Soft_SPI_Write(0b1100000);
SoftSpi_SDI=0;
Chip_Select=0;
Chip_Select=1;
Chip_Select=0;

}
void ERAL(){
SoftSpi_SDI=1;
SoftSpi_CLK=1;
Chip_Select=1;
Soft_SPI_Write(0b00);
Soft_SPI_Write(0b1000000);
SoftSpi_SDI=0;
Chip_Select=0;
Chip_Select=1;
Chip_Select=0;
}
void WRITE(){
SoftSpi_SDI=1;
SoftSpi_CLK=1;
Chip_Select=1;
Soft_SPI_Write(0b01);
Soft_SPI_Write(0b0000000);
Soft_SPI_Write(0b00101000); // data 0x28H being sent (represents 0 on my kit)
SoftSpi_SDI=0;
if(SoftSpi_SDO==1) Chip_Select=0;
}

unsigned char READ(){
unsigned char dtt=0x00;
SoftSpi_SDI=1;
SoftSpi_CLK=1;
Chip_Select=1;
Soft_SPI_Write(0b10);
dtt=Soft_Spi_Read(0b0000000);
SoftSpi_SDI=0;
Chip_Select=0;
Chip_Select=1;
Chip_Select=0;
return dtt;
}

void main()
{   P3=0;
    Soft_SPI_Init();
    EWEN();
    ERAL();
    WRITE();
    Delay_ms(30);
    P0 = READ(); //display
    while(1)
   {
     for(i=0; i<8; i++)
     {
          P2=0xFE; // 7 segment display selected out of 8 nos.
          
     }
   }
}

