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

📄 ct0hslcd1.src

📁 用三星MCU实现的完整无绳电话程序,来自三星公司内部资料,供参考.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; Application     : TW Cordless Phone CT0 Handset
; Model No.       : TWCT0
; Prepared by     : Wizard
; Start date      : 13/OCT/2000
; Manday used     : 3
; Last modified   : 18/OCT/2000
; Microcontroller : KS57C21132P 32KB ROM 3KNibble RAM 4MHz Crystal

; MODIFICATION HISTORY FROM S250 MODEL: BY ISAAC CHAN
; - ENABLE GROUP LISTENING KEY TEMPORARILY IN STANDBY MODE FOR TESTING DTAM
; - ENABLE CALLER ID RECEPTION IF THE CID HEAD IS SENT USING UID
; - MUTE RX PATH WHEN CALLER ID IS RECEIVED IN HANDSET REMOTE MODE
; - CALLER ID SCREEN TOGGLE BETWEEN PAGE 1 AND 2 AUTOMATICALLY
; - DISPLAY "EFFACE" WHEN DELETING 1 MESSAGE IN HANDSET REMOTE MODE
; - TURN ON IN-USE ICON WHEN ANSWERED CALLER ID IS RECEIVED IN HANDSET REMOTE MODE
; - USE FLASH/OK KEY TO ENTER DTAM REMOTE MODE
; - USE MENU KEY TO QUIT DTAM REMOTE MODE AND RETURN TO STANDY BY MODE
; - ENABLE H/S CALL SCREENING BY PRESSING GROUP LISTENING KEY DURING H/S REMOTE MODE
; - TURN OFF GROUP LISTENING ICON WHEN USER PRESS TALK KEY DURING DTAM REMOTE MODE
; - IMPLEMENT THE MMI TO ERASE ALL CALLER ID MESSAGES IN DTAM
; - CHANGE MODE WHEN MESSAGE PLAYBACK FINISH IN DTAM REMOTE MODE
; - DISABLE GROUP-LISTENING KEY DURING INTERCOM MODE
; - IMPLEMENT THE MMI TO TURN ON/OFF DAY/TIME STAMP
; - SET DEFAULT VOLUME TO LEVEL 3
; - CHANGE CALLER ID COMMAND CODE TO AVOID COLLISION OF COMMAND CODE
; - CHANGE COMMAND CODE TO DIFFERENTIATE AMONG S350 B/U AND OTHER MODELS DURING REGISTRATION
; - CHANGE CALLER ID TYPE II RECEPTION TO SINGLE-HANDSET MODE
; - USE "FLASH" AND "GROUP LIS" KEY TO ENTER DTAM REMOTE MODE FOR S350 ANS S300 BASE RESPECTIVELY
; - USE "MENU" AND "GROUP LIS" KEY TO QUIT DTAM REMOTE MODE FOR S350 AND S300 BASE RESPECTIVELY
; - MOVE MENU ITEM "MEMORISER" AND "MEM MODIFIER" TO MAIN MENU
; - DISABLE "REPONDEUR" MENU ITEM FOR S200, S300 AND S250 BASE UNITS
; - CHANGE MESSAGE TABLE ITEM "BASE APPEL" TO "BASE APPELLE"
; - CHANGE MESSAGE TABLE ITEM "MEM MODIFIER" TO "MODIFIER MEM"
; - SHOW PHONE NUMBER IF CALLER ID MATCHING PHONE BOOK RECORD WITHOUT NAME IS RECEIVED
; - FIX BUG WHEN REDIAL KEY IS PRESSED IN TALK MODE AND THERE ARE MORE THAN 40 DIGITS
; - TURN OFF DTAM ICON IF CID IS STORED WITH NO VOICE MESSAGE
; - MUTE HANDSET WHEN SENDING STOP-PLAY-MESSAGE COMMAND TO BASE FOR 1 SECOND
; - USE "FLASH" KEY TO QUIT CALL SCREENING MODE
; - ENABLE CALLER ID CALL BACK IN DTAM REMOTE MODE
; - USE "CANCEL" KEY TO DELETE A SINGLE MESSAGE AND DISABLE PRINTING MESSAGE FOR S300 B/U
; - SHOW DIGITS IN PRE-DIAL BUFFER DURING CALLER ID CALL BACK IN DTAM REMOTE MODE
; - LOCK ON THE CURRENT CHANNEL TEMPORARILY IF ICON_ON/OFF/FLASH OR HS_ATTN COMMAND IS RECEIVED
; - FIG BUG--ENVELOP ICON STOP FLASHING IN CALLER ID BROWSE MODE WHEN REGISTERED TO S250 B/U
; - FIX BUG--KEYLOCK ENABLED AFTER LONG PRESS "EFF" FOLLOWED BY "OK" KEY IN KEYLOCK PROG. MODE
; - QUIT TALK MODE IF H/S IS OUT-OF-RANGE MORE THAN 45 SECONDS
; - MODIFY VIP RING TONE
; - CLEAR PAGE-BASE MODE IF HS_ATTN (CALLER ID) OR RING IS RECEIVED
; - DISABLE SHOWING CALL TIMER IF LCD IS DISPLAYING CALLER ID
; - EXTEND VALID DATA WAITING TIME FROM 35ms TO 80ms IN "SCAN_CHAN" SUBROUTINE
; - MODIFY VALID DATA WAITING TIME FROM 80ms TO 60ms FOR TESTING
; - QUIT CALLER ID BROWSING MODE AUTOMATICALLY AFTER 10s IF NO RECORD IN CALLER ID LOG
; - QUIT PRE-DIALING MODE IF VISUAL INDICATOR OR CALLER ID IS RECEIVED
; - CLEAR ALL MODES AND SHOW "APPEL DE X" IF TRANSFER RING IS RECEIVED
; - FIX BUG--H/S RING AFTER TRANSFER RING TIME-OUT EVEN IF RING-OFF ICON IS ON
; - CLEAR SCREEN AND DISPLAY DTAM ICON IF CID_FAIL COMMAND IS RECEIVED IN H/S REMOTE MODE
; - REFRESH SCREEN IF NO. OF NEW/TOTAL MESSAGES IS RECEIVED FROM B/U
; - DISABLE CANCEL AND LCANCEL IN H/S REMOTE MODE IF NO MESSAGE IN DTAM
; - FIX BUG--H/S DISPLAY NUMBER INSTEAD OF NAME WHEN RECEIVE CALLER ID IF NAME IS 10 CHARACTERS
; - FIX BUG--SKIP DELETING THE 18TH DIGIT IN MEMORY PROGRAMMING MODE
; - FIX BUG--H/S DISPLAY NUMBER INSTEAD OF NAME WHEN RECEIVE CID-CW IF NAME IS 10 CHARACTERS
; - FIX BUG--H/S FAIL TO DISPLAY MESSAGE NUMBER IF THERE ARE 85 (55H) MESSAGES IN DTAM
; - FIX BUG--H/S FAIL TO REGISTER TO B/U WITH COMMON ID = XX55 OR 55XX
; - FIX BUG--H/S FAIL TO DISABLE RING WHEN RING OFF ICON IS ON (SI REPORT Y2K084 ITEM 1)
; - FIX BUG--RING-OFF ICON DO NOT TOGGLE IN TEST MODE WHEN ID IS RECEIVED
; - FIX BUG--H/S DISPLAY "APPEL_______" IF "FLASH" KEY PRESSED IMMEDIATELY AFTER "POP" SOUND IN H/S REMOTE MODE
; - FIX BUG--H/S DO NOT DISPLAY PHONE NO. IF CALL TIMER IS OFF AND TALK KEY PRESSED WHEN BROWSE CALLER ID


; SHOULD CLEAR ALL MODES IF:
; - INCOMING RING IS DETECTED
; - TRANSFER RING IS DETECTED
; - PAGE COMMAND IS DETECTED
; - TALK KEY IS PRESSED (KEEP END_DPTR IF ANY)
; - CHARGE MODE IS ENTERED

; DEF FILE LOCATION IN CHIP DIRECTIVE COULD BE CHANGED ACCORDING TO YOUR OWN PATH
;                CHIP    \SM2P\INCLUDE\DEF\57C21132.DEF
                CHIP    C:\OPENICE\INCLUDE\DEF\57C21132.DEF
; RESOURCE ALLOCATED
; TC0:
; USED FOR TONE GENERATION, NO EXCEPTION VECTOR IS NEEDED, OUTPUT SQUAREWAVE
; AT P3.0
; TC1:
; USED FOR SYSTEM INTERRUPT OF 250us INTERVAL, MUST BE KEEP RUNNING AFTER
; STARTUP OR SYSTEM TIME WILL BE STOPPED AND NO TX/RX DATA PACKET IS RESULT
; BSC:
; USED BY INTT1_ISR, FOR TX DATA OPREATION
;
; IN MAIN PROGRAM (WHICH IS CALLED 'FOREGROUND SOFTWARE'), THE FOLLOWING SETTING
; MUST BE KEPT:
; EMB=1, SMB=ANY (BUT KEPT SMB=0 WHEN CALLING ALL MY LIBRARY FUNCTIONS)
; ERB=1, SRB=1 (USE ONLY ONE SET OF REGISTER IN LOCATION 008h-00Fh)
;
; IN INTT1_ISR (WHICH IS CALLED 'BACKGROUND SOFTWARE'), THE FOLLOWING SETTING IS
; USED AND SHOULD NOT BE CHANGED:
; EMB=0, SMB=DON'T CARE (DIRECT ADDRESS = 000h~07Fh, F80h~FFFh)
; ERB=0, SRB=DON'T CARE (REGISTER BANK 0 IS SELECTED BY DEFAULT, 000h~007h)
;
; PAY ATTENTION TO THE STACK SIZE, RESERVE MORE RAM AREA FOR PROGRAM STACK 'COS
; ALL THE FUNCTIONS WILL PUSH THEIR USED REGISTERS INTO STACK IN ORDER NOT TO
; CHANGE THE CALLER'S REGISTER CONTENT.


; COMMUNICATION COMMANDS ======================================================
COMMREQ         EQU     10000000B       ; COMMUNICATION-REQUEST
MSGINFO         EQU     10011000B       ; DTAM-MESSAGE-INFO
LINEREQ         EQU     00000101B       ; LINE-REQUEST
LNREQACK        EQU     10000101B       ; LINE-REQUEST-ACK
LINESEZ         EQU     00000001B       ; LINE-SEIZE-REQUEST
LNSEACK         EQU     10000001B       ; LINE-SEIZE-ACK
INTCOMM         EQU     00110000B       ; INTERCOM-REQUEST
INTMACK         EQU     10110000B       ; INTERCOM-ACK
DTAMRMOT        EQU     00010100B       ; DTAM-REMOTE-REQUEST
DTAMRACK        EQU     10010100B       ; DTAM-REMOTE-ACK
DTAMMONACK      EQU     10110100B       ; DTAM-MONITOR-ACK
RINGON          EQU     00000100B       ; RING-ON
RINGOFF         EQU     00000010B       ; RING-OFF
HOLDSTART       EQU     10000100B       ; HOLD-LINE-START
HOLDSTOP        EQU     10000010B       ; HOLD-LINE-STOP
PAGEREQ         EQU     00001101B       ; PAGE-REQUEST
RETSTBY         EQU     00001100B       ; RETURN-TO-STANDBY
OFFGRPL         EQU     00001111B       ; GROUP LISTENING OFF
ONGRPL          EQU     00000011B       ; GROUP LISTENING ON
TRANSFER        EQU     00001000B       ; CALL-TRANSFER-ALL
TRANSFER1       EQU     00001001B       ; CALL-TRANSFER-1
TRANSFER2       EQU     00001010B       ; CALL-TRANSFER-2
TRANSFER3       EQU     00001011B       ; CALL-TRANSFER-3
TRANSACK        EQU     10001000B       ; CALL-TRANSFER-ALL-ACK
TRANS1ACK       EQU     10001001B       ; CALL-TRANSFER-1-ACK
TRANS2ACK       EQU     10001010B       ; CALL-TRANSFER-2-ACK
TRANS3ACK       EQU     10001011B       ; CALL-TRANSFER-3-ACK
TRANSFAIL       EQU     00010000B       ; TRANSFER-FAILURE
RINGFROM1       EQU     00010001B       ; RING-FROM-1
RINGFROM2       EQU     00010010B       ; RING-FROM-2
RINGFROM3       EQU     00010011B       ; RING-FROM-3
RINFOREQ        EQU     00000110B       ; REGISTRATION-INFO-REQUEST
SYSSTATUS2      EQU     00011000B       ; 200SYSTEM-STATUS, +1,+2,+4
SYSSTATUS3      EQU     10101000B       ; 300SYSTEM-STATUS, +1,+2,+4
;===================================================================
SYSSTATUS25     EQU     00100000B       ; 250SYSTEM_STATUS, +1,+2,+4
SYSSTATUS35     EQU     00111000B       ; 350SYSTEM_STATUS, +1,+2,+4
;===================================================================
REGISTX2        EQU     00101000B       ; REGISTER-AS-200HANDSET-x, +1,+2,+4
REGISTX3        EQU     00011000B       ; REGISTER-AS-300HANDSET-x, +1,+2,+4
;===================================================================
REGISTX25       EQU     10101000B       ; REGISTER-AS-250HANDSET-x, +1,+2,+4
REGISTX35       EQU     00100000B       ; REGISTER-AS-350HANDSET-x, +1,+2,+4
;===================================================================
REGIOKAY        EQU     00101000B       ; REGISTER-OKAY
UNREGREQ        EQU     00111000B       ; UNREGISTRATION-REQUEST
ANSWERME        EQU     00001110B       ; ANSWER-ME
YESHERE         EQU     10001110B       ; YES-HERE

;HS_ATTN         EQU     00011111B       ; WAIT-UP HANDSET TO RECEIVE CID
;HS_DEFCH        EQU     00101010B       ; SWITCH TO DEFAULT CHANNEL
;CID_HEAD        EQU     00010101B       ; CID DATA FOLLOWS
;CID_FAIL        EQU     00011001B       ; CID DECODE FAILED

;TM_PRES         EQU     10000011B       ; TOP-MESSAGE-PRESENT
;TM_ABSE         EQU     10001111B       ; TOP-MESSAGE-ABSENT

DTINFOREQ       EQU     10110111B       ; DAY/TIME STAMP ON/OFF INFO REQUEST

ONSTAMP         EQU     10000011B       ; TURN ON DAY/TIME STAMP OF BASE UNIT
OFFSTAMP        EQU     10001111B       ; TURN OFF DAY/TIME STAMP OF BASE UNIT

; BIT6=1 MEANS DIGIT COMMAND
; BIT5=E MEANS EVEN PARITY
;===============================================

HS_ATTN         EQU     11011111B       ; WAKE-UP HANDSET TO RECEIVE CID
;HS_DEFCH        EQU     11100110B       ; SWITCH TO DEFAULT CHANNEL
CID_HEAD        EQU     01010101B       ; CID DATA FOLLOWS
CID_FAIL        EQU     11011001B       ; CID DECODE FAILED

TM_PRES         EQU     11100011B       ; TOP-MESSAGE-PRESENT
TM_ABSE         EQU     01001111B       ; TOP-MESSAGE-ABSENT

HS_ORGCH        EQU     11101010B       ; SWITCH TO ORIGINAL CHANNEL

ICON_ON         EQU     01001010B
ICON_OFF        EQU     01001100B
ICON_FLASH      EQU     01000110B

PLAYFINISH      EQU     01111111B       ; PLAY FINISHED IN HANDSET REMOTE MODE

ANSSET          EQU     10000111B       ; ANSWERER SETTING REQUEST
ANSSACK         EQU     11000111B       ; ANSWERER SETTING ACKNOWLEDGE

STAMPON         EQU     11000010B       ; DAY/TIME STAMP IS CURRENTLY ON
STAMPOFF        EQU     11000001B       ; DAY/TIME STAMP IS CURRENTLY OFF


; KEY CODE CONSTANTS ==========================================================
KEY1            EQU     00H             ; KEY 1
KEY2            EQU     01H             ; KEY 2
KEY3            EQU     02H             ; KEY 3
KEY4            EQU     03H             ; KEY 4
KEY5            EQU     04H             ; KEY 5
KEY6            EQU     05H             ; KEY 6
KEY7            EQU     06H             ; KEY 7
KEY8            EQU     07H             ; KEY 8
KEY9            EQU     08H             ; KEY 9
KEY0            EQU     09H             ; KEY 0
KEYSTAR         EQU     0AH             ; KEY *
KEYHASH         EQU     0BH             ; KEY #
PAUSE           EQU     0CH             ; PAUSE / redial/pause
TONE            EQU     0DH             ; TONE
FLASH           EQU     0EH             ; FLASH / flash/new
TALK            EQU     10H             ; TALK / talk
;MEM             EQU     11H             ; MEM / not used
MUTE            EQU     12H             ; MUTE / edit/mute/save
CHANL           EQU     13H             ; CHANNEL / channel/quit
;;REDL            EQU     14H             ; REDIAL / not used
;GROUPL          EQU     15H             ; GROUP LISTEN / not used
;HOLD            EQU     16H             ; HOLD/MUTE / not used
MENU            EQU     18H             ; MENU / menu/okay
BKWARD          EQU     19H             ; BACKWARD / <</vol-
FRWARD          EQU     1AH             ; FORWARD / >>/vol+
;VOLUP           EQU     1BH             ; VOLUME UP / not used
;VOLDN           EQU     1CH             ; VOLUME DOWN / not used
DELETE          EQU     1DH             ; CANCEL / clear/delete
;SOS             EQU     1EH             ; SOS / not used
LDELETE         EQU     2FH             ; 2sec CANCEL / Lclear/Ldelete
;LSOS            EQU     30H             ; 2sec SOS / not used

; KEYPAD MATRIX CONFIGURATION =================================================
;              +------+------+------+------+------+------+------+
;              | P8.0 | P8.1 | P8.2 | P8.3 | P9.0 | P9.1 | P9.2 |
;              |KYOUT1|KYOUT2|KYOUT3|KYOUT4|KYOUT5|KYOUT6|KYOUT7|
; +------------+------+------+------+------+------+------+------+
; | P6.0/KYIN1 |   1  |   5  |   9  |REDIAL|CHANL |  SOS | VOL+ |
; +------------+------+------+------+------+------+------+------+
; | P6.1/KYIN2 |   2  |   6  |   *  |      |FLASH |  MEM | VOL- |
; +------------+------+------+------+------+------+------+------+
; | P6.2/KYIN3 |   3  |   7  |   0  |GROUPL| TALK |   << |CANCEL|
; +------------+------+------+------+------+------+------+------+
; | P6.3/KYIN4 |   4  |   8  |   #  | HOLD | MENU |   >> |      |
; +------------+------+------+------+------+------+------+------+
;              +------+------+------+--------------+---------+------------+
;              | P8.0 | P8.1 | P8.2 | P8.3         | P9.0    | P9.1       |
;              |KYOUT1|KYOUT2|KYOUT3|KYOUT4        |KYOUT5   |KYOUT6      |
; +------------+------+------+------+--------------+---------+------------+
; | P6.0/KYIN1 |   1  |   5  |   9  |Redial/Pause  |<< /Vol.-|Channel/Quit|
; +------------+------+------+------+--------------+---------+------------+
; | P6.1/KYIN2 |   2  |   6  |*/Tone|Clear/Delete  |>> /Vol.+|            |
; +------------+------+------+------+--------------+---------+------------+
; | P6.2/KYIN3 |   3  |   7  |   0  |Flash/New     |Talk     |            |
; +------------+------+------+------+--------------+---------+------------+
; | P6.3/KYIN4 |   4  |   8  |   #  |Edit/Mute/Save|Menu/Okay|            |
; +------------+------+------+------+--------------+---------+------------+
;
; PROGRAM CONSTANTS ===========================================================
TN2049          EQU     60              ; 2049Hz TONE VALUE
TN1984          EQU     62              ; 1984Hz TONE VALUE
TN1894          EQU     65              ; 1894Hz TONE VALUE
TN1760          EQU     70              ; 1760Hz TONE VALUE
TN1506          EQU     82              ; 1506Hz TONE VALUE
TN1302          EQU     95              ; 1302Hz TONE VALUE
TN1087          EQU     114             ; 1087Hz TONE VALUE
TN905           EQU     137             ; 905Hz TONE VALUE
TN744           EQU     167             ; 744Hz TONE VALUE
TN694           EQU     179             ; 694Hz TONE VALUE
TN641           EQU     194             ; 641Hz TONE VALUE
RTN1OFF         EQU     0000B           ; RING TONE 1 OFF
RTN1LOW         EQU     0100B           ; RING TONE 1 LOW
RTN1MID         EQU     1000B           ; RING TONE 1 MID

⌨️ 快捷键说明

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