PIC16F883上电后自己延时2-5秒
本帖最后由 lovehebut 于 2014-3-13 11:18 编辑各位大侠,我在使用PIC16F883的时候会在上电后马上点亮一个LED,但是这个LED会在2-5秒才被点亮,具体测试如下:
1--LED的的电平确实是2-5秒后才从单片机输出的
2--电源用的3.3V,用示波器观看,上电的时候电源没有延迟
3--直接用3.3V,不经过单片机点亮一个LED,这样是没问题的
4--考虑问题出在单片机上
5--用的是8M外部晶振,开始怀疑是晶振的问题,可是换成内部晶振,结果一样
6--已经在配置里面去掉了上电延时和时钟切换
7--每一个IO口都会有这个延时
以上就是我的测试过程,请大家帮忙看看,谢谢. 配置字寄存器(CONFIG)中的FOSC<2:0> 位配置确定是HS? 在线调试看OSCCON的值
bit 7 未实现:读为0
bit 6-4 IRCF<2:0>:内部振荡器频率选择位
111 = 8MHz
110 = 4MHz (默认)
101 = 2MHz
100 = 1MHz
011 = 500kHz
010 = 250kHz
001 = 125kHz
000 = 31kHz(LFINTOSC)
bit 3 OSTS:振荡器起振延时状态位(1)
1 = 器件使用由配置字寄存器中的FOSC<2:0> 定义的外部时钟源
0 = 器件使用内部振荡器(HFINTOSC 或LFINTOSC)
bit 2 HTS:HFINTOSC 状态位(高频 — 8 MHz 到125 kHz)
1 = HFINTOSC稳定
0 = HFINTOSC不稳定
bit 1 LTS:LFINTOSC 稳定位(低频 — 31 kHz)
1 = LFINTOSC稳定
0 = LFINTOSC不稳定
bit 0 SCS:系统时钟选择位
1 = 内部振荡器用作系统时钟
0 = 时钟源由配置字寄存器中的FOSC<2:0> 定义
注1: 双速启动时如果选择了LP、XT 或HS 振荡器模式或使能了故障保护模式会使该位复位为0。 查复位电路 gaolf_2012 发表于 2014-3-12 12:23
配置字寄存器(CONFIG)中的FOSC 位配置确定是HS?
是的,确定是HS,而且单片机运行应该是正常的,因为我用示波器看了定时器的频率. xmcsl 发表于 2014-3-12 12:36
查复位电路
没有用复位电路,直接上电复位的 gaolf_2012 发表于 2014-3-12 12:30
在线调试看OSCCON的值
bit 7 未实现:读为0
bit 6-4 IRCF:内部振荡器频率选择位
我用串口输入了 OSTS和HTS, 均为1,也就说明用的是外部晶振,并且稳定 而且串口的输出也是延迟的,就说明应该是程序延迟运行的,好奇怪. 用PIC单片机外部晶振时,发现上电会起振困难,甚至晶振靠近一些物体会起振不了的,
不过你也用内部晶振了,就不知道为什么了.
可以把示波器调好量复位脚和晶振看看是否正常. 测试了一下晶振的输出脚,确实是经过2-5秒后起震,可是在用内部晶振的时候也存在这个问题,就很不理解了 1.LED限流电阻不合适。2.买到了假片子。 好多的芯片是假冒的 LED的限流电阻已经尝试过330欧姆和1000欧姆的了,不解决问题的 ggddll 发表于 2014-3-12 18:37
好多的芯片是假冒的
假冒的?不能吧?假冒的为什么其他功能是正常的呢?只要程序开始运行就一切正常了? 内部晶振,内部晶振。。。{:curse:} lovehebut 发表于 2014-3-12 22:22
假冒的?不能吧?假冒的为什么其他功能是正常的呢?只要程序开始运行就一切正常了? ...
非PIC 又换了一片单片机,还是这个样子,晕 上图,上配置字配置内容 已经把外置晶振焊掉了,故障依旧 配置寄存器中RE3/MCLR引脚配置为MCLR,RE3引脚上的复位电路可能有问题。
将MCLR配置为内部复位试一下 szxszx 发表于 2014-3-13 09:54
配置寄存器中RE3/MCLR引脚配置为MCLR,RE3引脚上的复位电路可能有问题。
将MCLR配置为内部复位试一下 ...
原来已经试过了,刚才又试了一下,故障依旧 {:sweat:} 本帖最后由 szxszx 于 2014-3-13 10:19 编辑
1、程序精简到只点亮LED:排除程序问题;
2、RE3/MCLR引脚接10K电阻到VDD:排除复位电路问题;
3、换电源:排除电源问题。
szxszx 发表于 2014-3-13 10:18
1、程序精简到只点亮LED:排除程序问题;
2、RE3/MCLR引脚接10K电阻到VDD:排除复位电路问题;
3、换电源: ...
1--程序现在已经是只点亮LED
2--现在已经是10k电阻接到VDD了
3--已经直接用3.3V供电了
可是故障依旧 检查10k电阻是不是有问题 szxszx 发表于 2014-3-13 10:36
检查10k电阻是不是有问题
用万用表测量10K电阻正好10K,无语了 貌似逗人玩的 已经解决了,打技术支持搞定的,问题出在“Debug”和“Release” 选择,在烧程序的时候左边有个下拉框,如果选择Debug就会出现这种情况,改为Release后问题解决,
谢谢帮忙,分数给szxszx吧. 各位,如何给分啊? 不会操作 {:sad:} 没人肯教一下吗?
页:
[1]