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

📄 ups390w r23.asm

📁 工频后备式UPS-390W
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	xor	a,Computer_command1
	sz	Z
	jmp	UPS_Answer_Q1		;发送UPS的:A,输入电压;输入故障电压;输出电压;输出电流;
	mov	a,ASCII_CR
	XOR	a,Computer_command1
	SZ	Z
	jmp	Soft_Offandonbeep
	clr	Sent_Data_Star		; 发送完成禁止发送 准备接收指令	
	clr	Send_StarFlag		;关发送数据;
	jmp	exit_RS232_Necet
Soft_Offandonbeep:
	cpl	Buzzer_Cry_Sta
	clr	Sent_Data_Star		; 发送完成禁止发送 准备接收指令	
	clr	Send_StarFlag		;关发送数据;
	jmp	exit_RS232_Necet
UPS_Answer_Q1:
	mov	a,0aah
	mov	mp0,a
	mov	a,ASCII_START
	mov	[00h],a
	inc	mp0
;输入电压处理发送.
;--------------------------------
	mov	a,In_ADValueL;In_ADValueL
	mov	wr1,a
	mov	a,In_ADValueH;OutCurrenRAM_H;In_ADValueH
	mov	wr0,a
;---------------------------------
	call	BCD_CONVER
	
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	;故障电压
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0	
        mov     a,ASCII_6
        mov	[00h],a
	inc	mp0
        mov     a,ASCII_5
        mov	[00h],a
	inc	mp0
        mov     a,ASCII_DOT
        mov	[00h],a
	inc	mp0
        mov	a,ASCII_0
        mov	[00h],a
	inc	mp0
        mov   	a,ASCII_SPACE
        mov	[00h],a
	inc	mp0
	;输出电压处理
	sz	Ac_Status_Flag
	jmp	Inverter_OutVol
	sz	Relay_Flag2
	jmp	Bypass_OutVol	
	sz	Relay_Flag1
	jmp	ADD_VoltaOut
	;降压输出
SUB_VoltaOut:
	mov	a,37
	mov	Ll2,a			;载入乘数
	mov	a,0
	mov	Lh2,a
	mov	a,In_ADValueL
	mov	Ll,a
	mov	a,In_ADValueH
	mov	Lh,a
	call	MULL_OF_16Bit
	mov	a,Ll
	mov	tmp5,a
	mov	a,Lh
	mov	tmp4,a			;载入被除数。
	mov	a,0		;
	mov	Lh2,a			;载入除数100。
	mov	a,42
	mov	Ll2,a
	call	DIV_OF_16Bit		;商=(Lh,Ll)
	mov	a,Lh
	mov	wr0,a
	mov	a,Ll
	mov	wr1,a
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	jmp	Out_LoadCapa
	;升压输出电压		
ADD_VoltaOut:
	mov	a,52
	mov	Ll2,a			;载入乘数
	mov	a,0
	mov	Lh2,a
	mov	a,In_ADValueL
	mov	Ll,a
	mov	a,In_ADValueH
	mov	Lh,a
	call	MULL_OF_16Bit
	mov	a,Ll
	mov	tmp5,a
	mov	a,Lh
	mov	tmp4,a			;载入被除数。
	mov	a,0		;
	mov	Lh2,a			;载入除数。
	mov	a,45
	mov	Ll2,a
	call	DIV_OF_16Bit		;商=(Lh,Ll)
	mov	a,Lh
	mov	wr0,a
	mov	a,Ll
	mov	wr1,a
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	jmp	Out_LoadCapa
	;旁路输出电压		
Bypass_OutVol:
	mov	a,wr3
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	jmp	Out_LoadCapa
	;逆变输出电压(未处理)	
Inverter_OutVol:
	mov	a,PWM_on_data
	sub	a,97
	sz	c
	jmp	InvVoltMaxPwm		; 脉宽最大时电压处理.
	mov	a,ASCII_2
	mov	[00h],a
	inc	mp0
	
	clr	Load_Sege
	mov	a,2
	sz	Load_1Sege
	addm	a,Load_Sege	
	sz	Load_2Sege
	addm	a,Load_Sege	
	sz	Load_3Sege
	addm	a,Load_Sege
	sz	Load_4Sege
	addm	a,Load_Sege
	sz	Load_5Sege
	addm	a,Load_Sege
	mov	a,30
	subm	a,Load_Sege
	mov	a,Load_Sege
	mov	wr1,a
	clr	wr0
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr2
	addm	a,wr1
	
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0	

	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	jmp	Out_LoadCapa
	
InvVoltMaxPwm:			;Vout=OUT_AD*0.985(√0.97)
	
	mov	a,25
	mov	Ll2,a			;载入乘数
	mov	a,0
	mov	Lh2,a
	mov	a,OUT_ADValueL
	mov	Ll,a
	mov	a,OUT_ADValueH
	mov	Lh,a
	call	MULL_OF_16Bit
	mov	a,Ll
	mov	tmp5,a
	mov	a,Lh
	mov	tmp4,a			;载入被除数。
	mov	a,0		;
	mov	Lh2,a			;载入除数100。
	mov	a,44
	mov	Ll2,a
	call	DIV_OF_16Bit		;商=(Lh,Ll)
	mov	a,Lh
	mov	wr0,a
	mov	a,Ll
	mov	wr1,a
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	
	;输出负载量的处理
Out_LoadCapa:
	clr	wr1
	mov	a,20
	sz	Load_1Sege
	addm	a,wr1
	sz	Load_2Sege
	addm	a,wr1
	sz	Load_3Sege
	addm	a,wr1
	sz	Load_4Sege
	addm	a,wr1
	sz	Load_5Sege
	addm	a,wr1
	mov	a,wr1
	mov	Load_Sege,a
	mov	a,0
	mov	wr0,a
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
Work_Frequency:
	sz	Ac_Status_Flag
	jmp	Inverter_Freq
	mov	a,10204%256
	mov	tmp5,a
	mov	a,10204/256
	mov	tmp4,a			;载入被除数。
	mov	a,0		;
	mov	Lh2,a			;载入除数100。
	mov	a,Frequency_data
	mov	Ll2,a
	call	DIV_OF_16Bit		;商=(Lh,Ll)
	mov	a,Lh
	mov	wr0,a
	mov	a,Ll
	mov	wr1,a
	call	BCD_CONVER
	mov	a,30h

	addm	a,wr2
	addm	a,wr1

	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,wr1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	jmp	Battery_Capa
batter_Full_rs232:
	mov	a,0
	mov	wr0,a
	mov	a,135
	mov	wr1,a
	jmp	Batter_CapacDeal
Inverter_Freq:
	mov	a,ASCII_5
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
Battery_Capa:
	sz	Batter_Full
	jmp	batter_Full_rs232
	mov	a,100
	mov	Ll2,a			;载入乘数
	mov	a,0
	mov	Lh2,a
	mov	a,BAT_ADValueL
	mov	Ll,a
	mov	a,BAT_ADValueH
	mov	Lh,a
	call	MULL_OF_16Bit
	mov	a,Ll
	mov	tmp5,a
	mov	a,Lh
	mov	tmp4,a			;载入被除数。
	mov	a,325/256		;
	mov	Lh2,a			;
	mov	a,325%256
	mov	Ll2,a
	call	DIV_OF_16Bit		;商=(Lh,Ll)
	mov	a,Lh
	mov	wr0,a
	mov	a,Ll
	mov	wr1,a
	mov	Rs232BattGist,a
	sub	a,133			;电池电压高于13.3V时电池充满电.
	sz	c
	set	Batter_Full
Batter_CapacDeal:
	call	BCD_CONVER
	mov	a,30h
	addm	a,wr3
	addm	a,wr2
	addm	a,wr1
	mov	a,wr3		;高位先发
	mov	[00h],a
	inc	mp0
	mov	a,wr2
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,WR1
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_DOT
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_SPACE
	mov	[00h],a
	inc	mp0
     
	
RS232_Status:
	sz	Ac_Status_Flag
	jmp	Inver_Statu	
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
BYpass_Or_Active:
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
UPS_FailOrNalmal:
	sz	System_Stat_Flag
	jmp	Fail_Massege
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	jmp	UPS_TyP
Fail_Massege:
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0
UPS_TyP:
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0
	snz	Normal_INV_Test
	jmp	NO_INV_TeST
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0
	jmp	Shutdown_Active
Inver_Statu:
	SZ	Normal_INV_Test
	jmp	Inver_TestStatu
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0
	jmp	Batt_Status
Inver_TestStatu:
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
Batt_Status:
	sz	Battery_Lack
	jmp	Batt_Low
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
	jmp	BYpass_Or_Active
Batt_Low:
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0	
	jmp	BYpass_Or_Active
NO_INV_TeST:
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0
Shutdown_Active:
	mov	a,ASCII_0		;此处未处理实际情况.
	mov	[00h],a
	inc	mp0
Buzzer_CryStatus:
	mov	a,0ffh
	xor	a,Buzzer_Cry_Sta
	sz	Z
	jmp	Buz_OFF
	mov	a,ASCII_1
	mov	[00h],a
	inc	mp0
	jmp	exit_Q1_Set
	
Buz_OFF:
	mov	a,ASCII_0
	mov	[00h],a
	inc	mp0		


exit_Q1_Set:
	mov	a,ASCII_CR
	mov	[00h],a	
	jmp	Filsh_RS232Data
;---------------------------------------------------------------		
UPS_Answer_I:
	mov	a,0aah
	mov	mp0,a
	mov	a,0h
	mov	tblp,a
go_toNextTab:
	tabrdl	acc
	mov	[00h],a
	inc	tblp
	inc	mp0
	xor	a,ASCII_CR
	snz	Z
	jmp	go_toNextTab
Filsh_RS232Data:
	mov	a,0aah
	mov	mp0,a
	mov	a,[00h]
	mov	Send_DataBuffer,a
	mov	a,8
	mov	Send_DataBit,a		;8位发送位。
	mov	a,3
	mov	Data_Effic_Cunt,a
	
	set	Send_StarFlag		;启动发送位。
	clr	Send_Date_Flag
exit_RS232_Necet:

	mov	a,0a5h
	mov	mp1,a

exit_RS232:	
	ret
RS232_Message_run	endp
;***********************************
BCD_CONVER		proc
	clr	wr2
	clr	wr3
	clr	wr4
BCD_CON100:	
	mov	a,wr1
	sub	a,100
	mov	wr1,a
	
	mov	a,wr0
	sbc	a,wr4
	snz	c
	jmp	BCD_CON10
	mov	wr0,a
	inc	wr3
	jmp	BCD_CON100
BCD_CON10:
	mov	a,100
	addm	a,wr1
BCD_C10_loop:
	mov	a,wr1
	sub	a,10
	mov	wr1,a
	snz	c
	jmp	BCD_CON1
	inc	wr2
	jmp	BCD_C10_loop
BCD_CON1:
	mov	a,10
	addm	a,wr1
	ret		
BCD_CONVER		endp	
;******************************************************
;回答I
	ORG	0f00h			;共39位
	DC	ASCII_BE	;#
	DC	ASCII_O
	DC	ASCII_O
	DC	ASCII_L
	DC	ASCII_D
	DC	ASCII_S
	DC	ASCII_O
	DC	ASCII_U
	DC	ASCII_R
	DC	ASCII_C
	DC	ASCII_E
	DC	ASCII_SPACE
	DC	ASCII_SPACE
	DC	ASCII_SPACE
	DC	ASCII_SPACE
	DC	ASCII_SPACE
	DC	ASCII_SPACE	
        DC	ASCII_U
        DC   	ASCII_P
        DC   	ASCII_S
        DC   	ASCII_GON
        DC   	ASCII_3
        DC   	ASCII_9
        DC   	ASCII_0
        DC   	ASCII_M
        DC   	ASCII_SPACE
        DC   	ASCII_SPACE
        DC   	ASCII_SPACE
        DC   	ASCII_V
        DC   	ASCII_E
        DC   	ASCII_R
        DC   	ASCII_SPACE
        DC   	ASCII_7
        DC   	ASCII_DOT
        DC   	ASCII_0
        DC   	ASCII_0
        DC   	ASCII_SPACE
        DC   	ASCII_SPACE
        DC  	ASCII_CR
 ;回答Q1       
 	ORG	0F28H    
  
	DC   ASCII_BE
        DC   ASCII_2
        DC   ASCII_2
        DC   ASCII_5
        DC   ASCII_DOT
        DC   ASCII_0
        DC   ASCII_SPACE
        DC   ASCII_3
        DC   ASCII_DOT
        DC   ASCII_2
        DC   ASCII_SPACE
        DC   ASCII_1
        DC   ASCII_2
        DC   ASCII_DOT
        DC   ASCII_0
        DC   ASCII_0
        DC   ASCII_SPACE
        DC   ASCII_5
        DC   ASCII_0
        DC   ASCII_DOT
        DC   ASCII_0
        DC   ASCII_CR	
	end
	

	

⌨️ 快捷键说明

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