             org 0000h      
             ljmp main         ;跳过5个中断源的入口地址
             org 0003h  	    ;外部中断0入口地址
             LJMP l0   		    ;I0为中断服务程序的标号
             org 0030h
main:        mov sp,#30h        
             setb it0          ;设置外部中断0采用下降沿信号触发
             setb ea      	   ;打开中断允许总开关
             setb ex0     	   ;允许外部中断0请求中断
             mov a,#01h  		;给累加器赋初值，再将累加器中的值赋给P1端口，逻辑左移只能针对累加器
loop:        mov p1,a 			;点亮P1.0引脚接的发光二极管
             lcall dealy    	;调用延时程序
             rl a          		;累加器A中的内容左移一次
             sjmp loop    		;跳到标号为loop的地方去执行	，在执行这个过程中，等待中断的到来

l0:          push acc   	   ;中断服务程序开始将相应的寄存器内容压栈
             push p1
             mov r1,#07h  	   ;设置按键按下后LED闪烁次数
             mov a,#03h   	   ;设置按键按下后LED点亮的初始情况，只有累加器可以进行逻辑左移
flash:       mov p1,a		   ;点亮P1口最低两位发光二极管
             lcall dealy   	   ;调用延时程序
             mov a,p1
             rl a          	    ;累加器A中内容左移一次
             mov p1,#00h  		;P1口接所有发光二极管灭
             lcall dealy    	;调用延时程序
             djnz r1,flash       ;循环次数没到6次，就跳到标号为flash的地方去执行
			 reti        		  ;中断返回

dealy:       mov r2,#02 		 ;延时子程序
loop1:       mov r3,#250
loop2:       mov r4,#250
loop3:       nop
             nop
             djnz r4,loop3
             djnz r3,loop2
             djnz r2,loop1
             ret           
             end
