打印

PIC单片机不用按键的复位方法

[复制链接]
4564|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szjgjg|  楼主 | 2008-7-17 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请大家来讨论不用按键的情况下,怎么是单片机复位
沙发
xieyuanbin| | 2008-7-18 13:08 | 只看该作者

WDT复位

做一个死循环,不喂狗,被狗咬死

使用特权

评论回复
板凳
lifengtao| | 2008-7-18 14:53 | 只看该作者

断电上电或者……

goto main

使用特权

评论回复
地板
cheungman| | 2008-7-18 17:46 | 只看该作者

re

asm(" reset")



_asm 
    reset 
_endasm

使用特权

评论回复
5
szjgjg|  楼主 | 2008-7-18 21:21 | 只看该作者

re:4lou

没看懂

使用特权

评论回复
6
xieyuanbin| | 2008-7-18 21:43 | 只看该作者

4楼忽悠了.

PIC没RESET指令

使用特权

评论回复
7
cheungman| | 2008-7-18 23:43 | 只看该作者

呵呵,版主是不是冤枉我了???

re szjgjg:这是软件复位,详情请看下边描述.

re xieyuanbin:呵呵,我可没忽悠,理由如下,请看红色部分.

(1).在PICC18编译器中,有一个头文件,pic18.h中,有如下几个宏:
#define    CLRWDT()     asm(" clrwdt")
#define    NOP()             asm(" nop")
#define    RESET()          asm(" reset")
#define    SLEEP()          asm(" sleep")

(2).在MCC18编译器中,各个型号芯片的头文件中都有如下几个宏:
#define Nop()         {_asm nop _endasm}
#define ClrWdt()     {_asm clrwdt _endasm}
#define Sleep()        {_asm sleep _endasm}
#define Reset()        {_asm reset _endasm}






使用特权

评论回复
8
machunshui| | 2008-7-20 16:23 | 只看该作者

pic18系列有reset

pic18系列有reset

使用特权

评论回复
9
兰天白云| | 2008-7-21 09:00 | 只看该作者

PIC单片机种类太多,提问时最好讲清楚是哪个系列的

使用特权

评论回复
10
xieyuanbin| | 2008-7-27 13:11 | 只看该作者

的确,18以上的单片机都增加了RESET指令

使用特权

评论回复
11
szjgjg|  楼主 | 2008-7-30 07:54 | 只看该作者

re;10

用的是10F222,做一个充电器,这个东西没有复位指令的,原本是想实现更换电池后自动复位,现在看来不行,已经改用goto main了,但是现在还是有问题,请高手指教,先把图贴上

使用特权

评论回复
12
szjgjg|  楼主 | 2008-7-30 08:08 | 只看该作者

接11楼

我的流程是这样的:充电器上电等待电池,无电池循环等待,有电池后充电,采样、数字滤波,连续电压不上升告警停充(goto main),电压上升后 充电,采样、数字滤波,比较电压是否有突然降低,如有说明更换电池,没有的话比较本次采样值与上次采样值,上升继续充,下降则表明已经充满,停充并判断是否更换电池。
现在问题有两个:1、充满后停2--3秒有自动充电(过冲),并循环
2、电压采样点电压会出现负值,波形如图:

使用特权

评论回复
13
兰天白云| | 2008-7-30 08:57 | 只看该作者

对于12楼的两问题,采用多次判断的方法可以解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

34

帖子

0

粉丝