当前位置: 首页 > news >正文

【51单片机零基础-chapter4:LED数码管】

LED数码管本质是一种廉价的显示器,由多个发光二极管封装组成的8字形器件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果要显示6,那么需要点亮除了B以外的所有段,并且开发板上默认是共阴极
在这里插入图片描述
阳极A->G除了B全点亮,所以7,4,2,1,9,10全接正极:10111110
这个就是段码,表示显示的数据

静态LED显示

开发板上是四个一体的LED灯
在这里插入图片描述
每个LED单独引出一个共阴极(或阳极)端
但是所有的LED其余各个段连在一起
比如想第三个LED显示1
那么第一二四个LED灯共阴极接在正极上,所以保证它们不会亮
然后BC段全给1,其余接0,这时第三个LED因为一头连负极,一头的各段存在正极(BC段)那么只有第三个LED灯的BC段亮,即0110 0000这样子赋.
但这样子搞,只会同一时刻一组LED显示同一数字,因为下面的段是相同的(led共用引脚)

动态数码管显示

一组LED各自显示不同的数字
其实本质仍是静态的,因为共用引脚决定了同一时刻只能显示一个数字.
但是如果切换的够快,那么人眼分辨不出一组LED的不同数字不是在同一时刻,视觉上像是同时显示了不同数据(类似于OS的并发,切换的足够快,使每个用户(LED)感觉像是独占)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中3个控制8个原理是三位二进制转十进制,转到谁,谁有效,给负电平,其余全1
C B A Y
位权 4 2 1 十进制
0 0 0 Y0->0111 1111
0 0 1 Y1->1011 1111
1 0 1 Y5->1111 1011

双向数据缓冲器
在这里插入图片描述
DIR方向,代表是左缓冲到右,还是右缓冲到左
接高电平,则左边缓冲到右遍.因为数码管显示一般是送数据(左到右)不需要读回来,所以一般是给高电平
在这里插入图片描述
VDD,GND正负极
OE使能,一般称CE
A0-B0,A1-B1,…,A7-B7

电容
在这里插入图片描述
8个电阻组成排阻,R是欧姆,限流电阻,防止数码管电流过大
在这里插入图片描述
总结
先选中某个LED的共阴极,通过138译码器
p22,p23,p24赋值,有三位二进制,转十进制x,则LEDx的共阴极接上低电平0,其余全1,只有LEDx满足条件,然后给p0口一个阳码数据,其中只有1的才是给了高电平
有高低电平,数码管段才会亮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

让LED5显示6

led5,则共阴极5->二进制101,则p2的234赋值101;
显示6,则从段a到dp分别是1011 1110
由于从高位往低位读,则是0111 1101
转化为16进制(1+2+4 1+4+8=7 13 ,10为A,13为D):7 D

#include <REGX52.H>
//light LED5
void main(){//6=101P2_4=1;P2_3=0;P2_2=1;P0=0x7D;while(1){}
}

让LED显示985

#include <REGX52.H>
unsigned char lednum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void light(unsigned char location,num);
void Delay(unsigned char x);void main(){while(1){light(1,9);Delay(10);light(2,8);Delay(10);light(3,5);Delay(10);light(6,2);Delay(10);light(7,1);Delay(10);light(8,1);Delay(10);}
}void light(unsigned char location,num){switch(location){case 1:P2_4=1;P2_3=1;P2_2=1; break;case 2:P2_4=1;P2_3=1;P2_2=0; break;case 3:P2_4=1;P2_3=0;P2_2=1; break;case 4:P2_4=1;P2_3=0;P2_2=0; break;case 5:P2_4=0;P2_3=1;P2_2=1; break;case 6:P2_4=0;P2_3=1;P2_2=0; break;case 7:P2_4=0;P2_3=0;P2_2=1; break;case 8:P2_4=0;P2_3=0;P2_2=0; break;}P0=lednum[num];
}
void Delay(unsigned char x)		//@12.000MHz
{while(x--){unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);}
}

数码管消影

逻辑:位选,段选,位选,…
单片机速度过快会导致数据窜位
需要每次段选完后清零,但不能马上清零,否则导致灯光过暗
Delay(1);P0=0x00;

#include <REGX52.H>
unsigned char lednum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void light(unsigned char location,num);
void Delay(unsigned char x);void main(){while(1){light(1,9);Delay(1);light(2,8);Delay(1);light(3,5);Delay(1);light(6,2);Delay(1);light(7,1);Delay(1);light(8,1);Delay(1);}
}void light(unsigned char location,num){switch(location){case 1:P2_4=1;P2_3=1;P2_2=1; break;case 2:P2_4=1;P2_3=1;P2_2=0; break;case 3:P2_4=1;P2_3=0;P2_2=1; break;case 4:P2_4=1;P2_3=0;P2_2=0; break;case 5:P2_4=0;P2_3=1;P2_2=1; break;case 6:P2_4=0;P2_3=1;P2_2=0; break;case 7:P2_4=0;P2_3=0;P2_2=1; break;case 8:P2_4=0;P2_3=0;P2_2=0; break;}P0=lednum[num];//消影Delay(1);P0=0x00;
}
void Delay(unsigned char x)		//@12.000MHz
{while(x--){unsigned char i, j;i = 2;j = 239;do{while (--j);} while (--i);}
}

相关文章:

【51单片机零基础-chapter4:LED数码管】

LED数码管本质是一种廉价的显示器,由多个发光二极管封装组成的8字形器件 如果要显示6,那么需要点亮除了B以外的所有段,并且开发板上默认是共阴极 阳极A->G除了B全点亮,所以7,4,2,1,9,10全接正极:10111110 这个就是段码,表示显示的数据 静态LED显示 开发板上是四个一体…...

【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP

路由协议(Routing Protocols) 像 google map RIP &#xff08;Routing Information Protocol&#xff09;:跳数 超了就废了 OSPF&#xff08;Open Shortest Path First&#xff09; 就好像拿着map找最短距离(跳数) EIGRP&#xff08;Enhanced Interior Gateway Routing Protoco…...

Unity3D ILRuntime开发原则与接口绑定详解

引言 ILRuntime是一款基于C#的热更新框架&#xff0c;使用IL2CPP技术将C#代码转换成C代码&#xff0c;支持动态编译和执行代码&#xff0c;适用于Unity3D的所有平台&#xff0c;包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术…...

闻泰科技涨停-操盘训练营实战-选股和操作技术解密

如上图&#xff0c;闻泰科技&#xff0c;今日涨停&#xff0c;这是前两天分享布局的一个潜伏短线的标的。 选股思路&#xff1a; 1.主图指标三条智能辅助线粘合聚拢&#xff0c;即将选择方向 2.上图红色框住部分&#xff0c;在三线聚拢位置&#xff0c;震荡筑底&#xff0c;…...

我用AI学Android Jetpack Compose之开篇

最近突发奇想&#xff0c;想学一下Jetpack Compose&#xff0c;打算用Ai学&#xff0c;学最新的技术应该要到官网学&#xff0c;不过Compose已经出来一段时间了&#xff0c;Ai肯定学过了&#xff0c;用Ai来学&#xff0c;应该问题不大&#xff0c;学习过程记录下来&#xff0c;…...

25考研王道数据机构课后习题-----顺序表链表部分

文章目录 1.顺序表题目2.链表相关题目3.我的个人总结 声明&#xff1a;以下内容来自于B站知名up主白话拆解数据结构&#xff0c;望获悉&#xff1b; 1.顺序表题目 下面的这个说的是&#xff1a;下面的哪一个是组成我们的顺序表的有限序列&#xff0c;这个应该是数据元素&#x…...

新能源电动汽车动力电池技术

新能源电动汽车动力电池技术是新能源汽车发展的核心之一&#xff0c;以下是动力电池技术的一些关键方面&#xff1a; 技术进展 能量密度提升&#xff1a;近年来&#xff0c;动力电池的能量密度有了显著提升&#xff0c;从2010年的100Wh/kg提高到2024年的300Wh/kg。能量密度的…...

修复 ITunes 在 Windows 或 Mac 上不断崩溃的问题 [100% 有效]

对于 iDevice 用户来说&#xff0c;只能通过 iTunes 在 iDevice 和计算机之间传输文件的困境一直是一个紧迫的问题。所有 iPhone 用户可能都知道&#xff0c;iTunes 并不是一款高效的应用程序&#xff0c;有时性能会很差&#xff0c;例如在 iDevices 和计算机之间传输文件时不断…...

Android设备使用AOA协议进行主机与配件模式通信

1.使用TYPC-C数据线连接两台华为手机&#xff1a; TYPE-C线&#xff0c;先连接下图右边的ACCESSORY 再连接左边的HOST 此时左边的HOST(白色) 会给右边的ACCESSORY(黑色) 充电 接着打开左连接的HostChart会自动调起授权&#xff0c;然后会启动右边的AccessoryChart USB HOS…...

Python爬虫入门实例:Python7个爬虫小案例(附源码)

引言 随着互联网的快速发展&#xff0c;数据成为了新时代的石油。Python作为一种高效、易学的编程语言&#xff0c;在数据采集领域有着广泛的应用。本文将详细讲解Python爬虫的原理、常用库以及实战案例&#xff0c;帮助读者掌握爬虫技能。 一、爬虫原理 爬虫&#xff0c;又…...

生成对抗网络 (Generative Adversarial Network, GAN) 算法MNIST图像生成任务及CelebA图像超分辨率任务

生成对抗网络 (Generative Adversarial Network, GAN) 算法详解与PyTorch实现 目录 生成对抗网络 (Generative Adversarial Network, GAN) 算法详解与PyTorch实现1. 生成对抗网络 (GAN) 算法概述1.1 生成器与判别器1.2 GAN的优势2. GAN的核心技术2.1 目标函数2.2 生成器2.3 判别…...

快速排序排序方法演示及算法分析(附代码和实例)

基本思想&#xff1a; 任取一个元素&#xff08;比如第一个&#xff09;为中心&#xff0c;称为枢轴&#xff08;pivot&#xff09;所有比它小的元素一律前放&#xff0c;比它大的元素后放&#xff0c;形成左右两个子表对各子表重新选择中心元素并以此规则调整直到每个子表的元…...

库迪困境:供应链补救失效背后的市场错配

作者 | 曾响铃 文 | 响铃说 近日&#xff0c;红餐网证实了库迪咖啡暂停便捷店招商的消息。库迪官方回应称&#xff0c;店中店模式招商只是按下了暂停键&#xff0c;不排除未来重启的可能。 但一批被“暂停”的便捷店加盟商&#xff0c;不知道等不等起库迪的未来重启。 小红…...

解决openpyxl操纵带公式的excel或者csv之后,pandas无法读取数值的问题

1 功能特点 openpyxl&#xff1a; 这是一个专门用于操作Excel文件&#xff08;.xlsx/.xlsm&#xff09;的库。它提供了丰富的功能来读取、写入和修改Excel文件的各个元素&#xff0c;如单元格、行、列、工作表等。例如&#xff0c;可以通过openpyxl轻松地创建一个新的Excel工作…...

基于傅立叶神经网络(FNN)与物理信息神经网络(PINN)求解泊松方程(附Pytorch源代码)

基于傅立叶神经网络(FNN)与物理信息神经网络(PINN)求解泊松方程 一、引言 偏微分方程(Partial Differential Equation, PDE)在科学与工程领域有着广泛的应用。传统数值方法(如有限差分法、有限元法)在求解这类问题时,尽管已经非常成熟,但随着问题复杂度的增加,其计…...

小程序组件 —— 28 组件案例 - 推荐商品区域 - 实现结构样式

这一节目标是实现底部推荐商品的结构和样式&#xff0c;由于这里要求横向滚动&#xff0c;所以需要使用上节介绍的 scroll-view 功能&#xff0c;并使用 scroll-x 属性支持横向滚动&#xff0c;推荐商品区域中的每一个商品是一个单独的 view&#xff0c;每个view 中需要写三个组…...

Flink读写Kafka(DataStream API)

在Flink里,已经预定义了kafka connector,使用该connector我们可以读写kafka,并且能实现exactly once的语义。 要使用需要引入相关的maven依赖,在这里,因为读写kafka,就会涉及一个问题,kafka-client和broker的版本兼容问题,不过因为kafka client和broker的双向兼容的良…...

SCAU期末笔记 - 数据库系统概念往年试卷解析

数据库搞得人一头雾水&#xff0c;题型太多太杂&#xff0c;已经准备摆烂了。就刷刷往年试卷&#xff0c;挂不挂听天由命。 2019年 Question 1 选择题 1. R ∩ S R∩S R∩S等于一下哪个选项&#xff1f; 画个文氏图秒了 所以选A. R ∩ S R − ( R − S ) R∩SR-(R-S) R∩…...

flutter在windows平台中运行报错

PS D:\F\luichun> flutter run当运行flutter项目时&#xff0c;【解决如下报错】 /C:/flutter/packages/flutter/lib/src/painting/star_border.dart:530:27: Error: The getter Matrix4 isnt defined for the class _StarGenerator.- _StarGenerator is from package:flut…...

HTML——75. 内联框架

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>内联框架</title><style type"text/css">iframe{width: 100%;height: 500px;}</style></head><body><!--iframe元素会创建包含…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑

精益数据分析&#xff08;98/126&#xff09;&#xff1a;电商转化率优化与网站性能的底层逻辑 在电子商务领域&#xff0c;转化率与网站性能是决定商业成败的核心指标。今天&#xff0c;我们将深入解析不同类型电商平台的转化率基准&#xff0c;探讨页面加载速度对用户行为的…...

Java设计模式:责任链模式

一、什么是责任链模式&#xff1f; 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09; 是一种 行为型设计模式&#xff0c;它通过将请求沿着一条处理链传递&#xff0c;直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者&#xff0c;…...

华为OD机考- 简单的自动曝光/平均像素

import java.util.Arrays; import java.util.Scanner;public class DemoTest4 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint[] arr Array…...

关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/148515355 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...