線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1424
推到 Plurk!
推到 Facebook!

8051中斷的問題 ~

缺席
windlin
一般會員


發表:3
回覆:4
積分:1
註冊:2005-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-24 22:52:35 IP:220.132.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-24 23:08:39 IP:59.113.xxx.xxx 未訂閱
1>請遵守版規 2>po程式碼請縮排 請修改配合!謝謝!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
handystudio
高階會員


發表:1
回覆:81
積分:106
註冊:2005-03-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-25 00:48:34 IP:59.112.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-25 00:55:54 IP:220.132.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-25 01:09:18 IP:59.113.xxx.xxx 未訂閱
警告!! 不配合將刪文!!謝謝!! 請看清楚版規與使用說明! 不會再警告第3次... 下次見到文章不見了...我只能說sorry... 發表人 - ㊣ 於 2005/04/25 01:24:16
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-27 00:16:09 IP:59.113.xxx.xxx 未訂閱
將你的副程式改為這樣試試:
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文請看清楚規定.這次我幫你改了,下次我會幫你移到回收區.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
系統時間:2024-05-02 13:01:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!