|
用的是16f877a<br /><br />#include<p16f877a.inc><br /> org 00<br /> nop<br /> movlw 05h<br /> clrf 01h<br /> movwf 30h<br /> bsf 0bh,2<br /> bcf 0bh,2<br /> clrf 01h<br /> bsf 03h,5<br /> movlw 0d7h<br /> movwf 81h<br /> <br /> bcf 03h,5 <br /> clrf 01h<br /> bcf 0bh,2<br /> end <br /><br />这是源程序<br />软件模拟时,tmr0按“1”递增,溢出则中断标志置“1”,进入处理程序后,可以将其清零。<br /><br /> <br />但,icd2在线调试是连接、编程都很正常<br />但是,执行<br /> bcf 03h,5 <br /> clrf 01h<br /> bcf 0bh,2<br /> end <br />执行 bcf 03h,5后 tmr0中断标志位T0IF立即置1,而且执行 clrf 01h后 tmr0无法清零,执行 bcf 0bh,2后 中断标志位也无法清零,而且tmr0的递增数值也不相同,时大时小,即使在相同语句,每次运行时的递增数值也不相同。<br /><br />org 00<br /> nop<br /> movlw 05h<br /> clrf 01h<br /> movwf 30h<br />之后的两条语句则可以对t0if进行置1、清零的操作<br /><br /><br />请指点问题到底出现在什么地方??? |
|