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

📄 p1672y.asm

📁 中东地区常用的传送格式
💻 ASM
字号:
;*************************   
;THIS PROGRAM IS FOR
;IR 260/N(25660)
;55(5*11) KEY SYSTEM
;3004 CODE SYSTEM,SYSTEM CODE IS 117,107
;FIRST DATE 2002/10/11
;*************************
;SYSTEM REGISTER DEFINE
;*************************
IEX	EQU	00H	;interrupt enable register
IRQ	EQU	01H	;interrupt require flag
TM0	EQU	02H	;Timer0 mode register(Prescaler)
PORTA	EQU	08H	;i/o port a
PORTB	EQU	09H	;i/o port b
PORTC	EQU	0AH	;i/o port c
TBR	EQU	0EH	;table branch register
PAOUT	EQU	16H	;set porta to be output port
PBOUT	EQU	17H	;set portb to be output port
PCOUT	EQU	18H	;set portc to be output port
WDT	EQU	1EH
;*************************
;DATA MEMORY TABLE DEFINE
;*************************
CN		EQU	20H	;cycle variable register 
COUNT		EQU	21H	;counter
H_COUNT         EQU     22H     ;high 4-bit keynumber
KEYCOUNT	EQU	23H	;key-press count 
KEYNUMBER	EQU	24H	;key-press number
H_KEYNUMBER	EQU	25H	;high 4-bit key number
L_SENT		EQU	26H	;low 4-bit key code
H_SENT		EQU	27H	;high 4-bit key code
L_SYSKEY        EQU     28H     ;low 4-bit systme code 
H_SYSKEY	EQU	29H	;high 4-bit system code
SENTCODE	EQU	2AH	;ready sent code to LED
BOOT_FLAG	EQU	2BH	;sent flag of bootcode 
PARM		EQU	2CH	;delay cycle count
CT0		EQU	2DH
CT1		EQU	2EH
CT2		EQU	2FH
FAMA_FLAG	EQU	30H	;"LIAN XU FA MA" FLAG
TEMP            EQU     31H
L_SENT2         EQU     32H
H_SENT2         EQU     33H
L_SYSKEY2       EQU     34H
H_SYSKEY2       EQU     35H
UN         EQU     36H
TH         EQU     37H
TT         EQU      38H
;*******************************
ORG     00H
LDI     TT,0000B 
LDI     TH,00B
JMP	START
NOP
NOP
NOP
JMP	IQPBC
;*******************************
IQPBC
LDI	IEX,00H		;INTERRUPT ENABLE 0
LDI	IRQ,00H		;INTERRUPT REQUEST 0
ADIM   TH,01B
RTNI
;*******************************
;PORTA,3 PULSE OUT
;*******************************
CLOCK
LDI	PORTA,1000B
NOP
NOP
NOP
LDI	WDT,1000B
NOP
NOP
NOP
NOP
LDI	PORTA,0000B 
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RTNI                            ;EXE    9+18=27US
******************************
CLOCK1	
LDI	PORTA,0000B
NOP
NOP
NOP
NOP
LDI	WDT,1000B
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RTNI                            ;EXE    27US
;********************************
CLOCK2
LDI	PORTA,0000B
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RTNI                            ;EXE    10US
;********************************
;SCAN PB,PC
SCANKEY
;********************************
SCANPB1
LDA	PORTB,00H		;0
BA0	SCANPB2
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPB2
ADIM	COUNT,01H		;1
LDA	PORTB,00H
BA1	SCANPB3
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPB3 
ADIM	COUNT,01H		;2
LDA	PORTB,00H
BA2	SCANPB4	
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPB4 
ADIM	COUNT,01H		;3
LDA	PORTB,00H
BA3	SCANPC1
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPC1 
ADIM	COUNT,01H		;4
LDA	PORTC,00H
BA0	SCANPC2
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPC2 
ADIM	COUNT,01H		;5
LDA	PORTC,00H
BA1	SCANPC3
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPC3 
ADIM	COUNT,01H		;6
LDA	PORTC,00H
BA2	SCANPC4
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
SCANPC4 
ADIM	COUNT,01H		;7
LDA	PORTC,00H
BA3	S_RTN
ADIM	KEYCOUNT,01H
LDA	COUNT,00H
STA	KEYNUMBER,00H
LDA	H_COUNT,00H
STA	H_KEYNUMBER,00H
S_RTN	
ADIM	 COUNT,01H
BC	$+2
JMP	$+2
ADIM	 H_COUNT,01H
RTNI
;****************************
;HIT 2 KEY AT THE SAME TIME
;****************************
DOUBLEKEY
LDI     KEYCOUNT,00H
SBI     H_KEYNUMBER,02H
BNZ     SETUP
LDA     KEYNUMBER,00H
STA     TEMP,00H
SBI     KEYNUMBER,08H
BNC     DBL3
DBL1
LDI     PAOUT,0100B     ;PORTA(2) OUTPUT
LDI     PORTA,0011B     ;SCAN PORTA.2
CALL    SCANKEY         ;
SBI     KEYCOUNT,01H    ; "17" $ "1"
BNZ     DBL2            ; PORTA(0) $ PORTA(2)
SBIM    TEMP,08H
SUB     KEYNUMBER,00H
BNZ     SETUP   
JMP     READY_FM
DBL2
LDI     PAOUT,0010B     ;PORTA(1) OUTPUT
LDI     PORTA,0101B     ;SCAN PORTA.1
CALL    SCANKEY         ;
SBI     KEYCOUNT,01H    ; "17" $ "18"
BNZ     SETUP           ; PORTA(0) $ PORTA(1)
LDA     TEMP,00H
SUB     KEYNUMBER,00H
BNZ     SETUP   
ADIM    H_KEYNUMBER,01H
SBIM    KEYNUMBER,08H
JMP     READY_FM
DBL3
LDI     PAOUT,0100B     ;PORTA(2) OUTPUT
LDI     PORTA,0011B     ;SCAN PORTA.2
CALL    SCANKEY         ;
SBI     KEYCOUNT,01H    ; "18" $ "1"
BNZ     SETUP           ; PORTA(1) $ PORTA(2)
LDA     TEMP,00H
SUB     KEYNUMBER,00H
BNZ     SETUP
ADIM    KEYNUMBER,08H
JMP     READY_FM
;*****************************
START
LDI     FAMA_FLAG,00H
SETUP
LDI     TM0,0010B               ; (128:1)*7US MODE
LDI	    TBR,00H			; TABLE BRANCH 0
LDI     PAOUT,0000B             ; PORTA INPUT
LDI	PBOUT,00H		; PORTB INPUT
LDI	PCOUT,00H		; PORTC INPUT
LDI	KEYCOUNT,00H
LDI	KEYNUMBER,00H
LDI	H_KEYNUMBER,00H
LDI	COUNT,00H
LDI	H_COUNT,01H
LDI	CN,00H
;*****************************
;SCAN PRESS INITIAL SETUP
;*****************************
TEST0
LDI	PORTA,0111B		; SCAN GROUND
CALL	SCANKEY
SBI	KEYCOUNT,01H
BAZ	READY_FM
BC	START
TEST1	
LDI     PAOUT,0100B             ;PORTA(2) OUTPUT
LDI	PORTA,0011B		; SCAN PORTA.2
CALL	SCANKEY
TEST2	
LDI     PAOUT,0010B             ;PORTA(1) OUTPUT
LDI	PORTA,0101B		; SCAN PORTA.1
CALL	SCANKEY
TEST3	
LDI     PAOUT,0001B             ;PORTA(0) OUTPUT
LDI	PORTA,0110B		; SCAN PORTA.0
CALL	SCANKEY
;******************************
MAIN
SBI	KEYCOUNT,02H
BAZ	DOUBLEKEY
SBI	KEYCOUNT,01H
BAZ	READY_FM
LDA	KEYCOUNT,00H
BNZ	START
JMP	NOKEY
;******************************
READY_FM 
LDA	H_KEYNUMBER,00H
STA	TBR,00H
LDA	KEYNUMBER,00H
CALL 	0300H
STA	L_SENT,00H
LDA	TBR,00H
STA     H_SENT,00H              ; EXE   14US
SBI     H_SENT,0BH
BAZ     START
JMP     FAMA80
;*******************************
FAMA80
LDI     PORTA,00H
LDI     PAOUT,1000B
CALL    FA_CODE1
LDA     TH
STA     SENTCODE
CALL    SB80
LDI     SENTCODE,111B          ;HIGH SYSTEM CODE
CALL    SENT_BIT3
LDA     L_SENT,00H              ;LOW CODE
STA     SENTCODE        
CALL    SENT_BIT              
LDA     H_SENT,00H              ;HIGH CODE
STA     SENTCODE
CALL    SENT_BIT2
CALL    FA_CODE0
LDI    PARM,06H
CALL    DELAY
LDI    PARM,01
CALL    DELAY1
CALL    DELAY4
CALL    DELAY4
CALL    DELAY7
CALL    DELAY7
CALL    DELAY7
CALL    DELAY7
JMP     SETUP
;*******************************
;4 TIMES SENT 1 BIT AFTER SHIFT 
;********************************
SENT_BIT
LDA     SENTCODE,00H     
BA0     SB11
CALL    FA_CODE0
JMP     SB10
SB11
CALL    FA_CODE1
SB10
LDA     SENTCODE,00H
BA1     SB21
CALL    FA_CODE0
JMP     SB20
SB21
CALL    FA_CODE1
SB20
LDA     SENTCODE,00H
BA2     SB31
CALL    FA_CODE0
JMP     SB30
SB31
CALL    FA_CODE1
SB30
LDA     SENTCODE,00H
BA3     SB41
CALL    FA_CODE0
RTNI
SB41
CALL    FA_CODE1
RTNI
;****************************
;发两位码的SENT_BIT
;****************************
SENT_BIT2
LDA     SENTCODE,00H     
BA0     SB51
CALL    FA_CODE0
JMP     SB50
SB51
CALL    FA_CODE1
SB50
LDA     SENTCODE,00H
BA1     SB61
CALL    FA_CODE0
RTNI
SB61
CALL    FA_CODE1
RTNI
;********************************
;发三位码的SENT_BIT
;********************************
SENT_BIT3
LDA     SENTCODE,00H     
BA2     SB71
CALL    FA_CODE0
JMP     SB70
SB71
CALL    FA_CODE1
SB70
LDA     SENTCODE,00H
BA1     SB81
CALL    FA_CODE0
JMP     SB80
SB81
CALL    FA_CODE1
SB80
LDA     SENTCODE,00H
BA0     SB91
CALL    FA_CODE0
RTNI
SB91
CALL    FA_CODE1
RTNI
;********************************
;SENT CODE WHEN IS "1"
;****************************
FA_CODE1        ;		HIGH 440US LOW 1330US
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
LDI     CN,0AH
LDI     UN,06H
CALL     CLOCK1
SBIM    UN,01H
BNZ      $-2
LDI     UN,0AH
CALL     CLOCK1
CALL     CLOCK1
SBIM    UN,01H
BNZ      $-3
SBIM    CN,01H
BNZ      $-10
LDI      CN,0CH
CALL     CLOCK2
SBIM     CN,01H
BNZ       $-2   
LDI      CN,09H
CALL     DELAY7
SBIM     CN,01H
BNZ      $-2 
RTNI
;****************************
;SENT CODE WHEN IS "0" 
;****************************
FA_CODE0        ;HIGH 412US LOW 452US
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK
CALL    CLOCK 
LDI     CN,0AH
LDI     UN,0FH
CALL    CLOCK1
SBIM    UN,01H
BNZ     $-2
SBIM    CN,01H
BNZ     $-5
LDI     CN,05H
CALL    CLOCK1
SBIM    CN,01H
BNZ     $-2
LDI      CN,03H
CALL     CLOCK2
SBIM     CN,01H
BNZ       $-2 
CALL     DELAY4
CALL     DELAY7
RTNI
;***************************
NOKEY
LDI	WDT,1000B		;CLEAR WDT
LDI	PBOUT,00H
LDI	PCOUT,00H
LDI	PAOUT,0FH
LDI	PORTA,00H
LDI	IEX,0001B
LDI	IRQ,00H
STOP
NOP
JMP	START
;****************************
;"YAN SHI"
;****************************
DELAY
SBIM   PARM,01H
BC     $+2
RTNI
LDI     CT2,09H
LDI     CT1,0DH
LDI     CT0,0EH
SBIM 	CT0,01H
BC      $-1
SBIM	CT1,01H
BC      $-4
SBIM	CT2,01H
BC      $-7
JMP     DELAY           ;EXE 6.24MS        
;****************************
DELAY1
SBIM	PARM,01H
BC	$+2
RTNI
LDI     CT2,0FH
LDI     CT1,0FH                         
LDI	CT0,0FH
LDI     WDT,1000B
SBIM	CT0,01H
BC      $-2
SBIM	CT1,01H
BC      $-5
SBIM	CT2,01H
BC      $-8
JMP     DELAY1          ;EXE 13.1MS          
;****************************
DELAY2
SBIM 	PARM,01H
BC	$+2
RTNI
LDI     CT2,0FH
LDI     CT1,0FH                         
LDI	     CT0,0FH
SBIM	 CT0,01H
BC      $-1
LDI     WDT,1000B
NOP
SBIM	CT1,01H
BC      $-6
SBIM	CT2,01H
BC      $-9
JMP     DELAY2          ;EXE 10MS     
;**************************************
DELAY3
LDI    CT2,0FH
LDI    CT1,0FH
LDI    CT0,0FH
LDI    WDT,1000B
SBIM   CT0,01H
BC     $-2
SBIM   CT1,01H
BC     $-5
SBIM   CT2,01H
NOP
NOP
NOP
NOP
NOP
NOP
BC       $-14
RTNI        ;EXE 10MS     
;****************************
DELAY4
    LDI     CT2,0AH
    LDI     CT1,0FH
    NOP
    NOP
    NOP
    NOP
    SBIM    CT1,01H
    BNZ     $-5
    SBIM    CT2,01H
    BNZ     $-8
    LDI     CT2,05H
    SBIM    CT2,01H
    BNZ     $-1
RTNI     
;****************************
DELAY7
      LDI     CT2,0AH
      NOP 
      NOP
      NOP
      SBIM     CT2,01H
      BNZ      $-4  
      LDI     CT2,0AH
      NOP 
      NOP
      NOP
      SBIM     CT2,01H
      BNZ      $-4           ;        100
      RTNI
 ;****************************
;KEY NUMBER DEFINE TABLE
;****************************
ORG	0300H
TJMP
ORG     0310H 
RTNW    03H,0EH         ;10     -81-
RTNW    02H,05H         ;11     -FF-
RTNW    00H,0FH         ;12     -81-
RTNW    0BH,02H         ;13     -FF-
RTNW    00H,01H         ;14     -81-
RTNW    01H,05H         ;15     -81-
RTNW    02H,0FH         ;16     -81-
RTNW    0BH,02H         ;1F     -01-
RTNW    01H,00H         ;17     -81-
RTNW    01H,04H         ;18     -01-
RTNW    01H,02H         ;19     -FF-
RTNW    0BH,0EH         ;1A     -81-
RTNW    01H,0FH         ;1B     -FF-
RTNW    01H,0CH         ;1C     -81-
RTNW    01H,0EH         ;1D     -01-
RTNW    0BH,0FH         ;1E     -81-
ORG	0320H			
RTNW    00H,00H         ;20     -01-
RTNW    00H,04H         ;21     -01-
RTNW    00H,02H         ;22     -01-
RTNW    0BH,04H         ;23     -81-
RTNW    02H,00H         ;24     -01-
RTNW    02H,04H         ;25     -01-
RTNW    02H,02H         ;26     -01-
RTNW    0BH,00H         ;27     -81-
RTNW    0BH,0EH         ;28     -01-
RTNW    0BH,08H         ;29     -FF-
RTNW    0BH,04H         ;2A     -FF-
RTNW    0BH,0EH         ;2B     -01-
RTNW    01H,0EH         ;2C     -01-
RTNW    02H,08H         ;2D     -01-
RTNW    0BH,02H         ;2E     -01-
RTNW    02H,0EH         ;2F     -01-
ORG	0330H			
RTNW    02H,07H         ;20     -01-
RTNW    03H,07H         ;21     -01-
RTNW    00H,07H         ;22     -01-
RTNW    02H,0AH         ;23     -81-
RTNW    02H,00H         ;24     -01-
RTNW    02H,04H         ;25     -01-
RTNW    02H,02H         ;26     -01-
RTNW    0BH,00H         ;27     -81-
RTNW    0BH,0EH         ;28     -01-
RTNW    0BH,08H         ;29     -FF-
RTNW    0BH,04H         ;2A     -FF-
RTNW    0BH,0EH         ;2B     -01-
RTNW    01H,0EH         ;2C     -01-
RTNW    02H,08H         ;2D     -01-
RTNW    0BH,02H         ;2E     -01-
RTNW    02H,0EH         ;2F     -01-
;************************************
END

⌨️ 快捷键说明

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