基本信息
文件名称:2025《氢气泄露检测系统的软件设计案例》1800字.docx
文件大小:46.42 KB
总页数:8 页
更新时间:2025-05-28
总字数:约3.64千字
文档摘要

氢气泄露检测系统的软件设计案例综述

目录

TOC\o1-3\h\u3277氢气泄露检测系统的软件设计案例综述 1

301541.1系统主程序设计 1

110841.2氢气电压转换子程序设计 2

232411.31602液晶子程序设计 4

143271.4按键控制子程序设计 7

1.1系统主程序设计

(1)系统主程序流程图设计

52单片机的开发除了必要的硬件仿真软件之外,还需要建立一个软件开发环境,由于微处理器内部可以执行的是机器码,因此,编程必须使用汇编语言或者C语言进行转换为hex文件形式的机械码才能被机器内部识别[29]。

目前,转换的方法主要有两种,一种是通过直接编写汇编语言,机器即可识别这种语言,但是这种语言实现起来比较复杂,可编程性不高,现在很少使用,另外一种是通过编译软件进行转换,用户只需使用C语言进行编程,逻辑没有错误之后即可通过软件内部编译的形式变成机器码,目前使用的最为广的编译软件是keil,这款软件性能非常的强大,其内部集成了各种函数库,用户只需调用其内部的子函数即可实现想要的功能,keil提供了一个集成开发环境uVision。开发的流程首先是通过该编译器编写相应的逻辑程序,紧接着就是使用内部的编译器执行编译,观察是否有逻辑上的错误,没有错误之后用生成的hex文件输入到硬件平台中,这样就可以给用户大大的缩短了系统开发的周期[30]。

所以本文所用到软件开发环境为keil,使用C语言进行编程。其主程序流程图如图4-1所示。首先系统上电之后初始化各个模块,包括初始化液晶显示屏、A/D模块实时的采集外部直流信号,并将检测到的氢气电压值显示到液晶屏幕上;其次是判断采集到的氢气电压知否大于设定的阈值,如果大于则控制外部的报警器电路发出声音报警;最后进入按键扫面判断子程序,单片机实时的检测外部是否有按键按下,并进行相应的氢气电压阈值设定。

图4-1系统主程序流程图

关键部分程序

#includereg51.h

#includeintrins.h

#includelcd1602.h//1602液晶头文件

#defineucharunsignedchar

#defineuintunsignedint

#defineFOSC//Systemfrequency

#defineBAUD9600//UARTbaudrate

1.2氢气电压转换子程序设计

A/D主程序流程图设计

本文设计的ADC0832氢气电压采样子程序流程图如图4-2所示。驱动和控制这款A/D芯片实时读取数据主要包括以下几个方面进行:首先是使能芯片,使其能正常的工作,其次,引出单片机控制引脚控制输入通道,读取两个字节的数据,并对读取的字节数进行校正;最后把实时读取的寄存器数据送入到指定的寄存器中保存[31],一次A/D转换结束。

图4-2A/D子程序流程图

关键程序部分

sbitCS=P1^3;//AD模块使能端

sbitCLK=P1^0;///AD模块时钟

sbitDI=P1^2;///AD模块数据输入

sbitDO=P1^1;///AD模块数据输出

voidstartADC() //启动ad

{

CS=1;

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

CS=0;

_nop_();

_nop_();

DI=1;

_nop_();

_nop_();

CLK=1;

_nop_();

_nop_();

DI=0;

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

}

1.31602液晶子程序设计

(1)液晶显示子程序流程图设计

1602液晶显示屏的程序流程图如图4-3所示。首先上电初始化之后,清除液晶屏幕显示内容一遍,防止出现乱码的现象。第二是配置显示的模式分别为打开显示指令,不显示当前屏幕字符移动的光标,且屏幕显示字符的格式依次向右移动。第三读取显示模式值,液晶驱动模块会根据配置的十六进制值设置相应的显示格式,然后读取需要显示的内容。第五把内容显示到液晶屏幕的第一栏中,读取和显示的内容依次从左到右,每显示完一个字符都要进行判断是否还有下一个字符需要进行显示,直到全部字符和数据读取和显示完毕即可停止第一栏内容的读取操作。第六是把内容显示到液晶屏幕的第二栏中,读取和显示的内容依次从左到右,每显示完一个字符都要进行判断是否还有下一个字符需要进行显示,直到全部字符和数据读取和显示完毕即可停止第二栏内容的读取操作,到此整个液晶屏幕需要显示的内容全部读取和显示完毕。本文设计大发电厂氢气泄露检测和报警器系统的氢气检测电压数值显示在屏幕的第一栏,预设的