#include <reg52.h> char code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit P14=P1^4;
void delay(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { unsigned int j; P14=0; EA=1; EX0=1; EX1=1; P0=0xfe; while(1) { for(j=0;j<8;j++) { P0=table[j]; delay(500); } } } void KEY1() interrupt 0 { char j; for(j=7;j>-1;j--) { P0=table[j]; delay(500); } }
void KEY2() interrupt 1 { char t; for(t=3;t>-1;t--) { P0=table[t]; delay(500); } } 按P3。2的鍵,中斷正常執(zhí)行,返回后從斷點處繼續(xù)執(zhí)行,正常,但按P3.3的鍵后中斷不正常,本意是從第四個燈亮,但卻從最后一個燈往回亮,執(zhí)行后,返回主程序也不是從中斷處執(zhí)行的,而是從第一個燈亮。真奇怪。各位幫我一下
中斷_副本.jpg (56.8 KB, 下載次數(shù): 167)
下載附件
2011-11-2 14:33 上傳
[此貼子已經(jīng)被作者于2011-11-2 14:33:29編輯過]
|