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

📄 fiq.asm

📁 基于SPCE061A单片机的语音电子时钟,液晶显示,语音控制,汉语报时(课程设计题目)
💻 ASM
字号:
//*********************************************************//
//函数:FIQ()
//语法:void  FIQ(void)
//描述:快速请求中断;
//		入口地址:_FIQ
//		功能:调用语音解码并播放API
//参数:无
//返回:无
//*********************************************************//
.INCLUDE a2000.inc;
.INCLUDE hardware.inc

.PUBLIC _FIQ,_IRQ3, _IRQ5, _IRQ6

.EXTERNAL	_TimeCount;        // 触发计时
.EXTERNAL   Per500msSet        //2Hz中断,每次500ms时钟
.EXTERNAL   _TimeChangeCount;  //计时
.EXTERNAL  _Clear_WatchDog;

.TEXT
_FIQ:
	push r1,r5 to [sp]
	r1 = 0x0800
	r1&=[P_INT_Ctrl] 
	jnz FIQ_is_TimB
	r1 = 0x2000
	r1&=[P_INT_Ctrl] 
	jnz FIQ_is_TimA
	r1 = 0x8000
	r1&=[P_INT_Ctrl] 
	jnz FIQ_is_PWM

FIQ_is_PWM:
    [P_INT_Clear] = r1
	pop	r1,r5 from [sp];
	reti;

FIQ_is_TimA:
    call F_FIQ_Service_SACM_A2000;
	r1 = 0x2000
	[P_INT_Clear] = r1
	pop	r1,r5 from [sp];
	reti;

FIQ_is_TimB:   
    r1=0x0800;  
    [P_INT_Clear] = r1;           
    pop r1,r5 from [sp];
    reti;             


_IRQ3: 
	push r1,r5 to [sp]
	r1 = 0x0380;           //按键唤醒
    [P_INT_Clear] = r1;
	pop	r1,r5 from [sp];
	reti;
	

//--------2Hz and 4Hz------//
_IRQ5: 
	push r1,r5 to [sp]
	r1 = 0x0008;
	test r1,[P_INT_Ctrl];
	jnz	L_IRQ5_4Hz;

L_IRQ5_2Hz:
	call _Clear_WatchDog;
	r1 = 0xFFFF;          //万年历时间///////////////////
    [Per500msSet] = r1;
    r1 = [_TimeCount];    //计时
	r1 += 1;
	[_TimeCount] = r1;
    r1=0x0004
    [P_INT_Clear] = r1;
	pop	r1,r5 from [sp];
	reti;

L_IRQ5_4Hz:
    [P_INT_Clear] = r1;
	pop	r1,r5 from [sp];
	reti;

//-------- 256Hz RTC --------//
_IRQ6: 
    push r1,r5 to [sp]
    r1=0x0001
    test r1,[P_INT_Ctrl]
    jnz IRQ6_TMB2
 IRQ6_TMB1:
    r1=0x0002
    [P_INT_Clear]=r1
	pop	r1,r5 from [sp];
	reti; 
 IRQ6_TMB2:

    r1=[_TimeChangeCount]
    r1+=1
    [_TimeChangeCount]=r1
    r1=0x0001   
    [P_INT_Clear]=r1
	pop	r1,r5 from [sp];
	reti;
	    
.END

 

⌨️ 快捷键说明

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