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

📄 fz_jfxdg290.asm

📁 简单的消毒柜程序 2501+1628
💻 ASM
📖 第 1 页 / 共 2 页
字号:
CHIP SN8P2714
//{{SONIX_CODE_OPTION
	.Code_Option	LVD		LVD_L		; 2.0V Reset
	.Code_Option	RST_P0.3	P0.3
	.Code_Option	Watch_Dog	Always_ON	; Watchdog still enable even in Green and Sleep mode
	.Code_Option	High_Clk	RC		; Connect R to VDD and Xin Connect C to GND and Xin Enable P5.6 I/O pin
	.Code_Option	Fcpu		#2     ; Fcpu = High_Clk/4
	.Code_Option	Security	Enable
	.Code_Option	Noise_Filter	Enable
//}}SONIX_CODE_OPTION

	ORG 	0000H
	JMP 	START
	ORG 	0008H
	JMP 	T00	
	ORG 	0010H
;======================RAM定义
		
	A_TEMP		EQU	00H 	;中断保存A值
	PFLAG_TEMP 	EQU	01H	;中断保存PFLAG值
	TIME  		EQU     02H
	 TIME_10MS 		EQU 	TIME.0
	 TIME_100MS 		EQU 	TIME.1
	 TIME_10MSF		EQU	TIME.2
	 TIME_100MSF		EQU	TIME.3
	 TIME_2MSF		EQU	TIME.4
	 TIME_2MS		EQU	TIME.5
	T10MSRAM 	EQU 	03H
	T100MSRAM 	EQU 	04H
	T2MSRAM		EQU	05H
	AD1		EQU	06H
	A1		EQU	07H
	 BGOTO2		EQU	A1.0
	 BAUTOKEY60	EQU	A1.1
	 BCLEARKEY	EQU	A1.2
	 BDRYKEY	EQU	A1.3
	 BHEATKEY	EQU	A1.4
	 BSTOPKEY	EQU	A1.5
	 BSETTIME	EQU	A1.6
	 BJIAKEY	EQU	A1.7
	KEY1		EQU	08H
	KEY2		EQU	09H
	KEY3		EQU	0AH
	KEY4		EQU	0BH
	KEY5		EQU	0CH
	KEY6		EQU	0DH
	TIMEKEY		EQU	0EH	
	 BP01		EQU	TIMEKEY.0
	 BP02		EQU	TIMEKEY.1	
	TIMEKEY2	EQU	0FH
	A2		EQU	10H
	 BJINKEY	EQU	A2.0
	 B1DI		EQU	A2.1
	 BOFF		EQU	A2.2
	 BCUTKEY	EQU	A2.3
	 BDONE		EQU	A2.4
	 BHEATF		EQU	A2.5
	 BDIDIDI	EQU	A2.6
	 B2DI		EQU	A2.7
	R1		EQU	11H
	R9		EQU	12H
	B1		EQU	13H
	A3		EQU	14H
	 BFIR1		EQU	A3.0
	 BRUNBUZ	EQU	A3.1
	 BTIMEKEYOK	EQU	A3.2
	 BTIMEKEYCOME	EQU	A3.3
	 BTIMEOK	EQU	A3.4
	 B2S		EQU	A3.5
	 BFTIME		EQU	A3.6
	 BO2OVER1	EQU	A3.7
	B2		EQU	15H
	B3		EQU	16H
	B4		EQU	17H
	B5		EQU	18H
	KEY8		EQU	19H
	A4		EQU	1AH
	 BO2		EQU	A4.0
	 BFAN		EQU	A4.1
	 BHEAT		EQU	A4.2
	 BO2OVER	EQU	A4.3
	 BPOWERKEY1	EQU	A4.4
	 BOPD1		EQU	A4.5
	 BOPD2		EQU	A4.6
	 BGOTO1		EQU	A4.7
	CTIME1		EQU	1BH
	CTIME2		EQU	1CH
	S1		EQU	1DH
	W1		EQU	1EH
	W2		EQU	1FH
	ATIME		EQU	20H
	CTIME		EQU	21H
	G1		EQU	22H
	J1		EQU	23H
	P1		EQU	24H
	U1		EQU	25H
	V1		EQU	26H
	J2		EQU	27H
	L2		EQU	28H
	V2		EQU	29H
	J3		EQU	2AH
	L6		EQU	2BH
	L3		EQU	2CH
	L4		EQU	2DH
	B9		EQU	2EH
	C1		EQU	2FH
	C2		EQU	30H
	C3		EQU	31H
;	B8		EQU	32H
	A5		EQU	33H
	 BO2F		EQU	A5.0
	 BFANF		EQU	A5.1
	 BREADOK	EQU	A5.2
	AD2		EQU	34H
	AD3		EQU	35H
	AX		EQU	7DH
	 BOFF2		EQU	AX.0
	B8		EQU	7EH
	AZ		EQU	7FH
	 BOFF1		EQU	AZ.0
	 BPOWERKEY	EQU	AZ.1
	 BCHECK		EQU	AZ.2
	 BAUTO60RUN	EQU	AZ.3
	 BCLEARRUN	EQU	AZ.4
	 BDRYRUN	EQU	AZ.5
	 BHEATRUN	EQU	AZ.6
	 BPOWLEDOFF	EQU	AZ.7

;=======================RAM定义完成
	


;========================常量定义


TIME_REACH	 EQU 		#080H		;0.25毫秒中断初值

;========================常量定义完成



;===========计时中断程序
T00:	
	MOV		A_TEMP,A	;中断保存A值
	SWAP		PFLAG		;这个指令不会对标志位PFLAG影响的
	MOV		PFLAG_TEMP,A	;中断保存PFLAG值
	CLR		INTRQ		;清中断标志
	MOV		A,TIME_REACH		;计时器初值,0.25ms的初值
	MOV		TC0C,A	
	@RST_WDT			;清看门狗
	
	BTS1		BRUNBUZ
	JMP		CLOCK

	MOV	A,#01111111B
	B0MOV	DAM,A
	B0BSET	FDAENB
;	BSET		P4.7
	INCMS		B1
	MOV		A,B8
	CMPRS		A,B1
	JMP		CLOCK
;	BCLR		P4.7
	B0BCLR	FDAENB
	CLR		B1	



CLOCK:		
	
	INCMS	T2MSRAM	
	MOV	A,#19d		
	SUB	A,T2MSRAM
	BTS0	FC
	JMP	OUT_CLOCK
	CLR	T2MSRAM
	BSET	TIME_2MS		;设定2MS标志
		
	INCMS	T10MSRAM		;ms+1
	MOV	A,#2d			;计尽得10ms
	SUB	A,T10MSRAM
	BTS0	FC
	JMP	OUT_CLOCK
	CLR	T10MSRAM
	BSET	TIME_10MS		;设定10MS标志
	
		
	INCMS	T100MSRAM
	MOV	A,#12D
	SUB	A,T100MSRAM
	BTS0	FC
	JMP	OUT_CLOCK
	BSET	TIME_100MS		;设定100MS标志
	CLR	T100MSRAM
		

OUT_CLOCK:

	;============做完程序还原所有状态

	SWAP		PFLAG_TEMP
	MOV		PFLAG,A
	MOV		A,A_TEMP
T004:
	RETI
		
;================================计时中断完成了


;===========================读键程序
READKEY:

	
	BTS1	TIME_10MSF
	JMP	OUT_READKEY
	BTS0	BCUTKEY
	JMP	OUT_READKEY	
	MOV 	A, #40H
	B0MOV 	ADR, A	 ;选择12位AD,8分频转换时钟
	MOV 	A,#95H
	B0MOV 	ADM,A 	;允许AD转换,选择AIN5通道
	B0BSET	FADS 	;开始转换
WADC0:
	B0BTS1 	FEOC 	
	JMP 	WADC0 	;等待转换完成
	BCLR	FEOC	;完成后就清除完成标志			
	MOV	A,ADB
	MOV	AD1,A

;	BTS0	BFTIME	;检测是否过了2秒
;	JMP	NEXT_KEY3
	BTS0	BPOWERKEY1
	JMP	OUT_READKEY1



	
;	MOV	A,#19D
;	CMPRS	A,AD1
;	JMP	OUT_READKEY1

	MOV	A,#16D
	MOV	AD2,A
	MOV	A,#22D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	OUT_READKEY1
	INCMS	KEY1
	MOV	A,#5D
	CMPRS	A,KEY1
	JMP	OUT_READKEY
	CLR	KEY1
	BSET	B1DI
	BSET	BPOWERKEY1
	BSET	BPOWERKEY
	BCLR	BSTOPKEY
	BCLR	BHEATKEY
	BCLR	BDRYKEY
	BCLR	BCLEARKEY
	BCLR	BAUTOKEY60
	CLR	ATIME
	BCLR	BO2
	BCLR	BFAN
	BCLR	BHEAT
	BCLR	BPOWLEDOFF
	
	BCLR	BDIDIDI

	BCLR	B2S

	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	BTIMEKEYOK

	BCLR	BAUTO60RUN
	BCLR	BCLEARRUN
	BCLR	BDRYRUN
	BCLR	BHEATRUN

	BCLR	BTIMEKEYOK
	BCLR	BTIMEKEYCOME
	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0	;P1.0

	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF


	CLR	CTIME
	CLR	CTIME1
	CLR	ATIME

	CLR	S1


	JMP	OUT_READKEY
OUT_READKEY1:
	CLR	KEY1	;抗干扰
	
	BTS0	BAUTO60RUN
	JMP	NEXT_KEYX	

	BTS0	BAUTOKEY60
	JMP	NEXT_KEYX	

;	MOV	A,#10D
;	CMPRS	A,AD1
;	JMP	NEXT_KEYX


	MOV	A,#7D
	MOV	AD2,A
	MOV	A,#13D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	NEXT_KEYX



	INCMS	KEY2
	MOV	A,#5D
	CMPRS	A,KEY2
	JMP	NEXT_KEY
	CLR	KEY2
	BSET	B1DI
	BSET	BAUTOKEY60
	BCLR	BPOWERKEY1
	BCLR	BCLEARKEY
	BCLR	BHEATKEY
	BCLR	BDRYKEY
	BCLR	BSETTIME


	BCLR	BDIDIDI


	BSET	BPOWERKEY


	BSET	BAUTO60RUN
	BCLR	BCLEARRUN
	BCLR	BDRYRUN
	BCLR	BHEATRUN

	BCLR	BPOWLEDOFF

	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF



	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0	;P1.0

	BCLR	BTIMEKEYOK
	BCLR	BTIMEKEYCOME
	BSET	B2S
	CLR	S1

	MOV	A,#60D
	MOV	ATIME,A
	CLR	CTIME
	CLR	CTIME1
	CLR	CTIME2
	BSET	BO2
	BSET	BHEAT
	BCLR	BFAN


	BCLR	BDIDIDI
	JMP	OUT_READKEY
NEXT_KEYX:
	CLR	KEY2
NEXT_KEY:

	BTS0	BCLEARRUN
	JMP	NEXT_KEY1X	
	BTS0	BCLEARKEY
	JMP	NEXT_KEY1X



;	MOV	A,#51D
;	CMPRS	A,AD1
;	JMP	NEXT_KEY1X

	MOV	A,#48D
	MOV	AD2,A
	MOV	A,#54D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	NEXT_KEY1X





	INCMS	KEY3
	MOV	A,#5D
	CMPRS	A,KEY3
	JMP	NEXT_KEY1
	CLR	KEY3
	BSET	B1DI
	BSET	BSETTIME
	BSET	BCLEARKEY
	BCLR	BHEATKEY
	BCLR	BDRYKEY
	BCLR	BAUTOKEY60
	BCLR	BPOWERKEY1

	BSET	B2S
	CLR	S1
	BCLR	BDIDIDI

	BCLR	BAUTO60RUN
	BSET	BCLEARRUN
	BCLR	BDRYRUN
	BCLR	BHEATRUN

	BCLR	BPOWLEDOFF

	BSET	BPOWERKEY
	BCLR	BTIMEKEYCOME
	BCLR	BTIMEKEYOK
	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0	;P1.0


	MOV	A,#45D
	MOV	CTIME,A
	CLR	ATIME
	CLR	CTIME1
	CLR	CTIME2


	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF


	BSET	BO2
	BCLR	BHEAT
	BCLR	BFAN

	JMP	OUT_READKEY
NEXT_KEY1X:
	CLR	KEY3
NEXT_KEY1:

	BTS0	BDRYRUN
	JMP	NEXT_KEY2X	

	BTS0	BDRYKEY
	JMP	NEXT_KEY2X


;	MOV	A,#44D
;	CMPRS	A,AD1
;	JMP	NEXT_KEY2X


	MOV	A,#41D
	MOV	AD2,A
	MOV	A,#47D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	NEXT_KEY2X



	INCMS	KEY4
	MOV	A,#5D
	CMPRS	A,KEY4
	JMP	NEXT_KEY2
	CLR	KEY4
	BSET	B1DI
	BSET	BSETTIME
	BCLR	BCLEARKEY
	BCLR	BHEATKEY
	BSET	BDRYKEY
	BCLR	BAUTOKEY60
	BCLR	BPOWERKEY1
	BCLR	BDIDIDI

	BCLR	BAUTO60RUN
	BCLR	BCLEARRUN
	BSET	BDRYRUN
	BCLR	BHEATRUN

	BCLR	BPOWLEDOFF

	BSET	B2S
	CLR	S1


	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF

	BCLR	BTIMEKEYOK
	BSET	BPOWERKEY

	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	BTIMEKEYCOME

	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0	;P1.0

	MOV	A,#30D
	MOV	CTIME1,A
	CLR	CTIME
	CLR	ATIME
	CLR	CTIME2

	BCLR	BO2
	BCLR	BHEAT
	BSET	BFAN


	JMP	OUT_READKEY
NEXT_KEY2X:
	CLR	KEY4	
NEXT_KEY2:

	BTS0	BHEATRUN
	JMP	NEXT_KEY3X

	BTS0	BHEATKEY
	JMP	NEXT_KEY3X


;	MOV	A,#36D
;	CMPRS	A,AD1
;	JMP	NEXT_KEY3X

	MOV	A,#33D
	MOV	AD2,A
	MOV	A,#39D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	NEXT_KEY3X





	INCMS	KEY5
	MOV	A,#5D
	CMPRS	A,KEY5
	JMP	NEXT_KEY3
	CLR	KEY5
	BSET	B1DI
	BSET	BSETTIME
	BCLR	BDRYKEY
	BSET	BHEATKEY
	BCLR	BCLEARKEY
	BCLR	BAUTOKEY60
	BCLR	BPOWERKEY1

	BSET	B2S
	CLR	S1

	MOV	A,#30D
	MOV	CTIME2,A
	BCLR	BDIDIDI
	CLR	CTIME
	CLR	CTIME1
	CLR	ATIME

	BCLR	BO2
	BSET	BHEAT
	BCLR	BFAN

	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF



	BSET	BPOWERKEY

	BCLR	BPOWLEDOFF

	BCLR	BAUTO60RUN
	BCLR	BCLEARRUN
	BCLR	BDRYRUN
	BSET	BHEATRUN

	BCLR	BTIMEKEYOK


	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0

	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	BTIMEKEYCOME

	JMP	OUT_READKEY


NEXT_KEY3X:
	CLR	KEY5	
NEXT_KEY3:
	BTS0	BPOWLEDOFF
	JMP	OUT_READKEY
	BTS0	BSTOPKEY
	JMP	NEXT_KEY4

;	MOV	A,#28D
;	CMPRS	A,AD1
;	JMP	NEXT_KEY4


	MOV	A,#25D
	MOV	AD2,A
	MOV	A,#31D
	MOV	AD3,A
	CALL	READAD
	BTS1	BREADOK
	JMP	NEXT_KEY4



	INCMS	KEY6
	MOV	A,#5D
	CMPRS	A,KEY6
	JMP	OUT_READKEY
	CLR	KEY6
	BSET	B1DI
	BCLR	BHEATKEY
	BCLR	BDRYKEY
	BCLR	BCLEARKEY
	BSET	BSTOPKEY
	BCLR	BPOWERKEY
	BCLR	BSETTIME
	BCLR	BPOWERKEY1
	BSET	BPOWLEDOFF
	CLR	W1
	CLR	W2
	BCLR	BFTIME

	BCLR	BHEATF
	BCLR	BO2F
	BCLR	BFANF



	BCLR	BAUTO60RUN
	BCLR	BCLEARRUN
	BCLR	BDRYRUN
	BCLR	BHEATRUN



	BCLR	BTIMEKEYOK

	BCLR	P4.3
	BCLR	P4.2
	BCLR	P4.0	;P1.0
	BCLR	BDIDIDI
	
	BCLR	BTIMEKEYCOME
	BSET	BOFF
	BSET	BOFF1
	BSET	B2S
	CLR	S1


	JMP	OUT_READKEY
NEXT_KEY4:
	CLR	KEY6	
OUT_READKEY:

	RET
;===========================读键程序完成


;===========================读数码时间键
READTIMEKEY:

	BTS0	BFTIME
	JMP	OUT_READKEY	
	BTS1	TIME_10MSF
	JMP	OUT_READKEY
	BTS1	BSETTIME
	JMP	OUT_READKEYX
	BTS0	BTIMEKEYOK
	JMP	READTIMEKEY88
	BTS0	P0.0;//!P0.0
	JMP	TIMEKEY_OK
	INCMS	KEY8
	MOV	A,#15D
	CMPRS	A,KEY8
	JMP	OUT_READKEYX	
	CLR	KEY8
	BSET	BTIMEKEYCOME
	JMP	OUT_READKEYX	
TIMEKEY_OK:
	BTS0	BTIMEKEYCOME
	JMP	TIMEKEY_OK1
	BCLR	BTIMEKEYCOME
	CLR	KEY8
	JMP	OUT_READKEYX
TIMEKEY_OK1:
	BSET	BTIMEKEYOK
	CLR	S1
	BSET	B1DI
	JMP	OUT_READKEYX
READTIMEKEY88:
	BTS0	P0.1
	JMP	SETP01	
	BCLR	BP01
	JMP	READP02
SETP01:
	BSET	BP01
READP02:
	BTS0	P0.0;//!P0.0
	JMP	SETP02	
	BCLR	BP02
	JMP	READP
SETP02:
	BSET	BP02					
READP:

	BTS1	BP02
	JMP	READPP
	BTS1	BP01
	JMP	READPP
	JMP	READPP1
READPP:
	BTS0	BTIMEOK
	JMP	OUT_READKEYX
	BSET	BTIMEOK
	MOV	A,TIMEKEY
	MOV	TIMEKEY2,A
	JMP	OUT_READKEYX
READPP1:
	BCLR	BTIMEOK
	MOV	A,TIMEKEY2
	AND	A,#03H	;保存TIMEKEY2的最后两位
	CMPRS	A,#02D
	JMP	NEXT_READPP
	CLR	TIMEKEY2
	BSET	BJIAKEY

	CLR	S1
	;**************CTIME1,CTIME和HTIME处理程序

	BTS1	BCLEARKEY
	JMP	A_TIME
	MOV	A,#65D
	CMPRS	A,CTIME
	JMP	A_TIME1
	JMP	OUT_READKEY;如果HTIME没超过65就可以继续加,要不就停止.
A_TIME1:
	MOV	A,#10D
	ADD	CTIME,A	   ;每按一次加号,HTIME加10MIN	
	JMP	OUT_READKEY
A_TIME:
	BTS1	BDRYKEY
	JMP	A_TIME_1
	MOV	A,#40D
	CMPRS	A,CTIME1
	JMP	A_TIME2
	JMP	OUT_READKEY;如果HTIME没超过40就可以继续加,要不就停止.	
A_TIME2:
	MOV	A,#10D
	ADD	CTIME1,A		;每按一次加号,CTIME加10MIN	
	JMP	OUT_READKEY

A_TIME_1:
	BTS1	BHEATKEY
	JMP	OUT_READKEY
	MOV	A,#60D
	CMPRS	A,CTIME2
	JMP	A_TIME2_1
	JMP	OUT_READKEY	
A_TIME2_1:
	MOV	A,#10D
	ADD	CTIME2,A
	JMP	OUT_READKEY	

	;**************CTIME1,CTIME和HTIME处理程序
;	INCMS	R9
	JMP	OUT_READKEYX
NEXT_READPP:	
	MOV	A,TIMEKEY2
	AND	A,#03H		;保存TIMEKEY2的最后两位
	CMPRS	A,#01D
	JMP	OUT_READKEYX1
	CLR	TIMEKEY2
	BSET	BJINKEY
	CLR	S1

	;**************CTIME,CTIME1,CTIME2处理程序
	BTS1	BCLEARKEY
	JMP	A_TIME3
	MOV	A,#35D
	CMPRS	A,CTIME
	JMP	A_TIME4
	JMP	OUT_READKEY;如果CTIME没低于35就可以继续减,要不就停止.
A_TIME4:
	MOV	A,CTIME
	SUB	A,#10D
	MOV	CTIME,A	   ;每按一次减号,CTIME减10MIN	
	JMP	OUT_READKEY
A_TIME3:
	BTS1	BDRYKEY
	JMP	A_TIME3_1
	MOV	A,#20D
	CMPRS	A,CTIME1
	JMP	A_TIME5
	JMP	OUT_READKEY;如果CTIME1没低于20就可以继续减,要不就停止.	
A_TIME5:
	MOV	A,CTIME1
	SUB	A,#10D
	MOV	CTIME1,A	   ;每按一次减号,CTIME减10MIN	
	JMP	OUT_READKEY
A_TIME3_1:
	BTS1	BHEATKEY
	JMP	OUT_READKEY
	MOV	A,#20D
	CMPRS	A,CTIME2
	JMP	A_TIME5_1
	JMP	OUT_READKEY
A_TIME5_1:
	MOV	A,CTIME2
	SUB	A,#10D
	MOV	CTIME2,A
	JMP	OUT_READKEY		

	;**************CTIME,CTIME1,CTIME2处理程序


	JMP	OUT_READKEYX	
OUT_READKEYX1:
	CLR	TIMEKEY2		

OUT_READKEYX:

RET

;===========================读数码时间键完成





;====================读键子程序

READAD:
	MOV	A,AD1
	SUB	A,AD2
	BTS1	FC
	JMP	READAD1
	MOV	A,AD1
	SUB	A,AD3
	BTS0	FC
	JMP	READAD1	
	BSET	BREADOK
	RET
READAD1:
	BCLR	BREADOK
	RET




;====================读键子程序完成



;===============读蜂鸣器程序
BUZ:
	BTS1	TIME_10MSF
	JMP	OUT_BUZ
	
	BTS1	BOFF
	JMP	NEXTBUZ_1
	BSET	BCUTKEY		;当有关机信号时不能按键,防止蜂鸣器报警出错.
	BTS0	B1DI		;假如还有其他报警信号就不开关机蜂鸣
	JMP	NEXTBUZ_1A
	JMP	CLR_RAM1
NEXTBUZ_1:
	BTS1	BDONE		;工作完成后六声报警.
	JMP	NEXTBUZ_1A
	INCMS	B3
	MOV	A,#200D
	CMPRS	A,B3
	JMP	NEXTBUZ_1A
	BSET	B1DI
	CLR	B3
	INCMS	B4
	MOV	A,#6D
	CMPRS	A,B4
	JMP	NEXTBUZ_1A
	CLR	B4
	BCLR	BDONE
	BSET	BOFF2
;=========================清除所有内存,进入待机状态.

CLR_RAM1:
	BCLR	P4.0
	BCLR	P4.2
	BCLR	P4.3	
	                         
	MOV	 A, #0
	B0MOV 	 Y, A      	; Y = 1, bank 1
	MOV	 A, #07CH
	B0MOV	 Z, A 		; Y = 2FH, 最后的内存地址
CLR_YZ_BUF1:
	@RST_WDT		;清看门狗
	CLR	 @YZ 		; 清@YZ
	DECMS	 Z 		; Y – 1, if Y= 0, finish the routine
	JMP	 CLR_YZ_BUF1	; Not zero
	CLR	 @YZ
END_CLR1: 
	BTS1	BOFF1
	JMP	NEXT_OFF
	BCLR	BOFF1
	BCLR	BPOWERKEY	;关机
	JMP	OUT_BUZ
NEXT_OFF:
	BTS1	BOFF2
	JMP	OUT_BUZ	
	BCLR	BOFF2
	BSET	BPOWLEDOFF



	JMP	OUT_BUZ
;================;清除所有内存完成
	

NEXTBUZ_1A:
	BTS1	BDIDIDI
	JMP	NEXTBUZ_2
	INCMS	B5
	MOV	A,#180D
	CMPRS	A,B5
	JMP	NEXTBUZ_2
	CLR	B5
	BSET	B1DI
NEXTBUZ_2:	

	BTS1	B2DI
	JMP	NEXTBUZ_3
	BTS0	BFIR1
	JMP	NEXTBUZ_21
	BSET	BFIR1
	MOV	A,#04D
	MOV	B8,A
	BSET	B1DI
	BSET	P4.7	
NEXTBUZ_21:	
	INCMS	B5
	MOV	A,#180D
	CMPRS	A,B5
	JMP	NEXTBUZ_3
	CLR	B5
	BSET	B1DI
	MOV	A,#03D
	MOV	B8,A
	BSET	P4.7
	BCLR	B2DI

NEXTBUZ_3:
	
	BTS1	B1DI
	JMP	OUT_BUZ
	BSET	BRUNBUZ
	INCMS	B2
	MOV	A,#50D
	CMPRS	A,B2
	JMP	OUT_BUZ
	CLR	B2
	BCLR	P4.7
	INCMS	B9
	MOV	A,#2D
	CMPRS	A,B9
	JMP	OUT_BUZ
	CLR	B9
	BCLR	BRUNBUZ
	BCLR	B1DI
	BSET	P4.7


	MOV	A,#00000000B
	B0MOV	DAM,A
	B0BSET	FDAENB

	B0BCLR	FDAENB	;以免长期高电瓶.

	JMP	OUT_BUZ


	
OUT_BUZ:
	RET

;===============读蜂鸣器程序完成





;=============LED显示程序
LED:
	BTS1	TIME_2MSF
	JMP	OUT_LED
	
	BCLR	P2.0
	BCLR	P2.1
	BCLR	P2.2
	BCLR	P2.3
	BCLR	P2.4
	BCLR	P5.6
	BTS0	BDONE
	JMP	OUT_LED
	BTS0	BOFF
	JMP	OUT_LED
	MOV	A,U1
	ADD	PCL,A
	JMP	GOON_LED
	JMP	GOON_LED1
	JMP	GOON_LED2
	JMP	GOON_LED3
	JMP	GOON_LED5
GOON_LED:
	INCMS	U1
	B0MOV	Y,#TAB1$M
	B0MOV	Z,#TAB1$L
	MOV	A,#0D
	CMPRS	A,ATIME
	JMP	GOON_LED_1
	CMPRS	A,CTIME	
	JMP	GOON_LED_2
	CMPRS	A,CTIME1
	JMP	GOON_LED_3
	CMPRS	A,CTIME2	
	JMP	GOON_LED_4
	INCMS	U1	;在没按键时候屏蔽时钟
	JMP	OUT_LED
GOON_LED_4:
	MOV	A,CTIME2	
	JMP	GOON_LEDGO1
GOON_LED_3:
	MOV	A,CTIME1	
	JMP	GOON_LEDGO1	

⌨️ 快捷键说明

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