📄 m34559n.asm
字号:
TMA 0
BL KEYCON
KEY_TDOWN28:
LXY T_HH
TAM 0
TYA
DEY
NOP
TAY
LXY T_HH
TMA 0
BL KEYCON
KEY_TDOWN30:
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
BL KEYCON
KEY_TDOWN35: ; set power on/off time mode
.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_TDOWN40
.SEB FIRSTF1
.CLB T1SF_TUPDOWN
.CLB T4SF_TUPDOWN
LA 0
LXY T4SH_TUPDOWN
TMA 0
LXY T4SL_TUPDOWN
TMA 0
KEY_TDOWN40:
.SZXYB TIMERONF
BL KEY_TDOWN60 ;set power on time mode
.SZXYB T4SF_TUPDOWN
BL KEY_TDOWN50 ;set power off time mode
LXY TOFF_ML
TAM 0
SEA 0
BL KEY_TDOWN42
LXY TOFF_ML
LA 9
TMA 0
LXY TOFF_MH
TAM 0
SEA 0
BL KEY_TDOWN44
LXY TOFF_MH
LA 5
TMA 0
LXY TOFF_HL
TAM 0
SEA 0
BL KEY_TDOWN46
LXY TOFF_HL
LA 0fH
TMA 0
LXY TOFF_HH
TAM 0
SEA 0
BL KEY_TDOWN48
LXY TOFF_HH
LA 1
TMA 0
LXY TOFF_HL
LA 7 ;2006509
TMA 0
LXY TOFF_MH
LA 5
TMA 0
LXY TOFF_ML
LA 9
TMA 0
BL KEYCON
KEY_TDOWN42:
LXY TOFF_ML
TAM 0
TYA
DEY
NOP
TAY
LXY TOFF_ML
TMA 0
BL KEYCON
KEY_TDOWN44:
LXY TOFF_MH
TAM 0
TYA
DEY
NOP
TAY
LXY TOFF_MH
TMA 0
BL KEYCON
KEY_TDOWN46:
LXY TOFF_HL
TAM 0
TYA
DEY
NOP
TAY
LXY TOFF_HL
TMA 0
BL KEYCON
KEY_TDOWN48:
LXY TOFF_HH
TAM 0
TYA
DEY
NOP
TAY
LXY TOFF_HH
TMA 0
BL KEYCON
KEY_TDOWN50:
LXY TOFF_MH
TAM 0
SEA 0
BL KEY_TDOWN44
LXY TOFF_MH
LA 5
TMA 0
LXY TOFF_HL
TAM 0
SEA 0
BL KEY_TDOWN46
LXY TOFF_HL
LA 0fH
TMA 0
LXY TOFF_HH
TAM 0
SEA 0
BL KEY_TDOWN48
LXY TOFF_HH
LA 1
TMA 0
LXY TOFF_HL
LA 7 ;20060509
TMA 0
LXY TOFF_MH
LA 5
TMA 0
BL KEYCON
KEY_TDOWN60: ;set power on time mode
.SZXYB T4SF_TUPDOWN
BL KEY_TDOWN70
LXY TON_ML
TAM 0
SEA 0
BL KEY_TDOWN62
LXY TON_ML
LA 9
TMA 0
LXY TON_MH
TAM 0
SEA 0
BL KEY_TDOWN64
LXY TON_MH
LA 5
TMA 0
LXY TON_HL
TAM 0
SEA 0
BL KEY_TDOWN66
LXY TON_HL
LA 0fH
TMA 0
LXY TON_HH
TAM 0
SEA 0
BL KEY_TDOWN68
LXY TON_HH
LA 1
TMA 0
LXY TON_HL
LA 7 ;20060509
TMA 0
LXY TON_MH
LA 5
TMA 0
LXY TON_ML
LA 9
TMA 0
BL KEYCON
KEY_TDOWN62:
LXY TON_ML
TAM 0
TYA
DEY
NOP
TAY
LXY TON_ML
TMA 0
BL KEYCON
KEY_TDOWN64:
LXY TON_MH
TAM 0
TYA
DEY
NOP
TAY
LXY TON_MH
TMA 0
BL KEYCON
KEY_TDOWN66:
LXY TON_HL
TAM 0
TYA
DEY
NOP
TAY
LXY TON_HL
TMA 0
BL KEYCON
KEY_TDOWN68:
LXY TON_HH
TAM 0
TYA
DEY
NOP
TAY
LXY TON_HH
TMA 0
BL KEYCON
KEY_TDOWN70:
LXY TON_MH
TAM 0
SEA 0
BL KEY_TDOWN64
LXY TON_MH
LA 5
TMA 0
LXY TON_HL
TAM 0
SEA 0
BL KEY_TDOWN66
LXY TON_HL
LA 0fH
TMA 0
LXY TON_HH
TAM 0
SEA 0
BL KEY_TDOWN68
LXY TON_HH
LA 1
TMA 0
LXY TON_HL
LA 7 ;20060509
TMA 0
LXY TON_MH
LA 5
TMA 0
BL KEYCON
;-----------------------------------------------------
;
; key_power
; the time flag used in this subroutine:
; 1. T1SF_SWING
; 2. T2SF_SWING
; 3. T3SF_SWING
; 4. T05SF_DELAY
;----------------------------------------------------
KEY_POWER:
.SZXYB KEYLOCKF
RT
.SZXYB KEYF
RT
.SEB KEYF
.SEB T05SF_DELAY
.CLB TIMERF
.CLB TIMERONF
.CLB TIMEROFF
.SEB TRANSF
.SZXYB POWERF
BL KEY_POWER10
.SEB POWERF
.SEB T1SF_SWING
.SEB T2SF_SWING
.SEB T3SF_SWING
RT
KEY_POWER10:
.CLB POWERF
.CLB POWERF1
.CLB SLEEPF
.CLB SWINGF
RT
;20060419
;-----------------------------------------------------
;
; key_lock
;
;----------------------------------------------------
KEY_LOCK:
.SZXYB KEYF
RT
.SEB KEYF
.SZXYB KEYLOCKF
BL KEY_LOCK10
.SEB KEYLOCKF
RT
KEY_LOCK10:
.CLB KEYLOCKF
RT
;=====================================================
;
; Time control
;
;1. time cycle is 0.25s
;2. update the time flags
;3. send IR signal (if transferf = 1)
;4. real time update
;5.
;======================================================
TIMECON:
SNZT3 ;T3 overflow = 0.25s arriving,
RT ;if is not arriving, return
TIMECON05:
BML TRANS_ST
LZ 0
.SEB T250MSF ;every 0.25s excute this function
TIMECON08:
LXY T05S_DELAY
LA 1
AM
TMA 0
SEA 2
BL TIMECON10
.SEB T05SF_DELAY ; 2*0.25s = 0.5s
LXY T05S_DELAY ; count 0.25s arrive times
LA 0
TMA 0 ; 0.5s arrive ,set counter to 0
TIMECON10:
LXY T1S_ADJUST
LA 1
AM
TMA 0
SEA 4
BL TIMECON14
.SEB T1SF_ADJUST ; 1s arrive
LXY T1S_ADJUST
LA 0
TMA 0
TIMECON14:
LXY T1S_TIME_DISP
LA 1
AM
TMA 0
SEA 2
BL TIMECON16
.SEB T05SF_TIME_DISP ;0.5s arrive
TIMECON16:
SEA 4
BL TIMECON32
.SEB T1SF_TIME_DISP ; 1s arrive
LXY T1S_TIME_DISP
LA 0
TMA 0
TIMECON32:
RC
LXY T10SL_SETTIME
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
RC
LXY T10SL_SETTIME
LA 8
AMC
INY
LA 13 ;28H = 40 ,40*0.25S = 10S
AMC
SZC
A 0
BL TIMECON36
.SEB T10SF_SETTIME
LA 0
LXY T10SL_SETTIME
XAMI 0
LA 0
XAM 0
;----------------------------------------------------
;----------------------------------------------------
TIMECON36:
RC
LXY T4SL_TUPDOWN
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
RC
LXY T4SL_TUPDOWN
LA 13
AMC
INY
LA 15
AMC
SZC
A 0
BL TIMECON38
.SEB T1SF_TUPDOWN
TIMECON38:
RC
LXY T4SL_TUPDOWN
LA 2
AMC
INY
LA 15
AMC
SZC
A 0
BL TIMECON_SWING
.SEB T4SF_TUPDOWN
LA 0
LXY T4SL_TUPDOWN
XAMI 0
LA 0
XAM 0
;--------------------------------------------------
; 0.25s once a time
;--------------------------------------------------
TIMECON_SWING:
RC
LXY T3SL_SWING
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
RC
LXY T3SL_SWING
LA 12
AMC
INY
LA 15
AMC
SZC
A 0
BL TIMECON_SWING2S
.SEB T1SF_SWING
TIMECON_SWING2S:
RC
LXY T3SL_SWING
LA 8
AMC
INY
LA 15
AMC
SZC
A 0
BL TIMECON_SWING3S
.SEB T2SF_SWING
TIMECON_SWING3S:
RC
LXY T3SL_SWING
LA 4
AMC
INY
LA 15
AMC
SZC
A 0
BL TIMECON_1MIN
.SEB T3SF_SWING
LA 0
LXY T3SL_SWING
XAMI 0
LA 0
XAM 0
;-------------------------------------------------
; 0.25S once a time
;-------------------------------------------------
TIMECON_1MIN: ; 1 min
RC
LXY T1ML
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
RC
LXY T1ML
LA 0 ; 0 (16-0 = 16) is low bit
AMC
INY
LA 1 ; 1 (15-1 = 14) is high bit ,both high and low is 14*16+16 = 240
AMC
SZC ; if overflow ,240 count is 240*0.25s = 60s = 1min
A 0
BL TIMECON200
LA 0
LXY T1ML
XAMI 0
LA 0
XAM 0
;
;----------------------------------------------
; 1 min once a time
;----------------------------------------------
TIMECON_7HOUR: ; 7 hours ,COUNT SOURCE IS 1 MIN
LXY T7HL
TAM 0
SEA 15 ; test low bit is overflow ?
BL TIMECON_7HOURL ; no overload ,then add 1
LXY T7HL ; low bit overload, add 1 to middle bit and reset low bit
LA 0
TMA 0 ; reset low bit
LXY T7HM
TAM 0
SEA 15 ; test middle bit is overflow ?
BL TIMECON_7HOURM
LXY T7HM ;
LA 0
TMA 0
RC
LXY T7HH
LA 1
AMC
TMA 0
BL TIMECON_7HOURH
TIMECON_7HOURL:
RC
LXY T7HL
LA 1
AMC
TMA 0
BL TIMECON_7HOURH
TIMECON_7HOURM:
RC
LXY T7HM
LA 1
AMC
TMA 0
TIMECON_7HOURH:
LXY T7HH
TAM 0
SEA 1
BL TIMECON_TIME
LXY T7HM
TAM 0
SEA 10
BL TIMECON_TIME
LXY T7HL
TAM 0
SEA 4 ; the high ,mid and low bit is 1,10,4 .16 bit 1a4 = 420 (min)
BL TIMECON_TIME ; 420 min = 7*60 is 7 hour
.SEB T7HF
LA 0
LXY T7HL
TMA 0
LXY T7HM
TMA 0
LXY T7HH
TMA 0
;------------------------------------------------
; 1 MIN ONCE A TIME
;------------------------------------------------
TIMECON_TIME: ; process real time
.SZXYB TIMEF ; test time set flag,if it is 1,then go to TIMECON200
BL TIMECON200
LXY T_ML ; NO time set then update the real time
TAM 0
SEA 9 ; low bit min
BL TIMECON_TIMEML ; add 1 to low bit min
LXY T_ML ; low bit = 0 ,high bit + 1
LA 0
TMA 0
LXY T_MH
TAM 0
SEA 5 ; 59 min
BL TIMECON_TIMEMH ; high bit +1 ,if high is 4 ,then add 1 ,it is up to 5
LXY T_MH
LA 0
TMA 0
RC
LXY T_HL
LA 9
AMC
INY
LA 14 ; 17h = 23
AMC
SZC
A 0
BL TIMECON_TIMEHL
LA 0
LXY T_HH
TMA 0
LXY T_HL
TMA 0
LXY T_MH
TMA 0
LXY T_ML
TMA 0
BL TIMECON_BTIME
TIMECON_TIMEML:
RC
LXY T_ML
LA 1
AMC
TMA 0
BL TIMECON_BTIME
TIMECON_TIMEMH:
RC
LXY T_MH
LA 1
AMC
TMA 0
BL TIMECON_BTIME
TIMECON_TIMEHL:
RC
LXY T_HL
LA 1
AMC
XAMI 0
LA 0
AMC
XAM 0
;------------------------------------------------
; 1 MIN ONCE A TIME
;------------------------------------------------
TIMECON_BTIME: ;save real time to buffer
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
;
.SZXYB TIMERF
BL TIMECON200
.SZXYB TIMERONF
A 0
BL TIMECON100
LXY T_ML
TAM 0
LXY TON_ML
SEAM
BL TIMECON200
LXY T_MH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -