基于51单片机的空气净化器仿真
目录
具体实现功能
设计介绍
资料内容
全部内容
资料获取
具体实现功能
具体功能:
(1)LCD1602第一行显示当前烟雾值及PM2.5值,第二行显示当前温度和湿度值;
(2)可以按键设置烟雾报警值、PM2.5报警值、温湿度上下限报警值;
(3)当温湿度值、烟雾值、PM2.5值超出设定的报警值时,蜂鸣器响,指示灯亮;
(4)两个电机通过L298N来模拟风机和负离子模块。通过按键启动负离子模块,当温湿度值、烟雾值、PM2.5值超出设定的报警值时启动风机,按键可以控制风机和负离子档位。
仿真演示视频:
基于51单片机的空气净化器仿真-仿真视频
设计介绍
51单片机简介
51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。
本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。
资料内容
仿真实现(protues8.7)
本设计利用protues8.7软件实现仿真设计,具体如图。
程序(Keil5)
本设计利用KEIL5软件实现程序设计。
主函数如下:
///
/*********************************************************/
// 主函数
/*********************************************************/
void main(void)
{uchar i; // 循环变量PWM1=0;PWM2=0;LcdInit(); // 液晶功能初始化LcdShowInit(); // 液晶显示初始化AlarmInit(); // 报警值初始化mode=0;mode1=0;while(1){yanwu=adc0832(0); // 读取烟雾强度yanwu=yanwu/1.2; // 缩小烟雾检测结果(在0-99) if(yanwu>=99) // 则依然保持99{yanwu=99;}LcdGotoXY(0,6); // 液晶定位到第0行第6列LcdPrintNum1(yanwu); // 显示测量结果PM=adc0832(1); // 读取烟雾强度PM=PM/1.2; if(PM>=99) // 缩小烟雾检测结果(在0-99){PM=99;}LcdGotoXY(0,13); // 液晶定位到第0行第6列LcdPrintNum1(PM); // 显示测量结果/*温湿度读取*/EA=0;ReadDhtData(); // 检测温湿度数据;EA=1;LcdGotoXY(1,2); // 定位到要显示温度的地方LcdPrintNum2(temp); // 显示温度值LcdGotoXY(1,11); // 定位到要显示湿度的地方LcdPrintNum2(humi); // 显示湿度值// 报警判断AlarmJudge(); /*按键扫描和延时*/for(i=0;i<30;i++){KeyScanf(); // 按键判断DelayMs(10);}if(Key==0){DelayMs(10);if(Key==0){mode++;if(mode==0){led1=1;led2=1;led3=1;jd=3;}else if(mode==1){led1=0;led2=1;led3=1;jd=5;}else if(mode==2){led1=0;led2=0;led3=1;jd=10;}else if(mode==3){led1=0;led2=0;led3=0;jd=15;}else if(mode==4){mode=0;led1=1;led2=1;led3=1;jd=3;}}while(Key==0);}if(Key1==0){DelayMs(10);if(Key1==0){mode1++;if(mode1==0){IN3=1;IN4=1;}else if(mode1==1){PWM2=0;IN3=1;IN4=0;}else if(mode1==2){mode1=0;IN3=1;IN4=1;}}while(Key1==0);}}
}
程序运行结果如图:
全部内容
全部资料包括程序(keil5)、protues仿真(protues8.7)、设计说明、答辩PPT、开发资料、资料使用介绍、仿真视频、最小系统介绍视频等。
资料获取
https://docs.qq.com/doc/DT0tvbHJEaVJKSkR1