国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 方案介紹
    • 基于51單片機的二氧化碳(CO2)氣體濃度監(jiān)測報警系統(tǒng)( proteus仿真+程序+演示視頻)
  • 附件下載
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的二氧化碳(CO2)氣體濃度監(jiān)測報警系統(tǒng)

2024/08/22
4901
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

設計資料獲取聯(lián)系方式.doc

共1個文件

基于51單片機的二氧化碳(CO2)氣體濃度監(jiān)測報警系統(tǒng)( proteus仿真+程序+演示視頻)

仿真圖proteus 8.9

程序編譯器:keil 4/keil 5

編程語言:C語言

設計編號:C0073

主要功能:

結合實際情況,基于51單片機設計一個二氧化碳(CO2)監(jiān)測報警系。該系統(tǒng)應滿足的功能要求為:

二氧化碳傳感器,運行狀態(tài)LED顯示、獨立鍵盤、蜂鳴器報警。

演示視頻:


C0073 51單片機二氧化碳(CO2)氣體濃度監(jiān)測報警系統(tǒng)

具體功能:

①二氧化碳傳感器測得二氧化碳數(shù)據(jù)后經(jīng)過單片機處理,由LCD1602實時顯示,第一行顯示測得的濃度值,第二行顯示報警閾值;

②可通過按鍵設置二氧化碳報警閾值,開始之后預設值閃爍,按鍵+預設值+10,按鍵減按下預設值-10;

③測得的二氧化碳濃度在正常范圍時,綠燈亮,超過報警閾值時,紅燈亮,蜂鳴器響,開始聲光報警。

以下為本設計展示圖:

仿真(提供源文件)

主圖

img

開始仿真

img

開始仿真顯示檢測值C02為1260ppm,初始化報警值為1500ppm。

img

img

按下調(diào)整按鍵后,系統(tǒng)暫停工作,報警值十位數(shù)閃爍,按下報警上限+按鍵,報警值+10,按下按下報警上限-按鍵,報警值-10。設置完成后,再按一下調(diào)整按鍵,確定調(diào)整的報警值,系統(tǒng)正常工作。

img

在仿真中,可以通過箭頭調(diào)整CO2氣體傳感器數(shù)值,圖示設置為2050ppm,超出了設置的報警值1480,超出上限開始報警,蜂鳴器持續(xù)短鳴,紅燈閃爍。

程序(提供源文件源碼):

img

img

AD轉(zhuǎn)換子程序

/****************************************************************************
函數(shù)功能:AD轉(zhuǎn)換子程序
入口參數(shù):CH
出口參數(shù):dat
****************************************************************************/
unsigned char adc0832(unsigned char CH)
{
	unsigned char i,test,adval;
	adval = 0x00;
	test = 0x00;
	Clk = 0;       //初始化
	DATI = 1;
	_nop_();
	CS = 0;
	_nop_();
	Clk = 1;
	_nop_();
	
	
	if ( CH == 0x00 )      //通道選擇
	{
		Clk = 0;
		DATI = 1;      //通道0的第一位
		_nop_();
		Clk = 1;
		_nop_();
		Clk = 0;
		DATI = 0;      //通道0的第二位
		_nop_();
		Clk = 1;
		_nop_();
	} 
	else
	{
		Clk = 0;
		DATI = 1;      //通道1的第一位
		_nop_();
		Clk = 1;
		_nop_();
		Clk = 0;
		DATI = 1;      //通道1的第二位
		_nop_();
		Clk = 1;
		_nop_();
	}
	
	Clk = 0;
	DATI = 1;
	for( i = 0;i < 8;i++ )      //讀取前8位的值
	{
		_nop_();
		adval <<= 1;
		Clk = 1;
		_nop_();
		Clk = 0;
		if (DATO)
		adval |= 0x01;
		else
		adval |= 0x00;
	}
	for (i = 0; i < 8; i++)      //讀取后8位的值
	{
		test >>= 1;
		if (DATO)
		test |= 0x80;
		else 
		test |= 0x00;
		_nop_();
		Clk = 1;
		_nop_();
		Clk = 0;
	}
	if (adval == test)      //比較前8位與后8位的值,如果不相同舍去。若一直出現(xiàn)顯示為零,請將該行去掉
	dat = test;
	nop_();
	CS = 1;        //釋放ADC0832
	DATO = 1;
	Clk = 1;
	return dat;
}

獲取的值需要進行校準

void AlcoholCalibration(void)     //CO2濃度初始化校準函數(shù)
{
	sum = 0;
	for(m=0;m<50;m++)			//讀50次AD值
	{
		sum = adc0832(0)+sum;		//讀到的AD值,將讀到的數(shù)據(jù)累加到sum
	}
	temp=sum/50;				//跳出上面的for循環(huán)后,將累加的總數(shù)除以50得到平均值temp
	K_ZERO = 500 * temp / 256;        //8位ADC,首先得到電壓值,單位10毫伏
	Display_1602(0,WARNING);	 //顯示AD數(shù)值和報警值
}

主函數(shù)

void main()				//主函數(shù)
{
	Init1602();						 //初始化液晶函數(shù)
	init();							 //初始化定時器
	while(1)						 //進入循環(huán)
	{
		for(m=0;m<50;m++)			//讀50次AD值
		sum = adc0832(0)+sum;		//讀到的AD值,將讀到的數(shù)據(jù)累加到sum
		temp=sum/50;				//跳出上面的for循環(huán)后,將累加的總數(shù)除以50得到平均值temp
		if (temp > K_ZERO) 
				temp = temp - K_ZERO;              //首先減去零點漂移,一般是130mV
		else
				temp= 0; 
		sum=0; 						//平均值計算完成后,將總數(shù)清零
		if(set==0)					 //set為0,說明現(xiàn)在不是設置狀態(tài)
		Display_1602(temp,WARNING);	 //顯示AD數(shù)值和報警值
		if(temp<WARNING&&set==0)	 //AD數(shù)值小于報警值
		{
			flag=0;					 //關閉報警
		}
		else if(temp>WARNING&&set==0)//AD值大于報警值
		{
			flag=1;					 //打開報警
		}
		Key();						 //調(diào)用按鍵函數(shù)
	}
}

資料清單(提供資料清單所有文件):

資料下載鏈接
搜索設計編號:C0073
img

  • 設計資料獲取聯(lián)系方式.doc
    下載

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ABS07-32.768KHZ-9-T 1 Abracon Corporation CRYSTAL 32.7680KHZ 9PF SMD

ECAD模型

下載ECAD模型
$1.4 查看
CPC2017NTR 1 IXYS Corporation Transistor Output SSR, 2-Channel, 1500V Isolation, ROHS COMPLIANT, MINIATURE, SOIC-8
$3.87 查看
KSZ8851SNLI 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQCC32
$5.06 查看

相關推薦

寻乌县| 昔阳县| 桦南县| 铁岭县| 临颍县| 门头沟区| 郓城县| 西华县| 卫辉市| 保靖县| 济源市| 资源县| 宣化县| 万安县| 垣曲县| 永宁县| 北辰区| 黔东| 沙坪坝区| 全州县| 额尔古纳市| 盐城市| 二手房| 双流县| 丽江市| 日照市| 绩溪县| 江山市| 新乡县| 佛冈县| 博乐市| 凤翔县| 永州市| 玉林市| 昌邑市| 红桥区| 阜宁县| 武山县| 津南区| 花垣县| 台湾省|