当前位置:首页 > 基于单片机的恒温控制系统
开 始
图3-1 程序流程图
3.1 程序的模块化设计
数据采集系统的性能在很大程度上取决于其应用软件的研究与开发,所以在明
加热 Y停止 比较设定温度值和实际温度 显示实际温度 数值处理 温度检测 处 理 按 键, 显 示 设 定 值 初 始 化 N 是否大于? T
17
确了系统设计目标之后,应该采用好的程序开发方法,如结构化设计方法、模块化思想、多线程以及软件系统的评价标准等等。模块是定义了输入和输出,具有一定特性的程序实体。模块化设计(Modular Design)的核心是模块的划分。模块化结构是所有设计良好的软件系统的基本特点,任何一个大的程序系统,总是由若干功能相对独立的模块组成[13]。
模块化设计一般采用自顶向下的设计方法(Top-down Design)划分模块。模块化设计要尽量使模块的划分合理。模块划分合理有以下两点要求:
1)各模块之间耦合(Coupling)尽可能少。模块之间耦合尽可能少,说明各模块独立性(Module Independence)好,接口少,减少了相互间的访问,也减少了出错的机会。
2)各单一模块内聚性(Cohesion)高。各模块内聚性高说明该模块有一个专一的任务,划分合理,能提高开发效率[14][15]。
模块划分之后,要用图示的方法表示出个模块之间的关系,本设计的软件系统模块划分如图。系统程序的主要功能为模块划分的标准,其他包括数据采集,数据显示,数据比较等功能。
数据采集 数据显示 设定温度 实时温度 数据比较 图3-2 程序模块功能图
3.2 系统软件原理设计
控制系统加电后主控单片机、LCD显示、温度传感器DS18B20复位,然后初始化单片机和温度传感器,初始化完成之后,程序开始扫描键盘等待设定目标温度值,设定完成后,程序则立即开始通过扫描温度传感器DS18B20来实时采集当前水温并显示。控制算法中,当设定值与实际水温值相差大于10℃时,控制电炉的输出功率为全功率,当两者相差小于10℃时采用比例控制,并在相差10~5℃时采用不同参数的比例控制,小于5℃时采用比例积分控制,直至实际水温与设定水温相同时停止控制,程序进入等待控制状态,如果水温降到设定值以下则又开始控制。 3.2.1 按键功能定义
本次设计中定义4个按键:设定、加、减、复位键。复位键由主控单片机的复位来实现,其余各键由P1口采集控制,分别为:P1.4、P1.1、P1.2口。设定初始值
18
时默认从高位到低位依次设定,用加减键实现数字的选择,按下设定键直接确认并跳到下一位,三位设定完成后主程序开始进行实时数据的采集和对输出的控制。 3.2.2 温度传感器实时数据采集
设计中选用数字传感器DS18B20,其内部可自动完成对温度模拟量到数字量的转换和放大,通过一根信号即可将实时温度参数读入主控单片机进行控制处理[16]。本设计中通过P2.2口进行信号传输,控制程序中只要对DS18B20初始化完毕就可以实时读取采集温度信号。 3.2.3 调功输出控制
主控单片机运算输出脉冲宽度可调的PWM波用于双向可控硅在1s内的导通和关断数从而调节输出给电炉的功率[17]。控制算法采用比例控制,当设定值与实际水温值相差大于20℃时,控制电炉的输出功率为全功率,当两者相差小于10℃时采用比例控制,当两者相差小于5℃时采用比例积分控制,直至实际水温与设定水温相同后间歇控制,程序进入等待控制状态,如果水温降到设定值以下则又开始控制[18]。 3.3 程序运行结果
系统开始工作后,有键盘来设定蔬菜大棚所要达到的设定值,温度传感器DS18B20时事测定当前温度,若当前温度小于设定值,则加热炉开始工作,直到当前温度达到设定值;若当前温度大于设定值,则加热炉停止工作,温度开始下降,直到当前温度等于设定值;若设定值等于当前温度,则不采取任何措施。
当实时温度小于设定值时,此时加热炉工作,从而提高大棚的温度:
19
图3-3
当实时温度大于设定值时,加热炉停止工作:
图3-4
当实时温度与设定值相等时,不采取任何措施:
20
共分享92篇相关文档