📄 复件.c
字号:
void SYS_init();
void SCI_init();
void Timeprotect();
void Sci_Receive1();
void Sci_RxAdj();
void Sci_TxAdj();
void SCI_SendAAA();
void SCI_SendABC();
void Data_Store();
void SPI_init();
void Read_Status();
void Write_Enable();
void Write_Status();
void Read_Data();
void Page_Read();
void Page_Read1();
void Page_Read2();
void Page_Read3();
void Write_Data();
void Page_Write();
void Load_Srom();
void Save_Srom();
void Save_Data1();
void Save_Data2();
void Save_Data3();
void Save_Data4();
void Tiao_Shi();
void Tiao_Shi1();
void CAN_init();
void can_read();
void Can_Receive();
void Can_Send1();
void Can_Send2();
void Can_Send3();
void IO_init();
void Io_Receive();
void Io_Send();
void Cpld_Init();
void EVB_init();
void EVA_init();
void Watch_dog();
void PHANTOM();
void First_Memory();
void First_adjust();
void First_adj1();
void Meomory_init();
void Read_memory();
void Ctr_Exam();
void Exam();
void Ctr_CUp();
void Ctr_CDown();
void Spg_EReset();
void Spg_EReset1();
void Ctr_Study();
void Sty_Start();
void Sty_Up();
void Sty_Top();
void Sty_Down();
void Sty_Over();
void AT_REMEMBER();
void Main_Timer();
void Main_DService();
void U_D_Limit();
void Over_Weight();
void Clock_Num();
void Run_LIT();
void At_Stop();
void Spg_UnDir();
void Spg_Baoz();
void Spg_UnSpeed();
void At_Wait();
void Wait();
void Ready_Start();
void Re_Opendoor();
void OPENDOOR();
void OPENDOOR1();
void OPEN_1();
void CLOSEDOOR();
void Cat_Eye();
void At_Start();
void Spg_Dir();
void Spg_UnBaoz();
void Spg_Speed();
void Speed_1();
void Speed_Out();
void Spg_Run();
void Get_Call();
void C_Call();
void ReCount_Call();
void Count_Pulse();
void Main_Control();
void Control();
void Ctr_Normal();
void No_At_Floor();
void Nor_AtUnchange();
void Nor_AtChange();
void Change_Code();
void Last_Dir();
void CONTACT();
void First_Stop();
void First_Run();
void Ctr_Fire();
void Fire_Run();
void Fire_Z_Speed();
void Fire_Continue();
void Fire_Near();
void Fire_Start();
void Near_Stop();
void Main_Trouble();
void Wrong_Record();
void Trouble_1();
void Trouble_2();
void Trouble_3();
void Trouble_4();
void Trouble_5();
void Trouble_6();
void Trouble_7();
void Trouble_8();
void Trouble_9();
void c_int1();
void c_int2();
void c_int3();
void c_int4();
void c_int5();
void c_int6();
volatile unsigned int *p1,*p2,*p3,*p5,*p6,*q1,*q2,i,i9,j,k,k1,k2,k4,k5,k6,k7,k8,k9,k10,k11,k12,k16,k18,k26,a,a1,a2,b,b1,b2,b3,b4,b5,b6,b8,b9,b10,b11,b12,b13,b15,b16,b17,b18,Study_state,zz1,zz2,yj;
volatile unsigned int N_AF_state,A_S_state,A_Sa_state,A_W_state,LOPSYMBOL,CONFIRMNUM,COUNTNUM,CONFIRMNUM1,CONFIRMNUM2,STATENUM,NUMBER;
volatile unsigned int CANIDBUF,*CAN_P,CAN_BUF0,CAN_BUF1,CAN_BUF2,CAN_BUF3,CAN_BUF4,CAN_FLAG;
volatile unsigned int fire_state,CD_state,Near_state ,STATEBOX,CHANGE_TL1,TARGET_TL1;
volatile unsigned int t,call_n,Ucall[8],Dcall[8],FLOOR_A,WHJTIME,WHJTIMESYMBOL,HJTIME,zz1box1,zz1box2,zz2box1,zz2box2,yjbox1,yjbox2;
volatile unsigned int JSBAOY,BYQD,BAOYTIME,MBTIME,MBTIMESYMBOL,IOTIME,IOTIMESYMBOL,RUNTIME,RUNTIME1,RUNTIMESYMBOL,SKMTIME,KVTIME,KVTIMESYMBOL;
volatile unsigned int m,n,m1,m2,m3,DT_STATE,G4TIMESYMBOL,G4TIMES,G5TIMESYMBOL,G5TIMES,G6TIMESYMBOL,G6TIMES;
volatile unsigned int G7TIMESYMBOL,G7TIMES,IA_BUF1,IB_BUF1,IE_BUF1,IF_BUF1,IG_BUF1,IG_BUF,I1TIMESYMBOL,I1TIMES,JTIMESYMBOL;
volatile unsigned int SCIRX_FLAG,SCITX_FLAG,SCI_NUM1,SCI_NUM2,SCI_NUM3,SCI_NUM5,SCI_NUM6,SCI_NUM7;
volatile unsigned int NRUNTIME,NRUNTIMESYMBOL,NBZTIME,NBZTIMESYMBOL,NVTIME,NVTIMESYMBOL,XDTIME,XDTIMESYMBOL,SDTIME,SDTIMESYMBOL;
volatile unsigned int SCIRXID,SCI_BUF,SCI_BUF1,*SCI_SP,TSCIOPEN,SCITIMER,PULSE_NUM1,PULSE_NUM2,PULSE_NUM3,*SCI_P;
volatile unsigned int TXENABLE,h1,T10MS,TXIDFLAG,TXIDDATA,PCDDELAY,PCDDELAY1,PCT20MS,STYOVER;
volatile unsigned int timeint,BZTIME,BZTIMESYMBOL,mach,mach_state,CB1TIME,CB1TIMESYMBOL;
volatile unsigned int SCITIME,CLOSERECEIVE,CLOSETIME1,CLOSETIME,OPENTIME,OPENTIME1,INTT30MS;
volatile unsigned int SCIT10MS,SCIT20MS,SCIT1000MS,JACK,JACK1,INTDELAY,INTDELAY1,LIT1,LIT2,LIT1SYMBOL,LIT2SYMBOL,LIT1TIME,LIT2TIME,FX,FXTIME,FXSYMBOL;
volatile unsigned int TX_FLAG,SCI_NUM4,*SCI_SP1,MODI_PARA,TIMER_CHECK,MODI_PARA1,MODI_PARA2,MODI_PARA3;
extern unsigned int IMR,IFR,IODATA,IOBUF; /* CPU中断寄存器 */
extern unsigned int SCSR1,SCSR2,PIVR;
extern unsigned int WDCNTR,WDKEY,WDCR; /* 程序监视控制寄存器*/
extern unsigned int XINT1CR,XINT2CR; /* 外部中断控制寄存器*/
extern unsigned int MCRA,MCRB,MCRC,PEDATDIR,PFDATDIR; /*Digital I/O registers*/
extern unsigned int PADATDIR,PBDATDIR,PCDATDIR,PDDATDIR;
extern unsigned int SCICCR,SCICTL1,SCIHBAUD,SCILBAUD,SCICTL2;/*SCI registers*/
extern unsigned int SCIRXST,SCIRXEMU,SCIRXBUF,SCITXBUF,SCIPRI;
extern unsigned int CANMDER,CANTCR,CANRCR,CANMCR,CANBCR2,CANBCR1;/*CAN Registers*/
extern unsigned int CANESR,CANGSR,CANCEC,CANIFR,CANIMR,CANLAM0H,CANLAM0L;
extern unsigned int CANLAM1H,CANLAM1L;
extern unsigned int CANID0L,CANID0H,CANCTRL0,CANBX0A,CANBX0B,CANBX0C,CANBX0D;
extern unsigned int CANID1L,CANID1H,CANCTRL1,CANBX1A,CANBX1B,CANBX1C,CANBX1D;
extern unsigned int CANID2L,CANID2H,CANCTRL2,CANBX2A,CANBX2B,CANBX2C,CANBX2D;
extern unsigned int CANID3L,CANID3H,CANCTRL3,CANBX3A,CANBX3B,CANBX3C,CANBX3D;
extern unsigned int CANID4L,CANID4H,CANCTRL4,CANBX4A,CANBX4B,CANBX4C,CANBX4D;
extern unsigned int CANID5L,CANID5H,CANCTRL5,CANBX5A,CANBX5B,CANBX5C,CANBX5D;
extern unsigned int GPTCONA,T1CNT,T1CMPR,T1PR,T1CON,T2CNT,T2CMPR,T2PR,T2CON;/*事件A*/
extern unsigned int EVAIMRA,EVAIMRB,EVAIMRC,EVAIFRA,EVAIFRB,EVAIFRC;
extern unsigned int COMCONA,ACTRA,DBTCONA,CMPR1,CMPR2,CMPR3;
extern unsigned int CAPCONA,CAPFIFOA,CAP1FIFO,CAP2FIFO,CAP3FIFO;
extern unsigned int CAP1FBOT,CAP2FBOT,CAP3FBOT;
extern unsigned int GPTCONB,T3CNT,T3CMPR,T3PR,T3CON,T4CNT,T4CMPR,T4PR,T4CON;/*事件B*/
extern unsigned int EVBIMRA,EVBIMRB,EVBIMRC,EVBIFRA,EVBIFRB,EVBIFRC;
extern unsigned int COMCONB,ACTRB,DBTCONB,CMPR4,CMPR5,CMPR6;
extern unsigned int CAPCONB,CAPFIFOB,CAP4FIFO,CAP5FIFO,CAP6FIFO;
extern unsigned int CAP4FBOT,CAP5FBOT,CAP6FBOT;
extern unsigned int SPICCR,SPICTL,SPIBRR;
extern unsigned int SPICCR,SPICTL,SPISTS,SPIBRR;
extern unsigned int SPIEMU,SPIRXBUF,SPITXBUF,SPIDAT,SPIPRI ;
extern unsigned int O_DATA1,O_DATA2,O_DATA3,O_DATA4,O_DATA5;
extern unsigned int IA_BUF,IB_BUF,IC_BUF,ID_BUF,IE_BUF,IF_BUF;
extern unsigned int A0TIMESYMBOL,A1TIMESYMBOL,A2TIMESYMBOL,A3TIMESYMBOL,A4TIMESYMBOL;
extern unsigned int A5TIMESYMBOL,A6TIMESYMBOL,A7TIMESYMBOL,BTIMESYMBOL,G1TIMES;
extern unsigned int C0TIMESYMBOL,C1TIMESYMBOL,C2TIMESYMBOL,C3TIMESYMBOL,C4TIMESYMBOL;
extern unsigned int C5TIMESYMBOL,C6TIMESYMBOL,C7TIMESYMBOL,DTIMESYMBOL,G1TIMESYMBOL;
extern unsigned int E0TIMESYMBOL,E1TIMESYMBOL,E2TIMESYMBOL,E3TIMESYMBOL,E4TIMESYMBOL;
extern unsigned int E5TIMESYMBOL,E6TIMESYMBOL,E7TIMESYMBOL,FTIMESYMBOL,HTIMESYMBOL;
extern unsigned int A0TIMES,A1TIMES,A2TIMES,A3TIMES,A4TIMES,A5TIMES,A6TIMES,A7TIMES;
extern unsigned int C0TIMES,C1TIMES,C2TIMES,C3TIMES,C4TIMES,C5TIMES,C6TIMES,C7TIMES;
extern unsigned int E0TIMES,E1TIMES,E2TIMES,E3TIMES,E4TIMES,E5TIMES,E6TIMES,E7TIMES;
extern unsigned int AOPSYMBOL,BOPSYMBOL,COPSYMBOL,DOPSYMBOL,EOPSYMBOL,FOPSYMBOL,GOPSYMBOL;
extern unsigned int HOPSYMBOL,IOPSYMBOL,JOPSYMBOL,KOPSYMBOL,SAVE_FOPSY,SAVE_FLOOR;
extern unsigned int IN_AB,IN_BB,IN_CB,OUT_AB,OUT_AB,OUT_AB,REDOOR_N,T100MS,T1S;
extern unsigned int TIMEUP1,DLY1S,FLOOR_N,FLOOR_MIX,FLOOR_MAX,FLOOR_CALL,FLOOR_BDIR;
extern unsigned int WRONG_STATE,WRONG_DATA,COUNT_CALL,FR_state,RUN_TL,CHANGE_TL;
extern unsigned int TARGET_TL,FLOOR_FIRE,SP1_PULSE,SP2_PULSE,RUN_NUM,RUN_NUM1,RUN_TIME;
extern unsigned int CLOCK,ALL_PULSE,ALL_PULSE1,C1_PULSE,C2_PULSE,SP3_PULSE;
extern unsigned int UPDATE0,DOWNDATE0,BOXDATE0,BUPDATE0,BDOWNDATE0,UPPULSE1,TR_STATUS ;
extern unsigned int DOOR,FLOOROFFSET;
extern unsigned int PASSWORD1,SPECIAL,FIRST_LOU,RUN_STATION;
extern unsigned int v1,v2,v3,v4,v5,CAN_SIGN,G2TIMESYMBOL,G2TIMES,G3TIMESYMBOL,G3TIMES;
extern unsigned int CHECKCODE1,CHECKCODE2;
main()
{
SYS_init();
EVB_init();/*定时器*/
EVA_init();/*光电编码器*/
IO_init();
CAN_init();
SCI_init();
SPI_init();
DIS_SROM();
Meomory_init();
First_Memory();
// First_adjust();
// Tiao_Shi(); /*往0086里写0086,往0088里写0088*/
// Tiao_Shi1(); /*往0082里写0008*/
// Save_Data1(); /*断电保存*/
// Save_Data2(); /*自学习后保存*/
// Save_Data3(); /*液晶修改后保存*/
while((CHECKCODE1!=0x0086)||(CHECKCODE2!=0x0088))
{
Load_Srom(); /*参数调入内存*/
}
asm(" CLRC INTM ");/*开中断*/
asm(" NOP ");
asm(" NOP ");
asm(" NOP ");
asm(" NOP ");
do
{
Watch_dog();
Io_Receive();
can_read();
if(CLOSERECEIVE==0)
{
Sci_Receive1();
}
Can_Receive();
Main_Timer();
Main_DService();
Watch_dog();
if(FXTIME==1)
{
FLOOR_BDIR&=0x00fd; /*置第一次运行标志*/
}
Main_Control();
Watch_dog();
//Main_Trouble();
Sci_TxAdj();
SCI_SendAAA();
Watch_dog();
if(b4>=5) /*50ms发送一次数据*/
{
asm(" SETC INTM ");/*关闭所有可屏蔽中断*/
CANTCR|=0x0FF0F;
CAN_init();
switch(k8)
{
case 1:
{
Can_Send1();
k8=2;
}break;
case 2:
{
Can_Send2();
k8=3;
}break;
case 3:
{
Can_Send3();
k8=1;
}break;
default:k8=1;break;
}
b4=0;
asm(" CLRC INTM ");/*开中断*/
}
k16++;
if(k16>6) /*主循环6次发送一次*/
{
Io_Send();
k16=0;
}
Data_Store();
timeint++;
Timeprotect();
}
while(1);
}
void Timeprotect()
{
if(timeint>=1000)
{
asm(" B 0000H ");
}
}
void Data_Store()
{
if((PCDATDIR&0x0001)==0)
{
k2++; /*监控5次低电平*/
k7=300; /*定时3s*/
if(k2>=5) /*低电平监控5次到*/
{
k2=0;
asm(" SETC INTM ");/*关闭所有可屏蔽中断*/
Save_Srom();
asm(" CLRC INTM ");/*开中断*/
}
}
else
{
k2=0;
if(k7==0) /*定时3s到*/
{
JOPSYMBOL&=0x0FFFE; /*清调电参数已保存*/
k7=300;
}
}
}
void SCI_SendAAA()
{
if(INTDELAY1==1)
{
INTDELAY1=0; /*清30ms到标志*/
INTDELAY=0; /*关掉中断延时后10毫秒定时器*/
JACK=0; /*关掉1秒定时器*/
SCITIME=0; /*清1秒到标志*/
PCDATDIR|=0x0020; /*485 send enable*/
PDDATDIR|=0x0001; /*disable 485 receive*/
SCICTL1&=0x0FFFE; /*disable SCI data receive*/
SCICTL1|=0x0002; /*enable SCI data send*/
OPENTIME=1; /*开发送延时*/
}
if(SCITIME==1) /*1秒到*/
{
CLOSERECEIVE=1; /*关查询接收*/
SCITIME=0; /*清1秒到标志*/
JACK=0; /*关掉1秒定时器*/
PCDATDIR|=0x0020; /*485 send enable*/
PDDATDIR|=0x0001; /*disable 485 receive*/
SCICTL1&=0x0FFFE; /*disable SCI data receive*/
SCICTL1|=0x0002; /*enable SCI data send*/
OPENTIME=1; /*开发送延时*/
}
if(OPENTIME1==1) /*开发送延时10毫秒到*/
{
OPENTIME=0; /*关发送延时10毫秒定时器*/
asm(" SETC INTM ");/*关闭所有可屏蔽中断*/
SCI_SendABC();
asm(" CLRC INTM ");/*开中断*/
}
if(CLOSETIME1==1) /*关发送延时20毫秒到*/
{
CLOSETIME1=0; /*清20m秒到标志*/
CLOSETIME=0; /*关发送延时20毫秒定时器*/
PCDATDIR&=0x0FFDF; /*disable 485 data send*/
PDDATDIR&=0x0FFFE; /*enable 485 receive*/
SCICTL1&=0x0FFFD; /*disable SCI send*/
SCICTL1|=0x0001; /*enable SCI receive*/
JACK=1; /*打开1秒定时器*/
CLOSERECEIVE=0; /*开查询接收*/
}
}
void SCI_SendABC()
{
switch(SCITX_FLAG)
{
case 1: /*发送实时状态数据ID=1*/
{
SCITX_FLAG=0;
SCICTL1|=0x0008; /*set send wake*/
SCITXBUF=0x0001; /*send ID*/
while((SCICTL2&0x0080)==0) /*is SCITXBUF empty?*/
{}
SCICTL1&=0x0FFF7; /*clear send wake*/
SCI_SP1=(unsigned int*)0x0370;
SCI_NUM4=1;
TX_FLAG=1;
}break;
case 2: /*发楼层脉冲数*/
{
SCITX_FLAG=0;
SCICTL1|=0x0008; /*set send wake*/
SCITXBUF=0x0003; /*send ID*/
while((SCICTL2&0x0080)==0) /*is SCITXBUF empty?*/
{}
SCICTL1&=0x0FFF7; /*clear send wake*/
SCI_SP1=(unsigned int*)0x03AA;
SCI_NUM4=1;
TX_FLAG=2;
}break;
case 5: /*发故障状态*/
{
SCITX_FLAG=0;
SCICTL1|=0x0008; /*set send wake*/
SCITXBUF=0x0006; /*send ID*/
while((SCICTL2&0x0080)==0) /*is SCITXBUF empty?*/
{}
SCICTL1&=0x0FFF7; /*clear send wake*/
SCI_SP1=(unsigned int*)0x03AA;
SCI_NUM4=1;
TX_FLAG=5;
}break;
case 11: /*发送29个数据*/
{
SCITX_FLAG=0;
SCICTL1|=0x0008; /*set send wake*/
SCITXBUF=0x000C; /*send ID*/
while((SCICTL2&0x0080)==0) /*is SCITXBUF empty?*/
{}
SCICTL1&=0x0FFF7; /*clear send wake*/
SCI_SP1=(unsigned int*)0x0370;
SCI_NUM4=1;
TX_FLAG=11;
}break;
case 8: /*发送呼叫应答*/
{
SCITX_FLAG=0;
SCICTL1|=0x0008; /*set send wake*/
SCITXBUF=0x0008; /*send ID*/
while((SCICTL2&0x0080)==0) /*is SCITXBUF empty?*/
{}
SCICTL1&=0x0FFF7; /*clear send wake*/
TX_FLAG=8;
}break;
}
switch(TX_FLAG)
{
case 1: /*发送实时状态数据ID=1*/
{
if(SCI_NUM4<=60)
{
SCITXBUF=*SCI_SP1;
while((SCICTL2&0x0080)==0)
{}
SCI_SP1++;
SCI_NUM4++;
if(SCI_NUM4==60)
{
SCITX_FLAG=1;
TX_FLAG=0;
OPENTIME1=0; /*清开发送延时10毫秒到标志*/
CLOSETIME=1; /*开关发送延时*/
}
}
}break;
case 2: /*发楼层脉冲数*/
{
if(SCI_NUM4<=10)
{
SCITXBUF=*SCI_SP1;
while((SCICTL2&0x0080)==0)
{}
SCI_SP1++;
SCI_NUM4++;
if(SCI_NUM4==10)
{
SCITX_FLAG=2;
TX_FLAG=0;
OPENTIME1=0; /*清开发送延时10毫秒到标志*/
CLOSETIME=1; /*开关发送延时*/
}
}
}break;
case 5: /*发故障状态*/
{
if(SCI_NUM4<=10)
{
SCITXBUF=*SCI_SP1;
while((SCICTL2&0x0080)==0)
{}
SCI_SP1++;
SCI_NUM4++;
if(SCI_NUM4==10)
{
SCITX_FLAG=5;
TX_FLAG=0;
OPENTIME1=0; /*清开发送延时10毫秒到标志*/
CLOSETIME=1; /*开关发送延时*/
}
}
}break;
case 11: /*发29个数据*/
{
if(SCI_NUM4<=31)
{
SCITXBUF=*SCI_SP1;
while((SCICTL2&0x0080)==0)
{}
SCI_SP1++;
SCI_NUM4++;
if(SCI_NUM4==31)
{
SCITX_FLAG=11;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -