79 lines
2.0 KiB
C
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
|
|
********************************************************/
|