74hc165三片級聯


3片74HC165進行級聯,用於擴展IO口,讀取外界設備的數據。

unsigned int read_74165(void)
{
    unsigned int val = 0;
    unsigned int count = 24;        //三片74hc165,需要讀24次
    unsigned int i, tmp;
    //加載並行數據並鎖存
    gpio_set(PL, HIGH);
    delay();
    gpio_set(PL, LOW);
    delay();
    gpio_set(PL, HIGH);
    delay();
    gpio_set(CLK, HIGH);
    delay();

    //gpio引腳與芯片數據腳直接相連,所以第一次不需要時鍾就能讀取到第一位數據。
//下一個時鍾將會得到第二位數據
  if (data_get()) val += 1; //讀取剩下的23位 for (i = 0; i < count - 1; i++) { gpio_set(CLK, LOW); delay(); gpio_set(CLK, HIGH); delay(); val <<= 1; if (data_get()) val += 1; } gpio_set(CLK, HIGH); gpio_set(PL, HIGH);   //根據硬件調整數據的位置 tmp = ((val & 0xff0000) >> 16) | (val & 0xff00) | ((val & 0xff) << 16); return tmp; }

硬件原理圖如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM