找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2984|回复: 1
收起左侧

关于普中科技ES2.0开发板点阵动画显示的问题

[复制链接]
ID:184970 发表于 2017-7-11 15:38 | 显示全部楼层 |阅读模式
用的普中科技的ES2.0的开发板,求如何用这个板子实现点阵的动画显示呢,有用这个板子的大神么,希望给个程序看看,普中的学习视频觉得不是多很好,所以用的普中的板子看的金沙滩的学习视频,在看到点阵动画显示的时候,自己一直做不出那种效果!
回复

使用道具 举报

ID:164602 发表于 2017-7-12 09:31 | 显示全部楼层
你是问对人了,我就用这块板子。看我的名字,呵呵。
点阵嘛,想动态,我现在只有我初学时的程序,不是很好,只能是完成了动态显示而已,给你看看,不要笑就好。
#include<reg51.h>
#include<intrins.h>

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;

#define LKZ P0

unsigned char code TAB[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

unsigned char code XS[17][8]=
{

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*以下是箭头向左移动*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10},
{0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38},
{0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38},
{0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x54},
{0x00,0x00,0x00,0x10,0x38,0x38,0x54,0x10},
{0x00,0x00,0x10,0x38,0x38,0x54,0x10,0x10},
{0x00,0x10,0x38,0x38,0x54,0x10,0x10,0x10},
{0x10,0x38,0x38,0x54,0x10,0x10,0x10,0x10},
{0x38,0x38,0x54,0x10,0x10,0x10,0x10,0x00},
{0x38,0x54,0x10,0x10,0x10,0x10,0x00,0x00},
{0x54,0x10,0x10,0x10,0x10,0x00,0x00,0x00},
{0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00},
{0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00},
{0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00},
{0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
};

void delay(unsigned int time)//0.0001766s延时,约0.2ms
{
  unsigned int j;
  for(time;time>0;time--)
    for(j=0;j<20;j++);
}

void XP74HC595(unsigned char dat)//向74H595发送一个字节的数据
                                                                //函数名必须由字母开始
{
        unsigned char a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                if ((dat<<a)&0x80)//从高位开始发送数据
                {
                        SER=1;
                }
                else
                {
                        SER=0;
                }
                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;       
        }

        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}

void main ()
{
        unsigned char i,j,k;
        LKZ=0xff;
        XP74HC595(0x00);

        while (1)
        {
                for (i=0;i<17;i++)
                {
                        for (j=0;j<50;j++)
                        {
                                for (k=0;k<8;k++)
                                {
                                        XP74HC595(XS[i][k]);
                                        LKZ=TAB[k];
                                        delay(5);               
                                        LKZ=0xff;                       
                                        XP74HC595(0x00);        //消隐
                                }
                        }
                }                       
        }
}
我初学时的办法是很笨的,叫“硬来”。即:将显示内容逐帧列出,一次一帧,就动态显示了。希望能抛砖引玉。

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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