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

📄 pub_func.h

📁 NEC527多功能电表完整源代码,包括LCD驱动,显示,计量,存储,整个527驱动程序!
💻 H
字号:
#ifndef PUB_FUNC_H
#define PUB_FUNC_H

#define ALARM 0xFE

#define SYS_REBOOT()    (WDTCTL = 0)
#define _disable_interrupt()  (_DINT())
#define _enable_interrupt()  (_EINT())
#define _no_operation()  (_NOP())

#define ClrIORBit(Reg, ClrBitMap)	Reg &= (uchar)(~ClrBitMap)
#define SetIORBit(Reg, SetBitMap)	Reg |= SetBitMap
#define PUB_DATA_SIZE (unsigned char)204

typedef union _pub_data_
{
    unsigned long pub_data_buff2[50];
    unsigned short pub_data_buff1[PUB_DATA_SIZE/2];
    unsigned char pub_data_buff3[PUB_DATA_SIZE];
}_pub_data_s;

extern _pub_data_s pub_data;

unsigned char TimeCompare(unsigned char *buff1, unsigned char *buff2, unsigned char len);
unsigned char IsEqualSpecialData(unsigned char *src,unsigned char data,unsigned char len);
unsigned char IsEqual(unsigned char *src1,unsigned char * src2,unsigned char len);
unsigned char IsBcdCode(unsigned char *bcd,unsigned char len);
unsigned char ReadBcdCountInfo(unsigned short addr,unsigned char * data,unsigned char dmax,unsigned char defaultval);
unsigned char ReadTimesMod10(unsigned short addr);
unsigned char Hex2BcdChar(unsigned char hex);
unsigned char Bcd2HexChar(unsigned char bcd);
unsigned char UsignedCharSub(uchar  hexA, uchar hexB);

unsigned short Hex2BcdShort(unsigned short hex);
unsigned short Bcd2HexShort(unsigned short bcd);
unsigned short MaxValueOfNums(unsigned short num1,unsigned short num2, unsigned short num3);
unsigned short WriteAddShortToFram(unsigned short addr);
unsigned short BcdAddOrSubShort(ushort bcd1, ushort bcd2, ushort flag);
unsigned short WriteAddShortToFram(unsigned short addr);
unsigned short UsignedShortSub(ushort hexA, ushort hexB);

unsigned long SysDoCheckSum(unsigned char *ptr, unsigned short len);
unsigned long Hex2BcdLong(unsigned long hex);
unsigned long Bcd2HexLong(unsigned long bcd);
unsigned long CalcPastTime(unsigned short addr);
unsigned long WriteAddLongToBbuffer1(unsigned short addr,unsigned long data);
unsigned long GetPrevMonAddr(unsigned char item);
unsigned long GetDayAddr(unsigned char year,unsigned char mon,unsigned char day);
unsigned long BcdAddOrSubLong(unsigned long bcd1, unsigned long bcd2, unsigned char flag);

void Delay(unsigned short t);
void ClrWdt(void);
void MemSetZero(unsigned char *data,unsigned short len);
void MemSetoWriteE2prom(unsigned short addr,unsigned char len);
void ActiveProgram(void);
void CancleProgram(void);
void SavePgmInfoToFram(unsigned short addr,unsigned char flag);
void LcdLightOn(unsigned char sec);
void LcdDispPageOn(void);
void MemSet0xFF(unsigned char * data,unsigned short len);
void ClearCurrMd( void );
void SaveCurrMd2Flash( void );
void WriteTimeToFram(unsigned short addr,unsigned char len);
void SaveTmpTime(unsigned short addr);
void SavePastTime(unsigned long addr,unsigned short t_addr,unsigned char bytes);
void LcdLightOff(void);
void LcdDispPageOff(void);
void SaveEvtStartInfo(unsigned char item);
void SaveEvtStopInfo(unsigned char item);
void SaveEvtSetSysClock(unsigned char port);
void SaveEvtClrMeterData(unsigned char port);
void SaveEvtClrReqPwrData(unsigned char mode,unsigned char flag);
void SaveEvtProgram(void);
void SaveEvtPowerDownUp(unsigned char item);
void SaveEvtClrPowerMeter(void);
void SaveEvtBcTime(void);
void SaveEvtDataShift(void);
void SaveZeroFreezePower(void);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -