tinter.c

来自「电力变电站RTU监控软件(80C196NT单片机) 遥控」· C语言 代码 · 共 2,046 行 · 第 1/5 页

C
2,046 行
字号
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+3;
				     break;
			   case  0x04:/* 4 遥脉板   */
				      value=YM_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_4_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_4_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_4_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      break;
			      default:/* 无  */
				      YS_addr=YS_addr+12;
				      break;
			 }
			 asm  est   msvalue,	 [YS_addr]+;
			 asm  estb  Sys_Second,  [YS_addr]+;
			 asm  estb  Sys_Minute,  [YS_addr]+;
			 asm  estb  Sys_Hour,	 [YS_addr]+;
			 asm  estb  Sys_Day,	 [YS_addr]+;

			 if(XMCount>=99)
			 {
			    XMFlag=1;
			    XM0FullFlag=0xFF;
			    asm    ld	   YS_addr,	#lsw  YXBUF1;
			    asm    ld	   YS_addr+2,	#msw  YXBUF1;
			    //处理任务到
			    Task[XmScanTaskNo].WaitStatus |=0x80;
			 }

			 XMCount=XMCount+1;
		      }
		      break;
	   case  0x01:if(XM1FullFlag!=0)
		      {
			 XMFlag=0;
			 XMCount=0;
			 asm	ld	YS_addr,     #lsw  YXBUF0;
			 asm	ld	YS_addr+2,   #msw  YXBUF0;
			 //处理任务到
		       //Task[XmScanTaskNo].WaitStatus |=0x08;
		      }else
		      {

			 portioa=PIO_A_CMD;
			 value=0;
			 asm  stb  value, [portioa];/* PIO_A_CMD=0 inpout  */

			 portioa=PIO_A_DAT;   /*  数据	  */
			 portiob=PIO_B_DAT;   /*  地址	  */

			 switch(yxnum)
			 {
			   case  0x01:/* 1 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+15;
				      break;
			   case  0x02:/* 2 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+12;
				      break;
			   case  0x03:/* 3 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+9;
				      break;
			   case  0x04:/* 4 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+6;
				      break;
			   case  0x05:/* 5 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      YS_addr=YS_addr+3;
				      break;
			   case  0x06:/* 6 遥信板   */
				      value=YX_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_2_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_3_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_4_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_5_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_6_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_6_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YX_BOARD_6_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      break;
			      default:/* 无  */
				      value=0;
				      YS_addr=YS_addr+18;
				      break;
			 }
			 switch(ymnum)
			 {
			   case  0x01:/* 1 遥脉板   */
				      value=YM_BOARD_1_KRL;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_1_KRM;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;
				      value=YM_BOARD_1_KRH;
				      asm  stb	 value,    [portiob];
				      asm  ldb	 value,    [portioa];
				      asm  estb  value,    [YS_addr]+;

				      YS_addr=YS_addr+9;
				      br

⌨️ 快捷键说明

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