📄 m34559n.asm
字号:
TMA 0
RT
KEY_SLEEP20:
.CLB SLEEPF
RT
;-----------------------------------------------------
;
; key_clock
; the time flag used in this subroutine:
;
; 2. T10SF_SETTIME
;----------------------------------------------------
KEY_CLOCK: ; set real time key
.SZXYB KEYLOCKF
RT ;20060419
.SZXYB TIMERONF ;when set power on/off time ,it is forbidden to set real time
RT
.SZXYB TIMEROFF
RT ;0419
.SZXYB KEYF
RT
.SEB KEYF
.SZXYB TIMEF ; check real time set flag,=1:can set,=0:back up real time
A 0
BL KEY_CLOCK10 ;TIMEF = 0
KEY_CLOCK05: ;the second time to press clock key,then make sure the set -situation
.CLB TIMEF
LXY T_HH
TAM 0
LXY BT_HH
TMA 0
LXY T_HL
TAM 0
LXY BT_HL
TMA 0
LXY T_MH
TAM 0
LXY BT_MH
TMA 0
LXY T_ML
TAM 0
LXY BT_ML
TMA 0
LA 0
LXY T1MH
TMA 0
LXY T1ML
TMA 0
RT
KEY_CLOCK10: ;TIMEF = 0 ,THEN CLEAR THE 5S FLAG
.SEB TIMEF
.CLB TIMERF
.CLB TIMERONF
.CLB TIMEROFF
.CLB T10SF_SETTIME ; begin 10 s count
LA 0
LXY T10SL_SETTIME
TMA 0
LXY T10SH_SETTIME
TMA 0
RT
;-----------------------------------------------------
;
; key_tup
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
; 6. T05SF_DELAY
; 8. T1SF_TUPDOWN
; 9. T4SF_TUPDOWN
;----------------------------------------------------
KEY_TUP:
.SZXYB KEYLOCKF
RT ;20060419
KEY_TUP20:
.SZXYB TIMEF
BL KEY_TUP25 ; set real time
.SZXYB TIMERF
BL KEY_TUP50 ; set power on/off time
RT
KEY_TUP25: ; set real time
.CLB T10SF_SETTIME ; RESET 10S COUNTING
LA 0
LXY T10SL_SETTIME
TMA 0
LXY T10SH_SETTIME
TMA 0
.CLB T250MSF ;20060425
.CLB T05SF_DELAY
LA 0
LXY T05S_DELAY
TMA 0
.SZXYB FIRSTF1
BL KEY_TUP30
.SEB FIRSTF1
.SEB ADJUSTF
.CLB T1SF_TUPDOWN
.CLB T4SF_TUPDOWN
LA 0
LXY T4SH_TUPDOWN
TMA 0
LXY T4SL_TUPDOWN
TMA 0
KEY_TUP30:
.SZXYB T4SF_TUPDOWN ;Is 9s arriving ?
BL KEY_TUP40 ;9s not arriving,go to 4s check
LXY T_ML ;9s arriving, add 1 to Min
TAM 0
SEA 9
BL KEY_TUP32
LXY T_ML
LA 0
TMA 0
LXY T_MH
TAM 0
SEA 5
BL KEY_TUP34
LXY T_MH
LA 0
TMA 0
RC
LXY T_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP36
LA 0
LXY T_HH
TMA 0
LXY T_HL
TMA 0
LXY T_MH
TMA 0
LXY T_ML
TMA 0
BL KEYCON
KEY_TUP32:
RC
LXY T_ML
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP34:
RC
LXY T_MH
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP36:
RC
LXY T_HL
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
BL KEYCON
KEY_TUP40:
LXY T_MH
TAM 0
SEA 5
BL KEY_TUP34
LXY T_MH
LA 0
TMA 0
RC
LXY T_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP36
LA 0
LXY T_HH
TMA 0
LXY T_HL
TMA 0
LXY T_MH
TMA 0
BL KEYCON
KEY_TUP50: ; set power on/off time
.CLB T10SF_SETTIME
LA 0
LXY T10SL_SETTIME
TMA 0
LXY T10SH_SETTIME
TMA 0
.CLB T250MSF ;20060425
.CLB T05SF_DELAY
LA 0
LXY T05S_DELAY
TMA 0
.SZXYB FIRSTF1
BL KEY_TUP60
.SEB FIRSTF1
.CLB T1SF_TUPDOWN
.CLB T4SF_TUPDOWN
LA 0
LXY T4SH_TUPDOWN
TMA 0
LXY T4SL_TUPDOWN
TMA 0
KEY_TUP60:
.SZXYB TIMERONF ;
BL KEY_TUP80 ; set power on time
.SZXYB T4SF_TUPDOWN ;20060424
BL KEY_TUP70 ;20060424
LXY TOFF_ML ; set power off time
TAM 0
SEA 9
BL KEY_TUP64
LXY TOFF_ML
LA 0
TMA 0
LXY TOFF_MH
TAM 0
SEA 5
BL KEY_TUP66
LXY TOFF_MH
LA 0
TMA 0
RC
LXY TOFF_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP68
LA 0
LXY TOFF_HH
TMA 0
LXY TOFF_HL
TMA 0
LXY TOFF_MH
TMA 0
LXY TOFF_ML
TMA 0
BL KEYCON
KEY_TUP64:
RC
LXY TOFF_ML
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP66:
RC
LXY TOFF_MH
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP68:
RC
LXY TOFF_HL
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
BL KEYCON
KEY_TUP70:
LXY TOFF_MH
TAM 0
SEA 5
BL KEY_TUP66
LXY TOFF_MH
LA 0
TMA 0
RC
LXY TOFF_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP68
LA 0
LXY TOFF_HH
TMA 0
LXY TOFF_HL
TMA 0
LXY TOFF_MH
TMA 0
BL KEYCON
KEY_TUP80: ;set power on time
.SZXYB T4SF_TUPDOWN ;20060424
BL KEY_TUP90 ;20060424
LXY TON_ML
TAM 0
SEA 9
BL KEY_TUP84
LXY TON_ML
LA 0
TMA 0
LXY TON_MH
TAM 0
SEA 5
BL KEY_TUP86
LXY TON_MH
LA 0
TMA 0
RC
LXY TON_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP88
LA 0
LXY TON_HH
TMA 0
LXY TON_HL
TMA 0
LXY TON_MH
TMA 0
LXY TON_ML
TMA 0
BL KEYCON
KEY_TUP84: ; low bit of min
RC
LXY TON_ML
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP86: ; high bit of min
RC
LXY TON_MH
LA 1
AMC
TMA 0
BL KEYCON
KEY_TUP88: ; hour
RC
LXY TON_HL
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
BL KEYCON
KEY_TUP90:
LXY TON_MH
TAM 0
SEA 5
BL KEY_TUP86
LXY TON_MH
LA 0
TMA 0
RC
LXY TON_HL
LA 9 ;20060509
AMC
INY
LA 14
AMC
SZC
A 0
BL KEY_TUP88
LA 0
LXY TON_HH
TMA 0
LXY TON_HL
TMA 0
LXY TON_MH
TMA 0
KEYCON:
.CLB T1SF_ADJUST ; 1S COUNT FLAG ARRIV
LA 0
LXY T1S_ADJUST
TMA 0
BML TIMECON
NOP
BML DISPLAY
NOP
BML GET_KEY
A 0
BL KEYCON20 ;if no key, then return
.SZXYB T4SF_TUPDOWN ;20060424
BL KEYCON10 ;20060424
.SZXYB T1SF_TUPDOWN
A 0
BL KEYCON
KEYCON10:
.SZXYB T250MSF ;20060425
A 0
BL KEYCON
BL KEY_DECODE ;20060425
KEYCON20:
.CLB FIRSTF1
RT
;-----------------------------------------------------
;
; key_timer
;
; the time flag used in this subroutine:
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
;----------------------------------------------------
KEY_TIMER:
.SZXYB KEYLOCKF
RT ;20060419
.SZXYB KEYF
RT
.SEB KEYF
.SZXYB TIMEF ;When set real time, return
RT
.SZXYB TIMERONF
BL KEY_TIMER50 ;set power on time
.SZXYB TIMEROFF
BL KEY_TIMER30 ;set power off time
BL KEY_TIMER15
KEY_TIMER15: ;first press TIMER KEY,set the timer-set mode
.CLB T10SF_SETTIME ;start 10s counting
LA 0
LXY T10SH_SETTIME
TMA 0
LXY T10SL_SETTIME
TMA 0
.SZXYB POWERF ;check power status
BL KEY_TIMER20 ;power on ,(POWERF = 1)
.SEB TIMERONF ;power off status,set TIMERONF
.CLB TIMEROFF ;Clear timeroff
.SEB TIMERF ;set timerf(set to power on/off status)
RT
KEY_TIMER20: ; when power on
.CLB TIMERONF
.SEB TIMEROFF
.SEB TIMERF
RT
KEY_TIMER30: ; the second time or third time press TIMER KEY
.SZXYB TIMERF
BL KEY_TIMER40 ;timerf = 1, can set power-on/off time
.SEB TRANSF ;transf
.CLB TIMERONF
.CLB TIMEROFF
.CLB TIMERF
RT
KEY_TIMER40: ;make sure the set power off time
LXY T_ML
TAM 0
LXY TOFF_ML
SEAM
BL KEY_TIMER45
LXY T_MH
TAM 0
LXY TOFF_MH
SEAM
BL KEY_TIMER45
LXY T_HL
TAM 0
LXY TOFF_HL
SEAM
BL KEY_TIMER45
LXY T_HH
TAM 0
LXY TOFF_HH
SEAM
BL KEY_TIMER45
RT ;check if it is equal to real time,if yes ,return ,if no ,make sure it
KEY_TIMER45:
.SEB TRANSF
.CLB TIMERONF
.CLB TIMERF
LXY TOFF_HH
TAM 0
LXY BTOFF_HH
TMA 0
LXY TOFF_HL
TAM 0
LXY BTOFF_HL
TMA 0
LXY TOFF_MH
TAM 0
LXY BTOFF_MH
TMA 0
LXY TOFF_ML
TAM 0
LXY BTOFF_ML
TMA 0
RT
KEY_TIMER50: ;set power on time
.SZXYB TIMERF
BL KEY_TIMER60
.CLB TIMERONF
.CLB TIMEROFF
.CLB TIMERF
.CLB POWERF1
.SEB TRANSF
RT
KEY_TIMER60: ; the second time to press key-timer key,make sure the set value and
LXY T_ML ; set some status of timer ,timeronf,timeroff
TAM 0
LXY TON_ML
SEAM
BL KEY_TIMER65
LXY T_MH
TAM 0
LXY TON_MH
SEAM
BL KEY_TIMER65
LXY T_HL
TAM 0
LXY TON_HL
SEAM
BL KEY_TIMER65
LXY T_HH
TAM 0
LXY TON_HH
SEAM
BL KEY_TIMER65
RT ;check if it is equal to real time,if yes ,return ,if no ,make sure it
KEY_TIMER65:
.SEB TRANSF
.SEB POWERF1
.CLB TIMEROFF
.CLB TIMERF
LXY TON_HH
TAM 0
LXY BTON_HH
TMA 0
LXY TON_HL
TAM 0
LXY BTON_HL
TMA 0
LXY TON_MH
TAM 0
LXY BTON_MH
TMA 0
LXY TON_ML
TAM 0
LXY BTON_ML
TMA 0
RT
;-----------------------------------------------------
;
; key_tdown
;
; the time flag used in this subroutine:
; 2. T250MSF
; 3. T05SF_DELAY
; 5. T10SF_SETTIME
; 6. T05SF_DELAY
; 8. T1SF_TUPDOWN
; 9. T4SF_TUPDOWN
;----------------------------------------------------
KEY_TDOWN:
.SZXYB KEYLOCKF
RT ;20060419
KEY_TDOWN10:
.SZXYB TIMEF
BL KEY_TDOWN15 ; set real time mode
.SZXYB TIMERF
BL KEY_TDOWN35 ; set power on/off time mode
RT
KEY_TDOWN15: ; set real time mode
.CLB T10SF_SETTIME ; once the down key pressed ,10s start to count
LA 0
LXY T10SL_SETTIME
TMA 0
LXY T10SH_SETTIME
TMA 0
.CLB T250MSF ;20060425
.CLB T05SF_DELAY
LA 0
LXY T05S_DELAY
TMA 0
.SZXYB FIRSTF1 ;check if it is pressed the first time ,0 = first
BL KEY_TDOWN20
.SEB FIRSTF1
.SEB ADJUSTF
.CLB T1SF_TUPDOWN
.CLB T4SF_TUPDOWN
LA 0
LXY T4SH_TUPDOWN
TMA 0
LXY T4SL_TUPDOWN
TMA 0
KEY_TDOWN20:
.SZXYB T4SF_TUPDOWN ;20060425
BL KEY_TDOWN30
LXY T_ML
TAM 0
SEA 0
BL KEY_TDOWN22
LXY T_ML
LA 9
TMA 0
LXY T_MH
TAM 0
SEA 0
BL KEY_TDOWN24
LXY T_MH
LA 5
TMA 0
LXY T_HL
TAM 0
SEA 0
BL KEY_TDOWN26
LXY T_HL
LA 0fH
TMA 0
LXY T_HH
TAM 0
SEA 0
BL KEY_TDOWN28
LXY T_HH
LA 1
TMA 0
LXY T_HL
LA 7 ;20060509
TMA 0
LXY T_MH
LA 5
TMA 0
LXY T_ML
LA 9
TMA 0
BL KEYCON
KEY_TDOWN22:
LXY T_ML
TAM 0
TYA
DEY
NOP
TAY
LXY T_ML
TMA 0
BL KEYCON
KEY_TDOWN24:
LXY T_MH
TAM 0
TYA
DEY
NOP
TAY
LXY T_MH
TMA 0
BL KEYCON
KEY_TDOWN26:
LXY T_HL
TAM 0
TYA
DEY
NOP
TAY
LXY T_HL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -