⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 microt02.h

📁 picc
💻 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 + -