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

📄 gpio.asm

📁 dsp的
💻 ASM
字号:
;*******************************************************
; File Name:GPIO.asm
;*******************************************************

		.title	"GPIO"
	
		.include LF2407.inc
		.include CPU.inc
		.include GPIO.inc
;*******************************************************

TxdPtr:	.usect	"data", 8
RxdPtr:	.usect	"data", 8

		.data
counterValue	.byte	1
;*******************************************************
		.def	_c_int0
		.ref	Pvect
;*******************************************************
; 主程序开始
		.text
_c_int0:

		call	fSysInit
	
		ldp		#00E1h
		splk	#MCRAV, MCRA
		splk	#MCRBV, MCRB
		
		splk	#7f01h, PADATDIR
		splk	#0808h, PBDATDIR

	;	call 	fSciInit
		
Main:
		ldp		#0000h
		
LoopMain:
	
	;	call	fSendChar
	;	mar		*, AR0
	;	lar		AR0, #TxdPtr
	;	adrk	#5
	;	mar		*, AR4
	;	lacc	*+
	;	cmpr	00
	;	bcnd	Main, TC
	;	mar		*, AR2
	;	sacl	*, AR4
		ldp		#00e1h
		
		call	fDelay
		lacc	PADATDIR
		and		#0ff81h
		or		#step1
		sacl	PADATDIR
	;	splk	#STEP1, PADATDIR
		
		call	fDelay
		lacc	PADATDIR
		and		#0ff81h
		or		#step2
		sacl	PADATDIR
	;	splk	#STEP2, PADATDIR

		call	fDelay
		lacc	PADATDIR
		and		#0ff81h
		or		#step3
		sacl	PADATDIR
	;	splk	#STEP3, PADATDIR

		call	fDelay
		lacc	PADATDIR
		and		#0ff81h
		or		#step4
		sacl	PADATDIR
	;	splk	#STEP4, PADATDIR
		
		b		LoopMain
;*******************************************************
fSendChar:
	; 发送一个字符
		mar		AR2
		lacc	#'b'
		sacl	*			; 发送数据到SCITXBUF寄存器
LoopSendChar:
		ldp		#DP_PF1
		bit		SCICTL2, BIT7
		bcnd	LoopSendChar, NTC
		
		ret
;*******************************************************
; 系统初始化程序
fSysInit:

		setc	INTM			; 初始化期间禁止中断
		clrc	SXM				; 清符号扩展模式
		clrc	OVM				; 溢出模式复位
		clrc	CNF				; 配置B0块到数据存储区
		ldp		#00e0h			; 设置DP=E0H,则数据存储器地址为7000H~707FH
		splk	#0041h, SCSR1	; CLKOUT=CLKIN*4
		splk	#00e8h, WDCR	; 不使能WDT
		ldp		#0
		splk	#0000h, IMR		; 不使能中断
		splk	#0ffffh, IFR	; 清除全部中断标志

		ret
;*******************************************************
; SCI接口初始化程序
fSciInit:

		ldp		#0e1h
		lacl	MCRB
		or		#18h
		sacl	MCRB			; 配置串行口引脚为特殊功能:TXD、RXD
		ldp		#DP_PF1
		splk	#00fh, SCICCR	; 地址位唤醒模式,N,8,1
		splk	#007h, SCICTL1	; 接收、发送、内部时钟使能,SLEEP=1
		splk	#002h, SCICTL2	; 接收中断使能
		splk	#(BRR/256), SCIHBAUD
		splk	#(BRR & 0ffh), SCILBAUD	; 设置波特率寄存器
		splk	#023h, SCICTL1	; 串口初始化完成
		lar		ar1, #SCIRXBUF	; 接收缓冲寄存器地址
		lar 	ar2, #SCITXBUF	; 发送缓冲寄存器地址
		lar 	ar3, #RxdPtr	; 接收的数据指针
		lar 	ar4, #TxdPtr	; 发送的数据指针
		ldp		#0
		splk	#0001h, IMR		; 允许INT1中断
		splk	#0ffffh, IFR	; 清所有中断标志
		clrc	INTM			; 开总中断
		
		ret
;*******************************************************
GIsr1:
	; 优先级INT1中断入口
	
		ldp		#0e0h
		lacc	PIVR, 1			; 读取外设中断向量寄存器,并左移一位
		add		#Pvect			; 加上外设中断入口地址
		bacc					; 跳到相应的中断服务子程序
RxIsr:
	; SCI接收中断服务程序
		ldp		#DP_PF1
		mar		*, AR1
		bit		SCICTL1, BIT2

		ret
;*******************************************************
; 延时程序
fDelay:

		mar		*, ar4
		lar		ar4, #02ffeh
		lar		ar0, #00h
LoopDelay:
		sbrk	#1
		nop
		cmpr	00
		bcnd	LoopDelay, ntc
		
		ret
;*******************************************************
		.end

⌨️ 快捷键说明

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