2. DS18B20初始化子程序流程图:
入口
DQ置高电平 稍延时 DQ复位0 延时>480ms DQ拉高电平 延时15~60ms DQ为低电平? N Y 返回 图14 DS18B20初始化子程序流程图
3. DS18B20写字节和读字节子程序流程图:
图15 DS18B20写字节子程序流程图
图16 DS18B20读字节子程序流程图
5.3 中断模块
中断采用T0方式1,初始值定时为50ms。 中断模块需调用两个子程序:
? 读温度值子程序:定时读取温度值,实时更新温度值 ? 记录温度值子程序:定时记录温度值,供查询使用
把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停止更新温度值和记录温度值。 中断模块流程图:
中断入口 定时器重置初值 计数值加1 1秒? Y 读温度值 N 记录温度值 中断返回
图17中断模块流程图
5.4 温度查询模块
温度查询模块需要接受按键输入,进入查询界面后,按加减键分别查询上一个和下一个历史温度值,并驱动数码管显示需要查询的温度值。 温度查询模块流程图如下:
入口
N 功能键按下?
Y
延时消抖
N 确认按下?
Y 显示温度值与位次
加键按下? N Y 延时消抖 查询下一个值 Y 确认按下? N 减键按下? N Y 延时消抖 查询上一个值 Y 确认按下? N N 退出功能键按下? Y 返回 图18 温度查询模块流程图
5.5 温度设定、报警模块
此模块跟温度查询模块类似,需要接受按键输入,进入模块界面后,按加减键分别上调和下调设定报警温度值,当实时温度值超过设定值时驱动蜂鸣器发声,并点亮8位发光二极管,实现声光报警。 温度设定、报警模块流程图如下:
相关推荐: