Re: [問題] 詭異的 timer 中斷

作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2013-12-29 20:45:19
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 小小的心意 感激不盡 !!
作者: asdfghjklasd (好累的大一生活)   2012-01-01 21:19:00
你可以夾起來喔!
作者: cory8249 (Cory)   0000-00-00 00:00:00
非常感謝大大的幫忙 但是 還是不會閃 QQ結果 Port 1 0,2,4,6 高電位 1,3,5,7 低電位感覺像是沒有跳進去 T0ISR而且看課本的範例程式 都沒有對 TF0 / TR0 做改變所以當初就沒有加這幾行 不曉得有沒有差 ?
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   0000-00-00 00:00:00
你不清TF0他就會一直發生INTERRUPT,結果應該是閃太快看不出有沒有閃,如果是進不去INTERRUPT 你要看看是不是MON51在做怪(確認版本跟中斷對照)我都用真的ICE,關於MON51就要看看其他有使用mon51的人有沒有其他經驗了或者,你BYPASS MON51接燒進去看看(位址改成0基準)這麼小的城市應該沒什麼好用MON51的,你用軟體模擬就能看了對了,我聽說T0經常被一些監督軟體佔用,你要不要用T2看看?(有用UART/232T1也會被佔用)
作者: cory8249 (Cory)   0000-00-00 00:00:00
原來真的是 MON51 作怪... T0ISR 放在 8006 不是 800B問老師得到這個結果 看到都快吐血了 @@"真的非常感謝您願意幫我解這個蠢問題 m(_ _)m可惜身為電機小魯蛇 沒正妹可以介紹 真是不好意思了

Links booklink

Contact Us: admin [ a t ] ucptt.com