久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5895|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

16x16點(diǎn)陣使用兩個(gè)74HC595顯示圖片 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
最近在研究單片機(jī)驅(qū)動(dòng)16x16點(diǎn)陣,分享一個(gè)程序~
關(guān)于大家想要顯示的圖形,可以自行更改uchar code tab1[] ={..}的內(nèi)容


單片機(jī)源程序:

  1. #include <REG51.H>
  2. //--重定義函數(shù)變量--//
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. #define ulong unsigned long
  6. #define  GPIO_KEY P1

  7. //--定義SPI要使用的 IO--//
  8. sbit MOSIO = P3^4;
  9. sbit R_CLK = P3^5;
  10. sbit S_CLK = P3^6;

  11. //---全局變量聲明--//
  12. ulong column;   //點(diǎn)陣列
  13. ulong row;      //點(diǎn)陣行
  14. ulong dt;
  15. void Delay10ms(unsigned int c);
  16. unsigned char Key_Scan();

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


  23. uchar code tab1[] ={255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255};
  24. uchar code tab2[] ={255,255,1,128,253,191,5,160,5,160,5,160,5,160,5,160,5,160,5,160,5,160,5,160,5,160,253,191,1,128,255,255}        ;
  25. uchar code tab3[] = {255,255,1,128,253,191,5,160,245,175,21,168,21,168,21,168,21,168,21,168,21,168,245,175,5,160,253,191,1,128,255,255};
  26. uchar code tab4[] ={255,255,1,128,253,191,5,160,245,175,21,168,213,171,85,170,85,170,213,171,21,168,245,175,5,160,253,191,1,128,255,255};
  27. uchar code tab5[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,1,128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
  28. uchar code tab6[] = {0,0,0,0,0,0,0,0,0,0,224,7,32,4,160,5,160,5,32,4,224,7,0,0,0,0,0,0,0,0,0,0};
  29. uchar code tab7[] = {0,0,0,0,0,0,248,31,8,16,232,23,40,20,168,21,168,21,40,20,232,23,8,16,248,31,0,0,0,0,0,0};
  30. uchar code tab8[] = {0,0,254,127,2,64,250,95,10,80,234,87,42,84,170,85,170,85,42,84,234,87,10,80,250,95,2,64,254,127,0,0};

  31. //--全局函數(shù)聲明--//
  32. void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0);
  33.                                                                                                                                                                                        

  34. void main(void)
  35. {
  36.         int k, i, ms;
  37.         i = 40;                                        //顯示時(shí)間                                                                                                                                                                  
  38.         while(1)
  39.         {
  40.                 //--顯示10--//
  41.                 for(ms = i; ms > 0; ms--)
  42.                 {
  43.                         for(k = 0; k < 16; k++)                                                                                
  44.                         {         
  45.                         HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]);
  46.                         }                  
  47.                 }
  48.                 HC595SendData(0xff,0xff,0,0);                                                                                                                                             
  49.                
  50.                 //--顯示09--//
  51.                 for(ms = i; ms > 0; ms--)
  52.                 {
  53.                         for(k = 0; k < 16; k++)                                                                                            
  54.                         {         
  55.                                 HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]);                  
  56.                         }
  57.                 }
  58.                 HC595SendData(0xff,0xff,0,0);                                                                              
  59.                
  60.                 //--顯示08--//
  61.                 for(ms = i; ms > 0; ms--)
  62.                 {
  63.                         for(k = 0; k < 16; k++)                                                                                                
  64.                         {         
  65.                                 HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]);                  
  66.                         }
  67.                 }        
  68.                 HC595SendData(0xff,0xff,0,0);         
  69.                
  70.                 //--顯示07--//
  71.                 for(ms = i; ms > 0; ms--)
  72.                 {
  73.                         for(k = 0; k < 16; k++)                                                
  74.                         {         
  75.                                 HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]);                  
  76.                         }
  77.                 }        
  78.                 HC595SendData(0xff,0xff,0,0);                                                                                       
  79.                                                                                                                                                          
  80.                 //--顯示06--//
  81.                 for(ms = i; ms > 0; ms--)
  82.                 {
  83.                         for(k = 0; k < 16; k++)                                                                                                
  84.                         {         
  85.                                 HC595SendData(~tab5[2*k +1],~tab5[2*k],tab0[2*k],tab0[2*k + 1]);                  
  86.                         }
  87.                 }        
  88.                 HC595SendData(0xff,0xff,0,0);                                                                                       
  89.         
  90.             //--顯示05--//
  91.                 for(ms = i; ms > 0; ms--)
  92.                 {
  93.                         for(k = 0; k < 16; k++)                                                                                                //歡
  94.                         {         
  95.                                 HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]);                  
  96.                         }
  97.                 }        
  98.                 HC595SendData(0xff,0xff,0,0);                                                      
  99.         
  100.             //--顯示04--//
  101.                 for(ms = i; ms > 0; ms--)
  102.                 {
  103.                         for(k = 0; k < 16; k++)                                                        
  104.                         {         
  105.                                 HC595SendData(~tab7[2*k +1],~tab7[2*k],tab0[2*k],tab0[2*k + 1]);                  
  106.                         }
  107.                 }        
  108.                 HC595SendData(0xff,0xff,0,0);                                            
  109.                
  110.                 //--顯示03--//
  111.                 for(ms = i; ms > 0; ms--)
  112.                 {
  113.                         for(k = 0; k < 16; k++)                                                        
  114.                         {         
  115.                                 HC595SendData(~tab8[2*k +1],~tab8[2*k],tab0[2*k],tab0[2*k + 1]);                  
  116.                         }
  117.                 }
  118.                 HC595SendData(0xff,0xff,0,0);                                                                                                                                      
  119.         }
  120. }



  121. void HC595SendData(  uchar BT3, uchar BT2,uchar BT1,uchar BT0)
  122. {  
  123.         uchar i;
  124.         
  125.         //--發(fā)送第一個(gè)字節(jié)--//
  126.         for(i=0;i<8;i++)
  127.         {
  128.                 MOSIO = BT3 >> 7 ;        //從高位到低位
  129.                 BT3 <<= 1;

  130.                 S_CLK = 0;
  131.                 S_CLK = 1;               
  132.         }

  133.         //--發(fā)送第一個(gè)字節(jié)--//
  134.         for(i=0;i<8;i++)
  135.         {
  136.                 MOSIO = BT2 >>7;                //從高位到低位
  137.                 BT2 <<= 1;

  138.                 S_CLK = 0;
  139.                 S_CLK = 1;        
  140.         }

  141.         //--發(fā)送第一個(gè)字節(jié)--//
  142.         for(i=0;i<8;i++)
  143.         {
  144.                 MOSIO = BT1 >> 7;                //從高位到低位
  145.                 BT1 <<= 1;
  146.                 S_CLK = 0;
  147.                 S_CLK = 1;        
  148.         }

  149.         //--發(fā)送第一個(gè)字節(jié)--//
  150.         for(i=0;i<8;i++)
  151.         {
  152.                 MOSIO = BT0 >> 7;                //從高位到低位
  153.                 BT0 <<= 1;
  154.                 S_CLK = 0;
  155.                 S_CLK = 1;
  156.         }
  157.    
  158.         //--輸出--//
  159.         R_CLK = 0; //set dataline low
  160.         R_CLK = 1; //片選
  161.         R_CLK = 0; //set dataline low
  162. }

  163. unsigned char Key_Scan()
  164. {
  165.         unsigned char keyValue = 0 , i; //????

  166.         //--????1--//
  167.         if (GPIO_KEY != 0xFF)                //????K1????
  168.         {
  169.                 Delay10ms(1);        //????

  170.                 if (GPIO_KEY != 0xFF)        //??????????
  171.                 {
  172.                         keyValue = GPIO_KEY;
  173.                         i = 0;
  174.                         while ((i<50) && (GPIO_KEY != 0xFF))         //????????
  175.                         {
  176.                                 Delay10ms(1);
  177.                                 i++;
  178.                         }
  179.                 }
  180.         }


  181. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

下載:
dianzhen.zip (1.44 KB, 下載次數(shù): 37)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:83626 發(fā)表于 2018-12-13 11:07 | 只看該作者
謝謝,正需要。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黑人中文字幕一区二区三区 | 精品国产99 | 日日夜夜天天 | 国产最新网址 | 999www视频免费观看 | 久久午夜精品福利一区二区 | 亚洲成人久久久 | 麻豆a级片 | 亚洲高清视频在线观看 | 亚洲精视频 | 91欧美| 一区二区三区四区视频 | 麻豆av片| 国产成人精品午夜视频免费 | 亚洲人成在线观看 | 国产美女黄色 | 日韩在线不卡 | 午夜影院在线观看视频 | 91久久精品一区二区二区 | 国产在线视频一区 | 国产精品99精品久久免费 | 国产一区久久 | 久草成人| 欧美一区二区在线 | 99伊人网| 久久激情五月丁香伊人 | 久久蜜桃av一区二区天堂 | a在线免费观看 | av一区二区在线观看 | 激情视频一区 | 国产传媒 | 日本爱爱视频 | a在线视频观看 | 欧美a在线看 | 精品欧美一区二区精品久久久 | 国产95在线| 福利片一区二区 | 久草视频在线播放 | 欧美视频在线播放 | 色一情一乱一伦一区二区三区 | 久久精品国产一区 |