第十二课--Microduino 74HC595级联数据串入并出/zh
Language | English |
---|
目的本教程将教大家如何利用Microduino来控制74HC595芯片,最终使8个LED显示2进制值 设备
扬声器 74HC595有八个输出引脚Q0~Q7用于输出二进制值,大多数用来把十进制值转换为二进制用。 74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SHcp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STcp(存储器时钟输入)的上升沿输入到存储寄存器中去。 如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。 8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。 将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。 原理图程序/*
使用一个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 视频 |