普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2992|回复: 5

[已解决] 16*16点阵屏滚动

[复制链接]

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-10-13 11:08:32 | 显示全部楼层 |阅读模式
1金钱
各位大佬们 请问普中7,51单片机开发板点阵屏那节,怎么实现滚动显示啊

最佳答案

你的问题不太明白:“滚动”——是内容直接切换,还是逐步切换?

回复

使用道具 举报

20

主题

1344

帖子

8383

积分

论坛元老

Rank: 8Rank: 8

积分
8383
发表于 2022-10-14 08:43:02 | 显示全部楼层
你的问题不太明白:“滚动”——是内容直接切换,还是逐步切换?
回复

使用道具 举报

20

主题

1344

帖子

8383

积分

论坛元老

Rank: 8Rank: 8

积分
8383
发表于 2022-10-14 08:46:27 | 显示全部楼层
//以下程序,是显示内容直接切换
#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]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

unsigned char code XS[16][8]=
{                                                  
        {0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00},//0
        {0x00,0x00,0x21,0x7F,0x01,0x00,0x00,0x00},//1
        {0x00,0x21,0x43,0x45,0x49,0x31,0x00,0x00},//2
        {0x00,0x42,0x41,0x51,0x69,0x46,0x00,0x00},//3
        {0x00,0x0C,0x14,0x24,0x7F,0x04,0x00,0x00},//4
        {0x00,0x72,0x51,0x51,0x51,0x4E,0x00,0x00},//5
        {0x00,0x1E,0x29,0x49,0x49,0x06,0x00,0x00},//6
        {0x00,0x40,0x40,0x4F,0x50,0x60,0x00,0x00},//7
        {0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00},//8
        {0x00,0x30,0x49,0x49,0x4A,0x3C,0x00,0x00},//9
        {0x00,0x01,0x1F,0xE4,0x3C,0x07,0x01,0x00},//A
        {0x00,0x81,0xFF,0x91,0x91,0x6e,0x00,0x00},//B
        {0x00,0x7E,0x81,0x81,0x81,0xc2,0x00,0x00},//C
        {0x00,0x81,0xFF,0x81,0x81,0x7e,0x00,0x00},//D
        {0x00,0x81,0xFF,0x91,0xb9,0xc3,0x00,0x00},//E
        {0x00,0x81,0xFF,0x91,0xb8,0xc0,0x00,0x00}//F
};

void delay(unsigned int time)
{
  unsigned int j;
  for(time;time>0;time--)
    for(j=0;j<20;j++);
}

void XP74HC595(unsigned char dat)
{
        unsigned char i;
        SRCLK=0;
        RCLK=0;
        for (i=0;i<8;i++)
        {
                SER=dat>>7;
                dat<<=1;
                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<16;i++)
                {
                        for (j=0;j<100;j++)
                        {
                                for (k=0;k<8;k++)
                                {
                                        XP74HC595(XS[i][k]);
                                        LKZ=~TAB[k];
                                        delay(3);               
                                        LKZ=0xff;                       
                                        XP74HC595(0x00);
                                        delay(3);               
                                }
                        }
                }                       
        }
}

回复

使用道具 举报

20

主题

1344

帖子

8383

积分

论坛元老

Rank: 8Rank: 8

积分
8383
发表于 2022-10-14 08:49:51 | 显示全部楼层
//以下程序是字幕形式,逐步切换
#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]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

unsigned char code XS[88]=
{
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x00,
        0x00,0x00,0x21,0x7F,0x01,0x00,0x00,0x00,
        0x00,0x21,0x43,0x45,0x49,0x31,0x00,0x00,
        0x00,0x42,0x41,0x51,0x69,0x46,0x00,0x00,
        0x00,0x0C,0x14,0x24,0x7F,0x04,0x00,0x00,
        0x00,0x72,0x51,0x51,0x51,0x4E,0x00,0x00,
        0x00,0x1E,0x29,0x49,0x49,0x06,0x00,0x00,
        0x00,0x40,0x40,0x4F,0x50,0x60,0x00,0x00,
        0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,
        0x00,0x30,0x49,0x49,0x4A,0x3C,0x00,0x00,
};

void delay(unsigned int time)
{
  unsigned int j;
  for(time;time>0;time--)
    for(j=0;j<20;j++);
}

void XP74HC595(unsigned char dat)
{
        unsigned char i;
        SRCLK=0;
        RCLK=0;
        for (i=0;i<8;i++)
        {
                SER=dat>>7;
                dat<<=1;
                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<88;i++)
                {
                        for (j=0;j<50;j++)
                        {
                                for (k=0;k<8;k++)
                                {
                                        if ((i+k)<88)
                                        {
                                                XP74HC595(XS[i+k]);
                                        }
                                        else
                                        {
                                                XP74HC595(XS[0x00]);
                                        }
                                        LKZ=~TAB[k];
                                        delay(3);               
                                        LKZ=0xff;                       
                                        XP74HC595(0x00);
                                        delay(3);               
                                }
                        }
                }                       
        }
}

回复

使用道具 举报

20

主题

1344

帖子

8383

积分

论坛元老

Rank: 8Rank: 8

积分
8383
发表于 2022-10-14 08:58:31 | 显示全部楼层
程序对应的电路是:

本帖子中包含更多资源

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

x
回复

使用道具 举报

1

主题

2

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2023-1-2 15:16:04 | 显示全部楼层
HC6800-ES-V2.0 发表于 2022-10-14 08:58
程序对应的电路是:

你好,滚动显示,电路部分就是4个595连级使用的那种驱动16*16
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-30 06:41 , Processed in 0.094167 second(s), 36 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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