2011毕业设计实例(论文正文)(17)
时间:2026-01-22
时间:2026-01-22
脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度,由于它内部的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
对于此电路设计温度采集电路的核心部件,该电路的DQ直接与单片机的P1.0相连,VCC接5V电源,GND接地。通过传感器可以将实时温度传给单片机,首先将DS18B20初始化,设置好要求的初始值,再调用温度读取子程序读取温度测量值,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0个和第一个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。由于DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微妙,然后释放,DS18B20收到信号后等待16~60微妙左右,后发出60~240微妙的存在低脉冲,主CPU收到此信号表示复位成功。根据ROM指令表指令约定代码功能读ROM33H读DS18B20ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编程相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备。搜索ROMOFOH用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROMOCCH忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片工作。告警搜索命令OECH执行后只有温度超过设定值上限或下限的片子才做出响应。根据RAM指令表指令约定代码功能温度变换44H启动DS18B20进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器OBEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中,重调EEPROMOB8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式OB4H读DS18B20的供电模式。寄生供电时DS18B20
- 17 -
上一篇:试卷正文数控铣工中级