本次設(shè)計的模擬電風扇控制系統(tǒng)設(shè)計有三種風種:自然風、常風、睡眠風
本文引用地址:http://m.butianyuan.cn/article/201611/321319.htm它們都是按照電機運行的占空比區(qū)別的。具有倒計時和搖頭功能及信號指示。
源程序清單(部分):
#include //52頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int //宏定義
sbit Ziran = P1^0; sbit Chang = P1^1;
sbit Shuimian = P1^2; sbit zuo_yao= P1^3;
sbit you_yao = P1^4; sbit dianji1= P1^7;
sbit yaotou_light=P3^7; sbit key0 = P3^0;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar Flash_Count=0,num,shi,ge,
flag=0,shijian,bai,Yao_Tou,bb,kaidingshi,dianji2;
uint aa=0;
void delay(uint i)//延時20uS
{
uint x,a;
for(x=i;x>0;x--)
for(a=10;a>0;a--);
}
void delay11(uint z)//自然風,延時2秒
{
uint x,y,a;
for(x=z;x>0;x--)
for(y=1000;y>0;y--)
for(a=110;a>0;a--)
{if(flag!=1) break;}
}
void delay22(uint z)//常風,延時2秒
{
uint x,y,a;
for(x=z;x>0;x--)
for(y=1000;y>0;y--)
for(a=110;a>0;a--)
{if(flag!=2) break;}
}void delay33(uint z)//睡眠風,延時2秒
{
uint x,y,a;
for(x=z;x>0;x--)
for(y=1000;y>0;y--)
for(a=110;a>0;a--)
{if(flag!=3) break;}
}
//
//
//
void zhuang_tai()
{
switch(flag)
{
case 1:
{
Ziran=1; //自然風占空比為1:3
dianji1=1;
delay11(1);
Ziran=0;
dianji1=0;
delay11(3);
}break;
case 2:
{
Chang=1; //常占空比為3:1
dianji1=1;
delay22(3);
Chang=0;
dianji1=0;
delay22(1);
}break;
case 3:
{
Shuimian=1; //睡眠風占空比為1:5
dianji1=1;
delay33(1);
Shuimian=0;
dianji1=0;
delay33(5);
} break;
}
}
。。。。。
。。。。。
評論