探索80C51的三种非常规的复位技术
破坏,而迫使CPU试图到一个非法地址去抓取指令代码来执行,就强迫单片机进行复位操作。
由于51系列单片机的硬件结构采用的是“哈佛架构”,其程序区和数据区截然分开、独立编址,不存在CPU到RAM区抓取指令的可能性,因此这极大地降低了非法寻址的概率。但是这并不能彻底杜绝非法寻址的可能性,尤其是对于哪些实际配备ROM容量远小于64Kb的情况。这时就可以狭义地定义非法地址是 PC值超出ROM实际容量的地址编码。
(a)IC电路直接复位方式
(b)先中断后复位方式
图3是两种实现非法地址复位的支撑电路。其中,图3(a)电路是在图2(b)的基础上改变一条连线而成的。该连线一端连接PSEN信号引脚,该引脚专门用来提供选通外扩程序存储器ROM的片选信号;另一端连接MAX812M的人工复位输入脚MR。平时PSEN引脚一直维持在高电平上;只有当CPU试图非法到外部ROM抓取指令时,PSEN引脚才会送出低电平脉冲,就是巧妙地利用该脉冲作为复位信号源,来强迫单片机进行复位操作。图3(b)电路可以看作是在图2(b)基础上改变添加一条连线而成的。该连线把PSEN信号引脚和一条外部中断源引脚INT0连接起来,并且设定INT0为下降沿触发和高级中断源。当出现非法地址时,PSEN引脚上的低电平脉冲经过INT0向CPU请求中断;在CPU响应该中断之后可以设置标志,然后实施软件复位或者软硬件复位。
需要提示一点:非法地址复位方式的启用是有前提条件的,它仅适用于那些纯粹利用片上ROM(指程序存储器),即无外扩ROM,并且片上ROM不足64Kb的情况。
复位方式小结
标准80C51只有一个外接复位源引脚RST,基本所有硬件中断都是通过RST脚引入的,并且是根据实际需要逐个进行扩充的。其中只有上电复位POR是什么场合下都必不可少的。其扩充顺序大致符合(不是绝对符合)表1中的规律。
在此对于可能用到的多种复位源和复位的方式,进行如下几种不同的分类。
1 传统复位方式和非传统复位方式
传统复位方式(包含上电复位和人工复位)是80C51技术手册和所有教科书中几乎都提及的;而非传统复位方式(包含欠压复位、看门狗复位、软件复位、软硬件复位和非法地址复位)是为了满足技术发展的需要而扩充的,这也是一些新款单片机在片内新增的几种复位方式。
2 硬件复位、软件复位和软硬件复位
复位分类如表2所示,将除了软件复位之外的所有复位方式外部都引入到RST复位引脚上。
3 电源电压监控复位和程序运行监控复位
电源电压监控复位包含上电复位和欠压复位,它们都是在电源电压的非常时期实施的复位;程序运行监控复位包含人工复位、看门狗复位、非法地址复位、软件复位和软硬件复位,它们都是在用户程序失常的情况下实施的复位。
4 内部复位和外部复位
内部复位包含看门狗复位、软件复位、软硬件复位和非法地址复位,它们基本都由内部原因导致的复位;外部复位包含上电复位、人工复位和欠压复位,它们基本都由外部原因导致的复位。
5 快速复位和延时复位
前者希望复位操作越快越好,例如人工复位、看门狗复位、非法地址复位等;而后者则希望复位操作有一个延迟时间,例如上电复位、欠压复位等。
6 冷复位和热复位
只有上电复位属于冷复位,其余均属于热复位。在冷复位实施之前单片机处于无电状态。
- 80C51单片机通过模拟SPI口驱动UZZ9001读写操作(11-30)
- 实验六 定时器、计数器(80C51单片机汇编语言编程(11-23)
- 实验七 串行通信(80C51单片机汇编语言编程)(11-23)
- 实验八 交通灯控制(80C51单片机汇编语言编程)(11-23)
- 实验九 定时、记数、显示(80C51单片机汇编语言编程)(11-23)
- 实验二:排序、加法(80C51单片机汇编语言编程)(11-23)