×

使用库来管理和控制级联中的移位寄存器

消耗积分:0 | 格式:zip | 大小:0.06 MB | 2023-01-31

分享资料个

描述

一门包含六个教程的课程,介绍如何使用库来管理和控制级联的单个或多个移位寄存器,同时进行多个移位寄存器排列ez_SIPO8_lib

在我们开始之前

提醒一句:

这些教程和用户指南仅限于 SIPO8 库功能的使用和实施,它们包括有关 SIPO 输出连接到标准 LED 以外的组件(例如继电器或其他组件)的注意事项 - 此处需要注意匹配所使用的特定 SIPO IC、它们要连接的组件以及可能超出连接控制器总体功率要求
互联网提供了大量涵盖上述内容的材料,建议读者在使用 LED 进行任何简单项目之前先围绕这些问题做一些研究。

虽然这些教程中引用的示例草图是为 Arduino 微控制器配置的,但它们也同样适用于 ESP 32 板。

如果您希望浏览ez_SIPO8_libProject Hub 上的库文章,请点击此链接

介绍

本文介绍了一系列包含六个教程的教程,这些教程介绍了ez_SIPO8_lib 用于管理和控制移位寄存器或串行输入/并行输出 (SIPO) IC 的库的功能。图书馆设计和应用的概念不同于现有的资源和方法,因为它将为以下方面提供支持:

  • 许多并发的 SIPO IC,理论上最多 255
  • 以级联形式(即菊花链)的单连接或多连接 SIPO IC
  • SIPO 级联可以包括任意数量的串联 SIPO IC
  • SIPO(单个或级联)可以定义为一个或多个离散且可单独寻址的“库”
  • 银行的规模可能不同(单个 SIPO 或级联)
  • 可以独立定义、处理和操作任意数量的不同规模的银行
  • 每个银行都通过自己的 3 线接口连接到微控制器

那么,如果您需要使用一个或多个 SIPO IC,那么也许ez_SIPO8_lib 对您有用?如果您想访问原始ez_SIPO8_lib 文章,请点击此链接:ez_SIPO8_lib 文章

通过遵循和学习教程,您将更全面地了解和欣赏图书馆的潜力。

提供了六个教程,每个教程都建立在下一个教程之上,它们是:

教程 1 - 绝对寻址
通过将单个 SIPO IC 视为虚拟和单独映射的 SIPO 端口的连续阵列,引入 SIPO 输出的绝对寻址。
教程 2 - 相对寻址
使用单个 SIPO IC 引入 SIPO 输出的相对寻址。在这种情况下,寻址是相对的,因为它被认为是对于所讨论的“银行”而不是一个完整的数组。
教程 3 - 使用定时器
涵盖使用 SIPO8 库定时器功能的原理,同样使用单个 SIPO IC。定时器作为库资源的一部分提供,因为它通常有助于将定时间隔应用于更新输出,例如闪烁 LED、打开/关闭继电器等。库允许设计人员在库中创建任意数量的定时器类实例化,每个都可以通过自己唯一的计时器 ID 寻址。
教程 4 - 级联 SIPO
本教程将指导读者创建两个 SIPO IC 作为单个组作为级联。然后,所涵盖的原则允许通过 SIPO IC 的直接扩展来创建任何规模的 SIPO 库,而对驱动软件草图的更改很小。
教程 5 - 库交错
本教程着眼于库交错的特性,其中可以将任意数量的相同大小的 SIPO 库映射到相同的3 线数字接口,根据需要使库“发挥作用”。请注意,这与正常的连接方式相反,但确实为设计者引入了新的可能性。
教程 6 - 问答
最后,本教程提供了有关“我如何……”、“我如何……”等具体问题的答案。

希望在教程结束时,您将获得足够的洞察力和实践来决定ez_SIPO8_lib 库的功能是否对您的项目有所帮助。

在我们开裂之前

但是,在我们开始之前,让我们先了解一些您在此过程中需要的概念、术语和指南。

起源- 这些教程基于之前一篇介绍该库的文章,ez_SIPO8_lib 其中包含有关该库各个方面的全面技术概述和详细信息,包括许多示例和教程。如果您还没有看过这篇文章,并且想要详细了解该库,那么一定要看看它。可以通过以下链接访问它:ez_SIPO8_lib 文章您会在本文中找到完整用户指南和 Crib Sheet 的链接,以及更多有用的帮助。

术语:SIPO IC” ——在整个教程、代码和其他文档中,使用术语“SIPO IC”或“SIPO”而不是移位寄存器,但这些术语是同义词。

位编号- 库的寻址函数假定位编号遵循二进制符号的传统约定。也就是说,最低有效位出现在字节右侧的位 0。

术语:数组” ——库将所有连接的 SIPO IC 称为数组,指的是从第一个 IC 的端口 0 到最后一个 IC 的最后一个端口是连续的,无论这些是如何配置的(“切碎” ) 存入银行(见下文)。数组位映射每个已连接和活动的 SIPO IC 的每个输出端口。

术语:“库” ——库是指一个或多个级联的 SIPO IC。例如,可以仅使用一个 SIPO IC 或级联在一起的多个 SIPO IC 创建一个库。一旦一个库是软件定义/创建的,代表该库输出端口的数组位图就会被激活。尽管通常情况下,bank 寻址总是相对于 bank 定义的 SIPO,但要注意的是,如果仅配置了一个SIPO IC bank,则无论大小如何,绝对地址和相对地址都是对齐的。

Concurrent & variable size banking——库的设计理念允许任何规模的banks同时独立配置和操作此外,银行的规模也可能不同。例如,我们可以创建一个由一个 SIPO IC 组成的组,加上一个由三个级联 SIPO IC 组成的组,再加上一个由八个级联 SIPO IC 组成的组,等等。所有 bank 都可以一起存在,并且可以通过它们各自的 bank id(相对寻址)或作为一个完整且连续的数组(绝对寻址)来寻址。

让我们看另一个例子,这次是一个图解例子,说明ez_SIPO8_lib 库功能的灵活性,考虑以下设计图:

pYYBAGPXL2aAYlyOAACnFw-XQ-w819.jpg
SIPO银行的混合社区
 

在这里,我们将 11 个 SIPO IC 配置为五个 3WI 上的五个组 - 见图。请注意绝对和相对地址范围。我们可以通过多种方式安排这 11 颗 SIPO IC;应选择适合设计需要的安排。

我们有完全的自由来解决这种安排,可以作为一个完整的连续输出端口阵列(从端口 0 到端口 87),也可以作为单独的输出端口组(请参阅上表以了解按组 ID 划分的相对地址范围)。

3 线接口- 每个组都需要一个 3 线接口 (3WI) 来连接到微控制器(数据、时钟和锁存器引脚)。然而,相同大小的组可以使用“交错”的概念共享相同的 3WI(参见教程 5 )。

库文件- 您需要下载库文件才能运行教程。将库文件下载ez_SIPO8_lib到您的...Arduino/libraries/ 目录。

下载三个文件,分别是

  • ez_SIPO8_lib.h,
  • ez_SIPO8_lib.cpp
  • keywords.txt

(这些包含在本文中,请参阅代码部分,但也可以通过 Arduino IDE 库管理器下载)。

库声明和实例化- 每个教程草图示例的库声明及其实例化在很大程度上是相同的,区别仅在于教程调用的 SIPO IC 和计时器的数量。以下示例取自教程 1 -

库声明:

#include 

库类的实例化:

...
#define max_SIPOs  1  // one 1 SIPO for this tutorial
#define max_timers 0  // no timers required
// initiate the class for max SIPOs/timers required
SIPO8 my_SIPOs(max_SIPOs, max_timers);
...

我们实例化库类,将其命名为“ my_SIPOs”,用于定义我们需要的 SIPO IC 和计时器的数量。对于这个例子,我们将只使用一个 SIPO IC 而没有定时器(我们将在教程 3中介绍定时器)。

我们在所有教程中使用相同的方法来声明和实例化,根据教程的要求改变类的参数。

快速访问资源

按照以下链接访问和下载有用的资源和示例:

ez_SIPO8_lib 用户指南
ez_SIPO8_lib 床单
阅读ez_SIPO8_lib 全文
有趣的草图示例 -掷骰子,第 2 部分

特别是 Crib Sheet,它是一个非常方便的简短用户指南,提供了图书馆功能、保留字等的顶级范围和规范。

我希望您能找到感兴趣的教程,并希望您探索该ez-SIPO8_lib 库的更多功能。

享受!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !