(6)LED点阵屏

news2024/11/26 13:56:32

LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等

LED点阵屏分类

  • 按颜色:单色、双色、全彩
  • 按像素:88、1616等(大规模的LED点阵通常由很多个小点阵拼接而成)

LED点阵屏的结构类似于数码管,只不过是数码管把每一列的像素以“8”字型排列而已

LED点阵屏与数码管一样,有共阴和共阳两种接法,不同的接法对应的电路结构不同

LED点阵屏需要进行逐行或逐列扫描,才能使所有LED同时显示

请添加图片描述

请添加图片描述

A1-A8接到74HC595模块

请添加图片描述

74HC595工作原理:

请添加图片描述

sfr(special function register):特殊功能寄存器声明 例:sfr P0 = 0x80; 声明P0口寄存器,物理地址为0x80

sbit(special bit):特殊位声明 例:sbit P0_1 = 0x81;sbit P0_1 = P0^1; 声明P0寄存器的第1位

可位寻址/不可位寻址:在单片机系统中,操作任意寄存器或者某一位的数据时,必须给出其物理地址,又因为一个寄存器里有8位,所以位的数量是寄存器数量的8倍,单片机无法对所有位进行编码,故每8个寄存器中,只有一个是可以位寻址的。对不可位寻址的寄存器,若要只操作其中一位而不影响其它位时,可用“&=”、“|=”、“^=”的方法进行位操作

sbit RCK = P3^5; // 将P3的第五位命名为RCLK,RCLK重命名了,改为RCK,操作RCK是等效于操作P3_5
sbit SCK = P3^6; // SRCLK
sbit SER = P3^4;

void _74HC595_WriteByte(unsigned char Byte){
	unsigned char i;
	for(i = 0;i < 8;i++){
		
		SER = Byte & (0x80 >> i); // 取最/次/...高位,此时位没有对齐,非0即为1
		SCK = 1; // 给高电平,上升沿,将SER移进移位寄存器
		SCK = 0; // 恢复
		
	}
	
	RCK = 1; // 给高电平,上升沿,将移位寄存器中的值放入锁存器
	RCK = 0; // 恢复
}
void MatrixLED_ShowColumn(unsigned char column, Data){
	_74HC595_WriteByte(Data);
	/*
	switch(column){
		case 0: P0 = ~0x80;break;
		case 1: P0 = ~0x40;break;
		case 2: P0 = ~0x20;break;
		case 3: P0 = ~0x10;break;
		case 4: P0 = ~0x08;break;
		case 5: P0 = ~0x04;break;
		case 6: P0 = ~0x02;break;
		case 7: P0 = ~0x01;break;
	}
	*/
	P0 = ~(0x80 >> column); // 选择列
}
void main(){
	SCK = 0; // 赋初始值
	RCK = 0;
	MatrixLED_ShowColumn(0, 0xaa); // 第0列,1010 1010即第0246行
	while(1){}
}

注意要把左边的黄色跳帽跳到左边2个插针

LED点阵屏动画:

unsigned char animation[] = { // 使用字模提取软件获取
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0xFF,0x08,0x08,0x08,0xFF,0x00,0x0E,0x15,
	0x15,0x15,0x08,0x00,0x7E,0x01,0x02,0x00,
	0x7E,0x01,0x02,0x00,0x0E,0x11,0x11,0x0E,
	0x00,0x00,0x3D,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

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>10)
		{
			Count=0;
			Offset++;
			if(Offset>40)
			{
				Offset=0;
			}
		}
	}
}

注意,unsigned char animation[] = {}此时是放在RAM中,但是RAM空间较小,当animation数组包含很多数据时,RAM可能会导致空间不够,所以需要放在空间更大的Flash中unsigned char code animation[] = {}但是一旦放入Flash,animation就无法更改内容了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel模板导入导出功能测试点

近期接触的都是Web项目&#xff0c;有很多导入数据这个功能&#xff0c;导入的文件格式都是Excel&#xff0c;基本流程就是&#xff1a;下载一个Excel模板&#xff0c;填充数据&#xff0c;再将Excel表格导入&#xff0c;导入后可下载列表&#xff0c;想着这类功能的测试点基本…

springboot基于vue的地方美食分享网站

开发技术介绍 Java介绍 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&#xff0c;便于结构的分离&…

DVWA全级别通关教程

首先选择难度&#xff0c;我们从low开始&#xff0c;如上图所示进行修改 目录 SQL手工注入 过程&#xff1a; low Medium high Impossible SQL 盲注 过程&#xff1a; SQL 工具注入 工具安装过程&#xff1a; 过程&#xff1a; low Medium High: 暴力破解 过…

教室借用-贪婪算法

问题1&#xff1a; 假设你有一个教室&#xff08;只有一个教室&#xff09;&#xff0c;你有几个来自讲师的使用教室的请求 。应用间隔调度问题来安排尽可能多的请求&#xff0c;以优化教室的使用。 最早开始时间 最早开始时间&#xff08;Earliest Start Time&#xff0c;简…

一站了解zookeeper的关键知识

ZooKeeper 是 Apache 软件基金会的一个软件项目&#xff0c;它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高…

maven下载和maven配置(以maven3示例)

maven下载和maven配置&#xff08;以maven3示例&#xff09; 1.maven下载1.1 直接使用idea捆绑的&#xff08;很轻松&#xff09;1.2 手动下载到本机服务器&#xff08;推荐&#xff09;1.2.1 官网下载maven1.2.2 选好版本后&#xff0c;选二进制目录 binaries1.2.3 文件选择1.…

Jmeter的Content-Type设置方式

今天调Jmeter脚本遇到一个问题&#xff1a;接口的请求体为Body Data时&#xff0c;没有在HTTP信息头管理加Content-Type参数&#xff0c;Content-Type: application/json&#xff0c;导致脚本一直跑不通&#xff0c;报错&#xff0c;一顿排查&#xff0c;才发现是请求头的原因。…

SpringCloud项目将某个子模块改成以war的形式打包,需要修改的地方

SpringCloud项目将某个子模块改成以war的形式打包&#xff0c;需要修改的地方 在GAV后面添加 《packaging》 war 《/packaging》 在GAV后面添加 《packaging》 war 《/packaging》 添加war打包方式 <packaging>war</packaging>添加之后项目会报错&#xff0c;工程…

Ada学习(2)Statements

文章目录 if statements / expressionif statementsif expression Case Statement / ExpressionCase StatementCase Expression Loop Statement基本循环结构 loopwhile loopFor 循环NoteFor ... loop Control VariableFor ... loop Range EvaluationDeclare block (声明代码块)…

手把手教小白安装Jenkins

一、Jenkins简介 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 简而言之&#xff0c;Jenkins就是一款将构建&#xff0c;打…

例3:模板

例&#xff1a;如图所示流程&#xff0c;乙烷和丙烷混合液进入蒸发器Evaporator&#xff0c;从天然气吸收热量后进入压缩机Compressor&#xff0c;压缩后的气体进入冷凝器Condenser&#xff0c;最后通过J-T阀&#xff08;焦耳-汤姆逊节流膨胀阀&#xff09;回到进入蒸发器前的状…

抖音SEO矩阵营销系统/MVC源码部署二次开发搭建

首先&#xff0c;抖音SEO矩阵系统源码开发&#xff0c;如何做独立部署&#xff0c;首先我们需要深刻理解这个系统的开发逻辑是什么&#xff1f;开发的前言是在抖音平台做流量新增&#xff0c;现在抖音及各大主流短视频平台&#xff0c;流量新增&#xff0c;各大企业需要在短视频…

10- YOLO算法一 (目标检测)

要点&#xff1a; yolo算法属于 One-stage detector 一 YOLO v1 1) 将一幅图像分成SxS个网格(grid cell)&#xff0c;如果某个object的中心 落在这个网格中&#xff0c;则这个网格就负责预测这个object。 2)每个网格要预测B个bounding box&#xff0c;每个bounding box 除了…

springboot配置多个数据源【详解】

springboot配置多个数据源【详解】 前言&#xff0c;什么是数据源与数据库连接池一、配置文件进行配置&#xff1a;1.导入依赖&#xff1a; 二、编写配置类&#xff1a;1.用来指定包扫描、指定sqlSessionTemplateRef2&#xff0c;用来指定mapper.xml的路径3.Mybatis主数据源ds1…

DNS协议、ICMP协议、NAT技术

目录 一、DNS协议 1.1 认识DNS 1.2 域名简介 1.3 域名解析过程 1.4 使用dig工具分析DNS过程 二、ICMP协议 2.1 ICMP协议的定位 2.2 ICMP功能 2.3 ICMP协议格式&#xff08;了解&#xff09; 2.4 ping命令 2.5 traceroute命令 三、NAT技术&#xff08;重点&#xff…

JavaWeb13-JavaScript 开发利器之 jQuery-01

1. 说明 1.1 现状 1、jquery 使用情况 2、Vue 使用情况 1.2 官方文档 学习地址: https://www.w3school.com.cn/jquery/index.asp API地址: https://jquery.cuishifeng.cn/ 1.3 JQuery 是什么? 1.3.1 基本介绍 jQuery 是一个快速的&#xff0c;简洁的 javaScript 库…

BAPC 2022 Pre 部分题解

BAPC 2022 Pre 部分题解 K (11). Lots of Liquid题目描述题意思路代码 F (6). Fastestest Function题目描述题意思路代码 B (2). Bubble-bubble Sort题目代码 A (1). Abbreviated Aliases题目题意思路代码 I (9). Jabbing Jets题目题意思路代码 E (5). Extended Braille题目题意…

SQL调优-性能参数介绍

-- 课程表 create table course ( cid int(3), cname varchar(20), tid int(3) ); -- 教师表 create table teacher (tid int(3),tname varchar(20),tcid int(3) ); -- 教师证表 create table teacherCard (tcid int(3),tcdesc varchar(200) );explain select语句分析 1.id…

自监督ViT:DINO-v1和DINO-v2

1. 概述 基于ViT&#xff08;Vision Transformer&#xff09;自监督在最近几年取得了很大进步&#xff0c;目前在无监督分类任务下已经超过了之前的一些经典模型&#xff0c;同时在检测分割等基础任务领域也展现出了强大的泛化能力。这篇文章将主要基于DINO系列自监督算法介绍…

NoSQL之Redis高可用与优化

目录 一、Redis高可用二、Redis 持久化2.1 Redis 提供两种方式进行持久化2.2 RDB持久化2.2-1 触发条件2.2-2 执行流程2.2-3 启动时加载 2.3 AOF 持久化2.3.1 开启AOF2.3.2 执行流程2.3.3 执行流程启动时加载 三、RDB和AOF的优缺点四、Redis 性能管理4.1 查看Redis内存使用4.2 内…