📄 idwracdsp.asm
字号:
;************************************************************************
;* Module Name: DISPLAY *
;* Function: display ram control *
;* Input: *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;
;------------------------------------------------------------------------
;========================================================================
DSPctrl:
; ret
LD A,#0ffh
MOV D_DSPram0,A
MOV D_DSPram1,A
MOV D_DSPram2,A
MOV D_DSPram3,A
; SET1 f_LEDsfan
BTJF f_PWRon,DSPoff
call !DSPdigRAM
MOV D_DSPram2,#0FFH
CLR1 f_LEDpwr
CALL !LEDmod
;------------------------------------------------------------------------
call !LEDfansp ;PTAC
CALL !LEDother
; SET1 f_LEDsfan
CMP M_FANset,#n_FANauto ;BF f_FANsmart,$CLRsmartLED
BNE CLRsmartLED
; CLR1 f_LEDsfan
CLRsmartLED:
;------------------------------------------------------------------------
call !LEDtimer ;TTW
;------------------------------------------------------------------------
; BT f_LEDheat,$CLRledMONEY
; clr1 o_LED
; RET
;CLRledMONEY:
; CLR1 o_LED
; RET
;------------------------------------------------------------------------
DSPoff:
; CLR1 o_LED
mov A,f_FLGerr
CMP A,#0
BNE digERRcod
cmp M_LEDdigram,#n_DSPtonSET
BEQ TMRdsp10SEC
cmp M_LEDdigram,#n_TOFFset
BEQ TMRdsp10SEC
BTJF f_TMRset,OFFled
BRES f_LEDtmr
OFFled:
ret
TMRdsp10SEC:
CALL !DSPdigRAM
BT f_TIM05s,$OFFled
BRES f_LEDtmr
RET
;------------------------------------------------------------------------
;************************************************************************
; digital dat ram set
;************************************************************************
DSPdigRAM:
LD A,M_LEDdigram ;{n_TMPset,n_TMPrm,DSPclkSET,DSPtonSET,n_TOFFset,n_ERRcod,n_FANset}
CP A,#n_ERRcod
JREQ digERRcod
CP A,#n_DSPtonSET
JREQ DSPtonSET
CP A,#n_TOFFset
JREQ DSPtoffSET
CP A,#n_TMPset
JREQ DSPsetTMP
CP A,#n_TMPrm
JREQ DSPrmTMP
; CP A,#n_DSPclkSET
; JREQ DSPclkSET
; CP A,#n_FANset
; JREQ DSPfanSET
;;========================================================================
;DSPfanSET:
; LD A,M_FANset
; CP A,#n_FANauto
; JREQ DSPautoFAN
; CALL !TABdigit
; LD D_DSPram+1,A
; LD A,#0DH
; CALL !TABdigit
; LD D_DSPram,A
; RET
;DSPautoFAN:
; LD A,#0DH
; CALL !TABdigit
; LD D_DSPram+1,A
; LD A,#5H
; CALL !TABdigit
; LD D_DSPram,A
; RET
;;========================================================================
digERRcod:
LD A,#0DH
CALL !TABdigit
LD D_DSPram,A
LD A,P_ERRcod ;point the err cod to display.
CALL !TABdigit
LD D_DSPram+1,A
RET
;;========================================================================
;DSPclkSET:
; LD A,C_TMRclk
; BR DSP2TMR
DSPtonSET:
LD A,D_TMRon
BR DSP2TMR
DSPtoffSET:
LD A,D_TMRoff
DSP2TMR:
cmp A,#0
BEQ DSP__
; CMP A,#12+1
; BC $DSPnomore12
;; CLR1 f_LEDpm
; SUBC A,#12
DSPnomore12:
BRA DSP2HEX
DSP__:
MOV A,#0AH
MOV D_WORK,A
MOV D_WORK+1,A
BRA dsp_WORK
;========================================================================
DSPsetTMP:
DSPrmTMP:
CMP M_MODset,#n_Mfan
BEQ endDIG
; CMP C_DSP10sec,#6
; BNC $NOblinkSET
; BT f_TIM05s,$endDIG
NOblinkSET:
BT f_COOLquick,$QCtset
; LD A,D_TMPcset
; BTJF f_DEGREEf,DSPtmp
LD A,D_TMPrun
BTJT f_DEGREEf,DSPtmp
;CALL !degreeF2C
LD A,D_TMPcRUN
BR DSPtmp
QCtset:
LD A,#16+n_TMPdsp
BTJF f_DEGREEf,DSPtmp
LD A,#60+n_TMPdsp
BR DSPtmp
;DSPrmTMP:
LD A,D_TMPrm
BTJT f_DEGREEf,DSPtmp
CALL !degreeF2C
DSPtmp:
SUB A,#n_TMPdsp
BNC $NOoverF
LD A,#0
NOoverF:
CLR1 CY
; RORC A,1
DSP2HEX:
CALL !HEX2DEC
dsp_WORK:
LD A,D_WORK
CALL !TABdigit
LD D_DSPram+1,a
LD A,D_WORK+1
CMP A,#0
BNZ $NOdig0
LD A,#0FH
NOdig0:
CALL !TABdigit
AND A,D_DSPram ;f_LEDpm
LD D_DSPram,A
endDIG:
RET
;------------------------------------------------------------------------
;------------------------------------------------------------------------
;========================================================================
;************************************************************************
;* Module Name: *
;* Function: *
;* Input: *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;------------------------------------------------------------------------
LEDmod:
BTJF f_MODmoney,noMONEY
CLR1 f_LEDmoney
noMONEY:
BT f_COOLquick,$NOcoolLED
LD A,M_MODset
;AND A,#3
CP A,#n_Mcool
JREQ DSPcool
CP A,#n_Mheat
JREQ DSPheat
CP A,#n_Mauto
JREQ DSPauto
CP A,#n_Mdry
JREQ DSPdry
BR DSPfan
DSPcool:
BTJT f_MODmoney,NOcoolLED
BRES f_LEDcool
NOcoolLED:
ret
DSPauto:
BRES f_LEDauto
ret
DSPdry:
BRES f_LEDdry
ret
DSPheat:
BF f_ERRhPUMP,$NOheatERR
BTJF f_TIM05s,ledHTRoff
NOheatERR:
BRES f_LEDheat
ledHTRoff:
ret
DSPfan:
BRES f_LEDfan
ret
;========================================================================
LEDfansp:
CMP M_MODset,#n_Mauto
BNE DSPfanSET
LD A,M_FANsp
BR dspFAN
DSPfanSET:
LD A,M_FANset
dspFAN:
CP A,#n_FANhigh
JREQ DSPfanHIGH
CP A,#n_FANmid
JREQ DSPfanMED
DSPfanLOW:
BRES f_LEDlow
ret
DSPfanMED:
BRES f_LEDmid
RET
DSPfanHIGH:
BRES f_LEDhigh
ret
;************************************************************************
;* Module Name: *
;* Function: *
;* Input: *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;
;------------------------------------------------------------------------
LEDtimer:
; BTJT f_SYStest,LEDtest
;BLKcheck:
CMP M_LEDdigram,#n_DSPtonSET
BEQ BLINKtmr
CMP M_LEDdigram,#n_TOFFset
BEQ BLINKtmr
BTJF f_TMRset,LEDnoTMR
litTMR:
BRES f_LEDtmr
LEDnoTMR:
; LD A,M_LEDdigram ;{n_TMPset,n_TMPrm,DSPclkSET,DSPtonSET,n_TOFFset,n_ERRcod,n_FANset}
;; CP A,#n_DSPclkSET
;; JREQ LEDlitCLK
; CP A,#n_DSPtonSET
; JREQ LEDlitTON
; CP A,#n_TOFFset
; JREQ LEDlitTOFF
ret
BLINKtmr:
BF f_TIM05s,$litTMR
RET
;------------------------------------------------------------------------
;LEDlitCLK:
; BRES f_LEDclk
; BSET f_LEDton
; BSET f_LEDtoff
; RET
;LEDlitTON:
; BSET f_LEDclk
; BRES f_LEDton
; BSET f_LEDtoff
; RET
;LEDlitTOFF:
; BSET f_LEDclk
; BSET f_LEDton
; BRES f_LEDtoff
; RET
;========================================================================
;LEDtest:
; BTJF f_TIM05s,testOFF
; LD A,M_LEDdigram ;{n_TMPset,n_TMPrm,DSPclkSET,DSPtonSET,n_TOFFset,n_ERRcod,n_FANset}
; CP A,#n_ERRcod
; JREQ LEDlitERR
;; BRES f_LEDclk
;; BRES f_LEDton
;; BRES f_LEDtoff
; BSET f_LEDtmr
; ret
;LEDlitERR:
; BSET f_LEDclk
; BRES f_LEDton
; BRES f_LEDtoff
; BRES f_LEDtmr
; RET
;
;testOFF:
; BSET f_LEDclk
; BSET f_LEDton
; BSET f_LEDtoff
; BSET f_LEDtmr
; ret
;************************************************************************
;led display define:
;LED: D3 D4 D5 D6 D7 D8 D9 D10 D11
;INDIA: FANL FANH FAN COOL TIMER FANM FILTER QUCIKCOOL POWERSAVE
;GOODMAN:FANL FANH FAN COOL TIMER FANM FILTER SLEEP HEAT
;========================================================================
LEDother:
BTJF f_SWGset,ENDswingLED
CLR1 f_LEDswing
ENDswingLED:
;------------------------------------------------------------------------
LEDfilter:
MOVW AX,C_FLThour
CMPW AX,#180*2 ;f_FILTER
BNC $CLRfilter
CMPW AX,#0
BEQ BLINKfilter
BLINKfilter:
BT f_TIM05s,$CLRfilter
LITfilter:
CLR1 f_LEDfilter
CLRfilter:
;------------------------------------------------------------------------
LEDsleep:
BF f_SLEEP,$CLRslpLED
CLR1 f_LEDsleep
CLRslpLED:
QcoolLED:
BF f_COOLquick,$ENDqcLED
CLR1 f_LEDqucik
ENDqcLED:
;------------------------------------------------------------------------
;[his-013]
LEDfrz:
BF f_FRZoff,$noFRZled
BT f_TIM05s,$noFRZled
CLR1 f_FRZled
noFRZled:
;------------------------------------------------------------------------
;------------------------------------------------------------------------
RET
;========================================================================
OUT1byte:
BRES o_164CLK
BSET o_164A
LD X,#8
LOOP1byte:
RLC A;RRC A
CALL !OUT1bit
DEC X
JRNE LOOP1byte
BRES o_164CLK
RET
;========================================================================
;========================================================================
; Display Ic 74Ls164 Output Timming
; INPUT :CY
;========================================================================
OUT1bit:
BRES o_164CLK
nop
nop
; nop
; nop
; nop
; nop
; nop
; nop
; nop
; nop
JRNC OUT164low
BSET o_164A
JRA OUT164CLK
OUT164low:
BRES o_164A
OUT164CLK:
nop
nop
; nop
; nop
; nop
; nop
; nop
nop
nop
BSET o_164CLK
NOP
nop
nop
nop
nop
nop
RET
;========================================================================
;========================================================================
; HEX2DEC
; INPUT R0<=99(HEX)
; OUTPUT R0,R1(DEC)
;========================================================================
HEX2DEC:
LD X,#0
DECloop:
RCF
SBC A,#10
JRC DIVend
INC X
JRA DECloop
DIVend:
ADD A,#10
LD D_WORK,A
XCH A,X
LD D_WORK+1,A
RET
;************************************************************************
;* Module Name: *
;* Function: *
;* Input: *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;
;-------------------------------------------------------------------------
TABdigit:
XCH A,X
LD A,#0
ADDW AX,#TABdatDIG
MOVW HL,AX
LD A,[HL]
xor A,#0ffh
RET
TABdatDIG:
; 0ABCDEFG
DB 01111110b ;0 -----0
DB 00110000b ;1 -----1
DB 01101101b ;2 -----2
DB 01111001b ;3 -----3
DB 00110011b ;4 -----4
DB 01011011b ;5 -----5
DB 01011111b ;6 -----6
DB 01110000b ;7 -----7
DB 01111111b ;8 -----8
DB 01111011b ;9 -----9
DB 00000001b ;- -----A
DB 00011101b ;O -----B
DB 00110111b ;H -----C
DB 01000111b ;F -----D
DB 01001111b ;E -----E
DB 00000000b ;SPACE -----F
; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -