河南理工大学毕业论文 第 26 页 共 52 页
BL1和BL0位确定E2PROM的块保护地址范围,被保护地址范围与这两位的关系如表2—7—6所示。
表2—7—6 BL1和BL0位与被保护地址范围关系表
WD1和WD0位是看门狗定时器超时选择的设定位,超时选择如表2—7—7所示。
表2—7—7 WD1和WD0位与看门狗定时值关系表
河南理工大学毕业论文 第 27 页 共 52 页
3 软件系统设计
3.1软件总体设计
软件设计是为了满足系统功能的需要。其总体流程图如图3—1—1所示:
图3—1—1软件总体流程图
本系统的软件设计采用了模块化设计方法,对每一个功能编写了一个或几个功能函数,下表3—1—1说明了功能所对应的函数。
功能 主函数 声音警报、提示音 LED灯报警 用户数据输入 延时 DDC降温 液晶显示 采样转换温度 函数 void main(void) void sound(short) void led(void) void in8051(short *p) void delay(int) void cool(short) void display(short,short) Short ds18b20(void) 河南理工大学毕业论文 第 28 页 共 52 页
设定系统工作模式,系统初始化 A模式下的温度控制 3.2系统初始化函数
short getmode(void) void control(short,short) 表3—1—1本设计各项功能所对应的功能函数
系统初始化函数主要完成系统的初始化和设定系统的工作状态。它的工作步骤是: (1)系统启动时,液晶显示器的时间显示为“00—00—00”,当前温度显示为当前的环境温度值,用户设定的上、下限温度默认为30℃和10℃。表示系统已经正常启动,可以工作。
(2)等待用户设定工作模式。用户可通过第一个键选择设定时间,然后配合使用第三个键(加1)和第四个键(减1)对进行时间设定;也可通过第二个键选择设定上、下限温度,然后配合第三个键(加1)和第四个键(减1)对上、下限温度进行设定。当设定的上、下限温度为同一值时进入第一种工作模式,当设定的上、下限温度为不同值时进入第二种工作模式。
程序的流程图如下图3—2—1所示:
图3—2—1系统初始化程序流程图
3.3 控制函数
控制函数是决定系统将要进行什么工作的。如温度高于上限时需要降温,低于下限时需要升温,温度过高时启动报警等等。在系统的1模式下专有一个控制函数,名为void control(short i,short j)。实际上主函数也算的上一个控制函数,其C模式的控制方式和control()函数类似,只不过比control()函数更加完善些。控制函数的流程采用分支结构设计,程序流程如图3—3—1所示。
河南理工大学毕业论文 第 29 页 共 52 页
调用T>上限降温升温T<下限停止升降温调用 图3—3—1控制程序流程图
3.4 键盘显示函数
第一个键的作用是选择设定时间,可配合使用第三个键(加1)和第四个键(减1)对进行时间设定;第二个键的作用是选择设定上、下限温度,可配合第三个键(加1)和第四个键(减1)对上、下限温度进行设定。
程序的流程图如下图3—4—1所示:
图3—4—1 按键处理子程序流程图
3.5 降温函数
降温函数是实现温度控制比例控制方式的重要环节,体现了整个系统的先进性。函数名为void cool(short i),其中i为主函数中给定的参数,参数值等于实际温度与上限温度的差。当
河南理工大学毕业论文 第 30 页 共 52 页
(实际温度-上限温度)>0
时,cool()函数将启用控制直流电机风扇,根据差值的大小决定风扇的转速。根据2.3小节中说明的那样,驱动电路的输出电压和输入脉冲的占空比有关,可根据参数i的值来决定占空比。cool()函数使用脉冲信号在正方向的延时时间和在负方向的延时时间的比值来决定占空比。另外说明以下本系统使用的风扇占空比越小转速越快,也就是反转。 如下程序:
j=10000;//保持一个加到匀速的时间 while(j>0)
{//比值大,转速小 P1_1=1;
delay(21-3*i);//电压关系 P1_1=0; delay(1); j--;}
占空比=delay(21-3*i):delay(1)
21-3×i这个公式是经过反复实验得出的。首先这个公式满足参数i越大占空比越小,并且实际测量的电压区间也满足风扇电压的需要。表3—4—1给出了参数i由1到7的占空比和电压的关系。
参数i 1 2 3 4 5 6 7 电压(伏特) 5.12 5.63 6.11 6.74 7.54 8.56 9.92 表3—5—1占空比和电压关系表
实际上在参数i为1、2时风扇的转速不理想,所以使用了3及其之后的参数值,当0
此部分功能是为了满足图3—6—1中的曲线要求。从图中可以看出曲线共有“升温-恒温-升温-恒温-降温-恒温-降温”7个过程,如采用顺序结构代码的重复率将
占空比 26 22 18 14 10 6 2