利用ADC0832对烟雾传感器进行仿真并报警
烟雾探测元件清单

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
#include //包含单片机寄存器的头文件
#include //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
uchar a,q,t,t1;
long int s1,d0,b,c,d,s,e1,biao,biao1,biao2,a1;
uchar code qw[]={1,1,1};
uchar qs[5]={0,0,0,9,0,};
uchar key_buffer[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//2013-01-03
sbit clk=P1^1; //时钟
sbit cs=P1^0; //片选端
sbit d1=P1^2; //起始信号输入与端口选择及数据输出端
sbit rs=P2^5; //将rS位定义为P2.5引脚
sbit e=P2^7; //将e位定义为P2.7引脚
sbit rw=P2^6; //将rw位定义为P2.6引脚
sbit k1=P1^4;
sbit k2=P1^5;
sbit k3=P1^6;
sbit k4=P1^7;
sbit D1=P2^0; //正常指示灯(绿灯)
sbit D2=P2^1; //警情指示灯(红灯)
sbit beep=P2^2;//蜂鸣器
uchar code tad[]="value:00000ppm";
uchar code tad1[]="Alarm:09000ppm";
/*****************************************************
函数功能:延时若干毫秒
入口参数:x
***************************************************/
void delay(uchar x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=90;b>0;b--);
}
uchar du()//读AD转换数据
{
uchar i,k,j;
cs=0; //片选有效
for(j=0;j<3;j++) //通道选择
{
clk=1;
d1=qw[j];
for(q=0;q<2;q++) _nop_();
clk=0;
for(q=0;q<2;q++) _nop_();
}
for(i=0;i<8;i++)
{
clk=1;
for(q&
本文介绍如何使用MATLAB程序配合ADC0832对烟雾传感器进行仿真,并提供了烟雾传感器的Proteus仿真工程文件和Altium Designer的PCB设计。同时,给出了单片机的源代码,实现数据读取和报警功能。
最低0.47元/天 解锁文章
755

被折叠的 条评论
为什么被折叠?



