这个不算是搬运贴吧
先上代码
int CLK = 2;
int CS = 1;
int DIN = 0; //这里定义了那三个脚
unsigned char disp1[38][8]={
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7E},//L
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x18},//V
{0x7E,0x40,0x40,0x7E,0x40,0x40,0x40,0x7E},//E
{0x66,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C,0x18},//TX
};
void Delay(double x)
{
double i;
for(i=0;i<x;i++);
}
void setup() {
// put your setup code here, to run once:
pinMode(CLK,OUTPUT);
pinMode(CS,OUTPUT);
pinMode(DIN,OUTPUT); //让三个脚都是输出状态
}
void loop() {
// put your main code here, to run repeatedly:
unsigned char i,j;
Delay_xms(50);
Init_MAX7219();
while(1)
{
for(j=0;j<38;j++)
{
for(i=1;i<9;i++)
Write_Max7219(i,disp1[j][i-1]);
Delay(80000);
}
}
}
void Delay_xms(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<112;j++);
}
//--------------------------------------------
//功能:向MAX7219(U3)写入字节
//入口参数:DATA
//出口参数:无
//说明:
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(CS,LOW);
for(i=8;i>=1;i--)
{
digitalWrite(CLK,LOW);
if(DATA&0X80)
digitalWrite(DIN,HIGH);
else
digitalWrite(DIN,LOW);
DATA<<=1;
digitalWrite(CLK,HIGH);
}
}
//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(unsigned char address,unsigned char dat)
{
digitalWrite(CS,LOW);
Write_Max7219_byte(address); //写入地址,即数码管编号
Write_Max7219_byte(dat); //写入数据,即数码管显示数字
digitalWrite(CS,HIGH);
}
void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00); //译码方式:BCD码
Write_Max7219(0x0a, 0x03); //亮度
Write_Max7219(0x0b, 0x07); //扫描界限;4个数码管显示
Write_Max7219(0x0c, 0x01); //掉电模式:0,普通模式:1
Write_Max7219(0x0f, 0x00); //显示测试:1;测试结束,正常显示:0
}
这个是我参考原帖所修改的程序
注意,前三行的代码要根据你自己的arduino版的Max7219的引脚来定的
这三个引脚是自定义的
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7E},//L 拿这个来举列
0x00是Ascii编码
这个编码有它独特的对照表
废话不多说上图
大家可以根据这个表来设计你喜欢的图案和文字
如果说比较懒的朋友们(比如楼主)
可以使用8X8点阵取模软件
也是非常好用的哦
只要复制粘贴一下哦
下面给大家看楼主做的效果图,表白妹子的好东西啊
原贴http://www.geek-workshop.com/thread-15043-1-1.html
下面附上所使用的工具下载地址
http://pan.baidu.com/s/1eRWKabC
最后楼主祝大家表白到心仪的妹子哦~