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

📄 vfd.asm

📁 一个sonix单片机开发的电磁炉程序,经过调试
💻 ASM
📖 第 1 页 / 共 2 页
字号:
Readkeyend01:			mov	a,#0x08	b0mov	counter,aReadkeyend02:	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	Readkeyend07Readkeyend03:	b0mov	a,keytime	cmprs	a,#0	jmp	Interruptend	b0bset	F_NO_TONE	mov	a,#40	jmp	Readkeyend05Readkeyend04:	b0mov	a,keybuffer	b0mov	keybuffercopy,a			b0bclr	F_NO_TONE	mov	a,#100Readkeyend05:	b0mov	keytime,a	b0bset	F_KEY	jmp	InterruptendReadkeyend06:	b0mov	a,keybuffer	b0mov	keybuffercopy,a	Readkeyend07:			mov	a,#100	b0mov	keytime,a	b0bclr	F_KEY	b0bclr	F_NO_TONEInterruptend:	clr	INTRQ        b0xch  	a,pflagbuffer        b0xch  	a,PFLAG        b0xch  	a,accbuffer		reti	;\\\\\\\\\\\Tobcd:	b0mov	bufferL,a	clr	bufferHH	clr	bufferHTobcd01:		b0mov	a,bufferL	sub	a,#10	b0bts1	FC	jmp	Tobcd02	b0mov	bufferL,a	incms	bufferH	jmp	Tobcd01Tobcd02:	add	a,#10	b0mov	bufferL,aTobcd03:		b0mov	a,bufferH	sub	a,#10	b0bts1	FC	jmp	Tobcd04	b0mov	bufferH,a	incms	bufferHH	jmp	Tobcd03Tobcd04:	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,aPt6312writ1:			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,aPt6312read1:	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,aClrstatus01:	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	ZVerify02:	b0mov	a,@YZ	cmprs	a,#0x00	jmp	Verify04	incms	Z	nop	decms	counter	jmp	Verify02Verify03:	clr	P1	clr	P2Init:	clr	Y	clr	ZInit01: 	mov	a,#0	b0mov	@YZ,a	incms	Z	mov	a,#0x2f	cmprs	a,Z	jmp	Init01	b0bset	TONE_ENABLE	jmp	Init02Verify04:		b0mov	a,portacopy	b0mov	P1,a	b0mov	a,portbcopy	b0mov	P2,aInit02:	mov	a,#0xb0		;1:32	b0mov	TC0M,a	mov	a,#131	;0x56	b0mov	TC0C,a	b0bset	FTC0IEN	b0bset	FGIE	clr	INTRQMain:	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	Keyactive01Full6312buffer:	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 dataFull6312buffer01:			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	Dry30active02Dry60active02:	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	Keyactive01Dry60active04:	clr	flag4	b0bts1	F_MINUTE	jmp	Dry60active01	b0bclr	F_MINUTE	jmp	Keyactive01;\\\\\\\\\\\\\\\\\\\\\\\\\\\		;********************Poweractive:	b0bts1	F_ON_OFF	jmp	Poweractive01	call	Clrstatus	jmp	Keyactive01Poweractive01:	b0bset	F_ON_OFF	jmp	Ster90active;***********	Dry30active:	b0bts0	F_STER	jmp	Dry30active03Dry30active01:	clr	flag2	b0bset	F_DRY30	b0mov	a,flag2	b0mov	ledbuffer,a	call	Clrstatus01	mov	a,#30	b0bset	FAN	b0bset	F_FANDry30active02:		b0bset	F_DRY	b0bset	DRY	;\\\\\\\\\\\\\\\\\\\\\\\\\\\	Keyactive:	b0mov	Dminute,a		clr	DsecondKeyactive01:		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	Dry60active03Dry30active04:	clr	flag4	b0bts1	F_MINUTE	jmp	Dry30active01	b0bclr	F_MINUTE	jmp	Keyactive01;\\\\\\\\\\\\\\\\\\\\\\\\\\\	Lightactive:	b0bts0	F_LIGHT	jmp	Lightactive01	b0bset	F_LIGHT	b0bset	LIGHT	jmp	Keyactive01Lightactive01:		b0bclr	F_LIGHT	b0bclr	LIGHT	jmp	Keyactive01;\\\\\\\\\\\\\\\\\\\\\\\\\\\Houractive:	b0bts0	F_ON_OFF	jmp	Houractive02Houractive01:		incms	hour	nop	b0mov	a,hour	sub	a,#12	b0bts0	FC	clr	hour	jmp	Keyactive01Houractive02:	mov	a,#0x05	b0mov	delaybuffer,a	b0bts0	F_DELAY	jmp	Houractive01		b0bset	F_DELAY	jmp	Keyactive01;\\\\\\\\\\\\\\\\\\\\\\\\\\\	Minuteactive:	b0bts0	F_ON_OFF	jmp	Minuteactive02Minuteactive01:		incms	minute	nop	b0mov	a,minute	sub	a,#60	b0bts0	FC	clr	minute		jmp	Keyactive01Minuteactive02:	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	MainDry30_time:	b0mov	a,Dminute	sub	a,#60	b0bts1	FC	jmp	Keyactive01	mov	a,#30	jmp	KeyactiveDry60_time:	b0mov	a,Dminute	sub	a,#121	b0bts1	FC	jmp	Keyactive01	mov	a,#60	jmp	KeyactiveSter45_time:	b0mov	a,Dminute	sub	a,#90	b0bts1	FC	jmp	Keyactive01	mov	a,#45	jmp	KeyactiveSter90_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_ster01Dry60_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,aDry60_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,#45Ster45active01:		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	retAdjDisplay01:	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,s7StertableL:	dw	0xff10	;00010000b	;1	dw	0xff18	;00011000b	;2b2	dw	0xff1c	;00011100b	;3b3	dw	0xff1e	;00011110b	;4b4	dw	0xff1f	;00011111b	;5b5Segtable:;		  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	;9Stertable:			;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 + -