PIC单片机复位问题。
我用的是:PIC12F508芯片,现在是掉电后马上上电,程序会从断点处接着执行。现在我不想让它接着执行,想让转到另外一个标号处执行。看了手册,掉电后再上电,上面说状态标志...
我用的是:PIC12F508芯片,现在是掉电后马上上电,程序会从断点处接着执行。
现在我不想让它接着执行,想让转到另外一个标号处执行。
看了手册,掉电后再上电,上面说状态标志位STATUS的第7位会改变。可是我在程序中监控它的时候,第7位没有变化啊。
如:程序中追加:BTFSS STATUS,7;如果第7位是1,跳过下一句,继续执行正常程序,若为0,则执行下面的GOTO语句。
GOTO L001; L001是一个标号。
................; 下边就是正常的程序了。
然后循环执行以上的代码段。
能解决问题的再加100分。
在VDD和VSS之间有一个大电容,掉电后,电容可以供电。我检测了一下,掉电后,管脚的电压下降,管脚的电平(1和0)没有跳变。 展开
现在我不想让它接着执行,想让转到另外一个标号处执行。
看了手册,掉电后再上电,上面说状态标志位STATUS的第7位会改变。可是我在程序中监控它的时候,第7位没有变化啊。
如:程序中追加:BTFSS STATUS,7;如果第7位是1,跳过下一句,继续执行正常程序,若为0,则执行下面的GOTO语句。
GOTO L001; L001是一个标号。
................; 下边就是正常的程序了。
然后循环执行以上的代码段。
能解决问题的再加100分。
在VDD和VSS之间有一个大电容,掉电后,电容可以供电。我检测了一下,掉电后,管脚的电压下降,管脚的电平(1和0)没有跳变。 展开
4个回答
展开全部
一开始我很奇怪你的现象,单片机掉电后再起程序应该是从0000h开始重新执行的,而不是从掉线点。后来看了你的补充才知道原来你的电容等同于一个电池给它供着电,虽然电压下降,但可能尚未到掉电的电压(PIC12F508的最小输供电电压应该是2.0V)。
而你看手册上说的掉电后在上电,这个过程上是针对单片机来说的,掉电是只供给单片机电源输入引脚的电压已经低于掉电电压。此时单片机已经断电了。而你的情况是单片机还有一个电容供电,在你断电后立刻上电,相对来说,它根本没有掉电。
而如果你希望检测到这个现象的发生,单片机可以知道并记录下来的话。有两种方法,一是把大电容换成小容值的,让单片机实实在在断电。二是可以用其他IO引脚来检测,用IO引脚的电平变化功能(但这必须是有多余的引脚,PIC12F508本身就是八引脚单片机,如果你的电路里吧所有的引脚都占用了,那没法检测了)
而你看手册上说的掉电后在上电,这个过程上是针对单片机来说的,掉电是只供给单片机电源输入引脚的电压已经低于掉电电压。此时单片机已经断电了。而你的情况是单片机还有一个电容供电,在你断电后立刻上电,相对来说,它根本没有掉电。
而如果你希望检测到这个现象的发生,单片机可以知道并记录下来的话。有两种方法,一是把大电容换成小容值的,让单片机实实在在断电。二是可以用其他IO引脚来检测,用IO引脚的电平变化功能(但这必须是有多余的引脚,PIC12F508本身就是八引脚单片机,如果你的电路里吧所有的引脚都占用了,那没法检测了)
展开全部
电压下降了,但是管脚确没有0和1的跳变,是因为那个变化的电压幅度问题,没有达到那个01电平变化的值,比如他默认高于3.5V才是1,可能你电压虽然下降了,但是都在3.5V以上,所以就没有跳变,建议检查下电路再,希望对你有帮助
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己知道电容太大了,掉电后电容电压老长时间不下降说明负载够轻,减小电容容量就是了,解决问题的方法很多,不要想的太难了。
就像一个肥皂厂检测空肥皂盒一样,专家们总是想什么光电传感,什么称重啦,还搞什么单片机;其实别人弄个电风扇就可以了,空的肥皂盒自然会被吹跑!
有的时候要换个角度思考。
就像一个肥皂厂检测空肥皂盒一样,专家们总是想什么光电传感,什么称重啦,还搞什么单片机;其实别人弄个电风扇就可以了,空的肥皂盒自然会被吹跑!
有的时候要换个角度思考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得LZ需要个电压检测芯片,掉电后由大电容继续供电,程序继续运行检测是否掉电。不然的话掉电后马上上电,外加大电容供电,相当与没掉电。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询