📄 ext1.asm
字号:
//======================================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//========================================================================================
// 工程名称: book_EXT.spj
// 功能描述: 通过外部中断点亮A口低8位的8个LED
//
// 硬件连接: A口低8位连接8个LED
// 文件来源: 《SPCE061单片机原理及应用技术》第五章 中断系统,第194页
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.0(or later)
//
// 涉及的库: CMacro.lib
//
// 组成文件:
// main.asm/hardware.asm
// hardware.inc/hardware.h
//
// 日期: 2002-6-12
//===========================================================================================
.INCLUDE hardware.inc
.CODE
.PUBLIC _main
_main:
r1 = 0x00ff //设置A口低8位为同相高电平输出口;
[P_IOA_Attrib] = r1
[P_IOA_Dir] = r1
r1 = 0x0000
[P_IOA_Data] = r1
//设置IOB2带上拉电阻的输入端口
r1 = 0x0000;
[P_IOB_Dir] = r1;
[P_IOB_Attrib] = r1;
r1 = 0x0004 ;
[P_IOB_Data] = r1;
r1 = 0x0100; //开中断IRQ3_EXT1
[P_INT_Ctrl] = r1;
int irq;
loop:
nop
nop
nop
jmp loop
//=================================================================================
//外部中断
//描述:点亮8个发光二极管
//=================================================================================
.text
.public _IRQ3
_IRQ3:
INT OFF
push r1,r5 to [sp] //现场保护
r1=0x0100
test r1,[P_INT_Ctrl] //比较是否为IRQ3_EXT1
jnz irq3_ext1 //是,则转至对应程序段;
r1=0x0200
test r1,[P_INT_Ctrl] //否,则比较是否为IRQ3_EXT2
jnz irq3_ext2 //是,则转至对应程序段;
irq3_key: //否,则进入键唤醒中断
goto Exit_INT;
irq3_ext2: //进入外部中断2
goto Exit_INT;
irq3_ext1: //外部中断1
r1 = 0xffff
[P_IOA_Data] = r1 //点亮LED
r1 = 0x0100
Exit_INT:
[P_INT_Clear] = r1
pop r1,r5 from [sp] //现场恢复
INT IRQ,FIQ
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -