要证明不是软件复位,可以通过以下方法进行识别:
检查寄存器状态
硬件复位通常会对寄存器产生影响,例如程序计数器(PC)可能会被重置为0000H,堆栈指针(SP)可能会被设置为07H,状态字(PSW)可能会被设置为00H等。而软件复位对SP和PSW没有影响。
检测上电标志
可以在系统正常运行时将某个或两个片内RAM单元(例如40H单元)设置为上电标志(例如78H)。系统复位后,如果这些单元的内容不等于78H,则可以判断为硬件复位;否则,可以认为是软件复位。
使用非易失性RAM或EEPROM
对于看门狗复位等硬件复位,可以通过设置一个可掉电保护的观测单元来进行识别。在系统正常运行时,该观测单元应保持正常值(例如AAH),在主程序中将其清零。由于该单元掉电可保护,因此开机时通过检测该单元是否为正常值可以判断是否看门狗复位。
通过上述方法,可以有效地识别系统复位是否为软件复位。建议在实际应用中结合多种方法进行判断,以提高识别的可靠性。