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

📄 pwakeup.c

📁 em78p153的范例
💻 C
字号:
#include "EM78x153xx.h"

#define	ENWDT	1
#define	DSWDT	0
#define	WATCHDOG	ENWDT

void Pin_Wake_up(void)
{
	_asm
	{
		mov	a,@0x0e
		contw
	}
	WDTCR=0x3f;	//disable wdt
	_asm
	{
		mov	0x6,0x6
		disi
	}
	IMR=0xfa;
	_asm
	{
		slep
		nop
	}
#if(WATCHDOG==DSWDT)
	WDTCR=0x3f;
#else
#endif
	IMR=0xf8;
}

void main()
{
	_asm
	{
		mov    a,@7
    	contw
    }
    P5CR=0xf0;
	P6CR=0xff;    
	PDCR=0xef;
	ODCR=0;
	PHCR=1;
	WDTCR=0x3f;
	Pin_Wake_up();
	while(1);
}

void _intcall interrupt_l(void) @ 0x08:low_int 0
{
   _asm 
   {
      //save A --> 0x1F ; R3 --> 0x3E (ram bank 1); R4 --> 0x3F (ram bank 1)
      MOV 0X1F,A   ;backup A to 0x1F
      SWAPA 0X04   ;backup R4 to 0x3F at bank 3
      MOV 0X3F,A   ;backup R4 to 0x3F at bank 3
      SWAPA 0X03   
      MOV 0X3E,A   ;backup R3 to 0x3E at bank 3
   }  	
}
void _intcall interrupt(void) @ int 0
{
   //backup C system
/*  _asm
    { 
	MOV A,0X10	// USE 1 BYTE C TYPE,C SYSTEM BACKUP
	MOV 0X3C+1,A
	MOV A,0X14
	MOV 0X3B+1,A
	MOV A,0X18
	MOV 0X3A+1,A
	MOV A,0X1B
	MOV 0X39+1,A
	MOV A,0X1C
	MOV 0X38+1,A
    }
*/ 

  // Write your code (inline assembly or C) here
  
   //restore C system
/*  _asm
    {  
	MOV A,0X3C+1	// USE 1 BYTE C TYPE,C SYSTEM RESTORE
	MOV 0X10,A
	MOV A,0X3B+1
	MOV 0X14,A
	MOV A,0X3A+1
	MOV 0X18,A
	MOV A,0X39+1
	MOV 0X1B,A
	MOV A,0X38+1
	MOV 0X1C,A
   }
*/  
  
  //restore ACC,R3,R4
  _asm
   {
      SWAPA 0X3E   ;restore R3
      MOV 0X03,A
      SWAPA 0X3F   ;restore R4
      MOV 0X04,A
      SWAP 0X1F    ;restore A
      SWAPA 0X1F
   }
}

⌨️ 快捷键说明

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