2022-07-23 18:08:23 +08:00

79 lines
2.0 KiB
C

/*
* main.c
*
* Created on: 2022年3月15日
* Author: User
*/
#include <main.h>
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
********************************************************/