51单片机——LED点阵屏显示动画

news/2024/10/28 18:29:58/

1.前言

LED点阵屏显示图形:

https://blog.csdn.net/YLG_lin/article/details/126587462?spm=1001.2014.3001.5501

当我们了解了LED点阵屏显示图形后,就可以尝试用点阵屏来显示动画了,我们可以定义一个数组,把要显示的图形的数据存到数组里,然后逐个移动数据显示就变成了动画了

1.1 实验现象

2.源码

2.1 main.c

#include <REGX52.H>
#include "MatrixLED.h"//动画数据
unsigned char Date[]={0X00,0X00,0X00,0X00,0X00,0x21,0x3f,0x21,     //I0x00,0x18,0x24,0x22,0x11,0x22,0x24,0x18,//爱心0x00,0x3f,0x01,0x01,0x3f, //U0X00,0X00,0X00,0X00,0X00,};void main()
{unsigned char i,Offset=0,Count=0;//偏移量OffsetMatrixLED_Init(); //初始化while(1){for(i=0;i<8;i++)	{MatrixLED_ShowColumn(i,Date[i+Offset]);}Count++;			if(Count>40) //计次延时,不要用Delay,最好用定时器{Count=0;Offset+=1;		if(Offset>18)//当超过数组的范围时偏移量清零{Offset=0;}}}
}

2.2 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//延时函数
void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void _74HC595_WriteByte(unsigned char Byte)
{unsigned char i;for(i=0;i<8;i++){SER=Byte&(0x80>>i);SCK=1;//时钟每来一个上升沿,数据就会往下移,//循环8次,把发送来的串行数据全部放到移位寄存器中;SCK=0;//为下次移位做准备}RCK=1;//把移位寄存器的数据搬运到输出缓存器中;RCK=0;
}void MatrixLED_Init()
{             SCK=0;  //单片机上电初始化后,所有I/O口都为高电平,RCK=0;  //所以上电后RCLK和SRCLK要置0;
}//LED点阵屏显示一列数据,高位在上,1为亮。
void MatrixLED_ShowColumn(unsigned char Column,Data)
{_74HC595_WriteByte(Data);MATRIX_LED_PORT=~(0x80>>Column);Delay(1);MATRIX_LED_PORT=0xFF;
}

 2.3 MatrixLED.h

#ifndef __MATRIX_LED_H__
#define __MATRIX_LED_H__void MatrixLED_Init();
void MatrixLED_ShowColumn(unsigned char Column,Data);#endif


http://www.ppmy.cn/news/444383.html

相关文章

【Proteus仿真】8×8LED点阵屏仿电梯数字滚动显示

【Proteus仿真】88LED点阵屏仿电梯数字滚动显示 Proteus仿真演示 8X8点阵取模工具和取模方式(随源码打包) 示例代码 //名称:88LED点阵屏仿电梯数字滚动显示 //说明:本例模拟了电梯显示屏上下滚动显示楼层的效果,当目标楼层大于 //当前楼层时,将向上滚动显示,反之则向下…

51单片机LED点阵屏学习笔记

移位寄存器74HC595 移位寄存器74HC595是一个串行转并行的寄存器&#xff0c;该寄存器主要用来控制LED点阵屏&#xff0c;控制原理和控制数码管的原理类似&#xff0c; 下面详细说明一下74HC595的底层原理&#xff1a; SER的作用主要是传输数据的作用&#xff0c;传送0或1的数据…

51单片机系列--led点阵屏显示汉字

LED 点阵是由发光二极管排列组成的显示器件。 通常应用较多的是 8* 8 点阵&#xff0c;通过进行对不同位置的点亮与熄灭&#xff0c;构成一个图案&#xff0c;这一点也被应用到了电视机的显示屏上。下面是点阵屏的原理图&#xff1a; 它的DPa到DPh引脚分别对应了侧排的引脚&am…

电子设计教程52:16*16LED点阵屏驱动-完整设计

我尝试通过移位寄存器级联三八译码器&#xff0c;实现用3跟控制线&#xff0c;驱动16*16LED点阵屏的效果。这是第四篇博客&#xff0c;讲述三电路的原理图。 通过前几篇文章的铺垫&#xff0c;本节课讲述完整的电路原理图设计。在电路设计中首先要关注LED的电流问题。由于LED屏…

五一单片机之74HC595和LED点阵屏

&#x1f353;1.LED点阵屏的介绍 LED点阵屏按颜色来分是有单色&#xff0c;双色&#xff0c;全彩&#xff0c;但是双色&#xff0c;也不一定是只有两个颜色&#xff0c;因为当两个颜色叠加起来的时候&#xff0c;就是会出现另外一种颜色啦。 &#x1f353;2.点阵屏的显示原理 …

stm32驱动LED点阵屏(LY-LED16x16)

各个引脚功能&#xff1a; OE&#xff1a;使能端&#xff0c;输出高电平关闭屏幕&#xff0c;行选和列选切换的时候需要关闭一下屏幕&#xff0c;防止产生虚影。 D/C/B/A&#xff1a;每个引脚有0、1两个状态&#xff0c;四个引脚用于存储一个四位的二进制数&#xff0c;0/0/0/…

LED点阵屏设计一

LED点阵屏设计一 象棋小子 1048272975 1. LED点阵屏显示原理概述 图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图&#xff0c;对于红光LED其工作正向电压约为1.8v&#xff0c;其持续工作的正向电流一般10ma左右&#xff0c;峰值电流可以更大。如下图&#xff0c…

【Python从入门到进阶】24、urllib获取网站电影排行

接上篇《23、urllib使用post请求百度翻译》 上一篇我们讲解了如何使用urllib实现百度翻译的效果。本篇我们来讲解如何使用urllib抓取某某电影排行榜信息。 一、某某电影介绍 1、某某电影网站 某某电影成立于2005年&#xff0c;最初只是一个小型的电影社区&#xff0c;但随着…