找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3913|回复: 4
收起左侧

Arduino+74HC595控制led的亮灭代码

[复制链接]
ID:849478 发表于 2021-1-2 14:45 | 显示全部楼层 |阅读模式
本帖最后由 ly101010100 于 2021-1-3 14:02 编辑

哈喽大家好,今天给大家分享一下HC595控制led的亮灭,简单说一下这个芯片,HC595是一个典型的移位串转并三态输出驱动器,
8为并行三态输出,并且可以级联,
100MHZ移位频率传输数据,且兼容TTL电平
为16pin的中规模集成芯片

14pin DS,12 pin ST锁存时钟,11pin SH数据输入时钟

命名可能不同,但是不影响,感谢电子爱好者提供图片


好了,上Arduino代码

int ST = 12;//ST/RCK  CP of 74HC595   输出存储器锁存时钟线
int SH = 11;//SH/SCK CP of 74HC595  数据输入时钟线
int DS = 13; //DS/SER  of 74HC595      数据线

void setup () {

  pinMode(ST, OUTPUT); //锁存引脚设置
  pinMode(SH, OUTPUT); //时钟引脚设置
  pinMode(DS, OUTPUT);// 数据引脚设置
}
void function1(void)
{
  for (int i = 8; i > 0; i--)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xcc);
  //0xcc是代表16进制数,也可以直接写10进制数,cc十进制就是204,二进制表示:11001100
  //二进制表示:11001100。1和0对应每一位led灯的亮灭。用高到低就是MSBFIRST,用LSBFIRST是相反的。
  //用MSBFIRST参数是高位到低位顺序与LSBFIRST是低位到高位逆向的。可以改变点亮的顺序
    digitalWrite(ST, HIGH);
  }
    }
void function2(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0x33);//即二进制的0011 0011也就是3478亮,1256灭
    digitalWrite(ST, HIGH);
  }
    }
void function3(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0x0f);//二进制为0000 1111即就是1234灭,5678亮
    digitalWrite(ST, HIGH);
  }
    }
void function4(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xf0);//对应二进制为1111 0000 即就是1234亮5678灭
    digitalWrite(ST, HIGH);
  }
    }
void function5(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xAA);//对应二进制为1010 1010即就是1357亮 2468灭
    digitalWrite(ST, HIGH);
  }
    }
void function6(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xff);//对应二进制为1111 1111 即就是全亮
    digitalWrite(ST, HIGH);
  }
    }
void loop()
{
  while(1)
{
  function1();
  delay(600);
  function2();
  delay(600);
  function3();
  delay(600);
  function4();
  delay(600);
  function5();
  delay(600);
  function6();
  delay(600);
}
}



接线图如下,由于本人水平有限,错误之处请给予指正,请读者多多包涵



HC595.png
HC595.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:849478 发表于 2021-1-2 17:56 | 显示全部楼层
本帖最后由 ly101010100 于 2021-1-3 14:05 编辑

HC595.jpg
回复

使用道具 举报

ID:328014 发表于 2021-1-2 21:59 | 显示全部楼层
好东东 楼主能补一下图吗?
回复

使用道具 举报

ID:849478 发表于 2021-1-3 14:09 | 显示全部楼层
51hei团团 发表于 2021-1-2 21:59
好东东 楼主能补一下图吗?

接线图已上传,使用fritzing画图,开发板为arduino UNO,使用了digital IO口12,11,13,感谢您的阅读

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:81138 发表于 2021-2-2 08:08 来自手机 | 显示全部楼层
能直接搬到stm8s上面吗?
回复

使用道具 举报

ID:118954 发表于 2021-2-7 22:22 | 显示全部楼层
cyrs 发表于 2021-2-2 08:08
能直接搬到stm8s上面吗?

8不可以,可以搬到STM32
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表