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

📄 isr.asm

📁 电压控制程序,符合各种设备需要,核心程序,IBm专属
💻 ASM
字号:
//========================================================
//	文件名称:	isr.asm
//	功能描述:	显示数据,定时0.5s和1s
//	维护记录:	2005-09-12	v1.0
//========================================================

.INCLUDE SPCE061A.inc
.INCLUDE Dig.inc

.EXTERNAL _g_uiFirst
.EXTERNAL _g_uiFlag
.EXTERNAL _g_uiSeg

.TEXT
//========================================================
//	汇编格式:	_IRQ4
//	实现功能:	1KHz中断调用F_DIG_Drive函数
//	参数:		无
//	返回值:	无
//========================================================
.PUBLIC _IRQ4
_IRQ4:
	push r1,r5 to [sp]
	r1 = C_IRQ4_1KHz
	test r1,[P_INT_Ctrl]
	jnz ?L_IRQ4_1KHz
	r1 = C_IRQ4_2KHz
	test r1,[P_INT_Ctrl]
	jnz ?L_IRQ4_2KHz
?L_IRQ4_4KHz:
	call F_DIG_Drive                              //F_DIG_Drive函数是数码管显示函数,定义在Dig.asm文件中
	r1 = C_IRQ4_4KHz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
?L_IRQ4_2KHz:
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
?L_IRQ4_1KHz:
	call F_DIG_Drive
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
//========================================================
//	汇编格式:	_IRQ5
//	实现功能:	2Hz中断进行显示处理
//	参数:		无
//	返回值:	无
//========================================================
.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 = C_IRQ5_4Hz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti
?L_IRQ5_2Hz:
	r1 = [_g_uiFirst]			
	cmp r1,0x0001							//第2次进入中断
	ja ?Start								//时间〉=1s	
	r1 = [_g_uiFirst]						//时间小于1s
	r1 += 1
	[_g_uiFirst] = r1
	goto ?Exit
	
?Start:
	r1 = [_g_uiFirst]					
	cmp r1,2								//1s
	jne ?Next
	r1 += 1									//初始化g_uiFlag、g_uiSeg显示"1000"
	[_g_uiFirst] = r1
	r1 = 1
	[_g_uiFlag] = r1
	r1 = 2
	[_g_uiSeg] = r1
	goto ?Exit
?Next:						
	r1 = [_g_uiSeg]
	cmp r1,9                				//更改段码指针,显示数值加1	
	ja ?Next1
	r1 += 1
	[_g_uiSeg] = r1
	goto ?Exit
?Next1:									
	r1 = [_g_uiFlag]						//更改被刷新数码管位
	cmp r1,4
	je ?Last
	r1 += 1	
	[_g_uiFlag] = r1
	r1 = 2
	[_g_uiSeg] = r1
	goto ?Exit
?Last:
	r1 = 0x0000								//置标志,重新显示“000000”
	[_g_uiFirst] = r1
	[_g_uiFlag] =r1
	goto ?Exit

?Exit:	
	r1 = C_IRQ5_2Hz
	[P_INT_Clear] = r1
	pop r1,r5 from [sp]
	reti

⌨️ 快捷键说明

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