⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件.c

📁 单片机TCP IP software
💻 C
📖 第 1 页 / 共 5 页
字号:
							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 + -