📄 timebase_2hz.asm
字号:
//////////////////////////////////////////////////
//程序名称:TimeBase_2Hz .asm
//功能:使A口低8位发光二极管0.5秒闪烁
//硬件连接:IOA0-IOA7分别接8个发光二极管
/////////////////////////////////////////////////
.include hardware.inc
.define RUN_2HZ_TimeBase_INT 0x0004
.RAM
.VAR flag //发光二极管的标识1,点亮2.熄灭
.code
.public _main
_main:
r1=0x00ff //初始化A口低8位为低电平输出端
[P_IOA_Attrib]=r1
[P_IOA_Dir]=r1
r1=0x0000
[P_IOA_Data]=r1
[flag] = r1; //初始化发光二极管标识
r1 = RUN_2HZ_TimeBase_INT //开放2Hz 中断
[P_INT_Ctrl]=r1
INT IRQ
loop:
nop
nop
nop
nop
goto loop
//////////////////////////////////////////////
//2Hz 时基中断
//功能:使发光二极管0.5s 点亮一次
/////////////////////////////////////////////
.text
.public _IRQ5
_IRQ5:
push r1,r5 to [sp] //保护现场
r1 = 0x0004
test r1,[P_INT_Ctrl] //比较是否为2Hz的中断源
jnz IRQ5_2Hz //是,则转至对应程序段
//4Hz 中断的处理
IRQ5_4Hz:
r1=0x0008
goto Exit_INT;
//2Hz 中断的处理
IRQ5_2Hz:
r1 = [flag]; //发光二极管标识
[P_IOA_Data] = r1
r1 ^= 0xffff;
[flag] = r1;
r1 = 0x0004
//退出中断
Exit_INT:
[P_INT_Clear]=r1
pop r1,r5 from [sp] //恢复现场
RETI
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -