//读一位数据(读位程序)
1unsigned char tmpreadbit(void) //read a bit
2{
3 unsigned char dat;
4 DS_OUT(); //端口设置为输出
5 DS_L(); //DS=0
6 //Delayn(1); //2uS
7 DS_IN(); //input
8 //Delayn(1);
9 if(DS_R()!=0)
10 dat=1;
11 else
12 dat=0;
13 DelaynUs(50);
14 return (dat);
15}
//读一个字节数据 (读字节程序)
16unsigned char tmpread(void) //read a byte date17{
18 unsigned char i,j,dat;
19 dat=0; //令dat初始值为0,代码23处将会用到
20 for(i=1;i<=8;i++)
21 {
22 j=tmpreadbit();
23 dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里
24 }
25 ret