esp8266单片机使用MAX7219芯片驱动点阵屏幕
我们这里使用的单片机是一块esp8266,点阵屏幕的话就是买的普通16脚红色的,驱动芯片就是MAX7219芯片,只需要依次把芯片的clk,cs,dout引脚连接起来拼成个16*16的点阵屏幕就可以了
下面是成品图片
任务:在屏幕上显示云量科技
下面是代码部分
#include <LedControl.h>
int DIN1 = D0;
int CS1 = D1;
int CLK1 = D2;
int DIN = D7;
int CS = D6;
int CLK = D5;
LedControl LC1 = LedControl(DIN,CLK,CS,8);
LedControl LC2 = LedControl(DIN1,CLK1,CS1,8);
byte hai16[][32] = {
0x00,0x08,0x08,0x08,0x08,0x08,0xE8,0x08,0x08,0x0B,0x0C,0x38,0xC8,0x88,0x08,0x08,
0x00,0x40,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0xFF,0x00,0x01,0x02,
0x00,0x40,0x40,0x42,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x40,0x40,
0x00,0x00,0x00,0xE0,0x30,0x28,0x24,0x20,0x20,0x20,0x23,0x24,0x28,0x70,0x20,0x00,
0x00,0x20,0x20,0x20,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBE,0x20,0x20,0x20,
0x00,0x00,0x80,0x80,0xAF,0xAA,0xAA,0xAA,0xFF,0xAA,0xAA,0xAA,0xAF,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xCC,0x22,0x00,0x22,0xA3,0xFE,0xA4,0x24,0x24,
0x00,0x02,0x02,0x02,0xFF,0x04,0x04,0x04,0x04,0x04,0x01,0x00,0xFF,0x01,0x06,0x08,
0x00,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x90,0x10,0xFF,0x10,0x10,0x10,
0x00,0x80,0x81,0x46,0x28,0x10,0x2C,0x43,0x40,0x80,0x80,0x01,0x7F,0x82,0x44,0x04,
0x00,0x00,0x18,0x28,0x08,0x08,0xC8,0x0F,0x30,0x40,0x9C,0x64,0x84,0x44,0x24,0x04,
0x00,0x80,0x40,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x4C,0x82,0x01,0x06,0x08,0x10,
0x00,0x00,0xFC,0x04,0x04,0xFC,0x00,0x02,0x04,0xFC,0x00,0x00,0xCC,0x42,0x40,0x40,
0x00,0x40,0x43,0x44,0x42,0x7F,0x40,0x42,0x44,0x4F,0x40,0x20,0x1F,0x20,0x40,0x00,
0x00,0x00,0x8C,0x54,0x24,0x04,0xF4,0x04,0x67,0x88,0x10,0x23,0xFC,0x08,0x10,0x20,
0x00,0x60,0x11,0x00,0xE0,0x80,0x83,0x84,0xB2,0x88,0x81,0x80,0x77,0x00,0x30,0x40,
};
void setup() {
for(int i = 0;i<8;i++)
{
LC1.shutdown(i,false);
LC1.setIntensity(i,8);
LC1.clearDisplay(i);
LC2.shutdown(i,false);
LC2.setIntensity(i,8);
LC2.clearDisplay(i);
}
xiehs(1,1);
xiehs(2,2);
xiehs(3,3);
xiehs(4,4);
}
void loop() {
}
void xiehs(int dat,int dat2)
{
int d;
switch(dat)
{
case 1:d=0;break;
case 2:d=2;break;
case 3:d=4;break;
case 4:d=6;break;
}
for(int i = 0;i<8;i++)
{
LC1.setColumn(d+1,i,hai16[dat2][i]);
LC1.setColumn(d,i,hai16[dat2][i+8]);
LC2.setColumn(d+1,i,hai16[dat2][i+16]);
LC2.setColumn(d,i,hai16[dat2][i+24]);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)