版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
氢气泄露检测系统的软件设计案例综述目录TOC\o"1-3"\h\u3277氢气泄露检测系统的软件设计案例综述 1301541.1系统主程序设计 1110841.2氢气电压转换子程序设计 2232411.31602液晶子程序设计 4143271.4按键控制子程序设计 71.1系统主程序设计(1)系统主程序流程图设计52单片机的开发除了必要的硬件仿真软件之外,还需要建立一个软件开发环境,由于微处理器内部可以执行的是机器码,因此,编程必须使用汇编语言或者C语言进行转换为hex文件形式的机械码才能被机器内部识别[29]。目前,转换的方法主要有两种,一种是通过直接编写汇编语言,机器即可识别这种语言,但是这种语言实现起来比较复杂,可编程性不高,现在很少使用,另外一种是通过编译软件进行转换,用户只需使用C语言进行编程,逻辑没有错误之后即可通过软件内部编译的形式变成机器码,目前使用的最为广的编译软件是keil,这款软件性能非常的强大,其内部集成了各种函数库,用户只需调用其内部的子函数即可实现想要的功能,keil提供了一个集成开发环境uVision。开发的流程首先是通过该编译器编写相应的逻辑程序,紧接着就是使用内部的编译器执行编译,观察是否有逻辑上的错误,没有错误之后用生成的hex文件输入到硬件平台中,这样就可以给用户大大的缩短了系统开发的周期[30]。所以本文所用到软件开发环境为keil,使用C语言进行编程。其主程序流程图如图4-1所示。首先系统上电之后初始化各个模块,包括初始化液晶显示屏、A/D模块实时的采集外部直流信号,并将检测到的氢气电压值显示到液晶屏幕上;其次是判断采集到的氢气电压知否大于设定的阈值,如果大于则控制外部的报警器电路发出声音报警;最后进入按键扫面判断子程序,单片机实时的检测外部是否有按键按下,并进行相应的氢气电压阈值设定。图4-1系统主程序流程图关键部分程序#include<reg51.h>#include<intrins.h>#include"lcd1602.h"//1602液晶头文件#defineucharunsignedchar#defineuintunsignedint#defineFOSC11059200L//Systemfrequency#defineBAUD9600//UARTbaudrate1.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所示。首先上电初始化之后,清除液晶屏幕显示内容一遍,防止出现乱码的现象。第二是配置显示的模式分别为打开显示指令,不显示当前屏幕字符移动的光标,且屏幕显示字符的格式依次向右移动。第三读取显示模式值,液晶驱动模块会根据配置的十六进制值设置相应的显示格式,然后读取需要显示的内容。第五把内容显示到液晶屏幕的第一栏中,读取和显示的内容依次从左到右,每显示完一个字符都要进行判断是否还有下一个字符需要进行显示,直到全部字符和数据读取和显示完毕即可停止第一栏内容的读取操作。第六是把内容显示到液晶屏幕的第二栏中,读取和显示的内容依次从左到右,每显示完一个字符都要进行判断是否还有下一个字符需要进行显示,直到全部字符和数据读取和显示完毕即可停止第二栏内容的读取操作,到此整个液晶屏幕需要显示的内容全部读取和显示完毕。本文设计大发电厂氢气泄露检测和报警器系统的氢气检测电压数值显示在屏幕的第一栏,预设的氢气电压阈值显示在屏幕的第二栏。图4-3液晶显示子程序流程图关键程序部分*名称:delay_uint()*功能:小延时。*输入:无*输出:无*名称:write_com(ucharcom)*功能:1602命令函数*输入:输入的命令值*输出:无*名称:write_data(uchardat)*功能:1602写数据函数*输入:需要写入1602的数据*输出:无/***********************lcd1602上显示这字符函数************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/***********************lcd1602初始化设置************************/voidinit_1602() //lcd1602初始化设置{ write_com(0x38); // write_com(0x0c); write_com(0x06);}////////////////在指定位置显示指定字符//////////voidwrite_zifu(ucharhang,ucharadd,uchardat){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(dat+0X30);}/*voidwrite(uchar*pp){ while(*pp!='\0') { write_data(*pp); pp++; } }*/#endif1.4按键控制子程序设计(1)按键设定氢气电压阈值子程序流程图设置按键设置氢气电压阈值子程序流程图如图4-4所示。图4-4按键设定氢气电压阈值子程序流程图程序执行的步骤:首先是判断功能选择按键是否按下,如果按下则进入加和减按键的检测,如果检测到了加按键则氢气电压阈值加1,否则进入减按键判断的环节,如果减按键按下则氢气电压阈值减1操作,否则再次判断功能选择按键是否按下,按下则表示当前氢气电压阈值设置完成。关键程序部分sbitfm=P2^11sbits1=P3^3;sbits2=P3^5;sbits3=P3^7;//按键设置voidkey(){staticucharcishu;//按键功能 i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级物理跨学科实践:从“地心说”到“天宫”-宇宙探索与航天工程(教案)
- 初中七年级春季开学收心主题班会教案
- 2026年大数据集成品牌合作合同
- 2026年项目合作包装服务合同书
- 《和与积的奇偶性》教学设计(小学五年级数学)
- 《营养、代谢与细胞命运:饮食调控衰老机制》教学设计(大学本科通识教育选修课)
- 浙江省杭州拱墅区七校联考2026届中考物理最后一模试卷含解析
- 2026学年湖北省宜城市四年级数学期末高分通关高频考点卷详细参考解析详细答案和解析
- 小学科学教育与信息技术教学融合:人工智能辅助的跨学科教学实验教学研究课题报告
- 2025年广东省深圳市龙岗区招聘工会社会工作者11人笔试题库及答案详解(名校卷)
- 新组建部门工作方案
- 乡镇孕产妇管理奖惩制度
- 第四届山东省人工智能融合创新职业技能竞赛(人工智能训练师)试题库(含答案)
- 五年(2021-2025)中考数学真题分类汇编(安徽专用)17:几何压轴题(学生版)
- GB/T 26071-2026太阳能电池用硅单晶及硅单晶片
- 印刷厂机器操作制度规范
- 三年(2023-2025)辽宁中考英语真题分类汇编:专题07 任务型阅读(解析版)
- (2025年)高级营销员(四级)考试近5年真题集锦(频考类试题)带答案
- 中国农业大学强基计划真题笔试
- 2026年一级建造师一建建筑实务案例分析简答题考点重点知识总结300问
- 2026年中国土豆项目经营分析报告
评论
0/150
提交评论