图2-17工作界面
3 软件设计
3.1软件设计结构
软件设计部分主要包括:编写语言的选择、主程序/子程序流程的设计、功能模块程序的编写、软/硬件结合调试与演示。主要包括以下功能模块:51驱动、检测、液晶显示、时钟、键盘、模数软换。软件结构框图3-1:
图3-1软件结构框图
3.2编写语言的选择
对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语
言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。
C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。
软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能写各个子程序。整个软件程序的编写采用查询式方式编写的。 3.3主程序模块
主程序实现的功能:与硬件相结合实现便携式甲醛检测仪的各个功能。主要是检测与显示,时间调整与显示,数据存储。功能子函数的调用。见图3-2。
图3-2主程序流程图
检测主程序程序见附录二。 3.4模数转换
(1)模数转换模块的主要功能就是将经放大器放大的模拟电压信号转化为MCU能够处理的数字信号,并传送给MCU。
(2)ADC0832转换的流程图见下图3-3:
图3-3数转换流程图
(3)ADC0832程序见附录三。 3.4按键模块
(1)按键时显现人机对话的一个控制按钮,通过按键的操作,对系统进行发送操作指令,后经与MCU串行通信,然后在液晶上显示。
(2)按键查询式的流程图见下图:
图3-4按键查询式的流程图
(3)按键程序见附录四。 3.5时钟模块
(1)DS1302模块主要是用于设置时间和与MCU通信经LCD显示时间。 (2)时钟模块操作流程图见下图:
图3-5时钟模块操作流程图
(3)时钟程序见附录五。 3.6液晶显示模块
(1)LCD模块在本系统中主要起着开界面汉字显示,以及各控制效果的显示。采用直接访问方式。
(2)液晶显示的操作流程图见下图3-6:
图3-6液晶显示的操作流程图