;**********************************************************************
	; 本程序以外部中断举例
	;上电时P50输出高,在INT引脚输入下降沿时进外部中断,P50输出翻转一次。
	;**********************************************************************
	;MCU: EM78P153S
	;Oscillator: IRC 4MHz
	;Clock: 2
	;WDT: Disable
	;编译软件: WicePulse version  2.6081015
	 
	INCLUDE "EM78P153S.INC"
	A_buffer  == 0x1C ;保存A寄存器
	R4_buffer == 0x1D ;保存R4寄存器
	R3_buffer == 0x1E ;保存R3寄存器
	       
	ORG 0X00
	JMP INITIAL
	  ORG   0X08
	EX_INT:
	MOV A_buffer,A ;保存 A 
	SWAPA R3   
	MOV R3_buffer,A ;保存 R3
	MOV A,R4 
	MOV R4_buffer,A ;保存 R4 
	 
	JBS EXIF ;查询有没有外部中断标志
	JMP INT_RET ;如果没有外部中断标志退出中断程序
	MOV A,ISR
	AND A,@0XFB
	MOV ISR,A ;清除外部中断标志
	JBS PORT5,0 ;P50取反
	JMP $+3 
	BC PORT5,0
	JMP INT_RET
	   BS PORT5,0
	INT_RET: 
	MOV A,R4_buffer ;返回 R4
	MOV R4,A
	SWAPA R3_buffer ;返回 R3
	MOV R3,A
	SWAP A_buffer ;返回 A
	SWAPA A_buffer 
	RETI 
	 
	ORG 0X50                
	INITIAL:
	MOV A,@0
	CLR PORT5 ;PORT5初始状态为低电位
	IOW IOC5 ;PORT5设为输出,控制LED   
	MOV A,@0XFF
	IOW  IOCD
	MOV A,@01000000B
	IOW IOCE ;P60作为/INT中断输入引脚
	CLR ISR ;清除中断标志位
	MOV A,@00000100B
	IOW IMR ;使能外部中断   
	BS PORT5,0 ;点亮LED
	ENI ;使能总中断
	MAIN:
	NOP
	NOP
	JMP MAIN