资料介绍
本文以经典的80C51单片机为例,利用工作状态及其状态迁移的新概念、新观点和新方法,揭示一些单片机运作的内在规律,对于单片机学习者和应用开发者具有一定的启迪作用和实际意义。
1 单片机的工作状态及其状态迁移
80C51单片机的各种活动,可以描述成多个不同的工作状态或工作模式。这里利用笔者构思的一个单片机工作状态迁移图(如图1所示)来说明。不过,这里重点关注的是复位状态。
图1 单片机工作状态迁移图
经过仔细分析之后,从图1中可以看出:
① 把单片机经历的所有生存状态归纳和描绘成5个状态——1个非工作状态(即无电状态)和4个工作状态。
② 只有复位状态是一个暂态,其他均为稳态;并且每次单片机进入正常运行状态时,都要经历一次复位状态。
③ 只有在正常运行状态(这里记作NORMAL)下,单片机才按照程序存储器中固化的用户程序按部就班地一步一步执行,从而完成开发者设计的各项任务。
④ 停机状态(或PD模式)和待机状态(或IDL模式),主要是为节能降耗而规划的节电状态(或称“睡眠状态”)。
⑤ 从无电状态离开的唯一条件就是上电,并且唯一能够到达的是一个暂态——复位状态。
⑥ 复位状态以外的4个状态都有迁移到复位状态的途径,只是导致迁移的条件不尽相同。
⑦ 无电状态之外的4个工作状态,都可能因为随时断电而导致单片机进入“无电状态”。
⑧ 从另外3个工作状态迁移到复位状态,基本都是依靠外部引脚RST上的复位信号。原始复位源比较单一,这是因为传统80C51的复位逻辑相对简单。如果想增加“电源欠压复位”和“看门狗复位”等其他复位源,则需要片外扩充独立电路来实现。
⑨ 标准80C51没有设计“软件复位”功能,如果需要该功能,可以通过用户程序自行实现。不同的是,软件复位不会令CPU经历一次复位状态。
2 复位源、复位操作和复位状态
像中的时序逻辑电路器件需要具备复位功能一样,各种类型的单片机也都需要具备复位功能(RESET)。复位功能按其英文原意是重新设置的意思,也就是从头开始执行程序,或者重新从头执行程序(Restart)的意思。复位是单片机的一项重要操作内容,其目标是确保单片机运行过程有一个良好的开端,确保单片机运行过程中有一个良好的状态。
需要强调的是: 关于“复位”一词,它既包含复位活动的意思,又包含复位状态的意思。或者说,复位既是一个动态的概念(指复位活动、复位操作、复位处理或复位过程等),又是一个静态的概念(指复位状态或复位模式等)。
2.1 常规复位源和扩充复位源
从现今的技术高度来看,标准80C51单片机的复位功能设计得不够完善,不仅没有设置复位标志位寄存器,而且复位源的种类也很少。
所谓“复位源”,就是导致或者引起单片机内部复位的源泉。对于当前市场上出现的种类比较齐全的单片机,其典型复位源大致可以归纳为以下6种: 上电复位、人工复位、电源欠压复位、看门狗复位、非法地址复位和软件复位。这些复位源的特点是:
① 上电复位这一种复位源是必不可少的。因为每次给单片机加电时,其电源电压的稳定,以及时钟振荡器的起振和振幅稳定,都需要一定的延迟时间。
② 只有上电复位和人工复位这两种复位源,是讲解80C51单片机的教科书、技术文章和文献资料中比较常见的。
③ 对于电源欠压复位、看门狗复位和非法地址复位3种复位源,标准80C51是不具备的,不过可以额外扩充,可由单片机用户根据实际需要通过附加一些软件或硬件的手段来实现。
④ 虽然电源欠压复位、看门狗复位、非法地址复位3种复位源可以额外扩充,但是都必须借助于复位引脚RST来实施复位操作或复位锁定。
⑤ 标准80C51本来不具备软件复位功能,但是可以通过纯软件方式以及虚拟手段,来实现或者部分实现其他单片机的软件复位。这种方法扩充的软件复位是一种比较特殊的复位源,一是不通过RST引脚实现复位,二是复位操作的内容与众不同。软件复位作为一种新技术,目前有越来越多的新型单片机配备了该功能。例如 Philips公司的P87LPC700和P89LPC900系列、TIBB公司的MSC1200系列、SunPlus公司的SPMC65系列等,内部都设计了专门用于实现软件复位的控制寄存器或者控制位。
2.2 复位操作的具体内容
单片机复位功能的实现过程实质上就是在单片机内部进行一系列的复位操作。在复位期间,单片机内部的复位操作究竟完成了哪些内容,是程序设计人员应该搞清的问题,因为单片机复位操作完成之后的内部状态,就是运行用户程序和进行软件处理的背景、基础和起点。
对80C51单片机来说,只有软件复位的具体内容和影响范围,是可以由用户自由定制的;而凡是直接作用于复位引脚RST上的复位源(如上电复位等),所实现的复位操作的具体内容和影响范围都应该是一样的。现在归纳如下:
① 程序计数器PC返回到原始状态0000H;
② 所有特殊功能寄存器SFR全部还原为复位值(可以查阅技术手册);
③ 所有通用并行端口(P0、P1、P2和P3)的引脚全部被设置为输入状态;
④ 清除各级中断优先级的激活触发器,以便受理各级中断请求(在标准80C51中只设置了2个中断优先级别,而在有些新型兼容产品中设置了4个级别)。
2.3 复位状态的具体表现
单片机一旦进入复位状态并且停留在复位状态下(即外接引脚RST被锁定在有效的高电平上),就会表现出如下一些具体特征:
◇ CPU不再执行程序而保持静止(冻结)状态;
◇ 各种片内外围模块(定时器、串行口、总线接口、中断系统等)均停止工作;
◇ 各个并口(P0~P3)的所有口线均对外呈现高阻状态;
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 单片机实现24C02存储上次使用中状态的C语言实例 9次下载
- LABVIEW的状态机实现资料合集 41次下载
- 虚拟机迁移的物理主机异常状态检测算法 20次下载
- 单片机基础及应用:单片机并行存储器扩展资料下载
- 小白学单片机(15) 单片机程序下载失败总结资料下载
- 单片机基础及应用|80C51单片机的结构及信号引脚资料下载
- 使用单片机实现24C02存储上次使用中状态的C语言实例免费下载 13次下载
- 使用单片机实现74HC148编码输入8位按键状态的仿真文件免费下载 8次下载
- 单片机的状态机框架!
- 使用单片机实现1个独立按键控制LED状态转换的C语言程序免费下载 26次下载
- 单片机K1到K4按键状态显示的仿真电路图免费下载 10次下载
- 单片机按键的源代码资料合集免费下载
- 使用51单片机定时器中断进行LED的状态反转电路图和程序免费下载
- 51单片机IIC总线通信原理及其简单应用资料免费下载
- 使用单片机进行智能药盒设计的程序和状态表资料免费下载 14次下载
- 什么是状态机?状态机的种类与实现 7941次阅读
- 嵌入式状态机编程-QP状态机框架基本知识介绍 2455次阅读
- PLC基本工作状态 3983次阅读
- 状态机的基本术语 传统有限状态机Fsm实现方法 545次阅读
- buck电路工作状态 988次阅读
- 详解单片机复位电路的作用及设计 1w次阅读
- 状态机到底是什么 3671次阅读
- 使用单片机实现多路开关状态指示器的设计资料合集 4307次阅读
- AVR单片机的复位操作方法解析 5479次阅读
- 状态机概述 如何理解状态机 1w次阅读
- 关于STC单片机IO口的状态和配置IO口的工作类型等资料概述 1.1w次阅读
- 浅谈单片机上电复位后端口的状态问题 1.1w次阅读
- 基于状态机的单片机按键短按长按功能的实现 1.8w次阅读
- 单片机看门狗电路的作用,看门狗系统设计技巧及其抗干扰措施 3964次阅读
- 使用ModelSim自动生成状态机FSM的状态转换图 1.4w次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多