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

📄 timer.asm

📁 一个用LF2407A开发定时器的源码,可以用于其他的模块化设计。
💻 ASM
字号:
;****************	timer.asm	**********************

		.include	"f2407.h"
		.include	"vector.h"
		
KICK_DOG	.macro
		LDP	#00E0h
		SPLK	#05555h,WDKEY
		SPLK	#0AAAAh,WDKEY
		LDP	#0h
		.endm
		
		.bss	TEMP,1
		.bss	TEMPA3,1
		.bss	TEMPC7,1
		.bss	TEMPC0,1
		
		.text
START:
		LDP	#0h
		SETC	INTM
		SPLK	#0000h,IMR
		LACC	IFR
		SACL	IFR		
		LDP	#WDKEY>>7h
		SPLK	#0204h,SCSR1
		SPLK	#006Fh,WDCR
		KICK_DOG
		MAR	*,AR0
		LDP	#0E1h     
		SPLK	#00000h,MCRA     
		SPLK	#0FF00h,MCRB
		SPLK	#00000h,MCRC
		
		SPLK	#1111111100000000b,PADATDIR
		SPLK	#1111111100000000b,PCDATDIR
		
		LDP	#GPTCONA>>7h
		SPLK	#0000000000000000b,GPTCONA
		SPLK	#0000000000000000b,T1CNT
		SPLK	#0000111101000010b,T1CON
		
		SPLK	#1111111111111111b,T1PR
		SPLK	#0000000011111111b,T1CMPR
		SPLK	#0000011110000000b,EVAIMRA
		SPLK	#0000011110000000b,EVAIFRA
		
		LDP	#TEMP
		SPLK	#01h,TEMP
		SPLK	#01h,TEMPA3
		SPLK	#01h,TEMPC7
		SPLK	#01h,TEMPC0
		
		LDP	#0
		SPLK	#0000000000000010b,IMR
		CLRC	INTM
		
WAIT:
		NOP
		NOP
		B	WAIT
		
GISR2:
		NOP
		LDP	#PIVR>>7h
		LACL	PIVR
		XOR	#002Ah
		BCND	SISR2A,EQ		;T1 OVERFLOW
		LACL	PIVR
		XOR	#0029h
		BCND	SISR29,EQ		;T1 UNDERFLOW
		LACL	PIVR
		XOR	#0028h
		BCND	SISR28,EQ		;T1 COMPARE
		LACL	PIVR
		XOR	#0027h
		BCND	SISR27,EQ		;T1 PERIOD
		RET
		
SISR2A:
		LDP	#TEMP
		LACL	#1h
		XOR	TEMP
		BCND	LOOP1,EQ
		CLRC	XF
		SPLK	#1h,TEMP
		B	LOOP2
LOOP1:
		SETC	XF
		SPLK	#0h,TEMP
LOOP2:		
		CALL	DELAY
		LDP	#GPTCONA>>7
		LACC	#0400h
		SACL	EVAIFRA
		CLRC	INTM
		RET
		
SISR29:
		LDP	#TEMPA3
		LACL	#1h
		XOR	TEMPA3
		BCND	LOOP3,EQ
		LDP	#0E1h
		SPLK	#0FF08h,PADATDIR 
		LDP	#TEMPA3
		SPLK	#1h,TEMPA3
		B	LOOP4
LOOP3:
		LDP	#0E1h
		SPLK	#0FF00h,PADATDIR 
		LDP	#TEMPA3
		SPLK	#0h,TEMPA3
LOOP4:
		CALL	DELAY
		LDP	#GPTCONA>>7
		LACC	#0200h
		SACL	EVAIFRA
		CLRC	INTM
		RET
		
SISR28:
		LDP	#TEMPC7
		LACL	#1h
		XOR	TEMPC7
		BCND	LOOP5,EQ
		LDP	#0E1h
		SPLK	#0FF80h,PCDATDIR 
		LDP	#TEMPC7
		SPLK	#1h,TEMPC7
		B	LOOP6
LOOP5:
		LDP	#0E1h
		SPLK	#0FF00h,PCDATDIR 
		LDP	#TEMPC7
		SPLK	#0h,TEMPC7
LOOP6:
		CALL	DELAY
		LDP	#GPTCONA>>7
		LACC	#0100h
		SACL	EVAIFRA
		CLRC	INTM
		RET
		
SISR27:
		LDP	#TEMPC0
		LACL	#1h
		XOR	TEMPC0
		BCND	LOOP7,EQ
		LDP	#0E1h
		SPLK	#0FF01h,PCDATDIR 
		LDP	#TEMPC0
		SPLK	#1h,TEMPC0
		B	LOOP8
LOOP7:
		LDP	#0E1h
		SPLK	#0FF00h,PCDATDIR 
		LDP	#TEMPC0
		SPLK	#0h,TEMPC0
LOOP8:
		CALL	DELAY
		LDP	#GPTCONA>>7
		LACC	#0080h
		SACL	EVAIFRA
		CLRC	INTM
		RET	
		
DELAY:
		LAR	AR0,#1h
D_LOOP:
		RPT	#01h
		NOP
		BANZ	D_LOOP
		RET
		
GISR1:
		RET
		
GISR3:
		RET
		
GISR4:
		RET
		
GISR5:
		RET
		
GISR6:
		RET
		
PHANTOM:
		RET
		
		.end																		

⌨️ 快捷键说明

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