“微控制器的基础知识、结构、操作和软件已在本系列的前面部分介绍。现在,嵌入式系统编程系列的第四部分将讨论外围控制电路。简要描述了特殊功能寄存器(SFR)和外部外围电路的控制。
”微控制器的基础知识、结构、操作和软件已在本系列的前面部分介绍。现在,嵌入式系统编程系列的第四部分将讨论外围控制电路。简要描述了特殊功能寄存器(SFR)和外部外围电路的控制。
特殊功能寄存器 (SFR)
MCU 使用各种内部寄存器来存储与状态和操作相关的值。典型的寄存器包括程序计数器、通用寄存器和SFR。MCU 使用一些特殊功能寄存器 (SFR) 来控制外围电路。例如,读取SFR值以获得计数值、串口输入、通用输入等外设数据。它根据需要写入 SFR,以将数据输出到外设并控制外设的设置和状态。
外部外围电路的控制
作为示例,我们来看一下 MCU 如何使用 SFR 来处理特定外设的输出和输入。
MCU 将 0 或 1 写入 SFR 位,以将到外设的输出设置为低电平或高电平,该电平与 SFR 位相连。
MCU 读取 SFR 位的值以获取所连接外设的状态。
在下图中,引脚 A 是通用 I/O 线,连接到其中一个 SFR(称为 SFR“j”)中的特定位(称为位“k”)
我们首先看看 MCU 如何使用 SFR 位将外设设置为高电平或低电平。
要设置为低电平 (0 V),请将 0 写入位 k。
要设置为高电平 (5 V),请将 1 写入位 k。
例如,假设引脚 A 连接到 LED,如图 2 所示。要打开 LED,MCU 将 0 写入 SFR-j 位 k。要关闭 LED,需要向该位写入 1。这种非常简单的设计实际上被许多不同类型的外设所使用。例如,MCU 可以使用该位作为开关来打开和关闭电机。(由于大多数 MCU 无法输出足够的电流来驱动电机,因此该引脚通常会连接到包含 FET 或其他晶体管的驱动电路)。通过利用多个 I/O 端口可以实现更复杂的控制。
接下来我们看看MCU如何利用SFR位来输入外设的当前状态。所需要的只是读取位值。
如果 MCU 从 SFR-j 位 k 读取 0,则它知道外设正在向引脚 A 输入低电平信号 (0 V)
如果 MCU 从 SFR-j 位 k 读取 1,则它知道外设正在向引脚 A 输入高电平信号 (5 V)。
图 4 显示了如何设置外部开关,以便 MCU 可以通过其 SFR 读取开关设置。
当开关 S 关闭时,电阻器 R 会拉高电压,从而在引脚 A 中产生高电平输入。这会将 SFR 位(SFR-j 位 k)的值设置为 1
当开关 S 接通时,引脚 A 的电压为低电平,SFR 位值重置为 0
MCU可以通过读取SFR位轻松判断开关是ON还是OFF。
每个 MCU 都包含大量能够实现各种功能的 SFR。程序可以读取这些 SFR 以获取有关外部条件的信息,并可以写入这些 SFR 以控制外部行为。如果 MCU 是一个人,那么它的 SFR 就是它的手、它的脚和它的五种感官。
分享到:
猜你喜欢