8051之外部中斷問題 |
答題得分者是:src
|
aj002547
一般會員 發表:1 回覆:1 積分:0 註冊:2010-04-07 發送簡訊給我 |
各位版友大家好,
小弟再做專題時遇到一個問題因無法解決所以來上問問^^ 動作: INT0被觸發時經由RS232在終端機上顯示Coin;INT1被觸發時顯示Play。 狀況: 我寫完程式之後測試,INT0是可以正常動作的, 但是接著觸發INT1時卻會無動作, 且觸發INT1之後INT0會無法動作, 想請問各位版友是不是我的程式寫錯呢? 後來我有google一下關於外部中斷,有看到一個說法是INT1(13腳)要接一電阻(1K~10K)至vcc, 才能正常動作,請問這是正確的嗎? [code c#] #include char *ptr; static const char msg1[]={"Coin"}; static const char msg2[]={"Play!"}; void Delay(int dly_count) { while((dly_count--)!=0); } void int_UART(int BaudRate) { SCON=0X52; TMOD=0X21; TH1=256-(28800/BaudRate); TR1=1; } static void PutCharUART(char c) { do{}while(!TI); TI=0; SBUF=c; } void TranStr(char *ptr) //傳送字串 { while(*ptr!='\0') { PutCharUART(*ptr); ptr; } } void INT0_Set(void) { EA=1; INT0=1; IT0=1; EX0=1; } void INT1_Set(void) { EA=1; INT1=1; IT1=1; EX1=1; } void EXINT1(void) interrupt 1 { TranStr(msg2); Delay(200000); ptr=0; } void EXINT0(void) interrupt 0 { TranStr(msg1); Delay(200000); ptr=0; } void main() { INT0_Set(); INT1_Set(); int_UART(9600); while(1); } [/code] 麻煩各位了 謝謝! |
src
高階會員 發表:1 回覆:94 積分:154 註冊:2005-08-23 發送簡訊給我 |
|
aj002547
一般會員 發表:1 回覆:1 積分:0 註冊:2010-04-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |