📄 lzk.c
字号:
LeftKeyEvt=1;
LeftKeyCNT=0;
}
if(RightKeyCNT<500&&RightKey==1)
RightKeyCNT=0;
if(RightKeyCNT<500&&RightKey==0)
RightKeyCNT++;
if(RightKeyCNT>=500&&RightKey==1)
{
RightKeyEvt=1;
RightKeyCNT=0;
}
/******KEY SCAN**************END*********************************/
DmsCNT++;
if(DmsCNT>=8)
{
DmsCNT=0;
DmsFlag=1;
Dms2Flag=1;
}
/***************************************************************/
LCD_Cs();
}
/****************************************************************************
** 函数名称: main()
** 功能描述: 主程序,处理非实时任务或计算任务;
** 入口参数: 无
** 出口参数: 无
** 全局变量: 无
** 调用模块: 无
** 说明:
****************************************************************************/
void main(void)
{
EA = 0;
SP = 0xC0; // SP: 64 Bytes,0xC0~0xff, User: 192 Bytes.
WDT_Disabled(); // WatchDog Disabled.
Port_Init(); // I/O Port and EMIF Config.
External_Osc(); // Switch to External Oscillator, 24.000MHz.
SMBusInit();
Interrupt_Init(); // Interrupt Controllor Initialize.
InVref_Init(1); // Enabled Internal Vlotage Reference.
ADC0_Init(1,0,0,0,0,0,0); // ADC0 Enabled, AD0BUSY, CH0, GAIN: 1, HVA Disabled, HVA GAIN: 1, Left-justified.
PCA_Init(); // CEX0: Square Wave. CEX1: "1".
RelayOutPut_Init(); // 继电器输出需要执行该初始化.
//T0T1_Init(); // T0: PhaseDiff MS; T1: UART1 Baudrate Generator.
T2_Init(); // T2: Generate 125uS Interrup;;
//T4_Init(); // UART0 Baudrate Generator.
//T0_RunCtrl(1);
//T1_RunCtrl(1);
T2_RunCtrl(1);
//T4_RunCtrl(1);
//UART0_Init(); // RS485, Default to
//Tn_R0 = 1; // RS485 In Recieve State.
//UART1_Init(); // RS232, Fixed as 57600bps
WDT_Reload();
EA=1;
/////////////////////////////////////////////////
LCD_Initialize();
Menue(18);
Menue(16);
while(1)
{
/*********************************************************
DLJ合闸,切换启动录波图片,启动录波使能开启
DLJ分闸,切换停机图片,关闭所有类型的录波使能
*********************************************************/
if(Star_EN==1)
{
if(DLJ_IN==1)
{
Star_EN=0;
RecType=0;
PictrRege=PictrRege&0xfe;
}
}
else
{
if(DLJ_IN==0)
{
Star_EN=1;
if(EN_StartRec == 1)//启动录波是非开启
RecType=2;
PictrRege=PictrRege|0x01;
}
}
/*********************************************************
RecType!=0,意味着录波开启,根据具体的值分配存储空间,并且图片状态切换
RecType==0,意味着录波关闭,并且图片状态切换
*********************************************************/
if(RecType!=RecTemp)
{
RecTemp=RecType;
if(RecTemp!=0)
{
switch(RecTemp)
{
case 1:ExSramStarPag=8;
ExSramEndPag=15;
break;
case 2:ExSramStarPag=0;
ExSramEndPag=1;
break;
case 3:ExSramStarPag=4;
ExSramEndPag=4;
break;
case 4:ExSramStarPag=6;
ExSramEndPag=6;
break;
case 5:ExSramStarPag=5;
ExSramEndPag=5;
break;
case 6:ExSramStarPag=2;
ExSramEndPag=3;
break;
case 7:ExSramStarPag=7;
ExSramEndPag=7;
break;
default:break;
}
ExSramWrRdAdr=0;
ExSramWrRdPag=ExSramStarPag;
PictrRege=PictrRege|0x02;
Wave_EN=1;
}
else
{
Wave_EN=0;
PictrRege=PictrRege&0xfd;
}
}
/********************************************************
停机图片
运行图片
录波图片
之间的锁存及切换
********************************************************/
if(PictrRege!=PictrTemp)
{
if(PictrRege==0x02)
PictrRege=0x00;
PictrTemp=PictrRege;
Menue(16);
}
/********************************************************
一旦故障产生,立即弹出故障页
一旦故障排除,立即弹出运行页
********************************************************/
if(ErrorRege!=ErrorTemp)
{
ErrorTemp=ErrorRege;
if(ErrorTemp!=0)
{
page=3;
HI_ErrLED=0;
HI_Bell=1;
}
else
{
page=1;
HI_ErrLED=1;
HI_Bell=0;
}
Menue(16);
}
/********************************************************
菜单第五项,继电器状态实时显示
********************************************************/
if(seek==5 && PressKeyEvt==0)
{
LCD_Seek5();
}
/********************************************************
30秒无键按下,自动返回运行界面,并熄灭背光
********************************************************/
if(DmsNum<30000)
{
if(DmsFlag==1)
{
DmsFlag=0;
DmsNum++;
}
if(DmsNum>=30000)
{
LCD_BLED=0;
if(seek!=16 && hunt<72)
{
Menue(16);
hunt=0;
}
}
}
/************************************************************
按键响应,关闭蜂鸣器
************************************************************/
if(DmsNum>50&&PressKeyEvt)
{
HI_Bell=0;
PressKeyEvt=0;
}
/************************************************************
机柜温度超过45度,ZJJ继电器动作,启动风机
机柜温度小于40度,ZJJ继电器恢复,关闭风机
机柜温度超过60度,启动“机柜过热”故障进程
机柜温度小于60度,结束“机柜过热”故障进程
************************************************************/
if(Temper_EN!=0)
{
CTemper=(float)KTemper*0.207-271.328;
OutTemper=(unsigned char)CTemper;
if(OutTemper>=StartTemper)
RelayOUT=RelayOUT&0x7f;
else if(OutTemper<=CloseTemper)
RelayOUT=RelayOUT|0x80;
if(OutTemper>=AlarmTemper)
ErrorRege=ErrorRege|0x2000;
else if(OutTemper<AlarmTemper)
ErrorRege=ErrorRege&0xdfff;
Temper_EN=0;
}
/************************************************************/
if(seek == 7 && Dms2Flag==1)
{
Dms2Flag=0;
Dms2_1Num++;
if(Dms2_1Num==1000)
{
Dms2_1Num=0;
LCD_Num(168,14,OutTemper,0,"℃ ");
}
}
/************************************************************
若处于运行界面,状态框的动画在不断运行
运行参数每一秒钟刷新一次
运行时间每二十秒刷新一次
************************************************************/
if(seek==16)
{
if(Dms2Flag==1)
{
Dms2Flag=0;
Dms2_1Num++;
Dms2_2Num++;
Dms2_3Num++;
}
if(Dms2_1Num==500)
{
LCD_CAstr(208,13,":",0,0);
if(Star_EN == 1)
HI_RunLED=!HI_RunLED;
else
HI_RunLED=1;
}
else if(Dms2_1Num>1000)
{
Dms2_1Num=0;
LCD_CAstr(208,13," ",0,0);
if(Star_EN == 1)
HI_RunLED=!HI_RunLED;
else
HI_RunLED=1;
}
if(Dms2_2Num>30000)
{
Dms2_2Num=0;
LCD_Clock();
}
if(Dms2_3Num>100)
{
Dms2_3Num=0;
LCD_RunData();
LCD_RunPictr();
}
}
/************************************************************
七大键响应后台
***********************************************************/
Key();
/************************************************************
窥看一级系统密码
************************************************************/
if(seek==0&&hunt==4&&LeftKey==0&&RightKey==0)
{
LCD_ClearAll();
Menue(14);
}
/************************************************************
窥看二级系统密码
************************************************************/
if(seek==8&&hunt==3&&page==2&&LeftKey==0&&RightKey==0)
{
LCD_ClearAll();
Menue(15);
}
/************************************************************/
if(hunt==73 && DisWave_En==0)
{
Dms2_1Num++;
if( Dms2_1Num >Em_Pace )
{
Dms2_1Num = 0;
LCD_Wave();
}
}
/************************************************************/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -