免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机复位标志位的设置与应用研究单片机复位标志位的设置与应用研究 技术分类 嵌入式系统 2006 09 17 来源 21IC 中国电子网 作者 李学海 刘治山 引言引言 设置复位标志位便于区分不同原因引发的复位 作为一种新技术被越来越多的新型单 片机所采纳 例如 Philips 公司的 P87LPC700 和 P89LPC900 系列 Freescale 公司 原 Motorola 半导体部 的 MC68HC05 系列和 MC68HC08 系列 Sunplus 公司的 SPMC65 系列 Microchip 公司的 PIC 系列等 内部都设计了专门用于记录各种复位标志的状态寄存器 MC68HC08 系列有一个复位状态寄存器 负责记录 6 种复位标志位 上电复位 引脚复 位 看门狗复位 非法指令复位 非法地址复位和欠压复位 SPMC65 系列有一个系统控制 寄存器 负责记录 5 种复位标志位 上电复位 外部复位 看门狗复位 非法地址复位和 欠压复位 51 兼容的 P89LPC900 系列有一个复位源寄存器 负责记录 6 种复位标志位 欠 压复位 上电复位 外部复位 看门狗复位 软件复位和 UART 收到间隔字符复位 主要作 为进入 ISP 监控程序的途径之一 就连初学者很常用的 AT89S51 52 和 P89C52X2 也在 其电源 控制寄存器 PCON 中增设了一个上电标志位 POF 1 1 复位标志位的设置方法复位标志位的设置方法 传统的 80C51 单片机没有设计复位标志位的记录功能 这应该说是一种遗憾 那么能 否通过一定的技术手段来弥补这个缺憾呢 这里给广大 80C51 单片机用户提供一种启示和 引导 实现复位标志位的记录肯定需要一定的硬件电路支持 而这种电路的设计不存在固定 模式 笔者利用一片 MAX813L 设计了一种支撑电路 如图 1 所示 仅供读者参考 在图 1 中 应用了一个 4 输入端 与非 门 G1 和一个按钮开关 SW1 还占用了 80C51 的 5 条 I O 引脚 P1 0 P1 4 以及一个外部中断源 INT0 并且预先通过初始化软件设 置 INT0 为唯一的高级中断源 下降沿触发方式有效 开放总中断使能位 EA 平时 G1 因各 输入端都维持在高电平上 因而其输出端也保持高电平 电路中利用了一个海量电容器 C1 作为储存能量的器件 扮演着备用电池的角色 由于二极管 D1 的存在 在主电源断电期间 C1 仅为单片机供电 应该让这时的 80C51 进入耗能最低的停机状态 PD 模式 在图 1 电路的基础上配合必要的用户软件 就可以在 7 种不同复位源引起复位之后保 存 6 个标志位来记录 7 种复位标志 以下分别进行讲解 可以事先在 RAM 的位寻址区间分 配一个字节 例如 20H 单元 用于记录 6 个复位标志位 如表 1 所列 假设该寄存器定名为 SRFR System Reset Flag Register 字节地址为 20H 8 位当中仅利用了 6 位 bit5 bit0 分别记录人工复位 欠压复位 看门狗复位 非法地址 复位 软硬件复位和软件复位 MRST 人工复位 当复位按钮 SW1 被按下时引发 INT0 中断 在中断服务程序中检 测输入引脚 P1 4 的状态 如果 P1 4 0 则置位 MRST 记录下曾经发生了一次人工复位操 作 然后进行一次主动的复位操作 方法是从输出脚 P1 0 输出一个低电平给 MAX813L 的输 入引脚 MR 经 MAX813L 延时后从输出端 RESET 送出高电平复位信号给 80C51 令其进行一 次硬件复位操作 LVR 欠压复位 当上游电源电压开始跌落并且下降到 MAX813L 的 PFI 检测门限以 下 输出端 PFO 送出低电平 引发 INT0 中断 在中断服务程序中检测输入引脚 P1 3 的状 态 如果 P1 3 0 则置位 LVR 记录下曾经发生了一次欠压复位操作 然后进行一次主动 的复位操作 方法同上 或者令单片机进入停机状态 以便节省能耗和保持数据 以及 等待主电源的恢复 WDR 看门狗复位 当发生看门狗溢出时 MAX813L 的输出端 WDO 送出低电平 引 发 INT0 中断 在中断服务程序中检测输入引脚 P1 2 的状态 如果 P1 2 0 则置位 WDR 记录下曾经发生了一次看门狗复位操作 然后进行一次主动的复位操作 方法同上 喂 狗操作利用了一个 I O 引脚 P1 1 IAR 非法地址复位 当发生非法地址时 80C51 的输出端 PSEN 送出低电平瞬时 脉冲 也会引发一次 INT0 中断 在中断服务程序中检测输入引脚 P1 4 P1 2 的状态 如 果 P1 4 P1 2 111 则置位 IAR 表示发生了一次非法地址复位操作 然后进行一次主动的 来源 21IC 中国电子网 作者 李学海 刘治山 复位操作 方法同上 SHR 软硬件复位 当发生了软件陷阱的捕捉事件 或者软件看门狗的溢出事件 时 可以直接置位 SHR 代表发生了一次软硬件复位操作 然后进行一次主动的复位操作 方法同上 如果利用 T0 作软件 WDT 则应该同时设置 INT0 和 T0 中断源为高级中断 SWR 软件复位 当发生了软件陷阱的捕捉事件 或者软件看门狗的溢出事件时 也可以直接置位 SWR 代表发生了一次软件复位操作 然后调用软件复位程序 SWRST 即可 软件复位程序的编写方法如下 POR 电源上电复位 虽然在用户定义的系统复位标志寄存器 SRFR 中 没有直 接设置一个 POR 标志位 但是如果检测以上 6 个标志位同时为 0 则表明此前进行的是一 次上电复位 理由是 经过实验验证 实验所用的单片机型号为 SST89C58 在每次初次 加电时 包含 RAM 的 20H 单元在内的 80C51 内部 RAM 区间 00H 7FH 其内容全部自动 清零 在每次 RST 引脚复位 或者软件复位 时 其内容维持不变 而各个 SFR 无论是上 电复位还是 RST 引脚复位时 均被还原为原始值 又称复位值 如表 2 所列 对于那些仅增设了一个复位标志位 技术手册中记作 POF 的较新型单片机 如 AT89S51 52 AT89S8252 AT89C53 AT89C55WD AT89C51RC 和 P89C51X2 52X2 54X2 58X2 等型号 也恰好不再需要这里所设置的 POR 标志位了 对于没有配备备用电源的单片机应用系统 还可以考虑利用 E2PROM 在断电之前的瞬间 来转存复位标志位 以便在断电之后也不会彻底消失 该情况下既可选用外挂 E2PROM 数据 存储器 如 8 脚串行的 24C01 93C46 或 25C040 等 的电路方案 也可选用内部本身带有 E2PROM 数据存储器的单片机型号 如 AT89S8252 等 这样在断电之前的瞬间 利用电源滤 波电容 C2 上的少量残留能量 即可完成对于 E2PROM 的烧写操作 2 2 复位标志位的应用方法复位标志位的应用方法 一般的初始化程序段落的编写方法很简单 不过它仅适用于那些要求不高 功能也很 简单的单片机项目 这类项目 如一些小家电之类的单片机应用 几乎不存在很强的 过 程性 或 不间断性 对于随时可能发生的复位操作以及重新从头运行的用户程序 不 会带来太大的影响或破坏性后果 而对于 过程性 或 不间断性 要求很强的单片机项目 一旦发生偶然性复位操 作 并且重新从头运行用户程序 那么将会带来极大的负面影响或破坏性后果 例如 单 片机控制的面包机 在一次加工面包的过程中 会经历搅拌 加热等工序 假若其间发生 意外复位并且重新从头执行程序 则会导致成为废品或者烧焦 电脑控制的手术机器人 在一次手术过程中如果发生意外复位并且返工 将会带来难以想象的严重后果 电脑控制 的导弹 在对准目标发射之后的飞行过程中 如果发生意外复位并且重新从头执行程序 那么将会产生难以预料的结果 综上所述 单片机在工作过程中 受到意外干扰而进行复位操作 如果说是不可避免 的 那么复位之后从何处或在何种背景下开始运行程序 则是可以人为安排的 因此 复 位标志位的应用方法实质上就是复位处理程序的编写方法 复位处理程序的处理流程如图 2 所示 类似于编写 UART 串口通信中断服务程序的思路 在进入中断程序之后首先要检测中断 标志位 看是一次接收中断 RI 1 还是一次发送中断 SI 1 然后再进入不同程序分 支进行针对性服务 从图 2 中可以看出 在从复位矢量 0000H 开始执行用户程序时 首先 应该检测复位标志寄存器 判断是电源初始加电还是其他复位源引起的复位或程序计数器 PC 清零 如果是电源初始加电 则进行原始状态的初始化 这种情况最简单 如果属于程序跑飞引起的软件复位 软硬件复位 非法地址复位 或者人工强行 复位 则应该依据具体情况尽量恢复数据或修正参数 以便尽最大可能不影响或少影响程 序的正常运行 恢复和修正数据的具体算法这里不再深入探讨 如果是欠压复位 则尽量从被打断的程序断点处重新开始执行程序 具体的实现 方法和步骤可以是 复位之前 单片机响应 PFO 中断请求而进入其服务程序后 保存 堆栈指针 SP 当前值到指定 RAM 单元 把单片机推入停机状态 复位之后 待电源恢复后 MAX813L 得电而从 RESET 端送出高电平信号 唤醒停机状态下的单片机 若唤醒后的单片 机再检测到是欠压复位 则首先复原先前的 SP 值 再利用一条 RET 或 RETI 指令弹出停机之前的程序断点到 PC 从而可以继续执行前面的任务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人工智能医疗行业医疗影像诊断与智能辅助研究报告及未来发展趋势预测
- 银行从业资格证考试买证及答案解析
- 2025年物流科技行业智能仓储与物流管理技术研究报告及未来发展趋势预测
- 中节能安全考试题库及答案解析
- 水利方面测试题目及答案
- 石油钻井平台焊工考试题及答案
- 宾馆安全测试题目及答案解析
- 团队协作效能提升策略
- 2025年生物医药行业生物医药科研技术应用研究报告及未来发展趋势预测
- 中南大学手绘真题及答案
- 高压试验安全培训课件
- 贸易企业保密协议书
- 2025年全球RPG市场研究报告-飞书深诺
- DB3502T 141-2024城市道路开口设置指引
- 3.3 牛顿第三定律 课件 高一上学期物理人教版(2019)必修第一册
- 建筑工程突发事件应对策略与风险防范方案
- 警医联动实施方案
- 艾普思咨询:2024年中国房地产投诉洞察报告
- 2025年度交通工程招投标合同履约保证金管理规范
- 幼小衔接联合教研方案
- GB/T 18851.1-2024无损检测渗透检测第1部分:总则
评论
0/150
提交评论