嵌入式进阶——数码管

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》

⛺️心若有所向往,何惧道阻且长

文章目录

    • 数码管结构
    • 移位寄存器
    • 原理图
    • 移位寄存器数据流程
    • 移位寄存器控制流程
    • 移位寄存器串联
    • 实现数码管显示

数码管结构

共阴与共阳
共阳数码管是指将所有发光二极管的阳极接到一起,形成公共阳极(COM)的数码管,共阳数码管在应用的时候,应该将 COM 端口接到正极,当某一段发光二极管的阴极为低电平的时候,相对应的段就点亮,当某一字段的阴极为高电平的时候,相对应段就不亮。
1位数码管
在这里插入图片描述
在这里插入图片描述
2位数码管
在这里插入图片描述
在这里插入图片描述
4位数码管
在这里插入图片描述
在这里插入图片描述

移位寄存器

74HC595 是一款 8 位 CMOS 移位寄存器。8 位并行输出端口为可控的三态输出,一 个串行输入端口,可以实现多级芯片串行控制,组成 8n 位(n 为芯片数量)并行输出 。
优点:通过逻辑操作来控制LED的状态,少量的引脚控制更多的状态。
在这里插入图片描述

原理图

在这里插入图片描述

移位寄存器数据流程

移位寄存器的引脚:

  1. LATCH_CLOCK: 锁存时钟
  2. SHIFT_CLOCK: 移位时钟
  3. A: 数据输入信号管脚
  4. QA~QH: 将二进制数据信号转化为高低电平输出给数码管
  5. SQH: 串行数据输出管脚
    在这里插入图片描述
    上图帮我们认识了几个管脚的作用:
    ● A:数据信号输入
    ● QA~QH: 高低电平输出
    同时再次加深了我们对74HC595功能的理解:将二进制数据转换为高低电平的一个工具。

移位寄存器控制流程

数量流程中,数据变成高低电平过程清楚了。但是数据是给到芯片的,给这个过程是比较讲究的。
也就是我们传统说法,要按照规矩来传递数据。数据传递是要通过协议的。
我们通过 数据输入信号管脚(原理图上标记为A)来输入数据。我们必须清楚的知道,一个引脚给数据,其实就是给高低电平信号,一个高低电平信号只能表示一个bit,而我们又8给输出口,理论上需要给8次高低电平才能满足8个端口的输出要求。但是如何去界定8给高低电平呢,就需要用时间去界定。提供了两个引脚:

  1. LATCH_CLOCK: 锁存时钟引脚
  2. SHIFT_CLOCK: 移位时钟引脚
    在这里插入图片描述
    移位:由低电平变为高电平,表示记录一个位的电平。
    锁存:由低电平变为高电平,表示将记录的数据应用到电路中。

移位寄存器串联

在这里插入图片描述

本案例中是有两个移位寄存器U1和U2的。分别关注两个移位寄存器的A和SQH.
在这里插入图片描述
通过流程我们可以明确以下结论:

  1. 移位寄存器通过A输入数据
  2. 移位寄存器通过SQH输出数据
  3. 两个移位寄存器通过将一个的SQH输出到另外一个的输入A口,两个移位寄存器就串联了
  4. 末端的移位寄存器输出口悬空表示不输出
  5. 数据会传递到末端,也就是数据会先填充的是末端。
    串联后控制流程需要有所改变,改变如下:
    在这里插入图片描述

实现数码管显示

#include "Config.h"
#include "GPIO.h"
#include "Delay.h"

#define	NIXIE_DI	P44	// 数据输入
#define	NIXIE_SCK	P42	// 移位寄存器
#define	NIXIE_RCK	P43	// 锁存寄存器

void GPIO_config(void) {
	GPIO_InitTypeDef	GPIO_InitStructure;		//结构定义
	GPIO_InitStructure.Pin  = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;		//指定要初始化的IO,
	GPIO_InitStructure.Mode = GPIO_PullUp;	//指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
	GPIO_Inilize(GPIO_P4, &GPIO_InitStructure);//初始化
}

#define GET_BIT_VAL(byte, pos)	(byte & (1 << pos))

int main() {
		char i;
		u8 a_dat = 0x12;	// 0001 0010	字母位 5.
											//&1000	0000
	
		u8 b_idx = 0x1F;	// 0001 1111	数字位 
	
    GPIO_config();
		
		// 显示 7.
		// 0111 1000
		// 先发字母位 (控制显示的内容)
		// 8bit,先发出去的会作为高位
		for(i = 7; i >= 0; i--){ // 0点亮
			NIXIE_DI = GET_BIT_VAL(a_dat, i);
			
			// 寄存器的移位操作
			NIXIE_SCK = 0;
			NOP2();
			NIXIE_SCK = 1;
			NOP2();
		}
		
		// 再发数字位 (控制显示哪几个)
		// 1111 1011
		
		// 7.7.空7. 7.7.7.7.  -------------------与二级制是反向
		for(i = 7; i >= 0; i--){ // 只要不是0,就是高电平
			NIXIE_DI = GET_BIT_VAL(b_idx, i);
			
			// 寄存器的移位操作
			NIXIE_SCK = 0;
			NOP2();
			NIXIE_SCK = 1;
			NOP2();
		}
		
		// 锁存操作
		NIXIE_RCK = 0;
		NOP2();
		NIXIE_RCK = 1;
		NOP2();
		
		
		
    while(1) {
				
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java SE基础知识(11)

知识梳理&#xff1a; 记不住就看API帮助文档中的pattern类 开发过程中&#xff0c;正则表达式一般不自己写&#xff0c;安装插件any-rule 选择自己想要的正则表达式格式&#xff0c;稍作修改即可

科学提效|AI融入零售业,未来零售的创新之旅

零售业正经历着由人工智能&#xff08;AI&#xff09;引领的转型浪潮。AI在零售和消费品&#xff08;CPG&#xff09;行业的应用前景广阔&#xff0c;它正以多种创新方式重塑行业的运作模式。且随着技术的不断进步&#xff0c;AI在零售业的应用将变得更加广泛和深入。AI不仅能够…

解锁Facebook的神秘密码:探索社交媒体的奥秘

在当今数字时代&#xff0c;社交媒体已经渗透到我们生活的方方面面。Facebook&#xff0c;作为这个领域中最为瞩目的平台之一&#xff0c;不仅连接着全球数十亿用户&#xff0c;还承载着庞大的信息流和交流网络。然而&#xff0c;Facebook的背后是一个充满着技术和隐私的世界&a…

汇凯金业:纸黄金和实物黄金的价格有什么区别

纸黄金和实物黄金的价格主要受到全球黄金市场行情的影响&#xff0c;二者的基础价格并无太大差异&#xff0c;但在具体交易时&#xff0c;可能会存在一些价格上的区别&#xff0c;这些差异主要来自以下几个方面&#xff1a; 交易费用与管理费&#xff1a;纸黄金交易通常需要支…

Jenkins配置(插件/角色/凭证)

目录 传送门前言一、Jenkins插件管理1、更换为国内下载源2、中文汉化插件下载&#xff08;不推荐&#xff09;3、低版本Jenkins爆红插件安装4、低版本Jenkins插件持续报错解决办法 二、Jenkins用户角色三、Jenkins凭证管理&#xff08;svn/git&#xff09;1、Username with pas…

k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found

安装k8s过程中遇到的问题&#xff1a; 基本信息 系统版本&#xff1a;ubuntu 22.04 故障现象&#xff1a; coredns 报错&#xff1a;plugin/forward: no nameservers found 故障排查&#xff1a; #检查coredns的配置&#xff0c;发现有一条转发到/etc/resolv.conf的配置…

重生奇迹mu增加敏捷的装备

穿龙炎。 1、游戏破坏方面。可以降低"敏捷"的武器,如果你是低敏捷穿龙炎,我推荐你拿它,穿龙炎配的,同时,它的攻击,我感觉是最稳定的。 2、好看方面。通常大家都穿它都是因为好看,但是很多高手也穿他,为什么?因为穿它好配点,高敏捷你可以穿,低敏捷你也可以穿它,视武…

会声会影破解版百度云(附安装教程) 会声会影下载免费中文版 会声会影2024激活码,注册机

会声会影是一款功能强大的视频与电影编辑软件&#xff0c;它拥有出色的色彩校正和视频氛围调整工具。这款软件对颜色、平度HSL调谐、色调曲线以及波形范围等细微变化有着敏锐的感知&#xff0c;能够轻松实现颜色的精确移动和校正。此外&#xff0c;会声会影还提供了丰富的功能&…

【量算分析工具-概述】GeoServer改造Springboot番外系列三

背景概述 GIS公司做软件产品&#xff0c;往往绕不开的是量算分析工具的开发和使用。例如做的比较好的火星科技的mars3d产品&#xff0c;如下图&#xff0c;但是往往这些工具都是利用Cesium框架进行前端计算的实现的&#xff0c;网上关于这些量算工具算法原理的文章少之又少&…

遥感信息SCI期刊,中科院1区,IF=7+,审稿速度非常快!

一、期刊名称 International Journal of Applied Earth Observation and Geoinformation 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;遥感 影响因子&#xff1a;7.5 中科院分区&#xff1a;1区 三、期刊征稿范围 《国际应用地球观测和地理信息杂志》…

【深度学习】最强算法之:人工神经网络(ANN)

人工神经网络ANN 1、引言2、人工神经网络(ANN)2.1 定义2.1.1 定义2.1.2 应用场景 2.2 核心原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;看新闻没&#xff1f; 小鱼&#xff1a;新闻天天看&#xff0c;啥事大惊小怪的。 小屌…

【力扣刷题笔记第三期】Python 数据结构与算法

先从简单的题型开始刷起&#xff0c;一起加油啊&#xff01;&#xff01; 点个关注和收藏呗&#xff0c;一起刷题鸭&#xff01;&#xff01; 第一批题目 1.设备编号 给定一个设备编号区间[start, end]&#xff0c;包含4或18的编号都不能使用&#xff0c;如&#xff1a;418、…

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一个分布式的容错数据仓库系统&#xff0c;可实现大规模分析和便于使用 SQL 读取、写入和管理驻留在分布式存储中的PB级数据。 Hive是建立在Hadoop之上的数据仓库框架&#xff0c;它提供了一种类SQL的查询语言—HiveQL&#xff0c;使得熟悉S…

.NET调用阿里云人脸识别1:1简易流程保姆级教学

需要注意的是&#xff0c;以下内容仅限基础调用 人脸比对1:1 功能说明 该功能是两张照片对比&#xff0c;比对两张照片是不是同一个人&#xff0c;至于应用到什么场景&#xff0c;可以参考阿里云的官方文档&#xff0c;我这边以大学生项目来说的话&#xff0c;比如员工打卡&a…

strstr的使⽤和模拟实现

strstr&#xff08;function&#xff09; Returnsa pointer to the irst occurrence of str2 in str1, or a null pointer if str2 is not part of str1. &#xff08;函数返回字符串str2在字符串str1中第⼀次出现的位置&#xff09;。 The matchingprocess doesnot include t…

如何通过虚拟人动画制作打响文旅信息资源?

随着科技的发展&#xff0c;虚拟人动画制作成为文旅产业数字化转型的重要手段。虚拟人动画制作可以将文化资源转化为生动的动画形式&#xff0c;为文旅资源的宣传和推广注入新的活力。如阿布扎比文旅部推出的数字虚拟形象“哈利法”&#xff0c;通过虚拟人动画制作形式&#xf…

漂流瓶挂机项目,聊天脚本赚钱新玩法,号称单机30-50+ (教程+软件)

一、项目简介&#xff1a; 漂流瓶挂机项目主要是通过使用探遇漂流瓶、音麦漂流瓶等聊天软件&#xff0c;为用户提供一个聊天赚钱的平台。男性用户需要充值后才能发送消息&#xff0c;而女性用户则可以通过接收消息赚取分红。男性用户发送给女性用户的消息费用大约在.1-.2元之间…

大数据开发面试题【Spark篇】

115、Spark的任务执行流程 driver和executor&#xff0c;结构式一主多从模式&#xff0c; driver&#xff1a;spark的驱动节点&#xff0c;用于执行spark任务中的main方法&#xff0c;负责实际代码的执行工作&#xff1b;主要负责&#xff1a;将代码逻辑转换为任务、在executo…

618值得买的东西有哪些?买什么最划算?超全品类大清单总结

平日里让许多人心动不已的收藏加购好物&#xff0c;是否常常因为价格昂贵而让人望而却步&#xff1f;然而&#xff0c;618活动期间的到来&#xff0c;恰恰为我们提供了一个难得的购物盛宴&#xff01;相信在第一波活动中&#xff0c;许多消费者已经跃跃欲试&#xff0c;开始享受…

C++干货 --类和对象(二)

前言&#xff1a; 上文中&#xff0c;我们介绍了类这一重要知识点&#xff0c;包括为什么要有类、类的使用方法、封装、以及对象实例化。详情可以去看我的文章&#xff1a;写文章-CSDN创作中心C干货 --类和对象(一)-CSDN博客写文章-CSDN创作中心 这篇文章&#xff0c;我们简单…