📄 microt02.h
字号:
#ifndef _MicroT02_H_
#define _MicroT02_H_
/*
华氏度(Fahrenheit) 和摄氏度(Centigrade)都是温度单位。包括我国在内的世界上很多国家都使用摄氏度,
美国和其他一些英语国家使用华氏度而较少使用摄氏度。
华氏度以其发明者Gabriel D. Fahrenheir(1681-1736)命名,其冰点是32°F,沸点为212°F。
摄氏度的发明者是Anders Celsius(1701-1744),其冰点是0°C,沸点为100°C。
两者的换算公式:
C=5/9(F-32)
F=9/5C+32
注:C代表摄氏度;F代表华氏度
$sDegree=($input-32)*5/9;
$hDegree=$input*9/5+32;
*/
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
typedef struct {
unsigned BIT0: 1;
unsigned BIT1: 1;
unsigned BIT2: 1;
unsigned BIT3: 1;
unsigned BIT4: 1;
unsigned BIT5: 1;
unsigned BIT6: 1;
unsigned BIT7: 1;
}PICCBIT;//定义一个只能按位域寻址的新变量类型
typedef union {
PICCBIT BIT;//可以按位域寻址
unsigned char BYTE;//可以按字节寻址
}PICCBITBYTE;//定义一个既能按位域寻址也可按字节寻址的新变量类型
typedef struct {
unsigned char ByteL;
unsigned char ByteH;
}PICCWORD;//定义一个只能按字节寻址的新变量类型
typedef union {
PICCWORD WORD ;//可以按字节寻址
unsigned int PICINT;//可以按整型数寻址
}PICCWORDINT;//定义一个既能按字节寻址也可按整型寻址的新变量类型
typedef struct {
unsigned char Byte4;
unsigned char Byte3;
unsigned char Byte2;
unsigned char Byte1;
}PICCLong;
typedef union {
PICCLong MyLong ;//可以按字节寻址
unsigned long int MyLongInt;//MyLongInt=Byte1Byte2Byte3Byte4 可以按长整型寻址
}PICCMyLong;//定义一个既能按字节寻址也可按长整型寻址的新变量类型
//-------------------------------------------------------------------------------
#define pLedCom3 RA0 // 输出低电平点亮 SEG要输出高亮
#define pVoltageIn RA1 //12V电压采集输入
#define pSensorIn RA2 //传感器采集输入
#define pModelIn RA3 // *只能输入用 型号输入
#define pLedSegA RA4 //
#define pKeyInK1 RA4
#define pLedCom1 RA5 //
#define pHotOut RB4 //
#define pColdOut RB5 //
#define pFanOut RB6 //
#define pLedSegF RB7 //
#define pKeyInK2 RB7
#define pKeyInK4 RC0 //按键 温度调节K4
#define pKeyInK3 RC1 //按键 开关K3
#define pLedSegG RC2
#define pLedSegE RC3 //
#define pLedSegC RC4 //同时为C的符号控制 =1输出
#define pLedSegB RC5 //同时为F的符号控制 =1输出
#define pLedSegD RC6 //
#define pLedCom2 RC7 //
#define pTrisK2 TRISB7
#define pTrisK1 TRISA4
PICCBITBYTE rKeyFlag;
PICCBITBYTE rWorkFlag;
PICCBITBYTE rPORT6;
PICCBITBYTE rErrFlag;
//********************************************
#define fFanOut rPORT6.BIT.BIT6
#define fColdOut rPORT6.BIT.BIT5
#define fHotOut rPORT6.BIT.BIT4
#define fModeDH01 rPORT6.BIT.BIT3
#define fSelfTest rPORT6.BIT.BIT2 //自检状态
#define fNegVol rErrFlag.BIT.BIT0 //电源反接状态
#define fSenError rErrFlag.BIT.BIT1 //传感器故障
#define fTempMax80 rErrFlag.BIT.BIT2 //传感器温度超过80
#define fInVolDown rErrFlag.BIT.BIT3 //处于低电压状态
#define fInVolHigh rErrFlag.BIT.BIT4 //处于高电压状态
#define fPowerUp rWorkFlag.BIT.BIT0 //上电完成开始工作
#define fPowerOn rWorkFlag.BIT.BIT1 //1=系统开机状态
#define fFDisp rWorkFlag.BIT.BIT2 //华式温度显示 (99-32)*5/9=
#define fVolDown rWorkFlag.BIT.BIT3 //检测到低电压 进入延时
#define fVolHigh rWorkFlag.BIT.BIT4 //检测到高电压 进入延时
#define fOnDelay rWorkFlag.BIT.BIT5 //已延时等待吗?
#define fTempSetS rWorkFlag.BIT.BIT6
#define fFlash rWorkFlag.BIT.BIT7
#define fNeedSaveE2 rKeyFlag.BIT.BIT0 //需要保存数据到E2Prom中
#define fkeyprocess rKeyFlag.BIT.BIT1 //按键有效标志,为1时对按键执行
#define fkeyesc rKeyFlag.BIT.BIT2 //为0,按键已释放 1为按键未释放
#define fInqPOwerOn rKeyFlag.BIT.BIT3 //上次再开机过程中断电
#define fack rKeyFlag.BIT.BIT4 //24C02应答位
#define fenflash rKeyFlag.BIT.BIT5 //1=允许闪烁
#define ftask0 rKeyFlag.BIT.BIT6 //task按键状态 0-去抖 1-重复的延缓
#define ftask1 rKeyFlag.BIT.BIT7 // 1-重复
#define TRUE 1
#define FALSE 0
PICCWORDINT rTempAd;
PICCWORDINT rVoltageAd;
unsigned char rCount1,rCount2,rCount3;
unsigned char rMsecond,rMCount,rTaskJump;
unsigned char rAdConCount,rCurAdValue,rAdValue,rVolAdValue;
unsigned char rSetTemp,rTempValue;
unsigned char rkeypre,rkeycnt; //存放上次功能键 键值相同计数
unsigned char rDispTimeBrush,rDispValue;
unsigned char rSecond,rSetTemp5s,rFanDelay180s; // 风扇输出关闭延时状态
unsigned char rVolDown60s,rSelfTestTime;
unsigned char rOnDelay,rSaveDelay,rE2Data[4];
unsigned char rInqOnTime; //请求开机的时间
unsigned char rNeedWrE2; //需要写E2PROM
unsigned char rTestValue;
#define constTMR0 6
//-------电路有串联2个二极管
#define cDh01MinVol 92 //99 //低压 11.6V 电阻 47K--10K
#define cDh01MaxVol 148 //156 //高压 18V
#define cDh01RetMinVol 93 //100 恢复电压 11.7
#define cDh01RetMaxVol 105 //112 //恢复电压 13V
#define cT02MaxVol 156 //>20V
#define cT02RetMaxVol 148 // 恢复电压19V
#define cMaxSetTemp 65+cNegSetTemp
#define cMinSetTempDh01 cNegSetTemp-5 //-5度
#define cMinSetTempT02 cNegSetTemp-9 //-9度
#define cHotsetTemp 50+cNegSetTemp //默认加热温度 50
#define cColdSetTemp 0+cNegSetTemp //默认制冷温度 0
#define cColdT02Set 5+cNegSetTemp //T02默认制冷温度 0
#define cNegSetTemp 20 //默认的偏移温度 0->-20 20->0 DH01:-5~65 T02:-9~65
#define cSetTemp3s 10 //设定温度延时 5S
#define cVolDown60s 120 //电压低延时输出
#define cVolHigh5s 10 //高压延时时间
#define cFanOff60s 181 //按K3按键关机 风扇输出关闭延时60s
#define constOnDelay 61 //制冷与制热切换时 开关机之间的延时
//--------以下与按键有关的参数设定---------
#define N 2 //去抖时年龄下限
#define constMaxRate 50 //16*30 重复前的延迟值50=600ms
#define constMinRate 16 //16ms*16 重复速度 20=240ms
#define constKeyMask 0x0C //屏蔽不允许连击的按键 1=不允许连击
#define cDelaySave 5 //延时保存时间 5s
#define constE2Data 0x56
#define cT02InqOnTime 10 //T02请求开机的时间
#define cDh01InqOnTime 0 //Dh01请求开机的时间
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -