极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11952|回复: 3

74HC595怎么不能让八个灯都亮,每隔一个灭一个,8个灯,只能亮四个,剩下四个有一...

[复制链接]
发表于 2014-12-8 14:51:05 | 显示全部楼层 |阅读模式
求大神!!!代码如下
int data = 2;
int clock = 4;
int latch = 5;
int ledState = 0;
const int ON = HIGH;
const int OFF = LOW;
void setup()
{
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(latch, OUTPUT);
}
void loop()
{
int delayTime = 100;
for(int i = 0; i < 256; i++)
{
updateLEDs(i);
delay(delayTime);
}
}
void updateLEDs(int value)
{
digitalWrite(latch, LOW);
shiftOut(data, clock, MSBFIRST, value);
digitalWrite(latch, HIGH);
}
回复

使用道具 举报

发表于 2015-2-7 04:33:45 | 显示全部楼层
同样的问题,也是隔一个亮一个,无法完全点亮,求大神指导啊~
回复 支持 反对

使用道具 举报

发表于 2015-2-8 20:43:14 | 显示全部楼层
本帖最后由 マイナス37度 于 2015-2-8 21:58 编辑

帮你查了下74,他是需要一组8位2进制数来控制的,比如数等于00000001那么只亮一盏led,要8盏全亮只要输入11111111这个二进制数就行了,11111111等于十进制的255,那么i的取值是对的,亮4盏的原因可能是线路的问题,这玩意吃透了很简单的,看你同样是初学者才讲这么多,希望能帮到你吧

语法

shiftOut(dataPin, clockPin, bitOrder, value)
参数

dataPin:输出每一位数据的引脚(int)
clockPin:时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:输出位的顺序,最高位优先或最低位优先
value: 要移位输出的数据(byte)
回复 支持 反对

使用道具 举报

发表于 2015-7-1 15:58:23 | 显示全部楼层
你这个程序就是能亮256种状态的
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 18:32 , Processed in 0.073544 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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