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

📄 ct0hslcd1.src

📁 用三星MCU实现的完整无绳电话程序,来自三星公司内部资料,供参考.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
F_CID2MEM       EQU     FLAG22.1        ; FLAG FOR SAVING CID RECORD TO MEMORY
F_ENDOFLIST     EQU     FLAG22.2        ; FLAG FOR INDICATION END OF LIST IN IN CBR MODE
F_MBRMODE       EQU     FLAG22.3        ; CONSULTING MEMORY MODE STATUS INDICATOR
FLAG23          EQU     9DH
F_CMPENABLE     EQU     FLAG23.0        ; 1 = ENABLE FIRST CHAR COMPARISON WITH REF_CHAR
F_RX0CID_OLD    EQU     FLAG23.1
F_CIDOK         EQU     FLAG23.2        ; CID PACKET RECEIVED SUCCESSFULLY
F_CIDSCRN       EQU     FLAG23.3        ; 4.5 sec CID SCREEN CLEAR UP FLAG
T_RXCID         EQU     9EH             ; 1 NIB, 1.5sec TIMER FOR RECEIVING CID
FLAG24          EQU     9FH
F_CIDHEADOK     EQU     FLAG24.0        ; TELL MAIN PROG. CID HEADER IS RECEIVED
F_RXCID         EQU     FLAG24.1        ; CID HEAD RECEIVED,WAIT FOR F_CIDOK / T_RXCID TIMEOUT
F_TMPRES        EQU     FLAG24.2        ; 1=TOP MESSAGE PRESENT
F_ENVEFLASH     EQU     FLAG24.3        ; 1=FLASH ENVELOP ICON
T_CIDSCRN       EQU     0A0H            ; 2 NIB, 4.5sec CID SCREEN CLEAR UP TIMER
T_ENVEFLASH     EQU     0A2H            ; 1 NIB, TIMER FOR FLASHING ENVELOP ICON
FLAG25          EQU     0A3H
F_CIDMUTE         EQU     FLAG25.0        ; NOW CHANGED TO DEFAULT CHANNEL
;F_PBKMATCH      EQU     FLAG25.1        ; 1=PHONEBOOK MATCH DURING CID BRWSE MODE
F_ANSSMODE      EQU     FLAG25.1        ; ANSWERER SETTING MODE
F_CIDRECV       EQU     FLAG25.2        ; 1=CID DATA RECEIVED SUCCESSFULLY
F_NOMSG         EQU     FLAG25.3        ; 1=NO MESSAGE IN DSP

; RAM BANK 1 ALLOCATION =======================================================
DIAL_BUF        EQU     00               ; DIAL BUFFER   (40NIB, 100h~127h)
RDIAL_BUF       EQU     DIAL_BUF+BUFLEN  ; REDIAL BUFFER (40NIB, 128h~14Fh)
NAMEMEM         EQU     RDIAL_BUF+BUFLEN ; NAME MEMORY   (20NIB FOR NAME, 150h~163h)
NUMBMEM         EQU     NAMEMEM+20       ; NUMBER MEMORY (20NIB FOR DIGIT 164h~177h)
LCD_BUFFER      EQU     NUMBMEM+20       ; LCD BUFFER    (32NIB, 178H~197H)
LCD_BUF2        EQU     LCD_BUFFER+32    ; LCD BUFFER 2  (24NIB, 198H~1AFH)

CID_BUF         EQU     LCD_BUF2+24      ; CID BUFFER    (28NIB, 1B0H~1CBH)
DIGIT_BUF       EQU     CID_BUF+8        ; DIGITS BUFFER (20NIB, 1B8H~1CBH)
CID_COUNT       EQU     CID_BUF+6        ; CALL COUNTER  ( 2NIB, 1B6H~1B7H)

CID_BUF2        EQU     CID_BUF+28       ; CID BUFFER 2  (28NIB, 1CCH~1E7H)
NAMEMEM2        EQU     CID_BUF2         ; NAME MEMORY 2 (20NIB FOR NAME, 1CCH~1DFH)

CID_PHONE_IN    EQU     CID_BUF2         ; CID phone info area

CID_HOUR_IN     EQU     CID_PHONE_IN+20  ; CID time info area
CID_MONTH_IN    EQU     CID_PHONE_IN+21
CID_DATE_IN     EQU     CID_PHONE_IN+22
CID_MSB_IN      EQU     CID_PHONE_IN+23
CID_MINUTE_IN   EQU     CID_PHONE_IN+24
CID_STATUS_IN   EQU     CID_PHONE_IN+25
CID_CHKSUM_IN   EQU     CID_PHONE_IN+26
CID_CHKSUM1_IN  EQU     CID_PHONE_IN+27

CID_READ        EQU     CID_BUF2+28     ; READ LOG FLAG ( 1NIB, 1E8H )
CID_MONTH       EQU     CID_READ+1      ; MONTH         ( 1NIB, 1E9H )
CID_DATE        EQU     CID_MONTH+1     ; DATE          ( 2NIB, 1EAH~1EBH)
CID_HOUR        EQU     CID_DATE+2      ; HOUR          ( 2NIB, 1ECH~1EDH)
CID_MINUTE      EQU     CID_HOUR+2      ; MINUTE        ( 2NIB, 1EEH~1EFH)

MARK_BUF        EQU     CID_MINUTE+2    ; MARK BUFFER   ( 8NIB, 1F0H~1F7H)
CID_STATUS      EQU     MARK_BUF+8      ; CID STATUS    ( 1NIB, 1F8H~1F8H)
CID_STATUS2     EQU     CID_STATUS+1    ; CID STATUS 2  ( 1NIB, 1F9H~1F9H)
CID_CURREC      EQU     CID_STATUS2+1   ; CUR. REC. NO. ( 2NIB, 1FAH~1FBH)
CID_STATUS1_IN  EQU     CID_CURREC+2    ; CID STAUTS1   ( 2NIB, 1FCH~1FDH)
CID_SWITCHTMR   EQU     CID_STATUS1_IN+2 ; CID SCREEN SWITCH TIME (2NIB, 1FEH~1FFH)
CID_ANSWERED_IN EQU     CID_STATUS1_IN.0
CID_ENVEFLASH   EQU     CID_STATUS1_IN.1
CID_NOVOICE     EQU     CID_STATUS1_IN.2 ; 1 = NO VOICE MESSAGE ASSOCIATED WITH CALLER ID

CID_SUCCESS     EQU     CID_STATUS.0
CID_NUMBER_RCV  EQU     CID_STATUS.1
CID_NOTIFY      EQU     CID_STATUS.2
CID_ACT_DEACT   EQU     CID_STATUS.3
CID_ANSWERED    EQU     CID_STATUS2.0

; MEMORY ALLOCATION ===========================================================
; LCD BUFFER                          32 NIBBLES   BANK 1  [E0H-FFH]
;    12 CHARACTERS :   24 NIBBLES
;     8 DIGITS     :    8 NIBBLES
;                    @ 32 NIBBLES

; LCD BUFFER MEMORY MAP (BANK 1)===============================================
; ADDR  LCD SECT. | ADDR  LCD SECT. | ADDR  LCD SECT.  | ADDR  LCD SECT.
;  78H  CHAR 0 LN |  82H  CHAR 5 LN |  8CH  CHAR 10 LN |  96H  7SEG  6
;  79H  CHAR 0 HN |  83H  CHAR 5 HN |  8DH  CHAR 10 HN |  97H  7SEG  7
;  7AH  CHAR 1 LN |  84H  CHAR 6 LN |  8EH  CHAR 11 LN |
;  7BH  CHAR 1 HN |  85H  CHAR 6 HN |  8FH  CHAR 11 HN |
;  7CH  CHAR 2 LN |  86H  CHAR 7 LN |  90H  7SEG  0    | I.E.
;  7DH  CHAR 2 HN |  87H  CHAR 7 HN |  91H  7SEG  1    | LN - LOWER NIBBLE
;  7EH  CHAR 3 LN |  88H  CHAR 8 LN |  92H  7SEG  2    | HN - HIGHER NIBBLE
;  7FH  CHAR 3 HN |  89H  CHAR 8 HN |  93H  7SEG  3    |
;  80H  CHAR 4 LN |  8AH  CHAR 9 LN |  94H  7SEG  4    |
;  81H  CHAR 4 HN |  8BH  CHAR 9 HN |  95H  7SEG  5    |

; RAM BANK 14 ALLOCATION (LCD RAM)=============================================
LCDTR_LO        EQU     0FEH
LCDTR0          EQU     0FEH.0
LCDTR1          EQU     0FEH.1
LCDTR2          EQU     0FEH.2
LCDTR3          EQU     0FEH.3
LCDTR_HI        EQU     0FFH
LCDTR4          EQU     0FFH.0
LCDTR5          EQU     0FFH.1
LCDTR6          EQU     0FFH.2
LCDTR7          EQU     0FFH.3

; EEPROM MEMORY MAP (16384 BITS, 16BITS x 1024 ADDR, 000H-3FFH)================
; PHONEMEM_R0   000H~009H   PHONEMEM_R10   064H~06DH   PHONEMEM_R20   0C8H~0D1H
; PHONEMEM_R1   00AH~013H   PHONEMEM_R11   06EH~077H   PHONEMEM_R21   0D2H~0DBH
; PHONEMEM_R2   014H~01DH   PHONEMEM_R12   078H~081H   PHONEMEM_R22   0DCH~0E5H
; PHONEMEM_R3   01EH~027H   PHONEMEM_R13   082H~08BH   PHONEMEM_R23   0E6H~0EFH
; PHONEMEM_R4   028H~031H   PHONEMEM_R14   08CH~095H   PHONEMEM_R24   0F0H~0F9H
; PHONEMEM_R5   032H~03BH   PHONEMEM_R15   096H~09FH   PHONEMEM_R25   0FAH~103H
; PHONEMEM_R6   03CH~045H   PHONEMEM_R16   0A0H~0A9H   PHONEMEM_R26   104H~10DH
; PHONEMEM_R7   046H~04FH   PHONEMEM_R17   0AAH~0B3H   PHONEMEM_R27   10EH~117H
; PHONEMEM_R8   050H~059H   PHONEMEM_R18   0B4H~0BDH   PHONEMEM_R28   118H~121H
; PHONEMEM_R9   05AH~063H   PHONEMEM_R19   0BEH~0C7H   PHONEMEM_R29   122H~12BH
;
;                                                      SOS_NUMBER     1F8H~1FCH
; (CALLER ID LOG IN EEPROM)
; CID_R0    200H~206H   CID_R17   277H~27DH
; CID_R1    207H~20DH   CID_R18   27EH~284H
; CID_R2    20EH~214H   CID_R19   285H~28BH
; CID_R3    215H~21BH   CID_R20   28CH~292H
; CID_R4    21CH~222H   CID_R21   293H~299H
; CID_R5    223H~219H   CID_R22   29AH~2A0H
; CID_R6    22AH~230H   CID_R23   2A1H~2A7H
; CID_R7    231H~237H   CID_R24   2A8H~2AEH
; CID_R8    238H~23EH   CID_R25   2AFH~2B5H
; CID_R9    23FH~245H   CID_R26   2B6H~2BCH
; CID_R10   246H~24CH   CID_R27   2BDH~2C3H
; CID_R11   24DH~253H   CID_R28   2C4H~2CAH
; CID_R12   254H~25AH   CID_R29   2CBH~2D1H
; CID_R13   25BH~261H
; CID_R14   262H~268H
; CID_R15   269H~26FH
; CID_R16   270H~276H
;
; HANDSET MODEL 3FDH
; HANDSET_ID    3FEH
; COMMON_ID     3FFH
;
; DATA FORMAT OF CID LOG =====================================================
; CID_BUF
; TIME & STATUS [NOTE1] :    6 NIBBLES
;    CALLS TIME         :    2 NIBBLES
;     20 DIGITS         :   20 NIBBLES
;                    @ 28 NIBBLES
;
; [NOTE 1]
;
; FORMAT OF TIME:   | HIGH NIB. |  LOW NIB. |
;                   |B3 B2 B1 B0|B3 B2 B1 B0|
;                   +-----------+-----------+
;                   | R M3 M2 M1|M0 D4 D3 D2|<--ADDR OF TIME
;                   |D1 D0 h4 h3|h2 h1 h0 m5|   ADDR OF TIME+2
;                   |m4 m3 m2 m1|m0  X  X  X|   ADDR OF TIME+4
;
;                   A = 0 FOR UNANSWERED CALL, 1 FOR ANSWERED CALL
;                   M = MONTH
;                   D = DATE
;                   h = HOUR
;                   m = MINUTE
;                   X = RESERVED FOR FUTURE USE
;
;                   R = 0 FOR UNREAD LOG, 1 FOR READ LOG

; EEPSK_LV              - CLOCK BITS TO EEPROM (SHIFT LSB)
; EEPSK_MV              - CLOCK BITS TO EEPROM (SHIFT MSB)
; EEP_WEN               - ISSUE EEPROM WRITE ENABLE COMMAND
; EEP_WDS               - ISSUE EEPROM WRITE DISABLE COMMAND
; EEP_READ              - READ 16BIT DATA FROM EEPROM
; EEP_WRITE             - WRITE 16BIT DATA TO EEPROM
; INIT_EEPROM           - INITIAL EEPROM
; ADDR_EEP              - CALCULATE STARTING ADDR OF PHONEBOOK MEMORY IN EEPROM
; EEP2NUM               - READ NUMBERS FROM EEPROM
; NUM2EEP               - WRITE NUMBERS TO EEPROM
; EEP2NAME              - READ NAME FROM EEPROM
; NAME2EEP              - WRITE NAME TO EEPROM
; PHONEBK_EPY           - FIND PHONEBOOK EMPTY LOCATION
; RAM_COPY              - MOVE DATA BETWEEN TWO BANK
; SEL_BANK              - SELECT MEMORY BANK ROUTINE
;
; TO_EVENTCHK           - CHECKING & PROCESSING OF SUB-ROUTINE TIME OUT EVENT
; SHOW_PDIAL            - SHOW DIAL BUFFER ON LCD
; PROCE_BEEP            - BEEP TONE ON/OFF PROGRAMMING MODE
; CLEAR_BEEP            - CLEAR BEEP TONE ON/OFF PROGRAMMING MODE
; PROCE_CT              - CALL TIMER PROGRAMMING MODE
; CLEAR_CT              - CLEAR CALL TIMER PROGRAMMING MODE
; PROCE_KEYL            - KEY LOCK PROGRAMMING MODE
; CLEAR_KEYL            - CLEAR KEYLOCK PROGRAMMING MODE
; PROCE_MP              - PHONEBOOK MEMORY PROGRAMMING MODE
; CLEAR_MP              - CLEAR PHONEBOOK MEMORY PROGRAMMING MODE
; PROCE_MBR             - CONSULTING MEMORY MODE
; CLEAR_MBR             - CLEAR CONSULTING MEMORY MODE
; EEP2SOS               - READ SOS NUMBER FROM EEPROM
; SOS2EEP               - WRITE SOS NUMBER TO EEPROM
; PROCE_SOS             - PROGRAM THE SOS NUMBER
; CLEAR_SOS             - CLEAR SOS NUMBER PROGRAMMING MODE
; PROCE_MELO            - RINGER MELODY & LEVEL SETTING
; CLEAR_MELO            - CLEAR CHANGE MELODY MODE
; CLR_NAMEBUF           - CLEAR NAME BUFFER
; CLR_NUMBUF            - CLEAR NUMBER BUFFER
; HEX2BCD               - HEX TO BCD ROUTINE
; BCD2HEX               - BCD TO HEX ROUTINE
; SHOW_EEPERR           - EEPROM ERROR HANDLING ROUTINE
;
; CLR_LCDBUF            - CLEAR LCD BUFFER
; SHLF_LCDBUF           - SHIFT LEFT OF LCD BUFFER (CHARACTER SECTION)
; SHRG_LCDBUF           - SHIFT RIGHT OF LCD BUFFER (CHARACTER SECTION)
; ON_LCD                - TURN ON WHOLE LED SCREEN
; CLR_LCD               - CLEAR WHOLE LCD SCREEN
; CLR_CHAR              - CLEAR CHARACTER SECTION OF LCD
; CLR_7SEG              - CLEAR 7-SEGMENT SECTION OF LCD
; UPDATE_LCD            - UPDATE WHOLE LCD DISPLAY
; UPDATE_CH             - UPDATE CHARACTER SECTION OF LCD
; UPDATE_7S             - UPDATE 7-SEGMENT SECTION OF LCD
; DIS_CHAR              - DISPLAY ONE CHARACTER ON LCD
; DIS_7SEG              - DISPLAY ONE DIGIT ON LCD
; DIS_MESS              - DISPLAY FIXED MESSAGE ON CHARACTER SECTION OF LCD
;
; ON_INUSE              - TURN ON IN-USE ICON
; OFF_INUSE             - TURN OFF IN-USE ICON
; ON_ENVE               - TURN ON ENVELOP ICON
; OFF_ENVE              - TURN OFF ENVELOP ICON
; ON_DTAM               - TURN ON DTAM ICON
; OFF_DTAM              - TURN OFF DTAM ICON
; ON_GRPL               - TURN ON GROUP LISTING ICON
; OFF_GRPL              - TURN OFF GROUP LISTING ICON
; ON_RINGOFF            - TURN ON RINGER OFF ICON
; OFF_RINGOFF           - TURN OFF RINGER OFF ICON
; ON_BATTLO             - TURN ON BATTLO ICON
; OFF_BATTLO            - TURN OFF BATTLO ICON
; ON_MENU               - TURN ON MENU ICON
; OFF_MENU              - TURN OFF MENU ICON
; ON_KEYLOCK            - TURN ON KEYLOCK ICON
; OFF_KEYLOCK           - TURN OFF KEYLOCK ICON
; ON_SLASH              - TURN ON SLASH ICON
; OFF_SLASH             - TURN OFF SLASH ICON
; ON_COL                - TURN ON COL ICON
; OFF_COL               - TURN OFF COL ICON
;
; MEMORY PAGE :   3B00H - 7-SEGMENT DATA
;                       - NAME KEYIN CHARACTER LOOKUP TABLE
;                 3C00H - LCD FONTS DATA (FIRST SET)
;                 3D00H - LCD FONTS DATA (SECOND SET)
;                 3E00H - FIXED MESSAGE CODE (FIRST SET)
;                 3F00H - FIXED MESSAGE CODE (SECOND SET)


; EXCEPTION VECTORS ===========================================================
                ORG     0000H           ; NOT RELOCATABLE !!!
                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      ; INTS VECTOR
                VENT5   1,1,OCCUPIED    ; INTT0 VECTOR
                VENT6   0,0,INTT1_ISR   ; INTT1 VECTOR, MEMORY BANK=000H~07FH, F80H~FFFH, REGISTER BANK=0
                VENT7   1,1,UNUSED      ; INTK VECTOR


                ORG     0010H
TN_PAGE:        DB      0FFH,97H,4BH    ; 300ms ON, 150ms OFF
                DB      0FFH,97H,4BH    ; 300ms ON, 150ms OFF
                DB      0FFH,97H,00H    ; 300ms ON
TN_OFR:         DB      9EH,19H         ; 60ms ON, 50ms OFF
                DB      9EH,00H         ; 60ms ON
TN_KEY:         DB      92H,00H         ; 36ms ON


⌨️ 快捷键说明

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