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

📄 r.asm

📁 同通讯 测试软件
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        CLR     GNDDLY
        CLR     ZLPLOOP
        CLR     GPSLOOP
        CLRB    CLRGPS
        ST      R0,RCPUCNT[0]
        ST      R0,MTADDRSAV[0]
        ST      R0,STADDRSAV[0]
        STB     R0,MFRAMCNT[0]
        STB     R0,SFRAMCNT[0]
MAINP1: NOP
        LCALL   EXCH
        LDB     MAL,DOKFLG[0]
        CMPB    MAL,#99H
        JNE     MAINP1
        CALL    YCPRO
        NOP
        CALL    YXPRO
        NOP
        CALL    PQPRO
        LD      MAX,YCLTH[0]
        DIVUB   MAX,#YDDATL*2
        CMPB    MAH,R0
        JE      MAINP2
        INCB    MAL
MAINP2: SUBB    YCDATL,MAL,#1
        CMPB    MAH,R0
        JNE     MAINP3
        LDB     MAH,#YDDATL*2
MAINP3: JBC     MAH,0,MAINP4
        INCB    MAH
MAINP4: SHRB    MAH,#1
        LDB     YCLAST,MAH
        CMPB    YCLAST,#5
        JH      MAINP5
        LDB     YCLAST,#6
MAINP5: LDBZE   MAX,YXLTH[0]
        DIVUB   MAX,#4
        CMPB    MAH,R0
        JE      MAINP6
        INCB    MAL
MAINP6: LDB     YXDATL,MAL
        LDBZE   MAX,#YKSUM
        ST      MAX,SUM4YK[0]
        STB     R0,MTRANF[0]
        CALL    COM4_TPRO
        LD      MCX,#MYDTSL
        LD      MDX,#COM4TL
        LDBZE   MBX,[MCX]+
        STB     MBL,[MDX]+
        SHRB    MBL,#1
        BMOV    MCX,MBX
        LD      MCX,#MYDTSL
        LD      MDX,#COM3TL
        LDBZE   MBX,[MCX]+
        STB     MBL,[MDX]+
        SHRB    MBL,#1
        BMOV    MCX,MBX
        STB     R0,MTRANF[0]
        STB     R0,STRANF[0]
        LDB     MAL,LEDSAVE[0]
        XORB    MAL,#20H
        STB     MAL,LEDSAVE[0]
        LDB     SP_CON,#09H
        LDB     INT_MAS,#0F0H
        EI

        ;主循环程序
MLOOP:  NOP
        DI
        LDB     HSO_COM,#00H
        ADD     HSO_TIM,TIMER1,#03H
        EI
        LCALL   EXCH
        STB     R0,WDOG[0]
        LDB     MAL,DOKFLG[0]
        CMPB    MAL,#99H
        JNE     MLOOP
        CMPB    R0,MPCRFLG
        JE      MLOOP1
        CALL    MPCPRO
MLOOP1: CMPB    R0,SPCRFLG
        JE      MLOOP2
        CALL    COM1_RPRO
MLOOP2: JBC     RTDATF,2,MLOOP3
        ANDB    RTDATF,#0FBH
        CALL    COM2_RPRO
MLOOP3: JBC     RTDATF,3,MLOOP4
        ANDB    RTDATF,#0F7H
        CALL    COM3_RPRO
MLOOP4: JBC     RTDATF,4,MLOOP5
        ANDB    RTDATF,#0EFH
        CALL    COM4_RPRO
MLOOP5: NOP
        CALL    SYDINPRO
        NOP
        CALL    MYDINPRO
        JBC     RTDATF,5,MLOOP6
        ANDB    RTDATF,#0DFH
        CALL    COM5_RPRO
MLOOP6: NOP
        CALL    COM3_TPRO
        NOP
        CALL    COM4_TPRO
        JBC     COM1BIT,1,MLOOP61
        INC     GPSLOOP
        CMP     GPSLOOP,#800H
        JNH     MLOOP61
        CLR     GPSLOOP
        CALL    COM1_TPRO
MLOOP61:
        ;data from lcpu Has not sent pc/remot
        LDB     MAL,COML2RBF[0]
        CMPB    MAL,#55H        ;lcpu using
        JE      MLOOP7
        CMPB    R0,COML2RF[0]
        JE      MLOOP7
        CMPB    PCF1,R0
        JNE     MLOOP7
        CMPB    PCF2,R0
        JNE     MLOOP7
        CMPB    PCF3,R0
        JNE     MLOOP7
        CMPB    PCF4,R0
        JNE     MLOOP7
        CMPB    PCF5,R0
        JNE     MLOOP7
        STB     R0,COML2RF[0]
MLOOP7: NOP
        LDB     MAL,RLOOPCNT[0]	;判断左板是否工作正常
        INCB    MAL
        STB     MAL,RLOOPCNT[0]
        LDB     MAL,LLOOPCNT[0]
        CMPB    MAL,LLOOPSAV[0]
        JNE     MLOOP8
        LD      MCX,RCPUCNT[0]
        INC     MCX
        ST      MCX,RCPUCNT[0]
        CMP     MCX,#4000H
        JNH     MLOOP9
        LDB     HSO_COM,#21H	;复位左板
        ADD     HSO_TIM,TIMER1,#03H
        NOP
        LDB     HSO_COM,#01H
        ADD     HSO_TIM,TIMER1,#06H
MLOOP8: ST      R0,RCPUCNT[0]
MLOOP9: STB     MAL,LLOOPSAV[0]
        INC     ZLPLOOP
        CMP     ZLPLOOP,#800H
        JNH     MLOOPA
        CLR     ZLPLOOP
        CALL    COM2_TPRO
MLOOPA: NOP
        LJMP    MLOOP

        ;RS-485 R INT
RS485:  PUSHF
        LDB     RAH,SP_STAT
        JBS     RAH,6,RS4R1
        LJMP    RS4RQ
rs4r1:  INCB    RCL
        LDB     RAL,SBUF
        XORB    RBH,RAL
        STB     RAL,MPCRL[RCX]
        CMPB    RCL,#1
        JNE     RS4R2
        CMPB    RAL,#PCSTX
        JE      RS4RQ
        LJMP    RS4RX
rs4r2:  CMPB    RCL,#05H
        JE      rs4r3
        CMPB    RCL,MPCRL[0]
        JNE     rs4rQ
        LJMP    rs4re
rs4r3:  LDB     RAL,MPCR2[0]
        CMPB    RAL,#1AH     ;F.W.R
        JE      RS4R4
        CMPB    rAL,#0A5H
        JE      RS4R4
        CMPB    rAL,#0B0H
        JE      RS4R4
        STB     RCL,MPCRL[0]
        LJMP    RS4RE
RS4R4:  LDB     RAH,MPCR5[0]
        ADDB    RAH,#6
        STB     RAH,MPCRL[0]
        SJMP    RS4RQ
rs4re:  LDB     SP_CON,#01H
        LDB     R0,SP_STAT
        LDB     MPCRFLG,#0FFH
        CMPB    RBH,R0
        JNE     RS4RX
        LDB     MPCRFLG,#55H
RS4RX:  CLR     RCX
        CLRB    RBH
rs4rQ:  NOP
        POPF
        RET
	
	;测试RAM子程序
TEST_IRAM:
        LD      MAX,#22H
        LD      MBX,#0F8H
        SJMP    TEST_RAM
TEST_ERAM:
        LD      MAX,#8000H
        CLR     MBX
TEST_RAM:
        LDB     MCL,#55H
        STB     MCL,[MAX]
        LDB     MCL,[MAX]
        CMPB    MCL,#55H
        JNE     TRAMQ
        NOTB    MCL
        STB     MCL,[MAX]
        LDB     MCL,[MAX]
        CMPB    MCL,#0AAH
        JNE     TRAMQ
        STB     R0,[MAX]+
        CMP     MAX,MBX
        JNE     TEST_RAM
TRAMQ:  RET

CLRGPSCOD:
        DCB     24H,50H,46H,45H,43H
        DCB     2CH,47H,50H,69H,6EH,74H

CLRDTM: DCB     2CH,44H,54H,4DH,30H,30H

CLRGGA: DCB     2CH,47H,47H,41H,30H,30H

CLRGSV: DCB     2CH,47H,53H,56H,30H,30H

CLRVTG: DCB     2CH,56H,54H,47H,30H,30H

XXQCOM: DCB     0EBH,90H,0EBH,90H,02H,01H,48H

COM1_TPRO:
        NOP
        IF      COM1FLG=0
SETGPSINT:
        JBC     SPFLG2,0,SETGPSP0
        RET
SETGPSP0:
        ORB     SPFLG2,#01H
        LD      MBX,#CLRGPSCOD
        LD      MDX,#COM1T1
        LDBZE   MCX,#11
SETGPSP1:
        LDB     MAL,[MBX]+
        STB     MAL,[MDX]+
        XORB    MCH,MAL
        DJNZ    MCL,SETGPSP1
        ;DTM,GGA,GSV,VTG
        LD      MBX,#CLRDTM
        LDB     MCL,#24
SETGPSP2:
        LDB     MAL,[MBX]+
        STB     MAL,[MDX]+
        XORB    MCH,MAL
        DJNZ    MCL,SETGPSP2
        ;* AND CHECKSUM
        LDB     MAL,#2AH
        STB     MAL,[MDX]+
        ANDB    MAL,MAH,#0FH
        SHRB    MAH,#4
        ADDB    MBL,MAH,#30H
        CMPB    MAH,#09H
        JNH     SETGPSP3
        SUBB    MBL,#09H
        ADDB    MBL,#10H
SETGPSP3:
        STB     MBL,[MDX]+
        ADDB    MBL,MAL,#30H
        CMPB    MAL,#09H
        JNH     SETGPSP4
        SUBB    MBL,#09H
        ADDB    MBL,#10H
SETGPSP4:
        STB     MBL,[MDX]+
        LDB     MAL,#0DH
        STB     MAL,[MDX]+
        LDB     MAL,#0AH
        STB     MAL,[MDX]+
        SUB     MDX,#COM1T1
        STB     MDL,COM1TL[0]
        LDB     MAL,#07H
        STB     MAL,COM1IER[0]
        RET
        ELSE
XXQTPRO:LDB     MCL,#7
        STB     MCL,COM1TL[0]
        LD      MBX,#XXQCOM
        LD      MDX,#COM1T1
XXQT1:  LDB     MAL,[MBX]+
        STB     MAL,[MDX]+
        DJNZ    MCL,XXQT1
        LDB     MAL,#07H
        STB     MAL,COM1IER[0]
        RET
        ENDIF

        ;TL16C554 收发中断子程序
EXINT:  PUSHF
EXINTN: LDB     KAL,RT_RDY[0]
        JBS     KAL,1,EXINT4
        JBS     KAL,0,EXINT3
        JBS     KAL,3,EXINT2
        JBS     KAL,2,EXTCOM1
        POPF
        RET

EXINT4: LJMP    EXTCOM4

EXINT3: LJMP    EXTCOM3

EXINT2: LJMP    EXTCOM2

EXTCOM1:NOP     ;EXINT1
        LDB     KAL,COM1IIR[0]
        ANDB    KAL,#0FH
        CMPB    KAL,#04H      ;R_DATA VALID?
        JE      EXTCOM1R
        CMPB    KAL,#02H      ;THRE?
        JE      EXTCOM12
        CMPB    KAL,#06H      ;R_LINE STATUS?
        JNE     EXTCOM11
        LDB     R0,COM1LSR[0]
        LJMP    EXINTN
EXTCOM11:
        CMPB    KAL,#0CH      ;TIME OUT?
        JE      EXTCOM1R
        CMPB    KAL,#00H      ;MODEM STATUS?
        JNE     EXTCOM1Q
        LDB     R0,COM1MSR[0]
EXTCOM1Q:
        LJMP    EXINTN
EXTCOM12:
        LJMP    EXTCOM1T

EXTCOM1R:
	JBC     SPFLG3,1,EXTCOM1R1
        LJMP    COM1TESTR
EXTCOM1R1:        
        JBC     COM1BIT,0,EXTCOM1R2
        LJMP    SPCR
EXTCOM1R2:
        JBC     COM1BIT,1,GPSRPRO
        LJMP    GPSRPRO
GPSRPRO:LDB     KAH,COM1LSR[0]
        JBC     KAH,0,EXTCOM1Q
        LDB     KAL,COM1RBR[0]
        INCB    COM1RCNT
        LDBZE   KBX,COM1RCNT
        STB     KAL,COM1RL[KBX]
        CMPB    COM1RCNT,#1
        JNE     GPSRP2
        CMPB    KAL,#24H     ;"$"
        JE      EXTCOM1R
GPSRP1: CLRB    COM1RCNT
        ANDB    SPFLG2,#0FDH
        SJMP    EXTCOM1R
GPSRP2: CMPB    COM1RCNT,#2
        JNE     GPSRP3
        CMPB    KAL,#47H     ;"G"
        JNE     GPSRP1
        SJMP    EXTCOM1R
GPSRP3: CMPB    COM1RCNT,#3
        JNE     GPSRP4
        CMPB    KAL,#50H     ;"P"
        JNE     GPSRP1
        SJMP    EXTCOM1R
GPSRP4: CMPB    COM1RCNT,#4
        JNE     GPSRP5
        CMPB    KAL,#5AH     ;"Z"
        JNE     GPSRP1
        SJMP    EXTCOM1R
GPSRP5: JBC     SPFLG2,1,GPSRP6
        CMPB    KAL,#0AH
        JE      GPSRP8
        SJMP    GPSRP1
GPSRP6: CMPB    KAL,#0DH
        JNE     GPSRP7
        ORB     SPFLG2,#02H
GPSRP7: SJMP    EXTCOM1R
GPSRP8: ORB     RTDATF,#02H
        LD 

⌨️ 快捷键说明

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