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

📄 scankr.asm

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;/
;/ File name =SCANKR.ASM
;/ 设计 何风涛
$include(SCANKR.H)
extrn  YXBUF0
extrn  YXBUF1
extrn  SoeBuf
extrn  BvBuf
extrn  Sys_Month: BYTE
extrn  Sys_Year:  BYTE
extrn  LCD_Device:null
extrn  LCD_Write: null
extrn  COM_Device_Task:null

PUBLIC	  SCANKR
	  CSEG
SCANKR:   ECALL COM_Device_Task;
	  ECALL LCD_Device;
	  LDB	WSR,  #WSR_380H_3FFH;
	  JBC	XM0FullFlag,0H,XMNEXT;	 ;5/9T
XMBUF0:   LD	Y_ADR,	   #lsw  YXBUF0;
	  LD	Y_ADR+2,   #msw  YXBUF0;
	  LDB	XMLOOP,     #100;
	  LDB	XMTYPE,     #0;
	  SJMP	XMSTART;
XMNEXT:   JBS	XM1FullFlag,0H,XMBUF1;	;5/9T
	  LDB	WSR,	    #WSR_080H_0FFH;
	  RET;
XMBUF1:   LD	Y_ADR,	    #lsw  YXBUF1;
	  LD	Y_ADR+2,    #msw  YXBUF1;
	  LDB	XMLOOP,     #100;
	  LDB	XMTYPE,     #1;
XMSTART:  ELD	NEW00,	  [Y_ADR]+;	 ;9T
	  ELD	NEW02,	  [Y_ADR]+;	 ;9T
	  ELD	NEW04,	  [Y_ADR]+;	 ;9T
	  ELD	NEW06,	  [Y_ADR]+;	 ;9T
	  ELD	NEW08,	  [Y_ADR]+;	 ;9T
	  ELD	NEW10,	  [Y_ADR]+;	 ;9T
	  ELD	NEW12,	  [Y_ADR]+;	 ;9T
	  ELD	NEW14,	  [Y_ADR]+;	 ;9T
	  ELD	NEW16,	  [Y_ADR]+;	 ;9T
	  ELD	NEW18,	  [Y_ADR]+;	 ;9T
	  ELD	NEW20,	  [Y_ADR]+;	 ;9T
	  ELD	NEW22,	  [Y_ADR]+;	 ;9T
	  ELD	NEW24,	  [Y_ADR]+;	 ;9T
	  ELD	NEW26,	  [Y_ADR]+;	 ;9T
	  ELD	NEW28,	  [Y_ADR]+;	 ;9T
	  ELD	ST_MSL,   [Y_ADR]+;	 ;9T
	  ELD	ST_SEC,   [Y_ADR]+;	 ;9T
	  ELD	ST_HOU,   [Y_ADR]+;	 ;9T

	  LD	CHG00,	  NEW00;	 ;9T
	  LD	CHG02,	  NEW02;	 ;9T
	  LD	CHG04,	  NEW04;	 ;9T
	  LD	CHG06,	  NEW06;	 ;9T
	  LD	CHG08,	  NEW08;	 ;9T
	  LD	CHG10,	  NEW10;	 ;9T
	  LD	CHG12,	  NEW12;	 ;9T
	  LD	CHG14,	  NEW14;	 ;9T
	  LD	CHG16,	  NEW16;	 ;9T
	  LD	CHG18,	  NEW18;	 ;9T
	  LD	CHG20,	  NEW20;	 ;9T
	  LD	CHG22,	  NEW22;	 ;9T
	  LD	CHG24,	  NEW24;	 ;9T
	  LD	CHG26,	  NEW26;	 ;9T
	  LD	CHG28,	  NEW28;	 ;9T

	  XOR	CHG00,	  LAST00;	 ;9T
	  XOR	CHG02,	  LAST02;	 ;9T
	  XOR	CHG04,	  LAST04;	 ;9T
	  XOR	CHG06,	  LAST06;	 ;9T
	  XOR	CHG08,	  LAST08;	 ;9T
	  XOR	CHG10,	  LAST10;	 ;9T
	  XOR	CHG12,	  LAST12;	 ;9T
	  XOR	CHG14,	  LAST14;	 ;9T
	  XOR	CHG16,	  LAST16;	 ;9T
	  XOR	CHG18,	  LAST18;	 ;9T
	  XOR	CHG20,	  LAST20;	 ;9T
	  XOR	CHG22,	  LAST22;	 ;9T
	  XOR	CHG24,	  LAST24;	 ;9T
	  XOR	CHG26,	  LAST26;	 ;9T
	  XOR	CHG28,	  LAST28;	 ;9T
;--------------------------YX--000-----------------------------
	  LDB	BFLAG,	  yx_num[0];
	  JBS	BFLAG,	 0H,  YX000;
	  EJMP	YM120;
;--------------------------YX--000-----------------------------
YX000:	  JBS	YSFG00,  0H,YS000;	 ;5/9  /*  遥信设置	 */
YY000:	  JBS	CHG00,	 0H,GK000;	 ;5/9T
	  SJMP	YX001;			 ;7T
GK000:	  ST	ST_MSL,  ST_MSL_000[0];  ;10T
	  ST	ST_SEC,  ST_SEC_000[0];  ;10T
	  ST	ST_HOU,  ST_HOU_000[0];  ;10T
	  ORB	YSFG00,  #001H; 	 ;4T
	  ST	R0,	 JGTM000[0];	 ;10T
	  SJMP	YX001;			 ;7T
YS000:	  LD	AX, JGTM000[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM000[0]; 	 ;10T
	  JBS	CHG00,0H,YE000; 	 ;5T/9T  遥信开关复归
DT000:	  LD	BX, BVTM000[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC000;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX001;			 ;7T
YC000:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #000;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 0H, KH000;  ;5T/9T
KF000:	  JBS	NEW00,	 0H, NH000;	 ;5/9  /* 常开开关  */
	  SJMP	NF000;			 ;7T
KH000:	  JBS	NEW00,	 0H, NF000;	 ;5/9  /* 常闭开关  */
NH000:	  ORB	BXL,	 #001H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX000;			 ;7T
NF000:	  ANDB	BXL,	  #0FEH;
	  LDB	AXH,	  #070H;
FX000:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  0H,YE000;
	  LD	BX,	  ST_MSL_000[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_000[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_000[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT000;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT000:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE000:	  ANDB	YSFG00,   #0FEH;	 ;4T
;--------------------------YX--001-----------------------------
YX001:	  JBS	YSFG00,  1H,YS001;	 ;5/9  /*  遥信设置	 */
YY001:	  JBS	CHG00,	 1H,GK001;	 ;5/9T
	  SJMP	YX002;			 ;7T
GK001:	  ST	ST_MSL,  ST_MSL_001[0];  ;10T
	  ST	ST_SEC,  ST_SEC_001[0];  ;10T
	  ST	ST_HOU,  ST_HOU_001[0];  ;10T
	  ORB	YSFG00,  #002H; 	 ;4T
	  ST	R0,	 JGTM001[0];	 ;10T
	  SJMP	YX002;			 ;7T
YS001:	  LD	AX, JGTM001[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM001[0]; 	 ;10T
	  JBS	CHG00,1H,YE001; 	 ;5T/9T  遥信开关复归
DT001:	  LD	BX, BVTM001[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC001;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX002;			 ;7T
YC001:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #001;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 1H, KH001;  ;5T/9T
KF001:	  JBS	NEW00,	 1H, NH001;	 ;5/9  /* 常开开关  */
	  SJMP	NF001;			 ;7T
KH001:	  JBS	NEW00,	 1H, NF001;	 ;5/9  /* 常闭开关  */
NH001:	  ORB	BXL,	 #002H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX001;			 ;7T
NF001:	  ANDB	BXL,	  #0FDH;
	  LDB	AXH,	  #070H;
FX001:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  1H,YE001;
	  LD	BX,	  ST_MSL_001[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_001[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_001[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT001;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT001:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE001:	  ANDB	YSFG00,   #0FDH;	 ;4T
;--------------------------YX--002-----------------------------
YX002:	  JBS	YSFG00,  2H,YS002;	 ;5/9  /*  遥信设置	 */
YY002:	  JBS	CHG00,	 2H,GK002;	 ;5/9T
	  SJMP	YX003;			 ;7T
GK002:	  ST	ST_MSL,  ST_MSL_002[0];  ;10T
	  ST	ST_SEC,  ST_SEC_002[0];  ;10T
	  ST	ST_HOU,  ST_HOU_002[0];  ;10T
	  ORB	YSFG00,  #004H; 	 ;4T
	  ST	R0,	 JGTM002[0];	 ;10T
	  SJMP	YX003;			 ;7T
YS002:	  LD	AX, JGTM002[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM002[0]; 	 ;10T
	  JBS	CHG00,2H,YE002; 	 ;5T/9T  遥信开关复归
DT002:	  LD	BX, BVTM002[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC002;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX003;			 ;7T
YC002:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #002;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 2H, KH002;  ;5T/9T
KF002:	  JBS	NEW00,	 2H, NH002;	 ;5/9  /* 常开开关  */
	  SJMP	NF002;			 ;7T
KH002:	  JBS	NEW00,	 2H, NF002;	 ;5/9  /* 常闭开关  */
NH002:	  ORB	BXL,	 #004H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX002;			 ;7T
NF002:	  ANDB	BXL,	  #0FBH;
	  LDB	AXH,	  #070H;
FX002:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  2H,YE002;
	  LD	BX,	  ST_MSL_002[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_002[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_002[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT002;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT002:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE002:	  ANDB	YSFG00,   #0FBH;	 ;4T
;--------------------------YX--003-----------------------------
YX003:	  JBS	YSFG00,  3H,YS003;	 ;5/9  /*  遥信设置	 */
YY003:	  JBS	CHG00,	 3H,GK003;	 ;5/9T
	  SJMP	YX004;			 ;7T
GK003:	  ST	ST_MSL,  ST_MSL_003[0];  ;10T
	  ST	ST_SEC,  ST_SEC_003[0];  ;10T
	  ST	ST_HOU,  ST_HOU_003[0];  ;10T
	  ORB	YSFG00,  #008H; 	 ;4T
	  ST	R0,	 JGTM003[0];	 ;10T
	  SJMP	YX004;			 ;7T
YS003:	  LD	AX, JGTM003[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM003[0]; 	 ;10T
	  JBS	CHG00,3H,YE003; 	 ;5T/9T  遥信开关复归
DT003:	  LD	BX, BVTM003[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC003;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX004;			 ;7T
YC003:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #003;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 3H, KH003;  ;5T/9T
KF003:	  JBS	NEW00,	 3H, NH003;	 ;5/9  /* 常开开关  */
	  SJMP	NF003;			 ;7T
KH003:	  JBS	NEW00,	 3H, NF003;	 ;5/9  /* 常闭开关  */
NH003:	  ORB	BXL,	 #008H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX003;			 ;7T
NF003:	  ANDB	BXL,	  #0F7H;
	  LDB	AXH,	  #070H;
FX003:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  3H,YE003;
	  LD	BX,	  ST_MSL_003[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_003[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_003[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT003;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT003:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE003:	  ANDB	YSFG00,   #0F7H;	 ;4T
;--------------------------YX--004-----------------------------
YX004:	  JBS	YSFG00,  4H,YS004;	 ;5/9  /*  遥信设置	 */
YY004:	  JBS	CHG00,	 4H,GK004;	 ;5/9T
	  SJMP	YX005;			 ;7T
GK004:	  ST	ST_MSL,  ST_MSL_004[0];  ;10T
	  ST	ST_SEC,  ST_SEC_004[0];  ;10T
	  ST	ST_HOU,  ST_HOU_004[0];  ;10T
	  ORB	YSFG00,  #010H; 	 ;4T
	  ST	R0,	 JGTM004[0];	 ;10T
	  SJMP	YX005;			 ;7T
YS004:	  LD	AX, JGTM004[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM004[0]; 	 ;10T
	  JBS	CHG00,4H,YE004; 	 ;5T/9T  遥信开关复归
DT004:	  LD	BX, BVTM004[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC004;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX005;			 ;7T
YC004:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #004;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 4H, KH004;  ;5T/9T
KF004:	  JBS	NEW00,	 4H, NH004;	 ;5/9  /* 常开开关  */
	  SJMP	NF004;			 ;7T
KH004:	  JBS	NEW00,	 4H, NF004;	 ;5/9  /* 常闭开关  */
NH004:	  ORB	BXL,	 #010H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX004;			 ;7T
NF004:	  ANDB	BXL,	  #0EFH;
	  LDB	AXH,	  #070H;
FX004:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  4H,YE004;
	  LD	BX,	  ST_MSL_004[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_004[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_004[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT004;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT004:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE004:	  ANDB	YSFG00,   #0EFH;	 ;4T
;--------------------------YX--005-----------------------------
YX005:	  JBS	YSFG00,  5H,YS005;	 ;5/9  /*  遥信设置	 */
YY005:	  JBS	CHG00,	 5H,GK005;	 ;5/9T
	  SJMP	YX006;			 ;7T
GK005:	  ST	ST_MSL,  ST_MSL_005[0];  ;10T
	  ST	ST_SEC,  ST_SEC_005[0];  ;10T
	  ST	ST_HOU,  ST_HOU_005[0];  ;10T
	  ORB	YSFG00,  #020H; 	 ;4T
	  ST	R0,	 JGTM005[0];	 ;10T
	  SJMP	YX006;			 ;7T
YS005:	  LD	AX, JGTM005[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM005[0]; 	 ;10T
	  JBS	CHG00,5H,YE005; 	 ;5T/9T  遥信开关复归
DT005:	  LD	BX, BVTM005[0]; 	 ;10T  /* 遥信开关静止	   */
	  CMP	AX,BX;			 ;4T
	  JC	YC005;	 AX>=BX ;C=1;	 ;4T/8T
	  SJMP	YX006;			 ;7T
YC005:	  LDB	BXL,	 YXBUF00;	 ;10T
	  LDB	AXL,	 #005;	 ;10T
	  LDB	AXH,	  KGBF00[0];	 ;10T
	  JBC	AXH, 5H, KH005;  ;5T/9T
KF005:	  JBS	NEW00,	 5H, NH005;	 ;5/9  /* 常开开关  */
	  SJMP	NF005;			 ;7T
KH005:	  JBS	NEW00,	 5H, NF005;	 ;5/9  /* 常闭开关  */
NH005:	  ORB	BXL,	 #020H;
	  LDB	AXH,	 #0F0H;
	  SJMP	FX005;			 ;7T
NF005:	  ANDB	BXL,	  #0DFH;
	  LDB	AXH,	  #070H;
FX005:	  STB	BXL,	  YXBUF00;
	  LDB	BXL,	  SOEPM00[0];  ;10T
	  JBS	BXL,	  5H,YE005;
	  LD	BX,	  ST_MSL_005[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_SEC_005[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  LD	BX,	  ST_HOU_005[0];  ;10T
	  EST	BX,	  [YSIPR]+;	 ;8T
	  EST	AX,	  [YSIPR]+;	 ;8T
	  EST	Sys_Month,[YSIPR]+;	 ;8T
	  LD	AX,	 YSCON[0];
	  CMP	AX,	 #999;
	  BNH	PT005;
	  CLR	AX;
	  LD	YSIPR,	 #lsw  SoeBuf;
	  LD	YSIPR+2, #msw  SoeBuf;
PT005:	  INC	AX;			 ;3T
	  ST	AX,	 YSCON[0];
YE005:	  ANDB	YSFG00,   #0DFH;	 ;4T
;--------------------------YX--006-----------------------------
YX006:	  JBS	YSFG00,  6H,YS006;	 ;5/9  /*  遥信设置	 */
YY006:	  JBS	CHG00,	 6H,GK006;	 ;5/9T
	  SJMP	YX007;			 ;7T
GK006:	  ST	ST_MSL,  ST_MSL_006[0];  ;10T
	  ST	ST_SEC,  ST_SEC_006[0];  ;10T
	  ST	ST_HOU,  ST_HOU_006[0];  ;10T
	  ORB	YSFG00,  #040H; 	 ;4T
	  ST	R0,	 JGTM006[0];	 ;10T
	  SJMP	YX007;			 ;7T
YS006:	  LD	AX, JGTM006[0]; 	 ;10T  /*   遥信开关动作状态 */
	  INC	AX;			 ;3T
	  ST	AX, JGTM006[0]; 	 ;10T
	  JBS	CHG00,6H,YE006; 	 ;5T/9T  遥信开关复归
DT006:	  LD	BX, BVTM006[0]; 	 ;10T  /* 遥信开关静止	   */

⌨️ 快捷键说明

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