欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
一個(gè)燃?xì)鉅t安全保護(hù)裝置的程序
[打印本頁]
作者:
Sky_Eagle
時(shí)間:
2013-6-29 13:20
標(biāo)題:
一個(gè)燃?xì)鉅t安全保護(hù)裝置的程序
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
/********IO引腳定義***********************************************************/
sbit Flame=P1^5; //火焰檢測(cè)
sbit Buzzer=P1^2; //蜂鳴控制
sbit Ignition=P1^7; //點(diǎn)火控制
sbit xf=P1^6; //吸閥控制
sbit msxz=P3^5; //工作模式選擇
/********延時(shí)函數(shù)***********************************************************/
void delay(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=2000;y>0;y--);
}
/********子函數(shù)***********************************************************/
void didi() //開機(jī)蜂鳴
{
Buzzer=0;
delay(800);
Buzzer=1;
}
void didi10() //報(bào)警蜂鳴
{
Buzzer=0;
delay(800);
Buzzer=1;
delay(800);
Buzzer=0;
delay(800);
Buzzer=1;
delay(800);
Buzzer=0;
delay(800);
Buzzer=1;
delay(800);
Buzzer=0;
delay(800);
Buzzer=1;
delay(800);
}
void zh1() //開啟點(diǎn)火,關(guān)閉自吸閥
{
Ignition=0;
xf=1;
}
void ms1() //模式1子程序
{
if(Flame==1) //檢測(cè)火焰
delay(500); //延時(shí)一下,防止干擾
if(Flame==1) //確實(shí)有火焰,不是干擾
{
Ignition=1; //關(guān)閉點(diǎn)火
xf=0; //自吸閥開啟
EX0=1; //開啟外部中斷0
}
else
zh1(); //沒有火焰,執(zhí)行子程序zh1()
}
void ms2() //模式2子程序
{
// dh=0;
if(Flame==1) //檢測(cè)火焰
delay(500);
if(Flame==1) //再次檢測(cè)
{
Ignition=1; //有火焰關(guān)閉點(diǎn)火
xf=0; //打開自吸閥
EX1=1; //開啟中斷1
}
else //無火焰,繼續(xù)點(diǎn)火
Ignition=0;
}
/***********主函數(shù)開始********************************************************/
void main() //程序開始
{
didi(); //開機(jī)蜂鳴
EA=1; //開啟總中斷
EX0=0; //外部中斷0關(guān)閉
EX1=0; //外部中斷1關(guān)閉
IT0=0; //低電平觸發(fā)中斷0
IT1=0; //低電平觸發(fā)中斷1
Flame=0; //初始化火焰檢測(cè)接口
xf=1; //關(guān)閉自吸閥
Ignition=0; //開始點(diǎn)火
while(1)
{
if(msxz==1) //選擇工作模式
delay(500);
if(msxz==1) //高電平時(shí)調(diào)用模式1程序
{
ms1();
}
else //低電平時(shí)調(diào)用模式2程序
ms2();
}
}
/***********中斷0程序********************************************************/
void ex0_int() interrupt 0
{
xf=1; //關(guān)閉自吸閥
if(Flame==0) //檢測(cè)火種是否已經(jīng)熄滅
delay(100); //延時(shí)一下
if(Flame==0) //再次判斷
{
didi10(); //火種滅了,報(bào)警4聲
EX0=0; //退出中斷0,程序從頭開始
}
}
/***********中斷1程序********************************************************/
void ex1_int() interrupt 2
{
if(Flame==0) //檢測(cè)火種是否熄滅
delay(100); //停一下
if(Flame==0) //再次判斷
{
Ignition=0; //火種滅了,點(diǎn)火
delay(10000);//延時(shí)4s-5s
Ignition=1; //關(guān)閉點(diǎn)火
if(Flame==0)//檢測(cè)火種是否點(diǎn)燃
delay(100);
if(Flame==0)//再次判斷
{
Ignition=1; //火種未點(diǎn)燃,關(guān)閉點(diǎn)火
xf=1;//關(guān)閉自吸閥
didi10(); //蜂鳴報(bào)警
EX1=0;//退出中斷1,程序從頭開始
}
else //火種已經(jīng)點(diǎn)燃
xf=0;
}
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1