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

📄 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_2hz.spj
//  功能描述:   时基信号中断程序
//              使A口低8位发光二极管0.5秒闪烁
//	硬件连接:	IOA0-IOA7分别接8个发光二极管              
//  文件来源: 《SPCE061单片机原理及应用技术》第五章 中断系统,第188页
//  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		RUN_2HZ_TimeBase_INT  0x0004 
.DEFINE     P_WatchDog_Clear      0x7012    
.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 
	r1=0x0001
    [P_WatchDog_Clear]=r1
	nop
	jmp 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     
	jmp 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 + -