打印

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

[复制链接]
3949|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lylkr|  楼主 | 2008-4-27 22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是16f877a

#include<p16f877a.inc>
   org 00
   nop
   movlw  05h
   clrf   01h
   movwf  30h
   bsf 0bh,2
   bcf 0bh,2
   clrf 01h
   bsf 03h,5
   movlw 0d7h
   movwf 81h
      
   bcf 03h,5  
   clrf 01h
   bcf  0bh,2
   end       

这是源程序
软件模拟时,tmr0按“1”递增,溢出则中断标志置“1”,进入处理程序后,可以将其清零。

   
但,icd2在线调试是连接、编程都很正常
但是,执行
  bcf 03h,5  
   clrf 01h
   bcf  0bh,2
   end       
执行 bcf 03h,5后 tmr0中断标志位T0IF立即置1,而且执行 clrf 01h后 tmr0无法清零,执行 bcf  0bh,2后 中断标志位也无法清零,而且tmr0的递增数值也不相同,时大时小,即使在相同语句,每次运行时的递增数值也不相同。

org 00
   nop
   movlw  05h
   clrf   01h
   movwf  30h
之后的两条语句则可以对t0if进行置1、清零的操作


请指点问题到底出现在什么地方???
沙发
兰天白云| | 2008-4-29 21:56 | 只看该作者

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

你要知道一点,TMR0永远不停

使用特权

评论回复
板凳
lylkr|  楼主 | 2008-5-2 16:47 | 只看该作者

回楼上

这个我知道
65ms的延时应该能看到闪烁的效果吧
但二极管始终是亮的

使用特权

评论回复
地板
xieyuanbin| | 2008-5-2 20:30 | 只看该作者

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

不知道现在如何.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

20

帖子

0

粉丝