方案一:先要设计一个相应的硬件电路配合:选P1口的一个端口,通过一个10k限流电阻连接到一个PNP三极管的b极,三极管的e极接电源Vcc,c极接单片机的RST引脚(由电容和电阻构成的基本复位电路还得有)。编程中给这个端口清“0”就可以实现复位(复位后P1端口变高,复位信号撤除)。这个方案是否真正可行,需要实际试验一下并调整设计参数。
方案二:对于自带看门狗(Watch dog)的单片机,只要停止喂狗信号自然就能实现软件复位。
方案三:对于没有自带看门狗的单片机,接一个外接看门狗芯片,程序设计中正常情况下定期喂狗,需要复位了停止喂狗(与方案二相同)。
这个是曾经一个天才级的年轻人写的语句
#define Reset() ((void (code *) (void)) 0x0000) ()
你在要复位的的时候,添加Reset();就可以实现软件复位了
硬件很简单,没必要软件
这个很少碰见。
一般可以使用看门狗定时器来复位,这是为了防止程序跑飞。
如果想让程序从头开始就设置一个大循环。
不知道你的51单片机这样复位有什么用。