<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)驅(qū)動(dòng)點(diǎn)陣16*16綜合C程序-包含各種效果

          單片機(jī)驅(qū)動(dòng)點(diǎn)陣16*16綜合C程序-包含各種效果

          作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏

          /********************************/

          /*******將一個(gè)字右移16位***********/

          /********************************/

          void youla()

          {

          uchar i;

          while(word<256)

          {

          for(move=0;move<16;move++)//要移多少位?

          you3();

          for(i=0;i<150;i++)

          you3();

          word=word+32;//一個(gè)字顯示完了,就顯示下一個(gè)字

          }

          }

          /************************************************************/

          /************************************************************/

          /**************************左覆蓋***************************/

          /************************************************************/

          /************************************************************/

          /********************************/

          /*將一行數(shù)據(jù)轉(zhuǎn)換出來,然后顯示*/

          /********************************/

          void yipai5()

          {

          uchar temp,yi;

          if(move<8)//處理移動(dòng)次數(shù)小于8次的部分

          {

          yi=move;

          temp=(BUF[1]);//發(fā)送左半屏的數(shù),在移動(dòng)右半屏?xí)r,左半屏不動(dòng)

          song(~temp);//發(fā)送給74HC595

          temp=(BUF[2]&~gai)|(BUF[0]&gai);

          song(~temp);//發(fā)送給74HC595

          }

          else//處理移動(dòng)次數(shù)小于8次以外的部分

          {

          yi=move-8;

          temp=(BUF[3]&~gai)|(BUF[1]&gai);/*將第1個(gè)字的左半屏數(shù)第0列清0或上第二

          個(gè)字左半屏最后1行*/

          song(~temp);//發(fā)送給74HC595

          temp=BUF[2];//發(fā)送右半屏的數(shù),在移動(dòng)左半屏?xí)r,右半屏不動(dòng)

          song(~temp);//發(fā)送給74HC595

          }

          }

          /********************************/

          /*****掃描16次,形成一列覆蓋*****/

          /********************************/

          void fu3()

          {

          uchar i;

          for(i=0;i<2;i++)//一字移動(dòng)的速度

          {

          for(line=0;line<16;line++)//掃描16次,即完成一個(gè)字的移動(dòng)

          {

          yixian();//調(diào)用一線子程序

          yipai5();//調(diào)用數(shù)據(jù)轉(zhuǎn)換子程序

          LINE=line;//打開行線,即174HC154行線端

          CLKR=1;//在74HC595處鎖存起來

          CLKR=0;

          CLKR=1;

          }

          }

          }

          /********************************/

          /***每列移動(dòng)16次后,形成覆蓋****/

          /********************************/

          void zoufu()

          {

          uchar o;

          while(word<256)

          {

          for(move=0;move<16;move++)//移動(dòng)16次,形成覆蓋

          {

          gai=table3[move];//移動(dòng)一次改變一次覆蓋變量

          fu3();//調(diào)用覆蓋子程序

          }

          for(o=0;o<60;o++)//一字完后,停一段時(shí)間

          {

          fu3();//調(diào)用覆蓋子程序

          }

          word=word+32;//一個(gè)字顯示完了,就顯示下一個(gè)字

          }

          }

          /************************************************************/

          /************************************************************/

          /**************************右覆蓋***************************/

          /************************************************************/

          /************************************************************/

          /********************************/

          /*將一行數(shù)據(jù)轉(zhuǎn)換出來,然后顯示*/

          /********************************/

          void yipai4()

          {

          uchar temp,yi;

          if(move<8)//處理移動(dòng)次數(shù)小于8次的部分

          {

          yi=move;

          temp=(BUF[1]&gai)|(BUF[3]&~gai);/*將第1個(gè)字的右半屏數(shù)第0列清0或上第二

          個(gè)字右半屏最后1行*/

          song(~temp);//發(fā)送給74HC595

          temp=(BUF[0]);//發(fā)送左半屏的數(shù),在移動(dòng)右半屏?xí)r,左半屏不動(dòng)

          song(~temp);//發(fā)送給74HC595

          }

          else//處理移動(dòng)次數(shù)小于8次以外的部分

          {

          yi=move-8;

          temp=BUF[3];//發(fā)送右半屏的數(shù),在移動(dòng)左半屏?xí)r,右半屏不動(dòng)

          song(~temp);//發(fā)送給74HC595

          temp=(BUF[0]&gai)|(BUF[2]&~gai);/*將第1個(gè)字的左半屏數(shù)第0列清0或上第二

          個(gè)字左半屏最后1行*/

          song(~temp);//發(fā)送給74HC595

          }

          }

          /********************************/

          /*****掃描16次,形成一列覆蓋*****/

          /********************************/

          void fu2()

          {

          uchar i;

          for(i=0;i<2;i++)//一字移動(dòng)的速度

          {

          for(line=0;line<16;line++)//掃描16次,即完成一個(gè)字的移動(dòng)

          {

          yixian();//調(diào)用一線子程序

          yipai4();//調(diào)用數(shù)據(jù)轉(zhuǎn)換子程序

          LINE=line;//打開行線,即174HC154行線端

          CLKR=1;//在74HC595處鎖存起來

          CLKR=0;

          CLKR=1;

          }

          }

          }

          /********************************/

          /***每列移動(dòng)16次后,形成覆蓋****/

          /********************************/

          void youfu()

          {

          uchar o;

          while(word<256)

          {

          for(move=0;move<16;move++)//移動(dòng)16次,形成覆蓋

          {

          gai=table2[move];//移動(dòng)一次改變一次覆蓋變量

          fu2();//調(diào)用覆蓋子程序

          }

          for(o=0;o<60;o++)//一字完后,停一段時(shí)間

          {

          fu2();//調(diào)用覆蓋子程序

          }

          word=word+32;//一個(gè)字顯示完了,就顯示下一個(gè)字

          }

          }

          /************************************************************/

          /************************************************************/

          /**************************主函數(shù)***************************/

          /************************************************************/

          /************************************************************/

          void main()

          {

          while(1)

          {

          word=0;//初始化變量

          jian();//間斷顯示子程序

          word=0;

          shang();//調(diào)用上移子程序

          word=128;//賦初值以便形成下移

          xia();//調(diào)用下移子程序

          word=0;

          zou();//調(diào)用左移子程序

          word=0;

          you();//調(diào)用右移子程序

          word=0;

          shangla();//調(diào)用上拉子程序

          word=128;

          xiala();//調(diào)用下拉子程序

          word=0;

          zoula();//調(diào)用左拉子程序

          word=0;

          youla();//調(diào)用右拉子程序

          word=0;

          zoufu();//調(diào)用左覆蓋子程序

          word=0;

          youfu();//調(diào)用右覆蓋子程序

          }

          }


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();