第 45 页 共 84 页
图7-1 主程序流程图
7.3 数据采集模块
数据采集模块的任务是负责温度信号的采集以及将采集到的模拟量通过A/D转换器转化为相应的数字量提供给单片机。DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序
45
第 46 页 共 84 页
包括:初始化时序,写时序以及读时序。图3.43至图3.45分别为DS18B20的初始化流程图,写时序流程图以及读时序流程图。 7.3.1 初始化程图 (1)初始化的步骤:
①先将数据线置高电平“1”。
② 延时(该时间要求的不是很严格,但是尽可能的短一点) ③数据线拉到低电平“0”。
④延时750微秒(该时间的时间范围可以从480到960微秒)。 ⑥数据线拉到高电平“1”。
⑦延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返 回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行 等待,不然会使程序进入死循环,所以要进行超时控制)。
⑧若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的 高电平算起(第(5)步的时间算起)最少要480微秒。 ⑨将数据线再次拉高到高电平“1”后结束。
46
第 47 页 共 84 页
图7-2 初始化
(2)写时序具体步骤: ① 数据线先置低电平“0”。 ② 延时确定的时间为15微秒。
③ 按从低位到高位的顺序发送字节(一次只发送一位)。 ④ 延时时间为45微秒。 ⑤ 将数据线拉到高电平。
⑥ 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 ⑦ 最后将数据线拉高。 47
第 48 页 共 84 页
图7-3 写时序
(3)读时序步骤
① 将数据线拉高“1”。 ② 延时2微秒。
③ 将数据线拉低“0”。 ④ 延时15微秒。 ⑤ 将数据线拉高“1”。 ⑥ 延时15微秒。
⑦ 读数据线的状态得到1个状态位,并进行数据处理。 ⑧ 延时30微秒。
48