日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ardino基础教程 18_驱动74HC595

發(fā)布時(shí)間:2025/4/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ardino基础教程 18_驱动74HC595 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

實(shí)驗(yàn)十八:驅(qū)動(dòng)74HC595

概述:
74HC595 是一款漏極開路輸出的CMOS 移位寄存器,輸出端口為可控的三態(tài)輸出端,亦能串行輸出控制下一級(jí)級(jí)聯(lián)芯片。

特點(diǎn):

管腳圖:

管腳說明:


74HC595 簡(jiǎn)單說來就是具有8 位移位寄存器和一個(gè)存儲(chǔ)器,以及三態(tài)輸出功能。 這里我們用它來控制8 個(gè)LED 小燈。我們?yōu)槭裁匆?br /> 74HC595 來控制小燈呢?一定會(huì)有很多朋友會(huì)問這個(gè)問題,我想問的是我們要是單純的用Arduino 控制8 個(gè)小燈的話要占用多少個(gè)I/O 呢?答案是8 個(gè),但是我們的Arduino 168 有幾個(gè)I/O 口呢?加上模擬接口也就20 個(gè)吧,這8 個(gè)小燈占用了太多的資源了,我們用74HC595 的目的就是減少I/O 口的使用數(shù)量。用74HC595 以后我們可以用3 個(gè)數(shù)字I/O 口控制8 個(gè)LED小燈豈不美哉。

實(shí)驗(yàn)器材清單

  • 74HC595直插芯片 1個(gè)
  • 紅色M5直插LED 5個(gè)
  • 綠色M5直插LED 5個(gè)
  • 220歐姆直插電阻 8個(gè)
  • 面包板 1個(gè)
  • 面包板跳線 1扎
  • 實(shí)驗(yàn)原理圖


    注意:74HC595的OE腳,要連接GND。

    此電路圖看似復(fù)雜,我們仔細(xì)分析以后再結(jié)合參考實(shí)物就會(huì)發(fā)現(xiàn)很簡(jiǎn)單。


    下面是參考源程序:
    int data = 2;//74HC595 的14 腳 數(shù)據(jù)輸入引腳SI
    int clock = 5;//74hc595 的11 腳 時(shí)鐘線 SCK
    int latch = 4;//74hc595 的12 腳 輸出存儲(chǔ)器鎖存線RCK
    int ledState = 0;
    const int ON = HIGH;
    const int OFF = LOW;
    void setup()
    {
    pinMode(data, OUTPUT);
    pinMode(clock, OUTPUT);
    pinMode(latch, OUTPUT);
    }
    void loop()
    {
    for(int i = 0; i < 256; i++)
    {
    updateLEDs(i);
    delay(500);
    }
    }
    void updateLEDs(int value)
    {
    digitalWrite(latch, LOW);//
    shiftOut(data, clock, MSBFIRST, ~value);//串行數(shù)據(jù)輸出,高位
    在先
    digitalWrite(latch, HIGH);//鎖存
    }


    實(shí)驗(yàn)現(xiàn)象

    下載完程序大家就可以看到8 個(gè)小燈閃爍的美妙場(chǎng)景了。
    看到八位LED 顯示八位二進(jìn)制數(shù),循環(huán)自加1。

    程序代碼

    int data = 2;//74HC595的14腳 數(shù)據(jù)輸入引腳SI int clock = 5;//74hc595的11腳 時(shí)鐘線 SCK int latch = 4;//74hc595的12腳 輸出存儲(chǔ)器鎖存線RCK int ledState = 0; const int ON = HIGH; const int OFF = LOW; void setup() { pinMode(data, OUTPUT); pinMode(clock, OUTPUT); pinMode(latch, OUTPUT); } void loop() { for(int i = 0; i < 256; i++) { updateLEDs(i); delay(500); } } void updateLEDs(int value) { digitalWrite(latch, LOW);// shiftOut(data, clock, MSBFIRST, ~value);//串行數(shù)據(jù)輸出,高位在先 digitalWrite(latch, HIGH);//鎖存 }

    總結(jié)

    以上是生活随笔為你收集整理的Ardino基础教程 18_驱动74HC595的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。