傻大方


首页 > 学习 >

综合|综合课程设计基于单总线的温度实时监控系统( 二 )



按关键词阅读: 系统 课程设计 综合 基于 监控 温度 实时 总线


(9)结合数据和控制信息的智能协议 , 无需额外的引脚控制 。
(10)兼容于光耦、IR和RF至RS232的转换器 。
(11)低成本的8引脚SO表贴封装 。
(12)工作电压4.5V至5.5V , 温度范围为-40C至+85C 。
24 DS18B20温度传感器图3 DS18B202.4.1 DS18B20功能特点新一代的 DS18B20 体积更小、更经济、更灵活 。
使您可以 。

8、充分发挥“一线总线”的长处 。
同DS1820 一样 , DS18B20 也支持“一线总线”接口 , 测量温度范围为 -55C+125C , 在-10+85C范围内,精度为0.5C 。
DS1822 的精度较差为 2C。
现场温度直接以“一线总线”的数字方式传输 , 大大提高了系统的抗干扰性 。
适合于恶劣环境的现场温度测量 , 如:环境控制、设备或过程控制、测温类消费电子产品等 。
与前一代产品不同 , 新的产品支持3V5.5V 的电压范围 , 使系统设计更灵活、方便 。
而且新一代产品更便宜 , 体积更小 。
DS18B20 新特点:适用电压为3V5V 与DS1820 软件略有不同 912 位分辨率可调 TO-92、SOIC 及CSP 封装可选 。

9、 , 经济型版本无EEPROM 合自己的经济的测温系统 。
2.4.2 DS18B20内存结构图4 DS18B20存储结构DS18B20的内存包括9个快速暂存器和三个非易失的电可擦可编程只读存储器 , EEPROM存储用于报警的温度上限和下限以及温度采集分辨率的配置数据 。
如果DS18B20的报警功能未启用 , TH、TL可以用作普通功能寄存器 。
暂存器byte0和byte1分别存储采集温度的低位和高位 , byte8是循环冗余校验码寄存器 。
2.4.3 DS18B20温度寄存器图5 DS18B20温度寄存器温度高位字节的高五位是符号位 , 温度为正时取0 , 为负取1 。
低字节的低四位为小数位 , 有效的位数取决于配置寄存器的R1 。

10、和R0值 。
2.4.4 DS18B20 TH、TL寄存器图6 DS18B20 TH、TL温度寄存器温度高位字DS18B20 TH、TL温度寄存器各占一个字节 , 其中最高位是符号位 , 可以设定的温度范围为-128127是(摄氏) 。
TH、TL可以用copy命令复制到EEPROM , 反之可以用Recall命令从EEPROM读取 。
2.4.5 DS18B20 配置寄存器图7 DS18B20温度寄存器快速暂存器的byte4是Configuration寄存器 , 寄存器的五六位R0、R1可以设定采集温度的精度 , 见表一 。
表1 采集温度精度对应R1R0精度转换时长009-bit93.75ms(tCONV/8)0110-bi 。

11、t187.5ms(tCONV/4)1011-bit375ms(tCONV/2)1112-bit750mstCONV3 Delphi温度采集程序31 程序功能简介程序主要包括温度读取显示、采集数据存储和配置寄存器设置三个功能 , 四个选项卡切换不同的功能模块 。
温度显示模块采用了iocomp组件实现温度计和实时曲线两种显示方式 , 并提供两个温度传感器宏观同步显示以及摄氏温标和华氏温标的一键切换功能 。
由于涉及数据量较少 , 数据结构简单 , 程序采用了access数据库对采集温度进行同步存储 。
配置寄存器的模块位于第三个选项卡 , 第四个选项卡显示DS18B20暂存器的原始数据 。
32 温度计显示图8 温度计显示程序如 。

12、下:procedure TForm1.Timer1Timer(Sender: TObject);
/计时器程序 , 此处程序整体来说就是先获得访问权 , 在调用前面的FindFirstFamily和FindSecondFamily然后再改写变量Var PortNum, PortType : smallint;
/定义局部变量RetValue : smallint;
st : longint;
beginif dieer then beginProgressbar1.Step :=1;
while progressbar1.Position 0) Thenbeginif (TMSetup(SHandle) =。

13、1) thenif radiobutton1.Checked =true then /写入第一个温度传感器if (TMFirst(SHandle, stateBuf)= 1) thenbeginif (TMAccess(SHandle,StateBuf)= 1) thenbeginif (TMTouchByte(SHandle,$4E) 0) then beginif (TMTouchByte(SHandle,l) 0) then /传递温度上限且判断是否传递成功halt;
if (TMTouchByte(SHandle,m) =255) then /传递温度下限且判断是否传递成功halt;
if 。

14、 (TMTouchByte(SHandle,n) 0) then /传递精度且判断是否传递成功halt;
end;
TMAccess(SHandle,StateBuf);
TMTouchByte(SHandle,$48);
/这里是写道E2Rom里 所以用上拉电压TMOneWireLevel(SHandle,LEVEL_SET,LEVEL_STRONG_PULL_UP, PRIMED_BYTE);
st := GetTickCount + 1000;
while (GetTickCount st) do;
TMOneWireLevel(SHandle, LEVEL_SET,LEVEL_NORMAL,PRI 。

15、MED_NONE);
/恢复正常电压TMAccess(SHandle,StateBuf);
TMTouchByte(SHandle,$BE);
CRC8 := 0;
for i := 0 to 7 dobeginrbufi:= TMTouchByte(SHandle, $FF);
endelseshowmessage(error TmAccess);
end36 原始数据显示图12 原始数据显示窗口程序如下:procedure TForm1.Button2Click(Sender: TObject);
显示按钮实现/用来显示温度以及精度等varRetValue,i : smallint;


稿源:(未知)

【傻大方】网址:/a/2021/0902/0024075185.html

标题:综合|综合课程设计基于单总线的温度实时监控系统( 二 )


上一篇:数据库|数据库相关毕业设计外文翻译

下一篇:修理厂上半年工作总结完整版|修理厂上半年工作总结(完整版)