已发送注意查收!
步行者=====电子单片机团
qq:1320249827
函数功能:DS18B20初始化子程序
入口参数:
出口参数:
****************************************************************************/
void Init_DS18B20(void)
{
unsigned char x=0;
DDRA|=BIT(2);//设置为输出
DQoff; //发送复位脉冲
delay_nus(550); //延时(>480ms)
DQon; //拉高数据线
delay_nus(40); //等待(15~60ms)
DDRA&=~BIT(2);//设置为输入
x=PINA&0X04; //取出PA2口的电平
delay_nus(100);
DQon;//再次将数据线拉高
}
/****************************************************************************
函数功能:向DS18B20读一字节数据
入口参数:
出口参数:dat
****************************************************************************/
uint ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat=0;
unsigned x=0;
for (i=8;i>0;i--)
{
dat>>=1;
DDRA|=BIT(2);//PA2口设置为输出
DQon;//拉高
delay_nus(2); //延时两微妙
DQoff; //将数据线拉低
delay_nus(6);
DQon;//拉高
delay_nus(3);
DDRA&=~BIT(2);//PA2口设置为输入
x=PINA&BIT(2); //取出PA2口的电平
if(x==0)
{
dat&=~0x80;
}
else dat|=0x80;
delay_nus(31);
}
return(dat);
}