您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页第四章系统软件设计

第四章系统软件设计

来源:意榕旅游网
第五章 软件系统设计

5.1 程序框架结构

任何一个系统的软件设计都离不开硬件电路的连接,同样,该设计的高度模块化电路设计也决定了软件设计的模块化。

为了满足本设计的功能和要求,我们必须在开始设计的时候就要考虑到软硬件的协调性,不然会造成硬件资源的浪费,增加软件实现时的困难和复杂程度,甚至出现信号断层,使它们组成的系统不能工作。首先在设计的过程中必须考虑软硬件的处理能力以及接口兼容性,实现信号有效过渡。

一个整体的软件设计是由各个不同模块整合实现的,进而实现系统所要完成的最终功能。其程序结构应包括:主控程序模块、键盘扫描及处理子程序、数据采集处理子程序、显示等子程序几个部分。

主控程序模块在整个结构中属于框架管理者,相当于调度室,管理和调用所有的子程序。它主要负责初始化各个接口,等待键盘事件的发生并做出相应的反应。并在适当的时候调用数据采集程序,将采集到的数据与键盘输入值比较,比较后用于控制继电器的通断,从而来调整水温。程序结构图如图5.1.1所示。

图5.1.1 程序结构图

5.2 程序流程图及部分程序

5.2.1 主程序模块 由于模块化的程序设计,通过调动程序即可实现所有功能。主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序、中断程序以及各个端口的初始化。系统在初始化完成之后就能按照流程依次完成其他功能。主程序流程图如图5.2.1所示。

图5.2.1 主程序流程图

5.2.2 系统初始化

系统初始化是每次启动的必经过程,包括A/D端口的初始化等。对端口的初始化就是对端口相应位进行设置,设定可编程芯片的工作方式,对内存中的工作参数区进行初始化,显示系统初始状态。

A/D口初始化程序:

void System Initial (void) { }

CS = 1; WR = 1; RD = 1;

5.2.3 系统中断程序

当单片机收到中断请求后就会响应中断。在本设计中,中断主要来自于温度采集反馈的信息。中断响应流程基本流程如图5.2.2。

中断源发出申请 中断响应判断是否满足 保护断点 转入中断服务程序 关中断 保护现场 开中断 服务程序 关中断 恢复现场 开中断 中断返回

图5.2.2 中断流程图

单片机的中断系统有5个中断请求源,用户可以用中断指令“CLR EA”来屏蔽所有的中断请求,也可以用开中断指令“SET EA”来允许CPU接收中断请求。INT1外部中断请求0,由INT0引脚输入,中断请求标志为IE0。

ORG 0000H LJMP MAIN

ORG 0003H (中断地址入口) JMP INT0

ORG 0038H (主程序起始地址) MAIN (主程序)

5.2.4 DS18B20测温程序

系统采用DS18B20对水温进行采集。首先根据BS18B20的工作时序对其进行初始化,并对DS18B20内部寄存器读写操作进行定义。系统工作时,单片机采集DS18B20内部寄存器的二进制数,将其转化为十进制的真实温度。DS18B20温度传感器的内部存储器包括一个高速暂存RAM(便笺式内部存储器)和一个非易失性可电擦除的EEPROM。便笺存储器包含了9个连续字节(0~8位),前两个字节是测得的温度信息,第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,检验前面所有8个字节的CRC(Cyclic Redundancy Check循环冗余校验码)码,可用来保证通信正确。测温流程如图5.2.3所示。

开始 初始化 ROM操作指存储操作指令 读取温度 返回

图5.2.3 DS18B20测温流程图

5.2.5 PID计算控制程序

系统将温度传感器采集到的实测温度与输入值比较,根据具体情况进行水温调节。当温差大于两度时,则直接驱动价额加热装置加热;当温度差小于0.8度时,则采用PID算法,控制温差慢慢缩小,最终到达所需温度。

由于单片机的控制属于一种采样控制,因此它只能根据设定值和测量值之间的偏差的比例、偏差变化趋势和偏差的累积而进行的控制(即为PID控制)。它根据采样时刻的偏差,值计算出输出控制量的增量,通过调节输出控制信号的导通时间来控制加热电路工作。PID控制系统框图如图5.2.4所示。

图5.2.4 PID控制图

当进入PID 调节程序以后,要根据系统给定值(键盘输入值)和实际采样值计算出偏差。为了防止系统在运行初期,由于控制量u(k)过大使得开关管占空比D过大,需要对系统偏差e(k)做限幅处理。瞬间过大的占空比可能会引起较大的电流,进而导致开关管的损坏。具体PID调节子程序流程图如图5.2.5所示。

开始 计算偏差e(k)=r(k)-c(k) 计算控制量u(k) △D占空比 返回

图5.2.5 PID子程序流程图

5.2.6 继电器的控制

继电器是和ATS52单片机的P2.0引脚相连的,继电器的开通或断开完全取决于P2.0口的输出情况,也就是前面PID的计算结果。如果输出值小于零 ,说明实际温度高于输入的所需温度,则需要断开继电器,关闭加热设备进行相应散热。如果输出值大于输入值两摄氏度,则需要驱动加热设备进行加热。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务