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

📄 2802d510.src

📁 用三星的MCU写的CID电话机源程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
              LD     P3,A
              LD     P8,A              ;P8 OUTUP LOW LEAVE
              BITR   IRQ2
              bitr   irq4
              bits   ie4
              bitr   nousedail_fg
noreset_int1
              LD     EA,#00H
              LD     I_DIALCOUNT,EA
              LD     O_DIALCOUNT,EA
              LD     EA,OUT_POINT
              LD     IN_POINT,EA
              BITR   STORE_FG
              BITR   MEMORY_FG
              bitr   rmute
              BITR   MUTE
              BITR   HFO
              BITR   DP
              ld     ea,#00h
              ld     key_value,ea
IN_STOP       bitr   spk_key_fg
	BITR	m_DIAL_FG                   ;BU NENG FUCK FUCK !!!
              bitr   irq0                    
              BITR   IRQ2
              bitr   irq4
              bits   ie0
              bits   ie2
              bits   ie4
              bitr   is0
              bitr   is1
              bits   ime
              STOP                     ;IDLE DURING STOP & ONHOOK STOP
              NOP
              NOP                      
              NOP                      ;OSCILLATION STABILIZE
              NOP
              NOP
              NOP                      
              NOP                      ;OSCILLATION STABILIZE
              NOP
              JPS    MAIN
IN_STOP1      BTST   HOLD2_FG
              JPS    IN_STOP2
IN_STOP3      BTST   INUSE_1
              JPS    noreset_int1
              JPS    IN_STOP
IN_STOP2      BTST   HOLD1_FG
              JPS    IN_STOP
IN_STOP4      BTST   INUSE_2
              JPS    noreset_int1
              JPS    IN_STOP
              ;/////          qpj debug add  jun/27/2002  
IN_STOP_fuck:
              LD     EA,#00H
              LD     I_DIALCOUNT,EA
              LD     O_DIALCOUNT,EA
              LD     EA,OUT_POINT
              LD     IN_POINT,EA
              BITR   STORE_FG
              BITR   MEMORY_FG
;              bitr   rmute
;              BITR   MUTE

              ld     ea,#00h
              ld     key_value,ea
              bitr   spk_key_fg
              bitr   nousedail_fg
              
		bitr   inuse_1
		bitr   inuse1_fg

		bits   inuse_2
		bitr   hold2_fg
		bitr   line2add
		bits   inuse2_fg
		
		jps     IN_STOP              
              ;/////          qpj debug add  jun/27/2002  

;==================INT2==INTERRUPT==KEYPAD==SCAN===========================
INT2:
              
              PUSH   HL
              PUSH   WX
              PUSH   YZ
              PUSH   EA
              PUSH   SB
              BITR   IS0
              BITR   IS1


              btsf    spk_key_fg
              jps     spk_pro
              
	      call    onhook_scan     ;qpj debug add 
	      
              btst    onhook_state
              jps     set_scan1

L_fuckfuck:
              ld      ea,#0ffh
              ld      pmg3,ea
              call    time0
              call    time0
              call    time0
              call    time0
              jps     set_scan
set_scan1:

	      btsf   hfo               ;spk_key_fg       pm.pm.
	      jps    L_fuckfuck        ;qpj debug add !!!
	      
              bits   pulldown
              ld     a,#0h             ; set p7
              ld     pumod2,a
              ld     ea,#00h
              ld     pmg3,ea
              ld     a,#0h
              ld     p7,a

              ld     ea,#0ffh
              ld     pmg1,ea
              bits   p2.0
              bits   p2.1
              bits   p2.2
              CALL   TIME0
              CALL   TIME0
              btst   p7.3
              jps    set_scan2
              di
              bitr   irq0
              ld     ea,#0ffh
              LD     PMG3,EA
              bitr   p6.1
              bitr   p6.3
              call   time0
              call   time0
              jps    set_scanb

set_scan2     ld     ea,#7fh
              ld     pmg4,ea
              bits   p8.0
              bits   p8.1
              bitr   p2.0
              bitr   p2.1
              bits   p2.2
              bits   p2.3
              bits   p3.0
              bits   p3.1
              bits   p3.2
              bits   p3.3

              call   time0
              call   time0
              btst   p7.1
              jps    set_scan3
              ld     ea,#0ffh
              ld     pmg3,ea
              bitr   p6.1
              bitr   p6.3
              jps    set_scanb

set_scan3    
              bits   p2.0
              bits   p2.1
              bitr   p8.0
              bitr   p8.1
              call   time0
              call   time0            
              btst   p7.0
              jps    over_int2
              ld     ea,#0ffh
              ld     pmg3,ea
              bitr   p6.1
              bitr   p6.3
              call   time0
              jps    set_scanb

over_int2
              bitr   pulldown
              bits   nousedail_fg
              ld     a,#2h             ; set p7
              ld     pumod2,a
              ld     a,#0h
              ld     key_count,a
              jps    over_int2a

set_scanb     bitr   pulldown
              call   p9_mode
              ld     a,#8h
              ld     pumod2,a
test_routine  ld     a,#4h
              ld     p9,a
              ;call   time20
              ;ld     a,#0h
              ;ld     p9,a
              ;call   time20
              ;jp     test_routine
            
set_scan        
              LD     A,#0001B
              LD     IMOD2,A
              LD     EA,#00H
              LD     KEY_VALUE,EA
              LD     KEY_COUNT,A

              LD     EA,#0FFH         
              LD     PMG2,EA           ;SET P4,P5 TO OUTPUT MODE
              LD     EA,#00H           ;SET P2,P3 TO INPUT MODE
              LD     PMG1,EA
              LD     EA,#01111100B     ;SET P8.0,P8.1 TO INPUT MODE
              LD     PMG4,EA
              LD     EA,#0F8H
              LD     PUMOD1,EA
              LD     A,#0eH
              LD     PUMOD2,A
              LD     E,#3H              ;SCAN_KEY FINISH 
              RCF
              LD     A,#1111B
              LD     SCAN_WORD,A
SCAN_KEY      LD     A,SCAN_WORD
              RRC    A
              LD     SCAN_WORD,A
              LD     P7,A               ;P7.3/P7.2/P7.1/P7.0 TO LOGIC "0"
SCAN_P2       LD     A,P2
              CPSE   A,#0FH
              CALL   TEST_P7
              JPS    SCAN_P3
TEST_P7       BTST   P7.3
              CALL   READ_KEY01
              BTST   P7.2
              CALL   READ_KEY02
              BTST   P7.1
              CALL   READ_KEY03
              BTST   P7.0
              CALL   READ_KEY04
              RET
SCAN_P3       LD     A,P3 
              CPSE   A,#0FH
              CALL   TEST_P7
              JPS    SCAN_P80
SCAN_P80      BTSF   P8.0
              JPS    SCAN_P81
              CALL   TEST_P7
SCAN_P81      BTST   P8.1
              CALL   TEST_P7
              SCF
              DECS   E
              JPS    SCAN_KEY
              LD     A,KEY_COUNT
              CPSE   A,#0H
              JPS    AWARD                                          
RETURE:        
              ld     ea,key_value
              LD     WX,#03H
              CPSE   EA,WX              ;if equal skip
              JPS    re_start01
              call   p_spk
              call   onhook_scan
re_start01    LD     A,#0001B
              LD     IMOD2,A           ;KS4-KS7(P7) FALLING EDGE SELECT

              ld     ea,key_value
              LD     WX,#03H
              CPSE   EA,WX
              nop                        ;JPS    bbbb
              call   p6_mode
              jps    aaaa
bbbb          LD     EA,#00H
              LD     PMG3,EA           ;P7 INPUT MODE /P6 0UTPUT MODE
              LD     A,#0eH
              LD     PUMOD2,A          ;ENABLE P7 P6 P8 P9 PULL-UP RESISTORS
aaaa          LD     EA,#0F8H
              LD     PUMOD1,EA         ;ENABLE P2 P3 P4 P5 PULL-UP RESISTORS
                                       ;DISABLE P1 PULL_UP RESISTOR 
              LD     EA,#0FFH
              LD     PMG1,EA           ;ENABLE P2,P3 TO OUTPUT MODE
              LD     PMG2,EA           ;ENABLE P4,P5 TO OUTPUT MODE
              LD     EA,#01111111B
              LD     PMG4,EA           ;ENABLE P8,P9 TO OUTPUT MODE
              LD     A,#0H
              LD     P2,A              ;P2,P3, OUTPUT LOW LEAVE
              LD     P3,A
              LD     P8,A              ;P8 OUTUP LOW LEAVE
              BITR   IRQ2
over_int2a
              POP    SB
              POP    EA                                             
              POP    YZ                                             
              POP    WX                                             
              POP    HL
              ei
              RET
;------------------------------------------------------
spk_pro
              bitr   spk_key_fg
              ld     ea,#03h
              ld     key_value,ea
              jps    reture




AWARD         LD     A,KEY_COUNT
              CPSE   A,#1H
              JPS    RETURE
              LD     EA,KEY_VALUE
              LD     WX,#11H
              CPSE   EA,WX                   ;AWARD STORE KEY_VALUE
              JPS    IS_2                     ;(1/2/3/4/5/6/7/8/9/0/*/#)
              JPS    STORE_IN                 ;&(FLASH/PALUSE)
IS_2         ; LD     EA,KEY_VALUE
              LD     WX,#12H
              CPSE   EA,WX
              JPS    IS_3
              JPS    STORE_IN
IS_3         ; LD     EA,KEY_VALUE
              LD     WX,#13H
              CPSE   EA,WX
              JPS    IS_4
              JPS    STORE_IN
IS_4         ; LD     EA,KEY_VALUE
              LD     WX,#14H
              CPSE   EA,WX
              JPS    IS_5
              JPS    STORE_IN
IS_5         ; LD     EA,KEY_VALUE
              LD     WX,#15H
              CPSE   EA,WX
              JPS    IS_6
              JPS    STORE_IN
IS_6         ; LD     EA,KEY_VALUE 
              LD     WX,#16H
              CPSE   EA,WX
              JPS    IS_7
              JPS    STORE_IN
IS_7         ; LD     EA,KEY_VALUE
              LD     WX,#17H
              CPSE   EA,WX
              JPS    IS_8
              JPS    STORE_IN
IS_8         ; LD     EA,KEY_VALUE
              LD     WX,#18H
              CPSE   EA,WX
              JPS    IS_9
              JPS    STORE_IN
IS_9         ; LD     EA,KEY_VALUE
              LD     WX,#19H
              CPSE   EA,WX
              JPS    IS_0
              JPS    STORE_IN
IS_0         ; LD     EA,KEY_VALUE
              LD     WX,#1AH
              CPSE   EA,WX
              JPS    IS_M
              JPS    STORE_IN
IS_M         ; LD     EA,KEY_VALUE          ;M---*
              LD     WX,#21H
              CPSE   EA,WX
              JPS    IS_J                  ;J---#
              JPS    STORE_IN
IS_J         ; LD     EA,KEY_VALUE
              LD     WX,#22H
              CPSE   EA,WX
              JPS    IS_FLASH
              JPS    STORE_IN
IS_FLASH     ; LD     EA,KEY_VALUE
              LD     WX,#09H                         
              CPSE   EA,WX
              JPS    IS_PAUSE
              JPS    STORE_IN

⌨️ 快捷键说明

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