BCD码,分别把小数位,个位,十位的BCD码存入RAM中。数据处理子程序流程图如图3.2.1所示。
数据传递 温度是否为负? 求补运算 BCD码转换 返回 图3.2.1 数据处理子程序流程图
3.3 键盘扫描子程序
按键功能: 1. P2.0 加键
2. P2.1 移位键 3. P2.2 开始移位键
4. P2.3 确定键 键盘子程序流程图如图3.3.1所示。
11
开始 否 ENTER键是 否按下? 是 是 ENTER_FLAG 为1? 否 是否有ENTER 键按下? 否 是否有UP 键按下? 否 是否有DOWN 键按下? 否 是 ENTER子程 序FLAG=1 是 UP子程序 是 DOWN子程序 DISPLAY显示 返回主程序
图3.3.1 键盘子程序流程图
3.4 主程序流程图
总模块流程图如图3.1.1所示。本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。
图3.1.1所示为系统主程序流程图
12
开始 初始化 调用A/D转换子程序 否 DS18B20存在? 是 数据处理子程序 错误处理显示888 显示子程序 键盘扫描子程序 可控硅控制子程序
图3.1.1 主程序流程图
第四章 系统测试
4.1 静态温度测试
测试方式:由于种种条件的限制,采用模拟加热方式进行测试。利用可控硅的指示灯来显示可控硅的动作。红灯表示加热,绿灯表示降温。 测量仪器:空调温度显示屏 测试结果如表4.1.1所示:
13
表4.1.1 测试结果数据 标准温度/℃ 测量温度/℃ 误差/℃ 20 19.8 0.2 22 22.1 0.1 25 24.7 0.3 27 26.8 0.2 28 27.6 0.4
4.2动态温控测量
测试方式:加热方式用体温对传感器DS18B20进行加热。设定控制温度,记录超调温度,稳态误差。超调温度与加热的功率有关,这里不再测量。 测量仪器:空调温度显示屏 测量结果如表4.2.1所示:
表4.2.1 测试结果数据 设定温度/℃ 超调温度/℃ 稳态误差/℃ 29 1.3 0.2 30 0.9 0.4 33 1.1 0.2 35 0.6 0.4 4.3结果分析
有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。
在控温指标中,影响系统的性能的因素很多。最关键的是加热系统本身的物理性质及控制算法。由于条件的限制,在本设计中采用体温进行测试。
附录1: 产品使用说明
本水温控制系统能在0~99℃范围内设定任意温度值,超出此范围将有出错显示888,之后返回到99℃或0℃。通过按ENTER键确认开始温度设定;P1.1的UP键为加1键,每按一次使设定温度值加1℃P1.2的DOWN键为减1键,每按下一次设定温度值减1℃。设置完温度要在按ERTER键确认温度设定完成,之后显示实测温度值。当温度传感器没有接入时也将有出错提示显示888。
附录2: 本设计PCB图
14
图附录2.1 光电耦合PCB图
图附录2.2 主控部分PCB图 附录3 : 系统硬件原理图
15