stc单片机c语言程序设计 第3章 数字逻辑和时序

上传人:ji****en 文档编号:107682779 上传时间:2019-10-20 格式:PDF 页数:63 大小:1.42MB
返回 下载 相关 举报
stc单片机c语言程序设计 第3章 数字逻辑和时序_第1页
第1页 / 共63页
stc单片机c语言程序设计 第3章 数字逻辑和时序_第2页
第2页 / 共63页
stc单片机c语言程序设计 第3章 数字逻辑和时序_第3页
第3页 / 共63页
stc单片机c语言程序设计 第3章 数字逻辑和时序_第4页
第4页 / 共63页
stc单片机c语言程序设计 第3章 数字逻辑和时序_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《stc单片机c语言程序设计 第3章 数字逻辑和时序》由会员分享,可在线阅读,更多相关《stc单片机c语言程序设计 第3章 数字逻辑和时序(63页珍藏版)》请在金锄头文库上搜索。

1、数字逻辑和时序 主主 讲:何宾讲:何宾 Email:hebin 2016.03 随着半导体技术的不断发展,人们采用半导体器件实现类似继电 器那样的闭合和断开一样的功能。半导体物理器件是通过外部施 加的电压来控制它的导通和截止。用于现代数字电路的晶体管开 关称为金属氧化物半导体场效应晶体管(Metal Oxide Semiconductor Field Effect Transistors,MOSFETs) 晶体管与I/O驱动 -晶体管作为开关 晶体管与I/O驱动 -晶体管作为开关 当在第三个端口(栅极)施加合适的逻辑电平时,在两个端口 (源极和漏极)之间就会流过电流。在最简单的FET模型中,源

2、 极和漏极之间的电阻是一个栅-源电压的函数,即:栅极电压越 高,这个电阻就越小。因此,就可以通过更大的电流。当应用在 模拟电路中,比如音频放大器,栅-源电压值可以取GND和Vdd 之间的任何值。但是,在数字电路中,由于只存在两个状态,因 此栅极和栅极之间的源电压值只能是Vdd或GND(当然,当栅极 电压从Vdd变化到GND或从GND变化到Vdd时,必须假定电压在 Vdd和GND之间)。 注:假设这个状态改变的过程非常快,所以忽略在栅极电压在这段变化时间的FET特性。 Vdd为MOSFET的供电电压,GND为地。 晶体管与I/O驱动 -晶体管作为开关 在一个简单的数字电路模型中,可以将MOSFE

3、T当作一个可控的 断开(截止)或者闭合(导通)的电子开关。根据不同的物理结 构,FET包含两种类型: nFET 即当栅极输入电压为Vdd时,栅极和漏极导通,即:闭合;否则, 当栅极输入电压为GND时,栅极和漏极断开,即:截止。 pFET 即当栅极输入信号为GND时,栅极和漏极导通,即:闭合;否则, 当栅极输入信号为Vdd时,栅极和漏极断开,即:截止。 晶体管与I/O驱动 -晶体管作为开关 单个的FETs经常用作独立的电子可控开关。例如,对于一个 nFET,如果电源接到源极,负载(如发动机、灯、或其他的应 用中的电子元件)接到漏极。在该应用中,nFET可以打开或关 闭开关。当栅极接入GND时,导

4、通负载元件;而栅极接入Vdd时, 断开负载元件。典型的,打开一个FET需要一个相对小的电压 (几伏特的量级)。即使这个FET正在切换的是一个大电压和大 电流。用于这种目的的单个FETs通常是相当大的(巨大的)设 备。 晶体管与I/O驱动 -晶体管作为开关 FETs也可以用于电路中充当有用的逻辑功能,如AND、OR、 NOT等。在这种应用中,几个非常小的FETs组成一个简单的小 硅片(或硅芯片)。然后,用同样大小的金属导线互连起来。典 型的,这些微小的FETs占用的空间小于1x10-7m2。因此,一个 硅芯片的一端可以是几个毫米,一个单芯片上可以集成数百万的 FETs。当所有的电路元件整合集成到

5、同一块硅片上时,将这种 形式组成的电路称为集成电路(Integrated Circuit,IC)。 晶体管与I/O驱动 -晶体管作为开关 STC单片机提供了四种驱动模式,即准双向输出、强推挽输出、 仅为输入(高阻)和开漏输出。理解和掌握这些驱动模式和应用 场景,对于将STC单片机与外部设备正确地连接非常重要。下面 对STC单片机I/O口的不同配置模式进行详细的说明: 准双向输出配置 准双向输出类型可以用作输出和输入功能,而不需要重新配置I/O 口输出状态。当I/O口锁存数据置为逻辑高时,驱动能力很弱,允许 外部设备将其拉低(要尽量避免出现这种情况);而当引脚的输出 为低时,驱动能力很强,可吸收

6、很大的电流。在准双向口提供3个 上拉晶体管以满足不同的要求。 晶体管与I/O驱动 -单片机I/O驱动原理 第1个晶体管,称为弱上拉晶体管。当I/O口锁存数据置1且引脚 本身为1时打开,此上拉提供基本驱动电流使准双向口输出为1。 如果一个引脚输出为1而由外部设备下拉到低时,弱上拉晶体管 关闭而极弱上拉晶体管维持打开状态,为了把这个引脚强拉为低, 外部设备必须有足够的灌电流能力使引脚上的电压降到门限电平 以下。 1对于5V供电的单片机来说,弱上拉晶体管的电流大约为250A。 2对于3.3V供电的单片机来说,弱上拉晶体管的电流大约为 150A。 晶体管与I/O驱动 -单片机I/O驱动原理 晶体管与I

7、/O驱动 -单片机I/O驱动原理 第二个上拉晶体管,称为极弱上拉晶体管。当I/O口锁存数据置 为1时,该晶体管导通。当引脚悬空时,这个极弱的上拉源产生 很弱的上拉电流将引脚上拉到高电平。 1对于5V供电的单片机来 说,极弱上拉晶体管的电流约为18A。 2对于3.3V单片机来说,极弱上拉晶体管的电流约为5A。 第三个上拉晶体管,称为强上拉晶体管。当口锁存数据由0变化 到1时,这个上拉用于加快准双向口由逻辑0到逻辑1的转换。当 出现这种情况时,强上拉打开约2个时钟以使引脚能够迅速地上 拉到高电平。 晶体管与I/O驱动 -单片机I/O驱动原理 STC 1T系列单片机供电电压为3.3V,如果在使用时在

8、引脚施加 5V电压,则将会有电流从引脚流向VCC,这样将产生额外的功 耗。 注:建议不要在准双向口模式下向3.3V单片机引脚施加5V电压。如果出现这种情 况,则需要外加限流电阻,或使用二极管/三极管做输入隔离。 特别要注意的是,在对准双向口读取外部设备状态前,要先将相应端口的位 置为1,才可以读到外部正确的状态。 晶体管与I/O驱动 -单片机I/O驱动原理 强推挽输出配置 强推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构 相同。但当I/O口锁存数据为1时,经过反相器后,晶体管1导通, 而晶体管2截止。因此,提供持续的强上拉。推挽模式一般用于需 要更大驱动电流的情况。 晶体管与I/O驱动

9、 -单片机I/O驱动原理 仅为输入(高阻)配置 输入口带有一个施密特触发器输入以及一个干扰抑制电路 注:仅为输入(高阻)时,不提供吸收20mA电流的能力。 图3.4 仅为输入配置 晶体管与I/O驱动 -单片机I/O驱动原理 开漏输出配置 在开漏模式下,单片机即可以读取引脚的外部状态也可以控制外 部引脚输出高电平或低电平。如果要正确地读取外部状态或者需要 对外部输出高电平时,需要外加上拉电阻 晶体管与I/O驱动 -单片机I/O驱动原理 当I/O口锁存数据置为1时,经过反相器后变为0,此时上拉晶体 管截止(不导通)。很明显,这种配置方式需要在外部端口引脚 上接上拉电阻。当外接了上拉电阻后,开漏模式

10、的I/O口还可以 读取外部状态,同时还可以作为输出I/O;当口锁存数据置为0时, 经过反相器后变为1,晶体管导通,端口引脚下拉到地。 注:由于8051 CPU的时钟速度较高。因此,当软件执行由低变高的指令后,加 入12个空操作延迟指令,在读取外部状态。在STC单片机中,通过I/O端口的模 式寄存器,控制这些I/O引脚的工作模式 晶体管与I/O驱动 -单片机I/O驱动原理 微控制器的性能很大程度上取决于CPU的性能,CPU可以像人类 的大脑一样,具有推理和记忆的功能,通过大脑的推理和记忆的 过程协调人的感觉器官和肢体的行为。人脑的推理和记忆功能的 实现是靠脑细胞完成的,而CPU的推理和记忆功能的

11、实现是靠有 限自动状态机(Finite State Machine,FSM)完成的。FSM实 际上就是一个复杂的数字系统,它由组合逻辑和时序逻辑两部分 构成。组合逻辑负责推理和控制逻辑行为,时序逻辑负责状态的 记 有限自动状态机 忆。在每个不同的状态,CPU将执行不同的逻辑行为。一个CPU 的整个推理过程会涉及到大量的状态转移和推理的过程,这个推 理的过程是通过分析机器指令的各个字段完成的。人们在设计 CPU之前,为机器指令的各个字段都赋予了特定的含义。当CPU 从程序存储器中取出一条指令时,就会分析每条指令各个不同的 字段然后指挥它的运算单元协调的工作。CPU的推理和记忆的最 终目的是为了完

12、成所要求的计算功能,并通过接口于外设进行信 息的交互。 有限自动状态机 有限自动状态机的模型。根据数字逻辑的基本知识,我们已经知 道有限自动状态机分为摩尔(Moore)状态机和米勒(Mealy) 状态机。从图中可知,摩尔状态机的输出只和当前状态有关;而 米勒状态机的输出不但和当前的状态有关,而且和当前的输入有 关 有限自动状态机 -有限自动状态机原理 注:对于最简单的FSM模型来说,可以不出现输出逻辑,即:当前状态可以 直接送到输出。 从宏观上来说,有限自动状态机由组合逻辑和时序逻辑共同组成。 其中: 组合逻辑电路构成下状态转移逻辑和输出逻辑,其中下状态转移 逻辑用于控制数据流的方向。 时序逻

13、辑电路构成状态寄存器。状态寄存器是状态机中的“记忆” 部分。一个具体的有限自动状态机模型,图中:下标PS表示当 前状态(Previous State,PS)。下标NS表示下一个状态 (Next State,NS)。 有限自动状态机 -有限自动状态机原理 从构成要素上来说,该状态机模型包含: 输入逻辑变量的集合 在该模型中,输入逻辑变量集合为:I0,I1,I0和I1只有0和1两 个输入状态。 状态集合 在有限状态机中,为所有状态中的每一个状态都进行编码,对于 该状态机模型来说, 有限自动状态机 -有限自动状态机原理 其 最 多 可 以 表 示 的 状 态 有 8 个 , 每 个 状 态 可 以表

14、示 为 该 000,001,010,011,100,101,110,111集合中的任意编码组合。也 就是说,在任何一个时刻,有限自动状态机只能处于这八个状态 中的一个,到底处于哪个状态由状态转移逻辑确定。 有限自动状态机 -有限自动状态机原理 状态转移函数 下状态转移逻辑由状态转移函数确定,也就是说状态转移函数决 定了状态机的下一个状态。状态转移逻辑的下一个状态,具体到状 态中的每个状态编码,可以表示为当前状态和当前输入逻辑变量的 函数,对于该模型来说: 有限自动状态机 -有限自动状态机原理 输出变量集合 在该模型中,输出变量集合为Y0,Y1,Y2,Y3。 输出函数 用来确定在当前状态下,各个

15、输出逻辑变量的值,即:输出可以 表示为当前状态和当前输入逻辑变量的函数。对于该模型来说,输 出函数可以表示如下: 有限自动状态机 -有限自动状态机原理 状态机的状态图表示 状态图是有限状态机最直观和最直接的表示方法。图中: 每个圆圈表示一个状态,圆圈内的二进制数的组合表示该状态的 编码。 两个圆圈之间的带箭头的连接线表示从一个状态迁移到另一个状 态的方向。连线上方的文字表示状态迁移的条件。 在每个状态旁,都给出了在当前状态下输出逻辑变量的取值。 从状态图中,可以很直观的知道有限自动状态机的状态集合、输 入变量和输出变量。因此,只要从状态图中得到具体的状态转移 函数和输出函数,就可以实现有限自动

16、状态机。 有限自动状态机 -状态图表示及实现 有限自动状态机 -有限自动状态机原理 该有限自动状态机模型描述如下: 状态集合 该有限自动状态机包含四个状态,四个状态的状态编码分别是: 00、01、11和10。其中: 1状态变量 2状态变量 输入变量 该有限自动状态机中有三个逻辑输入变量,即:x,y,z。 有限自动状态机 -有限自动状态机原理 系统的状态迁移和在各个状态下的输出描述为: 1当复位系统时,FSM当前状态为“00”。该状态下,驱动逻 辑输出变量RED为低,驱动逻辑输出变量GRN为高。当输入逻辑变 量x为0时,FSM一直处于状态“00”;当逻辑输入变量x为1时, FSM从状态“00”迁移到状态“01”。 2当FSM处于状态“01”时,驱动逻辑输出变量RED为低,由 逻辑输入变量X驱动逻辑输出变量GRN。当逻辑输入变量x为0,并 且逻辑输入变量

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号