PIC16F877A程序自动重启

[复制链接]
4240|8
 楼主| 5_0_5 发表于 2007-3-26 17:40 | 显示全部楼层 |阅读模式
如下,程序本应顺序运行到最后一句死循环的。实际运行是,运行到最后一句后,大概2秒左右,又从头开始执行。请各位高手帮帮忙看看怎么回事。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0000H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;MAIN<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0004H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;$<br />MAIN:&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;T1CON<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;TMR1H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;TMR1L<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;INTCON<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADCON0,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;关AD<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STATUS,&nbsp;RP0&nbsp;&nbsp;;BANK1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;00H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;TRISA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;07H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;ADCON1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;PA口都为数字IO<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;PIE1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;禁止中断<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STATUS,&nbsp;RP0&nbsp;&nbsp;;BANK0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;00H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;PORTA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLRF&nbsp;&nbsp;&nbsp;&nbsp;PIR1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;清标志位<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;&nbsp;&nbsp;30H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;&nbsp;&nbsp;T1CON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;1:8预分频<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T1CON,TMR1ON&nbsp;;开TIMER1<br />T1_WAIT:&nbsp;&nbsp;BTFSS&nbsp;&nbsp;&nbsp;PIR1,&nbsp;TMR1IF<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;T1_WAIT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTA,0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PIR1,&nbsp;TMR1IF&nbsp;;清除溢出标志<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;&nbsp;&nbsp;$<br />
yezhenyu 发表于 2007-3-26 20:30 | 显示全部楼层

烧录程序时,需关掉看门狗。

  
 楼主| 5_0_5 发表于 2007-3-27 07:43 | 显示全部楼层

有可能是吧,我的烧录器无法设置配置字

我的烧录器是51仿真器附带的功能,无法设置配置字
yezhenyu 发表于 2007-3-27 13:13 | 显示全部楼层

看一下877的DATASHEET

可在程序的开头加入类似语句,直接汇编即可。&nbsp;__CONFIG&nbsp;_CP_OFF&nbsp;&&nbsp;_WDT_OFF&nbsp;&&nbsp;_XT_OSC
 楼主| 5_0_5 发表于 2007-3-29 18:34 | 显示全部楼层

__CONFIG

__CONFIG&nbsp;_CP_OFF&nbsp;&&nbsp;_WDT_OFF&nbsp;&&nbsp;_XT_OSC应该对应的有二进制代码吧,那么二/十六进制代码是什么?
xieyuanbin 发表于 2007-3-30 08:53 | 显示全部楼层

CONFIG字在特殊的存储空间.

可看一下数据手册.具体在HEX文件的什么地方我也没注意过.
aihe 发表于 2007-3-30 10:04 | 显示全部楼层

END

  
yewuyi 发表于 2007-3-30 16:03 | 显示全部楼层

一般在2007这个地址上是CONFIG

  
javie 发表于 2007-3-30 16:05 | 显示全部楼层

俺有两年没玩过PIC了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

402

帖子

2

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