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

📄 fiq.asm

📁 基于凌阳单片机的公交车报站器设计C语言源代码
💻 ASM
字号:
//========================================================
//	文件名称:	FIQ.asm
//	功能描述:	BusBroadcase.spj工程中断服务文件
//	维护记录:	2005-11-30	v1.0
//========================================================

.include a2000.inc
.include s480.inc
.include spce061a.inc
.include key.inc
.include Dig.inc

.external _Time_Run		//外部函数,更新时间

.external _g_uiSecond_half
.external _g_4Hz_On
.external _g_Light
.external _uiA2000_S480

.text

.public _FIQ
_FIQ:
	push r1,r5 to [sp]
	r1 = C_FIQ_TMA
	test r1,[P_INT_Ctrl]
	jnz L_FIQ_TimerA
	r1 = C_FIQ_TMB
	test r1,[P_INT_Ctrl]
	jnz L_FIQ_TimerB
L_FIQ_PWM:
	r1 = C_FIQ_PWM
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
L_FIQ_TimerA:
	[P_INT_Clear] = r1
	r1 = [_uiA2000_S480]
	test r1,1
	jnz A2000
	call F_FIQ_Service_SACM_S480
	jmp L_FIQ_Exit
A2000:
	call F_FIQ_Service_SACM_A2000
L_FIQ_Exit:
	pop r1,r5 from [sp]
	reti
L_FIQ_TimerB:
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti


.public _IRQ6
_IRQ6:
	push r1,r5 to [sp]
	r1 = C_IRQ6_TMB2
	test r1,[P_INT_Ctrl]
	jnz L_IRQ6_TMB2
L_IRQ6_TMB1:
	r1 = C_IRQ6_TMB1
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
L_IRQ6_TMB2:
	call F_Key_Scan			//在128Hz中调用扫描键盘
	r1 = C_IRQ6_TMB2
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti

.public _IRQ0
_IRQ0:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti
	
.public _IRQ1
_IRQ1:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti

.public _IRQ2
_IRQ2:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti

.public _IRQ3
_IRQ3:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti

.public _IRQ4
_IRQ4:
	push r1,r5 to [sp]
	r1 = C_IRQ4_4KHz
	test r1,[P_INT_Ctrl]
	jnz L_IRQ4_4KHz
	r1 = C_IRQ4_2KHz
	test r1,[P_INT_Ctrl]
	jnz L_IRQ4_2KHz
L_IRQ4_1KHz:
	r1 = C_IRQ4_1KHz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
L_IRQ4_2KHz:
	r1 = C_IRQ4_2KHz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
L_IRQ4_4KHz:
	call F_DIG_Drive		//调用数码管驱动
	r1 = C_IRQ4_4KHz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti

.public _IRQ5
_IRQ5:
	push r1,r5 to [sp]
	r1 = C_IRQ5_2Hz
	test r1,[P_INT_Ctrl]
	jnz L_IRQ5_2Hz
L_IRQ5_4Hz:
	r1 = [_g_4Hz_On]
	test r1,0x0001
	jz Exit
	r1 = [_g_Light]			//闪烁效果
	r1 ^= 1
	[_g_Light] = r1
Exit:
	r1 = C_IRQ5_4Hz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
L_IRQ5_2Hz:
	r1 = [P_IOB_Buffer]		//数码管  冒号闪烁
	r1 ^= 0x0004
	[P_IOB_Buffer] = r1

	r1 = [_g_uiSecond_half]
	r1 += 1
	[_g_uiSecond_half] = r1
	call _Time_Run			//更新时间
	
	r1 = C_IRQ5_2Hz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti

.public _IRQ7
_IRQ7:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti

.public _BREAK
_BREAK:
	push r1,r5 to [sp]
	pop r1,r5 from [sp]
	reti

⌨️ 快捷键说明

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