【已解决】诡异的PIC,触碰晶振的一脚,程序就能运行,否则不能运行

2020-02-06 10:27发布

我用的芯片是PIC16F72;C语言编程,外部12M晶振,电容为22P,为了测试板子工作正常与否,我在程序里设计复位后让某个LED亮一会,然后关闭,再让另一个灯不停地闪烁,并在PWM输出引脚输出一个固定频率的PWM波。

程序在MPLAB的SIM里运行程序没有问题,但是把程序写进Flash后,发现灯不亮,PWM无输出,但是晶振已经起振。无意中发现,如果用示波器的探头(参考端接地)去碰晶振的某个脚的话,灯就亮起来了,反复试验发现,只要晶振的某个引脚接触了人体或者探头,程序就能运行,否则就不能运行,

当有东西接触晶振引脚时,检测PWM输出发现周期不正确,占空比也不规则,当不与晶振引脚接触时,程序就停止。

后来我使能了看门狗,发现当不接触晶振引脚时,过一会程序就会复位(灯灭了),但不会重新运行(灯没有再亮起来)。这时再去接触晶振引脚程序又能运行起来,
         
         在下能力有限,实在无法解决这个问题,故来请教,因时间紧迫,急盼回复,感激不尽!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
cooleaf
1楼-- · 2020-02-08 00:30
晶振增益不够,得选择HS的高增益模式才行。
niphy
2楼-- · 2020-02-08 05:58
我的和你稍微有些不同
我的好像是复位电路的问题,MAPLAB下运行完全没问题

烧写完程序后,ICD2仿真头不拔,上电重启,则不运行,这时拔掉仿真头马上运行

但是烧写完程序后,ICD2仿真头拔掉,上电重启则不运行,如果插上仿真头再拔掉程序运行

真的奇怪啊!!11

我的复位电路如下:

PIC24H复位电路 (原文件名:44.jpg)
niphy
3楼-- · 2020-02-08 07:37
我的问题解决了,原因是我的AVDD脚悬空,没有接高电平

我要晕死了,查了一天才找出这个BUG
muruhanjiang
4楼-- · 2020-02-08 10:34
 精彩回答 2  元偷偷看……
o11o
5楼-- · 2020-02-08 12:50
MARK
hanweng2012
6楼-- · 2020-02-08 14:28
晶振问题啊。。。。。。。。。。。。。。

一周热门 更多>