51单片机——LED点阵屏显示动画
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
51单片机——LED点阵屏显示动画相关推荐
- 51单片机——LED点阵屏显示图形
1.前言 1.1 LED点阵屏介绍 LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字.图片.视频等.LED点阵屏广泛应用于各种公共场合,如汽车报站器.广告屏以及公告牌 ...
- 51单片机LED点阵屏逐帧显示和流动显示图像
上一篇逐帧显示用的是定时和中断控制,碰到了一些麻烦,我觉得也是一种不错的办法,因为Delay的时间更短,而且如果不那么介意亮度的情况甚至可以不用Delay()函数,这里采用将要显示的图像按顺序存储在数 ...
- 51单片机LED点阵屏学习笔记
移位寄存器74HC595 移位寄存器74HC595是一个串行转并行的寄存器,该寄存器主要用来控制LED点阵屏,控制原理和控制数码管的原理类似, 下面详细说明一下74HC595的底层原理: SER的作用 ...
- 51单片机LED点阵显示文字
51单片机LED点阵显示文字 代码如下. #include <REGX51.H> #define u8 unsigned char sbit SER = P3^4; sbit RCLK = ...
- 51单片机——LED点阵屏(显示滚动画面)
目录 一.关于数码管.LED点阵屏显示的注意点 二.功能介绍 三.主要模块的介绍 3.1 74HC595模块和点阵屏显示函数 3.1.1 74HC595介绍 3.1.2 点阵屏显示函数MatrixLE ...
- 51单片机驱动OLED显示动画
在这里插入代码片@TOC OLED I2c总线显示一段动画 单片机型号:89C516 晶振24M 主函数 #include "reg52.h"#include "oled ...
- 基于51单片机点阵汉字显示程序设计
文章目录 基于51单片机点阵汉字显示程序设计 一.实践目的 二.实践依托的实验设备与软件 1.设备 2.软件 二. 系统或装置的设计 1. 硬件原理图设计 2.印制板图绘制 三.程序框架及主要算法流程 ...
- 基于51单片机数码管显示
基于51单片机数码管显示 ## 数码管显示原理 数码管(LED Segment Displays)由多个发光二极管封装在一起组成"8"字型的器件,引线已在内部连接完成,只需引出它们 ...
- 8脚51单片机DIY时间显示+闹钟技术分享(一)
@[8脚51单片机DIY时间显示+闹钟技术分享(一) 最近因为家里闹钟被小朋友摔坏了,所以想着买来买去还是没什么新意,不如自己做一个,这样不是更有意义吗? 那就开始吧,想着自己做就可以用最小资源来实现 ...
最新文章
- 关于js禁止浏览器缩放
- GitLab-CI与GitLab-Runner
- Processing 字体变形
- NYOJ 26 孪生素数问题
- PHP 数字转化为自定义长度的字符串[前插后入]
- android 验证码短信验证码,Android​短信验证码倒计时验证的2种常用方式
- boost::asio async_write也不能保证一次发完所有数据 二
- javascript原型和原型链
- kettle oracle数据从库到库,kettle 使用oracle数据库当做资源库
- HCIP-RS-MPLS-LSP建立-静态LSP
- 【渝粤题库】陕西师范大学202281 中央银行学II 作业(专升本)
- android 人脸识别边框_虹软人脸识别 - Android Camera实时人脸追踪画框适配
- Xposed框架原理深入研究
- Microsoft Word 教程:如何在 Word 中插入页码、目录?
- 【I.MX6ULL】6ull 加载 linux 驱动模块失败
- 批量打印远端PDF文件
- 传统安防企业资本运作:找准定位、创新为本
- ES6---数组的spread扩展运算符
- 安装驱动显卡重启计算机,Win7电脑安装显卡驱动后一直重启的解决方法
- 【DG】在Linux平台上搭建单实例的dataguard--duplicate
热门文章
- nodejs express搭建服务器(爬虫知乎精华帖,个人学习用)六 html
- cnn 分层 可视化 网站_如何可视化分层数据以显示整体关系
- CSI笔记【5】:Widar2.0: Passive Human Tracking with a Single Wi-Fi Link论文阅读
- 盘点和反思在微信的阴影下艰难求生的移动端IM应用
- QQ游戏中心能力值抽大奖 抽奖得Q币 iPad QQ公仔等实物
- 2021年5月软件设计师考前总结笔记
- JAVA:实现binary exponentiation二进制幂运算算法(附完整源码)
- 拓扑排序在实际项目中应用
- [从头学绘画] 第21节 八段锦
- 网红萌宠“JUJU奇幻乐园”闪临龙德广场 五月活动玩转不停