基于51单片机空气质量监测报警仿真LCD显示( proteus仿真+程序+设计报告+原理图+讲解视频)
仿真图proteus7.8及以上
程序编译器:keil 4/keil 5
编程语言:C语言
1. 主要功能:
基于51单片机的空气质量报警器proteus仿真设计
1.LCD1602液晶显示空气质量报警值和检测到的空气质量;
2.可以通过按键调整空气质量报警值;
3.空气质量低于报警值工作指示灯绿灯亮。
空气质量高于阈值蜂鸣器报警,工作指示灯红灯亮;
4.通过ADC0832采集滑动变阻器模拟空气质量传感器MQ-135电压变化。
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
基于51单片机空气质量检测报警LCD液晶显示proteus仿真程序设计报告讲解
3. 仿真设计:
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602液晶显示当前有害气体浓度,有害气体浓度测量值590ppm,报警值600ppm,工作指示灯绿灯亮。
通过点击滑动变阻器的阻值调整,阻值高于上限值600ppm后,蜂鸣器报警,工作指示灯红灯亮。
4. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
#include "reg51.h"
#include "ADC0832.h"
#include "lcd1602.h"
sbit k1=P1^4;//按键
sbit k2=P1^5;
sbit k3=P1^6;
sbit k4=P1^7;
sbit beep=P2^7;//蜂鸣器
sbit led1=P3^5;//工作指示灯
sbit led2=P3^4;
uint det_h2=0;//空气质量
uint low=10,high=60;//阀值
uchar disp1[]="value:0000ppm";//第一行显示
uchar disp2[]="alarn:0000ppm";//第二行显示
void main()
{
完整程序见文章最后压缩包
init_1602(); //LCD1602初始化
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
if(!k3) //高阀值加
{
if(high<999)
high++;
while(!k3);
}
if(!k4) //高阀值减
{
if(high>low)
high--;
while(!k4);
}
if(det_h2>high) //上限报警
{
led1=0; //LED1红灯点亮
led2=1; //LED2绿灯熄灭
}
else
{
led1=1; //LED1红灯熄灭
led2=0; //LED2绿灯点亮
}
beep=led1;
}
}
void Timer0() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
det_h2=ADC(1);//测量空气质量
disp1[6]=det_h2/100+0x30; //空气质量百位
disp1[7]=det_h2%100/10+0x30; //空气质量十位
disp1[8]=det_h2%10+0x30; //空气质量个位
// disp2[2]=low/100+0x30;
// disp2[3]=low%100/10+0x30;
// disp2[4]=low%10+0x30;
disp2[6]=high/100+0x30;
disp2[7]=high%100/10+0x30;
disp2[8]=high%10+0x30;
write_string(1,0,disp1);
write_string(2,0,disp2);
}
ADC0832驱动代码
#include "ADC0832.h"
#include "intrins.h"
/*********************************************
读取ADC
**********************************************/
uchar ADC(uchar ch)//通道ch 1,2
{
uchar temp0,temp1,i;
CS=0;
temp0=0;
temp1=0;
_nop_();
_nop_();
DI=1;//开始位
_nop_();
_nop_();
CLK=1;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
DI=0;
_nop_();
_nop_();
//选择通道0
DI=1;
_nop_();
CLK=1;//上升沿DI=1
_nop_();
CLK=0;//1个下降沿DI=1
_nop_();
if(ch==1)
DI=0;
if(ch==2)
DI=1;
_nop_();
CLK=1;
_nop_();
CLK=0;//第3个上升沿DI=0
_nop_();
DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++)
{
temp0=temp0<<1;
CLK=1;
if(DO)
temp0++;
_nop_();
CLK=0;
}
for(i=0;i<8;i++)
{
temp1=temp1>>1;
CLK=1;
if(DO)
temp1=temp1 +0x80;
_nop_();
CLK=0;
}
CS=1;
return temp0;
}
5. 设计报告
8018字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等
随着环境问题的日益严峻,全球对空气质量的关注度达到了前所未有的高度。空气质量监测设备在日常生活中的普及和工业生产过程中的应用变得愈发重要,它们不仅能够提供实时、准确的空气质量数据,帮助人们了解当前环境状况,还为环保决策、污染防控以及工作生活环境优化提供了有力的数据支持。因此,设计并实现一款具备高效能、智能化且用户友好型的空气质量报警器系统成为了科技发展与环境保护的重要课题。
本课程设计项目正是基于这一背景,选择了经典的51系列单片机作为核心控制器,并结合强大的Proteus仿真平台进行模拟实现。该智能空气质量报警器系统具有实时监测空气质量参数、设定及调整报警阈值、实施警报提示等多重功能,充分体现了嵌入式技术在实际应用中的灵活性与实用性。
6. 原理图
原理图使用AD绘制,可供实物参考,仿真不同于实物,经验不足不要轻易搞实物。
Proteus仿真和实物作品的区别:
1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。
2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。
电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。
3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。
4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。
7. 设计资料内容清单&&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、程序
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
MQ-138.pdf
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接(可点击):
https://docs.qq.com/doc/DS0lKdWJsRnhYT0p0