📄 tf9925h.src
字号:
;*************************************************************************
; *
; Application : USA 900MHz Cordless Phone Base Unit Using KB8825 *
; Model No. : CT9925 *
; Client : *
; Control software : Handset Control Software *
; Microcontroller : KS57C21516, 16KROM, 544nibbles RAM @4MHz (KS57C72F5) *
; Modified from : VA268H.SRC - 7739H *
; Start date : 01/Feb/2002 *
; Date: 2002-02-01 *
;*************************************************************************
;------------
; Debug Note
;------------
;02/01
;1. redefine PIN assignment
;02/24
;1. add M1,M2,M3 direct memory routine
;02/25
;1. modify dial out/CID review routine
;02/26
;1. modify program routine
;2. modify display drive routine
;02/27
;1. modify display prompt
;2. modify time setting routine
;03/20
;1. rewrite display routine
;03/26
;1. fix bug of calc. display and icon display buffer address
;03/31
;1. invert tx data logic
;04/04
;1. fix the bug of new led for init. input pin in eeprom routine
;04/08
;1. invert ring volume control
;05/17
;1. keep buzzer out HiZ after stop page
;2. only ringcome to init. ring volume
;3. fix bug of redial buffer empty
;06/05
; add power down detect
;****************************************************************************
.list off
.include "c:\skstudio\include\reg\57C21516.REG"
.list off
;*********
;BANK0
;*********
REGA0 EQU 00H
REGE0 EQU 01H
REGL0 EQU 02H
REGH0 EQU 03H
REGX0 EQU 04H
REGW0 EQU 05H
REGZ0 EQU 06H
REGY0 EQU 07H
;
REGEA1 EQU 08H
REGHL1 EQU 0AH
REGWX1 EQU 0CH
REGYZ1 EQU 0EH
;
REGEA2 EQU 10H
REGHL2 EQU 12H
REGWX2 EQU 14H
REGYZ2 EQU 16H
;
REGEA3 EQU 18H
REGHL3 EQU 1AH
REGWX3 EQU 1CH
REGYZ3 EQU 1EH
;
;***************************************************************************
;BANK0
;***************************************************************************
KEYHOLD_CNT EQU 20H
RX_BUFF EQU 22H
TX_BUFF EQU 24H
;
STSFG1 EQU 26H ; status flag
LOWBAT_STB EQU 0 ; set if low battery at standby
ON_LBAT EQU 1 ; set if on batt. low icon
STDBY_EN EQU 2 ; set to reflash lcd for ring stop
TESTMD_EN EQU 3 ; set if in test mode
;
STSFG1H EQU 27H
DOT_BLINK EQU 0 ; enable to blink LCD cursor
REFRESH EQU 1 ; refresh LCD cursor character
DMX_EN EQU 2 ; enable direct memory
;
RING_FLAG EQU 28H ; ring flag
RING_ON EQU 3 ; ring on period
;
TEST_FLAG EQU 29H
LONG_KEY EQU 0 ; press & hold key flag
TEST_FG1 EQU 1 ; test flag
LBAT_EN EQU 2 ; enable batt. low adjust in test mode
RSSI_EN EQU 3 ; enable RSSI adjust in test mode
;
TMP_CHBUF EQU 2AH ; Temp channel buffer
RING_CNT EQU 2CH ; auto seize timer
DSPON_CNT EQU 2EH ; if type II, hold on display timer
;
LSEIZE_CNT EQU 30H ; timer for prevent to talk off
T100MS_BUF EQU 32H ; 100ms timer buffer
LOOP_CNT EQU 34H ; loop timer
BCKLED_CNT EQU 36H ; back LED second counter
T1S_BUF EQU 38H ; 1 sec. timer buffer
T10MS_BUF EQU 39H ; 10ms timer buffer
TMP_BUF EQU 3AH ; 20ms timer buffer
BLK_DOTCNT EQU 3BH ; LCD dot blink counter
BLK_TKTIME EQU 3CH ; TALK led blink time buffer
BLK_TKCNT EQU 3EH ; TALK led blink counter
;BLK_BLTIME EQU 40H ; BATTLOW led blink time buffer
;BLK_BLCNT EQU 42H ; BATTLOW led blink counter
;
TIMERFG EQU 40H ; timer flag
T2MS EQU 0 ; set for every 2ms
KYSCN_EN EQU 1 ; enable keyscan for every 20ms
BLK_TKLED EQU 2 ; set if blink talk led
BLK_MUTLED EQU 2 ; set if blink low battery led
BLK_TKICN EQU 3 ; set if blink "TALK" icon
TIMERFGH EQU 41H
BCKLED_EN EQU 0 ; set if back LED is turned on
LPTMR_EN EQU 1 ; set if loop timer is enabled
;
;***********************
; FLAG declaration
;***********************
FLAG1 EQU 42H
F_CPUMP EQU 0 ; PLL CHARGE PUMP FLAG, 1=800uA, 0=400uA
F_TXMUTE EQU 1 ; PLL TX MUTE FLAG, 1=MUTE
F_RXMUTE EQU 2 ; PLL RX MUTE FLAG, 1=MUTE
F_TXRF EQU 3 ; PLL TX RF FLAG, 0=TX ON
FLAG1H EQU 43H
F_RXRF EQU 0 ; PLL RX RF FLAG, 0=RX ON
F_REFOSC EQU 1 ; PLL REF. OSC. FLAG, 0=REF. ON
F_AF EQU 2 ; PLL AUDIO FLAG, 0=AUDIO ON
F_BATT EQU 3 ; PLL BATT DETECTOR FLAG, 1=BS
;
MUTSTA EQU 44H
MUT_FLG EQU 0
;
DTMFEND_TMR EQU 45H ; @100ms
;
TIME_FLAG EQU 46H ; time control flag
RINGBLK EQU 1 ; set if ring on blink
TIMER2FG EQU 2 ; set if timer1 is underflow
T20MS EQU 3 ; 20ms timer flag
TIME_FLAGH EQU 47H
T10MS EQU 0 ; 10ms timer flag
KEY_WAKEUP EQU 1 ; set if key press is detected
MEM1FG EQU 2 ; ring on/off switch status
REDIAL EQU 3 ; set if redial action is activated
;
COMBO_FG EQU 48H ; control flag
MUTE_REQ EQU 0 ; set if combo muting is requested
MUTED EQU 1 ; set if combo has been muted
SLEEP EQU 2 ; set if sleep period
POWER_SAVE EQU 3 ; set if starting power save cycle
COMBO_FGH EQU 49H
BATTLOW EQU 0 ; set if battery low
MUTED_TX EQU 1 ; set if combo tx has been muted
EXTEND EQU 2 ; set if extend rx power on time
RX_WAKEUP EQU 3 ; set if rx power is wakeup
;
RXFG EQU 4AH ; rx status flag
RXD_STATE EQU 0 ; store the rx data state
;FIRST_LOW EQU 1 ; 1st low occured flag
SYNC EQU 2 ; set if valid sync bit is detected
PREAMBLE EQU 3 ; set if valid preamble is detected
RXFGH EQU 4BH
DATA_RCVD EQU 0 ; set if 16 bit ID + 8 bit data rcvd.
TALKOF_ACK EQU 1 ; set if wait for talkoff ACK
;
TXFG EQU 4CH ; tx data flag
S_PREAMBLE EQU 0 ; set if send preamble bits
TXEN EQU 1 ; set if enable transmit data
RETRY EQU 2 ; set if resend data is requested
TX_DISABLE EQU 3 ; set if send cmd. is disabled
TXFGH EQU 4DH
NO_TONE EQU 0 ; set if no error tone after sending
S_DUMMY EQU 1 ; set if sending dummy stop bits
TX_CONT EQU 2 ; set if send code continously
TX_START EQU 3 ; start sending tx data
;
MODEFG EQU 4EH ; operation mode flag
TALK_MODE EQU 0 ; set if talk on mode (on line mode)
CHGCH_MODE EQU 1 ; set if change channel mode
CHGSEC EQU 2 ; set if change security code
F_TONESOFT EQU 3 ; set - tone mode, clr. - pulse mode
MODEFGH EQU 4FH
F_TONEMODE EQU 0 ; B/U tone/pulse switch status
;MEM_PROG EQU 1 ; set if memory key is 1st time pressed
;MEM_LOC EQU 2 ; set if memory key is 2nd time pressed
MEM_DIAL EQU 3 ; set if speed dial is activated
;
LINKFG EQU 50H ; link flag
LINKREQ EQU 0 ; link up connect is requested
WAIT_CHSTS EQU 1 ; wait for B/U channel status
WAIT_CHACK EQU 2 ; wait for B/U channel acknowledge
CONNECT_REQ EQU 3 ; set if connect request
LINKFGH EQU 51H
STDBY_SCAN EQU 0 ; set if scan channel in standby mode
;
CHK_FLAG EQU 52H
KEY_VALID EQU 0 ; valid keypress is found
BUZZER_ON EQU 1 ; set if generate beep tone
KEY_HOLD EQU 2 ; set if last key is still hold
RINGCOME EQU 3 ; set if ring on command is rcvd
CHK_FLAGH EQU 53H
PAGING EQU 0 ; set if paging tone is generated
ONCRADLE EQU 1 ; set if H/S is put on cradle
CRADLE_STS EQU 2 ; cradle status
CH_KEY EQU 3 ; set if channel key is pressed
;
;***********************
; RAM declaration
;***********************
;
CT_SEC EQU 54H ; call timer second counter
CT_MIN EQU 56H ; call timer minute counter
PULSE_CNT EQU 58H ; dial pulse number
TIMER1 EQU 5AH ; 1ms timer register
RETRY_CNT EQU 5CH ; resend data counter
;
TX_TIMER2 EQU 5EH ; retramsmit slot timer
SCAN_TBL EQU 60H ; channel scan result table
SCAN_CHBUF EQU 62H ; temp scan channel buffer
T20MS_BUF EQU 64H ; 20ms timer buffer
KEYBUF EQU 66H ; keycode buffer
TONE_CYCLE EQU 68H ; tone cycle buffer
TONE_TIME EQU 6AH ; tone time counter
TONE_PTR EQU 6CH ; tone pointer
;
DIAL_TIMER EQU 6EH ; delay timer ( @20ms )
PAGE_CNT EQU 70H ; page tone cycle count
PAGE_PTR EQU 72H ; page tone pulse pointer
PAGE_PULSE EQU 74H ; page tone pulse count
KEYCODE_BUF EQU 76H ; digit key value buffer
LED_CNT EQU 78H ; led blink count
DEBOUN_CNT EQU 7AH ; on/off cradle debounce counter
LOWBAT_LO EQU 7CH ; low battery low count
;
LOWBAT_HI EQU 7EH ; low battery high count
MUTE_CNT EQU 80H ; mute count
CONNECT_CH EQU 82H ; connect channel number buffer
SCAN_TIMER EQU 84H ; scan channel timer
SCAN_STS EQU 86H ; scan channel status table
SCAN_CNT EQU 88H ; scan RSSI channel count
PAGE_TIMER EQU 89H ; page timer
SECLOW_REG EQU 8AH ; security code low byte register
SECHIGH_REG EQU 8CH ; security code low byte register
;
;************************************
; Warm boot flag & ram declaration
;************************************
DIAL_FG EQU 8EH ; dial flag
DIAL_OVER EQU 0 ; set if wdial_ptr override rdial_ptr
BUFFERFULL EQU 1 ; set if dial buffer is full
DIALLING EQU 2 ; set if dialling digit
FIRSTKEY EQU 3 ; set if 1st digit key is pressed
DIAL_FGH EQU 8FH
RING_LO EQU 0 ; set if ringer off
RING_HI EQU 1 ; set if ringer Hi
DOUT_MODE EQU 2 ; set if dial out mode
ON_MAILBOX EQU 3 ; set if message waiting activation
;
VOL_BUF EQU 90H ; volume level buffer
;
RDIAL_PTR EQU 92H ; read dial buffer pointer
WDIAL_PTR EQU 94H ; write dial buffer pointer
;
SECODEL EQU 96H ; secode code low byte buffer
SECODEH EQU 98H ; secode code high byte buffer
TXCODE_BUF EQU 9AH ; tx code buffer
CURCH EQU 9CH ; last channel buffer
;
MAGIC_CODE EQU 9EH ; warm start check code
;
;---------------------------
REDIAL_BUF EQU 0A0H ; 0A2H - 0C1H (32 nibble bytes)
;-----------------------------------------------------------------------
STACK_BUF EQU 0C0H ; 0D0H - 0FFH (32 bytes stack)
;
;***************************************************************************
;BANK1
;***************************************************************************
PROG_PTR EQU 00H ; memory program pointer
DEVICE_ADR EQU 02H ; AT24C16's high 3 bits address
EPWORD_ADR EQU 04H ; AT24C16's low byte address
EPDATA_BUF EQU 06H ; R/W EEPROM data buffer
WRPAGE_CNT EQU 06H ; address offset for EEPROM Page Write mode
RWCID_LEN EQU 08H ; R/W EEPROM data byte counter
MSGLEN_CNT EQU 08H ; MDMF message length counter
TOTAL_LEN EQU 0AH ; CID data total message length count
VIEW_TIMER EQU 0CH ; view message timer
DISP_TIMER EQU 0EH ; display timer
;
VIEW_NUM EQU 10H ; view CID number
TEMP_BUF EQU 12H ; tempory parameter buffer
;
;***********************
; CID ram declaration
;***********************
;--------------------------------
; Handset decoding routine flag
;--------------------------------
PAR_FLAG1 EQU 14H ; parameter type flag 1
DATE_TIME EQU 0 ; set if date/time has been decoded
CLID_NUM EQU 1 ; set if calling number
DDN_NUM EQU 2 ; set if DDN (Dialable Directory #)
NUM_ABS EQU 3 ; set if number absence
;
ABS_FLAG EQU 15H ; absence reason flag
NAME_ABS_P EQU 0 ; set if name absence is "P"
NAME_ABS_O EQU 1 ; set if name absence is "O"
NUM_ABS_P EQU 2 ; set if number absence is "P"
NUM_ABS_O EQU 3 ; set if number absence is "O"
;
CIDDATA_FG EQU 16H ; CID data flag
DTMF_START EQU 0 ; set if DTMF start code
SINGLE_M EQU 0 ; set if decoding SDMF
CID_ERROR EQU 1 ; set if CID error
PAR_ERROR EQU 2 ; set if current parameter has error
MSG_WAIT EQU 3 ; set if message waiting on/off
;
MEM_FLAG EQU 17H ; indirect memory program / view flag
ENT_NUM EQU 1 ; set if entering number
ENT_LOC EQU 2 ; set if entering location
;
PROG_FLAG EQU 18H ; program operation
PROG_MODE EQU 0 ; set if enter program mode
PROG_LAC EQU 1 ; set if program local area code
SET_12HR EQU 2 ; set if 12/24 hour format
PROG_RNGER EQU 3 ; set if program ringer
;
PROG_FLAGH EQU 19H
SET_CLOCK EQU 0 ; set if set real time
SET_KYTONE EQU 1 ; set if program keytone on/off
PROG_LDC EQU 2 ; set if program long distance code
SET_DATE EQU 3 ; set if program date
;
VIEW_FLAG EQU 1AH ; viewing message flag
EEP_VIEW EQU 0 ; viewing CID or memo message
CID_VIEW EQU 1 ; set if viewing CID record
REDIAL_VIEW EQU 2 ; viewing dial out date & time message
END_OF_LIST EQU 3 ; display end of list
;
VIEW_FLAGH EQU 1BH
PAGE_2 EQU 0 ; set if viewing 2nd page
NEW_MSG EQU 1 ; viewing a new call message
VIEWTMR_ON EQU 2 ; set if view timer is turned on
;LAC_RDY EQU 3 ; set if CID match with local area code
PAGE_BRA EQU 3 ; set if brazil format display
;
DISP_FLAG EQU 1CH ; display flag
NO_DATA EQU 0 ; set if show no data
ERALL EQU 1 ; set if erase all screen is shown
SWITCH_PAGE EQU 2 ; set if it is time to switch 2nd page
DISP_CID_OVER EQU 3 ; set if display CID message over.
;
DISP_FLAGH EQU 1DH
UP_CALTMR EQU 0 ; set if enable call timer update
RST_CALTMR EQU 1 ; set if reset & display call timer after 10 sec.
OFF_TMRDSP EQU 2 ; set if on call timer display
ON_NUMDSP EQU 3 ; set to display number from call timer
;
OPER_FG EQU 1EH ; operation flag
DIALBACK EQU 0 ; set if dial back function activated
DEL_MEM EQU 1 ; set if delete single record
PREDIAL EQU 2 ; set if predial mode
CID_TO_MEM EQU 3 ; enable to store CID to indirect memory
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -