標(biāo)題: [求助]請問這個程序執(zhí)行完一次中斷之后返回到哪里繼續(xù)執(zhí)行呢 [打印本頁]

作者: 瀟瀟雨歇    時間: 2012-6-4 19:51
標(biāo)題: [求助]請問這個程序執(zhí)行完一次中斷之后返回到哪里繼續(xù)執(zhí)行呢

請問這個程序執(zhí)行完一次中斷之后返回到哪里繼續(xù)執(zhí)行呢?

我怎么一直覺得它只執(zhí)行一次P1.0取反之后就不再返回到主程序執(zhí)行什么了呢?

究竟返回后到哪?又去執(zhí)行什么呢?

START: MOV TMOD,#01H ;T0為定時器狀態(tài),工作方式1
  MOV TL0,#0CH ;T0的低位定時初值
  MOV TH0,#0FEH ;T0的高位定時初值
  MOV TCON,#10H ;打開T0
  SETB ET0 ;1ET0,即允許T0中斷
  SETB EA ;1EA,即充許全局中斷
  AJMP $ ;動態(tài)暫存
000BH: AJMP IST0 ;轉(zhuǎn)入T0中斷服務(wù)程序入口地址IST0
IST0: MOV TL0,#0CH ;重置定時器初值
  MOV TH0,#0FEH ;重置定時器初值
  CPL P1.0 ;P1.0取反
  RET1 ;中斷返回

作者: 青蘋果    時間: 2012-6-4 21:25

樓主應(yīng)該是典型的一竅不通

 

不是想打擊你,,,,后面的注釋是多么的清晰

 

 

程序上看到的是只有一個P1.0取反,但不是說這個地方只會運(yùn)行一次,每次T0產(chǎn)生中斷,都會執(zhí)行CPL P1.0

 

 

RETI  后面的 注釋說得很清楚,該指令是中斷返回,也就是退出中斷,會到原來的地方也就是AJMP   $

 


作者: 瀟瀟雨歇    時間: 2012-6-5 00:41

對呀 不是您打擊 確實是小白

貌似懂了些 就是說 AJMP $是在原地跳轉(zhuǎn) 等到定時器溢出后 TF0=1 中斷T0響應(yīng) 再次給定時器賦初值 再次開始計時 同時TF0自動被清零 程序返回 AJMP $繼續(xù)等待定時器溢出

我的理解對嗎 還是說在TF0被清零之后 中斷開關(guān)EA ET0也清零 程序回到AJMP $不再允許中斷程序執(zhí)行?


作者: 青蘋果    時間: 2012-6-5 09:00
我建議您,還是好好看看書
作者: 瀟瀟雨歇    時間: 2012-6-5 10:58
這位大哥,您如果有好的教材可否推薦一本,我這真是不知道哪些書適合初學(xué)者看的,這些東西都是我從網(wǎng)站(http://www.torrancerestoration.com/mcuteach/252.htmlhttp://www.torrancerestoration.com/mcuteach/252.html)上一篇一篇看來得,可能本人在這方面的理解能力確實存在問題,有些知識我拿不準(zhǔn),有時候也可能聯(lián)系不起來。但這些問題都是我在看講解的時候的疑問,我沒有別的意思,確實是拿不準(zhǔn)才拿出來請教各位的,如果您還有耐心,就請您指點一下吧,如果您覺得我不值得教,那希望不要因為我影響您的心情。
作者: 青蘋果    時間: 2012-6-5 17:14

摸索吧,本人不看教程,沒有你需要的東西


作者: 瀟瀟雨歇    時間: 2012-6-9 10:23
好吧 謝謝




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1