栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

零成本学arduino——控制两片74hc595寄存器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

零成本学arduino——控制两片74hc595寄存器

本文介绍如何用arduino控制两片74hc595


使用 Q7S 将多个 74HC595 设备链接在一起。将 Q7S 连接到链中下一个 74HC595 芯片的 DS 引脚。

1.知识预览
  • 如何使用两片74hc595寄存器进行介绍
  • 对控制程序进行介绍
2.仿真预览

点击两片74hc595开始仿真

3.操作介绍

arduino发出的16位串行输出信号先串入第一片的DS引脚,第一片逐次输出至Q7后,剩下的数据从第一片的Q7S引脚串行输入到第二片的DS引脚上,将剩下的8位数据逐次位移到第二片的Q0~Q7上。

4.代码介绍

①灯间隔显示,求余

void loop() {
  for (uint8_t i = 0; i < 16; i++) {
    if (i % 2 == 0) {
      setRegisterPin(i, toggle);
    } else {
      setRegisterPin(i, !toggle);
    }
    writeRegisters();
  }
  toggle = !toggle;
  delay(500);
}

②给数组赋,数组数量由bool registers[numOfRegisterPins];决定

// How many of the shift registers
#define NUM_SHIFT_REGS 2

const uint8_t numOfRegisterPins = NUM_SHIFT_REGS * 8;

bool registers[numOfRegisterPins];

void clearRegisters() {
  // Reset all register pins
  for (int i = numOfRegisterPins - 1; i >= 0; i--) {
    registers[i] = LOW;
  }
}

③将数组由寄存器引脚联系起来

void writeRegisters() {
  // Set and display registers
  digitalWrite(LATCH_PIN, LOW);

  for (int i = numOfRegisterPins - 1; i >= 0; i--) {
    digitalWrite(CLOCK_PIN, LOW);
    digitalWrite(DATA_PIN, registers[i]);
    digitalWrite(CLOCK_PIN, HIGH);
  }

  digitalWrite(LATCH_PIN, HIGH);
}

digitalWrite(DATA_PIN, registers[i]);在循环中数据引脚和数组对应起来

总结

学习方法要远比一两个知识点的学习重要

结束


每天都要认真活着

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号