资源预览内容
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
DS18B20温度传感器 DS18B20数字温度传感器,接线方便,封装成后可应用于多种场合。1: 技术性能描述1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。1.2 测温范围 55+125,固有测温分辨率0.5。1.3 因为每个DS18B20在出厂时已经给定了唯一的序列号,所以支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。1.4 工作电源: 35V/DC1.5 在使用中不需要任何外围元件1.6 测量结果以912位数字量方式串行传送 2. 温度计算:DS18B20用9位存储温度,最高位位符号位,下图位DS18B20的温度存储方式:3. 时序 因为 DS18B20采用的时独特的单线接口方式,因此时序的使用起着至关重要的作用,(1) 初始化(复位) 单片机t0时刻发送一复位脉冲(最短为480us的低电平信号,接着在tl时刻释放总线并进入接收状态,DS18B20 在检测到总线的上升沿之后,等待15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240us),如图中虚线所示。换句话说如果t2t3之间信号电平如果为低,则说明DS18B20复位成功;否则失败。程序:void DS18b20_reset(void) /初始化bit flag=1;while (flag)while (flag) DQ = 1;/释放总线delay(1); DQ = 0;/拉低时序 delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); /延时500us,电平为低,初始化成功,否则失败flag = DQ;DQ=1;(2)写操作当单片机将总线t0时刻从高拉至低电平时,就产生写时间隙。见下图,从t0时刻开始 15us之内应将所需写的位送到总线上。DS18B20在t0后15-60us间对总线采样,若低电平写入的位是0;若高电平,写入的位是1。连续写2位间的间隙应大于1us。程序:void write_byte(uint8 val)uint8 i;for (i=0; i= 1; /右移一位DQ = 1;delay(1); (3) 读操作 当单片机将总线t0时刻从高拉至低电平时,总线只须保持低电平4us之后,在t1时刻将总线拉高,产生读时间隙,读时间在t1时刻后t2时刻前有效,t2距t0为15us,也就是说,t2时刻前主机必须完成读位 并在t0后的60us120us内释放总线。程序:uint8 read_byte(void)uint8 i, value=0;for (i=0; i= 1;DQ = 0;nops(); /4usDQ = 1;nops(); /4us if (DQ)value|=0x80;delay(6); /66usDQ=1;return(value);读取温度五个步骤:1、复位DS18B202、发出Skip ROM命令(CCH)3、发出Read命令(BEH)4、读两字节的温度5、温度格式转换int16 read_temp(void)uint8 temp_data2; / 读出温度暂放int16 temp;DS18b20_reset(); / 复位write_byte(0xCC); / 发Skip ROM命令write_byte(0xBE); / 发读命令temp_data0=read_byte(); /温度低8位temp_data1=read_byte(); /温度高8位temp = temp_data1;temp = 4;return temp;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号