极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11508|回复: 4

ARDUINO 8個8*8的矩陣組成大跑馬燈

[复制链接]
发表于 2014-5-24 11:01:48 | 显示全部楼层 |阅读模式
我有8个MAX7219 一个MEGA2560 8个8*8矩阵
打算组成4*2的排列 变成一个大的跑马灯 求大神指点怎麼接法才能用~
可以的話順便幫我打個程式吧~
回复

使用道具 举报

发表于 2014-5-24 15:31:29 | 显示全部楼层


下面是简单的demo
  1. unsigned char i;
  2. unsigned char j;
  3. /*Port Definitions*/

  4. #define count 6           //级联个数
  5. int Max7219_pinCLK = 10;
  6. int Max7219_pinCS = 9;
  7. int Max7219_pinDIN = 8;

  8. unsigned char disp1[38][8]={
  9. //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//0
  10. {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
  11. //{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
  12. {0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x38},//1

  13. {0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
  14. {0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
  15. {0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
  16. {0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
  17. {0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
  18. {0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
  19. {0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
  20. {0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
  21. {0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
  22. {0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
  23. {0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
  24. {0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
  25. {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
  26. {0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
  27. {0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
  28. {0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
  29. {0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
  30. {0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
  31. {0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
  32. {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
  33. {0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
  34. {0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
  35. {0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
  36. {0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
  37. {0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
  38. {0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
  39. {0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
  40. {0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
  41. {0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
  42. {0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
  43. {0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
  44. {0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
  45. {0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
  46. {0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
  47. };

  48. void Write_Max7219_byte(unsigned char DATA)
  49. {   
  50.           unsigned char i;
  51.                 digitalWrite(Max7219_pinCS,LOW);               
  52.                 for(i=8;i>=1;i--)
  53.           {                  
  54.            digitalWrite(Max7219_pinCLK,LOW);
  55.            digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
  56.            DATA = DATA<<1;
  57.            digitalWrite(Max7219_pinCLK,HIGH);
  58.          }                                 
  59. }


  60. void Write_Max7219(unsigned char address,unsigned char dat)
  61. {
  62.         digitalWrite(Max7219_pinCS,LOW);
  63.         Write_Max7219_byte(address);           //写入地址,即数码管编号
  64.         Write_Max7219_byte(dat);               //写入数据,即数码管显示数字
  65.         digitalWrite(Max7219_pinCS,HIGH);
  66. }

  67. void Init_MAX7219(void)
  68. {
  69. //     Write_Max7219(0x09, 0x00);       //译码方式:BCD码
  70. //     Write_Max7219(0x0a, 0x03);       //亮度
  71. //     Write_Max7219(0x0b, 0x07);       //扫描界限;8个数码管显示
  72. //     Write_Max7219(0x0c, 0x01);       //掉电模式:0,普通模式:1
  73. //     Write_Max7219(0x0f, 0x00);        //显示测试:1;测试结束,正常显示:0

  74.       unsigned char  i;
  75.       digitalWrite(Max7219_pinCS,LOW);
  76.       for(i=0;i<count;i++)
  77.       {
  78.         Write_Max7219_byte(0x09); //译码方式:BCD码      
  79.         Write_Max7219_byte(0x00);   
  80.       }
  81.       digitalWrite(Max7219_pinCS,HIGH);
  82.       delay(50);
  83.       digitalWrite(Max7219_pinCS,LOW);
  84.       for(i=0;i<count;i++)
  85.       {
  86.         Write_Max7219_byte(0x0a); //亮度   
  87.         Write_Max7219_byte(0x03);   
  88.       }
  89.       digitalWrite(Max7219_pinCS,HIGH);
  90.       delay(50);
  91.        digitalWrite(Max7219_pinCS,LOW);
  92.       for(i=0;i<count;i++)
  93.       {
  94.         Write_Max7219_byte(0x0b); // //扫描界限;8个数码管显示  
  95.         Write_Max7219_byte(0x07);   
  96.       }
  97.      digitalWrite(Max7219_pinCS,HIGH);
  98.      delay(50);
  99.       digitalWrite(Max7219_pinCS,LOW);
  100.       for(i=0;i<count;i++)
  101.       {
  102.         Write_Max7219_byte(0x0c); //   //掉电模式:0,普通模式:1
  103.         Write_Max7219_byte(0x01);   
  104.       }
  105.       digitalWrite(Max7219_pinCS,HIGH);
  106.       digitalWrite(Max7219_pinCS,LOW);
  107.       for(i=0;i<count;i++)
  108.       {
  109.         Write_Max7219_byte(0x0f); //显示测试:1;测试结束,正常显示:0
  110.         Write_Max7219_byte(0x00);   
  111.       }
  112.       digitalWrite(Max7219_pinCS,HIGH);
  113.       delay(50);
  114. }



  115. void setup()
  116. {

  117.   pinMode(Max7219_pinCLK,OUTPUT);
  118.   pinMode(Max7219_pinCS,OUTPUT);
  119.   pinMode(Max7219_pinDIN,OUTPUT);
  120.   delay(50);
  121.   Init_MAX7219();
  122. }


  123. void loop()
  124. {
  125.    for(i=1;i<9;i++)
  126.    {
  127.       digitalWrite(Max7219_pinCS,LOW);
  128.       for(j=0;j<count;j++)
  129.       {
  130.         Write_Max7219_byte(i);           //写入地址,即数码管编号
  131.         Write_Max7219_byte(disp1[count-1-j][i-1]);  //写入数据,即数码管显示数字
  132.        }
  133.       digitalWrite(Max7219_pinCS,HIGH);
  134.    }
  135.     delay(1000);
  136.        
  137. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-24 16:19:49 | 显示全部楼层
我會接一個的呀 但是我不會接多個的@@
回复 支持 反对

使用道具 举报

发表于 2014-5-24 23:37:02 | 显示全部楼层
第一个的输出端接第二个的输入端  以此类推
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-25 16:06:59 | 显示全部楼层
可以跟我講哪一腳接哪一腳嗎 我是新手 聽不太懂@@ 哪隻腳有輸出呀@@
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 13:07 , Processed in 0.035433 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表