寺庙招人做网站维护吗高端网站建设网络设计互联网信息化服务类
news/
2025/10/6 3:30:40/
文章来源:
寺庙招人做网站维护吗,高端网站建设网络设计互联网信息化服务类,学做标书网站,注册公司取名技巧文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器#xff0c;使用按键、LCD1602液晶、蜂鸣器模块、CO、NOx、HC和PM2.5气体传感器等。
主要功能#xff1a; 系统运行后#xff0c;LCD1602显示CO、NOx、HC和… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器使用按键、LCD1602液晶、蜂鸣器模块、CO、NOx、HC和PM2.5气体传感器等。
主要功能 系统运行后LCD1602显示CO、NOx、HC和PM2.5气体浓度检测值可通过按键K3进入阈值设置模式K1和K2调节阈值K4键确定并返回主界面。 当检测值高于阈值则蜂鸣器报警并且相应指示灯点亮。 二、软件设计
/*
作者嗨小易QQ技术交流群570487280*///系统数据显示
void sys_data_show(void)
{u8 buf[5];while(1){//正常模式显示if(sys_ctrl.mode0){//co显示buf[0]sys_ctrl.co/1000x30;buf[1].;buf[2]sys_ctrl.co%100/100x30;buf[3]sys_ctrl.co%100%100x30;buf[4]\0;lcd1602_show_string(3,0,buf);//nox显示buf[0]sys_ctrl.nox/1000x30;buf[1].;buf[2]sys_ctrl.nox%100/100x30;buf[3]sys_ctrl.nox%100%100x30;buf[4]\0;lcd1602_show_string(12,0,buf);//hc显示buf[0]sys_ctrl.hc/1000x30;buf[1].;buf[2]sys_ctrl.hc%100/100x30;buf[3]sys_ctrl.hc%100%100x30;buf[4]\0;lcd1602_show_string(3,1,buf);//pm25显示buf[0]sys_ctrl.pm25/1000x30;buf[1].;buf[2]sys_ctrl.pm25%100/100x30;buf[3]sys_ctrl.pm25%100%100x30;buf[4]\0;lcd1602_show_string(12,1,buf);}//阈值设置显示else{//co显示buf[0]sys_ctrl.threshold[0]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[0]%100/100x30;buf[3]sys_ctrl.threshold[0]%100%100x30;buf[4]\0;lcd1602_show_string(3,0,buf);//nox显示buf[0]sys_ctrl.threshold[1]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[1]%100/100x30;buf[3]sys_ctrl.threshold[1]%100%100x30;buf[4]\0;lcd1602_show_string(12,0,buf);//hc显示buf[0]sys_ctrl.threshold[2]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[2]%100/100x30;buf[3]sys_ctrl.threshold[2]%100%100x30;buf[4]\0;lcd1602_show_string(3,1,buf);//pm25显示buf[0]sys_ctrl.threshold[3]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[3]%100/100x30;buf[3]sys_ctrl.threshold[3]%100%100x30;buf[4]\0;lcd1602_show_string(12,1,buf);switch(sys_ctrl.mode){case 1:lcd1602_show_string(3,0, );delay_ms(100);buf[0]sys_ctrl.threshold[0]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[0]%100/100x30;buf[3]sys_ctrl.threshold[0]%100%100x30;buf[4]\0;lcd1602_show_string(3,0,buf);break;case 2:lcd1602_show_string(12,0, );delay_ms(100);buf[0]sys_ctrl.threshold[1]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[1]%100/100x30;buf[3]sys_ctrl.threshold[1]%100%100x30;buf[4]\0;lcd1602_show_string(12,0,buf);break;case 3:lcd1602_show_string(3,1, );delay_ms(100);buf[0]sys_ctrl.threshold[2]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[2]%100/100x30;buf[3]sys_ctrl.threshold[2]%100%100x30;buf[4]\0;lcd1602_show_string(3,1,buf);break;case 4:lcd1602_show_string(12,1, );delay_ms(100);buf[0]sys_ctrl.threshold[3]/1000x30;buf[1].;buf[2]sys_ctrl.threshold[3]%100/100x30;buf[3]sys_ctrl.threshold[3]%100%100x30;buf[4]\0;lcd1602_show_string(12,1,buf);break;}}break; }
}//系统数据设置
void sys_data_set(void)
{u8 key0;keykey_scan(0);//模式设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode4)sys_ctrl.mode1;}if(sys_ctrl.mode!0){//在设置模式下加if(keyKEY1_PRESS){ switch(sys_ctrl.mode){case 1://co sys_ctrl.threshold[0];if(sys_ctrl.threshold[0]100)sys_ctrl.threshold[0]0;break;case 2://nox sys_ctrl.threshold[1];if(sys_ctrl.threshold[1]100)sys_ctrl.threshold[1]0;break;case 3://hc sys_ctrl.threshold[2];if(sys_ctrl.threshold[2]100)sys_ctrl.threshold[2]0;break;case 4://pm25 sys_ctrl.threshold[3];if(sys_ctrl.threshold[3]100)sys_ctrl.threshold[3]0;break;} }//在设置模式下减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://co sys_ctrl.threshold[0]--;if(sys_ctrl.threshold[0]0)sys_ctrl.threshold[0]100;break;case 2://nox sys_ctrl.threshold[1]--;if(sys_ctrl.threshold[1]0)sys_ctrl.threshold[1]100;break;case 3://hc sys_ctrl.threshold[2]--;if(sys_ctrl.threshold[2]0)sys_ctrl.threshold[2]100;break;case 4://pm25 sys_ctrl.threshold[3]--;if(sys_ctrl.threshold[3]0)sys_ctrl.threshold[3]100;break;}}//确定else if(keyKEY4_PRESS){sys_ctrl.mode0; } }
}//系统功能控制
void sys_fun_ctrl(void)
{//正常工作模式下if(sys_ctrl.mode0){//如果CO浓度超限报警指示灯亮if(sys_ctrl.cosys_ctrl.threshold[0]){LED_CO0;beep_alarm(1,1000);}else{LED_CO1; }//如果nox浓度超限报警指示灯亮if(sys_ctrl.noxsys_ctrl.threshold[1]){LED_NOX0;beep_alarm(1,1000);}else{LED_NOX1; }//如果hc浓度超限报警指示灯亮if(sys_ctrl.hcsys_ctrl.threshold[2]){LED_HC0;beep_alarm(1,1000);}else{LED_HC1; }//如果pm25浓度超限报警指示灯亮if(sys_ctrl.pm25sys_ctrl.threshold[3]){LED_PM250;beep_alarm(1,1000);}else{LED_PM251; } }
}//应用控制系统
void appdemo_show(void)
{sys_parm_init();//系统参数初始化lcd1602_init();sys_open_show();//系统开机界面显示while(1){ sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}三、实验现象
B站演示视频https://space.bilibili.com/444388619
联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928962.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!