📄 int0.lis
字号:
0000 REG_RESTORE CUR_PP
0000 REG_RESTORE PRV_PP
0000 ENDIF
export _INT0_KB
;-----------------------------------------------
;@@variable
;-----------------------------------------------
AREA InterruptRAM (RAM,REL,CON)
;@PSoC_UserCode_INIT@ (Do not change this line.)
;---------------------------------------------------
; Insert your custom declarations below this banner
;---------------------------------------------------
EXPORT INT0_NEW
0000 INT0_NEW: BLK 1 ;Receive temp when using INT0
EXPORT INT0_TEMP
0001 INT0_TEMP: BLK 1 ;Receive temp when using INT0
EXPORT INT0_BITCOUNT
0002 INT0_BITCOUNT: BLK 1 ;Receive bit counter when using INT0
EXPORT INT0_BYTECOUNT
0003 INT0_BYTECOUNT: BLK 1 ;Receive byte counter when using INT0
EXPORT INT0_DATA
0004 INT0_DATA: BLK 1 ;Receive byte counter when using INT0
EXPORT INT0_BYTE0
0005 INT0_BYTE0: BLK 1 ;Receive data0 when using INT0
EXPORT INT0_BYTE1
0006 INT0_BYTE1: BLK 1 ;Receive data1 when using INT0
EXPORT INT0_BYTE2
0007 INT0_BYTE2: BLK 1 ;Receive data2 when using INT0
EXPORT INT0_BYTE3
0008 INT0_BYTE3: BLK 1 ;Receive data3 when using INT0
EXPORT INT0_BYTE4
0009 INT0_BYTE4: BLK 1 ;Receive data4 counter when using INT0
EXPORT INT0_BYTE5
000A INT0_BYTE5: BLK 1 ;Receive data5 counter when using INT0
EXPORT INT0_BYTE6
000B INT0_BYTE6: BLK 1 ;Receive data6 counter when using INT0
EXPORT INT0_BYTE7
000C INT0_BYTE7: BLK 1 ;Receive data7 counter when using INT0
000D
000D ;------------------------
000D ; Includes
000D ;------------------------
000D
000D
000D ;------------------------
000D ; Constant Definitions
000D ;------------------------
000D
000D
000D ;------------------------
000D ; Variable Allocation
000D ;------------------------
000D
000D
000D ;---------------------------------------------------
000D ; Insert your custom declarations above this banner
000D ;---------------------------------------------------
000D ;@PSoC_UserCode_END@ (Do not change this line.)
000D
000D
AREA text (ROM, REL)
;-----------------------------------------------------------------------------
; FUNCTION NAME: _INT0_KB
;
; DESCRIPTION: Unless modified, this implements only a null handler stub.
;
;-----------------------------------------------------------------------------
0000 _INT0_KB:
0000
0000 ;@PSoC_UserCode_RX@ (Do not change this line.)
0000 ;---------------------------------------------------
0000 ; Insert your custom code below this banner
0000 ;---------------------------------------------------
0000 ; NOTE: interrupt service routines must preserve
0000 ; the values of the A and X CPU registers.
0000 70FE and F, ~FLAG_GLOBAL_IE
0002 7602 INC [INT0_BITCOUNT]
0004 7600 INC [INT0_NEW]
0006 5D00 MOV A, REG[P0DATA] ; got the data
0008 5301 MOV [INT0_TEMP],A
000A 260101 AND [INT0_TEMP],01h ; only the P0.0 is reserved
000D
000D 3C0202 CMP [INT0_BITCOUNT],02h
0010 A02B JZ RC_KB_BIT0
0012 3C0203 CMP [INT0_BITCOUNT],03h
0015 A02C JZ RC_KB_BIT1
0017 3C0204 CMP [INT0_BITCOUNT],04h
001A A02E JZ RC_KB_BIT2
001C 3C0205 CMP [INT0_BITCOUNT],05h
001F A031 JZ RC_KB_BIT3
0021 3C0206 CMP [INT0_BITCOUNT],06h
0024 A035 JZ RC_KB_BIT4
0026 3C0207 CMP [INT0_BITCOUNT],07h
0029 A03A JZ RC_KB_BIT5
002B 3C0208 CMP [INT0_BITCOUNT],08h
002E A040 JZ RC_KB_BIT6
0030 3C0209 CMP [INT0_BITCOUNT],09h
0033 A047 JZ RC_KB_BIT7
0035 3C020B CMP [INT0_BITCOUNT],0Bh
0038 A04F JZ RC_KB_BYTE
003A 80A7 JMP END_RECEIVE
003C
003C RC_KB_BIT0:
003C 5101 MOV A,[INT0_TEMP]
003E 2C04 OR [INT0_DATA],A
0040 80A1 JMP END_RECEIVE
0042 RC_KB_BIT1:
0042 5101 MOV A,[INT0_TEMP]
0044 64 ASL A
0045 2C04 OR [INT0_DATA],A
0047 809A JMP END_RECEIVE
0049 RC_KB_BIT2:
0049 5101 MOV A,[INT0_TEMP]
004B 64 ASL A
004C 64 ASL A
004D 2C04 OR [INT0_DATA],A
004F 8092 JMP END_RECEIVE
0051 RC_KB_BIT3:
0051 5101 MOV A,[INT0_TEMP]
0053 64 ASL A
0054 64 ASL A
0055 64 ASL A
0056 2C04 OR [INT0_DATA],A
0058 8089 JMP END_RECEIVE
005A RC_KB_BIT4:
005A 5101 MOV A,[INT0_TEMP]
005C 64 ASL A
005D 64 ASL A
005E 64 ASL A
005F 64 ASL A
0060 2C04 OR [INT0_DATA],A
0062 807F JMP END_RECEIVE
0064 RC_KB_BIT5:
0064 5101 MOV A,[INT0_TEMP]
0066 64 ASL A
0067 64 ASL A
0068 64 ASL A
0069 64 ASL A
006A 64 ASL A
006B 2C04 OR [INT0_DATA],A
006D 8074 JMP END_RECEIVE
006F RC_KB_BIT6:
006F 5101 MOV A,[INT0_TEMP]
0071 64 ASL A
0072 64 ASL A
0073 64 ASL A
0074 64 ASL A
0075 64 ASL A
0076 64 ASL A
0077 2C04 OR [INT0_DATA],A
0079 8068 JMP END_RECEIVE
007B RC_KB_BIT7:
007B 5101 MOV A,[INT0_TEMP]
007D 64 ASL A
007E 64 ASL A
007F 64 ASL A
0080 64 ASL A
0081 64 ASL A
0082 64 ASL A
0083 64 ASL A
0084 2C04 OR [INT0_DATA],A
0086 805B JMP END_RECEIVE
0088 RC_KB_BYTE:
0088 7603 INC [INT0_BYTECOUNT]
008A 550200 MOV [INT0_BITCOUNT],00h
008D 3C0301 CMP [INT0_BYTECOUNT],01h
0090 A026 JZ RC_KB_BYTE0
0092 3C0302 CMP [INT0_BYTECOUNT],02h
0095 A026 JZ RC_KB_BYTE1
0097 3C0303 CMP [INT0_BYTECOUNT],03h
009A A026 JZ RC_KB_BYTE2
009C 3C0304 CMP [INT0_BYTECOUNT],04h
009F A026 JZ RC_KB_BYTE3
00A1 3C0305 CMP [INT0_BYTECOUNT],05h
00A4 A026 JZ RC_KB_BYTE4
00A6 3C0306 CMP [INT0_BYTECOUNT],06h
00A9 A026 JZ RC_KB_BYTE5
00AB 3C0307 CMP [INT0_BYTECOUNT],07h
00AE A026 JZ RC_KB_BYTE6
00B0 3C0308 CMP [INT0_BYTECOUNT],08h
00B3 A026 JZ RC_KB_BYTE7
00B5 802C JMP END_RECEIVE
00B7 RC_KB_BYTE0:
00B7 5F0504 MOV [INT0_BYTE0],[INT0_DATA]
00BA 8027 JMP END_RECEIVE
00BC RC_KB_BYTE1:
00BC 5F0604 MOV [INT0_BYTE1],[INT0_DATA]
00BF 8022 JMP END_RECEIVE
00C1 RC_KB_BYTE2:
00C1 5F0704 MOV [INT0_BYTE2],[INT0_DATA]
00C4 801D JMP END_RECEIVE
00C6 RC_KB_BYTE3:
00C6 5F0804 MOV [INT0_BYTE3],[INT0_DATA]
00C9 8018 JMP END_RECEIVE
00CB RC_KB_BYTE4:
00CB 5F0904 MOV [INT0_BYTE4],[INT0_DATA]
00CE 8013 JMP END_RECEIVE
00D0 RC_KB_BYTE5:
00D0 5F0A04 MOV [INT0_BYTE5],[INT0_DATA]
00D3 800E JMP END_RECEIVE
00D5 RC_KB_BYTE6:
00D5 5F0B04 MOV [INT0_BYTE6],[INT0_DATA]
00D8 8009 JMP END_RECEIVE
00DA RC_KB_BYTE7:
00DA 5F0C04 MOV [INT0_BYTE7],[INT0_DATA]
00DD 550300 MOV [INT0_BYTECOUNT],00h
00E0 8001 JMP END_RECEIVE
00E2
00E2 END_RECEIVE:
00E2 7101 or F, FLAG_GLOBAL_IE
00E4 7E reti
00E5 ;---------------------------------------------------
00E5 ; Insert your custom code above this banner
00E5 ;---------------------------------------------------
00E5 ;@PSoC_UserCode_END@ (Do not change this line.)
00E5
00E5 ; end of file INT0.asm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -