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

📄 zz.txt

📁 通讯程序,用于单片机设计,用80C196开发设计的汇编原代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;e ublic subsysetm
;uzba1,uzbb1,uzbc1
;uzba2,uzbb2,uzbc2
;izba1,izbb1,izbc1
;izba2,izbb2,izbc2
;t1,t2,rh,wd
baud    EQU 0cH
ADFLAG  EQU 1;1=AC(U,I),0=T,DC
KCJ1GH    EQU 07FFEh ;0
KCJ1GT    EQU 0FDF7H ;1
KCJ2GH    EQU 0DFEFH ;2
KCJ2GT    EQU 0EFBFH ;3
KCJ3GH    EQU 0F77FH ;4
KCJ3GT    EQU 0FBDFH ;5
KCJ4GH    EQU 0BFFBH ;6
KCJ4GT    EQU 0FEFDH ;7
;

        ;inti sport
INI485: ldb 0eh,#baud
        ldb 0eh,#80h
        ldb spcon,#0ah
        ;SET HZ MEASURE MODE
        LDB IOC0,#081H;081H

        LDB HSIMOD,#01H
        LDB INTMAS,#0edh;6DH ;TOTAL 6 INT
        LDB INTPEN,00H
        LDB HSOCOM,#38H
        ADD HSOTIM,TIMER1,#611
        EI
        ;INI END

LOOP:   JBS FLAGP4,4,LOOP1
        LD ADDRBR1,#SUREP1
        CMPB CLKAXH,R0
        JNE LOOP1
        LDB MAX,TEMP6[0]
        AND MAX,#7
        cmpb max,#05
        jnh looop
        clrb max
        ;SERIAL PORT INTERRUPT SERVICE PROGRAM
        ;SPORT INTTERUPT
SPORT:  PUSHF
        jbc spstat,6,spret
        ANDB SAL,SBUF,#07FH
        CMPB SAL,SADDR
        JE SP1 ;IF ADDR.CODE EQU JMP
spret:  POPF
        RET

SP1:    EI
        LDB INTMAS,#00100001B ;enable other int (NO HZINT)
        LDB SAL,SBUF
        LDB SPCON,#0BH ;CHANGE SERIAL PORT MODE TO 3
        JBS SAL,7,SPLTA ;IF SHORT TEXT JMP
        SJMP SPWT1
        ;LONG TEXT
SPLTA:  LDB INTMAS,#25H
        LD PSBUF,#SBUFR ;SBUFR RX BUFFER SUM 256 BYTE
        STB SAL,[PSBUF]+ ;addr. code
SPLT:   LDB SAH,SPSTAT
        JBC SAH,6,SPLT
        LDB SAH,SBUF ;GET TEXTHEAD CODE
        STB SAH,[PSBUF]+
        ;'A5H' VSET & CTANDPTBL SET COMMAND
SPLT5:  XORB SAL,SAH
SPLT2:  LDB SAH,SPSTAT
        JBC SAH,6,SPLT2
        LDB SCNT,SBUF ;GET TEXTLENGTH CODE
        STB SCNT,[PSBUF]+
        XORB SAL,SCNT
        INCB SCNT
SPLT3:  LDB SAH,SPSTAT
        JBC SAH,6,SPLT3 ;WAIT FOR SPORT DATA
        LDB SAH,SBUF ;GET TEXT CODES SUM 30 BYTE
        STB SAH,[PSBUF]+
        XORB SAL,SAH
        DJNZ SCNT,SPLT3
        JE SPLT3A ;XOR RESULT IS NOT 0 JMP
        sjmp sprt

splt3a: LD PSBUF,#SBUFR
        LD SAX,[PSBUF]+
        CMPB SAH,#05AH
        JE SCOMSWS
JSDATA: SJMP SDATA
SCOMSWS:LD SAX,[PSBUF]+
        CMPB SAL,#6
        JNE JSDATA
        ANDB SAL,SAH,#0D0H
        CMPB SAL,#0C0H
        JNE JSDATA
        LD SBX,[PSBUF]+
        CMPB SAH,SBH
        JNE JSDATA
        NOTB SAH
        CMPB SAH,SBL
        JNE JSDATA
        LD SAX,[PSBUF]+
        CMPB SAL,SBL
        JNE JSDATA
        CMPB SAH,SBH
        JNE JSDATA
        CMPB SBL,[PSBUF]
        JNE JSDATA

SCMSW:  ANDB SAL,SAH,#0FH
        CMPB SAL,#00H
        JNE SCMSWA
        LD SBX,#KCJ1GT
        SJMP SCMSWH
SCMSWA: CMPB SAL,#03H
        JNE SCMSWB
        LD SBX,#KCJ1GH

        ORB FLAGP6,#02H
        SJMP SCMSWH
SCMSWB: CMPB SAL,#04H
        JNE SCMSWC
        LD SBX,#KCJ2GT
        SJMP SCMSWH
SCMSWC: CMPB SAL,#07H
        JNE SCMSWD
        ORB FLAGP6,#02H
        LD SBX,#KCJ2GH
        SJMP SCMSWH
SCMSWD: CMPB SAL,#08H
        JNE SCMSWE
        LD SBX,#KCJ3GT
        SJMP SCMSWH
SCMSWE: CMPB SAL,#0BH
        JNE SCMSWF
        LD SBX,#KCJ3GH
        ORB FLAGP6,#02H
        SJMP SCMSWH
SCMSWF: CMPB SAL,#0CH
        JNE SCMSWG
        LD SBX,#KCJ4GT
        SJMP SCMSWH
SCMSWG: CMPB SAL,#0FH
        JNE SCMSW3
        LD SBX,#KCJ4GH
        ORB FLAGP6,#02H

SCMSWH: DI
        LDB HSOCOM,#22H
        ADD HSOTIM,TIMER1,#0003H
        ORB BA7FC2,#05H
        STB BA7FC2,ADKB1[R0]
        STB   sbX,ADSWOL[R0]
        STB   sbXH,ADSWOH[R0]
        LDB HSOCOM,#12H
        ADD HSOTIM,TIMER1,#0000H
        LDB TTZ,#TTZ1
        EI
SCMSW3: LD SBX,#SBUFR
        LD PSBUF,#SBUFS
        LDB SCNT,#5
SCMLP:  LD SAX,[SBX]+
        ST SAX,[PSBUF]+
        DJNZ SCNT,SCMLP
        LJMP SPFS

SCMSW2: ANDB SAH,#0FEH
        ORB SAH,#02H ;10-D1D0 CONTROL ABORT
        SJMP SCMSW3
        ;SPRET1: SJMP SPWT5
        ;SHORT TEXT
SPWT1:  LD SBX,#3000H
SPWT1A: LDB SAH,SPSTAT
        DEC SBX
        JE SPRET1
        JBC SAH,6,SPWT1A
        LDB SAH,SBUF   ;GET COMMAND
        LD SBX,#1000
SPWT2:  LDB SCHECK,SPSTAT
        DEC SBX
        JE SPRET1
        JBC SCHECK,6,SPWT2
        LDB SBL,SBUF
        XORB SBL,SAL
        XORB SBL,SAH
        JE SP3 ;CHECK OK JMP

        ;check result error
        ;NEED to RETRANSMITT
;SPRT:   JBC FLAGP1,1,RSM485
;        ;ENABLE BACK485 TX
;        ORB BA7fc2,#07H
;        SJMP RSMS485
;        ;ENABLE MAIN485 TX
;RSM485: ANDB BA7fc2,#11111001B ;ENABLE M485 TX
;RSMS485:STB BA7fc2,ADKB1[R0]

;        LDB SAL,#30
;RSMAAA: DJNZ SAL,RSMAAA
;        LDB SBUF,Saddr ;RETRANSMIT ADDR.
SPRT:   ORB BA7FC2,#40H;#07H
        STB BA7FC2,ADKB1[R0]
        LDB SBUF,SADDR ;RETRANSMIT ADDR.
SPWT3:  LDB SAL,SPSTAT
        JBC SAL,5,SPWT3
        LDB SBUF,R0
SPWT4:  LDB SBL,SPSTAT
        JBC SBL,5,SPWT4
        LDB SBUF,Saddr ;XOR RESULT EQU ADDRess code
SPWT5:  NOP
SPWT5A: LDB SBL,SPSTAT
        JBC SBL,5,SPWT5A
;SPRET1: LDB SPCON,#00001010B ;SET MODE 2
;        ;ANDB INTPEN,#0BFH ;CLEAR SERIAL PORT INTERRUPT
;        JBC FLAGP1,1,SPWT5B
;        ANDB BA7fc2,#11111010B
;        ORB BA7fc2,#02H
;        SJMP SPWT5C
;SPWT5B: ANDB BA7fc2,#11111011B ;DESABLE B485 TX
;;        ORB BA7fc2,#00000011B
;SPWT5C: STB BA7fc2,ADKB1[R0]
;        POPF
;        RET
SPRET1: LDB SPCON,#00001010B ;SET MODE 2
        ANDB BA7fc2,#00011111B
        STB BA7fc2,ADKB1[R0]
        POPF
        RET

        ;SHORT TEXT OK,COMMAND IN SAH
SP3:    NOP             ;CLEAR DELAY
        LDB SBL,FEF[R0] ;sss
        CMPB SBL,#00H   ;FEF=1 EVENT SEND STATE
        JE SP3S         ;
        CMPB SAH,#44H   ;44H=EVT RESERVED
        JE SP3B
        SJMP SPFS
SP3B:   STB R0,FEF[R0]
        CMP PEVENT,#EVTTOP
        JNE SP3C
        ;NO EVT
        SJMP SDATA
SP3C:   SJMP  SCM031

SP3S:   CMPB SAH,#00H
        JE SPFS
        SJMP SCOM01
;SPFS:   JBC FLAGP1,1,SM485
;        ;ENABLE BACK485 TX
;        ORB BA7fc2,#00000111B
;        SJMP SMS485
;        ;ENABLE MAIN485 TX
;SM485:  ANDB BA7fc2,#11111001B ;ENABLE M485 TX
;SMS485: STB BA7fc2,ADKB1[R0]
;        LDB SAL,#30
SPFS:   ORB BA7fc2,#40H;#00000111B
        STB BA7fc2,ADKB1[R0]
        LDB SAL,#30
SMAAA:  DJNZ SAL,SMAAA

        LDB INTMAS,#25H
        LD PSBUF,#SBUFS
        LDB SAL,[PSBUF]+
        LDB SBUF,SAL   ;ADDR.CODE
        LDB SBH,[PSBUF]+
SPWT6:  LDB SBL,SPSTAT
        JBC SBL,5,SPWT6
        LDB SBUF,SBH ;ZT CODE/COMM CODE

        LDB SAH,[PSBUF]+ ;
SPWT7:  LDB SBL,SPSTAT
        JBC SBL,5,SPWT7
        LDB SBUF,SAH  ;IF SHORT TEXT SAH IS CHECK CODE
        JBS SAL,7,SPCP05
        SJMP SPWT5   ;SHORT TEXT JMP
        ;LONG TEXT DATA LENGTH IN SAH
        ;SBH IS COMMAND CODE
SPCP05: CMPB SBH,#05H
        JE SP4A
        CMPB SBH,#04H
        JNE SP4C
        ;PRECESS '04H'OR '05H'
SP4A:   XORB SAL,SBH
        XORB SAL,SAH
        LDB SAH,[PSBUF]+
        XORB SAL,SAH
SPWT7A: LDB SBL,SPSTAT
        JBC SBL,5,SPWT7A
        LDB SBUF,SAH ;RELAY TYPE OR STATE AND SWITCH NUMBER
SPWT7B: LDB SBL,SPSTAT
        JBC SBL,5,SPWT7B
SP4B:   LDB SAH,CLOCKL
        LD SBX,TIMER1
        LDB SBL,SBH
        CMPB SAH,CLOCKL
        JNE SP4B
        DI
        LDB SBH,SAH
        SUB SBX,[PSBUF]+
        LDB SBUF,SBL ;ACTIVITY TIME LOW
        EI
        XORB SAL,SBH
        XORB SAL,SBL
SPWT7C: LDB SBL,SPSTAT
        JBC SBL,5,SPWT7C
        LDB SBUF,SBH  ;TIME HIGH
        LDB SBH,[PSBUF]+
        XORB SAL,SBH
SPWT7D: LDB SBL,SPSTAT
        JBC SBL,5,SPWT7D
        LDB SBUF,SBH  ;ACT.VALUE LOW

⌨️ 快捷键说明

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