当前位置:首页 > 饮水机温度控制的系统设计与仿真
图2-9总硬件电路图
3系统的软件设计
为了便于系统维护和功能扩充,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。本设计的软件设计包括主程序,键盘子程序,报警子程序,显示模块子程序等。
3.1软件总体设计思路
良好的设计方案可以减少软件设计的工作量,提高软件的可读性,扩展性和通用型。 本系统的设计方案和步骤如下:
10
(1) 按照系统的功能要求来逐级划分模块。
(2) 明确各模块之间的数据流传递关系,为增强各模块的独立性,力求数据传递少,便于软件编制和调试。
(3) 确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过。 (4) 按照开发式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。 3.2主程序软件设计
主程序主要包括对显示子程序,键盘子程序,报警子程序的控制和调用。下图流程图是按照其本设计所要实现的功能来的设计的。
主程序流程图如图3-1:
主程序初始化LCD初始化DS18B20读取温度LCD显示温度LCD显示温度设定目标温度实温大于设定温度N继续加热灯亮N设定温度大于报警值99度Y继电器断开停止加热灯灭Y报警
11
3-1主程序流程图
3.3键盘子程序软件设计
在执行程序的时候只需逐位判断P3.2,P3.3,P3.4,P3.5口是高电平还是低电平,若为高电平,则表示没有按键按下;若为低电平,则表示有按键按下。在程序的设计当中,考虑了按键的去抖动问题。因为用手按下一个按键时,往往会出现所按键在闭合位置和断开位置之间跳动几下才稳定到闭合状态的情况。在释放一个键的时候,也会出现类似的情况,抖动的时间是不一致的,通常小于10毫秒,若抖动的问题不解决,就会引起闭合键的多次读入。对于键的抖动处理,一般采用软件延时10毫秒的方法。在发现有按键闭合时,不是立即读入该键值,而是延时一段时间以后,再进行键闭合与否的判断,确认此时是否真的有按键下,有则进行该按键的处理,没有则不进行处理。
先判断是否右键按下,再判断是哪个按键,分别按照各个功能执行。 键盘子程序如图3-2:
开始有按键按下?延时1ms判别键号按键处理返回 3-2 键盘子程序流程图
12
3.4报警子程序软件设计
报警子程序是在当设定的保温温度大于99℃时,当加热到这个预设温度时,蜂鸣器报警提示水烧开,继电器断开,停止加热,温度下降,停止报警。报警子程序中响乐用到的头文件如下:
#include
#define OSC 12000000 //OSC//定义普通音符演奏的长度分率,每4分音符间隔 #define MUSIC_SPACE 4/5 sbit music_out=P3^6;//原始频率表 void playm_init_sound(void);
//void playm_interrupt_timer0(void); //interrupt 1; //signature 签字 Octachord 八度音节
void playm_play_music(uchar *sound,uchar signature,unsigned octachord,uint speed);
开始是否大于预设温度?YN不启动蜂鸣器显示温度启动蜂鸣器
3-3报警子程序流程图
13
共分享92篇相关文档