#include<reg51.h>
#include <intrins.h>
unsigned char idata DataResult;
sbit IOCLK=P1^0;
sbit DATAOUT=P1^1;
sbit CS=P1^2;
void int0svr(void) interrupt 0 using 1
{unsigned char count,tmp,i;
EX0=0;
tmp=0;
CS=1;
IOCLK=0;
CS=0;
_nop_();
for(count=0;count<8;count++)
{IOCLK=1;
if(DATAOUT)
tmp++;
tmp=tmp<<1;
IOCLK=0;
}
CS=1;
DataResult=tmp;
for(i=0;i<3;i++)
_nop_();
EX0=1;
}
void main(void)
{TMOD=0x20;
TL1=0xe6;
TH1=0xe6;
PCON=0x00;
TR1=1;
SCON=0x50;
CS=1;
EA=1;
EX0=1;
do
{SBUF=DataResult;
while(TI==0);
TI=0;
}while(SBUF!=0);
while(1);
}