用bascom写一个18b20采集温度的程序
时间: 2023-11-24 16:06:41 浏览: 30
下面是一个基于BASCOM语言的18B20温度采集程序:
```
$regfile = "m16def.dat" '指定使用的芯片型号
$crystal = 8000000 '指定晶振频率为8MHz
Dim Temp As Word '定义一个变量来存储温度值
'定义18B20芯片的引脚连接
Config Sda = Portc.4
Config Scl = Portc.5
'初始化18B20芯片
Config Owbus = Portc.4
Owreset
Owwrite &HCC '跳过ROM指令
Owwrite &H44 '开始温度转换
Do
Owreset
Owwrite &HCC '跳过ROM指令
Owwrite &HBE '读取Scratchpad寄存器
Temp.Lowbyte = Owread
Temp.Highbyte = Owread '读取温度值
Waitms 100 '等待一段时间
Loop
End
```
这个程序首先指定了使用的芯片型号和晶振频率,然后定义了一个变量`Temp`,用来存储18B20芯片采集到的温度值。
程序接着定义了18B20芯片的引脚连接,并初始化18B20芯片。初始化过程包括配置Owbus引脚为温度传感器的SDA引脚,然后进行OW复位,再发送跳过ROM指令和开始温度转换指令来启动温度转换。
最后,程序进入一个无限循环,不断读取18B20芯片的温度值。在循环中,程序发送跳过ROM指令和读取Scratchpad寄存器指令,然后读取温度值,并等待一段时间后再次读取。这样可以保证程序能够稳定地读取到芯片的温度值。