51单片机的状态迁移与复位操作
归纳如下:
① 程序计数器PC返回到原始状态0000H;
② 所有特殊功能寄存器SFR全部还原为复位值(可以查阅技术手册);
③ 所有通用并行端口(P0、P1、P2和P3)的引脚全部被设置为输入状态;
④ 清除各级中断优先级的激活触发器,以便受理各级中断请求(在标准80C51中只设置了2个中断优先级别,而在有些新型兼容产品中设置了4个级别)。
2.3 复位状态的具体表现
单片机一旦进入复位状态并且停留在复位状态下(即外接引脚RST被锁定在有效的高电平上),就会表现出如下一些具体特征:
◇ CPU不再执行程序而保持静止(冻结)状态;
◇ 各种片内外围模块(定时器、串行口、总线接口、中断系统等)均停止工作;
◇ 各个并口(P0~P3)的所有口线均对外呈现高阻状态;
◇ 各SFR的内容均恢复到复位值(即返回到知情范围);
◇ 内部RAM内容维持记忆,只要电源电压不低于最低维持电压(一般为2 V)就能够保持原有内容;
◇ 内部时钟源振荡器仍然会维持振荡,只要电源电压还在1 V(甚至略低于1 V),振荡器就能够维持工作;
◇ 各种片外电路(如扩展存储器、扩展I/O端口或锁存器等)都应该维持原有内容和状态。
2.4 补充说明
格外值得关注的是,经历了复位操作之后的各个并行端口的状态。因为端口引脚是单片机联系外部世界的、最多的一类引脚,其复位状态(即初始化状态)将直接影响外部电路,甚至还会对外部电路构成威胁或造成损坏。为了避免这种影响或威胁,总是把各条端口引脚复位成“输入方式”。理由是,输入方式对外呈现出很高的阻抗,从而有效地防止了可能发生的过流损坏。
任何方式或任何复位源引起的复位操作,都不会改变RAM区的用户数据。甚至就连欠压复位事件的发生,只要电源电压VDD还没有跌落到连RAM内容都不能维持的地步(一般以2 V为门限),就不会丢失RAM中的用户数据。
3 几点新启示
单片机系统一旦进入PD模式(即停机模式,或掉电模式,有时也称“掉电保护模式”),系统时钟源就会停止工作,CPU以及所有的片载硬件模块一起退出运行状态,从而使功耗大幅度降低(可以到达μA级,甚至以下)。
单片机应用项目开发人员利用停机模式可以达到两种目的: ①降低单片机应用系统的总体耗能;② 抵御电源电压跌落时可能带来的CPU失控,就是一旦发现电源电压跌落、欠压或故障,则强行把单片机推入停机模式,以免发生程序混乱。停机期间,即使电源电压降低到2 V,仍然能够维持RAM内容不丢失。
通过仔细分析图1可以发现,当初Intel公司为80C51设置停机模式的主要初衷,应该是基于上述第二种目的。理由是,从图1中可以看出,常规唤醒方式可以令单片机从PD模式直接返回到NORMAL模式,一般利用特定的中断源作为唤醒源。不过对标准80C51来说,Intel公司没有设计利用中断源作为唤醒源的途径,不能不说是一种遗憾。
为了弥补这个遗憾,一些新型兼容产品(例如Atmel公司的AT89S51/52/53/8252/8253、Philips公司的 P89V51RB2/RC2/RD2以及P89LPC900系列等)添加了利用被使能且被设置为用电平触发的外部中断源INT0和INT1来作为唤醒源,唤醒后的单片机能够从设置PD=1指令之后的下一条指令恢复运行。
- 关于RTX51 TINY的分析与探讨(05-30)
- 浅析8051模块化编程技巧(05-28)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 锁相环控制及初始化简析(08-27)
- 基于MSP430自动胀管控制器的研究(09-07)
- 嵌入式C实现延时程序的不同变量的区别(03-01)