|
本程序有:HT66F002/HT66F50/66F018IC程序实例源码,大家可以参考学习,
/*********************************************************************
暖风机的工作控制:
1:加热有加热标志位和控制标志位的,标志位的开启并不代表实际的输出
2:根据客户设定模式判断,当前处于哪个状态
3:当前状态下,判断控制标志位能否开启
4:无论控制标志位能否开机,均开始计算时间
5:根据时间的大小来判定实际输出的时间
*********************************************************************/
#include "config.h"
void Base100ms(void);
static volatile unsigned char HEAT1OnTime __attribute__ ((at(0x1b0)));
static volatile unsigned char FanOnTime __attribute__ ((at(0x1b1)));
static volatile unsigned int FanOffTime __attribute__ ((at(0x1b2))); //当定义INT型时,占用两个地址,所以需要隔开
static volatile unsigned char HEAT1OffTime __attribute__ ((at(0x1b4)));
static volatile unsigned char HEAT2OffTime __attribute__ ((at(0x1b5)));
static volatile unsigned char HEAT2OnTime __attribute__ ((at(0x1b6)));
static volatile unsigned char TimerSec __attribute__ ((at(0x1b7)));
static volatile unsigned char TimerMin __attribute__ ((at(0x1b8)));
static volatile unsigned char TimerHour __attribute__ ((at(0x1b9)));
uint8 SysRunTime; //机器开机计时秒
uint8 FanOffDelayTime=0; //关机倒计时
uint8 TimeSelfCheck=50; //开机那个0.5S可以自检
void Base100ms(void);
void Base1s(void);
void SysWorkCtrl(void); //系统工作的控制(从全局把握系统的输出--不包含显示)
void FanCtrl(void); //风机控制程序(开机及执行,关机,推迟30S关掉)
void HeatCtrl(void); //加热管输出控制 加热什么时候开关的控制
void HiModeCtrl(void); //高热模式控制
void LoModeCtrl(void); //地热模式控制
void EcoModeCtrl(void); //节能模式控制 能否打开即热的控制--有了相应的控制标志位,在计算时间
void SecTimerCnt(void); //1S计时程序
void RunImpro(void); //非正常工作程序I
void SwCtrl(void);
void DDRember(void); //掉电记忆功能
void Base100ms(void) //100MS计时
{
if(TSetTimerCnt){TSetTimerCnt-=1;if(!TSetTimerCnt){gb_TimerSet_Flag=0;}}
if(TSetTempCnt){TSetTempCnt-=1;if(!TSetTempCnt){gb_TempSet_Flag=0;}}
if(TkeySetLook){TkeySetLook-=1;}
if(TimeSelfCheck){TimeSelfCheck-=1;}
if(gb_Fan_Flag) //风扇的计时
{
FanOffTime=0;
if(FanOnTime<=200) {FanOnTime =1;} //风扇开启,累计计时20S
}
else
{
FanOnTime=0;
if(FanOffTime<=60000) {FanOffTime =1;} //风扇关机的累计计时
}
if(gb_HEAT1_Flag) //加热的计时必需以实际加热开始计时,而不是标志位
{
HEAT1OffTime=0;
if(HEAT1OnTime<200) { HEAT1OnTime =1; }
}
else
{
HEAT1OnTime=0;
if(HEAT1OffTime<200) { HEAT1OffTime =1; }
}
if(gb_HEAT2_Flag) //加热的计时必需以实际加热开始计时,而不是标志位
{
HEAT2OffTime=0;
if(HEAT2OnTime<200) { HEAT2OnTime =1; }
}
else
{
HEAT2OnTime=0;
if(HEAT2OffTime<200) { HEAT2OffTime =1; }
}
}
void Base1s(void) //1S的计时
{
if(FanOffDelayTime)
{
FanOffDelayTime-=1;
}
if(UserTimeSetH) //定时的计数
{
TimerSec =1;
if(TimerSec >= 59)
{
TimerSec=0;
TimerMin =1;
if(TimerMin>=UserTimeSetH)
{
if(gb_PowerOn_Flag&&gb_TimeOff_Flag) //此位置1 ,说明处于开机状态
{
gb_TimeOff_Flag=0;
UserTimeSetH=0; //加这句是为了把时间计数的参数一律清0
gb_Timer_Flag=0;
gb_PowerOn_Flag=0; //关机
bBeepf=1;bBeepSf=1;BeepCount=0;
}
else if((!gb_PowerOn_Flag)&&gb_TimeOn_Flag)
{
gb_TimeOn_Flag=0;
UserTimeSetH=0;
gb_Timer_Flag=0;
gb_PowerOn_Flag=1; //开机
bBeepf=1;bBeepSf=1;BeepCount=0;
}
}
}
}
else
{
TimerSec=0;
TimerMin=0;
TimerHour=0;
}
}
淘客源码小白搭建优惠券导购网站cms三合一大淘客源码自动采集...
VICTORCLOUX 厚涂V大网络班培训课程 场景CG艺术绘画游戏原...
微信PC版hook实战视频教程零基础入门到精通OD教程易语言带源码...
springboot 网上书城 网上书店 在线书店 图书商城系统源码源...
帆软FineReport/FineBI视频教程 报表开发应用从入门到...
小码哥编程MJ亲授 Swift5.1从入门到精通 实战 视频教程(不加...
曲式与作品分析课程谱例集答案中央音乐学院详解曲式分析视频教程...
天正暖通设计视频教程 天正CAD全套高清自学完整版 暖通绘图设计...
魔鬼作坊VIP视频教程魔鬼作坊VIP1-12全新教程易语言辅助教学课程...
Vue Element UI Node.js全栈开发企业后台管理系统视...