(十二)arduino入门:74HC595数码管

释放双眼,带上耳机,听听看~!

一、本节介绍

在本实验中,您将学习如何使用74HC595驱动7段显示。

通常,驱动单个7段显示器有两种方法。一个是将其8个引脚直接连接到Arduino Uno板上的八个端口,这是我们以前完成的。另一个是将74HC595连接到Arduino Uno板的三个端口,并将7段显示器连接到74HC595。在这个实验中,我们将使用后者。这样可以节省五个端口。考虑到Arduino Uno板的有限端口,这是非常重要的。

二、材料准备

  • 8 *电阻(220Ω)
  • 1 * 74HC595
  • 1 * Arduino Uno板
  • 杜邦线
  • 1 *面包板
  • 1 * USB数据线
  • 1 * 数码管

三、原理讲解

74HC595

74HC595由8位移位寄存器和具有三态并行输出的存储寄存器组成。它将串行输入转换为并行输出,以便可以保存MCU的IO端口。74HC595广泛用于指示多路径LED和驱动多位分段显示。“三态”是指将输出引脚设置为高电平,低电平或“高阻抗”的事实。通过数据锁定,即时输出在移位期间不受影响; 通过数据输出,您可以更轻松地级联74HC595s。

(十二)arduino入门:74HC595数码管

(十二)arduino入门:74HC595数码管

74HC595和它们的功能:

Q0-Q7:8位并行数据输出引脚,可直接控制8段LED或8段显示8针。

Q7:串行输出引脚,连接到另一个74HC595的DS,以连接多个74HC595s

MR:复位引脚,低电平有效; 这里直接连接到5V。

SH:移位寄存器的时序输入。在上升沿,移位寄存器中的数据依次移动一位,即Q1中的数据移动到Q2,等等。在下降沿,移位寄存器中的数据保持不变。

ST:存储寄存器的时序输入。在上升沿,移位寄存器中的数据移入存储器寄存器。

OE:输出使能引脚,低电平有效,连接到GND。

Ds:串行数据输入引脚

VCC:正电源电压

GND:接地

这里使用shiftout()函数,它与Arduino IDE一起使用。只需输入介于0和255之间的数字,存储寄存器就可以将其转换为8位二进制数并行输出。这允许您轻松控制7段显示的8个引脚,并创建任何所需的模式。

四、实验步骤

步骤1:建立电路

(十二)arduino入门:74HC595数码管

原理图

(十二)arduino入门:74HC595数码管

步骤2:编写程序

步骤3:编译程序

步骤4:将程序烧写到Arduino Uno板中

您现在应该看到从0到F的7段显示周期。

(十二)arduino入门:74HC595数码管

本节程序:

[scu name=”arduino-ide-post” platform=”arduino:avr:uno”]

/******************************/
//通过74HC595使用三根线控制数码管
//2017.10.17
/******************************/

int latchPin = 5;
int clockPin = 12;
int dataPin = 11; //定义的几个引脚连接74hc573
void setup ()
{
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT); //设置三个脚都是输出状态
}

void loop()
{
  for (int a = 0; a < 256; a++) //这个循环的意思是让a这个变量+1一直加到到256,每次循环都进行下面的活动
  {
    digitalWrite(latchPin, LOW); //将ST_CP口上面加低电平让芯片准备好接收数据
    shiftOut(dataPin, clockPin, MSBFIRST, a);
    //这个就是用MSBFIRST参数让0-7个针脚以高电平输出(LSBFIRST 低电平)是dataPin的参数,
    //clockPin的参数是变量a,前面我们说了这个变量会一次从1+1+到256,是个十进制数,
    // 输入到芯片后会产生8个二进制数,达到开关的作用
    digitalWrite(latchPin, HIGH); //将ST_CP这个针脚恢复到高电平
    delay(1000); //暂停1秒钟让你看到效果
  }
}

[/scu]

给TA打赏
共{{data.count}}人
人已打赏
ArduinoArduino-入门

(十一)arduino入门:数码管显示

2018-6-14 10:48:11

ArduinoArduino-入门

(十三)arduino入门:LED点阵显示

2018-6-14 10:59:20

2 条回复 A文章作者 M管理员
  1. ?2841

    厉害

    • Luca

      老铁加油

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
'); })();