📄 lzkfunc.c
字号:
LCD_Reset(); // LCM硬件复位.
LCD_Initialize(); // LCM初始化设置,图形模式.
LCD_ClearAll(); // LCM清屏.
// LCD_SelfTest();
LED_OnOff(RunLED,1);
SYNC_DispEN = 0;
SYNCa_CurrVal = 1; //
DUx_CurrVal = 1; //
TrigOutEN = 1; //
EA = 1; // Enable T0_
while(1)
{
if( SecFlag ) // Second TimOut flag.
{
SecCNT++;
if( SecCNT >= 60 ) // Minute flag.
{
MinFlag = 1; // Set minute flag.
SecCNT = 0; // RST secong counter.
}
if( BLED_ON_Flag == 1 ) // LCM Back LED OFF Control.
{
BLED_ON_CNT++;
if( BLED_ON_CNT >= 10 ) // Lighting 10S.
{
LED_OnOff(BLED,1);
BLED_ON_Flag = 0;
BLED_ON_CNT = 0;
}
}
LED_OnOff(SetLED,1);
DmS(50);
LED_OnOff(SetLED,0);
/********************************************************************
** 显示菜单光标,每秒钟位置下移一行.
********************************************************************/
if( ArrowY == 0 )
LCD_DisASCII16_8(0, 128 - 16, Blank);
else
LCD_DisASCII16_8(0, ArrowY - 16, Blank);
LCD_DisASCII16_8(0, ArrowY, Arrow);
ArrowY = ArrowY + 16;
if( ArrowY >= 128 )
ArrowY = 0;
SecFlag = 0;
}
/***********************************************************************
** (1)电流环法功率因数计算;
** (2)相差法功率因数计算;
** (3)计算法功率因数计算;
***********************************************************************/
/*
PwrFact_CurLoopMsrRSUT; //功率因数电流环法测量结果。
PwrFact_CalcMsrRSUT; //功率因数计算法测量结果。
PwrFact_PhaDiffMsrRSUT; //功率因数相差法测量结果。
*/
/***********************************************************************
** 分别由电流环、相位差和电压电流测量数据计算功率因数.
***********************************************************************/
if( PwrFact_CurrRingSamOVER ) // 电流环法计算功率因数.
{
PwrFact_CurrRingRSUT = PwrFact_CurrRingCalc( PwrFact_CurrRingSamDATA );
PwrFact_CurrRingSamOVER = 0;
PwrFact_CurrRingSamEN = 1;
if( PwrFact_CalcMode == 0 )
{
PwrFact_CalcRSUT = PwrFact_CurrRingRSUT;
PwrFact_CalcRsutOVER = 1;
}
}
if( PwrFact_PhaDiffMsrOVER ) // 相差法计算功率因数.
{
PwrFact_PhaDiffRSUT = PwrFact_PhaDiffCalc( PwrFact_PhaDiffMsrDATA );
PwrFact_PhaDiffMsrOVER = 0;
PwrFact_PhaDiffMsrEN = 1;
if( PwrFact_CalcMode == 1 )
{
PwrFact_CalcRSUT = PwrFact_PhaDiffRSUT;
PwrFact_CalcRsutOVER = 1;
}
}
if( PwrFact_DUxDIxSamOVER ) // 计算法计算功率因数.
{
PwrFact_CalcMsrRSUT = PwrFact_CalcMsrCalc(DUxSamDATA, DIxSamDATA);
PwrFact_DUxDIxSamOVER = 0;
PwrFact_DUxDIxSamEN = 1;
if( PwrFact_CalcMode == 2 )
{
PwrFact_CalcRSUT = PwrFact_CalcMsrRSUT;
PwrFact_CalcRsutOVER = 1;
}
}
/***********************************************************************
** 由UF测量数据计算UF.
***********************************************************************/
if( )
{
}
/***********************************************************************
** 由UI测量数据计算UI.
***********************************************************************/
if( )
{
}
/***********************************************************************
** 由CurrRingEI测量数据计算UI.
***********************************************************************/
if( )
{
}
/***********************************************************************
** 分别为恒电压、恒电流、恒功率因数控制方式下可控硅控制触发角的计算.
***********************************************************************/
if() // 目标输出电压--控制触发角换算.
{
}
if() // 目标输出电流--控制触发角换算.
{
}
if() // 目标功率因数--控制触发角换算.
{
}
/****************************************************************************
** 控制器人机界面,功能菜单,参数设置.
****************************************************************************/
if( MenuKeyEvt == 1 )
if( MenuKey_CNT > 80 ) // 100mS.
{
// Menu Key Continue Mode.
MenuKey_CNT = MenuKey_CNT - 80;
}
if( MenuKeyRels == 1 )
{
if( MenuKey_CNT >= 8 )
{
// Menu Key Single Mode.
}
MenuKey_CNT = 0;
MenuKeyEvt = 0;
MenuKeyRels = 0;
}
if( UpKeyEvt == 1 )
if( UpKey_CNT > 20 ) // 100mS.
{
// Up Key Continue Mode.
TrigAngPara++;
if( TrigAngPara >= TrigOutFullAngleMAX )
TrigAngPara = TrigOutFullAngleMAX;
TrigOutParaCalc(TrigAngPara);
LCD_DispBuff[0] = TrigAngPara % 10;
LCD_DispBuff[1] = TrigAngPara / 10 % 10;
LCD_DispBuff[2] = TrigAngPara / 100;
LCD_DisASCII8_8(64, 80, 0 + ASCII_OFFSET);
LCD_DisASCII8_8(72, 80, 0 + ASCII_OFFSET);
LCD_DisASCII8_8(80, 80, 7 + ASCII_OFFSET);
if( LCD_DispBuff[2] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[2] + ASCII_OFFSET;
LCD_DisASCII8_8(16, 64, ucTMP);
if( LCD_DispBuff[2] == 0 )
{
if( LCD_DispBuff[1] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
}
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
LCD_DisASCII8_8(24, 64, ucTMP);
ucTMP = LCD_DispBuff[0] + ASCII_OFFSET;
LCD_DisASCII8_8(32, 64, ucTMP);
UpKey_CNT = UpKey_CNT - 20;
}
if( UpKeyRels == 1 )
{
if( UpKey_CNT >= 8 )
{
// Up Key Single Mode.
TrigAngPara++;
if( TrigAngPara >= TrigOutFullAngleMAX )
TrigAngPara = TrigOutFullAngleMAX;
TrigOutParaCalc(TrigAngPara);
LCD_DispBuff[0] = TrigAngPara % 10;
LCD_DispBuff[1] = TrigAngPara / 10 % 10;
LCD_DispBuff[2] = TrigAngPara / 100;
if( LCD_DispBuff[2] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[2] + ASCII_OFFSET;
LCD_DisASCII8_8(16, 64, ucTMP);
if( LCD_DispBuff[2] == 0 )
{
if( LCD_DispBuff[1] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
}
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
LCD_DisASCII8_8(24, 64, ucTMP);
ucTMP = LCD_DispBuff[0] + ASCII_OFFSET;
LCD_DisASCII8_8(32, 64, ucTMP);
}
UpKey_CNT = 0;
UpKeyEvt = 0;
UpKeyRels = 0;
}
if( DownKeyEvt == 1 )
if( DownKey_CNT > 20 ) // 100mS.
{
// Down Key Continue Mode.
TrigAngPara--;
if( TrigAngPara <= TrigOutAngleMIN )
TrigAngPara = TrigOutAngleMIN;
TrigOutParaCalc(TrigAngPara);
LCD_DispBuff[0] = TrigAngPara % 10;
LCD_DispBuff[1] = TrigAngPara / 10 % 10;
LCD_DispBuff[2] = TrigAngPara / 100;
if( LCD_DispBuff[2] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[2] + ASCII_OFFSET;
LCD_DisASCII8_8(16, 64, ucTMP);
if( LCD_DispBuff[2] == 0 )
{
if( LCD_DispBuff[1] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
}
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
LCD_DisASCII8_8(24, 64, ucTMP);
ucTMP = LCD_DispBuff[0] + ASCII_OFFSET;
LCD_DisASCII8_8(32, 64, ucTMP);
DownKey_CNT = DownKey_CNT - 20;
}
if( DownKeyRels == 1 )
{
if( DownKey_CNT >= 8 )
{
// Down Key Single Mode.
TrigAngPara--;
if( TrigAngPara <= TrigOutAngleMIN )
TrigAngPara = TrigOutAngleMIN;
TrigOutParaCalc(TrigAngPara);
LCD_DispBuff[0] = TrigAngPara % 10;
LCD_DispBuff[1] = TrigAngPara / 10 % 10;
LCD_DispBuff[2] = TrigAngPara / 100;
if( LCD_DispBuff[2] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[2] + ASCII_OFFSET;
LCD_DisASCII8_8(16, 64, ucTMP);
if( LCD_DispBuff[2] == 0 )
{
if( LCD_DispBuff[1] == 0 )
ucTMP = 0;
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
}
else
ucTMP = LCD_DispBuff[1] + ASCII_OFFSET;
LCD_DisASCII8_8(24, 64, ucTMP);
ucTMP = LCD_DispBuff[0] + ASCII_OFFSET;
LCD_DisASCII8_8(32, 64, ucTMP);
}
DownKey_CNT = 0;
DownKeyEvt = 0;
DownKeyRels = 0;
}
if( EnterKeyEvt == 1 )
if( EnterKey_CNT > 80 ) // 100mS.
{
// Enter Key Continue Mode.
EnterKey_CNT = UpKey_CNT - 80;
// SYNC_DispEN = ~SYNC_DispEN;
}
if( EnterKeyRels == 1 )
{
if( EnterKey_CNT >= 8 )
{
// Enter Key Single Mode.
// SYNC_DispEN = ~SYNC_DispEN;
}
EnterKey_CNT = 0;
EnterKeyEvt = 0;
EnterKeyRels = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -