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

📄 hl-1000a.asm

📁 这个是UPS整套软件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
pa               equ    porta
pb               equ    portb
pc               equ    portc
pdd              equ    portd
pe               equ    porte
st               equ    status

SITEA            equ     portb.0   ;市电过零检测
RClK             equ     portb.1   ;595控制
CHGOFF           equ     portb.2   ;PFC供电电源控制
SER              equ     portb.3   ;灯的输出数据串口
PWERWATCH        equ     portb.4   ;12V电源监测
OUTAC            equ     portb.5   ;逆变同步信号
INAC             equ     portb.6   ;市电同步信号
LOAD1A           equ     portb.7   ;过流信号

RLY              equ     portc.0   ;旁路继电器
PWMOFFA          equ     portc.3   ;高端IGBT输出控制
INVRLY           equ     portc.4   ;输出继电器控制
SCLK             equ     portc.5   ;开机检测 /蜂鸣器
TXDA             equ     portc.6   ;发送
RXDA             equ     portc.7   ;接收

PFCOFFA          equ     portd.0   ;PFC停,开控制
SDAA             equ     portd.1   ;关机控制
DCOFF            equ     portd.2   ;DC-DC转换控制
BZ1              equ     portd.3   ;蜂鸣器
SCL              equ     portd.4   ;24C02
SDA              equ     portd.5   ;24C02
CN9              equ     portd.6   ;指示灯
CN10             equ     portd.7   ;指示灯

temp             equ     55h
bat              equ     5bh
line             equ     61h
load             equ     67h
inv              equ     6dh
busa             equ     73h
busb             equ     79h

frequency        equ     0a7h ; 0a7h-- 0adh 用来放 市电周期


light            EQU     20H  ;灯的状态
r1               EQU     21H  ;临时用
r2               EQU     22H

aa                EQU     23H


current_time1      equ     24h  ;110%过流用

current_time2      equ     25h  ;110%过流用


CC               equ     26h
mulcnd           equ     27h  ;8位乘数
mulplr           equ     28h  ;8位乘数
H_byte           equ     29h  ;16位高字节
l_byte           equ     2ah  ;16位低字

rating1           equ     2bh  ;110%额定电流
rating2           equ     2ch  ;150%额定电流

onetime          equ     2dh  ;记时用
onetime1         equ     2eh  ;
pid              equ     2fh  ;pid数据
pid1             equ     30h  ;


batterytime1      equ     31h
batterytime2      equ     32h


overp            equ     33h.0
closez           equ     33h.1
adcz             equ     33h.2
showz            equ     33h.3
keyz             equ     33h.4
keygz            equ     33h.5
pwmsz            equ     33h.6
pwmsAz           equ     33h.7

city160z         equ     34h.0
bz1z             equ     34h.1
hotz             equ     34h.2
overc            equ     34h.3  ;当报警旁路后,电流小于报警值是用
overc1           equ     34h.4
openz            equ     34h.5
batteryz         equ     34h.6
startupz         equ     34h.7

batteryaz        equ     35h.0     ;电池报警
inphasez         equ     35h.1     ;同步完成
cityz            equ     35h.2     ;
OUTACz           equ     35h.3
INACz            equ     35h.4
INACZt           equ     35h.5
inphashz         equ     35h.6
citywz           equ     35h.7


timer1           equ     36h
timer2           equ     37h
timer3           equ     38h
timer4           equ     39h

lightcl           equ     3ah       ;电流显示用

timer6           equ     3bh
timer7           equ     3ch
timer8           equ     3dh
timer9           equ     3eh
mix              equ     3fh

min              equ     40h
sum              equ     41h
sumh             equ     42h
pid2             equ     43h
f4a              equ     44h
countp           equ     45h
suma             equ     46h
lightc           equ     47h ;电池指示用
lightz           equ     48h
sumb             equ     49h
copyw            equ     4ah
copyst           equ     4bh
adcount          equ     4ch
tim1             equ     4dh
tim2             equ     4eh
Imax             equ     4fh

H_bytea          equ     50h  ;16位高字节
l_bytea          equ     51h  ;16位低字
countt           equ     52h



closeaz          equ     53h.0
batterylowz      equ     53h.1

pfcz             equ     53h.6
oneturnz         equ     53h.7


samez            equ     54h.0
highz            equ     54h.1
lowz             equ     54h.2
bypassz          equ     54h.3
bypassaz         equ     54h.4
currentoverz     equ     54h.5  ;报警用
currentrun       equ     54h.6  ;电流调整标志
 cetime1z        equ     54h.7

lightzl          equ     07fh




countpc          equ    0a0h
mixp             equ    0a1h
minp             equ    0a2h
sump             equ    0a3h
sumph            equ    0a4h
r1p              equ    0a5h
f4ap             equ    0a6h

electricity      equ     0b0h
electricity1     equ     0b1h

                      ORG         0

RESET:                GOTO        START
                      ORG         04H         ;中断向量
                      goto        PER_INT_V









PER_INT_V:
                     movwf      copyw
                     SWAPF      STATUS,W
                     CLRF       STATUS
                     MOVWF      copyst





    per1:             BCF         STATUS, RP0
                      BTFSC       PIR1,1            ;T2溢出中断
                      GOTO        PWM

OTHER_INT:
                      BSF         STATUS, RP0
                      BTFSC       INTCON,0          ;b口中断
                      GOTO        PRBIN

TM1:                  BTFSC       PIR1,0            ;T1中断
                      GOTO        TIME1



INT:                  BTFSC       INTCON,1          ;INT口中断
                      GOTO        PRBINT


START:
                      BcF         STATUS, RP0




                      bcf          t1con,0
                      movlw       0ffh
                      movwf       pa
                      movlw       0f4h
                      movwf       pb
                      movlw       00h
                      movwf       pc
                      movlw       0c5h
                      movwf       pdd

                      BsF        STATUS, RP0
                      movlw       0ffh
                      movwf       trisa
                      movlw       0f1h
                      movwf       trisb
                      movlw       00h
                      movwf       trisc
                      movwf       trisd





                      movlw       96
                      movwf       0a0h
                      movlw       0a0h
                      movwf       4h
        startb1:      incf        4h
                      movlw       00h
                      movwf       0h
                      decfsz      0a0h
                      goto        startb1

                      movlw       6
                      movwf      countpc
                      movlw     50
                      movwf     electricity1

                      BcF        STATUS, RP0





                      CLRF        PIE1       ;关所有外部中断
                      clrf        CCPR1L

                      CLRf        TMR1H
                      CLRF        TMR1L
                      CLRF        INTCON
                      CLRF        PIR1





                      movlw       96
                      movwf       20h
                      movlw       20h
                      movwf       4h
        startb:       incf        4h
                      movlw       00h
                      movwf       0h
                      decfsz      20h
                      goto        startb
                      movlw       6
                      movwf       adcount


                      movlw       0ffh
                      movwf       light
                      movlw       10
                      movwf       lightc
                      movlw       2
                      movwf       timer2
                      movlw       20
                      movwf       timer7
                      movlw     45
                      movwf     current_time2
                      movlw     17
                      movwf     batterytime2
                      movlw     100
                      movwf     timer4
                      movlw       3ch
                      movwf       tmr1h
                      movlw       0afh
                      movwf       tmr1l
                      movlw       0c8h
                      movwf        countp
                      clrf         tmr0


                      movlw       10
                      movwf        timer6

         aaa:

                     decfsz    timer8       ;延时
                     goto      aaa
                     decfsz    timer9
                     goto      aaa
                     btfsc       cn9
                     goto        tiaos1
                     bsf         cn9
                     goto        tiaos2
      tiaos1:
                      bcf      tiaos1
                      bcf      cn9
      tiaos2:         decfsz    timer6
                      goto      aaa





                      BTFSs      LOAD1A        ;过载检测
                      GOTO        overloading
                      BTFSs       PWERWATCH     ;12V电源检测
                      GOTO        powersupply




                      BSF         INTCON, GIE     ;开全体中断允许
                      BSF         T2CON, TMR2ON   ;开定时器T2
                      BSF        INTCON, PEIE    ;开外部中断

                      BsF         STATUS, RP0
                      movlw       1
                      movwf       adcon1
                      bsf         pie1,1

                      MOVLW       0c8h
                      MOVWF       PR2            ;先设PWM周期最

                      BcF         STATUS, RP0
startup:
                      bcf       cn10
                      decfsz    onetime    ;
                      goto      startupaa
                      decfsz    onetime1
                      goto      startupaa
                      decfsz    timer1
                      goto     startupaa
                      decfsz    timer2
                      goto     startupaa
                     ; bsf       sdaa
                      goto      startup
    startupaa:        BTFss       openz         ;启动检测
                      GOTO        startup
                      bsf         startupz
                      movlw       20
                      movwf       timer2
                      movlw       200
                      movwf       timer1
                      movlw       0ah
                      movwf       onetime1

                      movlw       0ch
                      movwf       ccp1con
                      MOVWF       CCP2CON
                      movlw       100
                      movwf       ccpr1l

                      BTFSC       OUTAC      ;逆变同步信号
                      bsf         OUTACz
       tt2:           BTFSC       INAC     ;市电同步信号
                      bsf         INACz

       tt1:
                      bsf         INTCON,3
                      bsf         INTCON, INT

                      BSF         T1CON, 4




  startrun:



                      movlw     0d1h        ;2
                      movwf     adcon0
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop
                      nop

                      bsf       adcon0,2
   linead:            btfsc     adcon0,2
                      goto      linead

                      movlw     line
                      addwf     f4a,0
                      movwf     4h
                      movfw     adres
                      movwf     0h
                      decfsz    adcount
                      goto      relay4a

       relay3:

⌨️ 快捷键说明

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