__c51_2

来自「一整套电梯控制器源程序」· 代码 · 共 890 行 · 第 1/2 页

TXT
890
字号
                 enum Direct{ D_Down=0, D_Up };   enum DoorActionState{ Door_OpenOK=0,	  Door_CloseOK,	  Door_Opening,	  Door_Closing,	  Door_ERROR };   enum{ Weight_Null,	  Weight_Light,	  Weight_Heavy,	  Weight_Full,	  Weight_Over,	  Weight_ERROR };   struct tag_InterData{  unsigned char	bFloorCanStop;	   unsigned char	bVeto;			   unsigned char    b2FloorMove;	   unsigned int	nTime;			   unsigned char	cWeight;		   unsigned char	bSameDirection;	   unsigned char	cStopCount;		   unsigned char	cPRINo;			  };    struct tag_DT_SCC{  unsigned char	ReadFlg;							   unsigned char	m_ReadBuf[32];	   unsigned char	dwReadReqSize;					    unsigned char	nReadCount;   unsigned char	WriteFlg;						   unsigned char	m_WriteBuf[32];   unsigned char	dwWriteReqSize;				    unsigned char	nWriteCount; };        sbit P3_0=P3^0; sbit P3_1=P3^1; sbit P3_2=P3^2; sbit P3_3=P3^3; sbit P3_4=P3^4; sbit P3_5=P3^5;    extern xdata unsigned char *can3_cs;                    extern xdata unsigned char *can2_cs;                    extern xdata unsigned char *can1_cs;                    extern xdata unsigned char *can0_cs;                                 extern struct tag_L_Data			*m_pL_Data;				   extern struct tag_E_InputData		*m_pE_InputData;		   extern struct tag_E_OutputData		*m_pE_OutputData;		   extern struct tag_Temp_Timer			*m_pTimer;				     extern unsigned char			m_nNextStopLIdx[8];  extern unsigned char			m_bDirect[8];  extern struct tag_InterData		m_InterData[8];				   extern unsigned char			m_cCurStageStartFloor[8];	   extern unsigned char			m_cOvertime[8];				   extern unsigned char            m_CalUpLIdx;  extern unsigned char            m_CalDownLIdx;    extern unsigned char m_year;                   	   extern unsigned char m_month;                  	   extern unsigned char m_date;                   	   extern unsigned char m_time;                   	   extern unsigned char m_minute;                 	   extern unsigned char m_set_time;               	   extern unsigned char m_read_time;              	     extern unsigned char sbuf_rec;                 	   extern unsigned char m_get_senddata_flg;			   extern unsigned char m_comm_enable_flg;         	   extern unsigned char m_host_flg;						   extern unsigned int  m_ST_60s_count;            	   extern unsigned char m_comm_data_flg;					   extern unsigned char m_comm_60sover_flg;        	   extern unsigned char m_msg_monitor_flg;		    	   extern unsigned char m_msg_quit_flg; 					   extern unsigned char m_msg_set_flg;			    	   extern unsigned char m_monitor_delay_flg;			   extern unsigned char m_monitor_delay_count;			   extern unsigned char m_active_idx;						   extern unsigned char m_add_type_idx;					   extern unsigned char m_resolve_flg;					    extern xdata unsigned int  m_monitor_ad[5];    	   extern xdata unsigned char m_monitor_type[5];  	   extern xdata struct tag_DT_SCC m_scc;    extern xdata unsigned char m_restore_flg;     		    extern xdata unsigned char m_save_flg;				    extern xdata unsigned char m_factory_flg;			   extern xdata unsigned char m_save_over_flg;			    extern xdata unsigned char m_once_param_over_flg;         extern xdata unsigned int canx_cs[8];					    extern unsigned char e_out_call_flag;                      extern unsigned char m_state_20ms;                       extern unsigned char can_send_count;                     extern unsigned char e_lamp_call_flag;                     extern unsigned char e_display_reflash_floor[8];              extern unsigned char e_up_down;                            extern unsigned char e_frame_number;                       extern unsigned char e_online[8];                          extern unsigned char bdata abit;  extern bit abit_0;                             extern bit abit_1;  extern bit abit_2;  extern bit abit_3;  extern bit abit_4;  extern bit abit_5;  extern bit abit_6;  extern bit abit_7;   extern unsigned char bdata abit0;  extern bit abit0_0;  extern bit abit0_1;  extern bit abit0_2;  extern bit abit0_3;  extern bit abit0_4;  extern bit abit0_5;  extern bit abit0_6;  extern bit abit0_7;   struct group_out {  unsigned char call_up_out[6];  unsigned char call_down_out[6];   };   extern xdata struct group_out group_assign[8];  extern unsigned char choose_out[8];  extern unsigned char yes_no[8];  extern unsigned int e_online_time_count[4];            extern unsigned char e_online_flag[4];               extern unsigned int e_single_comm_count[4];            extern unsigned int e_group_comm_count[4];             extern unsigned char e_1_second_flag[4];                 extern unsigned char m_SendOpenDoorFlg[8];		   extern unsigned char m_LastDoorState[8];		     extern unsigned char m_SendStaticInSelDataFlg[8];		   extern unsigned char m_IsExistWaiInFlg;    extern unsigned char m_SendPeekInSelDataFlg[8];		     extern unsigned int  m_nTestTimer;   void maininit(void);   void main_process(); void WithdrawVetoEle(void); void WithdrawOutCall(void);    void InitData(void);    unsigned char GetMinBottomFloor();  unsigned char GetMaxTopFloor();  unsigned char GetCanDistEleCount(); void SetPartInterVal(void); void SetInterVal_FloorCanStop(unsigned char cLIdx, unsigned char updown_flg); void SetInterVal_2FloorMove(unsigned char cLIdx, unsigned char updown_flg); void SetInterVal_SameDirection(unsigned char cLIdx, unsigned char updown_flg);  unsigned char GetDoorOvertime(unsigned char cEIdx);   void UpdateDoorOvertimer(void);    unsigned char GetDoorActionState(unsigned char cEIdx);   void DistributeEle(void);   void SetOutCallLight(unsigned char cLIdx, unsigned char updown_flg, unsigned char bVal); void SetOutCallDistribution(unsigned char cLIdx, unsigned char updown_flg, unsigned char bVal);  unsigned char IsWithdrawOutLight(unsigned char cLIdx, unsigned char updown_flg);    unsigned char GetNextStopLIdx(unsigned char cEIdx, unsigned char cStartFloorIdx, unsigned char bStartDirect, unsigned char *bDirect, unsigned char *cStartSearchEnd);  unsigned char GetNoDirectEleTrend(unsigned char cEIdx); void OptimizeArrange(unsigned char cLIdx, unsigned char updown_flg);   void SetStaticStopFloor(); void SetPeekStopFloor();  unsigned char IsPeekTime(struct tag_L_SysTime *pSysTime, struct tag_L_GaoFeng *pGaoFeng);  unsigned char IsExistCurFloorUp(unsigned char cEIdx);  unsigned char IsExistCurFloorDown(unsigned char cEIdx);   void  time_x1203(void);  unsigned char eread(unsigned char t_addr1);                       void  ewrite(unsigned char t_addr2,unsigned char t_data);           void serial_comm(void); void comm_check(void); void monitor_rec(void);                         void message_quit(void);                          void command(unsigned char *pBuf);			  void monitor_send(void); void make_send_buf(void);  unsigned char __toascii(unsigned char c);  unsigned char __tofig(unsigned char cAscii);  unsigned int GetValidAdd(unsigned char *pBuf); void SetParamVal(unsigned char *pSrcBuf, unsigned char *pDestBuf, unsigned char type); void serial_command_resolve(void); void serial_make_senddata(void);   void data_init(void); void orgdata_init(void);							  void orgdata_init_total(void); void orgdata_init_input(void); void orgdata_init_output(void); void GetUserParamSaveOverFlg(); void SetUserParamSaveOverFlg();   void restore_user_param(void); void save_user_param(void); void restore_factory_param(void);  unsigned char erase(unsigned int addr);  unsigned char writef(unsigned int x,unsigned char y);   void can_init(unsigned int point);          					  void can_reset(void); void can_call_in(unsigned char a);             can_receive_more(unsigned char a);        can_receive_only(unsigned char a);        clear_unknow_code(unsigned char a);       void can_call_assign();                can_call_lamp();                   #line 1 ".\param_save_restore.c" /0   void restore_factory_param(void) { if(m_factory_flg==1){             orgdata_init(); m_factory_flg=0; } }  void restore_user_param(void)           { unsigned int data i;    unsigned char xdata *data p;                                                         unsigned char xdata *data s;   unsigned int xdata count=sizeof(struct tag_L_Data)+sizeof(struct tag_E_InputData)+sizeof(struct tag_E_OutputData)+sizeof(struct tag_Temp_Timer);  if(m_restore_flg==1){              if(m_save_over_flg==1){	         EA=0; p=0xa000;                     s=0x1000;					      for(i=0;i<count;i++){         *(s+i)=*(p+i);  }  m_restore_flg=0;   EA=1;   }       }   }  void save_user_param(void)          {  unsigned int xdata i;  unsigned char xdata *s=0x1000;  unsigned int xdata count=sizeof(struct tag_L_Data)+sizeof(struct tag_E_InputData)+sizeof(struct tag_E_OutputData)+sizeof(struct tag_Temp_Timer); if(m_save_flg==1){       		  EA=0; erase(0xa000); for(i=0;i<count;i++) writef((0xa000+i),*(s+i));      m_save_flg=0;          		  m_save_over_flg=1;	  		  SetUserParamSaveOverFlg(); EA=1;       } }   unsigned char erase(unsigned int addr)	                                                         {		unsigned char xdata *s; unsigned char b,c,d,e; s=(0x555+addr); *s=0xaa; s=(0xaaa+addr); *s=0x55; s=(0x555+addr); *s=0x80; s=(0x555+addr); *s=0xaa; s=(0xaaa+addr); *s=0x55; s=addr; *s=0x30; d=0; e=0; do{b=*s; c=b&0x20; b=b&0x80;  if(b==0x80) d=1; if(c==0x20) e=1; }while((d==0)&&(e==0)); if(e==1) {b=*s; b=b&0x80;  if(b==0x80) d=1; s=0x555+addr; *s=0xf0; } return(d); }   unsigned char writef(unsigned int x,unsigned char y)	                                               {  unsigned char xdata *s; unsigned char xdata a,b,c,d,e;  unsigned int addr=0;   if((x>=0x4000)&&(x<0x6000)) addr=0x4000; if((x>=0x6000)&&(x<0x8000)) addr=0x6000; if((x>=0x8000)&&(x<0xa000)) addr=0x8000; if((x>=0xa000)&&(x<0xc000)) addr=0xa000; if(x>=0xc000) addr=0xc000; s=0x555+addr; *s=0xaa; s=0xaaa+addr; *s=0x55; s=0x555+addr; *s=0xa0; s=x; *s=y; d=e=0; a=y; do {  b=*s; c=b&0x20;  if(b==a) d=1; else if(c==0x20) e=1;  } while((d==0)&&(e==0)); if(e==1) { b=*s;  if(b==a) d=1; s=0x555+addr;  *s=0xf0; }  if(d==1) return(d); else {s=0x555+addr; *s=0xaa; s=0xaaa+addr; *s=0x55; s=0x555+addr; *s=0xa0; s=x; *s=y; d=e=0; a=y; do {  b=*s; c=b&0x20;  if(b==a) d=1; else if(c==0x20) e=1;  } while((d==0)&&(e==0)); if(e==1) { b=*s;  if(b==a) d=1; s=0x555+addr;  *s=0xf0; }  } return(d); }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?