当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;
}
|