作者WolfLord (呆呆小狼)
標題Re: [問題] 詭異的 timer 中斷
時間Sun Dec 29 20:45:19 2013
ORG 8000H
LJMP MAIN
ORG 800BH
LJMP T0ISR
ORG 8030H
MAIN: MOV P1, #55H
MOV TMOD, #01H
MOV TH0, #00H
MOV TL0, #00H
MOV IE, #82H
SETB TR0
SJMP $
T0ISR: XRL P1, #0FFH
CLR TR0
MOV TH0, #00H
MOV TL0, #00H
CLR TF0
SETB TR0
RETI
END
※ 引述《cory8249 (Cory)》之銘言:
: 大家好:
: 我目前卡在一個看起來非常簡單的問題
: 已經 debug 好幾天 依然未解 快瘋了 Orz
: 硬體環境是 AT89S51 + 32KB SRAM + RS232
: 89S51 已燒錄 MON51 V12 監控程式 從 SRAM 去跑程式
: 程式 ORG 8000H Timer 0 中斷點應為 800BH
: Timer 0 mode 1 控制 LED 閃爍
: 1. 非中斷方式 確認OK
: http://pastie.org/8582692
: 2. ISR 中斷方式 有渺茫機率會成功
: http://pastie.org/8582991
: HEX 檔: http://pastie.org/8582993
: 以參考眾多網站範例與書本講義
: 換了很多種打法
: 但是就是不會 Work
: 某幾次成功 但再過幾分鐘再燒一次 就又失敗了
: 而且伴隨另一顆 8255 的 LED 閃爍
: 很懷疑是電路接錯
: 但是... 我燒過其他非中斷的程式都很正常
: 請各位高手們幫忙看看
: 願意提供 5000P 小小的心意 感激不盡 !!
--
劍兮,劍兮,食無魚,行無車,無以家養,不如歸去不如歸去~~ ▁▁
-= A23203 =- ▕武羅▏
BM4GRM Harlock WolfLord ▕夫得▏
 ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.230.75.94
1F:推 cory8249:非常感謝大大的幫忙 但是 還是不會閃 QQ 12/30 02:12
2F:→ cory8249:結果 Port 1 0,2,4,6 高電位 1,3,5,7 低電位 12/30 02:14
3F:→ cory8249:感覺像是沒有跳進去 T0ISR 12/30 02:14
4F:→ cory8249:而且看課本的範例程式 都沒有對 TF0 / TR0 做改變 12/30 02:15
5F:→ cory8249:所以當初就沒有加這幾行 不曉得有沒有差 ? 12/30 02:15
6F:→ WolfLord:你不清TF0他就會一直發生INTERRUPT,結果應該是閃太快 12/30 05:04
7F:→ WolfLord:看不出有沒有閃,如果是進不去INTERRUPT 你要看看是不是 12/30 05:05
8F:→ WolfLord:MON51在做怪(確認版本跟中斷對照)我都用真的ICE,關於 12/30 05:06
9F:→ WolfLord:MON51就要看看其他有使用mon51的人有沒有其他經驗了 12/30 05:06
10F:→ WolfLord:或者,你BYPASS MON51接燒進去看看(位址改成0基準) 12/30 05:07
11F:→ WolfLord:這麼小的城市應該沒什麼好用MON51的,你用軟體模擬就能看 12/30 05:08
12F:→ WolfLord:了 12/30 05:08
13F:→ WolfLord:對了,我聽說T0經常被一些監督軟體佔用,你要不要用T2看 12/30 05:10
14F:→ WolfLord:看?(有用UART/232T1也會被佔用) 12/30 05:10
15F:推 cory8249:原來真的是 MON51 作怪... T0ISR 放在 8006 不是 800B 12/30 23:17
16F:→ cory8249:問老師得到這個結果 看到都快吐血了 @@" 12/30 23:17
17F:→ cory8249:真的非常感謝您願意幫我解這個蠢問題 m(_ _)m 12/30 23:19
18F:→ cory8249:可惜身為電機小魯蛇 沒正妹可以介紹 真是不好意思了 12/30 23:20
19F:推 asdfghjklasd:你可以夾起來喔! 01/01 21:19