作者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