色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          PIC MSSP_SPI_74HC595

          作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
          我覺得74HC595相當(dāng)于是一個(gè)你看得見的寄存器,數(shù)據(jù)的輸入只能是串行的8位輸入,輸出可以選擇串行輸出,也可以選擇并行輸出。
          如果把兩個(gè)74HC595連在一起,就會(huì)有譯碼器和掃描的結(jié)合的作用,夸張一點(diǎn),如果時(shí)間允許,可以3接口擴(kuò)展為16接口,雖然輸入數(shù)據(jù)不同時(shí),但是可以讓輸出數(shù)據(jù)同時(shí)。
          #include //調(diào)用頭文件,可以去PICC18軟件下去查找PIC18FXX2.H
          __CONFIG(1,XT) ; //晶振為外部4M
          __CONFIG(2,WDTDIS) ; //看門狗關(guān)閉
          __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為并行輸出的控制時(shí)鐘,當(dāng)有上升沿的時(shí)候并行輸出移位寄存器中的數(shù)
          SSPBUF=dat1; //往移位寄存器里存數(shù)據(jù)
          while(SSPIF==0) //往移位寄存器里存數(shù)據(jù)需要時(shí)間
          { ;}
          SSPIF=0; //當(dāng)移位寄存器里的8位數(shù)都存滿的時(shí)候,會(huì)發(fā)生中斷請(qǐng)求
          SSPBUF=dat2;
          while(SSPIF==0)
          { ;}
          SSPIF=0;
          nop;
          rck=1;
          }
          void main()
          {
          uchar i=0,j=0;
          ADCON1=0x06;
          TRISC=0xd3;
          PIR1=0x00; //PIR1寄存器里有關(guān)于SSP1IF的寄存器,即移位寄存器存滿的中斷標(biāo)志位軟件清零
          SSPSTAT=0xc0;
          SSPCON1=0x20;
          while(1)
          {
          write595(led[j],shuma[i]); //用兩個(gè)參數(shù)是因?yàn)槲业拈_發(fā)板上把兩個(gè)74HC595連在了一起,第一個(gè)74HC595的SO是第二個(gè)的SI,第一個(gè)595可以最快輸出存入的數(shù),但是第二個(gè)595的數(shù)據(jù)必須是從第一個(gè)595中移出來的數(shù)
          delayms(800);
          i++;
          if(i>9)
          i=0;
          j++;
          if(j>17)
          j=0;
          }
          }



          關(guān)鍵詞: PICSPI74HC59

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉