: .
据
delay(2); //稍微等待,使硬件做好准备
SCLK=0; //重新拉低SCLK,形成脉冲
dat>>=1; //将dat的各数据位右移1位,准备写入下一个数据位
}
}
第 1 页1302终极版
/********************************************************************************************************
******************************************/
//8位数据读出
unsigned char read1302(void)
{
/*uchar i,j,dat;
bit out;
dat=0;
delay(2); //稍微等待,使硬件做好准备
for(i=1;i<=8;i++) //连续读8个二进制位数据
{
//dat>>=1; //将dat的各数据位右移1位,因为先读出的是字节的最低位
//if(DATA==1) //如果读出的数据是1
//dat=0x80; //将1取出,写在dat的最高位
out=DATA;
SCLK=1; //将SCLK置于高电平,为下降沿读出
delay(2); //稍微等待
SCLK=0; //拉低SCLK,形成脉冲下降沿
j=out;
dat=(j<<7)|(dat>>1);//读出的数据最低位在最后面
delay(2); //稍微等待
}
return dat; //将读出的数据返回 */
uchar i,dat;
//delay(2); //稍微等待,使硬件做好准备
for(i=0;i<8;i++) //连续读8个二进制位数据
{
dat>>=1; //将dat的各数据位右移1位,因为先读出的是字节的最低位
if(DATA==1) //如果读出的数据是1
dat|=0x80; //将1取出,写在dat的最高位
SCLK=1; //将SCLK置于高电平,为下降沿读出
delay(2); //稍微等待
SCLK=0; //拉低SCLK,形成脉冲下降沿
//delay(2); //稍微等待
}
return dat; //将读出的数据返回
}
/********************************************************************************************************
*******************************************/
//从1302寄存器中读取数据
unsigned char readreg1302(uchar com)
{
uchar dat;
RST=0;
DS1302&&DS18B20程序 来自淘豆网m.daumloan.com转载请标明出处.