
當1腳拉低時,八位并行數據被壓入鎖存器,但與此同時,D7也已經從7腳輸出,因此只要再循環7次將數據讀出即可
uchar ReadExport(void)
{
unsigned char i=0,receive_date=0;
uchar Read_Int;
Clr_P25; //使能控制。為低電平時,并行數據進入鎖存器
Clr_P25;
Read_Int = (P2 & 0x10); //串行輸出數據線
if(Read_Int == 0x10) //把最高位讀出
receive_date |=0x01;
Clr_P03;
Set_P25; //為高電平時,可以進行串行數據讀出
for(i=1;i<=7;i++) //接下來只要進行7次循環
{
Clr_P03;
Set_P03; //時鐘線,上升沿有效
Read_Int = (P2 & 0x10); //串行輸出數據線
if(Read_Int == 0x10)
{
receive_date |=(0x01<<i);
}
}
return receive_date;
}
|