没有合适的资源?快使用搜索试试~ 我知道了~
单片机与DSP中的80C51复位标志位的设置与应用研究
1 下载量 192 浏览量
2020-12-13
14:26:42
上传
评论
收藏 108KB PDF 举报
温馨提示
试读
3页
引言 设置复位标志位便于区分不同原因引发的复位,作为一种新技术被越来越多的新型单片机所采纳。例如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半导体部)的MC68HC05系列和MC68HC08系列、Sunplus公司的 SPMC65系列、Microchip公司的PIC系列等,内部都设计了专门用于记录各种复位标志的状态寄存器。 MC68HC08系列有一个复位状态寄存器,负责记录6种复位标志位:上电复位、引脚复位、看门狗复位、非法指令复位、非法地址复位和欠压复位。SPMC65系列有一个系统控制寄存器,负责记录5种复位标志位:
资源详情
资源评论
资源推荐
单片机与单片机与DSP中的中的80C51复位标志位的设置与应用研究复位标志位的设置与应用研究
引言 设置复位标志位便于区分不同原因引发的复位,作为一种新技术被越来越多的新型单片机所采纳。例
如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半导体部)的MC68HC05系列和
MC68HC08系列、Sunplus公司的 SPMC65系列、Microchip公司的PIC系列等,内部都设计了专门用于记录各
种复位标志的状态寄存器。 MC68HC08系列有一个复位状态寄存器,负责记录6种复位标志位:上电复
位、引脚复位、看门狗复位、非法指令复位、非法地址复位和欠压复位。SPMC65系列有一个系统控制寄存
器,负责记录5种复位标志位:
引言引言
设置复位标志位便于区分不同原因引发的复位,作为一种新技术被越来越多的新型单片机所采纳。例如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 复位标志位的设置方法复位标志位的设置方法
传统的80C51单片机没有设计复位标志位的记录功能,这应该说是一种遗憾,那么能否通过一定的技术手段来弥补这个缺
憾呢?这里给广大80C51单片机用户提供一种启示和引导。
实现复位标志位的记录肯定需要一定的硬件电路支持,而这种电路的设计不存在固定模式。笔者利用一片MAX813L设计
了一种支撑电路,如图1所示,仅供读者参考。
500)this.width=500" border=0>
图1 80C51设置复位标志的支撑电路
在图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所列。
表1 用户定义的系统复位标志寄存器(SRFR)
500)this.width=500" border=0>
假设该寄存器定名为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,表示发生了一次非法地址复位操作;然后
进行一次主动的复位操作(方法同上)。
⑤ SHR: 软硬件复位。当发生了软件陷阱的捕捉事件,或者软件看门狗的溢出事件时,可以直接置位SHR,代表发生了
一次软硬件复位操作;然后进行一次主动的复位操作(方法同上)。如果利用T0作软件WDT,则应该同时设置INT0和T0中断
源为高级中断。
weixin_38729269
- 粉丝: 4
- 资源: 851
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0