分享

单片机是怎么工作的?

 昵称11935121 2018-07-11

这个问题非常有代表性,我相信很多初学者都会有这个疑问:为什么只是简单地将对应寄存器的相应位设置一下,就可以让单片机做不同的动作(例如,端口输出高低电平、定时器定时溢出等等)。今天我们就来简单了解一下这方面的知识。

一、单片机的基础电路

单片机内部主要由数字电路组成。 所以如果我们想要了解单片机的内部结构及工作原理,还是需要学一些数字电路方面的知识的。 这里简单介绍一下单片机中常用的基础电路。

1、与门电路原理介绍

与门电路如下图所示。

它是一个由二极管和电阻构成的电路, 其中A、 B为输入端, Y为输出端, +5V电压经R1、 R2分压, 在E点得到3V的电压。

工作原理

当A、 B两端同时输入低电平(0V) 时, 由于E点电压为3V, 所以二极管VD1、 VD2都导通, E点电压马上下降到0.7V (低电平) , 即当A、 B端均输入低电平“0”时, Y端输出低电平“0”。

当 A 端输入低电平(0V) 、 B 端输入高电平(5V) 时, 由于E点电压为3V, 所以二极管VD1马上导通, E点电压下降到0.7V。 此时VD2正端电压为0.7V, 负端电压为5V,VD2处于截止状态, 即当A端输入低电平“0”、 B 端输入高电平“1”时, Y端输出低电平“0”。

当A端输入高电平(5V) 、 B端输入低电平(0V) 时, VD1截止, VD2导通, E点电

压为0.7V (低电平) , 即当A端输入高电平“1”、 B端输入低电平“0”时, Y端输出低电平“0”。

当A、 B端同时输入高电平(5V) 时, VD1、 VD2均不能导通, E点电压为3V(高电平) , 即当A、 B两端都输入高电平“1”时, Y端输出“1”。

由此可见, 与门的特点是: 只有输入端都输入高电平时, 输出端才会输出高电平; 只要有一个输入端输入低电平, 输出端就会输出低电平。

二、单片机内部的触发器、寄存器、锁存器

单片机内部有大量寄存器, 寄存器是一种能够存储数据的电路, 由触发器构成。

1、 触发器

触发器是一种具有记忆存储功能的电路, 由门电路组成。 常见的触发器包括: RS 触发器、 D 触发器和 JK触发器等, 其中D触发器最为常用。 如下图所示。

从图中可以看出, D触发器的端子包括: 输入端D、 输出端Q、 反相输出端 、 时钟脉冲输入端CLK、 置“0”端R和置“1”端S。

数据存储过程: 当D触发器的D端输入数据“1”时, 数据并不能马上被存入触发器, 只有CLK端时钟脉冲信号上升沿(即低电平转为高电平时) 到来时, “1”才能被存入触发器, 存入后Q端输出“1”, 端输出“0”。 也就是说, 只有时钟脉冲上升沿到来时, D触发器才能将输入端的数据存储起来, 并从Q端输出。

D触发器的置“0”和置“1”: 当置“0”端R为低电平时, 触发器被置“0”, 即Q端为“0”;当置“1”端S为低电平时, 触发器被置“1”, 即Q端为“1”。

2、 寄存器

寄存器是单片机内部的基本存储单元, 由触发器构成, 一个触发器就是1位寄存器。下图所示是一种由D触发器构成的4位寄存器。

在工作时, 寄存器先让清0线为低电平, 该低电平送到各触发器的CLR端(实际为D触发器的R端) , 将各触发器清0, Y3Y2Y1Y0=0000; 然后将数据送到各触发器输入端,当CLK端的时钟脉冲上升沿到来时, 输入端的数据就被存入到各触发器中, 并从输出端输出。

3、锁存器

锁存器也是一种能存储数据的电路。 其特点是当锁存信号没有到来时, 输出端的状态随输入端状态的变化而变化; 当锁存信号来到时, 输入端的数据被锁存到输出端, 即当输入端的信号再变化时输出端也不会发生变化。

以下图为例来说明锁存器的工作原理。

当锁存器的控制端EN=1时, 锁存器输出端Y与输入端A的状态保持一致, 即A端数据变化时, Y端数据也变化; 当锁存器的控制端EN由“1”变为“0”时, 输入端此刻的数据马上被锁存到输出端, 在EN=0期间, 输出端的数据始终保持不变, 不会随输入端而变化; 当EN又变为“1”时, 即取消锁存, 输出端又会随输入端的变化而变化。

三、单片机端口的工作原理

有了上面的知识铺垫,现在我们就以51单片机的P3端口为例来介绍一下端口的工作原理。

P3端口有P3.0~P3.7共8个引脚, P3端口可作为I/O接口, 还可以用于其他方面。 P3端口每个引脚的内部电路结构都相同, 其内部电路结构如下图所示

1、 当P3端口用作I/O接口时

如果要将P3端口用作I/O接口, 应让与非门的选择输出功能端为“1”, 以开通与非门。当将P3端口用作输出端口时, 给锁存器的CL端送写脉冲信号, 内部总线送来的数据就可以通过D端进入锁存器并从Q端输出, 再通过与非门和场效应管从P3端口引脚输出。

当将 P3 端口用作输入端口时, 应先通过内部总线向锁存器写“1”, 让 Q=1, 场效应管截止, P3端口输入的信号就可以通过缓冲器、 输入三态门送到内部总线。

2、 当P3端口用作第二功能时

P3端口用作第二功能(又称复用功能) 时, 实际上也是在该端口输入或输出信号,只不过输入、 输出的是一些特殊功能的信号。 所以当P3端口用作第二功能时, 其内部电路的工作原理与用作I/O接口时是一样的, 在用作输入功能时, 端口的锁存器同样要先置“1”。

P3端口8个引脚的第二功能详见下表。 例如P3.2引脚用作第二功能时, 该端口可输入由外部设备送到的中断请求信号, 该信号通过缓冲器、 输入三态门送到内部总线。

P3端口除了可以接收外界的输入信号外, 还可以接收内部的替代输入功能端送来的信号, 该信号通过输入三态门送到内部总线。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多