0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用串行接口以74HC595移位寄存器作为展示向设备写入数据

454398 来源:wv 2019-10-22 11:12 次阅读

第1步:硬件

如何使用串行接口以74HC595移位寄存器作为展示向设备写入数据

我的目标只是演示不同的方法我仅将74HC595的8个输出中的4个连接到LED。调试我的代码就足够了:)如果您想使项目看起来更好,则可以将所有Qx输出连接到LED:)

您可以在图像上看到连接。

似乎不同的数据表都有74HC595的不同引脚名称,所以我在我使用的数据表中附加了引脚分配。

74HC595恒定连接:

GND(引脚8)

Vcc(引脚16)至5V

OE(引脚13)接地

SRCLR(MR)(引脚10)至5V

我使用了1k电阻和3mm LED。

步骤2:简单方法

对于所有方法,您都会看到连接到电路的示波器的屏幕截图作为性能证明。黄色走线是串行时钟(SRCLK),蓝色走线是锁存信号(RCLK)。同样,对于所有方法,我将展示函数shiftByte()的实现,该函数采用单个字节并将其逐位(串行)写入74HC595

最简单的将数据写入移位寄存器的方法如本教程中所述。基本上,它使用内置的shiftOut()函数来实现串行接口。这样,写入8位数据需要90微秒。不幸的是,包括代码不是简单的方法,因此您将在附加的zip文件中找到草图,并在shiftOut()函数的屏幕截图中找到。这种方法可以,但是相对较慢。

步骤3:使用端口命令的方法

更好方式不是切换每个位,而是使用命令将数据写入整个端口。像这样:

PORTC&= B11111101;//数据时钟低

PORTC =(PORTC&B11111010)|(x&B00000001);//将时钟设置为低并输出位0

PORTC | = B00000100;//串行时钟高

您可以在此处找到有关端口操作命令的更多信息

使用此方法附带的示例草图。

以这种方式写入8位仅需4.5微秒。它比简单方法快20倍。

此方法的缺点:

代码不清楚。

所有使用的Arduino引脚应位于同一端口上。

应将74HC595的串行数据引脚连接到使用的Arduino端口的最低有效位

步骤4:使用嵌入式汇编代码

使用内联汇编代码可以实现进一步的优化。在所附的草图中,我能够在2.8微秒内写入8位。它比简单方法快32倍。

您可以在此处找到有关如何在C代码中使用内联汇编代码的好指南。

AVR指令集手册

此方法的缺点类似于上一个方法的缺点。

步骤5:使用硬件SPI接口

但是在这种情况下,最好的方法是使用硬件SPI接口。您可以在此处阅读如何使用它。基本上,它专用于芯片内部的串行通信硬件,可用于高速传输串行数据。写出所有8位只需要不到1微秒的时间。附有示例的草图。

对于此示例,74HC595与Arduino的连接应不同于所有其他示例中的连接。

由于此方法使用了Arduino内部的特定硬件,因此应连接74HC595

Arduino引脚13(SCK)到74HC595的引脚11(SRCLK)(串行移位时钟)

Arduino引脚A1到74HC595的引脚12(RCLK) (输出锁存时钟)通常这可以是任何引脚。

Arduino的11HC引脚(MOSI)到74HC595的14引脚(SER)(串行数据输入)

所以这就是最快的方法,也是相对简单的方法。

仅此而已。我希望您觉得此说明有用。任何评论将不胜感激。

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

    关注

    2

    文章

    180

    浏览量

    22015
  • 串行接口
    +关注

    关注

    3

    文章

    307

    浏览量

    42268
  • 74HC595
    +关注

    关注

    7

    文章

    189

    浏览量

    30509
收藏 人收藏

    评论

    相关推荐

    带输出寄存器的8位移位寄存器74LVC594A产品数据

    电子发烧友网站提供《带输出寄存器的8位移位寄存器74LVC594A产品数据表.pdf》资料免费下载
    发表于 02-25 09:37 0次下载
    带输出<b class='flag-5'>寄存器</b>的8位<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LVC594A产品<b class='flag-5'>数据</b>表

    8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据

    电子发烧友网站提供《8位串行输入/串行输出或并行输出移位寄存器74LVC595A产品数据表.pdf》资料免费下载
    发表于 02-25 09:22 0次下载
    8位<b class='flag-5'>串行</b>输入/<b class='flag-5'>串行</b>输出或并行输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74LVC595</b>A产品<b class='flag-5'>数据</b>表

    8位并行输入/串行输出移位寄存器74LV165-Q100数据手册

    电子发烧友网站提供《8位并行输入/串行输出移位寄存器74LV165-Q100数据手册.pdf》资料免费下载
    发表于 02-02 09:55 0次下载
    8位并行输入/<b class='flag-5'>串行</b>输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LV165-Q100<b class='flag-5'>数据</b>手册

    8位并行输入/串行输出移位寄存器74LV165数据手册

    电子发烧友网站提供《8位并行输入/串行输出移位寄存器74LV165数据手册.pdf》资料免费下载
    发表于 02-02 09:53 0次下载
    8位并行输入/<b class='flag-5'>串行</b>输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LV165<b class='flag-5'>数据</b>手册

    8位串行输入/并行输出移位寄存器74LV164-Q100数据手册

    电子发烧友网站提供《8位串行输入/并行输出移位寄存器74LV164-Q100数据手册.pdf》资料免费下载
    发表于 02-02 09:50 0次下载
    8位<b class='flag-5'>串行</b>输入/并行输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LV164-Q100<b class='flag-5'>数据</b>手册

    8位串行输入/并行输出移位寄存器74LV164数据手册

    电子发烧友网站提供《8位串行输入/并行输出移位寄存器74LV164数据手册.pdf》资料免费下载
    发表于 02-02 09:48 0次下载
    8位<b class='flag-5'>串行</b>输入/并行输出<b class='flag-5'>移位寄存器</b><b class='flag-5'>74</b>LV164<b class='flag-5'>数据</b>手册

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一种用于在数字电路中实现数据移位操作的基本电路元件。它由多个触发器以及相关控制电路组成,具有存储、接受和移动数据的功能。移位寄存器
    的头像 发表于 01-18 10:52 1544次阅读

    描述74hc595芯片的引脚功能

    74HC595是一款8位移位寄存器芯片,拥有广泛的应用领域。它具有多种引脚功能,下面将详细介绍每个引脚的功能及其用途。 引脚1 (SER): 串行数据输入 SER引脚是74HC595
    的头像 发表于 12-18 17:17 1366次阅读

    74hc595单片机程序里DS=CY这个语句是什么意思?

    中的一字节数据串行输入74HC595 Out_595();//74HC595移位
    发表于 10-08 06:34

    分享一个74HC165D补充型输出 并行或串行串行移位寄存器

    74HCT165是符合JEDEC标准7A的高速Si栅极CMOS器件。它们与低功率肖特基TTL(LSTL)引脚兼容。 74HCT165是8位并行加载或串行移位寄存器,具有可从最后一级获得
    发表于 08-04 17:39

    什么是移位寄存器移位寄存器的用途是什么?

    移位寄存器是数字电子学中的常见构建模块,用于存储和移动位,例如,从串行数据转换为并行数据,反之亦然。
    的头像 发表于 06-29 11:21 4838次阅读
    什么是<b class='flag-5'>移位寄存器</b>?<b class='flag-5'>移位寄存器</b>的用途是什么?

    Arduino 74hc595移位寄存器

    电子发烧友网站提供《Arduino 74hc595移位寄存器.zip》资料免费下载
    发表于 06-14 10:03 3次下载
    Arduino <b class='flag-5'>74hc595</b><b class='flag-5'>移位寄存器</b>

    74hc595的功能及作用

    74hc595是一种串行输入并行输出的移位寄存器,是TTL逻辑门的CMOS版本,具有低功耗、高速度、低噪声等优点,因此被广泛应用于数字电路设计中。下面介绍74hc595的功能及作用。
    的头像 发表于 06-07 18:13 8336次阅读
    <b class='flag-5'>74hc595</b>的功能及作用

    数据需要如何格式化才能发送到74HC595移位寄存器

    定义的引脚可以工作,我可以打开一些继电器。我不明白的是数据需要如何格式化才能发送到 74HC595 移位寄存器。例如,根据我首先触发的中继,我得到不同的结果,这可能对我说我发送了太多数据
    发表于 06-02 08:30

    如何使用74HC595移位寄存器和ESP8266与PWM进行快速多路复用?

    大家好,我想使用 74HC595 移位寄存器和 ESP8266 与 PWM 进行快速多路复用。我非常想运行 6 位 7 段显示,每个段都可以单独调光。我设法使用具有 5 个亮度级别的 Ticker
    发表于 05-15 07:56