定时器为何无法清零、无法清除中断标志位

[复制链接]
5494|3
 楼主| lylkr 发表于 2008-4-27 22:20 | 显示全部楼层 |阅读模式
用的是16f877a<br /><br />#include&ltp16f877a.inc&gt<br />&nbsp;&nbsp;&nbsp;org&nbsp;00<br />&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;movlw&nbsp;&nbsp;05h<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;01h<br />&nbsp;&nbsp;&nbsp;movwf&nbsp;&nbsp;30h<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;0bh,2<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;0bh,2<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;01h<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;03h,5<br />&nbsp;&nbsp;&nbsp;movlw&nbsp;0d7h<br />&nbsp;&nbsp;&nbsp;movwf&nbsp;81h<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;03h,5&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;01h<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;&nbsp;0bh,2<br />&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />这是源程序<br />软件模拟时,tmr0按“1”递增,溢出则中断标志置“1”,进入处理程序后,可以将其清零。<br /><br />&nbsp;&nbsp;&nbsp;<br />但,icd2在线调试是连接、编程都很正常<br />但是,执行<br />&nbsp;&nbsp;bcf&nbsp;03h,5&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;01h<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;&nbsp;0bh,2<br />&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />执行&nbsp;bcf&nbsp;03h,5后&nbsp;tmr0中断标志位T0IF立即置1,而且执行&nbsp;clrf&nbsp;01h后&nbsp;tmr0无法清零,执行&nbsp;bcf&nbsp;&nbsp;0bh,2后&nbsp;中断标志位也无法清零,而且tmr0的递增数值也不相同,时大时小,即使在相同语句,每次运行时的递增数值也不相同。<br /><br />org&nbsp;00<br />&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;movlw&nbsp;&nbsp;05h<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;01h<br />&nbsp;&nbsp;&nbsp;movwf&nbsp;&nbsp;30h<br />之后的两条语句则可以对t0if进行置1、清零的操作<br /><br /><br />请指点问题到底出现在什么地方???
兰天白云 发表于 2008-4-29 21:56 | 显示全部楼层

你要对TMR0清零,清除中断标志位吗?

你要知道一点,TMR0永远不停
 楼主| lylkr 发表于 2008-5-2 16:47 | 显示全部楼层

回楼上

这个我知道<br />65ms的延时应该能看到闪烁的效果吧<br />但二极管始终是亮的
xieyuanbin 发表于 2008-5-2 20:30 | 显示全部楼层

以前ICD2对TMR0的支持不是很好.

不知道现在如何.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部