使用软件Keil uVision4,proteus 8 Professions

一、研究目的

计算机控制系统通常具有精度高、速度快、存储容量大和有逻辑判断功能等特点, 因此可以实现高级复杂的控制方法,获得快速精密的控制效果。在控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意或采取紧急措施。可燃气的泄露是种隐形杀手,严重影响了市民生命安全,如果采用可燃气浓度控制装置就能得到及时的防护,专家经过长期测试,燃气浓度控制装置能防止事故发生的有效率达95%以上。面对这种威胁,急需探究一款高效稳定的安防产品。可燃气浓度控制系统是安全使用可燃气不可或缺的一道保护。本设计中报警程序和电机控制是设计的核心,可燃气浓度控制由气体传感器探测周围环境中的低浓度可燃气体,通过信号采样电路,将探测信号用模数转化电路转换成单片机可识别的数字量,当可燃气体浓度超过控制程序设定的阈值时,报警电路发出声光报警信号。电机控制电路对可燃气进行排放。

二、硬件电路

系统的工作原理是利用可燃气传感器将可燃气浓度变换为mV级模拟电流信号,放大器把信号放大后,通过A/D转换器,变换成数字量送入单片机进行数据分析和处理,并输出信号到显示器,当检测信号达到限定的阈值时,单片机将输出信号驱动报警及浓度控制装置,维持室内可燃气浓度在安全范围。硬件电路总设计包括:气体传感器,模数转化电路,AT89C51单片机,声光报警和浓度控制电路。

硬件系统图

三、各部分功能详细介绍

3.1、单片机的选择
单片机作为可燃气泄漏报警的核心器件,一方面他要接收来自传感器的气体浓度的模拟信号和故障检测信号,另一方面要对两种信号分别进行处理,控制后续电路的相应工作;
(1)AT89C51单片机
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-51指令系统,片内置通用8位(CPU和Flash存储单元)功能强大。

图 2.1  AT89C51单片机引脚图

(2)时钟和复位电路
    外接晶振时,C1和C2的值通常选择30pF左右;C1、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2~12MHz之间选择。本设计选择了6MHz,电容为1uF,为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装的与单片机引脚XTAL1和XTAL2靠近。

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

在整个可燃气报警系统中,要要进行不同的实验,因而系统要先复位,单片机系统在上电运行时,都需要初始化,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作,单片机本身不能进行复位,如果实现此功能必须配合相应的外部复位电路。
单片机的外部复位电路有上电复位和按键均有效的复位两种,我们在涉及单片机复位时选择按键复位。

图2.2 时钟和复位电路图

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XLAT1和XLAT2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图3.3所示。
    外接石英晶体(或陶瓷谐振器)及电容C1,C2接在放大器的反馈电路中并构成并联振荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,推荐电容使用30 pF±10pF,而如果使用陶瓷谐振器建议选40 pF±10pF。
    用户可以采用外部时钟。采用时钟的电路如图4右图所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
3.2.外围接口电路的设计
(1)数据采集单元
可燃气体经过MC101催化燃烧式传感器检测到100~1000ppmCH4将其变成5~50mV电压信号,有放大电路放大100倍,变成0.5~5V电压信号,放大倍数计算公式:

放大电路中放大100倍公式:

电路图如下:

图 2.3 信号采集及放大电路

(2) ADC0808介绍
    ADC0808是一种8位主次逼近式A/D转换器,其内部结构如图8-3所示,其中包括8路模拟量开关、地址锁存与译码、8位A/D转换器和三态输出锁存器。多路开关外接8路模拟量输入端,可对8路0~5V的输入模拟电压信号分时进行转换,输出具有TTL三态锁存缓冲器,可直接连到单片机数据总线上。
    A/D转换器的电路综合功能如下:
    (1)分辨率为8位。
    (2)最大不可调误差小于±1LSB。
    (3)单一+5V供电,模拟输入范围为0~5V。
    (4)具有锁存控制的8路模拟开关。
    (5)可锁存三态输出,输出与TTL兼容。
    (6)功耗为15mW。
    (7)不必进行零点和满度调整。

(8)转换速率取决于芯片的时钟频率,时钟频率范围为10~1280kHz,当时钟为300kHz时,转换速率为128us。                 

图 2.4 ADC0808引脚图

3.3单片机与ADC0808接口电路
一个ADC开始转换时,必须加一个启动转换信号,这一启动信号要由单片机提供。通常用WR和地址译码器的输出经一定的逻辑电路进行控制。对于电平启动型ADC,当把符合要求的电平加到启动控制端上时,立即开始转换。在转换过程中,必须保持这一电平,否则会终止转换的进行。因此,在这种启动方式下,单片机的控制信号必须经过锁存器保持一段时间,本设计通过D触发器实现。A/D转换器电路如下图所示:

图 3.5单片机与0808接口电路

3.4数码管显示
发光二极管通常需要十几到几十mA的驱动电流才能发光,因此,由微型机发出的显示控制信号必须经过驱动电路才能使显示器正常工作。
本次我们用的时动态显示。动态显示,就是微型计算机定时的对显示器进行扫描,在这种方法中,显示器分时工作,每次只能有一个器件显示。但由于人的视觉有暂留现象,所以,只要扫描频率足够快,仍会感觉所有的器件都在显示。此种显示的优点是使用硬件少,因而价格低,线路简单。但它占用机时长,只要微型计算机不执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销大。
ABCDEFG控制着每个数字中的七段发光二极管来显示每个数字,DP控制着小数点的显示,TED显示电路是由1234进行选通控制第几位数字的显示。利用LED显示电路显示空气中的可燃气浓度,来警示人们,保护人的安全。数码管的A B C D E F G D P代表一个管子里面有7个LED灯,和小数点.右边4个数值是指4 个数码管的选通。

图 3.6   LED显示电路

3.5声音灯光报警电路

单片机AT89C51通过引脚P3.6和P3.7控制二极管导通,蜂鸣器报警。红灯不亮表示正常状态,表示环境中的可燃气浓度处于极低状态,当气体传感器检测的浓度信号达到所限定值的要求时,红灯开始闪亮,提醒用户尽快采取安全方法措施。当可燃气浓度超过报警所要求的预设值时,红灯闪亮,报警器发出声音警示用户可燃气浓度已经很高,泄漏情况已经较为严重,用户需及时撤离现场。

图 3.7 声音灯光报警电路

3.6浓度控制电路

浓度控制电路采用ULN2003A芯片来驱动两个不同方向的排风扇,设计了pwm控制程序来根据不同的可燃气浓度控制风扇实现不同的转速。
LN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。
浓度控制电路在开始运行时,风扇1缓慢地向外排出气体,保证室内可燃气浓度低。当屋内可燃气泄露,空气中的可燃气密度达到限定值1以上时,风扇1以较快的速度正转向外排出可燃气,风扇2快速反转向屋内供应洁净空气,目的是降低室内可燃气的浓度。当可燃气浓度达到限定值2以上时,风扇1正转飞速排出可燃气体,风扇2也飞速反转的向屋内供应安全气体,以保证在较快的时间内降低可燃气的浓度,保证人的生命安全。

3.8 浓度控制电路

3.7软件程序设计

主程序流程图如图所示,系统先进行初始化,单片机内部实现将浓度值与预先设定好的报警值比较,判断是否报警和浓度控制风扇工作方式,分200ppm,1000ppm两个浓度等级,使用户更加便利。

图3.9 主程序流程图

四、结果

图 4.1 当浓度小于于200ppm时,表示情况正常

当可燃气浓度小于200ppm时,LED不亮,表示室内可燃气浓度在正常状态,风扇1开始缓慢的向外排出气体,保证屋内可燃气浓度低。

图 4.2 当浓度大于200ppm时,一级报警

当室内可燃气泄露浓度大于200ppm时,一级报警,LED灯亮,风扇1正转以较快的速度向外排出可燃气体,风扇2反转快速向屋内供应洁净空气,目的是降低室内可燃气的浓度。

图 4.3 当浓度大于500ppm时,二级报警

当浓度大于500ppm时,二级报警,LED灯亮且蜂鸣器开始响,风扇1正转飞速的向外排出可燃气体,风扇2反转也飞速的向屋内供应安全气体。报警器发出的声音可警示用户,此时浓度较高,必须尽快撤离。浓度控制电路保证在较快的时间内降低可燃气的浓度,保证人的生命安全。
两级警报可提示用户不同的可燃气泄漏浓度情况,并采取相应措施,使用户安全撤离。

设计了一套合理的浓度控制系统方案,并对可燃气浓度控制系统中涉及到的各个组成部分做出了详细的分析。根据设计所规定的浓度要求,考虑到使用环境、成本等因素,选用MC101催还燃烧式气体传感器。单片机控制电路中,AT89C51单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。

可燃气泄漏报警器能够对可燃气进行实时监测,当浓度超时,过设定的范围值时,发出声光报警。同时单片机将报警时的浓度通过数码管显示出来。浓度控制电路能够降低可燃气的浓度,利用双向风扇在不同的可燃气浓度以快速、飞速的转速来排出可燃气并排进纯净的空气,以保证人的安全。学会了单片机AT98C51,ADC0808,以及7SEG-MPX4-CC的引脚功能。学会了如何利用A/D转换器ADC0808将模拟量转换位数字量。如何利用AT89C51将数字量传送到数码管中,通过P1口与数码管相连,将浓度显示出来。利用程序控制着ADC0808的运行。学会了连接单片机的时钟与复位电路。在设计的基础上,可以对浓度控制器进一步功能拓展,以保障可燃性气体浓度控制功能更加完备,工作性能稳定,安全性更高。

#include <reg52.h>#include <math.h> #define unit unsigned int #define uchar unsigned char
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit P37=P3^7;
sbit P36=P3^6;
uchar ad_data;
int data dis[6]={0x00,0x00,0x00,0x00,0x00,0x00};
uchar code led_segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int A4,A3,A2,A1,x;
void data_pro();
void delay (k);
void display();
void main(void)         //主程序
{      ad_data=0;     //采样值存储单元初始化为0    while(1)      {    ST=0;    ST=1; ST=0;
while(EOC==0)OE=1;
ad_data=P0;
data_pro();
display();
}
}
void delay(int count) //定义延时子函数,利用循环来延时
{ int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}
void display(void)         //LED显示子程序 {P1=led_segment[A1];       //驱动方法     led1=0; //开第一个数码管              delay(1); //动态显示方法 进行一个很小的延时     led1=1;    //关第一个数码管 这样进行动态显示     P1=led_segment[A2];       //驱动方法     led2=0; //开第二个数码管              delay(1); //动态显示方法 进行一个很小的延时     led2=1;    //关第二个数码管 这样进行动态显示    P1=led_segment[A3];     led3=0;     delay(1);     led3=1;          P1=led_segment[A4];   led4=0;     delay(1);     led4=1; if(x<=200)    {P37=0;P36=0;}else if(x<=500){P37=1;P36=0;}else {P37=1;P36=x;}}
void data_pro(void)                 //数据处理子程序
{float q;int flag;
dis[2]=ad_data/51;        //取整    dis[4]=ad_data%51;    //取余    dis[4]=dis[4]*10;      dis[1]=dis[4]/51;         //取第一位小数   dis[4]=dis[4]%51;   dis[4]=dis[4]*10;    dis[0]=dis[4]/51;q=dis[2]*100+dis[1]*10+dis[0];x=q*20/9;                           A4=x%10;flag=x/10;A3=flag%10;flag=flag/10;A2=flag%10;flag=flag/10;A1=flag;    }  }
uchar pluse; //占空比寄存器
void Timer2() interrupt 5 {static uchar time;   TF2=0;    if(++time==pluse) PWM=0; //达到脉宽设定值时,输出PWM低电平  else if(time==40) //PWM的频率为1khz左右{  time=0;   PWM=1;   } }void InitTimer2(void) //初始化函数 {RCAP2H = 0x0f ;//定时25us初值  RCAP2L = 0x07;//   ET2=1;   EA=1;   TR2=1; }
浓度控制及报警子程序:
void kongzhi(void)
{if(x<=200)  {P37=0;P36=0;P34=0;InitTimer2();   pluse=10;}else if(x<=500){P37=1;P36=0;P34=1;InitTimer2();   pluse=20;}else {P37=1;P36=1;P34=1;InitTimer2();   pluse=30;}  }

家用可燃气浓度报警控制系统相关推荐

  1. 【毕业设计】30-基于单片机矿井瓦斯_气体浓度_烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT)

    [毕业设计]30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT) 文章目录 [毕业设计]30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计(原理图+源代 ...

  2. 基于单片机波形发生器PCB原理图报告设计资料-基于单片机比赛计时计分电路仿真设计-基于单片机报警器与旋转灯设计-基于单片机八路数据电压采集报警控制系统-基于单片机病房呼叫系统控制系统设计【毕设课设资】

    1302基于单片机波形发生器PCB原理图报告设计资料-毕设课设原理图程序资料 设计一个信号发生器,能在单片机的基础上控制并产生三角波.方波.正弦波和矩形波,且频率幅度和波形可以通过按键改变. #inc ...

  3. STM32单片机WIFI物联网可燃气烟雾报警监控系统MQ4MQ2

    实践制作DIY- GC0019-WIFI物联网可燃气烟雾报警监控系统 一.功能说明: 基于STM32单片机设计-WIFI物联网可燃气烟雾报警监控系统 功能介绍: 1.基于STM32F103C系列单片机 ...

  4. 41基于单片机列车烟雾浓度报警烟雾_甲烷报警装置设计(原理图+仿真工程+源代码+说明书+PPT)

    41-基于单片机列车烟雾浓度报警/烟雾/甲烷报警装置设计(原理图+仿真工程+源代码+说明书+PPT) 文章目录 41-基于单片机列车烟雾浓度报警/烟雾/甲烷报警装置设计(原理图+仿真工程+源代码+说明 ...

  5. 【毕业设计】30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT)

    [毕业设计]30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计(原理图+源代码+仿真+答辩论文+答辩PPT) 文章目录 [毕业设计]30-基于单片机矿井瓦斯/气体浓度/烟雾浓度报警设计(原理图+源代 ...

  6. 地下室气味难闻,地下室车库co浓度报警一招解决!

    为什么大家总在抱怨地下车库空气不佳?据调查,有9成以上的人表示地下车库气味难闻,8成以上的人在地下车库中出现过咳嗽和咽喉肿痛的症状,7成以上的人在地下车库出现过刺眼流泪的症状.另外,长期在地下车库工作 ...

  7. STC12C2052AD一氧化碳浓度报警程序(74HC164显示)

    //STC12C2052AD输出PWM波 ,同时检测电压显示,自动稳压 .  //74HC164串入并出显示数码管,一位一位显示,之后熄灭省电,根据我焊的板子确定的数码管值. /*********** ...

  8. 基于51单片机的汽车灯光报警控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.模拟汽车灯光控制系统,支持双闪,转向灯光控制 2.上锁后,非法进入,灯光双闪,喇叭报警,报警电路采用的LED和蜂鸣器组成的声光报警系统 3.本系统 ...

  9. 无锡小吃店燃气爆炸备受关注,应用燃气报警云平台或许可以避免!

    从昨天(10月13日)开始,无锡燃气爆炸事件得到社会广泛关注. 据媒体报道,13日上午11时许,无锡市锡山区鹅湖镇新杨路一小吃店发生燃气爆炸.监控显示,事发地点行人车辆均可正常同行,突然镜头晃动,一阵 ...

最新文章

  1. google浏览器的地址栏(url)和文本框中英文字母都是全角
  2. 【企业管理】战略与策略通俗理解
  3. delphi中覆盖最大化消息
  4. 直接让浏览器下载文件而不打开
  5. 从excel表中生成批量SQL,将数据录入到数据库中
  6. 【线段树】开关(luogu 3870)
  7. 在浏览器中在线尝试无服务器框架项目!
  8. 前端学习(525):等分布局
  9. Django之URLconf路由
  10. 计算机应用基础操作题提示,计算机应用基础_操作题文字提示(已经放大了请不要打印).doc...
  11. mysql 服务已经存在_windows下mysql主从同步时从服务器出现表已经存在解决办法
  12. 渗透中Meterpreter基本操作和对应的windows上的排查或者现象
  13. 判断字符串只能有且只有一处连续数字不同
  14. Outlook2013 邮件签名设置
  15. 计算机cpu的功能和作用是什么意思,什么是中央处理器CPU
  16. 网络故障检查、PING命令使用(实测)
  17. 关于RedisPool配置参数
  18. python 语料_用python将语料转化为可计算的形式
  19. Python pass 语句
  20. 深入理解Linux电源管理(0.2)

热门文章

  1. 3D-01-游戏分类与热点探索
  2. linux d bus效率,D-Bus study
  3. 解锁 2022 Google 游戏开发者峰会 | 游戏业务稳步发展
  4. C++ 链栈实现10进制转换为2、8、16进制(详细)
  5. 【数据分析】数据分析方法(二):逻辑树分析方法
  6. 2018/7/20尚观
  7. Android Jetpack Compose——一个简单的微信界面
  8. ssm+mysql餐厅点餐系统-计算机毕业设计源码02635
  9. html字段过长显示不全,div css最后一排文字字体显示一半显示不全
  10. 佳能Canon iR-ADV 4225 一体机驱动