仿真版本:Proteus8.6及以上版本
程序编译:Keil5 C51
编程语言:C语言
设计编号:【U01】
1.? 简介
? 本文提出了一种基于51单片机的PM2.5空气质量检测系统。单片机实时通过ADC0832转换芯片采集粉尘传感器的粉尘的浓度,通过单片机的数据转换处理后在液晶屏上显示空气中的质量,当测量空气中的粉尘浓度大于设置粉尘浓度时,蜂鸣器和发光二极管发出声光报警。粉尘的浓度报警值可以通过按键进行设置。
2.? 主要功能
a.通过LCD1602显示当前PM2.5浓度和报警阈值。
b.通过按键设置粉尘浓度报警阈值。
3.? 源程序(Keil5)
本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。
#include"reg51.h"
#include"intrins.h"
#include"absacc.h"
//设定adc0832的引脚
sbit RS=P1^4;
sbit RW=P1^5;
sbit E=P1^6;
//设定三个按钮的引脚
sbit jian=P3^1;
sbit jia=P3^0;
//sbit fuwei=P3^1;
//设定adc0832的引脚
sbit baojing=P1^3;
sbit cs=P1^2;
sbit di=P1^0;
sbit clk=P1^1;
//定义(方便写程序)
#define busy 0x80
#define uchar unsigned char
#define uint unsigned int
//把要用的字符串写出来
uchar code table[]="PM2.5:";
uchar code table1[]="ALARM:";
uchar code table2[]="ug/m3";
uchar code table3[]="0123456789ABCDEF";
uchar num, set, now, a, b;
//延时函数
void delay(uint i)
{ uint j;
for(j=0;j<i;j++);
}
//查询adc0832是否在忙
void test_1602busy()
{ uchar P0DATA;
RW=1;
RS=0;
loop: P0=0xff;
E=1;
P0DATA=P0;
E=0;
if(P0DATA&busy)
{ goto loop;
}
}
//写命令
void writecom(uchar co)
{ test_1602busy();
RS=0;
RW=0;
E=0;
P0=co;
E=1;
E=0;
}
//写数据
void writedata(uchar Data)
{ test_1602busy();
RS=1;
RW=0;
E=0;
P0=Data;
E=1;
E=0;
}
void init()
{ writecom(0x38); //设置16X2显示,5X7点阵,8位数据接口
writecom(0x0c); //设置开显示,不显示光标
writecom(0x06); //写一个字符后地址指针加1
writecom(0x01); //显示清零,数据指针清零
}
void sound()
{ uchar z=100;
while(z--)
{ baojing=~baojing;
delay(500);
}
}
//从adc0832获取数据
uchar get()
{ uchar Dat1=0,Dat2=0;
clk=0; di=1; cs=0;
clk=1; clk=0; di=1; //第一脉冲,开始位
clk=1; clk=0; di=1; //第二脉冲,模式选择
clk=1; clk=0; di=1; //第三脉冲,通道选择
for(b=0;b<8;b++) //从高到低取一次数
{clk=1;
clk=0;
if(di) Dat1|=0x80>>b;
}
for(b=0;b<8;b++) //从诋到高取一次数
{if(di) Dat2|=0x80<<b;
clk=1;
clk=0;
}
cs=1; di=1; clk=1;
if(Dat1==Dat2) return Dat1; //校验两次读数
}
4.? 仿真proteus8.6
? 本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
初始界面:
超限报警:
5.? 设计报告
设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
6.? 资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。
7.? 资料获取链接
百度网盘下载链接:【U01】百度网盘下载链接
更多单片机仿真设计合集:单片机仿真设计合集