【STM32单片机】LED点阵花样显示设计

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用STM32F103C8T6单片机控制器,使用8*8LED点阵模块、按键模块等。

主要功能:
系统运行后,默认以静态模式显示,此时点阵左右循环切换图像。
当按下K1键,点阵从下往上滚动显示图像;
当再次按下K1键,点阵从上往下滚动显示图像;
当再次按下K1键,点阵从左往右滚动显示图像;
当再次按下K1键,点阵从右往左滚动显示图像;
如此循环。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///系统数据显示
void sys_data_show(void)
{u8 i=0;u16 time=0;while(1){//静态显示if(sys_ctrl.mode==MODE_STATIC_SHOW){for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//循环8次扫描8行、列{LEDDZ_COL_Write_Data(gled_col_lr[i]);//传送列选数据LEDDZ_Row_Write_data(gled_row_lr[i+8]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}		}for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//循环8次扫描8行、列{LEDDZ_COL_Write_Data(gled_col_lr[i]);//传送列选数据LEDDZ_Row_Write_data(gled_row_lr[i+7]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}		}	}//从下往上滚动显示else if(sys_ctrl.mode==MODE_DOWN_UP_SHOW){	for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//点阵扫描{LEDDZ_COL_Write_Data(~gled_col_ud[i+sys_ctrl.data_cnt]);//传送列选数据LEDDZ_Row_Write_data(~gled_row_ud[i]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}}sys_ctrl.data_cnt++;if(sys_ctrl.data_cnt==16)sys_ctrl.data_cnt=0;	}//从上往下滚动显示else if(sys_ctrl.mode==MODE_UP_DOWN_SHOW){for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//点阵扫描{LEDDZ_COL_Write_Data(~gled_col_ud[i+sys_ctrl.data_cnt]);//传送列选数据LEDDZ_Row_Write_data(~gled_row_ud[i]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}}sys_ctrl.data_cnt--;if(sys_ctrl.data_cnt==0)sys_ctrl.data_cnt=16;		}//从左往右滚动显示else if(sys_ctrl.mode==MODE_LEFT_RIGHT_SHOW){	for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//点阵扫描{LEDDZ_COL_Write_Data(gled_col_lr[i]);//传送列选数据LEDDZ_Row_Write_data(gled_row_lr[i+sys_ctrl.data_cnt]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}}sys_ctrl.data_cnt--;if(sys_ctrl.data_cnt==0)sys_ctrl.data_cnt=16;				}//从右往左滚动显示else if(sys_ctrl.mode==MODE_RIGHT_LEFT_SHOW){	for(time=0;time<SPEED_ROLL;time++){for(i=0;i<8;i++)//点阵扫描{LEDDZ_COL_Write_Data(gled_col_lr[i]);//传送列选数据LEDDZ_Row_Write_data(gled_row_lr[i+sys_ctrl.data_cnt]);//传送行选数据delay_ms(1);//延时一段时间,等待显示稳定LEDDZ_Row_Write_data(0x00);//消影	}}sys_ctrl.data_cnt++;if(sys_ctrl.data_cnt==16)sys_ctrl.data_cnt=0;				}}	
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元宇宙现已开放!

在 2023 年 11 月 3 日 The Sandbox 首个全球创作者日上&#xff0c;The Sandbox 联合创始人 Arthur Madrid 和 Sebastien Borget 宣布元宇宙已开放&#xff0c;已创作完整体验的 LAND 持有者可以自行将体验发布至 The Sandbox 地图上。 精选速览 LAND 持有者&#xff1a;如果…

SpringBoot——感谢尚硅谷官方文档

SpringBoot——感谢尚硅谷官方文档 1 Spring与SpringBoot1、Spring能做什么1.1、Spring的能力1.2、Spring的生态1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计 2、为什么用SpringBoot2.1、SpringBoot优点2.2、SpringBoot缺点 3、时代背景3.1、微服务3.2、分布式分…

**QT与目标板联合调试_断点仿真**

原文地址: https://blog.csdn.net/u012851408/article/details/86715626

vue2:组件中extends的使用

上一篇文章中我对mixin的使用进行了一个使用和测试,这里对extend进行一个使用,其实extend和mixin还是有区别的。 上一篇文章:vue2:mixin混入的使用-CSDN博客 不过也是看实际的业务场景,我们也可以使用extend完成和mixin几乎一摸一样的操作。 不废话,上代码 创建extendTest.…

django(千锋教育)

创建一个django项目 官网下载python最新版本 配置到环境变量中 打开intlij编辑器 创建django项目 安装django&#xff1a;pip install django 创建django项目: django-admin startproject django01 创建djangoAPP&#xff1a;python manage.py startapp App 启动&#xff1a…

室内卫星定位信号弱?——看时间服务器与GNSS模拟器如何实现区域内可靠的室内定位!

方案介绍 GNSS是当前最常用、覆盖最广泛、效率最高的定位导航技术&#xff0c;几乎各个领域都依赖它。然而&#xff0c;在室内或地下&#xff0c;GNSS信号通常非常弱甚至不可用。德思特采用时间服务器与GNSS模拟器相结合&#xff0c;提供了一种基于区域的室内定位方案。这个方…

Python 哈希表的实现——字典

哈喽大家好&#xff0c;我是咸鱼 接触过 Python 的小伙伴应该对【字典】这一数据类型都了解吧 虽然 Python 没有显式名称为“哈希表”的内置数据结构&#xff0c;但是字典是哈希表实现的数据结构 在 Python 中&#xff0c;字典的键&#xff08;key&#xff09;被哈希&#x…

从Redis反序列化UserDetails对象异常后中发现FastJson序列化的一些问题

最近在使用SpringSecurityJWT实现认证授权的时候&#xff0c;出现Redis在反序列化userDetails的异常。通过实践发现&#xff0c;使用不同的序列化方法和不同的fastJson版本&#xff0c;异常信息各不相同。所以特地记录了下来。 一、项目代码 先来看看我项目中redis相关配置信息…

Windows从源码构建tensorflow(离线编译)

由一开始的在线编译&#xff0c;到后面的离线编译&#xff0c;一路踩坑无数&#xff0c;历经整整6个半小时&#xff0c;终于编译成功&#xff01;在此记录一下参考过的文章&#xff0c;有时间整理一下踩坑记录。 一、环境配置 在tensorflow官网上有版本对应关系 win10 bazel …

threejs创建一个旋转的正方体【完整代码】

效果&#xff1a; 中文网three.js docs 1.搭建环境 安装three 首先我们需要新建一个项目 vue/react都可 这里以vue为演示 npm i three 找到一个新的页面 在页面script的地方导入three import * as THREE from "three" 或者自己逐个导入 import {PerspectiveC…

聚类笔记:HDBSCAN

1 算法介绍 DBSCAN/OPTICS层次聚类主要由以下几步组成 空间变换构建最小生成树构建聚类层次结构(聚类树)压缩聚类树提取簇 2 空间变换 用互达距离来表示两个样本点之间的距离 ——>密集区域的样本距离不受影响——>稀疏区域的样本点与其他样本点的距离被放大——>…

如何用SWIG封装c++接口给java使用?

SWIG是什么&#xff1f; SWIG(Simplified Wrapper and Interface Generator)是一个将C/C接口转换为其他语言接口的工具&#xff0c;从而可以讲C/C的库集成到其他语言的系统中。目前SWIG已经可以支持Python, Java, C#,Ruby&#xff0c;PHP,R语言等十多种语言。 官方网址&…