2025《基于单片机烟雾检测系统的软件设计案例》1300字.docxVIP

2025《基于单片机烟雾检测系统的软件设计案例》1300字.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

基于单片机烟雾检测系统的软件设计案例综述

目录

TOC\o1-3\h\u67741.1主程序流程设计 1

254401.2温度检测子函数设计 2

283121.3按键检测子函数设计 3

321261.4报警子函数设计 5

224801.5显示模块子流程设计 6

1.1主程序流程设计

主函数在程序设计过程中起着重要的作用,而主函数的独立存在为我们建立了一个独立的进程,使得我们的程序员具有了一个对应的主函数入口,可以对其它的进程函数进行相应的声明而且也无需再重新进行定义。主函数方法编写时我们应该严格遵循简洁、适当的编写原则,便于后期检查。具体器件定义的功能应该编写入相应的子函数里面去,后期直接调用[13]。

由下图4-1主程序流程图可知,首先单片机进行I/O初始化,具体就是初始化时钟和串口,然后传感器预热,简单来说,就是烟雾传感器中AD转换芯片需要进行初始化,内部电路自检或者数据缓冲这样,程序的全部初始化工作完成后,系统则会自动进入一个实时运行的状态,对周围环境中的烟雾浓度及温度进行实时检测。

在整个系统实时工作过程中,对采集到的信号进行数模转化送到单片机,尔后单片机通过控制LCD进行显示,同时进行检测数据与预设报警上限值进行比较,根据比较结果,由主控单元决定后续的执行操作。

图4-SEQ图4-\*ARABIC1主程序处理流程图

1.2温度检测子函数设计

DS18B20芯片实时读取检测到的信息,自读取温度的过程中,首先对DS18B20芯片进行初始化,然后先读取温度的低字节,再次读取高字节,在芯片内部进行高位低位转化,并最终将周围的温度读取出来,并在显示液晶屏上显示。若读取的温度大于设定的初始值时,报警系统将启动报警,否则不进行报警。

uintread_temp()

{

uintvalue;

ucharlow;

delay_uint(50); //500us

init_18b20(); //初始化18b20

write_18b20(0xcc); //跳过64位ROM

write_18b20(0xbe); //发出读取暂存器命令

EA=0;

low=read_18b20(); //读温度低字节

value=read_18b20();//读温度高字节

EA=1;

value=8;

value|=low;

value*=0.0625;

returnvalue;

其温度程序流程图如图4-2所示。

图4-SEQ图4-\*ARABIC2温度检测子流程图

1.3按键检测子函数设计

由第3章的硬件电路模块介绍可知,本文设计烟雾报警系统用的按键主要有手动报警及阈值设置按键,具体的功能描述如下:

手动报警就是,你按下系统就会一直报警,即蜂鸣器一直响。

设置增加阈值功能,就是在设计系统中,将温度报警或者烟雾报警的上限阈值设置高一点。

设置减少阈值功能,功能和上面一致,作用相反即可。

进入设置功能,就是按下此按键,系统进入功能设置。按键部分的子函数代码分析如下所示:

voidkey_with()

{

if(key_can==4) //紧急报警键手动报警

{

menu_1=0;

}

if(menu_1==0)

init_1602();//初始化显示

}

if(menu_1==0)

{

if((key_can==2)||(key_can==3))

shoudong=0;//取消手动报警

}

if(menu_1==1) //设置烟物报警

{

if(key_can==2)

{

s_dengji++; //烟物报警值加1

if(s_dengji=700)

s_dengji=700;

}

if(key_can==3)

{

s_dengji--; //烟物报警值减1

if(s_dengji=1)

s_dengji=1;

}

}

1.4报警子函数设计

符合程序判断机制时,蜂鸣器会发出一种报警鸣声,对应于此时LED灯闪亮起,并伴随着点击风扇的开启,风扇进行烟雾的驱散和温度的降低。当烟雾值降低至设定初始值之下时,蜂鸣器停止发出报警声,报警取消,此时电机风扇也停止运行。设置完成后,程序运行,报警检测进行环境的监控。

voidclock_h_l()

{

staticu8value;

if((yuzhi=s_yuzhi)||(tempe

您可能关注的文档

文档评论(0)

02127123006 + 关注
实名认证
文档贡献者

关注原创力文档

1亿VIP精品文档

相关文档