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

📄 text10(新算法).asm

📁 智能系统新算法源代码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;器件P89LPC938,指令执行是普通8051的6倍
;串口采用中断方式通讯
;空P0.7、P1.7
;电流满量程5000mA、电压满量程380V
;$NOMOD51
;$INCLUDE (reg938.inc)
AD0DAT0R EQU 0FFFEH   ;定义AD寄存器地址
AD0DAT0L EQU 0FFFFH
AD0DAT3R EQU 0FFF8H
AD0DAT3L EQU 0FFF9H
IEN2 DATA 0D5H
org 0000h
jmp main
ORG 000BH	;定时器T0中断
LJMP  TIME_0
ORG 001BH
LJMP TIME_V        ;电压定时器T1
org 0023h
ljmp tongxun 		;串口通讯
org  0100h
;**************************初始化
main:
MOV P0M1, #0FFH	;设置口输出方式
MOV P0M2, #00H
MOV P1M1, #9CH
MOV P1M2, #40H
MOV P2M1, #1FH
MOV P2M2, #0E0H
CLR RS0			 ;选择寄存器组
CLR RS1
MOV  SP, #30h
MOV 58h, #01H	 ;参数发送请求标志,01有效
;MOV 59h, #00H    ;参数请求保存标志,02有效
;NOV 7EH, #00H	 ;电流调整系数,高位
;MOV 7DH, #00H	 ;电流调整系数,低位
;MOV 7CH, #00H	 ;电压调整系数,高位
;MOV 7BH, #00H	 ;电压调整系数,低位
MOV 7AH, #02H	 ;硬件自检标志符,0-断开、1-正常、2-未知、3-重复信息
MOV 79H, #00H    ;告警类型符号,  0-正常、1-一般、2-重要、3-严重
;MOV 22H, #04H	 ;默认放大倍数参数
MOV 61H,#00		 ;电流调试标志
MOV 65H,#00;电压调试标志位
MOV 57H,#8		 ;调试计算次数
MOV 5CH,#00		 ;默认一般告警等级高字节
MOV 64H,#00H     ;电压量程选过标志0CCH
mov 2fh,#00		 ;顺碰类型清零
mov 24h,#00;  瞬碰判断
mov a,#00
MOV  R0,a;#16H	 ;清调试标志
MOVX @R0,a;#00
INC R0
MOVX @R0,a;#00
INC R0
MOVX @R0,a;#00
MOV 66H	,#00 ;电流固定值 高字节
MOV 67H ,#00 ;电流固定值 低字节
MOV 2EH,#00  ;电压固定值
MOV 2DH,#00  ;电压值中间寄存器
MOV 2CH,#00 ; 电压值
MOV 68H,#00	 ;电流中间寄存器高八位
MOV 69H,#00	 ;电流中间寄存器低八位
MOV 6AH, #03  ;	  默认电流严重告警等级1500mA,高八位
MOV 6BH, #0E8H    ;低八位
MOV 6CH, #01  ;	 默认电流重要告警等级500mA,高八位
MOV 6DH, #0F4H  ; 低八位
MOV 6EH, #96H  ; 默认电流一般告警等级150mA
MOV 6FH,  #1  ;	 严重定时时间默认4秒,1秒=84x单位定时时间
INC 6FH
MOV 70H,  #50H
MOV 71H, #1     ;重要定时时间默认5秒,1秒=84x单位定时时间
INC 71H
MOV 72H, #0A4h
MOV 73H,#1		;一般定时时间默认6秒,1秒=84x单位定时时间
INC 73H
MOV 74H,#0F8H
MOV 75H,#03		;电压定时默认时间 10秒,1秒=84x单位定时时间
INC 75H
MOV 76H,#48H
MOV 2BH,#60
MOV 77H,#00	 ;电流高字节
MOV 78H,#00	 ;电流低字节
MOV PT0AD,#12H	;禁止AD口数字输入,电流P0.4--AD03、电压P0.1--AD00
MOV SCON,#0F0H	;设置UART及波特率,选择内部BRG为波特率发生器,9600bps
MOV BRGR0,#0F0H
MOV BRGR1,#2H
MOV BRGCON,#03H
MOV TMOD,#01H;设置T0为定时器,工作模式1,无门控位
MOV TAMOD,#00H
CLR TR0		; 暂时禁止T0计时
CLR TR1		; 暂时禁止T1计时
SETB ET1	;允许定时器1中断
SETB ET0	; 允许定时器0中断
mov ip0,#01000010
mov ip0h,#01010000; 设置串口中断优先级2\定时器0设优先级1\定时器1设优先级0\看们狗3
MOV TH0,#00	 ;设置T0单位定时时间为11.862ms
MOV TL0,#00
MOV TH1,#00	  ;设置T1单位定时时间为11.862ms
MOV TL1,#00
SETB SM2		  ;从机置接受方式
SETB P1.6		  ;485接口允许接受		  ;
CLR  EA
SETB ES
MOV IEN2,#00H	  ;关AD口中断
CLR P0.0		  ;开工作灯
SETB P2.0		 ;关电流告警红灯
SETB P2.1		; 关电压告警黄灯
;****************************地址
;地址DP1到DP7,7位拨码地址,对应P0.2、P0.3、P0.5、P0.6、P1.2、P1.3、P1.4。
MOV A,  P0
RR  A
RR  A
MOV C    , ACC.3
MOV ACC.2, C
MOV C, ACC.4
MOV ACC.3, C
ANL A,#0FH
MOV 7FH,A
MOV A, P1
RL A
RL A
ANL A,#01110000B
ORL  A , 7FH
MOV 7FH,A	;最终地址
;****************************读参数
CLR EA
WRITE_LOOP1:
MOV DEECON,#00H;初始化DEECON
MOV DEEDAT,#01H;预写入一个测试值
MOV DEEADR,#00H;地址初始值
WRITE_COMPLETE6:
MOV A,DEECON
ANL A,#80H
JZ WRITE_COMPLETE6
MOV DEECON,#00H;清0写完成标志位
MOV DEEADR,#00H
READ_COMPLETE1:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE1
MOV A,DEEDAT
XRL A,#01
JNZ WRITE_LOOP1
MOV DEECON ,#00	;读数据,顺序电流7EH、7DH,电压7CH、7BH、22H
MOV DEEADR,#01H
READ_COMPLETE2:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE2
MOV 7EH,DEEDAT;
MOV DEECON,#00
MOV DEEADR,#02H
READ_COMPLETE3:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE3
MOV 7DH,DEEDAT
MOV DEECON ,#00
MOV DEEADR,#03H
READ_COMPLETE4:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE4
MOV 7CH,DEEDAT
MOV DEECON,#00
MOV DEEADR,#04H
READ_COMPLETE5:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE5
MOV 7BH,DEEADR
MOV DEECON,#00
MOV DEEADR,#05H
READ_COMPLETE7:
MOV A,DEECON
ANL A,#80H
JZ READ_COMPLETE7
MOV 22H,DEEDAT
CLR EA
;****************************电流AD转换:1个正玄波比较255次求出波峰,最长时间为28.83us,波峰采集次数为6次
;返回值55H,56H
ADC0:
SETB RS0
MOV R0,#00
MOV 57H,#8
MOV R1,#0B4H	  ;电流告警标志清零
MOV @R1,#00H
INC R1
MOV @R1,#00H
INC R1
MOV @R1,#00
ADC1:
setb rs0
mov r1,#0b7h
MOV @R1,6FH	   ;电流告警灵敏度中间寄存器
INC R1
MOV @R1,70H
INC R1
MOV @R1,71H
INC R1
MOV @R1,72H
INC R1
MOV @R1,73H
INC R1
MOV @R1,74H
MOV R1,#0BFH		;电压告警灵敏度中间寄存器
MOV @R1,75H
INC R1
MOV @R1,76H
CLR RS0
MOV ADINS,#08H;选择AD03电流转换通道
MOV ADMODA,#10H;固定通道单次转换
CLR RI
SETB REN
JBC RI,ADC_0
ADC_0:MOV R0,#0A4H	;AD缓存区A4H--AFH
MOV R5,#06H		  ;采集6次
ADC2:
MOV R3,#0FFH      ;AD转换数据个数
MOV 53H,#00H	  ;存放波峰高八位
MOV 54H,#00H	  ;存放波峰低八位
ADC:
MOV ADCON0,#05H	   ;循环AD转换
MOV A,ADCON0	   ;开始转换
JNB ACC.3,ADC	   ;等待转换完成
MOV 50H, AD0DAT3L  ;转换结果高八位
MOV 51H, AD0DAT3R  ;转换结果低八位
LCALL DELAY	 ;	    确保在0.3S转换255次
LCALL MAX	 ;	    比较求最大值
DJNZ R3	,ADC;     255次转换完?
MOV @R0,54H
INC	R0
MOV @R0,53H
INC R0
DJNZ R5,ADC2
LCALL AD_ADDIV
MOV 56H,A; 结果低八位
MOV 55H,R2;结果高八位
LCALL TIAOSHI11
LCALL CHULI_I;转电流数据处理子程序
;***********判断电流是否告警,有,则不做电压检测
SETB RS0
MOV R1,#0B4H
MOV A,@R1
CJNE A,#0AAH,XIA_0
CLR RS0
SJMP ADC1
XIA_0:
INC R1
MOV A,@R1
CJNE A,#0AAH,XIA_1
CLR RS0
SJMP ADC1
XIA_1:
INC R1
MOV A,@R1
CJNE A,#0AAH,XIA_2
CLR RS0
SJMP ADC1
XIA_2:
CLR RS0
;****************电压采样
;1个正玄波比较255次求出波峰,最长时间为28.83us,波峰采集次数为6次
;返回值62H,63H
ADC00:
MOV P2.5,10H
MOV P2.6,11H
MOV P2.7,12H
SETB RS0
MOV R0,#00
CLR RS0
ADC11:
MOV ADINS,#01H;选择AD00电压转换通道
MOV ADMODA,#10H;固定通道单次转换
CLR RI
SETB REN
JBC RI,ADC_00
ADC_00:
MOV R0,#0A4H	;AD缓存区A4H--AFH
MOV R5,#06H		  ;采集6次
ADC22:
MOV R3,#0FFH      ;AD转换数据个数
MOV 53H,#00H	  ;存放波峰高八位
MOV 54H,#00H	  ;存放波峰低八位
ADC_:
MOV ADCON0,#05H	   ;循环AD转换
MOV A,ADCON0	   ;开始转换
JNB ACC.3,ADC	   ;等待转换完成
MOV 50H, AD0DAT0L  ;转换结果高八位
MOV 51H, AD0DAT0R  ;转换结果低八位
LCALL DELAY	 ;	    确保在0.3S转换255次
LCALL MAX	 ;	    比较求最大值
DJNZ R3	, ADC_;     255次转换完?
MOV @R0,54H
INC	R0
MOV @R0,53H
INC R0
DJNZ R5,ADC22
LCALL AD_ADDIV
MOV 63H,A; 结果低八位
MOV 62H,R2;结果高八位
LCALL TIAOSHI11
LCALL  CHULI_V	;转电压数据处理子程序
LJMP ADC1
;****************************
;去极值平均滤波,
;在求和过程中识别极值,结果减去两个极值后,除以4
;****************************
AD_ADDIV:
MOV R5,#6
MOV R0,#0A4H;AD值缓存区A4H--AFH
MOV A,@R0
MOV R1,A ;	 极小值高八位
MOV R6,A ;	 极大值高八位
INC R0
MOV A,@R0
MOV R4,A  ;	极小值低八位
MOV R7,A ;	极大值低八位
MOV R2,#00H	;R2、R3为和,高
MOV R3,#00H	;低
ADADV_L1:
;CLR C
MOV R0,#0A4H
MOV A,R3;数据求和
ADD A,@R0
MOV R3,A ;低位
INC R0
MOV A,R2
ADDC A,@R0
MOV R2,A ;高位
CLR C
MOV A,@R0	 ;找最小值
MOV 59H,R1
CJNE A,59H,ADADV_L4 ; 比较高八位
DEC R0
MOV A,@R0
MOV 59H,R4
CJNE A,59H,ADADV_L5 ; 比较低八位
SJMP ADADV_L31	  ;转求平均值
ADADV_L4:
JNC ADADV_L2	;转找最大值
MOV A,@R0
MOV R1,A
DEC R0
MOV A,@R0
MOV R4,A
SJMP ADADV_L31 ;	转求平均值
ADADV_L5:
JNC ADADV_L21  ;    转找最大值
MOV A,@R0
MOV R4,A
INC R0
MOV A,@R0
MOV R1,A
SJMP ADADV_L3 ;	   转求平均值
ADADV_L21:
INC R0
ADADV_L2:	   ;   求最大值
CLR C
MOV A,@R0
MOV 59H,R6
CJNE A,59H,ADADV_L6
DEC R0
MOV A,@R0
MOV 59H,R7
CJNE A,59H,ADADV_L7
SJMP ADADV_L31	 ;转求平均值
ADADV_L6:
JC ADADV_L3
MOV A,@R0
MOV R6,A
DEC R0
MOV A,@R0
MOV R7,A
SJMP ADADV_L31	  ;转求平均值
ADADV_L7:
JC ADADV_L3
MOV A,@R0
MOV R7,A
INC R0
MOV A,@R0
MOV R6,A
SJMP ADADV_L3	   ;转求平均值
ADADV_L31:
INC R0
ADADV_L3:	    ;求平均值
INC R0          ;指针递减
DJNZ R5,ADADV_L1; 数据未处理完继续
CLR C
MOV A,R3  ;	减极小值
SUBB A,R4 ;	低位
MOV R3,A
MOV A,R2
SUBB A,R1  ;高位
MOV R2,A
CLR C
MOV A,R3  ;	减极大值
SUBB A,R7 ;	 低位
MOV R3,A
MOV A,R2
SUBB A,R6
MOV R2,A  ;求平均(双字节/4)
MOV A,R2  ;高位
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R3,A
MOV A,R2
RRC A
MOV R2,A
MOV A,R3
RRC A
RET
RET
;上述占用C、R5、R0,和R2、R3;极小值高R1、低R4,极大高R6、低R7
;***********************量程子程序
LIANGCHENG:
CLR EA
CLR ES
SETB RS0
MOV A,64H
CJNE A,#0CCH,WEITIAO
SJMP TIAOSHI_U
WEITIAO:
MOV  DPTR,#0019H
MOV A,#0001H
MOVX @DPTR,A;#0001H
INC DPTR
MOV A,#000DH
MOVX @DPTR,A;#000DH
INC DPTR
MOV A,#0000H
MOVX @DPTR,A;#0000H
INC DPTR
MOV A,#0051H
MOVX @DPTR,A;#0051H
MOV C,P2.2
JNC	LIANGCHENG_0	  ;大于100V(269=10DH)调小放大倍数,小于30V(81=51H)调大放大倍数.
MOV A,#00A2H
MOVX @DPTR,A;#00A2H
MOV DPTR,#001BH;DEC DPTR
MOV A,#0000H
MOVX @DPTR,A;#0000H
MOV DPTR,#001AH;DEC DPTR
MOV A,#00EDH
MOVX @DPTR,A;#00EDH
MOV DPTR,#0019H;DEC DPTR
MOV A,#0001H
MOVX @DPTR,A;#0001H
MOV C,P2.3
JNC	LIANGCHENG_0	  ;大于183V(493=1EDH)调小放大倍数,小于60V(162=0A2H)调大放大倍数.				;
MOV A,#0003H
MOVX @DPTR,A;#0003H
INC DPTR
MOV A,#00D7H
MOVX @DPTR,A;#00D7H
INC DPTR
MOV A,#0001H
MOVX @DPTR,A;#0001H
INC DPTR
MOV A,#005EH
MOVX @DPTR,A;005EH
MOV C,P1.5
JNC	LIANGCHENG_0	  ;大于365V(983=3D7H)调小放大倍数,小于130V(350=15EH)调大放大倍数.				;
LJMP CHULI_I
LIANGCHENG_0:
;MOV A,#0019H
MOV DPTR,#0019H
MOVX A,@DPTR
CJNE A,62H,LIANGCHENG_1
INC DPTR
MOVX A,@DPTR
CJNE A,63H,	LIANGCHENG_1
LIANGCHENG_1:
JC TIAOXIAO
INC DPTR
MOVX A,@DPTR
CJNE A,62H,LIANGCHENG_2
INC DPTR
MOVX A,@DPTR
CJNE A,63H,LIANGCHENG_2
LIANGCHENG_2:
JNC TIAODA
MOV 64H,#0CCH		   ;量程选好标志
TIAOSHI_U:
MOV A,63H
CJNE A,#1,YICHU_1
YICHU_1:JNC NOYICHU_0
MOV A,62H
CJNE A,#1,YICHU_2
YICHU_2:JNC NOYICHU_0
SETB EA
SETB ES
CLR RS0
RET
RET
NOYICHU_0:
MOV C,P2.2
JNC k11			;	200mA	   60V=162=A2H(AD)
MOV C,P2.3
JNC K22			;	320mA	  110V=296=128H(AD)
MOV C,P1.5
JNC  K33_0		;   820mA	  220V=593=251H(AD)
SETB EA
SETB ES
CLR RS0
RET
RET
K33_0:
LJMP K33
TIAOXIAO:
INC 22H
MOV A,#7
SUBB A,22H
JC CHAOBIAO
CLR RS0
RET
RET
TIAODA:
DEC 22H
MOV A,#0
SUBB A,22H
JNC	 CHAOBIAO
CLR RS0
RET
RET
CHAOBIAO:
MOV 22H,#04H
CLR RS0
RET
RET
k11:
MOV DPTR,#001DH			  ;判断是否已调过
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_11
LJMP CHULI_I
TIAOHAO_11:	   ;60vX100,最后电压值除以100
MOV R2,#00
MOV R3,#00
MOV R1,#00
MOV R5,#70H;  低八位
MOV R4,#017H	;  高八位
MOV R7,63H
MOV R6,62H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI_0
LCALL PINGJUN
MOV R0,#0020H  ;K1
MOV	 A,R4
MOVX @R0,A
MOV R0,#0021H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#001DH	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_1       ;转标志子程序
k22:  ; 110VX100   最后电压值除以100
;SETB RS0
MOV DPTR,#001EH
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_22
LJMP CHULI_I
TIAOHAO_22:
MOV R4,#02AH
MOV R5,#0F8H
MOV R2,#0
MOV R3,#0
MOV R1,#0
MOV R7,63H
MOV R6,62H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI_0
FANHUI_0:LJMP FANHUI
LCALL PINGJUN
MOV R0,#0022H  ;K2
MOV	 A,R4
MOVX @R0,A
MOV R0,#0023H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#001EH	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_1  ;转标志子程序
k33:	  ; 220VX100
;SETB RS0
MOV DPTR,#001FH
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_33
LJMP CHULI_I
TIAOHAO_33:
MOV R4,#55H
MOV R5,#0F0H
MOV R2,#0
MOV R3,#0
MOV R1,#0
MOV R7,63H
MOV R6,62H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI_0
LCALL PINGJUN
MOV R0,#0012H  ;K2
MOV	 A,R4
MOVX @R0,A
MOV R0,#0013H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#001FH	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_1  ;转标志子程序
;*********************调试
TIAOSHI11:
MOV C,P2.2
JNC TIAOSHI	  ;转调试子程序
MOV C,P2.3
JNC TIAOSHI
MOV C,P1.5
JNC TIAOSHI
MOV  61H,#00	;清电流调好标志
MOV  65H,#00	;清电压调好标志
SETB EA
SETB ES
RET
RET
;LJMP CHULI_I;转数据处理子程序
TIAOSHI:
CLR EA
CLR ES
MOV A,61H
CJNE A,#0BBH,TIAOHAO_0
MOV 65H,#00
LCALL CHULI_II	   	;电流已调好,不需再调,转判断是否符合要求子程序
;LCALL WRITE_LOOP	; 参数写保护
LJMP  CHULI_I		; 转电流数据处理子程序
TIAOHAO_0 :
MOV A,65H
CJNE A,#0BBH,TIAOHAO_00
MOV 61H,#00
LCALL CHULI_VV	   	 ;电压已调好,不需再调,转判断是否符合要求子程序
;LCALL WRITE_L00P	  ;参数写保护
LJMP  CHULI_V		 ;转电压数据处理子程序
TIAOHAO_00:
MOV C,P2.4	 ;高电平电压调试
JC  LIANGCHENG_z ;转电压调试量程子程序
MOV A,56H
CJNE A,#1,YICHU
YICHU:JNC NOYICHU
MOV A,55H
CJNE A,#1,YICHU_0
YICHU_0:JNC NOYICHU
SETB EA
SETB ES
RET
RET
LIANGCHENG_Z:LJMP LIANGCHENG
NOYICHU:
MOV C,P2.2
JNC k1			;	200mA	   60V=162=A2H(AD)
MOV C,P2.3
JNC K2			;	320mA	  110V=296=128H(AD)
MOV C,P1.5
JNC  K3_0
K3_0:LJMP K3			;	820mA	  220V=593=251H(AD)
SETB EA
SETB ES
RET
RET
;LJMP ADC0
K1:
SETB RS0
MOV DPTR,#0016H			  ;判断是否已调过
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_1
LJMP CHULI_I
TIAOHAO_1:
MOV A,#200
MOV B,56H
CJNE A,56H,BIJIAO  ;判断是否符合要求
BIJIAO:JNC BIJIAO_0
;LJMP ADC0
RET
RET
BIJIAO_0: ;200mAX10,最后电流值除以10
MOV R2,#00
MOV R3,#00
MOV R1,#00
MOV R5,#0D0H;  低八位
MOV R4,#7	;  高八位
MOV R7,56H
MOV R6,55H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI
LCALL PINGJUN
MOV R0,#0010H  ;K1
MOV	 A,R4
MOVX @R0,A
MOV R0,#0011H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#0016H	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_0       ;转标志子程序
FANHUI:
CLR RS0
RET
RET
K2:	  ; 320mAX10
SETB RS0
MOV DPTR,#0017H
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_2
LJMP CHULI_I
TIAOHAO_2:
MOV A,55H
CJNE A,#1,BIJIAO_1
MOV A,56H
CJNE A,#40H,BIJIAO_1
BIJIAO_1:
JNC FANHUI
MOV R4,#0CH
MOV R5,#80H
MOV R2,#0
MOV R3,#0
MOV R1,#00
MOV R7,56H
MOV R6,55H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI
LCALL PINGJUN
MOV R0,#0012H  ;K2
MOV	 A,R4
MOVX @R0,A
MOV R0,#0013H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#0017H	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_0   ;转标志子程序
K3:	  ; 820mAX10
SETB RS0
MOV DPTR,#0018H
MOVX A,@DPTR
CJNE A,#0AAH,TIAOHAO_3
LJMP CHULI_I
TIAOHAO_3:
MOV A,55H
CJNE A,#3,BIJIAO_2
MOV A,56H
CJNE A,#34H,BIJIAO_2
BIJIAO_2:
JNC FANHUI
MOV R4,#20H
MOV R5,#08H
MOV R2,#0
MOV R3,#0
MOV R1,#00
MOV R7,56H
MOV R6,55H
LCALL DIV_2V2
MOV	 A,R4
MOVX @R0,A
INC R0
MOV A,R5
MOVX @R0,A
INC R0
DJNZ 57H ,FANHUI_1
FANHUI_1:LJMP FANHUI
LCALL PINGJUN
MOV R0,#0012H  ;K2
MOV	 A,R4
MOVX @R0,A
MOV R0,#0013H
MOV A,R5
MOVX @R0,A
CPL P2.0
LCALL  SHAN_1	 ;调用闪烁子程序
CPL P2.0
LCALL SHAN_1
CPL P2.0
LCALL SHAN_1
SETB P2.0
MOV R0,#0018H	 ;  置标志
MOV A,#0AAH
MOVX @R0,A;#0AAH
LJMP BIAOZHI_0   ;转标志子程序
;********************************* 4/2

⌨️ 快捷键说明

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