| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
我用的是MCS51,我在中斷1里開中斷0為什么不行? | 
  
| 作者:jjg 欄目:單片機 | 
我在中斷1里開中斷0,且中斷0的優(yōu)先級比中斷1高,這是在初始化里設(shè)置好的。但在中斷1里響應(yīng)不了中斷0,為什么?  | 
  
| 2樓: | >>參與討論 | 
| 作者: born 于 2005/9/18 16:23:00 發(fā)布:
         具體一點  | 
  |
| 3樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/18 20:40:00 發(fā)布:
         主要的設(shè)置如下:請大家看看有什么地方不對。謝謝! 主要的設(shè)置如下: ORG 0000H LJMP START ORG 0003H LJMP JINT0 ORG 000BH LJMP JT0 ORG 0013H LJMP JINT1 ORG 001BH LJMP JT1 ORG 0023H LJMP JRS232 START: NOP MOV IE,#0EH MOV IP,#09H MOV TCON,#05H MAIN: SETB EA SETB TR1 CLR TR1 MOV TH1, #00H ;設(shè)置定時器1的初值 MOV TL1, #00H JMP MAIN JINT1: NOP SETB EX0 ;則開中斷0 SETB TR0 ;開定時器0 MOV TH0, #00H ;設(shè)置定時器0的初值 MOV TL0, #00H SETB ET0 SETB TR1 ;開定時器1 MOV TH1, #00H ;設(shè)置定時器1的初值 MOV TL1, #00H SETB ET1 WAIT1: JNB P3.3, $ ;等待P3.3信號變高 CLR TR1 ;關(guān)定時器1 CLR TF1 ;清定時器1溢出標(biāo)記 CLR EX0 ;關(guān)中斷0 CLR TR0 ;關(guān)定時器0 CLR TF0 ;清定時器0溢出標(biāo)記 RETI 問題是在中斷1里不響應(yīng)中斷0/定時器0/定時器1。 請大家看看有什么地方不對。  | 
  |
| 4樓: | >>參與討論 | 
| 作者: born 于 2005/9/18 21:31:00 發(fā)布:
         可能是RETI指令 沒用好 在中斷1里面是沒辦法響應(yīng)定時器0 的,你可以在中斷1里調(diào)用 LCALL OP OP:NOP NOP RETI 這樣就清掉了不可以尋址的那個中斷觸發(fā)器 51里面只有RETI指令可以清中斷觸發(fā)器  | 
  |
| 5樓: | >>參與討論 | 
| 作者: born 于 2005/9/18 21:58:00 發(fā)布:
         你中斷里怎么沒有保護現(xiàn)場?  | 
  |
| 6樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/18 22:53:00 發(fā)布:
         OP程序又不是中斷程序,怎么可以用RETI? 為什么不可以在中斷里產(chǎn)生更高級別的定時器中斷?  | 
  |
| 7樓: | >>參與討論 | 
| 作者: born 于 2005/9/18 23:25:00 發(fā)布:
         這就是精妙 所在 你對RET和RETI的區(qū)別還沒真正理解  | 
  |
| 8樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/18 23:37:00 發(fā)布:
         born:你好!我用你的方法試了一下,感覺是對的。 但還沒有合適的信號源試,流程只能憑感覺是對了。請給我解釋一下RET-RETI.RETI為什么可以這樣用?為什么高優(yōu)先級中斷在低優(yōu)先級中斷里產(chǎn)生不了?  | 
  |
| 9樓: | >>參與討論 | 
| 作者: born 于 2005/9/18 23:42:00 發(fā)布:
         已經(jīng)解釋過了 RETI 和 RET 的區(qū)別就是清除那個 不可以尋址 的中斷優(yōu)先極觸發(fā)器,  | 
  |
| 10樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/18 23:48:00 發(fā)布:
         謝謝born!  | 
  |
| 11樓: | >>參與討論 | 
| 作者: dengm 于 2005/9/19 7:05:00 發(fā)布:
         "JMP MAIN" ===>>> " JMP $ "  | 
  |
| 12樓: | >>參與討論 | 
| 作者: szzfq61 于 2005/9/19 10:07:00 發(fā)布:
         GOOD ........  | 
  |
| 13樓: | >>參與討論 | 
| 作者: dudongdao 于 2005/9/19 13:35:00 發(fā)布:
         請再解釋一下~~ 樓上說的RETI和RET的區(qū)別能在具體一點嗎,我看過之后還是很暈~~ 沒怎么理解~~ RETI為什么要清除中斷優(yōu)先觸發(fā)器呢,中斷的優(yōu)先不是人工設(shè)置的嗎,設(shè)置好了只要程序不改變中斷優(yōu)先順序是不變的吧  | 
  |
| 14樓: | >>參與討論 | 
| 作者: born 于 2005/9/19 14:45:00 發(fā)布:
         仔細 看看書就知道了 那個 硬件觸發(fā)器 是有的, 卻 不在51的地址空間里, 只有RETI指令可以找到它,  | 
  |
| 15樓: | >>參與討論 | 
| 作者: dudongdao 于 2005/9/19 15:07:00 發(fā)布:
         ????????????? 那我們設(shè)置中斷優(yōu)先級別的時候操作的那個是什么啊  | 
  |
| 16樓: | >>參與討論 | 
| 作者: born 于 2005/9/19 15:12:00 發(fā)布:
         那是中斷優(yōu)先權(quán) 一旦響應(yīng)中斷后 , 硬件上就自動置位這級的 中斷優(yōu)先級觸發(fā)器, 同級和低級的中斷就被 阻隔,  | 
  |
| 17樓: | >>參與討論 | 
| 作者: dudongdao 于 2005/9/19 15:47:00 發(fā)布:
         謝~~~ 有點懂了 謝謝~~~  | 
  |
| 18樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/19 22:52:00 發(fā)布:
         born真是高人啊,我怎么從沒在書上看到呢。  | 
  |
| 19樓: | >>參與討論 | 
| 作者: jjg 于 2005/9/22 22:40:00 發(fā)布:
         今天做好了信號發(fā)生器,試了一下。證明born是對的。 我是RETI沒用好。  | 
  |
| 20樓: | >>參與討論 | 
| 作者: yexrui 于 2005/9/23 8:21:00 發(fā)布:
         born 酷.... 佩服!  | 
  |
  | 
    
 
  | 
  
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號  |