单片机 reset 的C语言实现

2025-03-11 03:35:40
推荐回答(4个)
回答1:

方案一:先要设计一个相应的硬件电路配合:选P1口的一个端口,通过一个10k限流电阻连接到一个PNP三极管的b极,三极管的e极接电源Vcc,c极接单片机的RST引脚(由电容和电阻构成的基本复位电路还得有)。编程中给这个端口清“0”就可以实现复位(复位后P1端口变高,复位信号撤除)。这个方案是否真正可行,需要实际试验一下并调整设计参数。

方案二:对于自带看门狗(Watch dog)的单片机,只要停止喂狗信号自然就能实现软件复位。

方案三:对于没有自带看门狗的单片机,接一个外接看门狗芯片,程序设计中正常情况下定期喂狗,需要复位了停止喂狗(与方案二相同)。

回答2:

这个是曾经一个天才级的年轻人写的语句
#define Reset() ((void (code *) (void)) 0x0000) ()

你在要复位的的时候,添加Reset();就可以实现软件复位了

回答3:

硬件很简单,没必要软件

回答4:

这个很少碰见。
一般可以使用看门狗定时器来复位,这是为了防止程序跑飞。
如果想让程序从头开始就设置一个大循环。
不知道你的51单片机这样复位有什么用。