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

📄 fiq.asm

📁 基于61A的时钟 LCD显示程序,非常的简洁,实用
💻 ASM
字号:

.INCLUDE a2000.inc;
.INCLUDE hardware.inc

.PUBLIC _FIQ,_IRQ3, _IRQ5, _IRQ6

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


.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:
	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 + -