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

📄 ups600w16f73.asm

📁 工频后备式UPS-600W
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;                              ************************************  
;                              *电气参数:600W 220V 50/60Hz自动      *
;                              *通信方式:智能通信UPSilon2000         *
;			                                                  
;                             ************************************
;                                           优化记录
; ———————————————————————————————————————————————————————————————————————————————————————————————————————————————

                LIST P=16F73,F=inhx8m
                INCLUDE "P16F73.INC"
                

;-------------------- Timer 0 define

TMR0_VALUE       EQU     5FH		;0B8H      ;80.5us

TMR1_VALUE        EQU    0F800H   	;1ms
SYS_TIME	EQU	.138
									       ;       2, 32us period
;----------------------<< Define system timer count value
FOUR_TEN_SECOND     EQU     .2       ;0.4s
ONE_SECOND          EQU     .5       ;1s
TWO_SECOND          EQU     .10      ;2s
THREE_SECOND        EQU     .15      ;3s
FOUR_SECOND         EQU     .20      ;4s
SIX_SECOND          EQU     .30      ;6s
Ten_Second          EQU     .50    
THIRTY_SECOND       EQU     .150     ;30s
;------------------------------------------------
VIN_300V            EQU     .105
;------------------------------------------------
Vin_125             EQU    .90	;275            
Vin_120             EQU    .88	;265               ;*              
Vin_110             EQU    .79	;242            
Vin_105             EQU    .76	;235               ;6DH              
Vin_95              EQU    .69	;208               ;65H
Vin_90              EQU    .67	;203               ;62H              
Vin_80              EQU    .56	;170               ;*54H
Vin_75              EQU    .53	;165
VIN_DOT             EQU     10h;1AH	;修改   
SHORT_AD	    EQU	    .50;2.53VDC>>>>>>>>>>>>>>>>>>
VOLT_2VDC           EQU     61H                ;68H
VOLT_DC_HIGH        EQU     64H
LIMIT_2VHI          EQU     85H
LIMIT_2VLOW         EQU     44H

VOUT_START          EQU     98H		;输出电压计算参数(脉宽计算)
VOUT_START_LOW      EQU     78H		
DIM_VALUE           EQU     02H
VOUT_SHORT          EQU     0ah;35H
VOUT_INIT           EQU     8CH

PWM_DUTY_60Hz       EQU      .102        ;60Hz频率
PWM_DUTY_50Hz	    EQU	     .122	 ;50Hz频率

PWM_START_RATE      EQU      .20
PWM_REG_RATE        EQU      .40
PWM_FAST_RATE       EQU      .40
PWM_MAX_RATE60Hz    EQU      .99
PWM_MAX_RATE50Hz    EQU	     .118
HIGH_LIMIT	    EQU	     .200
LOW_LIMIT           EQU      .30
OUT_SAMPLE_TIME	    EQU	     .3  ;逆变采样在输出电压中点

;VBATT_10V            EQU     0A4H		;
;VBATT_1V             EQU     12H		;通信时电池电压计算
BATT_10V             EQU     .100
BATT_11V             EQU     .110		;0B7H               ;0BDH
BATT_11V5            EQU     .115
BATT_11V8            EQU     .118               ;0C5H
BATT_12V5            EQU     .125               ;0CEH
BATT_12V8	     EQU     .128
BATT_13V1	     EQU	.131
BATT_13V5            EQU     .135               ;0DEH++++++++++
ChargeVolHigh	     equ	      .150
ChargeVolLow	     equ	.80
REG_INIT             EQU    00H
REG_DEC              EQU    55H
REG_INC              EQU    0AAH

MIN_SAMPLE_TIM		EQU	.150
MAX_SAMPLE_TIME		EQU	.250

;================================
CUT_NOT             EQU      00H
CUT_START           EQU      55H
CUT_ALREADY         EQU      0AAH


;----------------------------------------------
VOLT_LOW            EQU     55H
VOLT_NORMAL         EQU     00H
VOLT_HIGH           EQU     0AAH

KEY_CLR             EQU     00H
KEY_SHORT           EQU     55H
KEY_LONG            EQU     0AAH
KEY_REPEAT          EQU     0BBH

POWER_220VAC        EQU     00H
POWER_CONVERT       EQU     55H
AC_TO_CONV          EQU     0AAH
CONV_TO_AC          EQU     0BBH


RelayReg1           EQU     00H
RelayReg2           EQU     05H
RelayReg3           EQU     0AH

BATT_LOW            EQU     05H
BATT_NORMAL         EQU     55H
BATT_NOT_SURE       EQU     0AAH
BATT_FAILED         EQU     0FFH

BUZPS_AcNormal      EQU     56H    
BUZPS_LoadOneMinOff EQU     23
BUZPS_LoadOneMinOn  EQU     45
BUZPS_OFF           EQU     00H		;关机报警和交流状态时设置
BUZPS_INIT          EQU     11H
BUZPS_ON            EQU     55H		;在过载时设置此状态
BUZPS_SHORT         EQU     77H		;慢节奏响
BUZPS_LONG          EQU     88H		;快节奏响
BUZPS_STOP          EQU     0AAH	;消声
BUZPS_CANCLE	    EQU	    0BBH	;过载报警后设置
Stopbuz_key	    EQU	    30H
TEST_OFF            EQU     00H
TEST_ON             EQU     55H

PWM_INIT            EQU      25H
PWM1_IN_PROC        EQU      55H
PWM2_IN_PROC        EQU      0AAH
PWM_START           EQU      55H
PWM_DELAY           EQU      0DDH

OutPuT122V60HzValue	EQU	35ECH;5200H
OutPuT122V50HzValue	EQU	3AE6H;4273H;5930H
	
VIN_REGULATE        EQU      55H
VIN_NO_REGULATE     EQU      0AAH

TURN_ON             EQU      00H
TURN_OFF            EQU      55H

CONVERT_START       EQU      55H
CONV_START_OFF      EQU      0AAH

LOADOVER_DIS        EQU      00H
LOADOVER_ENA        EQU      55H


RECI_INIT           EQU      00H
RECI_READY          EQU      22H
RECI_PROC           EQU      55H
RECI_END            EQU      0AAH
;------------------------------------------

SHUT_OFF            EQU     00H
SHUT_ON             EQU     55H

MAX_OFF             EQU     00H
MAX_ON              EQU     55H

;---------------------------------------
ASCII_SPACE         EQU      20H
ASCII_BE            EQU      23H
ASCII_START         EQU      28H
ASCII_GON	    EQU	     2DH
ASCII_DOT           EQU      2EH
ASCII_0             EQU      30H
ASCII_1             EQU      31H
ASCII_2             EQU      32H
ASCII_3             EQU      33H
ASCII_4             EQU      34H
ASCII_5             EQU      35H
ASCII_6             EQU      36H
ASCII_7             EQU      37H
ASCII_8             EQU      38H
ASCII_9             EQU      39H
ASCII_A             EQU      41H
ASCII_B             EQU      42H
ASCII_C             EQU      43H
ASCII_D             EQU      44H
ASCII_E             EQU      45H
ASCII_F             EQU      46H
ASCII_G             EQU      47H
ASCII_H             EQU      48H
ASCII_I             EQU      49H
ASCII_J             EQU      4AH
ASCII_K             EQU      4BH
ASCII_L             EQU      4CH
ASCII_M             EQU      4DH
ASCII_N             EQU      4EH
ASCII_O             EQU      4FH
ASCII_P             EQU      50H
ASCII_Q             EQU      51H
ASCII_R             EQU      52H
ASCII_S             EQU      53H
ASCII_T             EQU      54H
ASCII_U             EQU      55H
ASCII_V             EQU      56H
ASCII_W             EQU      57H
ASCII_X             EQU      58H
ASCII_Y             EQU      59H
ASCII_Z             EQU      5AH
ASCII_CC		    EQU	     5BH
ASCII_JJ	    EQU	     5DH

ASCII_CR            EQU      0DH

;------------------------PortA Defination
_PROT_SIGN      equ     0                 ;Protect signal input
_VOLT_OUT       equ     1                 ;Output volt detect
_LOAD_IN	equ	2		  ;Output Current
_BATT_VOLT      equ     3                 ;Battery volt detect
_VOLT_IN        equ     5                 ;Input volt detect
;----------------------PortB defination
_DLY_SO		equ	1			;Serial com clk
_ASIS_POWER     equ     2 			;Assist power control
_LOAD_REG	equ	3		;

_BUZPS          equ     5                 	;Buz output
_PWM1		equ	6
_PWM2		equ	7

;---------------------PortC defination
_RELAY3		equ	0
_RELAY2		equ	1                 ;RC1,Convert signal output2(PWM)
_RELAY1		equ	2                 ;RC2,Convert signal output1(PWM)
_KEY_INPUT	equ	3                 ;RC3,
_DLY_CS        	equ     4                 ;RC4,Serial com output
_DLY_SCK        equ     5                 ;RC5,Serial com input
_COM_TX         equ     6		  ;RC6,
_COM_RX         equ     7		  ;RC7,
;-----------------------------ram defination

System_Timer           EQU     20h      ;0H
Off_Timer              EQU     21H
Off_Timer1             EQU     22h      ;1H
KeyInput_Timer         EQU     23h      ;2H
Startup_Timer          EQU     24h      ;3H
Test_Timer             EQU     25h      ;5H
Buzps_Timer            EQU     26h      ;6H
PWMDuty_Timer          EQU     27h      ;7H
PWMRate_Timer          EQU     28h      ;8H
TwoMinuteCounterLow    EQU     29H
TwoMinuteCounterHigh   EQU     2Ah
PWM_MAX_RATE            EQU     2BH 
Delay_Timer            EQU     2Ch
Pow_Stataus            EQU     2Dh      ;0DH
Batt_JumpValue         EQU     2EH
Volt_Prot              EQU     2Fh      ;0FH
Batt_Stataus           EQU     30h      ;11H
RelayState             EQU     31h      ;12H
PWMST_Timer            EQU     32h      ;16H
BuzpsStataus           EQU     33h      ;17H
TestStataus            EQU     34h      ;18H
Catch_RAM	       EQU     35h      ;1AH
Catch_RAMH             EQU     36h      ;19H
CutFlag                EQU     37h      ;14H
VIn_ADValueH           EQU     38h      ;1CH
VIn_ADValue            EQU     39h      ;1EH
VBatt_ADValue          EQU     3Ah
PWMRegValue            EQU     3Bh      ;22H

KeyCode                EQU     3ch      ;24H
Control_Time           EQU     3dh      ;28H

ConvDly_Timer          EQU     3Eh
PowConvStataus         EQU     3Fh
ACDly_Timer            EQU     40h
TurnOffFlag            EQU     41h
AC_Battery_Timer       EQU     42h
FastStartFlagH         EQU     43h
FastShortTime          EQU     44h  ;;;;;;;;;;;
ConvStartFlag          EQU     45h
ConvStart_Timer        EQU     46h
ShutDownFlag           EQU     47h
LoadTest_Timer         EQU     48h
WenBatWorkAcSampTime	EQU     49h
LoadDLY_State          EQU     4Ah
BattDLY_State          EQU     4Bh

Frequency              EQU     4Ch      ;NOT USE res 2
FrequencyCnt           EQU     4Eh      ;NOT USE res 2

UserFlag               	EQU     50h      ;NOT USE 
Batt_Base_Value        	EQU     51h
TAB_Buffer             	EQU     52h
LoadFlag               	EQU     53H
ADC_Buffer             	EQU     54h
Crurrent_N	       	EQU	05AH
PWMStataus		EQU	05BH
CurrentAvgValue        	EQU     5cH
Buzz_Status1          	EQU     5DH
CurrSumLow             	EQU     5EH
CurrSumHi              	EQU     5FH 
SampCurrCount          	EQU     60H 
;==========User Flag Define
;--------------------------------Working ram buffer defination
WR0                      EQU     61h
WR1                      EQU     62h
WR2                      EQU     63h
WR3                      EQU     64h
WR4                      EQU     65h
WR5                      EQU     66h
WR6                      EQU     67h
WR7                      EQU     68h
WR8                      EQU     69h
WR9                      EQU     6Ah
VoutSamlp_Point          EQU     6Bh
OutputFreq               EQU     6Ch		;未用
VOut_ADValue	        EQU     6Dh		;未用
WR13                     EQU     6Eh
Load_LinkTime               EQU     6Fh
direction_Value          EQU     70h
TwoMinuteCounterLow1     EQU     76h
TwoMinuteCounterHigh1    EQU     77H 
BcdMi                    EQU     78H
BcdLo                    EQU     79H 

SampCurr10MS		EQU	07AH
DOWN_LOWTIME		EQU	07BH  
ON_HIGETIME		EQU	07CH
    
PchSave                  EQU     7dH
StatusSave               EQU     7eh
WSave                    EQU     7fh
;---------------------------------------------
ReciStatus              EQU      0A0h
ReciCounter             EQU      0A1h
SendCounter             EQU      0A2h
SendLength              EQU      0A3h
ComReg1                 EQU      0A4h
ComReg2                 EQU      0A5h
COMWR0                  EQU      0A7h
COMWR1                  EQU      0A8h
COMWR2                  EQU      0A9h
COMWR3                  EQU      0AAh
ShutS_Timer             EQU      0ABh
ShutM_Timer             EQU      0ACh
BattFlag                EQU      0ADH
PWMMaxFlag              EQU      0AEH
Dotm_Timer              EQU      0AFH
Min_Timer               EQU      0B0H
Hour_Timer              EQU      0B1H
Shut_Stataus            EQU      0B2H
FSREG                   EQU      0B3H
PageStatus              EQU      0B4H
Re_Stataus              EQU      0B5H
COMWR6             	EQU      0B6H
COMWR4                  EQU      0B7H
COMWR5                  EQU      0B8H
COMWR7			EQU	 0B9H
COM_Buffer              EQU      0BAh

HPCREG                  EQU      0FBH
HWR13                   EQU      0FCh
HWR14                   EQU      0FDh
HWR15                   EQU      0FEh
HWR16                   EQU      0FFh



;use HT1621 Display
;
;Segment connect as follow	
;	COM0 		COM1 		COM2
;S0	Normal		LoadA		BatteryCapacity1
;S1	Battery		LoadB		BatteryCapacity2
;S2	Charge		LoadC		BatteryCapacity3
;S3	OverLoad	LoadD		BatteryCapacity4
;S4	Fault		LoadE		BatteryCapacity5
;

;HT1621 接口定义
CS	MACRO	III
	IF	III==HIGHO
	BSF	PORTC,_DLY_CS	;RC5
	ELSE	
	BCF	PORTC,_DLY_CS
	ENDIF
	ENDM
DATA_PIN	MACRO	III
	IF	III==HIGHO
	BSF	PORTB,_DLY_SO	;RC3
	ELSE	
	BCF	PORTB,_DLY_SO
	ENDIF
	ENDM
MAKEWRCLK		MACRO
	BCF	PORTC,_DLY_SCK	;RC4
	CALL	Delay_us
	BSF	PORTC,_DLY_SCK
	CALL	Delay_us
	ENDM		

;RAM 结构定义 

Seg0RAM			EQU	ADC_Buffer;(54h)
Normal			EQU	0
LoadA			EQU	1
BatteryCapacity1	EQU	2

Seg1RAM			EQU	ADC_Buffer+1
Battery                 EQU	0
LoadB                   EQU	1
BatteryCapacity2        EQU	2
	
Seg2RAM			EQU	ADC_Buffer+2
Charge			EQU	0
LoadC		        EQU	1
BatteryCapacity3        EQU	2

Seg3RAM			EQU	ADC_Buffer+3
OverLoad		EQU	0
LoadD		        EQU	1
BatteryCapacity4        EQU	2

Seg4RAM			EQU	ADC_Buffer+4
Fault			EQU	0
LoadE		        EQU	1
BatteryCapacity5        EQU	2


ON	EQU	43
OFF	EQU	78
HIGHO	EQU	99
LOWO	EQU	31



BATTCAPDLY	MACRO	sseg
	IF	sseg==0
	BCF	Seg0RAM,BatteryCapacity1
	BCF	Seg1RAM,BatteryCapacity2
	BCF	Seg2RAM,BatteryCapacity3
	BCF	Seg3RAM,BatteryCapacity4
	BCF	Seg4RAM,BatteryCapacity5
	ENDIF
	IF	sseg==1
	BSF	Seg0RAM,BatteryCapacity1
	BCF	Seg1RAM,BatteryCapacity2
	BCF	Seg2RAM,BatteryCapacity3
	BCF	Seg3RAM,BatteryCapacity4
	BCF	Seg4RAM,BatteryCapacity5
	ENDIF
	IF	sseg==2
	BSF	Seg0RAM,BatteryCapacity1
	BSF	Seg1RAM,BatteryCapacity2
	BCF	Seg2RAM,BatteryCapacity3
	BCF	Seg3RAM,BatteryCapacity4
	BCF	Seg4RAM,BatteryCapacity5
	ENDIF
	IF	sseg==3
	BSF	Seg0RAM,BatteryCapacity1
	BSF	Seg1RAM,BatteryCapacity2
	BSF	Seg2RAM,BatteryCapacity3
	BCF	Seg3RAM,BatteryCapacity4
	BCF	Seg4RAM,BatteryCapacity5
	ENDIF
	IF	sseg==4
	BSF	Seg0RAM,BatteryCapacity1
	BSF	Seg1RAM,BatteryCapacity2
	BSF	Seg2RAM,BatteryCapacity3
	BSF	Seg3RAM,BatteryCapacity4
	BCF	Seg4RAM,BatteryCapacity5
	ENDIF
	IF	sseg==5
	BSF	Seg0RAM,BatteryCapacity1
	BSF	Seg1RAM,BatteryCapacity2
	BSF	Seg2RAM,BatteryCapacity3
	BSF	Seg3RAM,BatteryCapacity4
	BSF	Seg4RAM,BatteryCapacity5
	ENDIF
	ENDM

LOADDLY:	MACRO	sseg
		
	IF	sseg==0
	BCF	Seg0RAM,LoadA
	BCF	Seg1RAM,LoadB
	BCF	Seg2RAM,LoadC
	BCF	Seg3RAM,LoadD
	BCF	Seg4RAM,LoadE
	ENDIF

	IF	sseg==1
	BSF	Seg0RAM,LoadA
	BCF	Seg1RAM,LoadB
	BCF	Seg2RAM,LoadC
	BCF	Seg3RAM,LoadD
	BCF	Seg4RAM,LoadE
	ENDIF
	
	IF	sseg==2
	BSF	Seg0RAM,LoadA
	BSF	Seg1RAM,LoadB
	BCF	Seg2RAM,LoadC
	BCF	Seg3RAM,LoadD
	BCF	Seg4RAM,LoadE
	ENDIF
	
	IF	sseg==3
	BSF	Seg0RAM,LoadA
	BSF	Seg1RAM,LoadB
	BSF	Seg2RAM,LoadC
	BCF	Seg3RAM,LoadD
	BCF	Seg4RAM,LoadE
	ENDIF
	
	IF	sseg==4
	BSF	Seg0RAM,LoadA
	BSF	Seg1RAM,LoadB
	BSF	Seg2RAM,LoadC
	BSF	Seg3RAM,LoadD
	BCF	Seg4RAM,LoadE
	ENDIF
	
	IF	sseg==5
	BSF	Seg0RAM,LoadA
	BSF	Seg1RAM,LoadB
	BSF	Seg2RAM,LoadC
	BSF	Seg3RAM,LoadD
	BSF	Seg4RAM,LoadE

	ENDIF
	
	ENDM
	
NORMALDLY	MACRO	III
	IF	III==ON 
	BSF	Seg0RAM,Normal
	ELSE

⌨️ 快捷键说明

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