第十二课--Microduino 74HC595级联数据串入并出/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年3月24日 (一) 13:31的版本 设备
跳转至: 导航搜索
Language English

目的

本教程将教大家如何利用Microduino来控制74HC595芯片,最终使8个LED显示2进制值

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • LED发光二极管 8个
    • 74HC595芯片 一个
    • 220欧姆电阻 8个
    • 1μF电容 一个
    • USB数据连接线 一根

74LS595

第十二课-74HC595.jpg

74HC595有八个输出引脚Q0~Q7用于输出二进制值,大多数用来把十进制值转换为二进制用。

74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。

移位寄存器和存储器是分别的时钟。 数据在SHcp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STcp(存储器时钟输入)的上升沿输入到存储寄存器中去。

如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。

将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。

原理图

第十二课-Microduino 74HC595数据传入并出原理图.jpg

程序

/*                               
使用一个74HC595移位寄存器代码
    计数从0到255的
*/

//Pin 8 连接到 74HC595的ST_CP
int latchPin = 8;
//Pin 12 连接到  74HC595的SH_CP
int clockPin = 12;
////Pin 11 连接到  74HC595的DS
int dataPin = 11;



void setup() {
  //设置 pins 为 output 以便于你能控制移位寄存器
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  // 在LED上显示2进制数字,从0到255
  for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) {
    // 设置 latchPin 为低电平 
    digitalWrite(latchPin, LOW);
    // 输入十进制数字
    shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);  

    //设置 latch pin 为高电平,LED将显示对应的二进制数字
    digitalWrite(latchPin, HIGH);
    // pause before next value:
    delay(500);
  }
}


函数说明:

shiftOut(dataPin, clockPin, bitOrder, value)

dataPin: dataPin的引脚数

clockPin: clockPin的引脚数

bitOrder: 二进制位码排序,MSBFIRST(最高有效位在前) 或者 LSBFIRST(最低有效位在前)

value: 本转换的十进制值

调试

步骤一:把代码复制到IDE中,编译

步骤二:电路连接图如下:

步骤三:运行代码

步骤四:观看LED灯显示

结果

8个LED灯将显示从0~255的二进制,亮为1,灭为0

视频

http://v.youku.com/v_show/id_XNjgyNTk2MzUy.html