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

📄 p762.asm.bak

📁 医院语音寻孚系统的汇编源代码
💻 BAK
📖 第 1 页 / 共 3 页
字号:

        MOV A,SEND_BYTE_NUM2
        ANL A,#07H
        JZ Poc_Step10_2

        AJMP POC_SEND_RET

Poc_Step10_1:
          MOV Next_Step,#0BH
          MOV SEND_BYTE_NUM,#040H
          AJMP POC_SEND_RET

Poc_Step10_2:

          MOV A,ZHENG_HAO
          JB  ACC.3,Poc_Step10_3

          MOV Next_Step,#0FH
          MOV SEND_BYTE_NUM,#040H
          AJMP POC_SEND_RET

Poc_Step10_3:
          MOV SEND_BYTE_NUM2,#00H
          AJMP POC_SEND_RET

Poc_Step11:
         MOV SEND_BYTE,#07CH
         MOV Next_Step,#0CH

         AJMP POC_SEND_RET

Poc_Step12:
         MOV SEND_BYTE,#0D2H
         MOV Next_Step,#0DH

         AJMP POC_SEND_RET

Poc_Step13:
         MOV SEND_BYTE,#015H
         MOV Next_Step,#0EH

         AJMP POC_SEND_RET

Poc_Step14:
         MOV SEND_BYTE,#0D8H
         MOV Next_Step,#0FH

         AJMP POC_SEND_RET

;      TONGBU_TABLE:  DB 07CH,0D2H,015H,0D8H
;      KONXIAN_TABLE:  DB 07AH,089H,0C1H,097H

Poc_Step15:
         MOV SEND_BYTE,#07AH
         MOV Next_Step,#10H

         AJMP POC_SEND_RET

Poc_Step16:
         MOV SEND_BYTE,#089H
         MOV Next_Step,#11H

         AJMP POC_SEND_RET

Poc_Step17:
         MOV SEND_BYTE,#0C1H
         MOV Next_Step,#12H

         AJMP POC_SEND_RET

Poc_Step18:
         MOV SEND_BYTE,#097H
         MOV Next_Step,#13H

         AJMP POC_SEND_RET

Poc_Step19:
          NOP

           MOV Next_Step,#00H
           CLR SEND_PTT                            ;  SEND_END
           CLR SYS_STATUS.0

           POP ACC
           MOV R0,ACC
           POP DPL
           POP DPH
           POP PSW
           POP ACC
           CLR ET0
           RETI

                              NOP
                              NOP
                              NOP

POC_SEND_RET:
               POP ACC
               MOV R0,ACC
               POP DPL
               POP DPH
               POP PSW
               POP ACC
               SETB ET0
               RETI

;*********************************************************************
;     Build Pocsag coding programe
;
;             Input :  ACC       Start POC_POINTER , 3 BYTES = 20 BIT
;                      C         C=0  Address
;                                C=1  Information
;
;              Output :          Start POC_POINTER , 4 BYTE    32 BIT
;
;      MACHINE CYCLES ( LCALL ): MAX = 549   , MIN = 377
;                     AFFECTED : R1 - R5 , PSW , ACC
;                     STACK    : 2  
;*********************************************************************
POCSAG_BUILD:
               MOV  R1,A 
               MOV  R2,#15H    ;  TOTAL NEED MOVE  21   BIT

               MOV  A,@R1      ;  POCSAG 1ST BYTE
               RRC  A
               MOV  R3,A
               MOV  @R1,A

               INC  R1        ;  POCSAG 2ND BYTE
               MOV  A,@R1    
               RRC  A
               MOV  R4,A
               MOV  @R1,A

               INC  R1       ;  POCSAG 3RD BYTE
               MOV  A,@R1
               ANL  A,#0F0H
               RRC  A
               MOV  R5,A
               MOV  @R1,A

               INC R1        ;  POCSAG 4TH BYTE

MOVE_CONT:
               MOV  ACC,R3
               JNB  ACC.7,MOVE_CONT1

               MOV A,R3
               XRL A,#0EDH
               MOV R3,A
               MOV A,R4
               XRL A,#020H
               MOV R4,A

MOVE_CONT1:
                CLR C
                MOV A,R5
                RLC A
                MOV R5,A

                MOV A,R4
                RLC A
                MOV R4,A

                MOV A,R3
                RLC A
                MOV R3,A

                DJNZ R2,MOVE_CONT

MOVE_END:
                MOV A,R3
                RRC A
                MOV R3,A

                MOV A,R4
                RRC A
                SWAP A
                ANL  A,#0EH
                MOV R4,A

                MOV A,R3
                SWAP A
                ANL  A,#0F0H
                ORL  A,R4
                CLR C
                RRC A
                MOV @R1,A

                DEC R1       ; POCSAG 3TH BYTE
                MOV A,R3
                SWAP A
                ANL  A,#07H
                ORL A,@R1
                MOV @R1,A

                DEC R1
                DEC R1    ; POCSAG 1ST BYTE

                MOV R2,#04H
                CLR C

POCSAG_ACK:
               MOV  A,@R1
               JNB  P,POCSAG_ACK_0
               CPL  C

POCSAG_ACK_0:
               INC  R1
               DJNZ R2,POCSAG_ACK

               RLC A
               DEC R1   ; POCSAG 4TH BYTE
               MOV @R1,A

POC_BUL_END:

               RET
                 NOP
                 NOP
                 NOP


;***********************  POCSAG BUILD PRORAM END  *********************


;**********************************************************************
;
;       BUFFER DATA SEND
;
;**********************************************************************
DATA_SEND:
          MOV A,#HAO_BUFFER
          MOV R0,A

          DEC DATA_NUM
          MOV R2,#010H

READ_HAO:
          MOV A,@R0
          INC A
          JNZ  READ_HAO_OK
          INC R0
             NOP
          DJNZ R2,READ_HAO
             NOP
             NOP
          CLR C
          RET
             NOP
             NOP

READ_HAO_OK:
          MOV A,@R0
          MOV SENDING_DATA,A
          MOV @R0,#0FFH

          CLR C
          SUBB A,#064H
          JC DATA_RIGHT
             NOP
             NOP
          CLR C
          RET
             NOP
             NOP

DATA_RIGHT:

          ACALL POC_START
             NOP
             NOP
          MOV A,#OLD_BUFFER
          MOV R0,A
          INC A
          MOV R1,A

          MOV R2,#0FH

DATA_TO_OLDBUF:
          MOV A,@R1
          MOV @R0,A
          INC R0
          INC R1
          DJNZ R2,DATA_TO_OLDBUF
               NOP
               NOP
          MOV A,SENDING_DATA
          MOV @R0,A
              NOP
          MOV OLD_DELAY,#010H        ;  About 60 s
          MOV A,#POCSAG_BUFFER
          MOV R0,A

          MOV ADD_93C_L,#08H
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV ADD_93C_L,#0AH
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV @R0,#033H
          INC R0

          MOV A,SENDING_DATA
          MOV B,#0AH
          DIV AB
             NOP
             NOP
          MOV DPTR,#INFOR_BCD

          MOVC A,@A+DPTR
          ORL A,#030H
          MOV @R0,A
          INC R0

          MOV A,B
          MOVC A,@A+DPTR
          SWAP A
          MOV  @R0,A

          MOV SENDING_DATA,#0FFH
          MOV A,#POCSAG_BUFFER
          INC A
          INC A
          INC A
          INC A
          SETB C

          ACALL POCSAG_BUILD
               NOP
               NOP
          MOV ZHENG_HAO,#08H

SEND_DATA_WAIT1:
                NOP
                NOP
                 NOP
                 NOP
         MOV WDRST,#01EH       ;  CLR WDT
                 NOP
         MOV WDRST,#0E1H
            NOP
            NOP
          MOV TMOD,#011H
          SETB TR0
          SETB TR1
          SETB ET0
          SETB ET1
          SETB EA
                NOP
                NOP
          JB SYS_STATUS.0,SEND_DATA_WAIT1
                NOP
                NOP
          ACALL DELAY
                NOP
                NOP
          ACALL POC_START
                NOP
                NOP


SEND_DATA_WAIT2:
               NOP
               NOP
                 NOP
                 NOP
         MOV WDRST,#01EH       ;  CLR WDT
                 NOP
         MOV WDRST,#0E1H
            NOP
            NOP
          MOV TMOD,#011H
          SETB TR0
          SETB TR1
          SETB ET0
          SETB ET1
          SETB EA
                NOP
                NOP
          JB SYS_STATUS.0,SEND_DATA_WAIT2
                NOP
                NOP

          CLR ET0
              NOP
              NOP
          RET
              NOP
              NOP
INFOR_BCD:   DB 000H,008H,004H,00CH,002H,00AH,006H,00EH,001H,009H,005H,00DH,003H,00B,007H,00FH

                   NOP
                   NOP
                   NOP
              AJMP SYS_START
                   NOP
                   NOP

;**********************************************************************
;
;       KEY1 SEND
;
;**********************************************************************
KEYS1_SEND:
          MOV R7,#010H;
                NOP
                NOP
          AJMP KEYS_SEND
                   NOP
                   NOP
KEYS2_SEND:
          MOV R7,#020H;
                NOP
                NOP
KEYS_SEND:

          MOV A,#POCSAG_BUFFER
          MOV R0,A

          CLR A
          ORL A,R7
          MOV ADD_93C_L,A
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV A,#02H
          ORL A,R7
          MOV ADD_93C_L,A
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV A,#08H
          ORL A,R7
          MOV ADD_93C_L,A
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV A,#0AH
          ORL A,R7
          MOV ADD_93C_L,A
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV @R0,A
          INC R0

          MOV A,BYTE2_93C
          MOV @R0,A
          INC R0

          MOV A,#04H
          ORL A,R7
          MOV ADD_93C_L,A
               NOP
               NOP
          ACALL READ_93C46
               NOP
               NOP
          MOV A,BYTE1_93C
          MOV ZHENG_HAO,A
                   NOP
                   NOP
         ACALL POC_START
             NOP
             NOP

         AJMP SEND_DATA_WAIT1
              NOP
              NOP
          RET
              NOP
              NOP


;****************************************************************************
;
;      POCSAG SEND START
;
;****************************************************************************
POC_START:
                 NOP
                 NOP
              SETB SEND_PTT         ;   SEND ENABLE
                 NOP
                 NOP
              ACALL DELAY
                 NOP
                 NOP
              ACALL FREQ_BUILD
                 NOP
                 NOP
              SETB SYS_STATUS.0

              MOV SEND_BYTE,#00H
              MOV SEND_BIT_NUM,#00H
              MOV SEND_BYTE_NUM,#80H
              MOV Next_Step,#00H

              SETB ET0
                   NOP
                   NOP

POC_START_1:

⌨️ 快捷键说明

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