|
楼主 |
发表于 2016-6-13 21:08:14
|
显示全部楼层
本帖最后由 hss03100130 于 2016-6-13 21:16 编辑
請高手幫我看看
程式這樣的流程有沒有問題。
功能為:
20個按鈕->對應20顆LED
按下按鈕,對應的LED會發光,但是放開按鈕的時候LED不會熄;
直到按其它鈕,對應的LED亮起,原來的LED熄滅。
int 165_dataPin = 3;
int 165_loadPin = 4;
int 165_clockPin = 5;
int 595_dataPin = 8;
int 595_latchPin = 9;
int 595_clockPin = 10;
void setup()
{
pinMode(165_clockPin,OUTPUT);
pinMode(165_loadPin,OUTPUT);
pinMode(165_dataPin,INPUT);
pinMode(595_clockPin,OUTPUT);
pinMode(595_latchPin,OUTPUT);
pinMode(595_dataPin,OUTPUT);
}
void loop()
{
int i=0
long temp = 0; //BUFFER 32BIT
long data = 0
digitalWrite(165_loadPin,LOW); //PL->LOW
delay(1);
digitalWrite(165_loadPin,HIGH); //PL->HIGH
data = 0
for(i=0;i<23;i++) //GET 24BIT
{
data = data << 1;
temp = digitalRead(165_dataPin);
data |= temp;
digitalWrite(165_clockPin,LOW);//CK->LOW
delay(10);
digitalWrite(165_clockPin,HIGH);//CK->HIGH
}
if (data > 31); //SOME BUTTON BE PRESSED
{
for (int led = 0; led < 23, ; led++)
{
digitalWrite(595_latchPin, LOW)
shiftOut(595_dataPin, 595_clockPin, MSBFIRST, data / 65536)
shiftOut(595_dataPin, 595_clockPin, MSBFIRST, data / 256)
shiftOut(595_dataPin, 595_clockPin, MSBFIRST, data)€
digitalWrite(595_latchPin, HIGH)
}
}
因為只控制20 BIT
所以74165的末4BIT 補1
74595的末4BIT空接不用
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|