风扇使用直流电机,在实际温度大于温度上限时开启,速度与超过的温度相关。
主函数
DC_Motor_Init();
TIM4_CH3_PWM_Init(500,72-1);//???2Kh
TIM_SetCompare3(TIM4,0);
控制函数
void Keycontrol(void)
{
if(Myflag.Timeflag==0)
{
if(Myflag.t>Myflag.h*10)
{
Myflag.s=1;
LED1=0;
BEEP_Alarm(100,100);
TIM_SetCompare3(TIM4,(Myflag.t-Myflag.h*10)*1.5);
}
if(Myflag.t<Myflag.l*10)
{
Myflag.s=2;
LED2=0;
BEEP_Alarm(100,100);
}
else{
Myflag.s=0;
LED2=1;
LED1=1;
}
}
}
加入切换——矩阵按键,15,16,按键15数码管显示当前温度,16数码管显示上下限
void msgset(void)
{u8 key1=0;
u8 buf[8];
key1=KEY_Matrix_Scan();
switch(key1)
{
case 1: break;//??????
case 2:break;
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9: break;
case 10:break;
case 11:break;
case 12:break;
case 13://??????(S13)
case 14:break;//??????(S14)
case 15:Myflag.c=0;break;//??????(S15)
case 16:Myflag.c=1;break;
//????????????????(S16)
}
if(Myflag.c==0)
{
buf[0]=0x00;
buf[1]=0x00;
buf[2]=0x00;
buf[3]=0x00;
buf[4]=gsmg_code[Myflag.t/100];
buf[5]=gsmg_code[Myflag.t%100/10]|0x80;
buf[6]=gsmg_code[Myflag.t%100%10];
buf[7]=0x39;
SMG_Display(buf,1);
}
else
{
buf[0]=gsmg_code[Myflag.l/100];
buf[1]=gsmg_code[Myflag.l%100/10]|0x80;
buf[2]=gsmg_code[Myflag.l%100%10];
buf[3]=0x40;
buf[4]=gsmg_code[Myflag.h/100];
buf[5]=gsmg_code[Myflag.h%100/10]|0x80;
buf[6]=gsmg_code[Myflag.h%100%10];
buf[7]=0x39;
SMG_Display(buf,1);
}
}