51单片机8*8点阵屏

8*8点阵屏

8*8点阵屏是一种LED显示屏,它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制,从而可以显示出数字、字母、符号、图形等信息。

8*8点阵屏的原理是通过行列扫描的方式,控制LED灯的亮灭,从而显示出所需的图案或信息。通过逐行逐列地控制LED的亮灭,就可以在屏幕上显示出任意的数字、字母和图形。

这种点阵屏通常被广泛应用于电子钟表、计时器、温度计、电子游戏等产品中,因为它可以以较小的尺寸显示出丰富的信息,而且功耗较低、制作成本相对较低。

点阵屏理论介绍

8*8点阵屏电路图

如何赋值点亮led灯:要使用动态扫描的方式点亮led灯防止出现同时点亮的情况

74HC595芯片的工作原理

8*8点阵屏原理图

74HC595芯片使用说明

eg1:点阵屏编程实战:点亮第一个点阵
 

#include <REGX52.H>
sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char i,dat;dat = 0xfe;for(i = 0; i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;}dat = 0x80;for(i = 0; i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;		dat >>= 1;}R_CLK = 1;while(1);}

eg2:点阵屏实战:显示汉字-->电 字符

#include <REGX52.H>
#include <INTRINS.H>sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟/*取模软件生成的自形码:0xef 0x01 0x6d 0x01 0x6d 0x01 0xee 0xe0 --> 电
*/
unsigned char code table[] = {0xe0, 0xee, 0x01, 0x6d, 0x01, 0x6d, 0x01, 0xef
};void Send_Byte(unsigned char dat){unsigned char i;S_CLK = 0;R_CLK = 0;for(i = 0; i<8;i++){if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;S_CLK = 0;}
}void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char j,ROW;while(1){ROW = 0X80;for(j = 0; j < 8; j++){Send_Byte(table[j]);Send_Byte(ROW);R_CLK = 1;ROW = _cror_(ROW,1); // 循环右移动R_CLK = 0;}}
}

eg3:使用点阵屏显示电子两个字

#include <REGX52.H>
#include <INTRINS.H>sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟/*取模软件生成的自形码:0xef 0x01 0x6d 0x01 0x6d 0x01 0xee 0xe0 --> 电
*/
unsigned char code table[2][8] = {0xe0, 0xee, 0x01, 0x6d, 0x01, 0x6d, 0x01, 0xef,0xe7, 0xe7, 0xe7, 0xe7, 0x80, 0xf7, 0xfb, 0xc3
};void Send_Byte(unsigned char dat){unsigned char i;S_CLK = 0;R_CLK = 0;for(i = 0; i<8;i++){if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;S_CLK = 0;}
}void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char j,k,ROW;unsigned int z;while(1){for(k=0;k<2;k++){for(z = 0; z <1000; z++){ROW = 0X80;for(j = 0; j < 8; j++){Send_Byte(table[k][j]);Send_Byte(ROW);R_CLK = 1;ROW = _cror_(ROW,1); // 循环右移动R_CLK = 0;}}}}}

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

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

相关文章

多线程编程常见面试题讲解(锁策略,CAS策略,synchronized原理,JUC组件,集合类)

&#x1f495;"跑起来就有意义"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;多线程编程常见面试题讲解 hello各位朋友们,最近笔者刚刚结束了学校的期末考试,现在回来继续更新啦!!! 今天要学习的是多线程常见面试题讲解,这些内容都是面试中常考的…

在k8s上部署ClickHouse

概述 clickhouse的容器化部署&#xff0c;已经有非常成熟的生态了。在一些互联网大厂也已经得到了大规模的应用。 clickhouse作为一款数据库&#xff0c;其容器化的主要难点在于它是有状态的服务&#xff0c;因此&#xff0c;我们需要配置PVC。 目前业界比较流行的部署方式有…

SaaS多租户篇

文章目录 1. 多租户是什么2. 技术组件2.1 如何实现多租户的DB封装2.2 如何实现多租户的redis封装2.3 如何实现多租户的Web和Security封装 1. 多租户是什么 2. 技术组件 2.1 如何实现多租户的DB封装 2.2 如何实现多租户的redis封装 2.3 如何实现多租户的Web和Security封装

数组、数组的删除添加、函数、返回值、匿名函数、回调函数

一、数组 概念&#xff1a;将多个元素按一定顺序排列放在一个集合中 创建数组&#xff08;两种&#xff09;&#xff1a; 字面量创建 构造函数创建 数组的长度&#xff08;length&#xff09;、类型 空数组 长度为0数组是object 引用类型 如何获取数组中单个元素 索引&…

react中数据不可变

先看官网 一、不可变数据的概念 不可变数据意味着数据一旦创建&#xff0c;就不能被更改。在React中&#xff0c;每次对数据的修改都会返回一个新的数据副本&#xff0c;而不会改变原始数据。这种方式确保了数据的稳定性和一致性。 二、Props中的不可变数据 在React中&#xf…

MeterSphere本地化部署实践

项目结构 搭建本地环境 安装JDK11&#xff0c;配置好JDK环境&#xff0c;系统同时支持JDK8和JDK11安装IEAD&#xff0c;配置JDK环境配置maven环境,IDEA配置(解压可以直接使用)无限重置IDEA试用期配置redis环境(解压可以直接使用) 配置kafka环境 安装mysql-5.7环境&#xff…

VBA自学日志

文章目录 前言一、For each 循环二、offset 偏移三、Resize 属性四、Exit 语句五、DO...LOOP语句六、一些错误代码总结七、GOTO语句八、do while 和 do until九、如何在VBA内使用Excel工作表函数十、VBA使用随机数十一、排序总结 前言 VBA自学成柴的第三周 一、For each 循环 …

1、中级机器学习课程简介

文章目录 1、课程简介2、先决条件 本课程所需数据集夸克网盘下载链接&#xff1a;https://pan.quark.cn/s/9b4e9a1246b2 提取码&#xff1a;uDzP 1、课程简介 欢迎来到机器学习中级课程&#xff01; 如果你对机器学习有一些基础&#xff0c;并且希望学习如何快速提高模型质量…

基于Yolov5+Deepsort+SlowFast算法实现视频目标识别、追踪与行为实时检测

前言 前段时间打算做一个目标行为检测的项目&#xff0c;翻阅了大量资料&#xff0c;也借鉴了不少项目&#xff0c;最终感觉Yolov5DeepsortSlowfast实现实时动作检测这个项目不错&#xff0c;因此进行了实现。 一、核心功能设计 总的来说&#xff0c;我们需要能够实现实时检测视…

ELK 日志分析系统

目录 一、日志管理方案 二、完整日志系统基本特征 三、ELK 简介 ELK组件&#xff1a; 1、ElasticSearch 2、Logstash 3、Kibana 可以添加的其它组件&#xff1a; 1、Filebeat 2、缓存/消息队列&#xff08;redis、kafka、RabbitMQ等&#xff09; 3、Fluentd 三、ELK …

github经常登不上去怎么办?

问题 想少些代码&#xff0c;多学习&#xff0c;少不了使用github&#xff0c;但是在国内经常上不去&#xff0c;很耽误事&#xff0c;这里提供一个简单方法&#xff0c;供参考。 github GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;可以让开发者共同协作开发软…

C++总结笔记

1. 简介 1、面向对象程序设计 面向对象的四大特性 1&#xff09;封装 2&#xff09;继承 3&#xff09;多态 4&#xff09;抽象 2、标准库 标准C由三个部分组成 1&#xff09;核心语言&#xff1a;提供了所有的构件块 2&#xff09;C标准库&#xff1a;提供了大量的函…

大寒---每年的最后一个节气

# 大寒节气 # 大寒&#xff0c;是二十四节气中的最后一个节气。斗指丑&#xff1b;太阳黄经达300&#xff1b;于每年公历1月20日左右交节。大寒同小寒一样&#xff0c;都是表示天气寒冷程度的节气&#xff0c;大寒是天气寒冷到极致的意思。大寒节气处在三九、四九时段&#xf…

书生·浦语大模型实战营第四次课堂笔记

先来看看参考作业 哈哈到这才想起来写笔记 倒回去看发现要求将不要葱姜蒜换成自己的名字和昵称&#xff01; 好好好我就是不配玩&#xff08;换成管理员也不行&#xff01;&#xff09; 诶怎么能进这个环境&#xff1f;要进双系统ubuntu&#xff1f; 现在看视频发现原来是…

009 Linux_文件系统 | 软硬链接

前言 本文将会向你介绍文件系统与软硬链接 文章重点 本文将会先向你介绍文件是如何在磁盘上进行管理的&#xff0c;关于文件的管理将会从管理属性和管理内容两方面来谈&#xff0c;最后会向你介绍软硬链接的概念 文件在磁盘中的管理 首先&#xff0c;假设一个磁盘200GB&#…

Linux中的共享内存

定义&#xff1a; 共享内存允许两个或者多个进程共享物理内存的同一块区域&#xff08;通常被称为段&#xff09;。由于一个共享内存段会称为一个进程用户空间的一部分&#xff0c;因此这种 IPC 机制无需内核介入。所有需要做的就是让一个进程将数 据复制进共享内存中&#xff…

acwing讲解篇之94. 递归实现排列型枚举

文章目录 题目描述题解思路题解代码 题目描述 题解思路 定义递归深度deep&#xff0c;数字使用情况used&#xff0c;选择的数字顺序path 进行递归 终止条件为递归深度达到n层时&#xff0c;打印path&#xff0c;然后返回 深度加一 遍历未使用的数字&#xff0c;选择数字&am…

【rust/bevy】使用points构造ConvexMesh

目录 说在前面问题提出Rapier具体实现参考 说在前面 操作系统&#xff1a;win11rust版本&#xff1a;rustc 1.77.0-nightlybevy版本&#xff1a;0.12 问题提出 在three.js中&#xff0c;可以通过使用ConvexGeometry从给定的三维点集合生成凸包(Convex Hull) import { ConvexGeo…

【51单片机Keil+Proteus8.9】温室盆栽灌溉系统

实验五 实验名称 温室盆栽灌溉系统 软件设计&#xff1a; 1. 定义对应的引脚和端口的别名。 2. 编写延时函数&#xff0c;用于控制程序的执行速度。 3. 编写LCD控制函数&#xff0c;包括发送命令和发送数据两种操作。 4. 编写显示函数&#xff0c;用于在LCD上显示字符串…

无人机打击激光器

激光器的应用非常广泛&#xff0c;涵盖了多个领域。以下是一些主要的激光器应用&#xff1a; 医疗领域&#xff1a;激光器在医疗行业中有着重要应用&#xff0c;比如用于激光手术&#xff08;如眼科手术&#xff09;、皮肤治疗、牙科治疗、肿瘤治疗等。 工业制造&#xff1a;在…