久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【   】16X16點(diǎn)陣漢字顯示 倒計(jì)時(shí) proteus仿真 74HC595驅(qū)動(dòng) 帶源程序

 求知881 2019-01-22

51單片機(jī)做的16X16點(diǎn)陣仿真的2個(gè)例子,一個(gè)是顯示 漢字 一個(gè)是倒計(jì)時(shí),,詳見壓縮包里面的2個(gè)程序.用74hc595來(lái)驅(qū)動(dòng)16*16點(diǎn)陣.


全部資料下載: 16點(diǎn)陣顯示.rar (162.43 KB, 下載次數(shù): 67)






下面是16X16點(diǎn)陣上面實(shí)現(xiàn)倒計(jì)時(shí)的單片機(jī)程序:
  1.                                          /*****************************************************************************************
  2. *                                                                                                                                                         *
  3. *                         LED點(diǎn)陣實(shí)驗(yàn) (顯示數(shù)字)                                                                         *
  4.                 行:高電平有效,,低16位  列:低電平有效,高16位

  5. ******************************************************************************************/

  6. #include <REG51.H>
  7. #include <intrins.h>
  8. #define  NOP() _nop_()  // 定義空指令 ,這個(gè)函數(shù)在庫(kù) <intrins.h> 中

  9. //SPI IO
  10. sbit MOSIO = P3^4;
  11. sbit R_CLK = P3^5;
  12. sbit S_CLK = P3^6;

  13. //變量聲明
  14. unsigned long column;   //點(diǎn)陣列
  15. unsigned long row;      //點(diǎn)陣行
  16. unsigned long dt;

  17. //點(diǎn)陣顯示數(shù)組
  18. unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
  19.                              0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};

  20. unsigned char code tab1[] = {0,0,0,0,0,0,8,24,14,36,8,66,8,66,8,66,8,66,8,66,8,66,8,36,62,24,0,0,0,0,0,0};

  21. unsigned char code tab2[] = {0,0,0,0,0,0,24,24,36,36,66,66,66,66,66,66,66,100,66,88,66,64,66,64,36,36,24,28,0,0,0,0} ;

  22. unsigned char code tab3[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,66,66,36,66,24,66,36,66,66,66,66,36,66,24,60,0,0,0,0};

  23. unsigned char code tab4[] = {0,0,0,0,0,0,24,126,36,34,66,34,66,16,66,16,66,8,66,8,66,8,66,8,36,8,24,8,0,0,0,0};

  24. unsigned char code tab5[] = {0,0,0,0,0,0,24,56,36,36,66,2,66,2,66,26,66,38,66,66,66,66,66,66,36,36,24,24,0,0,0,0};

  25. unsigned char code tab6[] = {0,0,0,0,0,0,24,126,36,2,66,2,66,2,66,26,66,38,66,64,66,64,66,66,36,34,24,28,0,0,0,0};

  26. unsigned char code tab7[] = {0,0,0,0,0,0,24,32,36,48,66,40,66,36,66,36,66,34,66,34,66,126,66,32,36,32,24,120,0,0,0,0};

  27. unsigned char code tab8[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,32,66,24,66,32,66,64,66,64,66,66,36,34,24,28,0,0,0,0};

  28. unsigned char code tab9[] = {0,0,0,0,0,0,24,60,36,66,66,66,66,66,66,32,66,32,66,16,66,8,66,4,36,66,24,126,0,0,0,0};

  29. unsigned char code tab10[] = {0,0,0,0,0,0,24,8,36,14,66,8,66,8,66,8,66,8,66,8,66,8,66,8,36,8,24,62,0,0,0,0};

  30. unsigned char code tab11[] = {0,0,0,0,0,0,24,24,36,36,66,66,66,66,66,66,66,66,66,66,66,66,66,66,36,36,24,24,0,0,0,0};

  31. unsigned char code tab12[] = {0,0,0,0,0,0,60,28,34,34,34,65,1,65,1,65,1,65,113,65,33,65,34,65,34,34,28,28,0,0,0,0};


  32. //函數(shù)聲明
  33. void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
  34.                                                                                                                                                                                        
  35. /*************主函數(shù)*****************************/       
  36. void main(void)
  37. {
  38.    int k,i,ms;
  39.    i = 16;                                                                                                                                  //顯示時(shí)間
  40.    while(1)
  41.    {
  42.      for(ms = i; ms > 0; ms--)
  43.          {
  44.        for(k = 0; k < 16; k++)                                                                                                //親
  45.            {         
  46.          HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);                  
  47.            }
  48.          }
  49.          HC595SendData(0xff,0xff,0,0);                                                                                   //清屏                                                                      

  50.          for(ms = i; ms > 0; ms--)
  51.          {
  52.        for(k = 0; k < 16; k++)                                                                                            //愛
  53.            {         
  54.          HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]);                  
  55.            }
  56.          }
  57.           HC595SendData(0xff,0xff,0,0);                                                                                //清屏

  58.          for(ms = i; ms > 0; ms--)
  59.          {
  60.        for(k = 0; k < 16; k++)                                                                                                //的
  61.            {         
  62.          HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]);                  
  63.            }
  64.          }       
  65.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  66.          for(ms = i; ms > 0; ms--)
  67.          {
  68.        for(k = 0; k < 16; k++)                                                                                                //顧
  69.            {         
  70.          HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]);                  
  71.            }
  72.          }       
  73.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  74.          for(ms = i; ms > 0; ms--)
  75.          {
  76.        for(k = 0; k < 16; k++)                                                                                                //客
  77.            {         
  78.          HC595SendData(~tab5[2*k +1],~tab5[2*k],tab0[2*k],tab0[2*k + 1]);                  
  79.            }
  80.          }       
  81.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  82.          for(ms = i; ms > 0; ms--)
  83.          {
  84.        for(k = 0; k < 16; k++)                                                                                                //歡
  85.            {         
  86.          HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]);                  
  87.            }
  88.          }       
  89.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  90.          for(ms = i; ms > 0; ms--)
  91.          {
  92.        for(k = 0; k < 16; k++)                                                                                                //迎
  93.            {         
  94.          HC595SendData(~tab7[2*k +1],~tab7[2*k],tab0[2*k],tab0[2*k + 1]);                  
  95.            }
  96.          }       
  97.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  98.          for(ms = i; ms > 0; ms--)
  99.          {
  100.        for(k = 0; k < 16; k++)                                                                                                //使
  101.            {         
  102.          HC595SendData(~tab8[2*k +1],~tab8[2*k],tab0[2*k],tab0[2*k + 1]);                  
  103.            }
  104.          }       
  105.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  106.          for(ms = i; ms > 0; ms--)
  107.          {
  108.        for(k = 0; k < 16; k++)                                                                                                //用
  109.            {         
  110.          HC595SendData(~tab9[2*k +1],~tab9[2*k],tab0[2*k],tab0[2*k + 1]);                  
  111.            }
  112.          }       
  113.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  114.          for(ms = i; ms > 0; ms--)
  115.          {
  116.        for(k = 0; k < 16; k++)                                                                                                //普
  117.            {         
  118.          HC595SendData(~tab10[2*k +1],~tab10[2*k],tab0[2*k],tab0[2*k + 1]);                  
  119.            }
  120.          }       
  121.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏       

  122.          for(ms = i; ms > 0; ms--)
  123.          {
  124.        for(k = 0; k < 16; k++)                                                                                                //中
  125.            {         
  126.          HC595SendData(~tab11[2*k +1],~tab11[2*k],tab0[2*k],tab0[2*k + 1]);                  
  127.            }
  128.          }       
  129.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  130.          
  131.          while(1)
  132.          {
  133.                       for(ms = i; ms > 0; ms--)
  134.              {
  135.            for(k = 0; k < 16; k++)                                                                                                //中
  136.                {         
  137.              HC595SendData(~tab12[2*k +1],~tab12[2*k],tab0[2*k],tab0[2*k + 1]);                  
  138.                }
  139.              }
  140.          for(ms = i; ms > 0; ms--)
  141.              {
  142.            for(k = 0; k < 16; k++)                                                                                                //中
  143.                {         
  144.                      HC595SendData(0xff,0xff,0,0);                  
  145.                 }
  146.            }                       
  147.          }                                                                        //清屏       
  148.    }
  149. }

  150. /*********************************************************************************************************
  151. ** 函數(shù)名稱: HC595SendData
  152. ** 功能描述: 向SPI總線發(fā)送數(shù)據(jù)
  153. *********************************************************************************************************/
  154. void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
  155. {  
  156.   unsigned char i;
  157.   for(i = 0; i < 32; i++)
  158.    {
  159.    if(i > 23 )
  160.    {
  161.       if((BT0 << (i - 24)) & 0x80)
  162.       {
  163.             MOSIO = 1;
  164.           }
  165.           else
  166.           {
  167.             MOSIO = 0;
  168.           }
  169.    }
  170.    
  171.    else if(i > 15 & i < 24 )
  172.    {
  173.         if((BT1 << (i - 16)) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進(jìn)行邏輯運(yùn)算
  174.       {
  175.             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  176.           }
  177.         else
  178.           {
  179.             MOSIO = 0;                                     
  180.           }       
  181.    }


  182.     else if(i < 16 & i > 7 )
  183.    {
  184.       if((BT2 << (i - 8)) & 0x80)
  185.       {
  186.             MOSIO = 1;
  187.           }
  188.           else
  189.           {
  190.             MOSIO = 0;
  191.           }
  192.    }
  193.    

  194.         else
  195.         {
  196.                   if((BT3 << i) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進(jìn)行邏輯運(yùn)算
  197.       {
  198.             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  199.           }
  200.         else
  201.           {
  202.             MOSIO = 0;                                     
  203.           }       
  204.         }
  205.         S_CLK = 0;
  206. //        NOP();        //產(chǎn)生方形波
  207.         S_CLK = 1;       
  208.    }
  209.    
  210.   R_CLK = 0; //set dataline low
  211. // NOP();   //產(chǎn)生方形波
  212.   R_CLK = 1; //片選
  213. }
復(fù)制代碼



下面是顯示漢字的程序:
  1.                                                            /*****************************************************************************************
  2. *                                                                                                                                                         *
  3. *                         LED點(diǎn)陣實(shí)驗(yàn) (顯示數(shù)字)                                                                         *
  4.                 行:高電平有效,,低16位  列:低電平有效,高16位

  5. ******************************************************************************************/

  6. #include <REG51.H>
  7. #include <intrins.h>
  8. #define  NOP() _nop_()  // 定義空指令 ,,這個(gè)函數(shù)在庫(kù) <intrins.h> 中

  9. //SPI IO
  10. sbit MOSIO = P3^4;
  11. sbit R_CLK = P3^5;
  12. sbit S_CLK = P3^6;

  13. //變量聲明
  14. unsigned long column;   //點(diǎn)陣列
  15. unsigned long row;      //點(diǎn)陣行
  16. unsigned long dt;

  17. //點(diǎn)陣顯示數(shù)組
  18. unsigned char code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
  19.                              0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00};

  20. unsigned char code tab1[] = {96,2,28,10,16,18,16,2,254,63,16,2,16,18,112,18,24,10,22,10,16,36,16,42,16,49,156,32,0,0,0,0};

  21. unsigned char code tab2[] = {0,30,252,9,72,8,144,4,254,63,66,32,252,31,32,0,240,15,80,4,136,2,4,1,194,6,56,56,0,0,0,0};

  22. unsigned char code tab3[] = {144,0,144,0,208,63,72,32,40,16,12,2,10,2,136,10,136,18,72,18,72,34,40,34,8,2,136,3,0,0,0,0};

  23. unsigned char code tab4[] = {0,0,0,0,60,240,102,156,67,130,0,0,0,0,0,0,0,0,0,0,48,24,96,8,192,7,0,0,0,0,0,0};

  24. //函數(shù)聲明
  25. void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0);
  26.                                                                                                                                                                                        
  27. /*************主函數(shù)*****************************/       
  28. void main(void)
  29. {
  30.    int k,i,ms;
  31.    i = 16;                                                                                                                                  //顯示時(shí)間
  32.    while(1)
  33.    {
  34.      for(ms = i; ms > 0; ms--)
  35.          {
  36.        for(k = 0; k < 16; k++)                                                                                                //我
  37.            {         
  38.          HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);                  
  39.            }
  40.          }
  41.          HC595SendData(0xff,0xff,0,0);                                                                                   //清屏                                                                      

  42.          for(ms = i; ms > 0; ms--)
  43.          {
  44.        for(k = 0; k < 16; k++)                                                                                            //愛
  45.            {         
  46.          HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]);                  
  47.            }
  48.          }
  49.           HC595SendData(0xff,0xff,0,0);                                                                                //清屏

  50.          for(ms = i; ms > 0; ms--)
  51.          {
  52.        for(k = 0; k < 16; k++)                                                                                                //你
  53.            {         
  54.          HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]);                  
  55.            }
  56.          }       
  57.          HC595SendData(0xff,0xff,0,0);                                                                                //清屏
  58.                 
  59.          for(ms = 30; ms > 0; ms--)
  60.          {
  61.        for(k = 0; k < 16; k++)                                                                                                //笑臉
  62.            {         
  63.          HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]);                  
  64.            }
  65.          }       
  66.          HC595SendData(0xff,0xff,0,0);       
  67.    }
  68. }

  69. /*********************************************************************************************************
  70. ** 函數(shù)名稱: HC595SendData
  71. ** 功能描述: 向SPI總線發(fā)送數(shù)據(jù)
  72. *********************************************************************************************************/
  73. void HC595SendData(  unsigned char BT3, unsigned char BT2,unsigned char BT1,unsigned char BT0)
  74. {  
  75.   unsigned char i;
  76.   for(i = 0; i < 32; i++)
  77.    {
  78.    if(i > 23 )
  79.    {
  80.       if((BT0 << (i - 24)) & 0x80)
  81.       {
  82.             MOSIO = 1;
  83.           }
  84.           else
  85.           {
  86.             MOSIO = 0;
  87.           }
  88.    }
  89.    
  90.    else if(i > 15 & i < 24 )
  91.    {
  92.         if((BT1 << (i - 16)) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進(jìn)行邏輯運(yùn)算
  93.       {
  94.             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  95.           }
  96.         else
  97.           {
  98.             MOSIO = 0;                                     
  99.           }       
  100.    }


  101.     else if(i < 16 & i > 7 )
  102.    {
  103.       if((BT2 << (i - 8)) & 0x80)
  104.       {
  105.             MOSIO = 1;
  106.           }
  107.           else
  108.           {
  109.             MOSIO = 0;
  110.           }
  111.    }
  112.    

  113.         else
  114.         {
  115.                   if((BT3 << i) & 0x80)  //set dataline high  0X80000000  最高位與SendVal左移的最高位 進(jìn)行邏輯運(yùn)算
  116.       {
  117.             MOSIO = 1;                                          // 如果為真 MOSIO = 1
  118.           }
  119.         else
  120.           {
  121.             MOSIO = 0;                                     
  122.           }       
  123.         }
  124.         S_CLK = 0;
  125. //        NOP();        //產(chǎn)生方形波
  126.         S_CLK = 1;       
  127.    }
  128.    
  129.   R_CLK = 0; //set dataline low
  130. // NOP();   //產(chǎn)生方形波
  131.   R_CLK = 1; //片選
  132. }

復(fù)制代碼


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多