用stc89c52單片機來控制氣泵,帶有2種工作模式,端口可自行修改#includesbit a=P1^5;//閃爍燈sbit b=P1^4;//氣泵sbit c=P3^7;//狀態(tài)指示燈sbit ss1=P3^2;//一分鐘工作模式sbit ss4=P3^3;//四分鐘工作模式unsigned int q,w,e,r,y,u,i,n,m,l,h;csh();//初始化子程序聲明ys();//延時子程序ys2();//延時子程序2聲明void main(){csh();//初始化while(1) //死循環(huán) 一號 {if(ss1==0){n=1;} //判定一分鐘工作模式接通啟動二號循環(huán)if(ss1==1){n=0;b=1;} //判定一分鐘工作模式為啟動斷二號循環(huán)if(ss4==0){m=1;} //判定四分鐘工作模式接通啟動*號循環(huán)if(ss4==1){m=0;b=1;} //判定四分鐘工作模式未啟用斷*號循環(huán)/*...........以下為一分鐘工作模式...分割線......................*/while(n) //二號循環(huán) 一分鐘工作模式n被賦值1 開始進(jìn)入循環(huán)體{if(ss1==0) //判定一分鐘工作模式開啟 執(zhí)行語句{for(l;l>0;l--); //延時判定if(ss4==0){n=0;}//判定四分鐘模式啟用斷開二號循環(huán)體 退出執(zhí)行for(q;q>0;q--); //延時判定 qif(ss4==1) //判定四分鐘模式未開啟 向下執(zhí)行{if(q==0) //判定q減到0{b=1; //斷開氣泵w=1; //循環(huán)體2 w為1e=1; //循環(huán)體1 e賦值為1}while(e) //三號循環(huán)體{if(P3==0x7b) //判定指示燈和一分鐘啟動執(zhí)行下面{while(w) //四號循環(huán)體 w為1 初值 {ys(); //半秒延時 好像不準(zhǔn)自己改a=0; //閃爍燈點亮r++;//秒數(shù)自加1if(ss1==1) //判定一分鐘工作模式斷開時{ys2(); //延時判定if(ss1==1) //一分鐘工作模式確實斷開{n=0;e=0;w=0;r=0;b=1;}//判定成立退出所有}ys(); //半秒延時 好像不準(zhǔn)自己改a=1; //閃爍燈滅if(r==60) // 等待秒數(shù)加到60執(zhí)行{ w=0; //斷開循環(huán)體2r=60; //保持秒數(shù)等于60b=0; //啟動水泵h=1; //五號循環(huán)體()while(h) //五號循環(huán)體if(ss1==1) //判定一分鐘退出向下執(zhí)行{ ys2(); //延時判定if(ss1==1) //經(jīng)過延時確實判定一分鐘工作模式斷開{b=1; //斷開氣泵n=0; //退出二號循環(huán)體e=0; //退出四號循環(huán)體r=0; //一分鐘時間歸零while(1){if(m==0);{h=0;break;} //退出五號循環(huán)體 自身}}} } } } } }/*判定*/ }/*二號循環(huán)體*/ }/*一號循環(huán)體*//*..................以下為四分鐘工作模式.......我是分割線...........*/本程序下載地址:http://www.51hei.com/ziliao/file/qibang.rarwhile(m) //二號循環(huán) 一分鐘工作模式n被賦值1 開始進(jìn)入循環(huán)體{if(ss4==0) //判定四分鐘工作模式開啟 執(zhí)行語句{for(l;l>0;l--); //延時判定if(ss1==0){m=0;}//判定一分鐘模式啟用斷開二號循環(huán)體 退出執(zhí)行for(q;q>0;q--); //延時判定 qif(ss1==1) //判定一分鐘模式未開啟 向下執(zhí)行{if(q==0) //判定q減到0{b=1; //斷開氣泵w=1; //循環(huán)體2 w為1e=1; //循環(huán)體1 e賦值為1}while(e) //三號循環(huán)體{if(P3==0x77) //判定指示燈和四分鐘啟動執(zhí)行下面{while(w) //四號循環(huán)體 w為1 初值 {ys(); //半秒延時 好像不準(zhǔn)自己改a=0; //閃爍燈點亮r++;//秒數(shù)自加1if(ss4==1) //判定四分鐘工作模式斷開時{ys2(); //延時判定if(ss4==1) //四分鐘工作模式確實斷開{m=0;e=0;w=0;r=0;b=1;}//判定成立退出所有}ys(); //半秒延時 好像不準(zhǔn)自己改a=1; //閃爍燈滅if(r==240) // 等待秒數(shù)加到240執(zhí)行{ w=0; //斷開循環(huán)體2r=240; //保持秒數(shù)等于240b=0; //啟動水泵h=1; //五號循環(huán)體()while(h) //五號循環(huán)體if(ss4==1) //判定四分鐘退出向下執(zhí)行{ ys2(); //延時判定if(ss4==1) //經(jīng)過延時確實判定四分鐘工作模式斷開{b=1; //斷開氣泵n=0; //退出二號循環(huán)體e=0; //退出四號循環(huán)體r=0; //四分鐘時間歸零q=60000;while(1){if(n==0);{h=0; //退出五號循環(huán)體 break; //退出自身循環(huán)} }} } } } }/*判定*/ }/*二號循環(huán)體*/ }/*一號循環(huán)體*/}}}} /*.......................初始化子程序........................................*/csh()//初始化子程序{a=1; //閃爍燈不閃爍b=1; //氣泵不開啟c=0; //狀態(tài)指示燈點亮ss1=1;//一分鐘工作模式未啟動ss4=1;//四分鐘工作模式未啟動r=0; //一分鐘60秒數(shù)e=0; //循環(huán)體 e賦值為1q=60000; //第一延時判定q初始值l=60000; //延時用h=0; //五號循環(huán)體}ys(){for(y=23;y>0;y--)for(u=152;u>0;u--)for(i=70;i>0;i--); //半秒延時 好像不準(zhǔn)自己改}ys2(){for(y=167;y>0;y--) for(u=171;u>0;u--) for(i=16 ;i>0;i--);}
評論