⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led1.asm

📁 家用消毒柜 家用消毒柜 家用消毒柜
💻 ASM
字号:
;************************************
;ster program 
;crystal:3.58MHz
	chip	sn8p1604a
//{{SONIX_CODE_OPTION
	.Code_Option	High_Clk	4M_X'tal
	.Code_Option	High_Clk/2	Disable
	.Code_Option	Security	Enable
	.Code_Option	Int_16K_RC	Always_ON
	.Code_Option	Rst_P0.3	Reset
	.Code_Option	Watch_Dog	Enable
//}}SONIX_CODE_OPTION




flag1		equ	00h
flag2		equ	01h
flag3		equ	02h
second		equ	03h
hour		equ	04h
minute		equ	05h
Dminute		equ	06h
Dsecond		equ	07h
sumbuffer	equ	08h
sterbuffer	equ	09h
fantime		equ	0ah
fanbuffer	equ	0bh
databuffer	equ	0ch
bufferHH	equ	0dh
keybuffer	equ	0eh
counter		equ	0fh

sterbuffer1	equ	10h
keybuffercopy	equ	11h
tonetime	equ	12h
bufferH		equ	13h
bufferL		equ	14h
address		equ	15h
delaybuffer	equ	16h
timer		equ	17h
counter1	equ	18h
P2copy		equ	19h
P1copy		equ	1ah
keycounter	equ	1bh
combuffer	equ	1ch
accbuffer	equ	1dh
pflagbuffer	equ	1eh
Dminute_Dry	equ	1fh

displaybuffer0	equ	20h
displaybuffer1	equ	21h
displaybuffer2	equ	22h
displaybuffer3	equ	23h
displaybuffer4	equ	24h
displaybuffer5	equ	25h
displaybuffer6	equ	26h
displaybuffer7	equ	27h
displaybuffer8	equ	28h
displaybuffer9	equ	29h
ybuffer		equ	2ah
zbuffer		equ	2bh
rbuffer		equ	2ch
timer2		equ	2dh

P5copy		equ	30h
flag4		equ	31h
flashtime	equ	32h
keytime		equ	33h
;***********
;BIT DEFINITION
;*****************

;************
DOOR		EQU	P0.0

DATA8		EQU	P1.0		
BUZZER		EQU	P1.1		
KEY1		EQU	P1.2
KEY2		EQU	P1.3		
COM0		EQU	P1.4
COM1		EQU	P1.5
COM2		EQU	P1.6
COM3		EQU	P1.7

DOT		equ	P2.2

LIGHT		EQU	P5.0		;OUTPUT
STER		EQU	P5.1		;OUTPUT
DRY		EQU	P5.2		;OUTPUT
FAN		EQU	P5.3		;OUTPUT
;**********
F_FAN		EQU	flag1.0
F_STER		EQU	flag1.1
F_DRY		EQU	flag1.2
F_FLASH1	equ	flag1.3
TONE_ENABLE	EQU	flag1.4
F_NO_DOOR	EQU	flag1.5
F_NO_TONE	equ	flag1.6


F_STER90	EQU	flag2.2
F_STER45	EQU	flag2.3
F_DRY60		EQU	flag2.1
F_DRY30		EQU	flag2.0

F_ON_OFF	EQU	flag3.0
F_FLASH		EQU	flag3.1
F_LIGHT		EQU	flag3.2
F_KEY		EQU	flag3.3
F_FINISH	EQU	flag3.4
F_DISPLAY	EQU	flag3.5
F_DISPLAY1	EQU	flag3.6
F_MINUTE	EQU	flag3.7
F_DISPLAY_FLASH	equ	flag4.0
F_DISPLAY_FLASH60	EQU	flag4.6
F_DISPLAY_FLASH30	EQU	flag4.7
F_DELAY		EQU	flag4.3
;*****************************************
KPOWER		EQU	keybuffer.6
KMINUTE		EQU	keybuffer.0
KLIGHT		EQU	keybuffer.7
KHOUR		EQU	keybuffer.1
KDRY60		EQU	keybuffer.2
KSTER90		EQU	keybuffer.4
KDRY30		EQU	keybuffer.3
KSTER45		EQU	keybuffer.5

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
	org	0x00
	jmp	Start
	org	0x08
	jmp	Interrupt
	
	org	0x10		
Interrupt:
	b0bset	FWDRST
	b0mov	accbuffer,a
	b0mov	a,PFLAG
	b0mov	pflagbuffer,a
	b0bts1	FTC1IRQ
	jmp	Interruptend01
	mov	a,#131
	mov	TC1C,a
	
	b0bts1	DOOR
	jmp	Testdoor01
Testdoor:	
	b0bset	F_NO_DOOR
	b0bclr	STER
	jmp	Testdoor02
Testdoor01:
	b0bclr	F_NO_DOOR
	b0bts0	F_STER
	b0bset	STER
Testdoor02:
	b0mov	a,keytime
	cmprs	a,#0	
	decms	keytime
	nop		
Tone:
	b0bts0	TONE_ENABLE
	b0bset	BUZZER
	incms	tonetime
	nop
	b0mov	a,tonetime
	sub	a,#30			;250ms	
	b0bts1	FC
	jmp	Notone
	clr	tonetime
	b0bclr	BUZZER
	b0bclr	TONE_ENABLE			
Notone:	
	incms	flashtime
	nop
	b0mov	a,flashtime
	sub	a,#125			;500ms
	b0bts1	FC
	jmp	Timer00
	clr	flashtime
	b0bts0	F_FLASH1
	jmp	Flashtime01
	b0bset	F_FLASH1
	jmp	Timer00
Flashtime01:
	b0bclr	F_FLASH1
	
Timer00:			
	incms	timer
	nop
	b0mov	a,timer
	sub	a,#125			;500ms
	b0bts1	FC
	jmp	Keyscan
	clr	timer
	b0bts0	F_FLASH
	jmp	Timer0ok_1
	b0bset	F_FLASH
	jmp	Keyscan
Timer0ok_1:
	b0bclr	F_FLASH
	b0bts1	F_DELAY
	jmp	Timer0ok_1x
	decms	delaybuffer
	jmp	Timer0ok_1x
	clr	flag4
	b0bclr	F_MINUTE
Timer0ok_1x:	
	incms	second
	nop
	b0mov	a,second
	sub	a,#60
	b0bts1	FC
	jmp	Timer0ok_2
	clr	second
	incms	minute
	nop
	b0mov	a,minute
	sub	a,#60
	b0bts1	FC
	jmp	Timer0ok_2
	clr	minute
	incms	hour	
	nop
	b0mov	a,hour
	sub	a,#12
	b0bts1	FC
	jmp	Timer0ok_2
	clr	hour
Timer0ok_2:
	b0bts1	F_ON_OFF
	jmp	Keyscan
	b0bts1	F_NO_DOOR
	jmp	Timer0ok_2a
	b0bts0	F_STER
	jmp	Keyscan
Timer0ok_2a:	
	b0mov	a,Dsecond
	cmprs	a,#0x00
	jmp	Timer0ok_2x
	jmp	Timer0ok_4
Timer0ok_2x:	
	decms	Dsecond
	nop
	jmp	Keyscan
Timer0ok_4:
	b0mov	a,fantime
	cmprs	a,#0xff	
	incms	fantime
	nop
	mov	a,#59
	b0mov	Dsecond,a
	decms	Dminute
	nop
	call	AdjDisplay	
	b0mov	a,Dminute
	cmprs	a,#0xff
	jmp	Timer0ok_7
Timer0ok_5:
	b0bts1	F_STER
	jmp	Timer0ok_6
	b0mov	a,Dminute_Dry
	b0mov	Dminute,a
	clr	Dsecond
	clr	flag2
	clr	fantime
	b0bset	F_DRY60
	call	Clrstatus01
	b0bset	F_DRY
	b0bset	DRY
	jmp	Keyscan
Timer0ok_6:
	b0bset	F_FINISH
	jmp	Interruptend
Timer0ok_7:
	b0bts0	F_STER
	jmp	Keyscan
	
	b0mov	a,fantime
	sub	a,#20
	b0bts1	FC
	jmp	Timer0ok_8
	b0bset	FAN
	b0bset	F_FAN
Timer0ok_8:
	b0mov	a,Dminute	
	sub	a,#30
	b0bts0	FC
	jmp	Keyscan
	clr	flag2
	b0bset	F_DRY30
	b0bset	FAN
	b0bset	F_FAN
;\\\\\\\\\\\\	
Keyscan:
	b0bclr	COM0
	b0bclr	COM1
	b0bclr	COM2
	b0bclr	COM3
	b0bclr	DATA8
	incms	combuffer
	nop
	b0mov	a,combuffer
	cmprs	a,#0x01
	jmp	$+2
	jmp	C2
	cmprs	a,#0x02
	jmp	$+2
	jmp	C3
	cmprs	a,#0x03
	jmp	$+2
	jmp	C4	
C1:
	clr	combuffer
	call	Adjhour
	b0mov	a,bufferHH
	cmprs	a,#0x00
	jmp	C1_1
	b0mov	a,bufferH
	cmprs	a,#00
	jmp	$+2
	jmp	C1_1
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
;	b0mov	a,bufferH
	add	Z,a
	movc
	jmp	C1_2
C1_1:
	mov	a,#0x00
C1_2:	
	b0mov	P2,a
	b0bset	COM0
	b0bts1	F_ON_OFF
	jmp	C1_3
	b0bts0	F_STER90
	b0bset	DATA8
C1_3:		
	b0bclr	KMINUTE	
	b0bclr	KSTER90
	b0bts1	KEY1
	b0bset	KSTER90
	b0bts1	KEY2
	b0bset	KMINUTE	
	jmp	Interruptend
C2:
	call	Adjhour
	b0mov	a,bufferHH
	cmprs	a,#0x00
	jmp	C2_1
	b0mov	a,bufferL
	jmp	C2_2
C2_1:
	b0mov	a,bufferHH
C2_2:
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
	add	Z,a
	movc
	b0mov	P2,a
	b0bset	COM1
	b0bts0	F_ON_OFF
	b0bts0	F_DELAY	
	b0bts0	F_FLASH
	b0bset	DOT
	b0mov	a,bufferHH
	cmprs	a,#00
	b0bclr	DOT
	b0bts1	F_ON_OFF
	jmp	C2_3
	b0bts0	F_STER45
	b0bset	DATA8
C2_3:
	b0bts1	F_DISPLAY_FLASH
	jmp	$+7
	b0bset	DOT
	b0bts0	F_FLASH1
	b0bset	DOT
	b0mov	a,bufferHH
	cmprs	a,#00
	b0bclr	DOT
	
	b0bclr	KPOWER	
	b0bclr	KHOUR
	b0bts1	KEY1
	b0bset	KPOWER	
	b0bts1	KEY2
	b0bset	KHOUR
	jmp	Interruptend
C3:
	
	call	Adjhour
	b0mov	a,bufferHH
	cmprs	a,#0x00
	jmp	C3_1
	call	Adjminute	
C3_1:	
	b0mov	a,bufferH
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
	add	Z,a
	movc
	b0mov	P2,a
	b0bset	COM2
	b0bts1	F_ON_OFF
	jmp	C3_3
	b0bts0	F_DRY60
	b0bset	DATA8
C3_3:
	b0bclr	KDRY30
	b0bclr	KLIGHT
	b0bts1	KEY1
	b0bset	KDry30
	b0bts1	KEY2
	b0bset	KLIGHT
	jmp	Interruptend	
C4:
	call	Adjhour
	b0mov	a,bufferHH
	cmprs	a,#0x00
	jmp	C4_1
	call	Adjminute	
C4_1:	
	b0mov	a,bufferL
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
	add	Z,a
	movc
	b0mov	P2,a
	b0bset	COM3
	b0bts1	F_ON_OFF
	jmp	C4_3
	b0bts0	F_DRY30
	b0bset	DATA8
C4_3:
	b0bclr	KDRY60
	b0bclr	KSTER45
	b0bts1	KEY1
	b0bset	KSTER45
	b0bts1	KEY2
	b0bset	KDRY60	
	
Readkeyend:
	clr	keycounter
	b0mov	a,keybuffer
	b0mov	databuffer,a
Readkeyend01:		
	mov	a,#0x08
	b0mov	counter,a
Readkeyend02:
	rrcm	databuffer
	b0bts0	FC
	incms	keycounter
	nop
	decms	counter
	jmp	Readkeyend02
	b0mov	a,keycounter
	cmprs	a,#0x01
	jmp	Readkeyend06
	b0mov	a,keybuffer
	cmprs	a,keybuffercopy
	jmp	Readkeyend04	
	b0bts0	KMINUTE
	jmp	Readkeyend03
	b0bts1	KHOUR
	jmp	Readkeyend06
Readkeyend03:
	b0mov	a,keytime
	cmprs	a,#0
	jmp	Interruptend
	b0bset	F_NO_TONE
	mov	a,#40
	jmp	Readkeyend05
Readkeyend04:
	b0mov	a,keybuffer
	b0mov	keybuffercopy,a		
	b0bclr	F_NO_TONE
	mov	a,#100
Readkeyend05:
	b0mov	keytime,a
	b0bset	F_KEY
	jmp	Interruptend
Readkeyend06:
	b0mov	a,keybuffer
	b0mov	keybuffercopy,a		
	mov	a,#100
	b0mov	keytime,a
	b0bclr	F_KEY
	b0bclr	F_NO_TONE
Interruptend:
	b0bts1	F_DISPLAY_FLASH
	jmp	$+3
	b0bts1	F_FLASH1
	clr	P2
Interruptend01:	
	clr	INTRQ
        b0xch  	a,pflagbuffer
        b0xch  	a,PFLAG
        b0xch  	a,accbuffer
	reti	
;*******************
Adjhour:
	b0bts0	F_DISPLAY_FLASH
	jmp	Adjhour04
	b0bts0	F_DELAY
	jmp	Adjhour01
	b0bts0	F_STER
	jmp	Adjhour03
	b0bts0	F_DRY
	jmp	Adjhour03
Adjhour01:	
	b0mov	a,hour
	cmprs	a,#0x00
	jmp	Adjhour02
	mov	a,#12
	jmp	Tobcd
Adjhour02:
	b0mov	a,hour
	jmp	Tobcd
Adjhour03:
	b0mov	a,Dminute
	jmp	Tobcd
Adjhour04:
	b0mov	a,Dminute_Dry	
	jmp	Tobcd
;**************
Adjminute:
	b0bts0	F_DISPLAY_FLASH
	jmp	Adjminute03
	b0bts0	F_DELAY
	jmp	Adjminute01
	b0bts0	F_STER
	jmp	Adjminute02
	b0bts0	F_DRY
	jmp	Adjminute02
Adjminute01:	
	b0mov	a,minute
	jmp	Tobcd
Adjminute02:
	b0mov	a,Dsecond
	jmp	Tobcd
Adjminute03:
	mov	a,#0	
;\\\\\\\\\\\\\\\\\
Tobcd:
	b0mov	bufferL,a
	clr	bufferHH
	clr	bufferH
Tobcd01:	
	b0mov	a,bufferL
	sub	a,#10
	b0bts1	FC
	jmp	Tobcd02
	b0mov	bufferL,a
	incms	bufferH
	jmp	Tobcd01
Tobcd02:
	add	a,#10
	b0mov	bufferL,a
Tobcd03:	
	b0mov	a,bufferH
	sub	a,#10
	b0bts1	FC
	jmp	Tobcd04
	b0mov	bufferH,a
	incms	bufferHH
	jmp	Tobcd03
Tobcd04:
	add	a,#10
	b0mov	bufferH,a
	ret
;\\\\\\\\\\

;**********************
Clrstatus:
	b0bclr	F_ON_OFF
	b0bclr	F_FINISH
Clrstatus01:
	clr	flag1
	clr	fantime
	b0bclr	DRY
	b0bclr	STER
	b0bclr	FAN
	ret
;\\\\\\\\
Sum:
	mov	a,#7
	b0mov	counter,a
	clr	Y
	clr	Z	
	b0mov	a,@YZ
Verify01:
	incms	Z
	add	a,@YZ
	decms	counter
	jmp	Verify01
	b0mov	databuffer,a
	ret	
;*****************
Start:
	clr	OSCM
	clr	PFLAG
	mov	a,#11110011b
	b0mov	P1M,a
	mov	a,#11111111b
	b0mov	P2M,a
	b0mov	P5M,a
	@SET_PUR	0x23
	
	call	Sum
	mov	a,databuffer
	cmprs	a,sumbuffer
	jmp	Verify03	
	mov	a,#0x09
	b0mov	counter,a
	clr	Y
	clr	Z
Verify02:
	b0mov	a,@YZ
	cmprs	a,#0x00
	jmp	Verify04
	incms	Z
	nop
	decms	counter
	jmp	Verify02
Verify03:
	clr	P1
	clr	P2
	clr	P5
Init:
	clr	Y
	clr	Z
Init01: 
	mov	a,#0
	b0mov	@YZ,a
	incms	Z
	mov	a,#0x7f
	cmprs	a,Z
	jmp	Init01
	b0bset	TONE_ENABLE
	jmp	Init02
Verify04:	
	b0mov	a,P1copy
	b0mov	P1,a
	b0mov	a,P2copy
	b0mov	P2,a
	b0mov	a,P5copy
	b0mov	P5,a
Init02:
	mov	a,#0xb0		;1:32
	b0mov	TC1M,a
	mov	a,#131
	b0mov	TC1C,a
	b0bset	FTC1IEN
	b0bset	FGIE
	clr	INTRQ
Main:
	b0bset	FWDRST
	call	Sum
	b0mov	a,databuffer
	b0mov	sumbuffer,a
	b0mov	a,P1
	b0mov	P1copy,a
	b0mov	a,P2
	b0mov	P2copy,a
	b0mov	a,P5
	b0mov	P5copy,a
	
	b0bts1	F_FINISH
	jmp	main00
	call	Clrstatus
	jmp	Keyactive01

main00:		
	b0bts1	F_KEY
	jmp	Main
	b0bclr	F_KEY	
	b0bts0	KPOWER
	jmp	Poweractive	
	b0bts0	KLIGHT
	jmp	Lightactive
	b0bts0	KHOUR
	jmp	Houractive		
	b0bts0	KMINUTE
	jmp	Minuteactive	
	b0bts1	F_ON_OFF
	jmp	Main		
	b0bts0	KSTER90
	jmp	Ster90active
	b0bts0	KSTER45
	jmp	Ster45active
	b0bts0	KDRY30
	jmp	Dry30active
	b0bts1	KDRY60
	jmp	Main	
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Dry60active:
	b0bts0	F_STER
	jmp	Dry60active02		
Dry60active01:	
	clr	flag2
	b0bset	F_DRY60
	call	Clrstatus01
	mov	a,#60	
	jmp	Dry30active02
Dry60active02:
	b0bts0	F_DISPLAY_FLASH60
	jmp	Dry60active04
	b0bset	F_DISPLAY_FLASH60
	b0bclr	F_DISPLAY_FLASH30
	b0bset	F_DISPLAY_FLASH
	b0bclr	F_MINUTE	
	b0mov	a,Dminute_dry
	sub	a,#60
	b0bts0	FC
	jmp	Dry60active03
	mov	a,#60
	b0mov	Dminute_dry,a		
Dry60active03:	
	mov	a,#10
	b0mov	delaybuffer,a
	b0bset	F_DELAY	
	jmp	Keyactive01
Dry60active04:
	clr	flag4
	b0bts1	F_MINUTE
	jmp	Dry60active01
	b0bclr	F_MINUTE
	jmp	Keyactive01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\			
;********************
Poweractive:
	b0bts1	F_ON_OFF
	jmp	Poweractive01
	call	Clrstatus
	clr	flag4
	jmp	Keyactive01
Poweractive01:
	b0bset	F_ON_OFF
	jmp	Ster90active
;***********	
Dry30active:
	b0bts0	F_STER
	jmp	Dry30active03
Dry30active01:
	clr	flag2
	b0bset	F_DRY30
	call	Clrstatus01
	mov	a,#30
	b0bset	FAN
	b0bset	F_FAN
Dry30active02:	
	b0bset	F_DRY
	b0bset	DRY	
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Keyactive:
	b0mov	Dminute,a	
	clr	Dsecond
Keyactive01:	
	clr	flashtime
	b0bset	F_FLASH1
	b0bts0	F_NO_TONE
	jmp	Main
	b0bset	TONE_ENABLE
	clr	tonetime
	jmp	Main
;*******************
Dry30active03:
	b0bts0	F_DISPLAY_FLASH30
	jmp	Dry30active04
	b0bset	F_DISPLAY_FLASH30
	b0bclr	F_DISPLAY_FLASH60
	b0bset	F_DISPLAY_FLASH
	b0bclr	F_MINUTE
	b0mov	a,Dminute_dry
	sub	a,#60
	b0bts1	FC
	jmp	Dry60active03
	mov	a,#30
	b0mov	Dminute_dry,a
	jmp	Dry60active03
Dry30active04:
	clr	flag4
	b0bts1	F_MINUTE
	jmp	Dry30active01
	b0bclr	F_MINUTE
	jmp	Keyactive01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Lightactive:
	b0bts0	F_LIGHT
	jmp	Lightactive01
	b0bset	F_LIGHT
	b0bset	LIGHT
	jmp	Keyactive01
Lightactive01:	
	b0bclr	F_LIGHT
	b0bclr	LIGHT
	jmp	Keyactive01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\
Houractive:
	clr	flag4
	b0bts0	F_ON_OFF
	jmp	Houractive02
Houractive01:	
	incms	hour
	nop
	b0mov	a,hour
	sub	a,#12
	b0bts0	FC
	clr	hour
	jmp	Keyactive01
Houractive02:
	mov	a,#0x05
	b0mov	delaybuffer,a
	b0bts0	F_DELAY
	jmp	Houractive01	
	b0bset	F_DELAY
	jmp	Keyactive01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Minuteactive:
	b0bts0	F_ON_OFF
	jmp	Minuteactive02
Minuteactive01:	
	incms	minute
	nop
	b0mov	a,minute
	sub	a,#60
	b0bts0	FC
	clr	minute	
	jmp	Keyactive01
Minuteactive02:
	b0bts0	F_DISPLAY_FLASH30
	jmp	Dry30_time_ster
	b0bts0	F_DISPLAY_FLASH60
	jmp	Dry60_time_ster	
	incms	Dminute
	nop
	b0bts0	F_STER90	
	jmp	Ster90_time
	b0bts0	F_STER45	
	jmp	Ster45_time
	b0bts0	F_DRY60	
	jmp	Dry60_time
	b0bts0	F_DRY30
	jmp	Dry30_time
	b0bts0	F_DELAY
	jmp	Minuteactive01	
	jmp	Main
Dry30_time:
	b0mov	a,Dminute
	sub	a,#60
	b0bts1	FC
	jmp	Keyactive01
	mov	a,#30
	jmp	Keyactive
Dry60_time:
	b0mov	a,Dminute
	sub	a,#121
	b0bts1	FC
	jmp	Keyactive01
	mov	a,#60
	jmp	Keyactive
Ster45_time:
	b0mov	a,Dminute
	sub	a,#90
	b0bts1	FC
	jmp	Keyactive01
	mov	a,#45
	jmp	Keyactive
Ster90_time:	
	b0mov	a,Dminute
	sub	a,#241
	b0bts1	FC
	jmp	Keyactive01
	mov	a,#90
	jmp	Keyactive
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Dry30_time_ster:
	incms	Dminute_dry
	nop
	b0mov	a,Dminute_dry
	sub	a,#60
	b0bts1	FC
	jmp	Dry60_time_ster01
	mov	a,#30
	b0mov	Dminute_dry,a
	jmp	Dry60_time_ster01
Dry60_time_ster:
	incms	Dminute_dry
	nop
	b0mov	a,Dminute_dry
	sub	a,#121
	b0bts1	FC
	jmp	Dry60_time_ster01
	mov	a,#60
	b0mov	Dminute_dry,a
Dry60_time_ster01:		
	mov	a,#15
	b0mov	delaybuffer,a
	b0bset	F_DELAY
	b0bset	F_MINUTE
	b0bclr	F_FLASH
	clr	timer
	jmp	Keyactive01	
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Ster90active:
	mov	a,#60
	b0mov	Dminute_Dry,a
	clr	flag2
	b0bset	F_STER90
	call	Clrstatus01	
	mov	a,#90
	jmp	Ster45active01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Ster45active:
	mov	a,#60
	b0mov	Dminute_Dry,a
	clr	flag2
	b0bset	F_STER45
	call	Clrstatus01	
	mov	a,#45
Ster45active01:
	clr	flag4	
	b0bset	F_STER
	b0bset	STER
	jmp	Keyactive
;\\\\\\\\\\\\
AdjDisplay:
	b0bts1	F_STER90
	jmp	AdjDisplay01
	mov	a,Dminute
	sub	a,#45
	b0bts0	FC
	ret
	b0bclr	F_STER90
	b0bset	F_STER45
	ret
AdjDisplay01:
	b0bts1	F_DRY60
	ret
	mov	a,Dminute
	sub	a,#30
	b0bts0	FC
	ret
	b0bclr	F_DRY60
	b0bset	F_Dry30
	ret		

Segtable:
;			;  afbgcxed
	dw	0xffeb	;b'11101011'	;0
	dw	0xff28	;b'00101000'	;1
	dw	0xffb3	;b'10110011'	;2
	dw	0xffb9	;b'10111001'	;3
	dw	0xff78	;b'01111000'	;4
	dw	0xffd9	;b'11011001'	;5
	dw	0xffdb	;b'11011011'	;6
	dw	0xffe8	;b'11101000'	;7
	dw	0xfffb	;b'11111011'	;8
	dw	0xfff9	;b'11111001'	;9
	
	endp		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -