传感器毕业论文 - 图文 下载本文

4.2 程序流程图及部分程序

4.2.1主程序模块

由于模块化程序的设计,通过调用程序即可实现所用功能,主程序流程图如图14

所示。写程序时,调用程序前即系统运行首要先对系统进行初始化。然后对按键进行扫

描,对按键事件做出相应的反应。接下来看是否有温度数据采集到,如果有就进行A/D

采样及PID处理数据,最后所得结果与设定值比较从而控制继电器通断。

17

4.2.2 系统初始化

系统初始化包括A/D口初始化、按键初始化等。对端口的初始化即是对端口相应位

进行设置,这些初始化程序都嵌入在各个子程序里面。

4.2.3 按键程序

按键扫描:由于机械触点有弹性,在按下或弹起按键时会出现弹跳抖动过程,从最

初按下到接触稳定要经过数毫秒的弹跳时间,因此为了保证探险键识别的准确性,必须

消除抖动。键值处理:图15是对键值的处理流程图。

18

4.2.4 A/D采样数据处理

当采样到温度数据时,为了防止在采样过程中外界干扰而造成采样数据的不准确,

必须调用温度均值处理程序,然后确定温度系数使采样转换得到的电压信号转换成温度

值,并进行十进制转换,用于显示和PID计算。其中均值处理是一个重要的环节,是

A/D转换前必不可少的工具,流程图如图16所示。

4.2.5 PID计算

由于单片机控制是一种采样控制,系统中 PID调节规律可通过数值公式近似计算。

19

由此可

得增量式算法公式:

这个计算的过程可用一个简单的程序来实现。

4.2.6 继电器控制

继电器是和AT89C51单片机的P25口相连的,它的开断完全取决于P25口的输出,

即PID计算的结果。当输出小于零说明设定值小于实际输出值,这是就要关闭电炉,同

时关闭定时器的计时。如果输出值大于设定值5摄氏度时就可以开电炉对水开始加热。

如果设定值与实际输出值差值在5摄氏度以内时,我们就调用中断程序定时加热。

图17数据采样中断服务程序的流程图,此中断程序采用的是2Hz中断定时

0.5秒钟采样一次。

图18控制程序的中断服务程序,用来对继电器定时加热。它利用中断定时器10ms

20