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

📄 hco00_00.asm

📁 用于电力系统自动化的逸精显示界面的ASM 编程
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;
;
;
;
;
;
;
;PUBLIC SYSTEM
CRC     EQU 0;1=crc,0=noncrc
MAXDDLL EQU 0H
MAXDDLH EQU 0C35H
NEGTIVE EQU 3
POSITIVE EQU -20

;DEFINE KEYS
LEFTKEY EQU 1
SUBKEY  EQU 5
UPKEY   EQU 7
ADDKEY  EQU 0
ESC     EQU 2
RHTKEY  EQU 3
ENTER   EQU 4
DOWNKEY EQU 6

;DEFINE LED
RDAM202    EQU 0203H
RDAS202    EQU 0207H
STAM202    EQU 0202H
STAS202    EQU 0206H
WDAM202    EQU 0201H
WDAS202    EQU 0205H
SETPAM202  EQU 0200H
SETPAS202  EQU 0204H
SETADDM202 EQU 0200H
SETADDS202 EQU 0204H
QDM202     EQU 0200H
QDS202     EQU 0204H
SHHM202    EQU 0200H
SHHS202    EQU 0204H

;DEFINE WATCHDOG
ADWDRST EQU 0400H

;DEFINE KEYBOARD
ADORDER  EQU 0600H
ADLIGHTL EQU 0601H
ADLIGHTH EQU 0602H

R0      EQU 00H
ADCOM   EQU 02H
HSIMOD  EQU 03H
HSOTIM  EQU 04H
HSITIM  EQU 04H
HSOCOM  EQU 06H
HSISTA  EQU 06H
SBUF    EQU 07H
INTMAS  EQU 08H
INTPEN  EQU 09H
WATCHD  EQU 0AH
TIMER1  EQU 0AH
TIMER2  EQU 0CH
BAUDRA  EQU 0EH
PORT0   EQU 0EH
PORT1   EQU 0FH
PORT2   EQU 10H
SPCON   EQU 11H
SPSTAT  EQU 11H
IOC0    EQU 15H
IOS0    EQU 15H
IOC1    EQU 16H
IOS1    EQU 16H

PAGE    EQU 1AH
PAGE1   EQU 1BH
VKW1    EQU 1CH
VKW1H   EQU 1DH
VKW2    EQU 1EH
VKW2H   EQU 1FH
VKW3    EQU 20H
VKW3H   EQU 21H
VKW4    EQU 22H
VKW4H   EQU 23H
FLAGP1  EQU 24H
FLAGP2  EQU 25H
FLAGP3  EQU 26H
FLAGP4  EQU 27H
FLAGPJ  EQU 28H
FLAGP5  EQU FLAGPJ
FLAGPJ1 EQU 29H
FLAGPJ2 EQU 2AH
FLAGPJ3 EQU 2BH
TIME    EQU 2CH
CLOCKL  EQU 2CH
TIMEH   EQU 2DH
TDQ     EQU 2EH
TDQL    EQU 2EH
TDQH    EQU 2FH
MLOOP   EQU 30H
SWITI   EQU 31H
SWITI1  EQU 32H
SWITI2  EQU 33H
SW1     EQU 34H
SW2     EQU 35H
SW3     EQU 36H
SW4     EQU 37H
SW5     EQU 38H
SW6     EQU 39H
CLKAX   EQU 3AH
CLKAXH  EQU 3BH
BLIGHT  EQU 3CH
ADDRBR1 EQU 3EH

ACQAX   EQU 40H
ACQAXH  EQU 41H
ACQBX   EQU 42H
ACQBXH  EQU 43H
ACQCX   EQU 44H
ACQCXL  EQU 44H
ACQCXH  EQU 45H
ACQDX   EQU 46H
ACQDXH  EQU 47H

MAX     EQU 48H
MAL     EQU 48H
MAXH    EQU 49H
MAH     EQU 49H
MBX     EQU 4AH
MBL     EQU 4AH
MBXH    EQU 4BH
MBH     EQU 4BH
MCX     EQU 4CH
MCL     EQU 4CH
MCXH    EQU 4DH
MCH     EQU 4DH
MDX     EQU 4EH
MDL     EQU 4EH
MDXH    EQU 4FH
MEX     EQU 50H
MEXH    EQU 51H
MFX     EQU 52H
MFXL    EQU 52H
MFXH    EQU 53H
MPNT    EQU 54H
MPNTH   EQU 55H
MCNT    EQU 56H
MCNTH   EQU 57H

CMAX    EQU 58H
CMAXL   EQU 58H
CMAH    EQU 59H
CMAXH   EQU 59H
CMBX    EQU 5AH
CMBXL   EQU 5AH
CMBH    EQU 5BH
CMBXH   EQU 5BH
CMCX    EQU 5CH
CMCXL   EQU 5CH
CMCH    EQU 5DH
CMCXH   EQU 5DH
CMDX    EQU 5EH
CMDXL   EQU 5EH
CMDH    EQU 5FH
CMDXH   EQU 5FH
CMEX    EQU 60H
CMEXL   EQU 60H
CMEH    EQU 61H
CMEXH   EQU 61H
CMFX    EQU 62H
CMFXL   EQU 62H
CMFH    EQU 63H
CMFXH   EQU 63H

DZAX    EQU 64H
DZAXL   EQU 64H
DZAH    EQU 65H
DZAXH   EQU 65H
DZBX    EQU 66H
DZBXL   EQU 66H
DZBH    EQU 67H
DZBXH   EQU 67H
DZCX    EQU 68H
DZCXL   EQU 68H
DZCH    EQU 69H
DZCXH   EQU 69H
DZDX    EQU 6AH
DZDXL   EQU 6AH
DZDH    EQU 6BH
DZDXH   EQU 6BH
DZEX    EQU 6CH
DZEXL   EQU 6CH
DZEH    EQU 6DH
DZEXH   EQU 6DH
DZFX    EQU 6EH
DZFXL   EQU 6EH
DZFH    EQU 6FH
DZFXH   EQU 6FH

SAX     EQU 70H
SAL     EQU 70H
SAH     EQU 71H
SAXH    EQU SAH
SBX     EQU 72H
SBL     EQU 72H
SBH     EQU 73H
SBXH    EQU SBH
SCX     EQU 74H
SCL     EQU 74H
SCH     EQU 75H
SCXH    EQU SCH
SDX     EQU 76H
SDL     EQU 76H
SDH     EQU 77H
SDXH    EQU SDH
SEX     EQU 78H
SEL     EQU 78H
SEH     EQU 79H
SEXH    EQU SEH
SFX     EQU 7AH
SFL     EQU 7AH
SFH     EQU 7BH
SFXH    EQU SFH
LENGTH  EQU 7CH
SADDR   EQU 7EH
BAUDSP  EQU 7FH
PEVENT1 EQU 80H
FLAGP6  EQU 82H
FLAGP7  EQU 83H
CLKBX   EQU 84H
CLKBXH  EQU 85H
PWD     EQU 86H
PWDL    EQU 86H


POPA    MACRO
        DCB    0F5H
        ENDM
;
PUSHA   MACRO
        DCB    0F4H
        ENDM
;
IDLPD   MACRO  VAL
        DCB    0F6H,VAL
        ENDM
;
CMPL    MACRO  VALS,VALD
        DCB    0C5H,VALD,VALS
        ENDM
;
BMOV    MACRO  VALS,VALD
        DCB    0C1H,VALD,VALS
        ENDM
;
DJNZW   MACRO  VALS,VALD
        DCB    0E1H,VALS,VALD-$-3
        ENDM

;
MOD1    MACRO X
        MUL ACQAX,X&A,X&A
        MUL ACQCX,X&B,X&B
        ADD ACQAX,ACQCX
        ADDC ACQBX,ACQDX
        ENDM

        CSEG AT 2000H
        DCW CLKINT
        DCW RET1
        DCW RET1
        DCW RET1
        DCW RET1
        DCW ACQ
        DCW RET1
        DCW RET1

        ORG 2018H
        DCB 0DH

        ORG 2080H
        ;INITIAL
START:  LD 18H,#100H
        DI
GBLIGHT:LDB MAXH,#03EH
GBLIT1: LDB MAX,STAM202[0]
        JBS MAX,7,GBLIT1
        STB MAXH,QDM202[0]
GBLIT2: LDB MAX,STAS202[0]
        JBS MAX,7,GBLIT2
        STB MAXH,QDS202[0]
        LD BLIGHT,#2
        STB R0,ADWDRST[R0]
        LDB IOC1,#74H
        LDB HSOCOM,#23H
        ADD HSOTIM,TIMER1,#0003H
        ;choice system back-check
        IF CRC=1
        ;system back-check start
        ;lled back-check start
XTZJ:   CALL QDLIGHT
        CALL ZJJX
        LDB MCX,#1
        LDB MCXH,#16
        STB R0,601H[0]
        LDB MAX,#0FFH
DLXJ7:  LDB MAXH,#3
DLXJ6:  LD MBX,#04444H
DLXJ:   XORB MAX,MCX
        STB MAX,601H[0]
        LDB MAX,#0FFH
        STB R0,ADWDRST[0]
        DJNZW MBX,DLXJ
        DJNZ MAXH,DLXJ6
        CMPB MCXH,#8
        JNE DLXJ3
        LDB MCX,#80H
DLXJ3:  CMPB MCXH,#8
        JNH DLXJ1
        SHLB MCX,#1
        SJMP DLXJ2
DLXJ1:  SHRB MCX,#1
DLXJ2:  DJNZ MCXH,DLXJ7
        LDB MBX,#16
ZJ1:    LD MCX,#400H
ZJ2:    DJNZW MCX,ZJ2
        STB R0,ADWDRST[0]
        STB R0,601H[0]
        DJNZ MBX,ZJ1
        ;62256 ram back-check start
        ;62256 address region A000H-FFFFH
        LD MAX,#0A000H
        LD MBX,#3000H
STEP0:  ST R0,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,STEP0
        LD MAX,#0A000H
        LD MBX,#3000H
        LD MCX,#7777H
STEP1:  ST MCX,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,STEP1
        LD MAX,#0A000H
        LD MBX,#3000H
STEP2:  LD MCX,[MAX]+
        XOR MCX,#7777H
        JE STEP3
        LDB MBX,#1
        CALL GJ
STEP3:  DJNZW MBX,STEP2
        LD MAX,#0A000H
        LD MBX,#3000H
STEP4:  ST R0,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,STEP4
        ;62256 pass
        ;idt7132 address region 9800-9fffh
        ;idt7132 ram back-check start
        LD MAX,#9800H
        LD MBX,#400H
CR0:    ST R0,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,CR0
        LD MAX,#9800H
        LD MBX,#400H
        LD MCX,#8888H
CR1:    ST MCX,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,CR1
        LD MAX,#9800H
        LD MBX,#400H
CR2:    LD MCX,[MAX]+
        XOR MCX,#8888H
        JE CR3
        LDB MBX,#4
        CALL GJ
CR3:    DJNZW MBX,CR2
        LD MAX,#9800H
        LD MBX,#400H
CR4:    ST R0,[MAX]+
        STB R0,ADWDRST[0]
        DJNZW MBX,CR4
        ;idt7132 pass
        ;6264 ram back-check start
        ;628128 ram back-check start
        ;wait for idt7132 save as result
        ;wait for 1s
        CALL WAIT
        LD MAX,#IDTRAM
        LD MBX,#5
STEP5:  LD MCX,[MAX]+
        CMP MCX,#5555H
        JNE STEP6
        DJNZ MBX,STEP5
        SJMP STEP7
STEP6:  LDB MBX,#2
        CALL GJ
        ;6264 pass
STEP7:  LD MBX,#5
STEP8:  LD MCX,[MAX]+
        CMP MCX,#6666H
        JNE STEP9
        DJNZ MBX,STEP8
        SJMP STEP10
STEP9:  LDB MBX,#3
        CALL GJ
STEP10: NOP
        ENDIF
        ;628128 pass
        ;initial data
        ;idt7132 20th address include
        ;address,dznum,baud,length
        CALL WAIT
        LD MAX,#9814H
        LD MBX,#1
        LDB MCX,[MAX]+
        STB MCX,SADDR
        CLR MCX
        LDB MCX,[MAX]+
        ST MCX,BRNUM[0]
        ST MCX,RNUM[0]
        LDB MCX,[MAX]+
        STB MCX,BAUDSP
        LDB MCX,[MAX]+
        STB MCX,LENGTH
        LD  MCX,[MAX]+      ;02/01/06
        ST  MCX,RWORD[0]    ;
        ST  MCX,BRWORD[0]   ;
        ;constant be over
        ;start fixed value
        LD MAX,#9D00H
        LDB MBX,LENGTH
        LD MDX,#RISW
STEP11: LDB MCX,[MAX]+
        STB MCX,[MDX]+
        DJNZ MBX,STEP11
        LDB MCX,[MAX]+
        STB MCX,[MDX]+
        LDB MBX,LENGTH
        INCB MBX
        LD MCX,#RISW
        LD MDX,#BRISW
STEP12: LDB MAX,[MCX]+
        STB MAX,[MDX]+
        DJNZ MBX,STEP12
        ;initial start
        LDB MAX,#0FFH
        STB MAX,LLED3[0]
        LD PEVENT1,#EVTTOP1
        LD ADDRBR1,#SUREP1
        LD PWD,#PWDS
        ST R0,BA14CHA[0]
        ST R0,BA1400H[0]
        CLRB SWITI
        CLRB SWITI1
        CLRB SWITI2
        ;clear register start
        CLR FLAGP1
        CLR FLAGP3
        CLR FLAGPJ
        CLR FLAGPJ2
        CLR CLKAX
        CLRB SW4
        CLRB SW5
        CLRB SW6
        LD MAX,#CMAX
        LDB MBX,#18
STEP13: ST R0,[MAX]+
        DJNZ MBX,STEP13
        LD MAX,#MESS
        LD MBX,#100H
STEP14: STB R0,[MAX]+
        DJNZW MBX,STEP14
        ST R0,TEMP0[0]
        ST R0,TEMP1[0]
        ST R0,TEMP2[0]
        ST R0,TEMP3[0]
        ST R0,TEMP4[0]
        ST R0,TEMP5[0]
        ST R0,TEMP6[0]
        ST R0,TEMP7[0]
        ST R0,TEMP8[0]
        ST R0,TEMP9[0]
        ST R0,TEMP10[0]
        ST R0,TEMP11[0]
        ST R0,TEMP12[0]
        ;initial control register start
INI485: lDB SPCON,#00001010B;0AH
        LDB IOC0,#81H
        LDB HSIMOD,#01H
        LDB INTMAS,#01101101B;#0EDH ;TOTAL 6 INT
        LDB INTPEN,R0
        LDB HSOCOM,#38H
        ADD HSOTIM,TIMER1,#263H
        ;INI END
        EI

LOOP:   ST MAX,LMAX[0]
        ST MBX,LMBX[0]
        ST MCX,LMCX[0]
        ST MDX,LMDX[0]
        ST MEX,LMEX[0]
        ST MFX,LMFX[0]
        ST MCNT,LMCNT[0]
        ST MPNT,LMPNT[0]
        JBS FLAGP4,4,LOOP1
        LD ADDRBR1,#SUREP1
        CMPB CLKAXH,R0
        JNE LOOP1
        LDB MAX,TEMP6[0]
        LDB CLKAXH,#30
        AND MAX,#3
        SHL MAX,#1
        LD MCX,X_XSJM[MAX]
        CALL XSJM
        LDB MAX,TEMP6[0]
        INCB MAX
        STB MAX,TEMP6[0]
        SJMP LOOP1
XSJM:   BR [MCX]
LOOP1:  CALL QDLIGHT
        ;start loop
        ;start cal.
        ;start take events record back
        LD MAX,#981EH
        LDB MBX,#5
        CLR MEX
HX1:    LD MDX,[MAX]
        LD MCX,[MAX]+
        XOR MEX,MCX
        DJNZ MBX,HX1
        XOR MDX,MEX
        JNE HX4
        ADD MAX,MEX,#3600H
        LD MDX,MAX
        SUBB MDXH,#0A0H
        DIVUB MDX,#0AH
        CMPB MDXH,R0
        JNE HX4
        CMP MAX,#EVTTOP1
        JNE HX2
        LD PEVENT1,#EVTTOP1
        SJMP HX4
HX2:    CMP MAX,PEVENT1
        JE HX4
        SUB MBX,MAX,#EVTTOP1
        LD MAX,#9828H
        LD PEVENT1,#EVTTOP1
HX3:    LDB MCX,[MAX]+
        STB MCX,[PEVENT1]+
        DJNZW MBX,HX3
        ;start take data back
HX4:    LD MAX,#9B00H
        LD MBX,#80H
        LD MDX,#MESS
HX5:    LDB MCX,[MAX]+
        STB MCX,[MDX]+
        DJNZW MBX,HX5
        LD MAX,#MESS+32
        LD MBX,[MAX]
        ST MBX,SWD1[0]
        LD MAX,#9B22H
        LD MBX,SWD2[0]
        ST MBX,[MAX]

⌨️ 快捷键说明

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