www.pudn.com > rtu.rar > R13.C


// 
// File name =R13.C   R13应用主程序模块 
// compile with model(nt-ef) control 
// #pragma model(nt-ef) 
// mk196 
// 设计 何风涛 
 
#include  "CLASS.h" 
 
const	  unsigned char     ccr[6] = {0xef,0x20,0xdf,0x20,0xf9,0x20}; 
#pragma   locate(ccr=0xff2018) 
 
register	    int   DCZO; 
#pragma   locate(DCZO=0x50) 
register	    int   DCSK; 
#pragma   locate(DCSK=0x52) 
register	    int   TEMPERATURE; 
#pragma   locate(TEMPERATURE=0x54) 
register  unsigned  int   ADWINDOWS; 
#pragma   locate(ADWINDOWS=0x56) 
register	    int   COSVL; 
#pragma   locate(COSVL=0x58) 
register	    int   SINVL; 
#pragma   locate(SINVL=0x5A) 
register  unsigned  int   WORK; 
#pragma   locate(WORK=0x5C) 
register  unsigned  int   WTMP; 
#pragma   locate(WTMP=0x5E) 
register  unsigned  long  SUX; 
#pragma   locate(SUX=0x60) 
register  unsigned  long  SUY; 
#pragma   locate(SUY=0x64) 
register	    long  SUP; 
#pragma   locate(SUP=0x68) 
register	    long  SUQ; 
#pragma   locate(SUQ=0x6C) 
register	    int   ZREAL; 
#pragma   locate(ZREAL=0x70) 
register	    int   ZIMAG; 
#pragma   locate(ZIMAG=0x72) 
register	    int   TANVL; 
#pragma   locate(TANVL=0x74) 
register	    int   ARCVL; 
#pragma   locate(ARCVL=0x76) 
register  unsigned  long  XBSUM; 
#pragma   locate(XBSUM=0x78) 
register  unsigned  long  SUN; 
#pragma   locate(SUN=0x7C) 
 
unsigned  char	CAN0_CTL; 
#pragma   locate(CAN0_CTL=0x1200) 
unsigned  char	CAN0_CMD; 
#pragma   locate(CAN0_CMD=0x1201) 
unsigned  char	CAN0_STS; 
#pragma   locate(CAN0_STS=0x1202) 
unsigned  char	CAN0_INT; 
#pragma   locate(CAN0_INT=0x1203) 
unsigned  char	CAN0_ACR; 
#pragma   locate(CAN0_ACR=0x1204) 
unsigned  char	CAN0_AMR; 
#pragma   locate(CAN0_AMR=0x1205) 
unsigned  char	CAN0_BTR0; 
#pragma   locate(CAN0_BTR0=0x1206) 
unsigned  char	CAN0_BTR1; 
#pragma   locate(CAN0_BTR1=0x1207) 
unsigned  char	CAN0_OCR; 
#pragma   locate(CAN0_OCR=0x1208) 
unsigned  char	CAN0_TEST; 
#pragma   locate(CAN0_TEST=0x1209) 
unsigned  char	TCAN0_ID; 
#pragma   locate(TCAN0_ID=0x120A) 
unsigned  char	TCAN0_LEN; 
#pragma   locate(TCAN0_LEN=0x120B) 
unsigned  char	TCAN0_INDX; 
#pragma   locate(TCAN0_INDX=0x120C) 
unsigned  char	TCAN0_BYT0; 
#pragma   locate(TCAN0_BYT0=0x120D) 
unsigned  char	TCAN0_BYT1; 
#pragma   locate(TCAN0_BYT1=0x120E) 
unsigned  char	TCAN0_BYT2; 
#pragma   locate(TCAN0_BYT2=0x120F) 
unsigned  char	TCAN0_BYT3; 
#pragma   locate(TCAN0_BYT3=0x1210) 
unsigned  char	TCAN0_BYT4; 
#pragma   locate(TCAN0_BYT4=0x1211) 
unsigned  char	TCAN0_BYT5; 
#pragma   locate(TCAN0_BYT5=0x1212) 
unsigned  char	TCAN0_BYT6; 
#pragma   locate(TCAN0_BYT6=0x1213) 
unsigned  char	RCAN0_ID; 
#pragma   locate(RCAN0_ID=0x1214) 
unsigned  char	RCAN0_LEN; 
#pragma   locate(RCAN0_LEN=0x1215) 
unsigned  char	RCAN0_INDX; 
#pragma   locate(RCAN0_INDX=0x1216) 
unsigned  char	RCAN0_BYT0; 
#pragma   locate(RCAN0_BYT0=0x1217) 
unsigned  char	RCAN0_BYT1; 
#pragma   locate(RCAN0_BYT1=0x1218) 
unsigned  char	RCAN0_BYT2; 
#pragma   locate(RCAN0_BYT2=0x1219) 
unsigned  char	RCAN0_BYT3; 
#pragma   locate(RCAN0_BYT3=0x121A) 
unsigned  char	RCAN0_BYT4; 
#pragma   locate(RCAN0_BYT4=0x121B) 
unsigned  char	RCAN0_BYT5; 
#pragma   locate(RCAN0_BYT5=0x121C) 
unsigned  char	RCAN0_BYT6; 
#pragma   locate(RCAN0_BYT6=0x121D) 
unsigned  char	CAN0_DEMO; 
#pragma   locate(CAN0_DEMO=0x121E) 
unsigned  char	CAN0_CDR; 
#pragma   locate(CAN0_CDR=0x121F) 
unsigned  char	CAN1_CTL; 
#pragma   locate(CAN1_CTL=0x1300) 
unsigned  char	CAN1_CMD; 
#pragma   locate(CAN1_CMD=0x1301) 
unsigned  char	CAN1_STS; 
#pragma   locate(CAN1_STS=0x1302) 
unsigned  char	CAN1_INT; 
#pragma   locate(CAN1_INT=0x1303) 
unsigned  char	CAN1_ACR; 
#pragma   locate(CAN1_ACR=0x1304) 
unsigned  char	CAN1_AMR; 
#pragma   locate(CAN1_AMR=0x1305) 
unsigned  char	CAN1_BTR0; 
#pragma   locate(CAN1_BTR0=0x1306) 
unsigned  char	CAN1_BTR1; 
#pragma   locate(CAN1_BTR1=0x1307) 
unsigned  char	CAN1_OCR; 
#pragma   locate(CAN1_OCR=0x1308) 
unsigned  char	CAN1_TEST; 
#pragma   locate(CAN1_TEST=0x1309) 
unsigned  char	TCAN1_ID; 
#pragma   locate(TCAN1_ID=0x130A) 
unsigned  char	TCAN1_LEN; 
#pragma   locate(TCAN1_LEN=0x130B) 
unsigned  char	TCAN1_INDX; 
#pragma   locate(TCAN1_INDX=0x130C) 
unsigned  char	TCAN1_BYT0; 
#pragma   locate(TCAN1_BYT0=0x130D) 
unsigned  char	TCAN1_BYT1; 
#pragma   locate(TCAN1_BYT1=0x130E) 
unsigned  char	TCAN1_BYT2; 
#pragma   locate(TCAN1_BYT2=0x130F) 
unsigned  char	TCAN1_BYT3; 
#pragma   locate(TCAN1_BYT3=0x1310) 
unsigned  char	TCAN1_BYT4; 
#pragma   locate(TCAN1_BYT4=0x1311) 
unsigned  char	TCAN1_BYT5; 
#pragma   locate(TCAN1_BYT5=0x1312) 
unsigned  char	TCAN1_BYT6; 
#pragma   locate(TCAN1_BYT6=0x1313) 
unsigned  char	RCAN1_ID; 
#pragma   locate(RCAN1_ID=0x1314) 
unsigned  char	RCAN1_LEN; 
#pragma   locate(RCAN1_LEN=0x1315) 
unsigned  char	RCAN1_INDX; 
#pragma   locate(RCAN1_INDX=0x1316) 
unsigned  char	RCAN1_BYT0; 
#pragma   locate(RCAN1_BYT0=0x1317) 
unsigned  char	RCAN1_BYT1; 
#pragma   locate(RCAN1_BYT1=0x1318) 
unsigned  char	RCAN1_BYT2; 
#pragma   locate(RCAN1_BYT2=0x1319) 
unsigned  char	RCAN1_BYT3; 
#pragma   locate(RCAN1_BYT3=0x131A) 
unsigned  char	RCAN1_BYT4; 
#pragma   locate(RCAN1_BYT4=0x131B) 
unsigned  char	RCAN1_BYT5; 
#pragma   locate(RCAN1_BYT5=0x131C) 
unsigned  char	RCAN1_BYT6; 
#pragma   locate(RCAN1_BYT6=0x131D) 
unsigned  char	CAN1_DEMO; 
#pragma   locate(CAN1_DEMO=0x131E) 
unsigned  char	CAN1_CDR; 
#pragma   locate(CAN1_CDR=0x131F) 
unsigned  char	     portio0[0x200]; 
#pragma   locate(portio0=0x001000) 
unsigned  char	     portio1[0x60]; 
#pragma   locate(portio1=0x001220) 
unsigned  char	     portio2[0x60]; 
#pragma   locate(portio2=0x0012A0) 
unsigned  char	     portio3[0x60]; 
#pragma   locate(portio3=0x001320) 
unsigned  int	     AD_DATA; 
#pragma   locate(AD_DATA=0x0013e4) 
unsigned  char	     portio4[0xC1A]; 
#pragma   locate(portio4=0x0013E6) 
 
//------------------Flash-------Define----------------------------------------- 
unsigned  int	     flashid[2]; 
#pragma   locate(flashid=PSD_FLASH_BASE) 
 
unsigned  int	     workmode; 
#pragma   locate(workmode=PSD_FLASH_BASE+4) 
 
struct	  TComSet    comset[18]; 
#pragma   locate(comset=PSD_FLASH_BASE+6) 
 
unsigned  int	     krpm[16];//开入屏敝字 
#pragma   locate(krpm=PSD_FLASH_BASE+6+540) 
 
unsigned  int	     krfs[256];//开入发送字 
#pragma   locate(krfs=PSD_FLASH_BASE+6+540+32) 
 
unsigned  int	     yxnum;//开入板个数 
#pragma   locate(yxnum=PSD_FLASH_BASE+0x442) 
 
unsigned  int	     ymnum; 
#pragma   locate(ymnum=PSD_FLASH_BASE+0x444) 
 
unsigned  int	     kcnum;//开出板个数 
#pragma   locate(kcnum=PSD_FLASH_BASE+0x446) 
 
unsigned  int	     mrnum;//模入板个数 
#pragma   locate(mrnum=PSD_FLASH_BASE+0x448) 
 
unsigned  int	     bvtm[256];//变位延时 
#pragma   locate(bvtm=PSD_FLASH_BASE+0x44A) 
 
unsigned  int	     kgbf[16];//常开常闭屏闭字 
#pragma   locate(kgbf=PSD_FLASH_BASE+0x64A) 
 
unsigned  int	     ymfssum; 
#pragma   locate(ymfssum=PSD_FLASH_BASE+0x66A) 
 
unsigned  int	     ymfstable[144]; 
#pragma   locate(ymfstable=PSD_FLASH_BASE+0x66C) 
 
unsigned  int	     ymfscoef[144]; 
#pragma   locate(ymfscoef=PSD_FLASH_BASE+0x78C) 
 
unsigned  int	     LineSetdata[32][8]; 
#pragma   locate(LineSetdata=PSD_FLASH_BASE+0x8AC) 
 
unsigned  int	     ACCoef[64]; 
#pragma   locate(ACCoef=PSD_FLASH_BASE+0xAAC) 
 
unsigned  int	     ACType[64]; 
#pragma   locate(ACType=PSD_FLASH_BASE+0xB2C) 
 
unsigned  int	     ACValueDot[64]; 
#pragma   locate(ACValueDot=PSD_FLASH_BASE+0xBAC) 
 
unsigned  int	     ACWndValue[64]; 
#pragma   locate(ACWndValue=PSD_FLASH_BASE+0xC2C) 
 
unsigned  int	     ACZeroFlow[64]; 
#pragma   locate(ACZeroFlow=PSD_FLASH_BASE+0xCAC) 
 
	  int	     DCCoef[64]; 
#pragma   locate(DCCoef=PSD_FLASH_BASE+0xD2C) 
 
	  int	     DCZerO[64]; 
#pragma   locate(DCZerO=PSD_FLASH_BASE+0xDAC) 
 
unsigned  int	     DCWndValue[64]; 
#pragma   locate(DCWndValue=PSD_FLASH_BASE+0xE2C) 
 
unsigned  int	     LNPQSK[32][3]; 
#pragma   locate(LNPQSK=PSD_FLASH_BASE+0xEAC) 
 
unsigned  int	     LNPQARC[32][3]; 
#pragma   locate(LNPQARC=PSD_FLASH_BASE+0xF6C) 
 
unsigned  int	     DWBNO[4][32]; 
#pragma   locate(DWBNO=PSD_FLASH_BASE+0x102C) 
 
unsigned  int	     DWTYPE[4]; 
#pragma   locate(DWTYPE=PSD_FLASH_BASE+0x112C) 
 
unsigned  int	     SOEPM[16]; 
#pragma   locate(SOEPM=PSD_FLASH_BASE+0x1134) 
 
unsigned  int	     LINETYPE[32]; 
#pragma   locate(LINETYPE=PSD_FLASH_BASE+0x1154) 
 
unsigned  int	     SysCfgMode; 
#pragma   locate(SysCfgMode=PSD_FLASH_BASE+0x1194) 
 
unsigned  int	     SysNode[12]; 
#pragma   locate(SysNode=PSD_FLASH_BASE+0x1196) 
 
unsigned  int	     SysType[12]; 
#pragma   locate(SysType=PSD_FLASH_BASE+0x11AE) 
 
unsigned  int	     SysFlag[12]; 
#pragma   locate(SysFlag=PSD_FLASH_BASE+0x11C6) 
 
 
unsigned  char	     flashdata[0x8000-0x11DE]; 
#pragma   locate(flashdata=PSD_FLASH_BASE+0x11DE) 
 
union	  ADCREGTYPE fftReg[3]; 
#pragma   locate(fftReg=0x100) 
 
/*------------------------------scankr.h-----------------------------------*/ 
unsigned  long	     YSIPR; 
#pragma   locate(YSIPR =0x380) 
unsigned  char	     XMTYPE; 
#pragma   locate(XMTYPE =0x384) 
unsigned  char	     XMLOOP; 
#pragma   locate(XMLOOP =0x385) 
unsigned  char	    ST_MSL; 
#pragma   locate(ST_MSL =0x386) 
unsigned  char	    ST_MSH; 
#pragma   locate(ST_MSH =0x387) 
unsigned  char	    ST_SEC; 
#pragma   locate(ST_SEC =0x388) 
unsigned  char	    ST_MIN; 
#pragma   locate(ST_MIN =0x389) 
unsigned  char	    ST_HOU; 
#pragma   locate(ST_HOU =0x38A) 
unsigned  char	    ST_DAY; 
#pragma   locate(ST_DAY =0x38B) 
unsigned  char	    KR_NEW[30]; 
#pragma   locate(KR_NEW =0x38C) 
unsigned  char	    KR_LAST[30]; 
#pragma   locate(KR_LAST =0x3AA) 
unsigned  char	    KR_CHG[30]; 
#pragma   locate(KR_CHG =0x3C8) 
unsigned  char	    YSFG[25]; 
#pragma   locate(YSFG	=0x3E6) 
unsigned  char	    YXBUF[26]; 
#pragma   locate(YXBUF	=0xB000) 
unsigned  int	    YSCON; 
#pragma   locate(YSCON =0xB01A) 
unsigned  char	     KGBF[26]; 
#pragma   locate(KGBF=0xB01C) 
unsigned  char	     yx_num;//遥信板个数 
#pragma   locate(yx_num=0xB036) 
unsigned  char	     ym_num;//遥脉板个数 
#pragma   locate(ym_num=0xB037) 
 
 
unsigned  long	    YMBUF[80]; 
#pragma   locate(YMBUF =0xF038) 
union StTime	    ST_Time[120]; 
#pragma   locate(ST_Time=0xB178) 
unsigned  int	     BVTM[200]; 
#pragma   locate(BVTM=0xB448) 
unsigned  int	     JGTM[200]; 
#pragma   locate(JGTM=0xB5D8) 
 
unsigned  char	     tcan_num; 
#pragma   locate(tcan_num=0xBAC0) 
unsigned  int	     tcan_len; 
#pragma   locate(tcan_len=0xBAC2) 
unsigned  int	     tcanbuf_len; 
#pragma   locate(tcanbuf_len=0xBAC4) 
 
unsigned  int	     Yc_Sample; 
#pragma   locate(Yc_Sample=0xBAD0) 
unsigned  int	     LineCase; 
#pragma   locate(LineCase=0xBAD2) 
unsigned  int	     MaxLine; 
#pragma   locate(MaxLine=0xBAD4) 
unsigned  int LineNum; 
#pragma   locate(LineNum=0xBAD6) 
unsigned  char	     chan_sw[3][4]; 
#pragma   locate(chan_sw=0xBAD8) 
unsigned  int	     Point2; 
#pragma   locate(Point2=0xBAE4) 
unsigned  int	     SegFg; 
#pragma   locate(SegFg=0xBAE6) 
 
unsigned  char	  pio_dat_image[4]; 
#pragma   locate(pio_dat_image=0xBAF0) 
unsigned  char	  ptc_dat_image[4]; 
#pragma   locate(ptc_dat_image=0xBAF4) 
 
	  unsigned  char    XMFlag; 
#pragma   locate(XMFlag=0xBAF8) 
	  unsigned  char    XMCount; 
#pragma   locate(XMCount=0xBAF9) 
 
 
unsigned  char	  yktest[32]; 
#pragma   locate(yktest=0xBB00) 
 
unsigned  int	  comtest[256]; 
#pragma   locate(comtest=0xC000) 
 
 
unsigned  int	     adsample[256]; 
#pragma   locate(adsample=0xA500) 
 
 
unsigned  int	     epa0value; 
#pragma   locate(epa0value=0xA700) 
unsigned  int	     oldepa0value; 
#pragma   locate(oldepa0value=0xA702) 
unsigned  int	     epa0freq; 
#pragma   locate(epa0freq=0xA704) 
unsigned  int	     epa0error; 
#pragma   locate(epa0error=0xA706) 
unsigned  int	     errorf; 
#pragma   locate(errorf=0xA708) 
	  int	     samerror; 
#pragma   locate(samerror=0xA70A) 
 
unsigned  int	     ADBUF0[68]; 
#pragma   locate(ADBUF0=0xA780) 
unsigned  int	     ADBUF1[68]; 
#pragma   locate(ADBUF1=0xA808) 
unsigned  int	     ADBUF2[68]; 
#pragma   locate(ADBUF2=0xA890) 
unsigned  int	     ADBUF3[68]; 
#pragma   locate(ADBUF3=0xA918) 
unsigned  int	     ADBUF4[68]; 
#pragma   locate(ADBUF4=0xA9A0) 
unsigned  int	     ADBUF5[68]; 
#pragma   locate(ADBUF5=0xAA28) 
unsigned  int	     ADBUF6[68]; 
#pragma   locate(ADBUF6=0xAAB0) 
unsigned  int	     ADBUF7[68]; 
#pragma   locate(ADBUF7=0xAB38) 
unsigned  int	     ADBUF8[68]; 
#pragma   locate(ADBUF8=0xABC0) 
unsigned  int	     ADBUF9[68]; 
#pragma   locate(ADBUF9=0xAC48) 
unsigned  int	     ADBUF10[68]; 
#pragma   locate(ADBUF10=0xACD0) 
unsigned  int	     ADBUF11[68]; 
#pragma   locate(ADBUF11=0xAD58) 
unsigned  int	     ADBUF12[68]; 
#pragma   locate(ADBUF12=0xADE0) 
unsigned  int	     ADBUF13[68]; 
#pragma   locate(ADBUF13=0xAE68) 
unsigned  int	     ADBUF14[68]; 
#pragma   locate(ADBUF14=0xAEF0) 
unsigned  int	     ADBUF15[68]; 
#pragma   locate(ADBUF15=0xAF78) 
 
unsigned  int	     BvBuf[1000];    /*  1000 BV   0FFD000H-0FFEFFFH */ 
#pragma   locate(BvBuf=0xF7F800) 
struct	  SoeStruct    SoeBuf[1000]; /* 1000 SOE  0FFD000H-0FFEFFFH  */ 
#pragma   locate(SoeBuf=0xF7D000) 
 
/*  #pragma windowram(0x100-0x17f)   */ 
 
/*-----------------全局寄存器变量------------------------------------*/ 
register  unsigned  int     msvalue; 
register  unsigned  char    sp_status_image; 
 
register  unsigned  int        Pass; 
#pragma   locate(Pass=0x92) 
 
struct	  AllVarStruct	   FARDATA    *pVar; 
register  unsigned  char    Sys_Second; 
register  unsigned  char    Sys_Minute; 
register  unsigned  char    Sys_Hour; 
register  unsigned  char    Sys_Day; 
register  unsigned  char    Sys_Month; 
 
register  unsigned  long    systimems; 
register  unsigned  char    kr_time_run=0; 
 
#pragma   locate(Sys_Month=0x46) 
register  unsigned   char    Sys_Year; 
 
#pragma   locate(Sys_Year=0x47) 
register  unsigned   char    Sys_Century; 
 
register  unsigned  long    YS_addr; 
 
register  unsigned  int     freqvalue; 
 
register  unsigned  char    XM0FullFlag; 
#pragma   locate(XM0FullFlag=0x4E) 
register  unsigned  char    XM1FullFlag; 
#pragma   locate(XM1FullFlag=0x4F) 
//-------------16C550----------------------------------------------- 
unsigned  char	      COM2_RBR_THR; 
#pragma   locate(COM2_RBR_THR=COM_16C550_RBR) 
union	  IER_STRUCT  COM2_IER;    /*中断使能寄存器	 DLAB=0 */ 
#pragma   locate(COM2_IER=COM_16C550_IER) 
union	  IIR_STRUCT  COM2_IIR_FCR;/*中断识别寄存器 只读 FIFO控制寄存器 只写 */ 
#pragma   locate(COM2_IIR_FCR=COM_16C550_IIR) 
union	  LCR_STRUCT  COM2_LCR;    /*线路控制寄存器		 */ 
#pragma   locate(COM2_LCR=COM_16C550_LCR) 
union	  MCR_STRUCT  COM2_MCR;    /*MODEM控制寄存器		 */ 
#pragma   locate(COM2_MCR=COM_16C550_MCR) 
union	  LSR_STRUCT  COM2_LSR;    /*线路状态寄存器		 */ 
#pragma   locate(COM2_LSR=COM_16C550_LSR) 
union	  MSR_STRUCT  COM2_MSR;    /*MODEM状态寄存器		 */ 
#pragma   locate(COM2_MSR=COM_16C550_MSR) 
//-------------16C554-CSA------------------------------------------- 
unsigned  char	      COM3_RBR_THR; 
#pragma   locate(COM3_RBR_THR=COM_16C554_CSA_RBR) 
union	  IER_STRUCT  COM3_IER;/*中断使能寄存器      DLAB=0 */ 
#pragma   locate(COM3_IER=COM_16C554_CSA_IER) 
union	  IIR_STRUCT  COM3_IIR_FCR;/*中断识别寄存器 只读 FIFO控制寄存器 只写 */ 
#pragma   locate(COM3_IIR_FCR=COM_16C554_CSA_IIR) 
union	  LCR_STRUCT  COM3_LCR;/*线路控制寄存器 	     */ 
#pragma   locate(COM3_LCR=COM_16C554_CSA_LCR) 
union	  MCR_STRUCT  COM3_MCR;/*MODEM控制寄存器	     */ 
#pragma   locate(COM3_MCR=COM_16C554_CSA_MCR) 
union	  LSR_STRUCT  COM3_LSR;/*线路状态寄存器 	     */ 
#pragma   locate(COM3_LSR=COM_16C554_CSA_LSR) 
union	  MSR_STRUCT  COM3_MSR;/*MODEM状态寄存器	     */ 
#pragma   locate(COM3_MSR=COM_16C554_CSA_MSR) 
//-------------16C554-CSB------------------------------------------- 
unsigned  char	      COM4_RBR_THR; 
#pragma   locate(COM4_RBR_THR=COM_16C554_CSB_RBR) 
union	  IER_STRUCT  COM4_IER;/*中断使能寄存器      DLAB=0 */ 
#pragma   locate(COM4_IER=COM_16C554_CSB_IER) 
union	  IIR_STRUCT  COM4_IIR_FCR;/*中断识别寄存器 只读 FIFO控制寄存器 只写 */ 
#pragma   locate(COM4_IIR_FCR=COM_16C554_CSB_IIR) 
union	  LCR_STRUCT  COM4_LCR;/*线路控制寄存器 	     */ 
#pragma   locate(COM4_LCR=COM_16C554_CSB_LCR) 
union	  MCR_STRUCT  COM4_MCR;/*MODEM控制寄存器	     */ 
#pragma   locate(COM4_MCR=COM_16C554_CSB_MCR) 
union	  LSR_STRUCT  COM4_LSR;/*线路状态寄存器 	     */ 
#pragma   locate(COM4_LSR=COM_16C554_CSB_LSR) 
union	  MSR_STRUCT  COM4_MSR;/*MODEM状态寄存器	     */ 
#pragma   locate(COM4_MSR=COM_16C554_CSB_MSR) 
//-------------16C554-CSC------------------------------------------- 
unsigned  char	      COM5_RBR_THR; 
#pragma   locate(COM5_RBR_THR=COM_16C554_CSC_RBR) 
union	  IER_STRUCT  COM5_IER;/*中断使能寄存器      DLAB=0 */ 
#pragma   locate(COM5_IER=COM_16C554_CSC_IER) 
union	  IIR_STRUCT  COM5_IIR_FCR;/*中断识别寄存器 只读 FIFO控制寄存器 只写 */ 
#pragma   locate(COM5_IIR_FCR=COM_16C554_CSC_IIR) 
union	  LCR_STRUCT  COM5_LCR;/*线路控制寄存器 	     */ 
#pragma   locate(COM5_LCR=COM_16C554_CSC_LCR) 
union	  MCR_STRUCT  COM5_MCR;/*MODEM控制寄存器	     */ 
#pragma   locate(COM5_MCR=COM_16C554_CSC_MCR) 
union	  LSR_STRUCT  COM5_LSR;/*线路状态寄存器 	     */ 
#pragma   locate(COM5_LSR=COM_16C554_CSC_LSR) 
union	  MSR_STRUCT  COM5_MSR;/*MODEM状态寄存器	     */ 
#pragma   locate(COM5_MSR=COM_16C554_CSC_MSR) 
/*-------------16C554-CSD----------------------------------------------*/ 
unsigned  char	      COM6_RBR_THR; 
#pragma   locate(COM6_RBR_THR=COM_16C554_CSD_RBR) 
union	  IER_STRUCT  COM6_IER;/*中断使能寄存器      DLAB=0 */ 
#pragma   locate(COM6_IER=COM_16C554_CSD_IER) 
union	  IIR_STRUCT  COM6_IIR_FCR;/*中断识别寄存器 只读 FIFO控制寄存器 只写 */ 
#pragma   locate(COM6_IIR_FCR=COM_16C554_CSD_IIR) 
union	  LCR_STRUCT  COM6_LCR;/*线路控制寄存器 	     */ 
#pragma   locate(COM6_LCR=COM_16C554_CSD_LCR) 
union	  MCR_STRUCT  COM6_MCR;/*MODEM控制寄存器	     */ 
#pragma   locate(COM6_MCR=COM_16C554_CSD_MCR) 
union	  LSR_STRUCT  COM6_LSR;/*线路状态寄存器 	     */ 
#pragma   locate(COM6_LSR=COM_16C554_CSD_LSR) 
union	  MSR_STRUCT  COM6_MSR;/*MODEM状态寄存器	     */ 
#pragma   locate(COM6_MSR=COM_16C554_CSD_MSR) 
/*-----------------全局RAM变量(HEAP)-----------------------------------*/ 
unsigned  long	  YWBuf[MAXLINENUM][8]; 
unsigned  char	  AdrBuf[512]; 
unsigned  int	  DatBuf[256]; 
unsigned  char	  LcdBuf[1100]; 
unsigned  char	  LastLcdBuf[1100]; 
 
unsigned  int	  StrBuf[256]; 
unsigned  int	  NumBuf[128]; 
unsigned  int	  ChBuf[128]; 
unsigned  int	  KeyCount[10]; 
unsigned  int	  temp00[100]; 
unsigned  int	  temp01[100]; 
unsigned  int	  YXBuf[32]; 
 
unsigned  char	  YXBUF0[0x1000]; 
unsigned  char	  YXBUF1[0x1000]; 
 
unsigned  char	  RCanBuf[0x1080]; 
unsigned  char	  TCanBuf[0x1080]; 
unsigned  char	  ClockBuf[0x20]; 
 
unsigned  char	  YKYXType[256]; 
unsigned  char	  MRType[MAXMRNUM]; 
 
unsigned  char	  Can0_Send_Case; 
unsigned  char	  Can1_Send_Case; 
unsigned  char	  Can0_Info_Frame[10]; 
unsigned  char	  Can1_Info_Frame[10]; 
unsigned  char	  Can0_Send_Flag; 
unsigned  int	  TEST; 
 
struct	  LNTYPE	     LNLIB[MAXLINENUM];     //线路量数据库 
struct	  ADCTYPE	     ADCLIB[MAXMRNUM];	    //交直流量数据库 
struct	  TaskItem	     Task[MAXTASK]; 
struct	  PostStationStruct  PostStation; 
struct	  TLine 	     LineValue[MAXLINENUM]; 
struct	  TComConfig	     ComConfig[MAXCOMNUM];  //串行通信规约配置表 
struct	  WatchDogStruct     WatchDogCom[MAXCOMNUM]; 
struct	  TComStruct	     *ComHandle[MAXCOMNUM]; //串行通信口驱动程序通用变量表 
struct	  Mail		     Message[MAXEMPMAIL]; 
struct	  Libarystruct	     *pDataLibary; 
 
struct	  SampleTableStruct  SampleTable[MAXSAMPLECOUNT]; 
struct	  SampleTableStruct  *headSampleTable; 
struct	  SampleTableStruct  *nextSampleTable; 
 
extern	  void	SystemInit(void); 
extern	  void	SystemRun(void); 
extern	  void	SystemReset(void); 
 
 
struct	  BTran_ptscb_struct	       SamplePts_Epa0; 
#pragma   locate(SamplePts_Epa0=0x288) 
#pragma      pts(SamplePts_Epa0=0x04)  /*  EPA0  */ 
 
struct	  BTran_ptscb_struct	       SamplePts_Exint; 
#pragma   locate(SamplePts_Exint=0x2C0) 
#pragma      pts(SamplePts_Exint=0x0E) 
 
void main(void) 
{ 
     SystemInit(); 
     SystemRun(); 
     SystemReset(); 
}