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

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

QQ登錄

只需一步,快速開(kāi)始

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

16x16LED點(diǎn)陣屏制作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:88481 發(fā)表于 2016-3-18 23:26 來(lái)自手機(jī) | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
趁著春節(jié)幾天假期,做個(gè)16x16點(diǎn)陣屏練練手。目的學(xué)習(xí)模擬串口,所以選用2塊164和2塊595驅(qū)動(dòng)。164驅(qū)動(dòng)電流較少,用三極管驅(qū)動(dòng)選作行掃描,595作列顯示。LED選用5x5紅色方型。為了美觀,將驅(qū)動(dòng)和顯示分開(kāi)制作。
半個(gè)月后,終于制成了。通電調(diào)試時(shí),發(fā)覺(jué)一個(gè)嚴(yán)重錯(cuò)誤,每個(gè)LED亮度互相影響。怎么辦?后來(lái)想到用熱縮管包著每個(gè)LED(兩百多個(gè)LED,想想都怕)。但每個(gè)LED體積增大了,原來(lái)的板子不能再。無(wú)法,咬咬牙重做板子。結(jié)果,直到三月份才完成。

IMG_20160313_193237.jpg (45 KB, 下載次數(shù): 293)

IMG_20160313_193237.jpg

IMG_20160318_091100.jpg (44.97 KB, 下載次數(shù): 258)

IMG_20160318_091100.jpg

IMG_20160318_125820.jpg (70.16 KB, 下載次數(shù): 334)

IMG_20160318_125820.jpg

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2016-3-19 00:46 | 只看該作者
做工精美厲害啊,能分享一下 電路圖和點(diǎn)陣的源代碼嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:88481 發(fā)表于 2016-3-19 17:19 來(lái)自手機(jī) | 只看該作者
admin 發(fā)表于 2016-3-19 00:46
做工精美厲害啊,能分享一下 電路圖和點(diǎn)陣的源代碼嗎?

原理圖沒(méi)有畫LED,圖中1~16接LED正極,a~p接負(fù)極。程序都是參考別人修改過(guò)來(lái)的。

  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define  SPEED  13

  4. void xmove(char dir,unsigned char *ptr,char n,char speed);
  5. void delay(unsigned int a);
  6. void display();
  7. void displaytime(char time);
  8. void init164();

  9. sbit  ADATA= P1^0;
  10. sbit  ASCK= P1^1;
  11. sbit  LATCH= P1^2;
  12. sbit  BDATA= P1^3;
  13. sbit  BCLK= P1^4;

  14. code unsigned char kai[32]={0x18,0x00,0x5A,0xF8,0x5A,0xF8,0x5A,0xD8,0x7E,0xD8,0x00,0xD8,0xFE,0xD8,0xFE,0xD8,
  15. 0x06,0xD8,0x7E,0xD8,0x60,0xD8,0x6E,0xD8,0x7D,0x9A,0x73,0x1E,0x02,0x0E,0x00,0x00};  /*--  文字:  凱  --*/


  16. code unsigned char yu[32]={ 0x00,0x78,0x3F,0xF8,0x3F,0x80,0x01,0x80,0x1F,0xF8,0x19,0x98,0x1F,0xF8,0x01,0x80,
  17. 0x3F,0xFE,0x3F,0xFE,0x31,0x86,0x31,0xA6,0x37,0xF6,0x37,0x1E,0x30,0x0C,0x00,0x00}; /*--  文字:  禹  --*/
  18.          
  19. code unsigned char duan[32]={0x03,0x00,0x03,0x00,0x3F,0xF8,0x3F,0xF8,0x33,0x18,0x33,0x18,0x3F,0xF8,0x33,0x18,
  20. 0x33,0x18,0x3F,0xF8,0x3F,0xF8,0x33,0x06,0x03,0x06,0x03,0xFE,0x01,0xFC,0x00,0x00};  /*--  文字:  電  --*/


  21. code unsigned char lu[32]={0x00,0xC0,0x7C,0xC0,0x7D,0xF8,0x6D,0x98,0x6F,0xD8,0x7C,0x70,0x18,0xF8,0x5B,0x9E,
  22. 0x5F,0x04,0x5D,0xF8,0x59,0x98,0x5D,0x98,0xFD,0xF8,0xE1,0xF8,0x01,0x98,0x00,0x00}; /*--  文字:  路  --*/

  23. unsigned char idata buffer[32];

  24. void main(void)
  25. {
  26.         unsigned char i;
  27.         init164();
  28.         while(1)
  29.         {        
  30.                 for(i=0;i<32;i++)
  31.                 buffer[i]=kai[i];
  32.                 displaytime(1);
  33.                 xmove(1,zhong,3,SPEED);
  34.                 displaytime(1);
  35.         }
  36. }
  37. /*************  子函數(shù)   ******************/
  38. void delay(unsigned int a)
  39. {
  40.         while(a--);
  41. }

  42. void display()
  43. {
  44.         unsigned char hang,ib,k,tmp;
  45.     P1= 0x00;
  46.         BDATA = 1;
  47.         for(hang=0;hang<16;hang++)
  48.         {
  49.                 ASCK =0;               
  50.                 LATCH=0;
  51.                 BCLK =0;
  52.                 for(ib=0;ib<2;ib++)
  53.                 {
  54.                         tmp = buffer[hang*2+ib];
  55.                         for(k=0;k<8;k++)
  56.                         {
  57.                                 tmp <<=1;
  58.                                 ASCK  =0;
  59.                                 ADATA =CY;
  60.                                 ASCK  =1;
  61.                         }
  62.                 }
  63.                 LATCH=1;
  64.                 BCLK=1;
  65.                 BDATA=0;
  66.         }
  67.         delay(64);
  68.         ASCK =0;
  69.         ASCK =1;
  70. }

  71. void displaytime(char time)
  72. {
  73.         unsigned char i;
  74.         while(time--)
  75.         {
  76.                 i=130;
  77.                 while(i--)
  78.                          display();
  79.         }
  80. }

  81. void init164()   //初始化164所有腳置0
  82. {
  83.         char i;
  84.         BDATA=0;
  85.         for(i=0;i<16;i++)
  86.         {
  87.                 BCLK =0;
  88.                 BCLK =1;
  89.         }
  90. }

  91. void xmove(char dir,unsigned char *ptr,char n,char speed)                                                         /*  dir 方向       n是要移動(dòng)的漢字個(gè)數(shù)   speed移動(dòng)速度*/        
  92. {
  93.         unsigned char  i=0,  ib=0;
  94.         unsigned int   tmp=0, speedm=0;
  95.         unsigned char  buffer2[16];         //半個(gè)漢字的緩存

  96.         n*=2;     //左半字和右半字,所以要x2            
  97.         for(i=0;i<16;i++)   //清零
  98.                 buffer2[i]=0;

  99. /****     向左移動(dòng)    ****/
  100.         if(dir == 1)     
  101.         {
  102.                 for(n;n>0;n--)   
  103.                 {               
  104.                         if(ptr != 0)
  105.                         {
  106.                                 tmp = n%2;        //判斷是左半字還是右半字
  107.                                 for(i=0;i<16;i++)
  108.                                         buffer2[i]=ptr[i*2+tmp];
  109.         
  110.                                 if(tmp)                //tmp為1時(shí),將地址指向下一個(gè)漢字
  111.                                         ptr+=32;
  112.                         }
  113.                         
  114.                         for(tmp=8;tmp>0;tmp--)  //要移動(dòng)8列        
  115.                         {                                   
  116.                                 ib=0;        
  117.                                 for(i=0;i<16;i++)
  118.                                 {                //要移16行,共16個(gè)字節(jié)
  119.                        
  120.                                         buffer[ib] <<=1; //移第一個(gè)半字
  121.                                         if(buffer[ib+1] & 0x80)        
  122.                                                 buffer[ib]++;
  123.                                         ib++;                        
  124.         
  125.                                         buffer[ib]<<=1;                //移后半字
  126.                                         if(buffer2[i] & 0x80)           
  127.                                                 buffer[ib]++;
  128.                                         ib++;
  129.         
  130.                                         buffer2[i]<<=1;                //緩沖左半字向左移一位
  131.                                 }
  132.                                 
  133.                                 speedm=speed;        //更新點(diǎn)陣
  134.                                 while(speedm--)
  135.                                         display();
  136.                         }
  137.                 }
  138.         }
  139. //--------------------------------------------------//
  140.         else        
  141.         {
  142.    /******  向右移動(dòng)   ******/
  143.                 for(n;n>0;n--)
  144.                 {               
  145.                         if(ptr != 0)
  146.                         {
  147.                                 tmp = (n+1) % 2  ;        //判斷左半字還是右半字
  148.                                 for(i=0;i<16;i++)
  149.                                         buffer2[i]=ptr[i*2+tmp];
  150.                                                                
  151.                                 if(tmp == 0)                //tmp為0時(shí),將地址指向下一個(gè)漢字
  152.                                         ptr+=32;
  153.                         }
  154.                         
  155.                         for(tmp=8;tmp>0;tmp--)  //要移動(dòng)8列        
  156.                         {                                   
  157.                                 ib=0;        
  158.                                 for(i=0;i<16;i++)
  159.                                 {                //要移16行,共16個(gè)字節(jié)
  160.                        
  161.                                         buffer[ib+1] >>= 1;             //移右半字
  162.                                         if(buffer[ib] & 0x01)        
  163.                                                 buffer[ib+1] |=0x80 ;                        
  164.         
  165.                                         buffer[ib] >>= 1;            //移左半字
  166.                                         if(buffer2[i] & 0x01)           
  167.                                                 buffer[ib] |= 0x80;
  168.                                         ib+=2;
  169.         
  170.                                         buffer2[i] >>=1;                //下個(gè)漢字的右半字向右移一位
  171.                                 }
  172.                                 
  173.                                 speedm=speed;        
  174.                                 while(speedm--)  //更新點(diǎn)陣
  175.                                         display();
  176.                         }
  177.                
  178.                 }
  179.         }
  180. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

地板
ID:114228 發(fā)表于 2016-4-27 17:36 | 只看該作者
原理圖看不清楚,希望能上個(gè)原版的原理圖文件
回復(fù)

使用道具 舉報(bào)

5#
ID:103831 發(fā)表于 2016-4-29 13:58 | 只看該作者
方形LED  哪里買的,能說(shuō)下嘛
回復(fù)

使用道具 舉報(bào)

6#
ID:146734 發(fā)表于 2016-11-19 23:21 | 只看該作者
51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

7#
ID:157486 發(fā)表于 2016-12-25 12:41 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清av在线 | 日韩精品一区二区三区中文在线 | 亚洲激情在线观看 | 在线精品国产 | 午夜一级做a爰片久久毛片 精品综合 | 久久久久国产 | 国产成人精品一区二区三区四区 | 天天操天天天 | 在线视频亚洲 | 一区观看| 国产黄色免费网站 | 久久亚洲免费 | 欧美日韩中文字幕在线 | 99久久电影 | 国产精品国产a级 | 都市激情亚洲 | 特黄色毛片 | 久久久综合 | 男人视频网站 | 成年免费大片黄在线观看一级 | 午夜精品视频一区 | 亚洲国产成人在线观看 | 日韩午夜电影在线观看 | 国产精品视频观看 | 污片在线观看 | 欧美bondage紧缚视频 | 成人亚洲片 | 国产美女在线看 | 国产日韩精品一区二区 | 国产精品精品视频一区二区三区 | 亚洲精品白浆高清久久久久久 | 亚洲国产成人精品久久久国产成人一区 | 国产一区二 | 精品久久成人 | 91精品国产综合久久精品 | 你懂的国产 | 欧美大片一区二区 | 亚洲国产精品一区二区第一页 | 1级黄色大片 | 欧美日韩在线国产 | 91色视频在线观看 |