8051中斷的問題 ~ |
缺席
|
windlin
一般會員 發表:3 回覆:4 積分:1 註冊:2005-04-18 發送簡訊給我 |
main()
{
EA=1; //致能整體中斷
EX0=1; EX1=1; //致能外部INT0中斷及INT1中斷
IT0=1; IT1=1; //設定INT0腳及INT1腳負緣觸發中斷
PX0=1; //設定INT0中斷優先
TMOD=0x01;
while(1)
{
P1=P2=0x0000;
delay(200);
P1=P2=0xffff;
delay(200);
P0=j;
j ;
}
}
主程式如上
未中斷時是閃爍狀態
當中斷時~為跑馬燈的動作
但是我實際用電路動作時
中斷一次,會跑二次動作
(正常是中斷一次,跑一次)
用keil c模擬沒問題~
><||~~願大大給我解惑~甘溫~ 發表人 - windlin 於 2005/04/25 00:13:25
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
handystudio
高階會員 發表:1 回覆:81 積分:106 註冊:2005-03-26 發送簡訊給我 |
引言: main() { EA=1; //致能整體中斷 EX0=1; EX1=1; //致能外部INT0中斷及INT1中斷 IT0=1; IT1=1; //設定INT0腳及INT1腳負緣觸發中斷 PX0=1; //設定INT0中斷優先 TMOD=0x01; while(1) { P1=P2=0x0000; delay(200); P1=P2=0xffff; delay(200); P0=j; j ; } } 主程式如上 未中斷時是閃爍狀態 當中斷時~為跑馬燈的動作 但是我實際用電路動作時 中斷一次,會跑二次動作 (正常是中斷一次,跑一次) 用keil c模擬沒問題~ ><||~~願大大給我解惑~甘溫~ 發表人 - windlin 於 2005/04/25 00:13:25你的 EX0 及 EX1 是接什麼? 我想可能是彈跳沒處理好導致。 歡迎參觀輕巧工作室 http://handy.myweb.hinet.net
------
歡迎光臨 輕巧工作室 網站 http://www.handystudio.tw 控制電路板客製設計、製作交貨 8051專題製作/專題客製 |
windlin
一般會員 發表:3 回覆:4 積分:1 註冊:2005-04-18 發送簡訊給我 |
void EX1_int(void) interrupt 0
{
i=0x0001;
while(i <0x8000)
{
P2=~i;
P1=~i>>8;
delay(200);
i=i << 1 ;
}
i=0x8000;
P2=~i;
P1=~i>>8;
delay(200);
}
void EX0_int(void) interrupt 2
{
i=0x8000;
while(i >0x0001)
{
P2=~i;
P1=~i>>8;
delay(200);
i=i >> 1 ;
}
這就是我的EX1,EX0~
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
|
㊣
版主 發表:261 回覆:2302 積分:1667 註冊:2005-01-04 發送簡訊給我 |
將你的副程式改為這樣試試:
void EX1_int(void) interrupt 0 { delay(200); i=1; while(i <=0x8000) { P2=~i; P1=~(i>>8); delay(200); i=i << 1 ; } }你的開關是怎麼接的?也有可能是開關彈跳問題. P.S:以後po文請看清楚規定.這次我幫你改了,下次我會幫你移到回收區.
------
------------------------------------------------------------------------- 走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |