51单片机写DS18B20的驱动
初始化操作方法:单片机先给总线一个高电平,略微延时,然后拉低总线,至少延时480us(我们取600us),然后拉高总线,等待15~60us的时间(我们取80us),此后DS18B20如果响应,则会发出0,拉低总线,否则为1,单片机检测是否响应的时间在60~240us之内,之后释放总线,程序如下:
bit DS18B20_init()//初始化
{
}
写操作方法:由于是单总线,读写操作都分为写0和写1,从一个字节的最低位逐次往DS18B20里写,先使总线产生一个由1到0的跳变,等待15us(我们取13us),然后判断要写的那位是1还是0,如果是1,则拉高总线,0则不去操作总线(因为总线开始产生跳变时已被拉低),等待45us(我们取64us)以后释放总线(这段时间DS18B20会采样,如上图所示),程序如下:
void DS18B20_write(uchar dat)//写1个字节
{
}
读操作方法:使总线产生一个由1到0的跳变,等待1us,马上拉高总线,等待大约12个us(datasheet推荐的采样时间是快接近15us的时候,我们略微提前),单片机采样,如果总线被拉低,则读出的是0,否则就读出1,然后延时45us以上(我们取55us)释放总线;注意,读也是从最低位开始的,这里读出的0,1加到字节最高位,读完后,最高位被移到最低位,实际上是右移了7次
uchar DS18B20_read()//读1个字节
{
}
51单片机DS18B20驱 相关文章:
- 51单片机的ds18b20驱动程序(12-01)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)