采用传感器设计一种气体检测测仪。该检测仪能够对室内的甲醛气体浓度进行检测,以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);
}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐