新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC MSSP_SPI_74HC595

        PIC MSSP_SPI_74HC595

        作者: 時間:2016-11-21 來源:網絡 收藏
        我覺得74HC595相當于是一個你看得見的寄存器,數據的輸入只能是串行的8位輸入,輸出可以選擇串行輸出,也可以選擇并行輸出。
        如果把兩個74HC595連在一起,就會有譯碼器和掃描的結合的作用,夸張一點,如果時間允許,可以3接口擴展為16接口,雖然輸入數據不同時,但是可以讓輸出數據同時。
        #include //調用頭文件,可以去PICC18軟件下去查找PIC18FXX2.H
        __CONFIG(1,XT) ; //晶振為外部4M
        __CONFIG(2,WDTDIS) ; //看門狗關閉
        __CONFIG(4,LVPDIS) ; //禁止低電壓編程
        #define rck RC2
        #define sck RC3
        #define si RC5
        #define uchar unsigned char
        #define uint unsigned int
        #define nop NOP()
        void delayms(uint x)
        {
        uint i,j;
        for(i=0;i<=110;i++)
        for(j=0;j<=x;j++);
        }
        char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
        char led[18]={
        0B10000000,
        0B01000000,
        0B00100000,
        0B00010000,
        0B00001000,
        0B00000100,
        0B00000010,
        0B00000001,
        0B00000000,
        0B00000001,
        0B00000010,
        0B00000100,
        0B00001000,
        0B00010000,
        0B00100000,
        0B01000000,
        0B10000000,
        0B00000000
        };
        void write595(uchar dat1,uchar dat2)
        {
        rck=0; //rck為并行輸出的控制時鐘,當有上升沿的時候并行輸出移位寄存器中的數
        SSPBUF=dat1; //往移位寄存器里存數據
        while(SSPIF==0) //往移位寄存器里存數據需要時間
        { ;}
        SSPIF=0; //當移位寄存器里的8位數都存滿的時候,會發生中斷請求
        SSPBUF=dat2;
        while(SSPIF==0)
        { ;}
        SSPIF=0;
        nop;
        rck=1;
        }
        void main()
        {
        uchar i=0,j=0;
        ADCON1=0x06;
        TRISC=0xd3;
        PIR1=0x00; //PIR1寄存器里有關于SSP1IF的寄存器,即移位寄存器存滿的中斷標志位軟件清零
        SSPSTAT=0xc0;
        SSPCON1=0x20;
        while(1)
        {
        write595(led[j],shuma[i]); //用兩個參數是因為我的開發板上把兩個74HC595連在了一起,第一個74HC595的SO是第二個的SI,第一個595可以最快輸出存入的數,但是第二個595的數據必須是從第一個595中移出來的數
        delayms(800);
        i++;
        if(i>9)
        i=0;
        j++;
        if(j>17)
        j=0;
        }
        }



        關鍵詞: PICSPI74HC59

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 兴义市| 英山县| 易门县| 蒙山县| 东丽区| 冕宁县| 榆社县| 固镇县| 屏南县| 达孜县| 杭锦旗| 廉江市| 红桥区| 和顺县| 浮山县| 宣化县| 福鼎市| 凤台县| 交城县| 合作市| 静乐县| 鹿泉市| 略阳县| 遂平县| 偃师市| 额敏县| 襄城县| 家居| 潞西市| 福安市| 周至县| 馆陶县| 沾化县| 徐水县| 察雅县| 南木林县| 铜山县| 永定县| 砀山县| 邹城市| 乐至县|