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

📄 ct0bu05.src

📁 用三星MCU实现的完整无绳电话程序,来自三星公司内部资料,供参考.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
CID_MINUTE_AREA_H       EQU     0D7H    ;
CID_NUM_LEN             EQU     0D8H    ; CID number length
CID_NUM_LEN_H           EQU     0D9H    ;
;CID_TIMER_8MS          EQU     0DAH    ; CID timer (4 unit of 2ms)
;CID_TIMER_8MS_H        EQU     0DBH    ;

;F_PRERING              EQU     CID_STATUS_FLAG.0       ; Preliminary ring comes
SMMR_VALID              EQU     CID_STATUS_FLAG.1       ; Validity of SMMR rec.
FSK_DATA_READY          EQU     CID_STATUS_FLAG.2       ; FSK data ready in CPTR
CID_TEST_NEG            EQU     CID_STATUS_FLAG.3       ; General test result
CID_STORED              EQU     CID_STATUS_FLAG1.0      ; CID number is stored
F_SDMF                  EQU     CID_STATUS_FLAG1.1      ; SDMF DATE/TIME/CID MSG TYPE    <<< MARCO 001023 >>>
F_SMSG                  EQU     CID_STATUS_FLAG1.2      ; SDMF MESSAGE WAITING MSG TYPE  <<< MARCO 001023 >>>
F_SDMF_NOCID            EQU     CID_STATUS_FLAG1.3      ; SDMF DATE/TIME/NO CID MSG TYPE <<< MARCO 001024 >>>
;CID_SUCCESSFUL         EQU     CID_STATUS_FLAG1.3      ; CID received successfully

CID_ZEROLEN_ID          EQU     CID_ERRLIST.0           ; zero-length ID
CID_ZERO_TOTALEN        EQU     CID_ERRLIST.1           ; zero total length
CID_CHECKSUM_ERR        EQU     CID_ERRLIST.2           ; Checksum error
CID_SMSG_ERRLEN         EQU     CID_ERRLIST.3           ; <<< MARCO 001023 SMSG LENGTH ERROR !=3 >>>

CID_DATE_MSB            EQU     CID_DATE_AREA_H.0
CID_HOUR_MSB            EQU     CID_HOUR_AREA_H.0

; EXCEPTION VECTORS ===========================================================
                ORG     0000H
                VENT0   1,1,RESET       ; RESET VECTOR, MEMORY BANK=SMB, REGISTER BANK=1
                VENT1   1,1,UNUSED      ; INTB/INT4 VECTOR
                VENT2   1,1,UNUSED      ; INT0 VECTOR
                VENT3   1,1,UNUSED      ; INT1 VECTOR
                VENT4   1,1,UNUSED      ; RESERVED
                VENT5   1,1,UNUSED      ; INTT0 VECTOR
                VENT6   0,0,INTT1_ISR   ; INTT1 VECTOR, MEMORY BANK=000H~07FH, F80H~FFFH, REGISTER BANK=0
                VENT7   1,1,UNUSED      ; RESERVED


                ORG     0020H
SEL_0           SMB     0
SEL_1           SMB     1
SEL_2           SMB     2
SEL_15          SMB     15
PUSHSB          PUSH    SB
POPSB           POP     SB
ZERO2EA         LD      EA,#00H
INCSEA          ADS     EA,#01H
DECSEA          DECS    EA
EA2T_MUTE       LD      T_MUTE,EA
T_MUTE2EA       LD      EA,T_MUTE
EA2TX_CMD       LD      TX_CMD,EA
SKEAEQHL        CPSE    EA,HL
SET1TX          TCALL   ST1TX
SET5TX          TCALL   ST5TX
SET10TX         TCALL   ST10TX
SET15TX         TCALL   ST15TX
SETCTX          TCALL   STCTX
STOP_TX         TCALL   STP_TX
STOP_RING       TCALL   RING_STOP
OFFLED          TCALL   LEDOFF
ONLED           TCALL   LEDON
FLHPHONE        TCALL   FH_PHONE
TIMRDEC         TCALL   TMRSDEC
ACTI_MODE       TCALL   MODE_ACTIVE
RT_RF_MODE      TCALL   MODE_RT_RF
R_RF_MODE       TCALL   MODE_R_RF
CLKDATA         TCALL   SPI
LODCODE         TCALL   LCODE
KEYTONE         TCALL   G_KEYTN
CHK_RING        TCALL   DETECTRING
EEP_BUFTOEA     LD      EA,EEP_BUFFER
EEP_BUFP2TOEA   LD      EA,EEP_BUFFER+2
EEPREAD         TCALL   EEP_READ
WAITTXOVER      TCALL   WAITXOVR

                ORG     0080H           ; NOT RELOCATABLE !!!
;REFREG:         DB      1784*4,(1784*4)/256  ; FRENCH REF. @6250Hz w/11.15MHz
REFREG:         DB      2048*4,(2048*4)/256  ; USA REF. @5000Hz w/10.24MHz
; HANDSET PLL TABLE (SAME AS THAT IN MOTOROLA MC13109 DATA BOOK)
; PLL TABLE CAN BE CHANGED IN ORDER TO REARRANGE THE CHANNEL SEQUENCE
PLLTXRX:        DB      9322,9322/256,7795,7795/256     ; CH1  46.610
                DB      9326,9326/256,7830,7830/256     ; CH2  46.630
                DB      9334,9334/256,7833,7833/256     ; CH3  46.670
                DB      9342,9342/256,7815,7815/256     ; CH4  46.710
                DB      9346,9346/256,7836,7836/256     ; CH5  46.730
                DB      9354,9354/256,7827,7827/256     ; CH6  46.770
                DB      9366,9366/256,7839,7839/256     ; CH7  46.830
                DB      9374,9374/256,7847,7847/256     ; CH8  46.870
                DB      9386,9386/256,7859,7859/256     ; CH9  46.930
                DB      9394,9394/256,7855,7855/256     ; CH10 46.970

TN_OFR:         DB      9EH,19H         ; 60ms ON, 50ms OFF
                DB      9EH,00H         ; 60ms ON
TN_KEY:         DB      94H,00H         ; 40ms ON
TN_SUCC:        DB      0FFH,0FFH       ; 1000ms ON
                DB      0FFH,0F7H,00H
TN_PAGE:        DB      0FFH,97H,4BH    ; 300ms ON, 150ms OFF
                DB      0FFH,97H,4BH    ; 300ms ON, 150ms OFF
                DB      0FFH,97H,00H    ; 300ms ON
KCODE:          DB      KEY1            ; KEY 1
                DB      KEY2            ; KEY 2
                DB      KEY3            ; KEY 3
                DB      KEY4            ; KEY 4
                DB      KEY5            ; KEY 5
                DB      KEY6            ; KEY 6
                DB      KEY7            ; KEY 7
                DB      KEY8            ; KEY 8
                DB      KEY9            ; KEY 9
                DB      KEYSTAR         ; KEY *
                DB      KEY0            ; KEY 0
                DB      KEYHASH         ; KEY #
                DB      PAUSE           ; PAUSE/REDIAL
                DB      TONE            ; TONE
                DB      GROUPL          ; GROUP LISTEN
                DB      HOLD            ; HOLD/INTERCOM
                DB      CHANL           ; CHANNEL
                DB      FLASH           ; FLASH/PLAY
                DB      TALK            ; TALK
                DB      MEM             ; MEM
                DB      SOS             ; SOS
                DB      MENU            ; MENU
                DB      BKWARD          ; BACKWARD
                DB      FRWARD          ; FORWARD
                DB      VOLUP           ; VOL UP
                DB      VOLDN           ; VOL DOWN
                DB      CANCEL          ; CANCEL
                DB      TONE            ; TONE
LCODE:          LDC     EA,@EA
                RET

; ENTER CHARGE DETECTION ROUTINE ==============================================
; CHGENTDET: CHARGE MODE ENTERING DETECTION (DEBOUNCED)
; RETURN IF CHARGE MODE IS ENTERED
; RETURN SKIP IF CHARGE MODE IS NOT DETECTED
; TMRSDEC ROUTINE MUST BE CALLED IN ALL LOOPS IN ORDER TO KEEP CHGENTDET WORKS
; e.g.
; CALL CHGENTDET
; JPS  CHG_MODE
; GO ON NEXT PROCESS
; :
;
; INPUT : NONE
; OUTPUT: NONE
; A IS CHANGED AT RETURN
;CHGENTDET:      LD      A,CHGCNT
;                ADS     A,#0BH          ; ENTER CHARGE MODE WHEN CHGCNT=5
;                SRET
;                RET

; QUIT CHARGE DETECTION ROUTINE ===============================================
; CHGQUIDET: CHARGE MODE QUITING DETECTION (DEBOUNCED)
; RETURN SKIP IF CHARGE MODE IS QUITED
; RETURN IF CHARGE MODE IS NOT QUITED
; TMRSDEC ROUTINE MUST BE CALLED IN ALL LOOPS IN ORDER TO KEEP CHGQUIDET WORKS
; e.g.
; CALL CHGQUIDET
; JPS  CHG_QUIT
; GO ON NEXT PROCESS
; :
;
; INPUT : NONE
; OUTPUT: NONE
; A IS CHANGED AT RETURN
;CHGQUIDET:      LD      A,CHGCNT
;                DECS    A               ; QUIT CHARGE MODE WHEN CHGCNT=0
;                RET
;                SRET

; SETUP TRANSMISSION DATA PARAMETERS ==========================================
; ST_1TX: ISSUE COMMAND TO TRANSMIT 1 DATA PACKET ONLY, e.g. "REF SET1TX"
; ST_5TX: ISSUE COMMAND TO TRANSMIT 5 DATA PACKETS, e.g. "REF SET5TX"
; ST_10TX: ISSUE COMMAND TO TRANSMIT 10 DATA PACKETS, e.g. "REF SET10TX"
; ST_15TX: ISSUE COMMAND TO TRANSMIT 15 DATA PACKETS, e.g. "REF SET15TX"
; ST_CTX: ISSUE COMMAND TO TRANSMIT DATA PACKET CONTINUOUSLY, e.g. "REF SETCTX"
; INPUT : NONE
; OUTPUT: F_TXREP,F_START1,F_TXIDNOW,F_TXMODE,F_ENDTX,TX_CNT
; NO REGISTER IS CHANGED AT RETURN
STCTX:          PUSH    EA
                BITS    F_TXREP         ; SETUP TX PACKET REPEATLY
                LD      A,#0FH
                JR      SETCCTX

ST15TX:         PUSH    EA
                LD      A,#1H           ; SETUP TX 15 PACKETS
                JR      SETTX

ST10TX:         PUSH    EA
                LD      A,#6H           ; SETUP TX 10 PACKETS
                JR      SETTX

ST5TX:          PUSH    EA
                LD      A,#0BH          ; SETUP TX 5 PACKETS
                JR      SETTX

ST1TX:          PUSH    EA
                LD      A,#0FH          ; SETUP TX 1 PACKET
SETTX:          BITR    F_TXREP

SETCCTX:        LD      TX_CNT,A        ; LOAD PACKET COUNTER
;##############################################################################
                REF     ZERO2EA
                LD      CID_PTR,EA      ; NO TBUF_H/TBUF_L UPDATED BY TMRSDEC IS NECESSARY
;##############################################################################
                BTSF    F_TKMODE
                CALLS   MUTETX          ; MUTE TX AUDIO IF IN TALK MODE
                BITS    F_START1        ; SEND DUMMY BITS FIRST
                BITS    F_TXIDNOW       ; SEND I.D. BEFORE COMMAND
                BITS    F_TXMODE        ; TRANSMISSION IN PROGRESS NOW!
                BITR    F_ENDTX
                POP     EA
                RET

; STOP DATA TRANSMISSION ======================================================
; STP_TX: STOP TX DATA PACKET JOB IMMEDIATELY BY RESETING ALL CONTROL PARAMETERS
; e.g.
; REF  STOP_TX
; INPUT : NONE
; OUTPUT: F_TXMODE,F_ENDTX,T_MUTE,F_RELMUTE
; NO REGISTER IS CHANGED AT RETURN
STP_TX:         PUSH    EA
                BITR    F_TXMODE        ; DATA PORT WILL BE RESUME NORMINAL
                BITR    F_ENDTX         ; CLEAR END OF TRANSMISSION FLAG
                BITR    F_NOTXSYNC      ; ENABLE SYNC BIT
                BITS    F_RELMUTE       ; SET MUTE RELEASE FLAG
                LD      EA,#7
                BTSF    F_TKMODE
                REF     EA2T_MUTE       ; EXTEND 42ms MUTE TIME AFTER TX DATA

                LD      EA,TID_H         ; RELOAD I.D. TO BSC
;################################################################################
                LD      TBUF_H,EA       ; TBUF_H REPLACE TID_H IN TX DATA ROUTINE
;################################################################################
                REF     SEL_15
                LD      BSC2,EA
                REF     SEL_0
                LD      EA,TID_L
;################################################################################
                LD      TBUF_L,EA       ; TBUF_L REPLACE TID_L IN TX DATA ROUTINE
;################################################################################
                REF     SEL_15
                LD      BSC0,EA
                REF     SEL_0

                POP     EA
                RET

LOD_CID:        REF     PUSHSB
                PUSH    EA
                REF     SEL_0
                LD      EA,CID_H        ; BSC0,1,2,3 <-- CID
                LD      TID_H,EA
                REF     SEL_15
                LD      BSC2,EA
                REF     SEL_0
                LD      EA,CID_L
                LD      TID_L,EA
                REF     SEL_15
                LD      BSC0,EA
                ;POP     EA
                ;REF     POPSB
                ;RET
                JPS     LOD_RET

LOD_UID1:       REF     PUSHSB
                PUSH    EA
                REF     SEL_0
                LD      EA,UID1_H       ; BSC0,1,2,3 <-- UID1
                LD      TID_H,EA
                REF     SEL_15
                LD      BSC2,EA
                REF     SEL_0
                LD      EA,UID1_L
                LD      TID_L,EA
                REF     SEL_15
                LD      BSC0,EA
                ;POP     EA
                ;REF     POPSB
                ;RET
                JPS     LOD_RET

LOD_UID2:       REF     PUSHSB         ; <<< MARCO 001019 >>>
                PUSH    EA
                REF     SEL_0
                LD      EA,UID2_H       ; BSC0,1,2,3 <-- UID2
                LD      TID_H,EA
                REF     SEL_15
                LD      BSC2,EA
                REF     SEL_0
                LD      EA,UID2_L
                LD      TID_L,EA
                REF     SEL_15
                LD      BSC0,EA
                ;POP     EA
                ;REF     POPSB
                ;RET

⌨️ 快捷键说明

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