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

📄 vfd_isr.asm

📁 AVR单片机基础程序实例! 十个程序源代码。
💻 ASM
字号:


#define	PO_VFD_SID	PORTB,2
#define	PO_VFD_CLKD	PORTB,1
#define	PO_VFD_BKG	PORTE,6
#define	PO_VFD_BKD	PORTB,0
#define	PO_VFD_LAT	PORTE,5
#define	PO_VFD_CLKG	PORTE,7



#include <iom64.h>
	library	SendData2VFD
	public	VFD_isr
	extern	VFD_Counter,Display_Memory,Display_Buffer,VFD_Flag,Display_Point,MoveCounter

	rseg	CODE


VFD_isr:sbi PO_VFD_BKG
        repti	sav,r27,r26,r25,r24
		st	-Y,	sav
		endr

		ldi	r24,	0
		out	SPCR,	r24
		lds	r24,	VFD_Counter
		andi	r24,	63
        ldi	r25,	1
		and	r25,	r24
		breq	DownBKD
		sbi	PO_VFD_BKD
		rjmp	EndSetBKD
DownBKD:	cbi	PO_VFD_BKD
EndSetBKD:	
		cpi	r24,	2
		brsh	DownSID
		sbi	PO_VFD_SID
		rjmp	EndSetSID
DownSID:	cbi	PO_VFD_SID
EndSetSID:	cpi	r24,	0
		brne	GetVFDPiont
		ldi	r27,	high Display_Memory
		ldi	r26,	low Display_Memory
		rjmp	EndGetPoint
GetVFDPiont:	lds	r27,	Display_Point+1
		lds	r26,	Display_Point
EndGetPoint:	sbi	PO_VFD_LAT
		cbi	PO_VFD_CLKG
		cbi	PO_VFD_LAT
		sbi	PO_VFD_CLKG
		
		inc	r24
		sts	VFD_Counter,r24

		ldi	r24,	0x5c
		out	SPCR,	r24

        ldi r25,16
        dec r25
        brne    $-2

		
		cbi	PO_VFD_BKG

		ldi	r24,	7

		ld	r25,	X+
		sbi	SPSR,	SPI2X
		out	SPDR,	r25
		
SPILoop:	ld	r25,	X+
WaitSPI:	sbis	SPSR,	SPIF
		rjmp	WaitSPI
		out	SPDR,	r25
		dec	r24
		brne	SPILoop

		sts Display_Point+1,r27
	       	sts Display_Point,r26
       		lds	r25,	MoveCounter
       		dec	r25
       		cpi	r25,	4
       		brlo	MoveAble
            andi    r25,    63
	       	sts	MoveCounter,r25
	       	rjmp	EndVFDISR

MoveAble:	lds	r24,	VFD_Flag
		sbrc	r24,	7
		rjmp	EndVFDISR
		sts	MoveCounter,r25
		ldi	r24,	3
		sub	r24,	r25
		st	-Y,	r30
		st	-Y,	r31
		
		
		ldi	r25,	0
		ror	r24
		ror	r24
		rol	r25
		ldi	r27,	high Display_Memory
		ldi	r26,	low Display_Memory
		ldi	r31,	high Display_Buffer
		ldi	r30,	low Display_Buffer
		add	r26,	r24
		adc	r27,	r25
		add	r30,	r24
		adc	r31,	r25
MoveLoop:	ld	r25,	Z+
		st	X+,	r25
		dec	r24
		brne	MoveLoop
		ld	r31,	Y+
		ld	r30,	Y+
EndVFDISR:	repti	load,r24,r25,r26,r27
		ld	load,	Y+
		endr
        ret
endmod

end


⌨️ 快捷键说明

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