/* * main.c * * Created on: 2022年3月15日 * Author: User */ #include void main() { // static uint8_t i = 0; static uint8_t flag = 0; static uint16_t temp = 0; Sys_Init.Init(); //系统初始化 WDT_CONTR |= 0x3F; // 0011 1111b 设置看门狗并打开 看门狗时钟 256分频 20MHz 5S秒内喂狗 WDT_CONTR |= 0x10; //喂看门狗 PWM.LoadPWM(100); //启动时风扇先转 while (1) { WDT_CONTR |= 0x10; //喂看门狗 if (DS18B20.ReadTemp() == FALSE) //判断ds18b20是否正常 { DS18B20.Temp = 600; // 18B20不正常 让风扇全开 TM1650.Display_OFF(&IIC_1); // 18B20不正常 显示off } else { TM1650_Display(&IIC_1, DS18B20.Temp, 1); } WDT_CONTR |= 0x10; //喂狗 if (DS18B20.Temp > 350) { if (flag == 1) { flag = 0; PWM.LoadPWM(100); //首次风扇全速打开 Public.Delay_ms(2); } temp = DS18B20.Temp - 350; PWM.LoadPWM((temp * 2.8 / 10) + 30); //超过35°C 每上升1°C PWM加2 } else { flag = 1; //关闭风扇标志位 PWM.LoadPWM(0); //低于25°C关闭风扇 } // if (DS18B20.Temp >= 600) // { // PWM.LoadPWM(100); // } // else if(DS18B20.Temp < 600 && DS18B20.Temp >=500) // { // PWM.LoadPWM(90); //大于60°c风扇90% // } // else if(DS18B20.Temp < 500 && DS18B20.Temp >=400) // { // PWM.LoadPWM(70); //大于40°c风扇70% // } // else if(DS18B20.Temp < 400 && DS18B20.Temp >=300) // { // PWM.LoadPWM(50); //大于30°c风扇50% // } // else if(DS18B20.Temp < 300 && DS18B20.Temp >=250) // { // PWM.LoadPWM(30); //大于25°c风扇30% // } // else if(DS18B20.Temp < 250) // { // PWM.LoadPWM(0); //小于25°c风扇0% // } } } /******************************************************** End Of File ********************************************************/