痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 6118|回復: 16

LED點矩陣應用

  [複製鏈接]
發表於 2012-6-22 22:11:52 | 顯示全部樓層 |閱讀模式
對LED矩陣有興趣的可以參考看看
Noname.jpg

LED點矩陣應用.part1.rar

1.43 MB, 下載次數: 252

LED點矩陣應用.part2.rar

1.43 MB, 下載次數: 210

LED點矩陣應用.part3.rar

1.43 MB, 下載次數: 218

LED點矩陣應用.part4.rar

584.55 KB, 下載次數: 216

評分

9

查看全部評分

發表於 2012-6-22 23:08:00 | 顯示全部樓層
水啦!
雄爸爸,就是在找這類的文件的啦!
感謝分享的啦!
發表於 2012-6-22 23:52:01 | 顯示全部樓層
雄爸:
    加油!! 焊接萬用版是辛苦工作!! 程式有許多可以應用!! 四個字應該就夠玩了,每個字要3個74HC595....
 樓主| 發表於 2012-6-22 23:55:11 | 顯示全部樓層
antlu 發表於 2012-6-22 11:52 PM static/image/common/back.gif
雄爸:
    加油!! 焊接萬用版是辛苦工作!! 程式有許多可以應用!! 四個字應該就夠玩了,每個字要3個74HC595.. ...

n_040|
我做的是16*16
你要的是24*24
發表於 2012-6-23 00:07:57 | 顯示全部樓層
感謝雄爸爸
真是豐富的資料
來去看看
發表於 2012-6-23 00:41:44 | 顯示全部樓層
雄爸您好!!....
       真的很感謝您分享這麼好的資料!!
       小弟一直想學這方面的知識!!
       LED點矩陣應用的方面粗略懂一點點.....
       單晶片方面就完全沒摸過......
發表於 2012-6-23 16:57:41 | 顯示全部樓層
雄爸爸 發表於 2012-6-22 11:55 PM static/image/common/back.gif
我做的是16*16
你要的是24*24

雄爸:
  您誤會了!!! 我要做的是 8*24  或是 8*32  這樣英文跑馬燈OK啦!!
發表於 2012-6-23 16:59:17 | 顯示全部樓層
雄爸:
  實驗版的程式


#include<reg52.h>    //婦漪芛恅璃ㄛ珨啜ロ錶祥剒猁蜊雄ㄛ芛恅璃婦漪杻忷髡夔敵湔け腔隅砱
#include <intrins.h>
#include <delay.h>

unsigned char  segout[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //8蹈
/*unsigned char code tab[96]={
                        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //諾跡
                        0x00,0x7E,0xFF,0xC3,0xC3,0xFF,0x7E,0x00, //趼睫0
                        0x00,0x00,0x43,0xFF,0xFF,0x03,0x00,0x00, //趼睫1
                        0x00,0x63,0xC7,0xCF,0xDB,0xF3,0x63,0x00, //趼睫2
                        0x00,0x42,0xDB,0xDB,0xDB,0xFF,0x66,0x00, //趼睫3
                        0x00,0x3E,0x46,0xFF,0xFF,0x06,0x06,0x00, //趼睫4
                        0x00,0xF6,0xF7,0xD3,0xD3,0xDF,0xDE,0x00, //趼睫5
                        0x00,0x7E,0xFF,0xDB,0xDB,0xDF,0x4E,0x00, //趼睫6
                        0x00,0xC0,0xC0,0xC7,0xFF,0xF8,0xC0,0x00, //趼睫7
                        0x00,0xFF,0xFF,0xDB,0xDB,0xFF,0xFF,0x00, //趼睫8
                        0x00,0x72,0xFB,0xDB,0xDB,0xFF,0x7E,0x00, //趼睫9
                        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00   //諾跡
                        };*/
unsigned char tab[85]={
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //諾跡},
0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa0, 0x40, 0x00, 0x00,//J
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,//.
0x00, 0xf8, 0x48, 0x50, 0x70, 0x50, 0x40, 0x40, 0xe0, 0x00, 0x00,//F
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,//.
0x00, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x48, 0xf8, 0x00, 0x00,//L
0x00, 0xf8, 0x48, 0x50, 0x70, 0x50, 0x40, 0x48, 0xf8, 0x00, 0x00,//E
0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00//U
};
/*------------------------------------------------
                茞璃傷諳隅砱
------------------------------------------------*/
sbit LATCH = P1^0; //
sbit SRCLK= P1^1;
sbit SER  = P1^2;


sbit LATCH_B = P2^2;
sbit SRCLK_B= P2^1;
sbit SER_B= P2^0;




/*------------------------------------------------
                楷冞趼誹最唗
           湍衄源砃統杅ㄛ褫眕恁寁植詢弇誹迡フ麼氪腴弇迡フ
------------------------------------------------*/
void SendByte(unsigned char dat,bit direction)
{   
  unsigned char i,temp;
   if(direction==0)
     temp=0x80;
   else
     temp=0x01;

   for(i=0;i<8;i++)
        {
         SRCLK=0;
         SER=dat&temp;
         if(direction==0)
         dat<<=1;
         else
             dat>>=1;
         SRCLK=1;
         }
         
}
/*------------------------------------------------
                楷冞邧趼誹最唗
------------------------------------------------*/
void Send2Byte(unsigned char dat1,unsigned char dat2,bit direction)
{   
   SendByte(dat1,direction);
   SendByte(dat2,direction);      
}
/*------------------------------------------------
                   595坶湔最唗
------------------------------------------------*/
void Out595(void)
{
        LATCH=0;
        _nop_();
        LATCH=1;
}

/*------------------------------------------------
                楷冞弇鎢趼誹最唗
               妏蚚鍚俋珨⑵等黃595
------------------------------------------------*/
void SendSeg(unsigned char dat)
{   
  unsigned char i;
        
   for(i=0;i<8;i++)  //楷冞趼誹
        {
         SRCLK_B=0;
         SER_B=dat&0x80;
         dat<<=1;
         SRCLK_B=1;
         }
      LATCH_B=0;    //坶湔
      _nop_();
      LATCH_B=1;
         
}
/*------------------------------------------------
                   翋最唗
------------------------------------------------*/
void main()
{
unsigned char i,k,l;
while(1)
{
      for(k=0;k<=77;k++)     //shift 88 byte
         for(l=10;l>0;l--)    //cycle times for same display word
            for(i=7;i>0;i--) //fill up 8x8 LED
                  {
                     SendSeg(segout[i]);
                                         Send2Byte((~(*(tab+i+k))),0xff,0);
                                         Out595();
                     DelayMs(1);
                                 Send2Byte(0xff,0xff,0);//delay(10); //滅砦笭荌
                                 Out595();
                  }


for(k=0;k<=77;k++)     //垀衄腔趼睫跺杅
         for(l=8;l>0;l--)    //晊奀酗僅,蜊曹森硉褫眕蜊曹霜雄厒僅
            for(i=7;i>0;i--) //8蹈珆尨
                  {
                     SendSeg(segout[7-i]);
                                         Send2Byte(0xff,~(*(tab+i+k)),0); //迡フ趼誹源砃蜊曹
                                         Out595();
                     DelayMs(1);
                                         Send2Byte(0xff,0xff,0);//delay(10); //滅砦笭荌
                                         Out595();
                  }
         }
}
發表於 2012-6-23 23:33:11 | 顯示全部樓層
code 變更編碼為 big5
一開始是自己用手打的,可能有改到用詞用語,就抱歉啦~
  1. #include<reg52.h>    //包含head file,一般狀況是不需要變動的,head file包含特殊功能暫存器的定義
  2. #include <intrins.h>
  3. #include <delay.h>

  4. unsigned char  segout[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //8列
  5. /*unsigned char code tab[96]={
  6.                         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空格
  7.                         0x00,0x7E,0xFF,0xC3,0xC3,0xFF,0x7E,0x00, //字符0
  8.                         0x00,0x00,0x43,0xFF,0xFF,0x03,0x00,0x00, //字符1
  9.                         0x00,0x63,0xC7,0xCF,0xDB,0xF3,0x63,0x00, //字符2
  10.                         0x00,0x42,0xDB,0xDB,0xDB,0xFF,0x66,0x00, //字符3
  11.                         0x00,0x3E,0x46,0xFF,0xFF,0x06,0x06,0x00, //字符4
  12.                         0x00,0xF6,0xF7,0xD3,0xD3,0xDF,0xDE,0x00, //字符5
  13.                         0x00,0x7E,0xFF,0xDB,0xDB,0xDF,0x4E,0x00, //字符6
  14.                         0x00,0xC0,0xC0,0xC7,0xFF,0xF8,0xC0,0x00, //字符7
  15.                         0x00,0xFF,0xFF,0xDB,0xDB,0xFF,0xFF,0x00, //字符8
  16.                         0x00,0x72,0xFB,0xDB,0xDB,0xFF,0x7E,0x00, //字符9
  17.                         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00   //空格
  18.                         };*/
  19. unsigned char tab[85]={
  20. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //空格},
  21. 0x00, 0x70, 0x20, 0x20, 0x20, 0x20, 0x20, 0xa0, 0x40, 0x00, 0x00,//J
  22. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,//.
  23. 0x00, 0xf8, 0x48, 0x50, 0x70, 0x50, 0x40, 0x40, 0xe0, 0x00, 0x00,//F
  24. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,//.
  25. 0x00, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x48, 0xf8, 0x00, 0x00,//L
  26. 0x00, 0xf8, 0x48, 0x50, 0x70, 0x50, 0x40, 0x48, 0xf8, 0x00, 0x00,//E
  27. 0x00, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00//U
  28. };
  29. /*------------------------------------------------
  30.                 硬件端口定義
  31. ------------------------------------------------*/
  32. sbit LATCH = P1^0; //
  33. sbit SRCLK= P1^1;
  34. sbit SER  = P1^2;


  35. sbit LATCH_B = P2^2;
  36. sbit SRCLK_B= P2^1;
  37. sbit SER_B= P2^0;




  38. /*------------------------------------------------
  39.                 發送字節程序
  40.            帶有方向參數,可以選擇從高位節寫入或低位節寫入
  41. ------------------------------------------------*/
  42. void SendByte(unsigned char dat,bit direction)
  43. {   
  44.   unsigned char i,temp;
  45.    if(direction==0)
  46.      temp=0x80;
  47.    else
  48.      temp=0x01;

  49.    for(i=0;i<8;i++)
  50.         {
  51.          SRCLK=0;
  52.          SER=dat&temp;
  53.          if(direction==0)
  54.          dat<<=1;
  55.          else
  56.              dat>>=1;
  57.          SRCLK=1;
  58.          }
  59.          
  60. }
  61. /*------------------------------------------------
  62.                 發送雙字節程序
  63. ------------------------------------------------*/
  64. void Send2Byte(unsigned char dat1,unsigned char dat2,bit direction)
  65. {   
  66.    SendByte(dat1,direction);
  67.    SendByte(dat2,direction);      
  68. }
  69. /*------------------------------------------------
  70.                    595鎖存程序
  71. ------------------------------------------------*/
  72. void Out595(void)
  73. {
  74.         LATCH=0;
  75.         _nop_();
  76.         LATCH=1;
  77. }

  78. /*------------------------------------------------
  79.                 發送位碼字節程序
  80.                使用另外一個單獨595
  81. ------------------------------------------------*/
  82. void SendSeg(unsigned char dat)
  83. {   
  84.   unsigned char i;
  85.         
  86.    for(i=0;i<8;i++)  //發送字節
  87.         {
  88.          SRCLK_B=0;
  89.          SER_B=dat&0x80;
  90.          dat<<=1;
  91.          SRCLK_B=1;
  92.          }
  93.       LATCH_B=0;    //鎖存
  94.       _nop_();
  95.       LATCH_B=1;
  96.          
  97. }
  98. /*------------------------------------------------
  99.                    主程序
  100. ------------------------------------------------*/
  101. void main()
  102. {
  103. unsigned char i,k,l;
  104. while(1)
  105. {
  106.       for(k=0;k<=77;k++)     //shift 88 byte
  107.          for(l=10;l>0;l--)    //cycle times for same display word
  108.             for(i=7;i>0;i--) //fill up 8x8 LED
  109.                   {
  110.                      SendSeg(segout[i]);
  111.                                          Send2Byte((~(*(tab+i+k))),0xff,0);
  112.                                          Out595();
  113.                      DelayMs(1);
  114.                                  Send2Byte(0xff,0xff,0);//delay(10); //防止重影
  115.                                  Out595();
  116.                   }


  117. for(k=0;k<=77;k++)     //所有的字符個數
  118.          for(l=8;l>0;l--)    //延時長度,改變此值可以改變流動速度
  119.             for(i=7;i>0;i--) //8列顯示
  120.                   {
  121.                      SendSeg(segout[7-i]);
  122.                                          Send2Byte(0xff,~(*(tab+i+k)),0); //寫入字節方向改變
  123.                                          Out595();
  124.                      DelayMs(1);
  125.                                          Send2Byte(0xff,0xff,0);//delay(10); //防止重影
  126.                                          Out595();
  127.                   }
  128.          }
  129. }
複製代碼

LED陣列程式.rar

1.33 KB, 下載次數: 68

發表於 2012-6-24 15:59:04 | 顯示全部樓層
windata 發表於 2012-6-23 11:33 PM static/image/common/back.gif
code 變更編碼為 big5
一開始是自己用手打的,可能有改到用詞用語,就抱歉啦~ ...

感謝幫忙轉檔,對岸的文字編碼在XP-SP3 才可以用!! 我到現在還不會轉碼!!
發表於 2012-6-24 16:10:46 | 顯示全部樓層
antlu 發表於 2012-6-24 03:59 PM static/image/common/back.gif
感謝幫忙轉檔,對岸的文字編碼在XP-SP3 才可以用!! 我到現在還不會轉碼!!

或許該試用一下一套軟體,如果經常接觸 簡中文件 的話

ConverZ

我找時間上傳+基礎教學,您應該可以在網路上找到許多關於這個軟體的文章
發表於 2012-6-24 16:17:56 | 顯示全部樓層
雄爸爸 發表於 2012-6-22 11:55 PM static/image/common/back.gif
我做的是16*16
你要的是24*24

雄爸:
   今天好不容易把 3個74HC595 焊接到萬用板上 8*8 LED CSM88261EG ,原先想要把3個 8*8連在一起,因為零件不足先做一個,發現有一個現象!! 一個問題!!
現象: 8*8地接腳 每3隻一組 共24腳 上端 1 2 3 4 下端 5 6 7 8 (要注意:不是下端 8 7 6 5 )
問題: 以目前的程式跑 點矩陣 是 由下往上 或是 由上往下 所以假如把接腳設計成 上 1~12腳 下 13~24腳會造成字型無法連起來,假如把接腳設計成 右1~12腳 左13~24腳這樣就可以連在一起...,當然程式改寫就可以解決此一問題.
    我把3個595焊在 LED8*8地接腳裡面是可行的,只是接線很多... 74HC595的 9腳連接到下一級的14腳就可以串連..
發表於 2012-6-24 18:17:37 | 顯示全部樓層
windata 發表於 2012-6-24 04:10 PM static/image/common/back.gif
或許該試用一下一套軟體,如果經常接觸 簡中文件 的話

ConverZ

WINDATA:
  非常感謝!! 這世界上有太多的資料與方法可以協助人們解決問題,只是,大都沒有受到幫助而無法解決導致大量的浪費,感謝您的熱心幫忙,希望這一訊息可以讓更多的人受惠!! 我已經下載了.
 樓主| 發表於 2012-6-25 16:09:10 | 顯示全部樓層
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch01.pdf             輕鬆看89S51
http://hsu01.sg1004.myweb.hinet.net/main/sp12/c.pdf          認識uVISION與Keil C
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch02.pdf  Keil C   基本操作
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch03p2.pdf         輸出入埠之應用 P2
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch04p1.pdf         輸出入埠之應用 P1
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch05p1.pdf         輸出入埠之進階應用P1
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch06.pdf             中斷之應用
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch07.pdf             計時計數器之應用
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch09.pdf             聲音之產生
http://smail.mingdao.edu.tw/~byl/8051/c/c_13.pdf               LCD模組之應用
http://163.15.202.98/localuser/huangcc/web1/new/micro/ex8.pdf    直流馬達之控制

其他資料,有興趣的人自行搜尋"例說89S51-C語言"

評分

1

查看全部評分

 樓主| 發表於 2012-6-25 21:11:40 | 顯示全部樓層
本帖最後由 雄爸爸 於 2012-6-25 09:14 PM 編輯

這是上星期畫好的16*16電路
16-16.jpg

16-16-直驅-共陰.zip

38.13 KB, 下載次數: 58

16-16-直驅-共陽.zip

40.18 KB, 下載次數: 65

發表於 2012-6-26 00:39:55 | 顯示全部樓層
雄爸爸 發表於 2012-6-25 04:09 PM static/image/common/back.gif
http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch01.pdf             輕鬆看89S51
http://hsu01.sg1004.myweb ...

雄爸您好!!

感謝您提供這麼多的資料給新手學習的機會!!
小弟是剛入門的菜鳥
不知能否提供一些簡易的"入門書籍"的資料給想學習的菜鳥參考參考!!
麻煩您了!!.....謝謝您!!.....
發表於 2012-7-1 21:05:15 | 顯示全部樓層
本人一直再找的資料就是這個,
真是謝謝樓主的分享.
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-5-5 03:34 AM , Processed in 0.101050 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.