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

📄 main.asm

📁 spce061单片机的一些程序!C语言和汇编语言都有
💻 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,B2口接按键              
//  文件来源: 《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
.DEFINE     P_WatchDog_Clear  0x7012
.CODE
.PUBLIC 	_main
_main:
	
	r1 = 0x00ff					//设置A口低8位为同相高电平输出口;
	[P_IOA_Attrib] = r1 
	[P_IOA_Dir] = r1 
 	[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
	r1=0x0001;
	[P_WatchDog_Clear]=r1;
	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:						//否,则进入键唤醒中断	  
	jmp Exit_INT;
	  
irq3_ext2:                  	//进入外部中断2
    jmp Exit_INT; 	 
    
irq3_ext1:                  	//外部中断1
    r1 = 0x0000; 			 			 
    [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 + -