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

📄 system.asm

📁 spce061单片机的一些程序!C语言和汇编语言都有
💻 ASM
字号:
//============================================================
//	文件名称:	system.asm
//	功能描述:	端口操作函数
//	维护记录:	2005-10-14	v1.0
//============================================================
.INCLUDE SPCE061A.inc

.PUBLIC _SP_Export; 
.PUBLIC	_SP_Import;
.PUBLIC _SP_Init_IOB;
.PUBLIC _SP_Init_IOA;

.CODE

//============================================================================================
//函数: SP_INT_128Hz()
//语法:void SP_INT_128Hz()
//描述:128Hz时基信号中断的初始化函数
//参数:无
//返回:无
//=============================================================================================
.PUBLIC _SP_INT_128Hz;
 _SP_INT_128Hz:
     r1 = 0x0000;
     [P_TimeBase_Setup]=r1        // TMB2选择128Hz //TMB1选择8Hz,但不起作用 
     r1 = 0x0001 				  //开中断IRQ6_TMB2
   	 [P_INT_Ctrl]= r1 
	 INT IRQ
     RETF;

//============================================================================================
//函数: Int_IRQ()
//语法:void Int_IRQ()
//描述:开中断
//参数:无
//返回:无
//=============================================================================================     
 .PUBLIC _Int_IRQ
 _Int_IRQ:
     INT IRQ
     RETF

//============================================================================================
//函数: Off_IRQ()
//语法:void Off_IRQ()
//描述:关中断
//参数:无
//返回:无
//============================================================================================
.PUBLIC _Off_IRQ
_Off_IRQ:
     IRQ OFF ;
  RETF;   
  
//============================================================================================
//函数: ClearWatchdog()
//描述:清看门狗
//参数:无
//返回:无
//============================================================================================  
.PUBLIC _F_ClearWatchdog ;
 _F_ClearWatchdog: .PROC
    r1 = 0x0001;
    [P_Watchdog_Clear] = r1;
    RETF
    .ENDP    

////////////////////////////////////////////////////////////////// 
//
//////////////////////////////////////////////////////////////////    
_SP_Init_IOA: .PROC
		PUSH BP,BP TO [SP];
        BP = SP + 1;
		PUSH R1,R1 TO [SP];
		R1 = [BP+3];						// Port direction
		[P_IOA_Dir] = R1;
		R1 = [BP+4];
		[P_IOA_Data] = R1;
		R1 = [BP+5];
		[P_IOA_Attrib] = R1;
		
		POP R1,R1 FROM [SP];
        POP BP,BP FROM [SP];
        RETF;
		.ENDP

////////////////////////////////////////////////////////////////// 
// SP_Inti_IOB
//////////////////////////////////////////////////////////////////    

_SP_Init_IOB: .PROC
		PUSH BP,BP TO [SP];
        BP = SP + 1;
		PUSH R1,R1 TO [SP];
		R1 = [BP+3];						// Port direction
		[P_IOB_Dir] = R1;
		R1 = [BP+4];
		[P_IOB_Data] = R1;
		R1 = [BP+5];
		[P_IOB_Attrib] = R1;
		
		POP R1,R1 FROM [SP];
        POP BP,BP FROM [SP];
        RETF;
		.ENDP



_SP_Import: .PROC
        PUSH BP,BP TO [SP];
        BP = SP + 1;
		PUSH R1,R2 TO [SP];
		R1 = [BP+3]; 						// Port Number
		R2 = [BP+4]; 						// Data Buffer Pointer
		R1 = [R1] ;
		[R2] = R1 ;
		POP R1,R2 FROM [SP];
        POP BP,BP FROM [SP];
        RETF;
		.ENDP

_SP_Export: .PROC
        PUSH BP,BP TO [SP];
        BP = SP + 1;
		PUSH R1,R2 TO [SP];
		R1 = [BP+3]; 						// Port Number
		R2 = [BP+4]; 						// Value
		[R1] = R2 ;
		POP R1,R2 FROM [SP];
        POP BP,BP FROM [SP];
        RETF;        
 		.ENDP

⌨️ 快捷键说明

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