📄 a_08_07.dt
字号:
;*************************************************************
/*备注:1,MODE1,MODE2,MODE3 改变,与2462功能中的相应MODE一致
; 2, 1.5S 关机 原来是0.9S 关机
; 3, MODE5功能与客户样机不一致,原因0.1MS软件定时不准(偏慢),修改相应参数校准
; 4,UP、DOWN 键功能相反,4脚(P63)为UP,7脚(P60)为DOWN
; 5, 以上功能修改日期 2008年9月26日
6,0E54
;P61 pull low in mode0 and pull high in other mode
;jason huang
;AUG 05,08
*/
;*************************************************************
IAR == 0x00
TCC == 0x01
PC == 0x02
CONT == 0X03
STATUS == 0x03
Z == 0x02
C == 0x00
RSR == 0x04
PORT5 == 0x05
PORT6 == 0x06
ISR == 0x0F
TCIF == 0
P5CR == 0x05 ;
P6CR == 0x06 ;
PCR == 0x0B ;
ODCR == 0x0C
PHCR == 0x0D ;
IOCE == 0x0E
IMR == 0x0F
;**************************************************************
TEMP == 0x10
ACC_BUF == 0x11
R3_BUF == 0x12
R4_BUF == 0x13
SLEEPTIME == 0x14
POWERDOWN1 == 0X15
POWERDOWN2 == 0x16
TEMP1 == 0x17
TEMP2 == 0x18
TEMP3 == 0x19
TEMP4 == 0x1A
DELAYON == 0x1B
DELAYOFF == 0x1C
DELAYTIME == 0x1D
MODE == 0x1E
MODE_BUF == 0x1F
;
FLAG01 == 0x20
cnt1 == 0x21
cnt2 == 0x22
; MODE == 0x23
TIMEON == 0x24
KEY_TIME == 0x25
KEY_FLAG == 0X26
UP_FLAG == 0
DOWN_FLAG == 1
KEY_STATE == 0X27
UP_STATE == 0
DOWN_STATE == 1
; FLAG_200US == 0x26
; TEMP1 == 0x27
; TEMP2 == 0x28
;DELAYTIME == 0x29
; TEMP3 == 0x2A
;TEMP4 == 0x2B
;DELAYON == 0x2C
; DELAYOFF == 0x2D
; R2E == 0x2E
; R2F == 0x2F
;********************************************
;PORT6
UP_KEY == 3
DOWN_KEY == 0
DRIVERED == 2
GREEN == 4
RED == 5
;******************************************
;FLAG01
;UP_FLAG == 1
;UP_STATE == 2
;DOWN_FLAG == 3
;DOWN_STATE == 4
;*****************************************
ORG 0000H
NOP
NOP
NOP
NOP
nop
nop
nop
JMP POWERON
ORG 0008H
JMP INT_IN
;********************************************************************
;-------------------DELAY 0.1MS-------------------
DELAY:
MOV A,DELAYTIME
MOV TEMP1,A
MOV A,@0X2F
MOV TEMP2,A
DELAY2:
WDTC
DJZ TEMP2
JMP DELAY2
MOV A,@0X2F
MOV TEMP2,A
DJZ TEMP1
JMP DELAY2
RET
;-------------------DELAY 0.1MS---------------------------------
DELAY1MS:
MOV A,DELAYTIME
MOV TEMP1,A
DELAY1MS2:
WDTC
MOV A,@0X0A
MOV TEMP4,A
MOV A,@0X3D
MOV TEMP2,A
DELAY100US:
DJZ TEMP2
JMP DELAY100US
MOV A,@0X3D
MOV TEMP2,A
DJZ TEMP4
JMP DELAY100US
DJZ TEMP1
JMP DELAY1MS2
RET
;********************************************************************
INT_IN:
MOV ACC_BUF,A
SWAP ACC_BUF
SWAPA STATUS
MOV R3_BUF,A
MOV A,RSR
MOV R4_BUF,A
MOV MODE,MODE
JBC STATUS,Z
DEC SLEEPTIME
JBS ISR,TCIF
JMP INT_EXIT
KEY_SCAN:
JBS PORT6,0
JMP DOWN_ON
DOWN_OFF:
JBS KEY_FLAG,DOWN_FLAG
JMP DOWN_OFF1
BC KEY_FLAG,DOWN_FLAG
JMP UP_TEST
DOWN_OFF1:
JBS KEY_STATE,DOWN_STATE
JMP UP_TEST
BC KEY_STATE,DOWN_STATE
JMP UP_TEST
DOWN_ON:
JBC KEY_FLAG,DOWN_FLAG
JMP DOWN_ON1
BS KEY_FLAG,DOWN_FLAG
JMP INT_EXIT
DOWN_ON1:
JBC KEY_STATE,DOWN_STATE
JMP DOWN_KEY_LONG
BS KEY_STATE,DOWN_STATE
DOWN_DO:
MOV A,@0X5A
MOV KEY_TIME,A
DEC MODE ;7 mode
JBS MODE,7 ;0 change to 0ff
JMP INT_EXIT
MOV A,@0X06
MOV MODE,A
JMP INT_EXIT
DOWN_KEY_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBS STATUS,Z
JMP INT_EXIT
CLR MODE
JMP INT_EXIT
UP_TEST:
JBS PORT6,3
JMP UP_ON
UP_OFF:
JBS KEY_FLAG,UP_FLAG
JMP UP_OFF1
BC KEY_FLAG,UP_FLAG
JMP INT_EXIT
UP_OFF1:
JBS KEY_STATE,UP_STATE
JMP INT_EXIT
BC KEY_STATE,UP_STATE
JMP INT_EXIT
UP_ON:
JBC KEY_FLAG,UP_FLAG
JMP UP_ON1
BS KEY_FLAG,UP_FLAG
JMP INT_EXIT
UP_ON1:
JBC KEY_STATE,UP_STATE
JMP UP_KEY_LONG
BS KEY_STATE,UP_STATE
UP_DO:
MOV A,@0X5A
MOV KEY_TIME,A
INC MODE
MOV A,@0X07
SUB A,MODE
JBS STATUS,C
JMP INT_EXIT
CLR MODE
JMP INT_EXIT
UP_KEY_LONG:
DEC KEY_TIME
MOV KEY_TIME,KEY_TIME
JBS STATUS,Z
JMP INT_EXIT
CLR MODE
JMP INT_EXIT
/*
JBS PORT6,0
JMP DOWN_ON
DOWN_OFF:
JBS FLAG01,DOWN_FLAG
JMP DOWN_OFF1
BC FLAG01,DOWN_FLAG
JMP EXIT_INT
DOWN_OFF1:
JBS FLAG01,DOWN_STATE
JMP EXIT_INT
BC FLAG01,DOWN_STATE
JMP EXIT_INT
DOWN_ON:
JBC FLAG01,DOWN_FLAG
JMP DOWN_ON1
BS FLAG01,DOWN_FLAG
JMP EXIT_INT
DOWN_ON1:
JBC FLAG01,DOWN_STATE
JMP LONGPRESS
BS FLAG01,DOWN_STATE
JBS PORT6,DOWN_KEY ;DOWN LOOP
JMP $+7
DEC MODE
JBS MODE,7
JMP EXIT_INT
MOV A,@0X06
MOV MODE,A
JMP EXIT_INT
INC MODE ;UP LOOP
MOV A,@0X07
SUB A,MODE
JBC STATUS,C
CLR MODE
JMP EXIT_INT
LONGPRESS:
INC TIMEON
MOV A,@0X80
SUB A,TIMEON
JBS STATUS,Z
JMP EXIT_INT
CLR TIMEON
CLR MODE
*/
;*************************************************************************************
INT_EXIT:
MOV A,@0X00
MOV 0X0F,A
CLR 0X0F
; BC ISR,TCIF
;BC ISR,1
MOV A,R4_BUF
MOV RSR,A
SWAPA R3_BUF
MOV STATUS,A
SWAPA ACC_BUF
RETI
;*************************************************************************************
POWERON:
DISI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -