作者:
WolfLord (呆呆小狼 N )
2013-12-29 20:45:19ORG 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 小小的心意 感激不盡 !!
非常感謝大大的幫忙 但是 還是不會閃 QQ結果 Port 1 0,2,4,6 高電位 1,3,5,7 低電位感覺像是沒有跳進去 T0ISR而且看課本的範例程式 都沒有對 TF0 / TR0 做改變所以當初就沒有加這幾行 不曉得有沒有差 ?