📄 复件.c
字号:
TX_FLAG=0;
OPENTIME1=0; /*清开发送延时10毫秒到标志*/
CLOSETIME=1; /*开关发送延时*/
}
}
}break;
case 8: /*发送呼叫应答*/
{
SCITXBUF=STATENUM;
while((SCICTL2&0x0080)==0)
{}
SCITX_FLAG=8;
TX_FLAG=0;
OPENTIME1=0; /*清开发送延时10毫秒到标志*/
CLOSETIME=1; /*开关发送延时*/
}
}
}
void SYS_init()
{
asm(" SETC INTM ");/*关闭所有可屏蔽中断*/
asm(" CLRC SXM ");/*符号扩展*/
asm(" CLRC OVM ");/*溢出模式*/
asm(" CLRC CNF ");/*B0块配置为数据存储器*/
SCSR1=0x067D; /*CLKIN=16M,CLKOUT=16M,关断ADC(disable A/D conversion)*/
// WDCR=0x006F; /*关看门狗close watch dog,VCCP--5V*/
WDCR=0x002D; /*开启看门狗*/
IMR=0x0002; /*open timer interrupt,SCI receive interrupt*/
IFR=0x0FFFF; /*清所有中断标志clear all interrupt signs*/
}
void Cpld_Init()
{
O_DATA1=0x0FFFF;
O_DATA2=0x0FFFF;
O_DATA3=0x0FFFF;
O_DATA4=0x0FFFF;
IO_OUT();
}
void Meomory_init()
{
IA_BUF1=IA_BUF;
IB_BUF1=IB_BUF;
IE_BUF1=IE_BUF;
IF_BUF1=IF_BUF;
timeint=0;
zz1box1=zz1box2;
zz2box1=zz2box2;
XDTIME=0;
XDTIMESYMBOL=60;
SDTIME=0;
SDTIMESYMBOL=60;
FX=0;
FXSYMBOL=5;
FXTIME=0;
NRUNTIME=0;
NRUNTIMESYMBOL=80;
NBZTIME=0;
NBZTIMESYMBOL=80;
NVTIME=0;
NVTIMESYMBOL=80;
KVTIME=0;
KVTIMESYMBOL=20;
HJTIME=0;
WHJTIME=0;
WHJTIMESYMBOL=50;
MBTIME=0;
MBTIMESYMBOL=50;
IOTIME=0;
IOTIMESYMBOL=10;
RUNTIME=0;
RUNTIME1=0;
RUNTIMESYMBOL=300;
SKMTIME=0;
b4=0; /*CAN数据定时50ms发送*/
k1=0; /*脉冲值10MS更新一次*/
k2=0; /*掉电测电5次*/
k5=0; /*变频器故障检测10次*/
k8=1; /*CAN发送的交替*/
k4=0; /*定时器灯闪*/
b13=0; /*I/O去抖*/
b15=0; /*KV去抖*/
k16=0; /*主循环6次发送一次IO*/
k18=0; /*Page_Read3()*/
zz1=0;
zz2=0;
yj=0;
FLOOR_FIRE=1;
T100MS=T1S=10;
CAN_FLAG=0;
FLOOR_MIX=1;
FLOOR_MAX=7;
STATEBOX=0;
E6TIMES=20;/*抱闸后延时0.2s*/
E2TIMES=20;/*松闸后延时0.2s*/
E3TIMES=50;/*光电开关被挡报警后5s*/
E0TIMES=30;/*就近停车延时3s*/
E1TIMES=20;/*撤方向0.2s*/
E5TIMES=10;/*门区开关闭合3.5s*/
E7TIMES=80;/*给方向0.8s*/
A0TIMES=100;/*门联锁打开0.5s*/
A1TIMES=25;/*开门状态有效有非同层呼叫2.5s*/
A3TIMES=25;/*光电开关被挡25s*/
A4TIMES=65;/*关门状态有效6.5s*/
A6TIMES=20;/*断主C且触点闭合延时4s*/
C0TIMES=50;/*门联锁闭合0.5s*/
C1TIMES=10;/*消防有效后延时0.1s*/
C2TIMES=120;/*无呼叫120S*/
C3TIMES=10;/*通讯检测时间10s*/
C4TIMES=30;/*零速度有效延时0.5s*/
C5TIMES=30;/*自学习顶层延时3s*/
C6TIMES=60;/*无任何动作延时180s回基站*/
C7TIMES=40;/*换速后延时40s*/
G1TIMES=30;/*开门后3s到*/
G2TIMES=20;/*门区开关断开0.1s*/
A0TIMES=100;/*门联锁打开0.5s*/
A6TIMES=20;
G3TIMES=10;
G6TIMES=30;
G7TIMES=40;
G4TIMES=50;
G5TIMES=50;
I1TIMES=50;
MODI_PARA=0;
MODI_PARA1=0;
SCIT10MS=1;
INTT30MS=3;
SCIT20MS=2;
SCIT1000MS=100;
OPENTIME=0;
OPENTIME1=0;
CLOSETIME=0;
CLOSETIME1=0;
SCITIME=0;
TX_FLAG=0;
CLOSERECEIVE=0;
PCDDELAY=0;
PCDDELAY1=0;
PCT20MS=2;
k7=300; /*掉电保存I/O口状态无效累计1S定时参数*/
SCITX_FLAG=1;
JACK=1;
b11=0; /*收到26次CAN信息LED灯闪*/
b12=0; /*每次SCI发送LED灯闪*/
}
void First_Memory() /*内存初始化*/
{
Watch_dog();
TIMER_CHECK=0;
p2=(unsigned int*)&UPDATE0; /*取出向上呼叫登记表的首址*/
for(i=1;i<=8;i++)
{
*p2=0;
p2++;
}
p2=(unsigned int*)&DOWNDATE0; /*取出向下呼叫登记表的首址*/
for(i=1;i<=8;i++)
{
*p2=0;
p2++;
}
p2=(unsigned int*)&BDOWNDATE0; /*取出向下呼叫登记表的首址*/
for(i=1;i<=8;i++)
{
*p2=0;
p2++;
}
p2=(unsigned int*)&BUPDATE0;
for(i=1;i<=8;i++)
{
*p2=0;
p2++;
}
p2=(unsigned int*)&BOXDATE0;
for(i=1;i<=8;i++)
{
*p2=0;
p2++;
}
}
void First_adj1()
{
N_AF_state=1; /*正常运行平层区各个状态标志*/
A_S_state=1; /*停车各个状态标志*/
A_W_state=1;
A_Sa_state=1;
Study_state=1; /*复位自学习状态*/
fire_state=1; /*复位消防状态*/
CD_state=1;
FR_state=1;
FLOOR_FIRE=1;
T100MS=T1S=10;
CAN_SIGN=0;
STATEBOX=0;
CAN_FLAG=0;
TSCIOPEN=TXENABLE=0;
SCITIMER=3;
BTIMESYMBOL=DTIMESYMBOL=FTIMESYMBOL=HTIMESYMBOL=0;
E4TIMESYMBOL=E4TIMES;/*撤速2s*/
E6TIMESYMBOL=E6TIMES;/*抱闸后延时0.2s*/
E2TIMESYMBOL=E2TIMES;/*松闸后延时0.2s*/
E3TIMESYMBOL=E3TIMES;/*光电开关被挡报警后5s*/
E0TIMESYMBOL=E0TIMES;/*就近停车延时3s*/
E1TIMESYMBOL=E1TIMES;/*撤方向0.2s*/
E5TIMESYMBOL=E5TIMES=10;/*门区开关闭合3.5s*/
E7TIMESYMBOL=E7TIMES;/*给方向0.8s*/
A0TIMESYMBOL=A0TIMES;/*门联锁打开0.5s*/
A1TIMESYMBOL=A1TIMES;/*开门状态有效有非同层呼叫2.5s*/
A2TIMESYMBOL=A2TIMES;/*开门后设定5s*/
A3TIMESYMBOL=A3TIMES;/*光电开关被挡25s*/
A4TIMESYMBOL=A4TIMES;/*关门状态有效6.5s*/
A5TIMESYMBOL=A5TIMES;/*关门后设定5s*/
A6TIMESYMBOL=A6TIMES;/*断主C且触点闭合延时1s*/
A7TIMESYMBOL=A7TIMES;/*开门状态有效无呼叫6.5s*/
C0TIMESYMBOL=C0TIMES;/*门联锁闭合0.5s*/
C1TIMESYMBOL=C1TIMES;/*消防有效后延时0.1s*/
C2TIMESYMBOL=C2TIMES;/*无呼叫120S*/
C3TIMESYMBOL=C3TIMES;/*通讯检测时间10s*/
C4TIMESYMBOL=C4TIMES=20;/*零速度有效延时0.5s*/
C5TIMESYMBOL=C5TIMES;/*自学习顶层延时3s*/
C6TIMESYMBOL=C6TIMES=60;/*无任何动作延时180s回基站*/
C7TIMESYMBOL=C7TIMES;/*换速后延时40s*/
G1TIMESYMBOL=G1TIMES;/*开门后3s到*/
G2TIMESYMBOL=G2TIMES=20;/*门区开关断开0.1s*/
A0TIMESYMBOL=A0TIMES=100;/*门联锁打开0.5s*/
A6TIMESYMBOL=A6TIMES=40;
MODI_PARA2=MODI_PARA3=0;
G3TIMESYMBOL=G3TIMES=10;
G6TIMESYMBOL=G6TIMES=30;
G7TIMESYMBOL=G7TIMES=40;
G4TIMESYMBOL=G4TIMES=50;
G5TIMESYMBOL=G5TIMES=50;
I1TIMESYMBOL=I1TIMES=50;
PULSE_NUM1=PULSE_NUM2=0;
SCI_NUM5=b9=b10=0;
FLOOR_N=SAVE_FLOOR;
FOPSYMBOL=SAVE_FOPSY;
if(SAVE_FOPSY&0x0002)
{
BAOYTIME=1;
}
else
{
BAOYTIME=0;
b18=0;
}
AOPSYMBOL=0;BOPSYMBOL=0;COPSYMBOL=0;DOPSYMBOL=0;KOPSYMBOL=0;
EOPSYMBOL=0;FOPSYMBOL=0;GOPSYMBOL=0;HOPSYMBOL=0;IOPSYMBOL=0;
JOPSYMBOL=0;LOPSYMBOL=0;
FLOOR_BDIR=0;
FLOOR_CALL=0;
STATEBOX=0;
HOPSYMBOL|=0x0020; /*置楼层改变标志*/
REDOOR_N=0;
WRONG_DATA=0;
WRONG_STATE=0;
FLOOR_MIX=1;FLOOR_MAX=7;
MODI_PARA=0;
MODI_PARA1=0;
SCIT10MS=1;
INTT30MS=3;
SCIT20MS=2;
SCIT1000MS=100;
OPENTIME=0;
OPENTIME1=0;
CLOSETIME=0;
CLOSETIME1=0;
SCITIME=0;
SCI_NUM3=0;
SCI_NUM4=1;
SCI_NUM5=0;
SCI_NUM6=0;
SCI_NUM7=0;
TX_FLAG=0;
CLOSERECEIVE=0;
PCDDELAY=0;
PCDDELAY1=0;
PCT20MS=2;
k6=1;
k7=300; /*掉电保存I/O口状态无效累计1S定时参数*/
SCITX_FLAG=1;
JACK=1;
b11=0;
b12=0;
}
void First_adjust() /*初始化调整*/
{
Watch_dog();
FLOOROFFSET=1;
DOOR=1;
BAOYTIME=0;
BYQD=0;
b18=0;
N_AF_state=1; /*正常运行平层区各个状态标志*/
A_S_state=1; /*停车各个状态标志*/
A_W_state=1;
A_Sa_state=1;
Study_state=1; /*复位自学习状态*/
fire_state=1; /*复位消防状态*/
CD_state=1;
FR_state=1;
FLOOR_FIRE=1;
T100MS=T1S=10;
CAN_SIGN=0;
STATEBOX=0;
CAN_FLAG=0;
TSCIOPEN=TXENABLE=0;
SCITIMER=3;
BTIMESYMBOL=DTIMESYMBOL=FTIMESYMBOL=HTIMESYMBOL=0;
E4TIMESYMBOL=E4TIMES=120;/*撤速0.8s*/
E6TIMESYMBOL=E6TIMES=20;/*抱闸后延时0.2s*/
E2TIMESYMBOL=E2TIMES=20;/*松闸后延时0.2s*/
E3TIMESYMBOL=E3TIMES=50;/*光电开关被挡报警后5s*/
E0TIMESYMBOL=E0TIMES=30;/*就近停车延时3s*/
E1TIMESYMBOL=E1TIMES=20;/*撤方向0.2s*/
E5TIMESYMBOL=E5TIMES=10;/*门区开关闭合1s*/
E7TIMESYMBOL=E7TIMES=80;/*给方向0.8s*/
A0TIMESYMBOL=A0TIMES=100;/*门联锁打开0.5s*/
A1TIMESYMBOL=A1TIMES=25;/*开门状态有效有非同层呼叫2.5s*/
A2TIMESYMBOL=A2TIMES=50;/*开门后设定5s*/
A3TIMESYMBOL=A3TIMES=25;/*光电开关被挡25s*/
A4TIMESYMBOL=A4TIMES=65;/*关门状态有效6.5s*/
A5TIMESYMBOL=A5TIMES=50;/*关门后设定5s*/
A6TIMESYMBOL=A6TIMES=40;/*断主C且触点闭合延时0.4s*/
A7TIMESYMBOL=A7TIMES=65;/*开门状态有效无呼叫6.5s*/
C0TIMESYMBOL=C0TIMES=50;/*门联锁闭合0.5s*/
C1TIMESYMBOL=C1TIMES=10;/*消防有效后延时0.1s*/
C2TIMESYMBOL=C2TIMES=120;/*无呼叫120S*/
C3TIMESYMBOL=C3TIMES=10;/*通讯检测时间10s*/
C4TIMESYMBOL=C4TIMES=20;/*零速度有效延时0.5s*/
C5TIMESYMBOL=C5TIMES=30;/*自学习顶层延时3s*/
C6TIMESYMBOL=C6TIMES=60;/*无任何动作延时60s关灯和风扇*/
C7TIMESYMBOL=C7TIMES=40;/*换速后延时40s*/
G1TIMESYMBOL=G1TIMES=30;/*开门后3s到*/
G2TIMESYMBOL=G2TIMES=20;/*门区开关断开0.1s*/
FLOOR_N=SAVE_FLOOR;
FOPSYMBOL=SAVE_FOPSY;
AOPSYMBOL=0;BOPSYMBOL=0;COPSYMBOL=0;DOPSYMBOL=0;KOPSYMBOL=0;
EOPSYMBOL=0;FOPSYMBOL=0;GOPSYMBOL=0;HOPSYMBOL=0;IOPSYMBOL=0;
JOPSYMBOL=0;LOPSYMBOL=0;
FLOOR_BDIR=0;
FLOOR_CALL=0;
STATEBOX=0;
HOPSYMBOL|=0x0020; /*置楼层改变标志*/
REDOOR_N=0;
WRONG_DATA=0;
WRONG_STATE=0;
PASSWORD1=1;
SPECIAL=1;
FIRST_LOU=0;
FLOOR_MIX=1;FLOOR_MAX=64;
SCIT10MS=1;
INTT30MS=3;
SCIT20MS=2;
SCIT1000MS=100;
OPENTIME=0;
OPENTIME1=0;
CLOSETIME=0;
CLOSETIME1=0;
SCITIME=0;
SCI_NUM3=0;
SCI_NUM4=1;
SCI_NUM5=0;
SCI_NUM6=0;
SCI_NUM7=0;
TX_FLAG=0;
CLOSERECEIVE=0;
PCDDELAY=0;
PCDDELAY1=0;
PCT20MS=2;
k6=1;
k7=300; /*掉电保存I/O口状态无效累计1S定时参数*/
SCITX_FLAG=1;
JACK=1;
b11=0;
b12=0;
}
void EVA_init() /*光电编码器--定时器2--程序中读写T2CNT脉冲*/
{
/*脉冲计数方向由GPTCONA.14反映--0减1增*/
MCRA|=0x0018;/*定义I/O口为光电编码输入口*/
EVAIMRA=0;
EVAIMRB=0; /* 定时器2中断全部屏蔽 */
EVAIMRC=0;
EVAIFRA=0xFFFF;
EVAIFRB=0xFFFF; /* 清除中断标志 */
EVAIFRC=0xFFFF;
T2CON&=0x0FFBF;
CAPCONA=0x0000; /*禁止捕获CAP1,CAP2*/
T2PR=0x0FFFF;
T2CON=0x1E70;
}
void EVB_init() /*10ms定时器*/
{
EVBIMRA=0x0080; /* 定时器3周期中断使能 */
EVBIMRB=0x0000;
EVBIFRA=0xFFFF;
EVBIFRB=0xFFFF; /* 清除中断标志 */
GPTCONB=0x0000;
T3PR=0x2710; /* 定时器3初值,定时10ms */
T3CNT=0x0000;
T3CON=0x144C; /* EVB工作时钟 16M/16=1M*/
}
void SCI_init()
{
MCRA|=0x0003;
SCICCR=0x000F; /*非自测模式,地址位module,8位长度*/
SCICTL1=0x0007; /*串口初始化begin*/
SCICTL2=0;
SCIHBAUD=0; /*设波特率为9600*/
SCILBAUD=0x00D0;
SCIPRI=0x0060; /*低优先级中断请求*/
SCICTL1=0x0027; /*串口初始化完成,进入休眠*/
PDDATDIR&=0x0FFFE; /*enable 485 receive*/
PCDATDIR&=0x0FFDF; /*disable 485 send*/
}
void Sci_Receive1()
{
if(SCIRXST&0x0040)
{
if(SCIRXST&0x0002) /*RXWAKE 接收唤醒*/
{
SCIRXID=SCIRXBUF;
if(SCIRXID==0x0002) /*consult pulses between floor*/
{
if(STYOVER==1)
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
CONFIRMNUM1=0;
CONFIRMNUM2=0;
CONFIRMNUM=0;
COUNTNUM=0;
SCI_NUM2=0;
}
}
else if(SCIRXID==0x0004)/*收到应答帧*/
{
SCITX_FLAG=1;
INTDELAY=1;
JACK=0; /*开1秒定时器*/
SCITIME=0; /*清1秒到标志*/
SCIT1000MS=100;
}
else if(SCIRXID==0x0005) /*consult trouble status*/
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
CONFIRMNUM1=0;
CONFIRMNUM2=0;
CONFIRMNUM=0;
COUNTNUM=0;
SCI_NUM2=0;
}
else if(SCIRXID==0x0009) /*self_study instruction*/
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
}
else if(SCIRXID==0x000A)/*clear self_study sign*/
{
b1=(IN_CB&0x0008)&&(IN_BB&0x0004);
if(b1==0)
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
SCI_NUM3=0;
}
}
else if(SCIRXID==0x000B)
{
b1=(IN_CB&0x0008)&&(IN_BB&0x0004);
if((b1==0)&&(~IN_CB&0x0002)) /*检修且不运行*/
{
SCITX_FLAG=11;
MODI_PARA1=11;
INTDELAY=1;
JACK=0; /*开1秒定时器*/
SCITIME=0; /*清1秒到标志*/
SCIT1000MS=100;
}
}
else if(SCIRXID==0x0007) /*the modified datas*/
{
b1=(IN_CB&0x0008)&&(IN_BB&0x0004);
if((b1==0)&&(~IN_CB&0x0002)) /*检修且不运行*/
{
if(SCITX_FLAG==11)
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
SCI_SP=(unsigned int*)0x038D;
SCI_NUM7=0;
}
}
}
else if(SCIRXID==0x000D) /*楼层偏置*/
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
CONFIRMNUM1=0;
CONFIRMNUM2=0;
CONFIRMNUM=0;
COUNTNUM=0;
FLOOROFFSET=1;
}
else if(SCIRXID==0x000E) /*门动设置*/
{
SCICTL1&=0x0FFFB; /* clear SLEEP */
CONFIRMNUM1=0;
CONFIRMNUM2=0;
CONFIRMNUM=0;
COUNTNUM=0;
DOOR=1;
}
else if(SCIRXID==0x0010) /*保养设置*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -