超声波流量计软件采用C语言编写,MSP430系列单片机使用IARWorkbench系统,它的编译器提供C语言的标准特性,还具有许多为MSP430单片机专门设计的开发工具。是一款集编辑、编译、调试、下载于一体的集成开发环境。
系统的应用程序主要是由主程序和中断处理程序组成,其中主程序又由多个子程序所组成。主程序包括:系统初始化子程序、电池测试子程序、数据处理子程序、循环显示子程序等;中断处理子程序包括:流量检测子程序、温度压力检测子程序、流量补偿算法子程序、按键输入子程序、存储配置数据子程序、通讯子程序等。
主程序完成仪表的整个管理和控制工作,流程图如图所示如图7。
流量计初次上电时系统初始化,显示当前时间,历史流量数据,压力、温度和电池电量。用户可以选择数据清零或保持不变。如果电池电量过低,系统报警,显示“电量不足”符号,提示用户更换电池。
在无操作的情况下延时一段时间后自动关闭显示,进入低功耗模式3(LMP3)。当发生中断事件,从低功耗模式中被唤醒,并判断是何种中断事件,进而进入中断处理程序。中断程序流程图如图8所示。
若是时钟信号唤醒,则通过漩涡转速、温度、压力值计算出标况下的气体流量,通过软件补偿计算,消除压损。并将流量值和当前时间存入中24C16中,然后流量计重新进入低功耗模式。
若是有按键按下,则通过中断唤醒后单片机调用按键子程序,根据按下的功能键显示当前的瞬时流量、累积流量、温度、压力、运行时间等信息。若按下多次按下确定键或在一段时间内无按键按下则又进入低功耗模式。
若是用户通过按键选择通讯,系统将调用相应的通讯子程序自动将当前或是历史流量信息发送给上位机。
若是超声波流量计传感器报警,流量计报警并关闭电动阀,存储报警标志,延时一段时间后进入低功耗模式。