| 
 
| 用的是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 />请指点问题到底出现在什么地方??? | 
 |