有没有精度比较高的温度传感器呀?DS18B20的精度是 0.5的 我想用一个精度比这个要小的,如0.1 0.05

全部回答2
默认 最新
  • 正好我以前写过ds18b20的程序,现在共享给你。 我的单片机频率是8m,如果你的频率不同,请自己计算后把延时参数修改一下就可以了。 ds1820温度传感器单线总线读时间片 read: push r24 in r24,sreg push r24 ldi r22,$ff clr r23 out portb,r22 ;升高单线总线 out ddrb,r22 ;b口为输出口 out portb,r23 ;拉低单线总线 ldi r24,$05 read1: dec r24 brne read1 ;延迟10个时钟周期(大约1.25微秒) out ddrb,r23 ;b口为输入口 ldi r24,$30 read2: dec r24 brne read2 ;延迟96个时钟周期(大约12微秒) in r21,pinb ;读单线总线 ldi r24,$c8 read3: dec r24 brne read3 ;延迟400个时钟周期(大约50微秒) pop r24 out sreg,r24 pop r24 ret ds1820温度传感器单线总线写0时间片 write0: push r24 in r24,sreg push r24 ldi r22,$ff clr r23 out portb,r22 ;升高单线总线 out ddrb,r22 ;b口为输出口 out portb,r23 ;拉低单线总线 clr r24 wr0j1: dec r24 dec r24 nop nop brne wr0j1 ;延迟640个时钟周期(大约80微秒) out portb,r22 ;升高单线总线 ldi r24,$07 wr0j2: dec r24 brne wr0j2 ;延迟14个时钟周期(大约1.75微秒) out ddrb,r23 ;b口为输入口 pop r24 out sreg,r24 pop r24 ret ds1820温度传感器单线总线写1时间片 write1: push r24 in r24,sreg push r24 ldi r22,$ff clr r23 out portb,r22 ;升高单线总线 out ddrb,r22 ;b口为输出口 out portb,r23 ;拉低单线总线 ldi r24,$07 wr1j1: dec r24 brne wr1j1 ;延迟14个时钟周期(大约1.75微秒) out portb,r22 ;升高单线总线 clr r24 wr1j2: dec r24 dec r24 nop nop brne wr1j2 ;延迟640个时钟周期(大约80微秒) out ddrb,r23 ;b口为输入口 pop r24 out sreg,r24 pop r24 ret
    0 点赞
  • DS18B20本身测量精度范围就是正负0.5之内,即时你得到的数据再精确也没用的.
    0 点赞

没有更多内容了

返回顶部
产品求购 求购