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

📄 2802d510.src

📁 用三星的MCU写的CID电话机源程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
IS_PAUSE     ; LD     EA,KEY_VALUE
              LD     WX,#07H
              CPSE   EA,WX
              JPS    RETURE
              JPS    STORE_IN
;--------------------------------------------------------------------------
STORE_IN
              BTST  DP
              JPS   RETURE
              LD    EA,I_DIALCOUNT
              LD    WX,EA
              INCS  WX
              LD    EA,WX
              LD    I_DIALCOUNT,EA
              LD    EA,I_DIALCOUNT
              LD    WX,#01H
              CPSE  EA,WX
              JPS   IS_33D
              LD    EA,#3FH               ;
              LD    OUT_POINT,EA          ;
              JPS   KEY_STORE0
IS_33D        LD    EA,I_DIALCOUNT
              LD    WX,#21H               ;33 DIGITES
              CPSE  EA,WX
              JPS   is_34d

              LD    WX,#09H
              LD    EA,KEY_VALUE
              CPSE  EA,WX
              jps   key_33d
              jps   is_34d

key_33d       ld    EA,#20h
              LD    I_DIALCOUNT,EA
              BITS  OVERFLOW
              BTST  STORE_FG
              JPS   ADJOURN
              CALL  KEY_TONE
              JPS   RETURE
KEY_STORE0
              BTSF  STORE_FG
              CALL  STORE_TONE
              BTSF  STORE_FG        ;
              JPS   KEY_STORE       ;
              LD    WX,#07H
              LD    EA,KEY_VALUE
              CPSE  EA,WX
              JPS   KEY_STORE
              LD    EA,#3FH              ;SET OUT_POINT TO 40H-1H=3FH
              LD    OUT_POINT,EA
              BTSF  OVERFLOW
              JPS   NOREDIAL
              JPS   RETURE
NOREDIAL      CALL  KEY_TONE
              LD    EA,IN_POINT
              LD    OUT_POINT,EA
              JPS   RETURE
KEY_STORE     BITR  OVERFLOW
              LD    EA,#I_DIALBUF
              LD    HL,EA
              LD    EA,KEY_VALUE
              CALL  V_INVERT
              LD    @HL,A
              LD    EA,HL
              LD    IN_POINT,EA
              JPS   RETURE

is_34d        LD    EA,I_DIALCOUNT
              LD    WX,#22H               ;34 DIGITES
              CPSE  EA,WX
              jps   key_store1
              LD    EA,KEY_VALUE
              LD    WX,#07H
              CPSE  EA,WX
              JPS   nopause_34d
              jps   key_store1

nopause_34d   bits  ADJOURN_fg
              call  adjourn
              call  adjourn
              bitr  adjourn_fg
              jps   key_store1                     

KEY_STORE1
              BTSF  STORE_FG
              CALL  STORE_TONE
              LD    EA,IN_POINT
              LD    YZ,EA
              INCS  YZ
              LD    EA,YZ   
              LD    HL,EA
              LD    EA,KEY_VALUE
              LD    WX,#07H
              BTST  STORE_FG
              CPSE  EA,WX
              JPS   V_STORE
              DECS  HL
              LD    A,@HL
              CPSE  A,#1110B
              JPS   GO_STORE
              DECS  HL
              LD    EA,HL
              LD    IN_POINT,EA
              LD    EA,#3FH              ;SET OUT_POINT TO 40H-1H=3FH
              LD    OUT_POINT,EA
              LD    EA,I_DIALCOUNT
              DECS  EA
              DECS  EA
              LD    I_DIALCOUNT,EA
              BTST  OVERFLOW
              JPS   RETURE
              ;LD    EA,IN_POINT
              ;LD    OUT_POINT,EA
              ;CALL  KEY_TONE
              JPS   RETURE
GO_STORE      LD    EA,HL
              LD    YZ,EA
              INCS  YZ
              LD    EA,YZ
              LD    HL,EA
V_STORE       CALL  V_INVERT
              LD    @HL,A
              LD    EA,HL
              LD    IN_POINT,EA
              JPS   RETURE
ADJOURN       LD    EA,#I_DIALBUF
              LD    HL,EA
              LD    WX,#1FH
STORE_LOOP    INCS  HL
              LD    A,@HL
              DECS  HL
              LD    @HL,A
              INCS  HL
              DECS  WX
              JPS   STORE_LOOP
              LD    EA,OUT_POINT
              DECS  EA
              LD    OUT_POINT,EA
              LD    EA,I_DIALCOUNT
              DECS  EA
              LD    I_DIALCOUNT,EA
              LD    EA,IN_POINT
              DECS  EA
              LD    IN_POINT,EA
              btst  adjourn_fg
              JPS   KEY_STORE1
              ret
;-------------------------------------------------------------------------
V_INVERT          LD     EA,KEY_VALUE          ;NUMBER          DIAL_VALUE
                  LD     WX,#11H               ;  1               0001
                  CPSE   EA,WX                 ;  2               0010
                  JPS    V_COMPARE2            ;  3               0011
                  LD     A,#1H                 ;  4               0100
                  RET                          ;  5               0101
V_COMPARE2        LD     WX,#12H               ;  6               0110
                  CPSE   EA,WX                 ;  7               0111
                  JPS    V_COMPARE3            ;  8               1000
                  LD     A,#2H                 ;  9               1001
                  RET                          ;  0               1010
V_COMPARE3        LD     WX,#13H               ;  *               1011
                  CPSE   EA,WX                 ;  #               1100
                  JPS    V_COMPARE4            ;PALUSE            1101
                  LD     A,#3H                 ;FLASHE            1110
                  RET
V_COMPARE4        LD     WX,#14H               
                  CPSE   EA,WX                 
                  JPS    V_COMPARE5              
                  LD     A,#4H                 
                  RET
V_COMPARE5        LD     WX,#15H
                  CPSE   EA,WX
                  JPS    V_COMPARE6
                  LD     A,#5H
                  RET
V_COMPARE6        LD     WX,#16H
                  CPSE   EA,WX
                  JPS    V_COMPARE7
                  LD     A,#6H
                  RET    
V_COMPARE7        LD     WX,#17H
                  CPSE   EA,WX
                  JPS    V_COMPARE8
                  LD     A,#7H
                  RET
V_COMPARE8        LD     WX,#18H
                  CPSE   EA,WX
                  JPS    V_COMPARE9
                  LD     A,#8H
                  RET
V_COMPARE9        LD     WX,#19H
                  CPSE   EA,WX
                  JPS    V_COMPARE0
                  LD     A,#9H
                  RET
V_COMPARE0        LD     WX,#1AH
                  CPSE   EA,WX
                  JPS    V_COMPARE_M
                  LD     A,#1010B
                  RET
V_COMPARE_M       LD     WX,#21H
                  CPSE   EA,WX
                  JPS    V_COMPARE_J
                  LD     A,#1011B
                  RET
V_COMPARE_J       LD     WX,#22H
                  CPSE   EA,WX
                  JPS    V_COMPARE_P
                  CALL   FLASHSET
                  LD     A,#1100B
                  RET
V_COMPARE_P       LD     WX,#07H
                  CPSE   EA,WX
                  JPS    V_COMPARE_F
                  LD     A,#1101B
                  RET
V_COMPARE_F       LD     WX,#09H
                  CPSE   EA,WX
                  JPS    COUNT
                  LD     A,#1110B
                  RET
;------------------------------------------------------------------------
READ_KEY01    PUSH   EA
              LD     EA,#01H
              BTST   P2.0               ;LINE1 KEY
              CALL   INKEY_COUNT
              LD     EA,#02H            ;LINE2 KEY
              BTST   P2.1
              CALL   INKEY_COUNT
              LD     EA,#03H            ;SPK KEY
              BTST   P2.2
              CALL   INKEY_COUNT
              LD     EA,#04H            ;CONF KEY
              BTST   P2.3
              CALL   INKEY_COUNT
              LD     EA,#05H            ;MUTE KEY
              BTST   P3.0
              CALL   INKEY_COUNT
              LD     EA,#06H            ;HOLD KEY
              BTST   P3.1
              CALL   INKEY_COUNT
              LD     EA,#07H            ;RD/PA KEY
              BTST   P3.2
              CALL   INKEY_COUNT
              LD     EA,#08H            ;STORE KEY
              BTST   P3.3
              CALL   INKEY_COUNT
              LD     EA,#09H            ;FLASH KEY
              BTST   P8.0
              CALL   INKEY_COUNT
              LD     EA,#0AH            ;VOL KEY
              BTST   P8.1
              CALL   INKEY_COUNT
              POP    EA
              RET
READ_KEY02    PUSH   EA
              LD     EA,#11H
              BTST   P2.0
              CALL   INKEY_COUNT        ;1 KEY
              LD     EA,#12H
              BTST   P2.1
              CALL   INKEY_COUNT        ;2 KEY
              LD     EA,#13H
              BTST   P2.2
              CALL   INKEY_COUNT        ;3 KEY
              LD     EA,#14H
              BTST   P2.3
              CALL   INKEY_COUNT        ;4 KEY
              LD     EA,#15H
              BTST   P3.0
              CALL   INKEY_COUNT        ;5 KEY
              LD     EA,#16H
              BTST   P3.1
              CALL   INKEY_COUNT        ;6 KEY
              LD     EA,#17H
              BTST   P3.2
              CALL   INKEY_COUNT        ;7 KEY
              LD     EA,#18H
              BTST   P3.3
              CALL   INKEY_COUNT        ;8 KEY
              LD     EA,#19H
              BTST   P8.0
              CALL   INKEY_COUNT        ;9 KEY
              LD     EA,#1AH
              BTST   P8.1
              CALL   INKEY_COUNT        ;0 KEY
              POP    EA
              RET
READ_KEY03    PUSH   EA
              LD     EA,#21H
              BTST   P2.0
              CALL   INKEY_COUNT        ;* KEY
              LD     EA,#22H
              BTST   P2.1
              CALL   INKEY_COUNT        ;# KEY
              LD     EA,#23H
              BTST   P2.2
              CALL   INKEY_COUNT        ;M1 KEY
              LD     EA,#24H
              BTST   P2.3
              CALL   INKEY_COUNT        ;M2 KEY
              LD     EA,#25H
              BTST   P3.0
              CALL   INKEY_COUNT        ;M3 KEY
              LD     EA,#26H
              BTST   P3.1
              CALL   INKEY_COUNT        ;M4 KEY
              LD     EA,#27H
              BTST   P3.2
              CALL   INKEY_COUNT        ;M5 KEY
              LD     EA,#28H
              BTST   P3.3
              CALL   INKEY_COUNT        ;M6 KEY
              LD     EA,#29H
              BTST   P8.0
              CALL   INKEY_COUNT        ;M7 KEY
              LD     EA,#2AH
              BTST   P8.1
              CALL   INKEY_COUNT        ;M8  KEY
              POP    EA
              RET
READ_KEY04    PUSH   EA
              LD     EA,#31H 
              BTST   P2.0
              CALL   INKEY_COUNT        ;M9 KEY
              LD     EA,#32H
              BTST   P2.1
              CALL   INKEY_COUNT       ;M10 KEY
              LD     EA,#33H
              BTST   P2.2
              CALL   INKEY_COUNT        ;M11 KEY
              LD     EA,#34H
              BTST   P2.3
              CALL   INKEY_COUNT        ;M12 KEY
              LD     EA,#35H
              BTST   P3.0
              CALL   INKEY_COUNT        ;M13 KEY
              LD     EA,#36H
              BTST   P3.1
              CALL   INKEY_COUNT        ;M14 KEY
              LD     EA,#37H
              BTST   P3.2
              CALL   INKEY_COUNT        ;M15 KEY
              LD     EA,#38H
              BTST   P3.3
              CALL   INKEY_COUNT        ;MSG KEY
              LD     EA,#39H
              BTST   P8.0
              CALL   INKEY_COUNT        ;UP KEY
              LD     EA,#3AH
              BTST   P8.1
              CALL   INKEY_COUNT        ;DOWN KEY
              POP    EA
              RET
INKEY_COUNT   INCS   KEY_COUNT
              LD     KEY_VALUE,EA
              RET
;===================CHECK==KEY==FUNCTION====================================
KEY_FUNCTION
              LD     EA,KEY_VALUE
              LD     WX,#01H
              CPSE   EA,WX
              JPS    AWARD1 
              
              bitr   irq0
              JPS    P_LINE1                ;LINE1
AWARD1        LD     WX,#02H
              CPSE   EA,WX
              JPS    AWARD3      ;2             
              bitr   irq0
              JP    P_LINE2                ;LINE2
;AWARD2        LD     WX,#03H

⌨️ 快捷键说明

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