📄 d-ht48.asm
字号:
#INCLUDE HT48E06.INC
TIME_SHI EQU 10
BEEP EQU TMRC.4
;-------------------------------------------------------------
DATA .SECTION AT 60H 'DATA'
DELAY_1 DB ?
DELAY_2 DB ?
DELAY1 DB ?
DELAY2 DB ?
;-----------------------------------------------
SM_DATA4 DB ?
SM_DATA3 DB ?
SM_DATA2 DB ?
SM_DATA1 DB ?
SM DB ?
;--------------------------------------
TIME_DATA DB ?
DATA_BACKUP DB ?
SHI_WEI_DATA DB ?
GE_WEI_DATA DB ?
MIN_DATA DB ?
;---------------------------------------------------
KEY_DATA DB ?
DELAY_RETURE DB ?
;-----------------------------------------------
DING1 DB ?
DING2 DB ?
DING5 DB ?
;-------------------------------------------------
BEEP_DATA DB ?
BEEP_DATA2 DB ?
POWER_DATA DB ?
POWER_TIME DB ?
POWER_ON DB ?
POWER_OFF DB ?
;-------------------------------------------------------------
CODE .SECTION AT 00H 'CODE'
ORG 00H
JMP START
ORG 008H
JMP TIMER_1
START:
;蜂鸣一声进入待机状态,数码管不显示,只有开关键起作用
MOV A,0FAH
MOV BEEP_DATA,A
MOV A,01000000B
MOV TMRC,A
MOV A,0D8H
MOV TMR,A
MOV A,0FFH
MOV TMRC,A
SET BEEP
KK:
MOV A,00000100B
MOV PAC,A
SET PA
;不断扫描pa2,为底电位时开关按键被按下
GO:
SZ PA.2
JMP GO
K:
SZ PA.2;为0表示按键未放开
JMP RUN
JMP K
RUN: ;按键被放开时
SET BEEP
RUN1:
CLR KEY_DATA
MOV A,11101111B
MOV SM_DATA1,A
MOV SM_DATA2,A
MOV SM_DATA3,A
MOV SM_DATA4,A
CALL XSHI
;----------------------------------------------
KEY_SCAN:
MOV A,00001000B
MOV PAC,A
MOV PCC,A
SET PA
SET PC.0
;开关按键
SZ PC.0
JMP W
JMP NEXIT_300W
W:
MOV A,PA
XOR A,11111011B
SZ ACC
JMP NEXIT_100W
SET BEEP
CALL KEY_UP
JMP KK
;100w按键
NEXIT_100W:
MOV A,PA
XOR A,11111101B
SZ ACC
JMP NEXIT_500W
SET BEEP
CALL KEY_UP
JMP POWER_100W
;300w按键
NEXIT_300W:
MOV A,PA
XOR A,11111011B
SZ ACC
JMP NEXIT_500W
SET BEEP
CALL KEY_UP
JMP POWER_300W
;500w按键
NEXIT_500W:
MOV A,PA
XOR A,10111111B
SZ ACC
JMP NEXIT_1000W
SET BEEP
CALL KEY_UP
JMP POWER_500W
;1000w按键
NEXIT_1000W:
MOV A,PA
XOR A,11101111B
SZ ACC
JMP NEXIT_1300W
SET BEEP
CALL KEY_UP
JMP POWER_1000W
;1300w按键
NEXIT_1300W:
MOV A,PA
XOR A,11011111B
SZ ACC
JMP NEXIT_1600W
SET BEEP
CALL KEY_UP
JMP POWER_1300W
;1600w按键
NEXIT_1600W:
MOV A,PA
XOR A,01111111B
SZ ACC
JMP EXIT_KEY
SET BEEP
CALL KEY_UP
JMP POWER_1600W
EXIT_KEY:
MOV A,POWER_DATA
SUB A,0EEH
SZ ACC
JMP RUN1
JMP W_END
;---------------------------------------------------------------------------
W_END:
MOV A,0FFH
MOV SM_DATA4,A
MOV A,00101001B
MOV SM_DATA3,A
MOV A,01001111B
MOV SM_DATA2,A
MOV A,00000111B
MOV SM_DATA1,A
CALL XSHI
JMP KEY_SCAN
;-----------------------------------------------------
POWER_100W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,11010111B
MOV SM_DATA3,A
MOV A,0FFH
MOV SM_DATA4,A
MOV A,30D
MOV TIME_DATA,A
MOV A,1D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
K_100:
MOV A,4D
MOV POWER_OFF,A
;PC.0始终输出0,pb.1以5s输出为1,20s输出为0,规律循环输出
MOV A,00H
MOV PCC,A
CLR PC.0
MOV A,11111101B
MOV PBC,A
ON_100:
SET PB.1
MOV A,01H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_100:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP OFF_100
JMP EXIT_100W
OFF_100:
SDZ MIN_DATA
JMP OFF1
JMP TIME_JS1
OFF1:
CLR PB.1
MOV A,02H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_100_2:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G1
JMP EXIT_100W
G1:
SDZ POWER_OFF
JMP OFF_100
JMP K_100
TIME_JS1:
SDZ TIME_DATA
JMP JS1
JMP EXIT_100W
JS1:
MOV A,12D
MOV MIN_DATA,A
JMP OFF1
EXIT_100W:
MOV A,0EEH
MOV POWER_DATA,A
JMP W_END
;-----------------------------------------------------------------
;300w PC.0始终输出0,pb.1以35s输出为1,10s输出为0,规律循环输出
POWER_300W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,10000101B
MOV SM_DATA3,A
MOV A,0FFH
MOV SM_DATA4,A
MOV A,60D
MOV TIME_DATA,A
MOV A,3D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
K_300:
MOV A,2D
MOV POWER_OFF,A
MOV A,00H
MOV PCC,A
CLR PC.0
MOV A,11111101B
MOV PBC,A
ON_300:
SET PB.1
MOV A,03H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_300:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G3
JMP EXIT_300W
G3:
SDZ MIN_DATA
JMP O_300
JMP TIME_JS3
O_300:
SDZ POWER_ON ;POWER_ON=7
JMP ON_300
MOV A,7D
MOV POWER_ON,A
OFF_300:
CLR PB.1
MOV A,04H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_300_2:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G3_1
JMP EXIT_300W
G3_1:
SDZ MIN_DATA
JMP F_300
JMP JS3
F_300:
SDZ POWER_OFF
JMP OFF_300
JMP K_300
TIME_JS3:
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP OFF_300
JMP EXIT_300W
JS3:
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP F_300
JMP EXIT_300W
EXIT_300W:
MOV A,0EEH
MOV POWER_DATA,A
JMP W_END
;-----------------------------------------------------------------
;500w PC.0始终输出0,pb.1始终输出1
POWER_500W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,10001001B
MOV SM_DATA3,A
MOV A,0FFH
MOV SM_DATA4,A
MOV A,120D
MOV TIME_DATA,A
MOV A,5D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
K_500:
MOV A,00H
MOV PCC,A
CLR PC.0
MOV A,11111101B
MOV PBC,A
SET PB.1
MOV A,05H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_500:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G5
JMP EXIT_500W
G5:
SDZ MIN_DATA
JMP K_500
JMP TIME_JS5
TIME_JS5:
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP K_500
EXIT_500W:
MOV A,0EEH
MOV POWER_DATA,A
JMP W_END
;-----------------------------------------------------------------
;1000w PC.0始终输出0,pb.1始终输出1
POWER_1000W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,00010001B
MOV SM_DATA3,A
MOV A,11010111B
MOV SM_DATA4,A
MOV A,120D
MOV TIME_DATA,A
MOV A,10D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
K_1000:
MOV A,00H
MOV PCC,A
SET PC.0
MOV A,11111101B
MOV PBC,A
CLR PB.1
MOV A,06H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_1000:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G10
JMP EXIT_1000W
G10:
SDZ MIN_DATA
JMP K_1000
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP K_1000
EXIT_1000W:
MOV A,0EEH
MOV POWER_DATA,A
JMP W_END
;-----------------------------------------------------------------
;1300w PC.0始终输出1,pb.1以35s输出为1,35s输出为0,规律循环输出
POWER_1300W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,10000101B
MOV SM_DATA3,A
MOV A,11010111B
MOV SM_DATA4,A
MOV A,120D
MOV TIME_DATA,A
MOV A,1300D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
MOV A,7D
MOV POWER_ON,A
K_1300:
MOV A,7D
MOV POWER_OFF,A
MOV A,00H
MOV PCC,A
SET PC.0
MOV A,11111101B
MOV PBC,A
ON_1300:
SET PB.1
MOV A,07H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_1300:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G13
JMP EXIT_1300W
G13:
SDZ MIN_DATA
JMP O_1300
JMP TIME_JS13
O_1300:
SDZ POWER_ON ;POWER_ON=7
JMP ON_1300
MOV A,7D
MOV POWER_ON,A
OFF_1300:
CLR PB.1
MOV A,08H
MOV DELAY_RETURE,A
JMP DELAY_5S
RETURE_1300_2:
MOV A,PA
SUB A,0FFH
SZ ACC
JMP G13_2
JMP EXIT_1300W
G13_2:
SDZ MIN_DATA
JMP F_1300
JMP JS13
F_1300:
SDZ POWER_OFF
JMP OFF_1300
JMP K_1300
TIME_JS13:
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP OFF_1300
JMP EXIT_1300W
JS13:
MOV A,12D
MOV MIN_DATA,A
SDZ TIME_DATA
JMP F_1300
EXIT_1300W:
MOV A,0EEH
MOV POWER_DATA,A
JMP W_END
;-----------------------------------------------------------------
;1600w PC.0始终输出1,pb.1始终输出1
POWER_1600W:
MOV A,00010001B
MOV SM_DATA1,A
MOV A,00010001B
MOV SM_DATA2,A
MOV A,00001001B
MOV SM_DATA3,A
MOV A,11010111B
MOV SM_DATA4,A
MOV A,60D
MOV TIME_DATA,A
MOV A,16D
MOV POWER_DATA,A
MOV A,12D
MOV MIN_DATA,A
K_1600:
MOV A,00H
MOV PCC,A
SET PC.0
MOV A,11111101B
MOV PBC,A
SET PB.1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -