LED点阵屏

[复制链接]
1559|9
 楼主| JAWN 发表于 2015-10-8 17:16 | 显示全部楼层 |阅读模式
LED点阵屏通过控制器控制,根据资料可以怎样学习?怎样弄出个可以通过单片机发送数据到点阵屏上显示的程序?求大神指导一下
dirtwillfly 发表于 2015-10-8 17:27 | 显示全部楼层
串口通讯官网有例程的。控制led点阵屏的代码可以参考51单片机的,网上有很多
 楼主| JAWN 发表于 2015-10-8 18:54 | 显示全部楼层
dirtwillfly 发表于 2015-10-8 17:27
串口通讯官网有例程的。控制led点阵屏的代码可以参考51单片机的,网上有很多 ...

那LED点阵屏的控制器要配置什么参数函数?
dirtwillfly 发表于 2015-10-8 19:23 | 显示全部楼层
JAWN 发表于 2015-10-8 18:54
那LED点阵屏的控制器要配置什么参数函数?

这个要根据你的硬件来写代码和函数
ningzhiying 发表于 2015-10-8 22:35 | 显示全部楼层
//这是我参照网上教程写的基于51单片机的MAX72198*8点阵模块程序,楼主可以参考一下(显示的图像是一个行走的人)
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int                       
sbit max7219_pindin=P0^0;
sbit max7219_pincs=P0^1;
sbit max7219_pinclk=P0^2;
uchar code disp[]={ 0x00,0x00,0x0C,0x44,0x3F,0x24,0x26,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x24,0x4C,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x64,0x0C,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x44,0x0C,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x64,0x0C,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x24,0x4C,0x00,
                                        0x00,0x00,0x0C,0x44,0x3F,0x24,0x26,0x00};

void delay(uint z)
{
        uint y,x;
        for(y=z;y>0;y--)
                for(x=114;x>0;x--);
}

void write_max7219_byte(uchar dat)
{
        uchar i;
        for(i=8;i>0;i--)
        {
                max7219_pinclk=0;
                max7219_pindin=dat&0x80;
                dat=dat<<1;
                max7219_pinclk=1;
        }
}

void write_max7219(uchar address,uchar dat)
{
        max7219_pincs=0;
        write_max7219_byte(address);
        write_max7219_byte(dat);
        max7219_pincs=1;
}

void max7219_init()
{
        write_max7219(0x09,0x00);
        write_max7219(0x0a,0x03);
        write_max7219(0x0b,0x07);
        write_max7219(0x0c,0x01);
        write_max7219(0x0f,0x00);
}

void main()
{
        uchar i,j=1;
        max7219_init();
        while(1)
        {
                        for(i=0;i<9;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=8;i<17;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=16;i<25;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=24;i<33;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=32;i<41;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=40;i<49;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }
                        delay(1000);
                        for(i=48;i<57;i++)
                        {
                                write_max7219(j,disp[i]);
                                j++;
                                if(j==9)
                                        j=0;
                        }                                               
        }
}
 楼主| JAWN 发表于 2015-10-9 10:30 | 显示全部楼层
ningzhiying 发表于 2015-10-8 22:35
//这是我参照网上教程写的基于51单片机的MAX72198*8点阵模块程序,楼主可以参考一下(显示的图像是一个行走 ...

硬件怎样接?
摸摸 发表于 2015-10-9 13:40 | 显示全部楼层

这个东西要参考你的硬件,找提供商要说明文件,谁知道你的是什么型号什么品牌.
ningzhiying 发表于 2015-10-9 16:32 | 显示全部楼层

我的MAX72198*8点阵模块上总共有5个引脚(VCC,GND,DIN,CS,CLK)DIN接单片机的P0^0口,CS接P0^1口,CIK接P0^2口,VCC和GND就不用说了吧,5V和地线
september7 发表于 2015-10-30 09:30 | 显示全部楼层
可以参考经典51的电路。
若相依 发表于 2015-10-31 14:38 | 显示全部楼层
找51的两个例程,过一遍,然后开始调试就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

110

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部