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

📄 vfd.asm

📁 家用消毒柜 家用消毒柜 家用消毒柜
💻 ASM
📖 第 1 页 / 共 2 页
字号:
Readkeyend01:		
	mov	a,#0x08
	b0mov	counter,a
Readkeyend02:
	rrcm	databuffer
	b0bts0	FC
	incms	counter1		;keycounter
	nop
	decms	counter
	jmp	Readkeyend02
	b0mov	a,counter1		;keycounter
	cmprs	a,#0x01
	jmp	Readkeyend06
	b0mov	a,keybuffer
	cmprs	a,keybuffercopy
	jmp	Readkeyend04	
	b0bts0	KMINUTE
	jmp	Readkeyend03
	b0bts1	KHOUR
	jmp	Readkeyend07
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	
Readkeyend07:		
	mov	a,#100
	b0mov	keytime,a
	b0bclr	F_KEY
	b0bclr	F_NO_TONE
Interruptend:
	clr	INTRQ
        b0xch  	a,pflagbuffer
        b0xch  	a,PFLAG
        b0xch  	a,accbuffer	
	reti
	
;\\\\\\\\\\\
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
;\\\\\\\\\\
Toseg:
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
	b0mov	a,bufferH
	add	Z,a
	movc
	b0mov	bufferH,a
	b0mov	Y,#Segtable$M
	b0mov	Z,#Segtable$L
	b0mov	a,bufferL
	add	Z,a
	movc	
	b0mov	bufferL,a
	ret
;\\\\\\\\\\\\\	
;*******************	
Pt6312writ:
	b0mov	databuffer,a
	mov	a,#0x08	
	b0mov	counter,a
Pt6312writ1:		
	b0bclr	CLK
	b0bclr	DI
	rrcm	databuffer
	b0bts0	FC
	b0bset	DI
	nop
	nop
	b0bset	CLK
	nop
	nop
	decms	counter
	jmp	Pt6312writ1
	nop
	nop
	ret     
;*******************
;********************
Pt6312read:
	mov	a,#0x08
	b0mov	counter,a
Pt6312read1:
	b0bclr	CLK
	nop
	nop
	nop
	b0bclr	FC
	b0bts0	DO
	b0bset	FC
	rrcm	databuffer
	b0bset	CLK
	nop
	nop
	decms	counter
	jmp	Pt6312read1	       
	ret
;**************
;**********************
Clrstatus:
	b0bclr	F_ON_OFF
	b0bclr	F_FINISH
	mov	a,#0
	b0mov	ledbuffer,a
Clrstatus01:
	clr	flag1
	clr	fantime
	clr	stertime
	clr	flag4
	b0bclr	DRY
	b0bclr	STER
	b0bclr	FAN
	ret
;\\\\\\\\
Sum:
	b0mov	a,00h
	add	a,01h
	add	a,02h
	add	a,03h
	add	a,04h
	add	a,05h
	add	a,06h
	add	a,07h
	b0mov	databuffer,a
	ret	
;*****************
Start:
	clr	OSCM
	clr	PFLAG
	mov	a,#00000111b
	b0mov	P1M,a
	mov	a,#01101111b
	b0mov	P2M,a
	mov	a,#0xff
	b0mov	PUR,a
	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
Init:
	clr	Y
	clr	Z
Init01: 
	mov	a,#0
	b0mov	@YZ,a
	incms	Z
	mov	a,#0x2f
	cmprs	a,Z
	jmp	Init01
	b0bset	TONE_ENABLE
	jmp	Init02
Verify04:	
	b0mov	a,portacopy
	b0mov	P1,a
	b0mov	a,portbcopy
	b0mov	P2,a
Init02:
	mov	a,#0xb0		;1:32
	b0mov	TC0M,a
	mov	a,#131	;0x56
	b0mov	TC0C,a
	b0bset	FTC0IEN
	b0bset	FGIE
	clr	INTRQ
Main:
	b0bset	FWDRST
	call	Sum
	b0mov	a,databuffer
	b0mov	sumbuffer,a
	b0mov	a,P1
	b0mov	portacopy,a
	b0mov	a,P2
	b0mov	portbcopy,a
	
	b0bts1	F_FINISH
	jmp	Full6312buffer
	call	Clrstatus
	jmp	Keyactive01
Full6312buffer:
	b0bts1	F_DISPLAY
	jmp	main00
	b0bclr	F_DISPLAY
	mov	a,#00000001b		;5g/16s
	b0bclr	STB
	call	Pt6312writ
	b0bset	STB	
	mov	a,#01000000b		;set display buffer mode
	b0bclr	STB
	call	Pt6312writ
	b0bset	STB
	mov	a,#11000000b
	b0bclr	STB
	call	Pt6312writ		;set address
	mov	a,#0x00
	call	Pt6312writ		;set data
	mov	a,#0x00
	call	Pt6312writ		;set data
Full6312buffer01:		
	b0mov	a,displaybuffer2
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer3
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer4
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer5
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer6
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer7
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer8
	call	Pt6312writ		;set data
	b0mov	a,displaybuffer9
	call	Pt6312writ		;set data
	b0bset	STB
	mov	a,#10001111B		;sets display contorl(command 4)
	b0bclr	STB
	call	Pt6312writ
	b0bset	STB	
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
	b0mov	a,flag2
	b0mov	ledbuffer,a
	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
	jmp	Keyactive01
Poweractive01:
	b0bset	F_ON_OFF
	jmp	Ster90active
;***********	
Dry30active:
	b0bts0	F_STER
	jmp	Dry30active03
Dry30active01:
	clr	flag2
	b0bset	F_DRY30
	b0mov	a,flag2
	b0mov	ledbuffer,a
	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:
	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	flashtime
	jmp	Keyactive01	
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Ster90active:
	mov	a,#60
	b0mov	Dminute_Dry,a
	clr	flag2
	b0bset	F_STER90
	b0mov	a,flag2
	b0mov	ledbuffer,a
	call	Clrstatus01	
	mov	a,#90
	jmp	Ster45active01
;\\\\\\\\\\\\\\\\\\\\\\\\\\\	
Ster45active:
	mov	a,#60
	b0mov	Dminute_Dry,a
	clr	flag2
	b0bset	F_STER45
	b0mov	a,flag2
	b0mov	ledbuffer,a
	call	Clrstatus01	
	mov	a,#45
Ster45active01:	
	b0bset	F_STER
	b0bset	STER
	clr	ozone
	jmp	Keyactive
;\\\\\\\\\\\\
AdjDisplay:
	b0bts1	F_STER90
	jmp	AdjDisplay01
	mov	a,Dminute
	sub	a,#45
	b0bts0	FC
	ret
	b0bclr	F_STER90
	b0bset	F_STER45
	b0mov	a,flag2
	b0mov	ledbuffer,a
	ret
AdjDisplay01:
	b0bts1	F_DRY60
	ret
	mov	a,Dminute
	sub	a,#30
	b0bts0	FC
	ret
	b0bclr	F_DRY60
	b0bset	F_Dry30
	b0mov	a,flag2
	b0mov	ledbuffer,a
	ret		
	
;\\\\\\\\\\\\\\\\\\\\\\\\\
StertableH:		;x2345678	
	dw	0xff00	;00000000b	;
	dw	0xff40	;01000000b	;s2
	dw	0xff48	;01001000b	;s2,s5
	dw	0xff49	;01001001b	;s2,s5,s8
	dw	0xff00	;00000000b	;
	dw	0xff20	;00100000b	;s3
	dw	0xff24	;00100100b	;s3,s6
	dw	0xff00	;00000000b	;
	dw	0xff10	;00010000b	;s4
	dw	0xff12	;00010010b	;s4,s7
StertableL:
	dw	0xff10	;00010000b	;1
	dw	0xff18	;00011000b	;2b2
	dw	0xff1c	;00011100b	;3b3
	dw	0xff1e	;00011110b	;4b4
	dw	0xff1f	;00011111b	;5b5


Segtable:
;		  XDECGFBA
	dw	0xffee	;01110111b	;0
	dw	0xff48	;00010010b	;1
	dw	0xffd6	;01101011b	;2
	dw	0xffda	;01011011b	;3
	dw	0xff78	;00011110b	;4
	dw	0xffba	;01011101b	;5
	dw	0xffbe	;01111101b	;6
	dw	0xffe8	;00010111b	;7
	dw	0xfffe	;01111111b	;8
	dw	0xfffa	;01011111b	;9
Stertable:
			;x1234567	
	dw	0xff00	;00000000b	;
	dw	0xff08	;00001000b	;s4
	dw	0xff18	;00011000b	;s4,s3
	dw	0xff1c	;00011100b	;s4,s3,s5
	dw	0xff3c	;00111100b	;s4,s3,s5,s2
	dw	0xff3e	;00111110b	;s4,s3,s5,s2,s6
	dw	0xff7e	;01111110b	;s4,s3,s5,s2,s6,s1
	dw	0xff7f	;01111111b	;s4,s3,s5,s2,s6,s1,s7
;;*******
	endp		

⌨️ 快捷键说明

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