① 如果是电源初始加电,则进行原始状态的初始化。这种情况最简单。
② 如果属于程序跑飞引起的软件复位、软硬件复位、非法地址复位,或者人工强行复位,则应该依据具体情况尽量恢复数据或修正参数,以便尽最大可能不影响或少影响程序的正常运行(恢复和修正数据的具体算法这里不再深入探讨)。
③ 如果是欠压复位,则尽量从被打断的程序断点处重新开始执行程序。具体的实现方法和步骤可以是: 复位之前—— 单片机 响应PFO中断请求而进入其服务程序后,保存堆栈指针SP当前值到指定RAM单元,把单片机推入停机状态;复位之后——待电源恢复后, MAX813L得电而从RESET端送出高电平信号,唤醒停机状态下的单片机。若唤醒后的单片机再检测到是欠压复位,则首先复原先前的SP值,再利用一条 RET(或RETI)指令弹出停机之前的程序断点到PC,从而可以继续执行前面的任务。
参考文献
[1] 李学海.PIC 单片机 实用教程——基础篇/扩展篇. 北京:北京航空航天大学出版社,2002.
[2] 李学海.EM78 单片机 实用教程——基础篇/扩展篇. 北京:电子工业出版社,2003.
[3] 李学海.凌阳8位 单片机 ——基础篇/提高篇. 北京:北京航空航天大学出版社,2005.
[4] 李学海.PIC 单片机 原理. 北京:北京航空航天大学出版社,2004.
[5] 李学海.PIC 单片机 实践. 北京:北京航空航天大学出版社,2004
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机