51单片机快速入门之 LED点阵 2024/10/16

ops/2024/10/20 11:19:21/

单片机>51单片机快速入门之 LED点阵 2024/10/16

图片来源于网络:

电路图

点阵其实和数码管相同, 仔细看图,这里行共阳极,列共阴极

如果我们想显示一个1 那么我们只需要让每行轮流点亮且间隔0.04s 人眼画面暂留时间

举个例子:

                        假设我们想点亮最右边的整列

只需要设置每行 轮流为高电平  最右边的列 为低电平 即可 显示

假设电路为 p1.7为第一行-p1.0为第二行    p2.7为第一列 -p2.0第二列

行扫描显示:

如果要点亮最右边一列  p2.0就应该是低电平 其他为高电平 可以得到 P2=1111 1110 0xfe

而p1.7-p1.0需要轮流为高电平 

初始时1000 0000 p1.7为高电平 P1=0x80

往下就是0100 0000  也就是0x80往右移 所以我们可以用循环按位右移  P1=0x80 >> 1

列扫描显示:

列和行相差不大我们需要控制的是列

如果我们要点亮第一行

首先打开第一行 P1=0x80   1000 0000

然后控制列P2=0xef       0111 1111 

点亮第一行第一个led 在往右移 P2=P2 >> 1

但是由于是低电平点亮我们要保证其移动后有短暂的熄灭而不是爬楼梯似 点亮

我们需要保持点亮熄灭 这里就需要用到 位或  公式为 A+B 符号为 |

P2=P2>>1 | 0x80    0x80=1000  0000

当下次位移 P2>>1 0011 1111 

位或

    0011 1111

+ 1000 0000

_____________

    1011 1111 结果就是 

再往下 

     0101 1111 //右移后

+   1000 0000 //位或

_______________

      1101 1111

这就是列扫描

移动显示的字符 :

如果需要移动字符 如前面说的 我们点亮了右边的一整列

我们要想其 往左边移动 应该如何办? 

我们知道此时 P2=1111 1110 0xfe  

如果要往左边移动就需要其为 1111 1101 也就是左移之后 或运算0000 0001

P2=0xfe<<1 | 0x01

   1111 1100 //左移

+ 0000 0001 //或运算

__________

    1111 1101 //字符移动了!

字符的闪烁: 

因为我们用的显示方式是扫描,所以如果需要闪烁只需要 加长 延时即可 大于0.04s 即可


http://www.ppmy.cn/ops/126965.html

相关文章

脉冲扩散模型

论文 Spiking Diffusion Models 主要内容是提出了“脉冲扩散模型&#xff08;Spiking Diffusion Models, SDMs&#xff09;”&#xff0c;一种基于脉冲神经网络&#xff08;SNN&#xff09;的生成模型&#xff0c;旨在解决传统人工神经网络&#xff08;ANN&#xff09;在图像生…

开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现离线推理-Tools助力(二)

一、前言 在大语言模型推理中使用工具可以增强模型的能力和准确性,使其能够执行特定任务、获取实时信息、提高效率并降低计算负担,同时改善用户交互体验和灵活性,从而显著提升模型的实用性和性能。 二、术语 2.1. vLLM vLLM是一个开源的大模型推理加速框架,通过PagedAtten…

|信息爬取与分析|009_django基于Python的耳机信息的爬取与分析2024_2qdh1wz4

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…

React Strict DOM:React Native 通用应用程序的未来

Meta宣布发布了 react-strict-dom。从根本上讲&#xff0c;这将改变我们使用 React Native&#xff08;以及在网页上使用 React&#xff09;的方式。它提供了一套统一的 UI 原语&#xff0c;带有样式&#xff0c;可以在网页和移动设备上通用使用&#xff01;现在&#xff0c;“…

Zabbix进阶实战!将告警推送到Syslog服务器详细教程

需求场景&#xff1a; 用户需要将zabbix产生的告警事件推送给rsyslog服务器&#xff0c;syslog服务器再对事件日志进行分析处理. 环境配置信息 服务器 IP地址 ZabbixServer 192.168.200.195 Rsyslog服务器 192.168.200.128 *Rsyslog服务器防火墙需要放通 UDP/514端口 推送脚本…

[实时计算flink]Flink SQL作业快速入门

本文通过简单的示例&#xff0c;带您快速体验Flink SQL作业的创建、部署和启动等操作&#xff0c;以了解Flink SQL作业的操作流程。 前提条件 如果您使用RAM用户或RAM角色等身份访问&#xff0c;需要确认已具有Flink控制台相关权限&#xff0c;详情请参见权限管理。 已创建Fl…

【C++】使用vscode进行 C/C++ 开发,内含c_cpp_properties.json、launch.json 和 tasks.json解释

在 Visual Studio Code (VSCode) 中进行 C/C 开发时&#xff0c;这三个 .json 文件&#xff08;c_cpp_properties.json、launch.json 和 tasks.json&#xff09;分别用于配置编译、调试和代码提示等功能。它们是 VSCode 配置环境的一部分&#xff0c;由 C/C 扩展生成&#xff0…

在Debian and Ubuntu上安装pgRouting

1、查看系统类型 lsb_release -cs2、追加资源库列表 sudo sh -c echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list3、导入资源库的KEY&#xff0c;更新库列表 sudo apt install wget c…