采用传感器设计一种气体检测测仪。该检测仪能够对室内的甲醛气体浓度进行检测,以ppm和 mg/m³两种单位显示检测结果并自动对检测数据进行存储,可以查询历史数据,判断当前甲醛含量是否正常
主要技术参数:
1、量程范围:0~10ppm
2、分辨率:0.01 ppm
完整版 电路图和程序代码 下载地址
https://pan.baidu.com/s/1ta-P-lkmUaLyg2THIkXQxg?pwd=8888
部分代码展示
#include"includes.h"
#include<intrins.h>
//#include<reg52.h>
#define TIME0H 0x3C
#define TIME0L 0xB0
#define uchar unsigned char
#define uint unsigned int
/*下面是引脚连接关系*/
sbit AD_EOC =P2^4; /*转换完成指示*/
sbit AD_IOCLK =P2^3; /*时 钟*/
sbit AD_DATIN =P2^2; /*数据入*/
sbit AD_DATOUT=P2^1; /*数据出*/
sbit AD_CS =P2^0; /*片 选*/
uint ad_result; /*存各模拟通道的数据*/
sbit KEY1=P1^2;
sbit KEY2=P1^3;
sbit KEY3=P1^4;
unsigned int Voltage_array[15];
uchar uc_Clock=0; //定时器0中断计数
bit b_DATransform=0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*启动A/D转换,并读取上次转换结果*/
uint read2543(CHN)
{
uchar i,temp;
uint read_ad_data = 0;
CHN=CHN<<4;
AD_IOCLK=0;
AD_CS=1;
AD_CS=0;
temp=CHN;
for(i=0;i<12;i++)
{
read_ad_data=read_ad_data<<1;
if((temp&0x80)!=0){AD_DATIN=1;}
else{AD_DATIN=0;}
if(AD_DATOUT){read_ad_data=read_ad_data+1;}
AD_IOCLK =1;
_nop_();_nop_();_nop_();_nop_();
AD_IOCLK =0;
_nop_();_nop_();_nop_();_nop_();
temp=temp<<1;
}
AD_CS=1;
read_ad_data=(500/315)*(read_ad_data&0x0fff);
return(read_ad_data);
}