📄 target.#3
字号:
/****************************************************************************
**
** 文件名: target.c
** 功能: C8051Fxxx在LZK-3G中的应用相关函数;
** 创建时间:2006.08.26
** 修改时间:2006.08.26
** 修改说明:
** 作者: 李立学
** 版权申明:可以拷贝,可以修改,但必须保留修改时间和作者信息
**
****************************************************************************/
#include "LZK.H"
/**************************************************************************/
uint8 xdata EM_NomalPhaDiffCMD = 1; // 投励滑差 1~10%
uint8 xdata EM_FulVoltPhaDiffCMD = 5; // 投全压滑差 5~20%
uint8 xdata AsyncTimOutCMD = 2; // 长时间不投励时间 2~120s
uint8 xdata EM_TimCMD = 2; // 计时投励时间 2~120s
uint16 xdata EM_VoltScaleCMD = 500; // 电压量程 10~500(V)
uint16 xdata EM_CurrScaleCMD = 1000; // 电流量程 1~1000(A)
uint16 xdata EM_VoltMaxCMD = 330; // 电压上限 330(V)
uint16 xdata EM_VoltMinCMD = 100; // 电压下限 0(V)
uint16 xdata EM_CurrMaxCMD = 3000; // 电流上限 3000(A)
uint16 xdata EM_CurrMinCMD = 1000; // 电流下限 0(A)
uint8 xdata EM_AnglMaxCMD = 120; // 角度上限 120°
uint8 xdata EM_AnglMinCMD = 0; // 角度下限 0°
uint16 xdata EM_PwrFactMaxCMD = 999; // 功率因数上限 999
uint16 xdata EM_PwrFactMinCMD = 500; // 功率因数下限 500
uint16 xdata EM_NulPwrMaxCMD = 999; //无功功率上限 0~999
uint16 xdata EM_NulPwrMinCMD = 0; //无功功率下限 0~999
uint16 xdata TransFormSubVoltCMD = 500; // 变压器次级电压 10~500(V)
uint8 xdata EM_TimCntEnCMD = 0; // 计时投励使能 1开/0关
uint8 xdata EM_ENH_ModeCMD = 0; // 强励方式 0(电压强励)/1(电流强励)/2(角度强励)/3(功率因素强励)
uint16 xdata EM_ENH_VoltCMD = 100; // 强励电压 0~330(V)
uint16 xdata EM_ENH_CurrCMD = 1000; // 强励电流 0~3000(A)
uint8 xdata EM_ENH_AnglCMD = 10; // 强励角度 0~120°
uint8 xdata EM_ENH_TimeCMD = 5; // 强励时间 0~30s(1s步进)
uint8 xdata S1_Key1 = 0;
uint8 xdata S1_Key2 = 0;
uint8 xdata S1_Key3 = 0;
uint8 xdata S1_Key4 = 0;
uint8 xdata S1_Key5 = 0;
uint8 xdata S1_Key6 = 0;
uint8 xdata EM_ModeCMD = 1; //励磁方式 0(电压)/1(电流)/2(角度)/3(功率因数)/4(无功)
uint16 xdata EM_VoltCMD = 100; //励磁电压 0~330VDC
uint16 xdata EM_CurrCMD = 80; //励磁电流 0~3000A
uint8 xdata EM_AnglCMD = 50; //励磁角度 5°~175
uint16 xdata EM_PwrFactCMD = 900; //功率因数 500~999
uint16 xdata EM_NulPwrCMD = 100; //无功功率 0~999Kvar
/**************************************************************************/
uint8 xdata BakPrttTimCMD = 1; // 同步时间 1~8(s)
uint8 xdata AsyncDetEnDelayCMD = 1; // 检测延时 1~10(s)
uint8 xdata RemoteTestCMD = 5; // 遥调时限 5~30(s)
uint8 xdata ExValueIncPercentCMD = 10; // 励磁增量 0~100(%)
uint8 xdata KQPulseLastCMD = 1; // KQ触发宽度 1~10(ms)
uint8 xdata RevsTrigOutAngle = 135; // 逆变触发角 135~145°
uint8 xdata PID_VoltKP = 10; // 电压P参数 1~100
uint8 xdata PID_VoltKI = 10; // 电压I参数 1~100
uint8 xdata PID_CurrKP = 10; // 电流P参数 1~100
uint8 xdata PID_CurrKI = 10; // 电流I参数 1~100
uint8 xdata PID_PwrFactKP = 10; // 功率因数P参数 1~100
uint8 xdata PID_PwrFactKI = 10; // 功率因数I参数 1~100
uint8 xdata EMDelayTimeCMD = 20; // 投励延时 5~20(ms)
uint8 xdata RFJTestCMD = 5; // RFJ测试延时 0.5~8(s)
uint8 xdata FastRemMagneticDelayCMD = 1; // 快速灭磁延时 0~5(ms)
uint8 xdata SlideTestDelayTimCMD = 2; // 滑差检测延时 0.2~10(s)
uint8 xdata OutOfCtrAlarmDelayCMD = 2; // 失控报警延时 2~10(s)
uint8 xdata ClosePulseDelayCMD = 1; // 灭磁结束延时 0.1~5(s)
uint8 xdata OutOfCtrOnTimCMD = 1; // 电机失控时间 0.1~1(s)
uint8 xdata LowLimitTrigOutAngle = 1; // 遥调投励上限 0~120°
uint8 xdata AttenuationPercentCMD = 1; // 灭磁电流下限 0~100(%)
uint8 xdata IFCO_HighLevlTimCMD = 2; // 失步检测高电平 2~10(s)
uint8 xdata IFCO_LowLevlTimCMD = 5; // 失步检测低电平 0.5~1(s)
uint8 xdata UF_LowLevlTimCMD = 4; // 失控检测低电平 4~6(ms)
uint8 xdata EM_PwrFreqCMD = 5; // 电网频率 50/60(Hz)
uint8 xdata EM_RegBrdgMode = 1; // 整流桥模式 0全控/1半控
uint8 xdata RegulateAftAsyncFuncEN = 1; // 失步再整步 1开/0关
uint8 xdata LCJ_OnTimCMD = 2; // LCJ动作时间 2~10(s)
uint8 xdata AsyncAftSyncTimCMD = 5; // 后备保护时间 0.5~10(s)
uint8 xdata S2_Key1 = 0;
uint8 xdata S2_Key2 = 0;
uint8 xdata S2_Key3 = 0;
uint8 xdata S2_Key4 = 0;
uint8 xdata S2_Key5 = 0;
uint8 xdata S2_Key6 = 0;
/**************************************************************************/
uint8 xdata EM_arkadress = 1;
uint8 xdata EM_conadress = 0;
uint8 xdata EM_baud232 = 1;
uint8 xdata EM_baud485 = 1;
uint8 xdata EM_BackUp = 0;
uint8 xdata EM_DmSwitch = 0;//非存储
/**************************************************************************/
uint8 xdata EN_RecMode = 1;
uint8 xdata EN_ManualRec = 0;
uint8 xdata EN_StartRec = 0;
uint8 xdata EN_ErrorRec = 0;
uint8 xdata EN_ch1 = 1;//非存储
uint8 xdata EN_ch2 = 2;//非存储
uint8 xdata EN_SowType = 1;//非存储
/**************************************************************************/
uint8 xdata StartTemper = 45;
uint8 xdata CloseTemper = 40;
uint8 xdata AlarmTemper = 60;
uint8 xdata RTCData[7];//非存储
/**************************************************************************/
uint16 xdata EM_StaVoltData = 0; //定子电压
uint16 xdata EM_StaCurrData = 0; //定子电流
uint16 xdata EM_ExcVoltData = 0; //励磁电压
uint16 xdata EM_ExcCurrData = 0; //励磁电流
uint8 xdata EM_AngleData = 0; //触发角度
uint8 xdata RTU_MaOrSlave = 0; //本机模式
uint16 xdata EM_SumPowData = 0; //视在功率
uint16 xdata EM_EffPowData = 0; //有功功率
uint16 xdata EM_NulPowData = 0; //无功功率
uint16 xdata EM_PowFacData = 0; //功率因数
/**************************************************************************/
/***********************************************************************
* 名称:External_Osc()
* 功能:选择外部晶体振荡器作为系统时钟.
* 入口参数:无
* 出口参数:无
* 说明:切换系统时钟前判断外部晶体振荡器是否正常.
***********************************************************************/
void External_Osc(void)
{
unsigned char i; // Local variable Used in delay FOR loop.
SFRPAGE = CONFIG_PAGE; // Switch to config page to config oscillator
OSCXCN = 0x67; // Start external oscillator,24.000 MHz Crystal
for(i=0; i<255; i++); // Delay about 1mS
while ((OSCXCN & 0x80) == 0); // Extenal Clock Valid
CLKSEL |= 0x01; // Switch to External Oscillator
}
/***********************************************************************/
void SMBusInit(void)
{
SFRPAGE= 0x00;
SMB0CN = 0x40;
SMB0CR = 0xE0;
}
/***********************************************************************
* 名称:Port_Init()
* 功能:交叉开关配置与I/O引脚定义,存储器配置.
* 入口参数:无
* 出口参数:无
* 说明:
***********************************************************************/
void Port_Init(void)
{
SFRPAGE = CONFIG_PAGE;
XBR0 = 0x0D; // 00 001_101:
// CEX0_UART0_I2C.
// Bit7: CP0E: Comparator 0 Output Enable Bit.
// Bit6: ECI0E: PCA0 External Counter Input Enable Bit.
// Bit[5..3]: PCA0ME: PCA0 Module I/O Enable Bits.
// Bit2: UART0EN: UART0 I/O Enable Bit.
// Bit1: SPI0EN: SPI0 Bus I/O Enable Bit.
// Bit0: SMB0EN: SMBus0 Bus I/O Enable Bit.
XBR1 = 0x14; // 0001_0100:
// INT1#_INT0#_TO.
// Bit7: SYSCKE: SYSCLK Output Enable Bit.
// Bit6: T2EXE: T2EX Input Enable Bit.
// Bit5: T2E: T2 Input Enable Bit.
// Bit4: INT1E: INT1# Input Enable Bit.
// Bit3: T1E: T1 Input Enable Bit.
// Bit2: INT0E: INT0# Input Enable Bit.
// Bit1: T0E: T0 Input Enable Bit.
// Bit0: CP1E: CP1 Output Enable Bit.
XBR2 = 0xC4; // 1100_0110
// WEAKPUD_XBARE_UART1_EMI HighPort
// Bit7: WEAKPUD: Weak Pull-Up Disable Bit.
// Bit6: XBARE: Crossbar Enable Bit.
// Bit5: UNUSED. Read = 0, Write = don't care.
// Bit4: T4EXE: T4EX Input Enable Bit.
// Bit3: T4E: T4 Input Enable Bit.
// Bit2: UART1E: UART1 I/O Enable Bit.
// Bit1: EMIFLE: External Memory Interface Low-Port Enable Bit.
// Bit0: CNVST0E: ADC0 External Convert Start Input Enable Bit.
XBR3 = 0x80; // 1000_0000
// CAN TX Mode: Push-Pull.
// Bit7: CTXOUT: CAN Transmit Pin (CTX) Output Mode: open-drain/push-pull.
// Bit6-4: Reserved.
// Bit3: CP2E: CP2 Output Enable Bit.
// Bit2: CNVST2E: ADC2 External Convert Start Input Enable Bit.
// Bit1: T3EXE: T3EX Input Enable Bit.
// Bit0: T3E: T3 Input Enable Bit.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -