找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4896|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

Arduino+74HC595控制led的亮滅代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 ly101010100 于 2021-1-3 14:02 編輯

哈嘍大家好,今天給大家分享一下HC595控制led的亮滅,簡(jiǎn)單說一下這個(gè)芯片,HC595是一個(gè)典型的移位串轉(zhuǎn)并三態(tài)輸出驅(qū)動(dòng)器,
8為并行三態(tài)輸出,并且可以級(jí)聯(lián),
100MHZ移位頻率傳輸數(shù)據(jù),且兼容TTL電平
為16pin的中規(guī)模集成芯片

14pin DS,12 pin ST鎖存時(shí)鐘,11pin SH數(shù)據(jù)輸入時(shí)鐘

命名可能不同,但是不影響,感謝電子愛好者提供圖片


好了,上Arduino代碼

int ST = 12;//ST/RCK  CP of 74HC595   輸出存儲(chǔ)器鎖存時(shí)鐘線
int SH = 11;//SH/SCK CP of 74HC595  數(shù)據(jù)輸入時(shí)鐘線
int DS = 13; //DS/SER  of 74HC595      數(shù)據(jù)線

void setup () {

  pinMode(ST, OUTPUT); //鎖存引腳設(shè)置
  pinMode(SH, OUTPUT); //時(shí)鐘引腳設(shè)置
  pinMode(DS, OUTPUT);// 數(shù)據(jù)引腳設(shè)置
}
void function1(void)
{
  for (int i = 8; i > 0; i--)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xcc);
  //0xcc是代表16進(jìn)制數(shù),也可以直接寫10進(jìn)制數(shù),cc十進(jìn)制就是204,二進(jìn)制表示:11001100
  //二進(jìn)制表示:11001100。1和0對(duì)應(yīng)每一位led燈的亮滅。用高到低就是MSBFIRST,用LSBFIRST是相反的。
  //用MSBFIRST參數(shù)是高位到低位順序與LSBFIRST是低位到高位逆向的?梢愿淖凕c(diǎn)亮的順序
    digitalWrite(ST, HIGH);
  }
    }
void function2(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0x33);//即二進(jìn)制的0011 0011也就是3478亮,1256滅
    digitalWrite(ST, HIGH);
  }
    }
void function3(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0x0f);//二進(jìn)制為0000 1111即就是1234滅,5678亮
    digitalWrite(ST, HIGH);
  }
    }
void function4(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xf0);//對(duì)應(yīng)二進(jìn)制為1111 0000 即就是1234亮5678滅
    digitalWrite(ST, HIGH);
  }
    }
void function5(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xAA);//對(duì)應(yīng)二進(jìn)制為1010 1010即就是1357亮 2468滅
    digitalWrite(ST, HIGH);
  }
    }
void function6(void)
{
  for (int i = 0; i<8; i++)
  {
    digitalWrite(ST, LOW);
    shiftOut(DS,SH,MSBFIRST,0xff);//對(duì)應(yīng)二進(jìn)制為1111 1111 即就是全亮
    digitalWrite(ST, HIGH);
  }
    }
void loop()
{
  while(1)
{
  function1();
  delay(600);
  function2();
  delay(600);
  function3();
  delay(600);
  function4();
  delay(600);
  function5();
  delay(600);
  function6();
  delay(600);
}
}



接線圖如下,由于本人水平有限,錯(cuò)誤之處請(qǐng)給予指正,請(qǐng)讀者多多包涵



HC595.png (49.56 KB, 下載次數(shù): 171)

HC595.png

HC595.jpg (405.73 KB, 下載次數(shù): 163)

HC595.jpg

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:849478 發(fā)表于 2021-1-2 17:56 | 只看該作者
本帖最后由 ly101010100 于 2021-1-3 14:05 編輯

HC595.jpg (405.73 KB, 下載次數(shù): 182)

HC595.jpg
回復(fù)

使用道具 舉報(bào)

板凳
ID:328014 發(fā)表于 2021-1-2 21:59 | 只看該作者
好東東 樓主能補(bǔ)一下圖嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:849478 發(fā)表于 2021-1-3 14:09 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2021-1-2 21:59
好東東 樓主能補(bǔ)一下圖嗎?

接線圖已上傳,使用fritzing畫圖,開發(fā)板為arduino UNO,使用了digital IO口12,11,13,感謝您的閱讀

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:81138 發(fā)表于 2021-2-2 08:08 來自手機(jī) | 只看該作者
能直接搬到stm8s上面嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:118954 發(fā)表于 2021-2-7 22:22 | 只看該作者
cyrs 發(fā)表于 2021-2-2 08:08
能直接搬到stm8s上面嗎?

8不可以,可以搬到STM32
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表