找回密码
 立即注册
查看: 34|回复: 1

9-2 LED点阵屏显示动画,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2026-07-23 09:36:34
已绑定手机

231

主题

172

回帖

1081

积分

版主

积分
1081
发表于 2026-7-13 13:10:07 | 显示全部楼层 |阅读模式
9-2 LED点阵屏显示动画,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标准版
主程序main.C代码如下:



#include <REGX52.H>
#include "Delay.h"
#include "MatrixLED.h"

//动画数据
unsigned char code Animation[]={
        0x3C,0x42,0xA9,0x85,0x85,0xA9,0x42,0x3C,
        0x3C,0x42,0xA1,0x85,0x85,0xA1,0x42,0x3C,
        0x3C,0x42,0xA5,0x89,0x89,0xA5,0x42,0x3C,
};

void main()
{
        unsigned char i,Offset=0,Count=0;
        MatrixLED_Init();
        while(1)
        {
                for(i=0;i<8;i++)        //循环8次,显示8列数据
                {
                        MatrixLED_ShowColumn(i,Animation[i+Offset]);
                }
                Count++;                        //计次延时
                if(Count>15)
                {
                        Count=0;
                        Offset+=8;                //偏移+8,切换下一帧画面
                        if(Offset>16)
                        {
                                Offset=0;
                        }
                }
        }
}


9-2 LED点阵屏显示动画.zip

28.36 KB, 下载次数: 2

回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2026-07-23 09:36:34
已绑定手机

231

主题

172

回帖

1081

积分

版主

积分
1081
发表于 2026-7-13 13:10:43 | 显示全部楼层
9-2 LED点阵屏显示动画,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标准版
MatrixLED.C代码如下:


#include <REGX52.H>
#include "Delay.h"

sbit RCK=P3^5;                //RCLK
sbit SCK=P3^6;                //SRCLK
sbit SER=P3^4;                //SER

#define MATRIX_LED_PORT                P0

/**
  * @brief  74HC595写入一个字节
  * @param  Byte 要写入的字节
  * @retval 无
  */
void _74HC595_WriteByte(unsigned char Byte)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                SER=Byte&(0x80>>i);
                SCK=1;
                SCK=0;
        }
        RCK=1;
        RCK=0;
}

/**
  * @brief  点阵屏初始化
  * @param  无
  * @retval 无
  */
void MatrixLED_Init()
{
        SCK=0;
        RCK=0;
}

/**
  * @brief  LED点阵屏显示一列数据
  * @param  Column 要选择的列,范围:0~7,0在最左边
  * @param  Data 选择列显示的数据,高位在上,1为亮,0为灭
  * @retval 无
  */
void MatrixLED_ShowColumn(unsigned char Column,Data)
{
        _74HC595_WriteByte(Data);
        MATRIX_LED_PORT=~(0x80>>Column);
        Delay(1);
        MATRIX_LED_PORT=0xFF;
}


回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-24 05:55 , Processed in 0.067441 second(s), 49 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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