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

📄 p762.asm.bak

📁 医院语音寻孚系统的汇编源代码
💻 BAK
📖 第 1 页 / 共 3 页
字号:
;***********************************************************************
;医院寻呼,OEM。无线发射部分
;           TELEPHOES  TO  POCSAG  PROGRAM
;
;               1999.11 COPYRIGHT TENSUN LTD
;
;***********************************************************************
;  I/O PORT PIN DEFINED

  SEND_PTT  BIT P0.7
  POC_MOD   BIT P0.6

  VCO_LE    BIT P0.0
  VCO_SK    BIT P0.5		
  VCO_DATA  BIT P1.4

  CS_93C    BIT P0.4
  SK_93C    BIT P0.3
  DI_93C    BIT P0.2
  DO_93C    BIT P0.1

  KEYS1     BIT P1.7            ;  KEYBORD  DEFINE
  KEYS2     BIT P1.6

  JM_DATA    BIT P1.0
  JM_XIAOYIN BIT P1.1
  JM_TONGBU  BIT P1.3

;===================  PHILIPS PLC SFR DEFINED BEGAIN =======================
              WDRST    EQU 0A6H
              WDCON    EQU 0A7H
              SADEN   EQU  0B9H
              SADDR   EQU  0A9H
              PT0AD   EQU  0F6H
              P2M2   EQU  0A5H
              P2M1   EQU  0A4H
              P1M2   EQU  092H
              P1M1   EQU  091H
              P0M2   EQU  085H
              P0M1   EQU  084H
              KBI   EQU  086H
              IP1H   EQU  0F7H
              IP1   EQU  0F8H
              IP0H   EQU  0B7H
              IP0   EQU  0B8H
              IEN1   EQU  0E8H
              IEN0   EQU  0A8H
              I2DAT   EQU  0D9H
              I2CON   EQU  0D8H
              I2CFG   EQU  0C8H
              DIVM   EQU  095H
              CMP2   EQU  0ADH
              CMP1   EQU  0ACH
              AUXR1    EQU 0A2H
;===================  PHILIPS PLC SFR DEFINED END =============================

;***********************************************************************
;   SYSTEM DATA RESIGTER DEFINED

    SYS_STATUS  EQU  20H
;            .0     POCSAG SENDING
;            .1     HAVE DATA DON'T SENDED

;            .6     KEY1 ON
;            .7     KEY2 ON

    DATA_NUM   EQU  21H

    SENDING_DATA EQU 25H
    ZHENG_HAO    EQU 26H

    SEND_BYTE      EQU 27H
    SEND_BIT_NUM   EQU 28H
    SEND_BYTE_NUM  EQU 29H
    SEND_BYTE_NUM2 EQU 2AH
    Next_Step      EQU 2BH

    SYS_DELAY1 EQU  2CH
    SYS_DELAY  EQU  2DH   ;  TIMER WDT
    OLD_DELAY  EQU  2EH

    FREQ_NH EQU 30H
    FREQ_NL EQU 31H
    FREQ_A  EQU 32H

    ADD_93C_L EQU 33H
    BYTE1_93C EQU 34H
    BYTE2_93C EQU 35H

    OLD_BUFFER EQU 08H        ; 08H -- 17H 16 BYTES
    HAO_BUFFER EQU 40H        ; 40H -- 4FH 16 BYTES

    POCSAG_BUFFER EQU 50H    ;  50H -- 57H   8 BYTES

    SP_START EQU 5FH

;***********************************************************************
ORG 0000H
AJMP SYS_START

ORG 0003H            ; INT0
CLR EX0
AJMP DATAIN_INT0
   NOP
   NOP


ORG 000BH           ; TIME0 OUT
CLR ET0
AJMP POCSAG_SEND
 NOP
 NOP

ORG 0013H           ; INT1
CLR  EX1
RETI
 NOP
 NOP

ORG 001BH          ;  TIME1 OUT
CLR ET1
AJMP TIMER_OUT
   NOP
   NOP
   NOP

ORG 0023H         ;  COM I/O
CLR ES
RETI
 NOP
 NOP

ORG 002BH         ;TIME2 OUT

RETI
 NOP
 NOP

ORG 0033H    
CLR IEN1.0
RETI
 NOP
 NOP

ORG 003BH    
CLR IEN1.1
RETI
 NOP
 NOP

ORG 0043H    
CLR IEN1.2
RETI
 NOP
 NOP

ORG 0053H             ;  WDT TIMER OUT
CLR IEN0.6
MOV WDRST,#01EH       ;  CLR WDT
MOV WDRST,#0E1H
MOV WDCON,#015H       ;  WDT ENABLE      330 ~ 719 MS RESET
AJMP SYS_AGAIN
 NOP
 NOP

ORG 0063H
CLR IEN1.5
RETI

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SYS_START:
            NOP
            NOP
         MOV WDRST,#01EH       ;  CLR WDT
              NOP
         MOV WDRST,#0E1H
            NOP
            NOP
         MOV WDCON,#015H       ;  WDT ENABLE      330 ~ 719 MS RESET

         MOV P0M2,#00H      ; P0 PORT  OUTPUT
         MOV P0M1,#00H

         MOV P1M2,#00H
         MOV P1M1,#00H

         MOV P0,#01EH
         MOV P1,#00H
            NOP
            NOP
        ACALL DELAY
            NOP
            NOP
        MOV R7,#00H
        JNB CS_93C,EXTENAL_PROGRAM
            NOP
            NOP
        JNB DI_93C,EXTENAL_PROGRAM
            NOP
            NOP
        JNB SK_93C,EXTENAL_PROGRAM
            NOP
            NOP
        AJMP  SYS_START2

EXTENAL_PROGRAM:
             NOP
             NOP
        ACALL DELAY
             NOP
             NOP
        DJNZ R7,EXTENAL_PROGRAM
            NOP
            NOP

SYS_START2:

         MOV P0M2,#0FDH      ; P0 PORT  OUTPUT
         MOV P0M1,#00H

         MOV P1M2,#10H
         MOV P1M1,#00H

         MOV P0,#02H
         MOV P1,#0EFH
            NOP
            NOP
         MOV SYS_STATUS,#00H
         MOV DATA_NUM,#00H

         CLR EA
         MOV SP,#SP_START
               NOP
               NOP
         ACALL DELAY
               NOP
               NOP
         CLR IE0

          ;           TEST PROGRAM

SYS_AGAIN:
            NOP
            NOP
          MOV WDRST,#01EH       ;  CLR WDT
             NOP
          MOV WDRST,#0E1H
              NOP
              NOP
          MOV WDCON,#015H       ;  WDT ENABLE      330 ~ 719 MS RESET
          CLR EA
          MOV TMOD,#011H
          SETB IT0
          SETB IT1
          SETB TR0
          SETB TR1
             NOP
             NOP
         MOV SP,#SP_START
         MOV IP0,#02H
         MOV IP0H,#03H
         MOV IE,#89H
         MOV IEN1,#00H
                 NOP
                 NOP
         MOV P0M2,#0FDH      ; P0 PORT  OUTPUT
         MOV P0M1,#00H

         MOV P1M2,#10H
         MOV P1M1,#00H

         MOV P0,#02H
         MOV P1,#0EFH
            NOP
            NOP
         MOV SYS_DELAY,#018H
                 NOP
                 NOP
SYS_AGAIN_1:
            JNB SYS_STATUS.6,SYS_AGAIN_2
               NOP
               NOP
            ACALL KEYS1_SEND
              NOP
              NOP
            CLR SYS_STATUS.6
              NOP
              NOP

SYS_AGAIN_2:
            JNB SYS_STATUS.7,SYS_AGAIN_3
               NOP
               NOP
            ACALL KEYS2_SEND
              NOP
              NOP
            CLR SYS_STATUS.7
              NOP
              NOP

SYS_AGAIN_3:
           CLR EA
           MOV A,DATA_NUM
           JNZ  SYS_AGAIN_4
               NOP
               NOP
           MOV R0,#HAO_BUFFER
           MOV R2,#010H
               NOP
               NOP
           MOV A,#0FFH
CLEAR_HAO_BUF:
           MOV @R0,A
           INC R0
               NOP
               NOP
           DJNZ R2,CLEAR_HAO_BUF
               NOP
               NOP
           AJMP SYS_AGAIN
                NOP
                NOP
SYS_AGAIN_4:
           SETB EA
                NOP
                NOP
           ACALL DATA_SEND
                NOP
                NOP
           AJMP SYS_AGAIN
                NOP
                NOP

;***************************************************************************
;
;           POCSAG SEND TIMER 0 INTERRUPT PROGRAM
;
;***************************************************************************
POCSAG_SEND:  PUSH ACC
              PUSH PSW
              PUSH DPH
              PUSH DPL
              MOV  ACC,R0
              PUSH ACC

              MOV A,SEND_BYTE
              RLC A
              CPL C
              MOV POC_MOD,C
              MOV SEND_BYTE,A

              MOV TH0,#0FAH   ;  FREQUENCY 11.0592 MHZ

              DEC SEND_BIT_NUM
              MOV A,SEND_BIT_NUM
              JZ  POC_SEND0

              AJMP POC_SEND_RET
                
                NOP
                NOP

POC_SEND0:
              MOV SEND_BIT_NUM,#08H

              MOV DPTR,#SEND_CHANG

              MOV A,Next_Step
              CLR C
              RL A
              CLR C
              RL A
              JMP @A+DPTR

SEND_CHANG:   NOP
              AJMP Poc_Step0
              NOP
              NOP
              AJMP Poc_Step1
              NOP
              NOP
              AJMP Poc_Step2
              NOP
              NOP
              AJMP Poc_Step3
              NOP
              NOP
              AJMP Poc_Step4
              NOP
              NOP
              AJMP Poc_Step5
              NOP
              NOP
              AJMP Poc_Step6
              NOP
              NOP
              AJMP Poc_Step7
              NOP
              NOP
              AJMP Poc_Step8
              NOP
              NOP
              AJMP Poc_Step9
              NOP
              NOP
              AJMP Poc_Step10
              NOP
              NOP
              AJMP Poc_Step11
              NOP
              NOP
              AJMP Poc_Step12
              NOP
              NOP
              AJMP Poc_Step13
              NOP
              NOP
              AJMP Poc_Step14
              NOP
              NOP
              AJMP Poc_Step15
              NOP
              NOP
              AJMP Poc_Step16
              NOP
              NOP
              AJMP Poc_Step17
              NOP
              NOP
              AJMP Poc_Step18
              NOP
              NOP
              AJMP Poc_Step19
              NOP

Poc_Step0:
            MOV SEND_BYTE,#00H

            DJNZ SEND_BYTE_NUM,Poc_Step0_1

            MOV SEND_BYTE_NUM,#050H
            MOV Next_Step,#01H

Poc_Step0_1:
             AJMP POC_SEND_RET

Poc_Step1:
            MOV SEND_BYTE,#0AAH

            DJNZ SEND_BYTE_NUM,Poc_Step1_1

            MOV Next_Step,#02H

Poc_Step1_1:
            AJMP POC_SEND_RET

Poc_Step2:
         MOV SEND_BYTE,#07CH
         MOV Next_Step,#03H

         AJMP POC_SEND_RET

Poc_Step3:
         MOV SEND_BYTE,#0D2H
         MOV Next_Step,#04H

         AJMP POC_SEND_RET


Poc_Step4:
         MOV SEND_BYTE,#015H
         MOV Next_Step,#05H

         AJMP POC_SEND_RET


Poc_Step5:
         MOV SEND_BYTE,#0D8H

         MOV Next_Step,#0AH
         MOV SEND_BYTE_NUM,#00H
         MOV SEND_BYTE_NUM2,#00H

         MOV A,ZHENG_HAO

         JZ  Poc_Step5_1
         JB ACC.3,Poc_Step5_1          ;    QUN HU

         MOV Next_Step,#06H

Poc_Step5_1:

       AJMP POC_SEND_RET

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


Poc_Step6:
         MOV SEND_BYTE,#07AH
         MOV Next_Step,#07H

         INC SEND_BYTE_NUM

         AJMP POC_SEND_RET

Poc_Step7:
         MOV SEND_BYTE,#089H
         MOV Next_Step,#08H

         INC SEND_BYTE_NUM

         AJMP POC_SEND_RET

Poc_Step8:
         MOV SEND_BYTE,#0C1H
         MOV Next_Step,#09H

         INC SEND_BYTE_NUM

         AJMP POC_SEND_RET

Poc_Step9:
         MOV SEND_BYTE,#097H
         MOV Next_Step,#0AH

         INC SEND_BYTE_NUM

         MOV A,SEND_BYTE_NUM
         RR A
         RR A
         RR A
         ANL A,#07H
         XRL A,ZHENG_HAO
         JZ Poc_Step9_0

         MOV Next_Step,#06H

Poc_Step9_0:
         MOV SEND_BYTE_NUM2,#00H
         AJMP POC_SEND_RET

Poc_Step10:

        MOV A,SEND_BYTE_NUM2
        ANL A,#07H

        ADD A,#POCSAG_BUFFER
        MOV R0,A
        MOV A,@R0
        MOV SEND_BYTE,A

        INC SEND_BYTE_NUM
        INC SEND_BYTE_NUM2

        MOV A,SEND_BYTE_NUM
        ANL A,#03FH

        JZ Poc_Step10_1

⌨️ 快捷键说明

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