| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <MyProject.h>
- MCUTemperature xdata TSDTemperature;
- uint8 xdata TSD_Tempera[16] = {0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87};
- uint8 xdata TSD_ActualTempera[16] = {65, 70, 75, 80, 86, 91, 97, 103, 109, 115, 121, 128, 135, 142, 150, 0xFF}; //芯片温度
- /* -------------------------------------------------------------------------------------------------
- Function Name : TSD_Init
- Description : 温度检测初始化
- Date : 2022-02-18
- Parameter : None
- ------------------------------------------------------------------------------------------------- */
- void TSD_Init(void)
- {
- ClrBit(TSD_CR, TSDEN); //关闭保护使能
- TSDIE = 1; //温度保护中断使能
- SetBit(TSD_CR, TSDADJ3); //温度保护值设定
- SetBit(TSD_CR, TSDADJ2);
- ClrBit(TSD_CR, TSDADJ1);
- SetBit(TSD_CR, TSDADJ0);
- SetBit(IP0, PLVW1); //中断优先级设置
- ClrBit(IP0, PLVW0); //
-
- TSDTemperature.CheckCount = 0;
- TSDTemperature.ActualTemper = 65;
- }
- /* -------------------------------------------------------------------------------------------------
- Function Name : TEMP_Check
- Description : 温度检测
- Date : 2022-02-18
- Parameter : None
- ------------------------------------------------------------------------------------------------- */
- void TEMP_Check(void)
- {
- if (TSDTemperature.TSD_Enable_Flag) //开启温度检测触发
- {
- if (TSDTemperature.TSD_Trigger_Flag) //上次温度检测触发温度保护
- {
- if (TSDTemperature.CheckCount < 15)
- {
- TSDTemperature.CheckCount++;
- TSDTemperature.TSD_Trigger_Flag = 0;
- }
- }
- else
- {
- if (TSDTemperature.CheckCount > 0)
- {
- TSDTemperature.CheckCount--;
- }
- }
-
- TSDTemperature.TSD_Enable_Flag = 0;
- TSDTemperature.ActualTemper = TSD_ActualTempera[TSDTemperature.CheckCount];
- TSD_CR = TSD_Tempera[TSDTemperature.CheckCount]; //使能温度检测,设置温度
- }
- }
|