电工之家:www.dgzj.com QQ群:2179090
关注电工之家官方微信公众号“电工之家”,收获更多经验知识
这个问题非常有代表性,我相信很多初学者都会有这个疑问:为什么只是简单地将对应寄存器的相应位设置一下,就可以让单片机做不同的动作(例如,端口输出高低电平、定时器定时溢出等等)。今天我们就来简单了解一下这方面的知识。
一、单片机的基础电路
单片机内部主要由数字电路组成。所以如果我们想要了解单片机的内部结构及工作原理,还是需要学一些数字电路方面的知识的。这里简单介绍一下单片机中常用的基础电路。
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端口除了可以接收外界的输入信号外, 还可以接收内部的替代输入功能端送来的信号, 该信号通过输入三态门送到内部总线。
未完,请点击左下角“阅读原文”继续阅读