📄 p762.asm
字号:
;***********************************************************************
;医院寻呼,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 ; i 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 + -