51单片机应用开发---数码管的控制应用
实现目标
1、掌握数码管结构、驱动原理;
2、
一、什么是数码管?
1.数码管定义
数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。数码管在我们生活中无处不在,比如家用电磁炉、洗衣机、冰箱等显示应用,还有电子表的时间显示,都使用了数码管的相应原理。
1.1 数码管的引脚定义:
数码管的笔端:
上图为一个数码管的笔端图,笔端分为A、B、C、D、E、F、G、DP 8段,也就是由8个LED组成的,点亮前7段既可点亮一个数字,DP一般用于表示小数点。
2.数码管分类
数码管按其个数可分为单个数码管、多个数码管;按其公共极连接情况可分为共阴极和共阳极数码管。
2.1 数码管按连接个数分
单个数码管
一个数码管是由a、b、c、d、e、f、g、dp八个二极管组成,八个LED一端接在一起,另一端引脚引出来。二极管如果阳极连在一起,就是共阳极数码管,阴极连在一起,就是共阴极数码管。
多个数码管
上图所示的是四个数码管,在使用时,需要程序选定使用哪几个数码管,这就是“位选”,选定数码管后再对选定的数码管进行操作,其操作与单个数码管的操作一致(接下来还会进一步详解),这就是“段选”。
2.2数码管公共极按照连接情况分
共阳数码管:所有LED的阳极连接到一起形成一个公共阳极接VCC,单片机需要控制某段LED的阴极为低电平时,相应LED就会点亮
共阴数码管:所有LED的阴极连接到一起形成一个公共阴极接GND,单片机需要控制某段LED的阳极为高电平,相应LED会点亮。注:单片机上IO口的电压不足以驱动数码管的LED,因此共阴数码管的阳极一般并不直接连到单片机的IO上,而是中间再接一个电源。
3.数码管显示原理
下面为共阳数码管显示的字符码推导:
如上图,是一个共阳极数码管,要使数码管显示不同的数字,只需点亮对应LED即可。如:数码管显示“0”,则a、b、c、d、e、f 六个LED亮,g、dp 这俩个LED灭,即可显示“0”。
二、数码管驱动方式
3.1 静态驱动显示
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
(1)优势:是驱动简单直接,好编程
(2)缺陷:每一个数码管需要1个端口,单片机的端口不够用
3.2 动态驱动显示
动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
(1)优势:IO占用少
(2)缺陷:显示亮度不够,编程相对复杂
首先了解一些必要知识
1、多位数码管是扫描显示,也就是同一时刻只有一个数码管显示
2、视觉暂留效果:第一个数码管显示完,第二个数码管接着显示,接着后面数码管一次显示,当显示(扫描)足够快的时候,人眼是看不到闪烁的,就认为多个数码管是同时显示的
3、多位数码管只能同时显示多个一样的数字,要显示不同数字需要扫描显示
当数码管的扫描频率大于50hz的时候人眼是基本分不清的,也就是你的扫描8个数码管的周期控制在20ms内就可以实现动态显示不闪烁。
三、开发板上数码管驱动芯片
数码管的驱动还需要两个芯片,一个是 74HC138译码器,另一个是74HC245双向数据缓冲器。
3.1 74HC138译码器
4HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
3.2 74HC245双向数据缓冲器
74HC245兼容TTL器件引脚的高速CMOS总线收发器(bustransceiver),典型的CMOS型三态缓冲门电路,八路信号收发器。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。主要应用于大屏显示,以及其它的消费类电子产品中增加驱动。
管脚定义
74HC245的引脚包括输出使能
(OE),方向控制
(DIR),A组输入/输出
(A0-A7),B组输入/输出
(B0-B7),电源
(VDD)和地
(GND)。
管脚说明
下表是74HC245所有管脚的功能说明
74HC245真值表
真值表
是在逻辑中使用的一类数学表,用来确定一个表达式是否为真或有效。H
代表高电平,L
代表低电平,X
代表随机电平(可高可低)
四、程序设计
五、实验效果
六、仿真实现
总结
相关文章:

51单片机应用开发---数码管的控制应用
实现目标 1、掌握数码管结构、驱动原理; 2、 一、什么是数码管? 1.数码管定义 数码管,也称为LED数码管,基本单元是发光二极管(LED)。分为七段数码管和八段数码管(多一个小数点DP)。数码管在我们生活中无处不在,比如…...

Vue3+Django5+REST Framework开发电脑管理系统
前端:Vue3TypeScript 后端:Django5REST Framework 功能介绍 用户管理角色管理菜单管理配件管理仓库管理类型管理电脑管理入库管理出库管理库存管理收发明细管理 界面预览 源码地址:managesystem: 电脑管理系统...
Java8函数式接口全攻略
一、接口大白话 1.四大基础接口 Consumer<T> 核心方法:void accept(T t);消费者。接受一个输入参数,不返回任何结果的操作。望文生义:你给我啥,我就执行啥,没有结果。 Supplier<T> 核心方法: T get();供…...

英文软件汉化中文软件教程asi exe dll 等汉化教程
相信大家在使用国际软件的时候,会经常碰到英文类型的软件 或者玩一些游戏使用一些工具,也基本都是外网的,那么对于用户来讲 就会非常的不方便! 小编为大家整理了一些国内大佬出的的英文软件汉化中文软件的视频教程 教程分为EX…...
HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
HTTP 请求方式总结:application/x-www-form-urlencoded 与 application/json 在前后端交互中,客户端发送数据到服务器的常见方式有两种:application/x-www-form-urlencoded 和 application/json。本文将详细介绍这两种请求方式的特点、使用方…...

prometheus 集成 grafana 保姆级别安装部署
前言 本文 grafana 展示效果只需要 prometheus node_exporter grafana 其他的选择安装 环境和版本号 系统: CentOS 7.9 prometheus: 2.54.1 pushgateway: 1.9.0 node_exporter: 1.8.2 alertmanager: 0.27.0 grafana:11.2.0 官网:https://prometheus.io/ 下载地址:h…...

Apache SeaTunnel Committer 进阶指南
Apache SeaTunnel 作为一个开源的数据集成工具,旨在简化和加速海量数据的采集和传输。 社区的 Committer 是指拥有项目存储库的写权限的社区成员,即 Committer 可以自行修改代码、文档和网站,也可以合并其他成员的贡献。成为 Apache SeaTunn…...

组件上的v-model(数据传递),props验证,自定义事件,计算属性
一.props验证 在封装组件时对外界传递过来的props数据进行合法性校验,从而防止数据不合法问题。 1.基础类型检查 String,Number,Boolean,Array,Object,Date,Function,Symbol 2.多个可能的类型 3.必须项校验 4.属性默认值 5.自定义验证函数 <template>&…...

mfc140u.dll文件错误的相关修复方法,4种方法修复mfc140u.dll
当面对基于Microsoft Visual C开发的应用程序出现启动或运行失败时,mfc140u.dll文件错误往往是罪魁祸首之一。这个动态链接库(DLL)文件对于许多Windows软件来说是必不可少的,因为它包含了重要的编程代码和数据。如果发现此文件损坏…...

Redis中使用布隆过滤器解决缓存穿透问题
一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据…...

css百分比布局中height:100%不起作用
百分比布局时,我们有时候会遇到给高度 height 设置百分比后无效的情况,而宽度设置百分比却是正常的。 当为一个元素的高度设定为百分比高度时,是相对于父元素的高度来计算的。当没有给父元素设置高度(height)时或设置…...

java程序员入行科目一之CRUD轻松入门教程(二)
封装工具类 封装获取连接&释放资源操作 在实际使用JDBC的时候,很多操作都是固定的,没有必要每次都去注册驱动,获取链接对象等等。 同样,释放资源的close操作也可以封装一下 下面是封装好的具体工具类 package com.jimihua.u…...
(不用互三)解密AI创作:提升Prompt提示词的提问技巧
文章目录 🍊AI创作的核心:提示词 Prompt 的重要性1. 什么是提示词工程?1.1 提示词的工作原理1.2 高薪提示词工程师的现实1.3 谁能胜任提示词工程师? 2. 提示词编写技巧3. 常见的提示词框架3.1 CO-STAR 框架3.2 BORKE 框架 4. 提示…...
Python 错误 ValueError 解析,实际错误实例详解 (二)
文章目录 前言Python 中错误 ValueError: Not Enough Values to UnpackPython 中的 ValueError 是什么修复Python字典中 ValueError:ValueError: not enough values to unpack修复Python中 ValueError:not enough values to unpackPython 中错误 ValueError: Setting an Arra…...

会员计次卡渲染技术-—SAAS本地化及未来之窗行业应用跨平台架构
一、计次卡应用 1. 健身中心:会员购买一定次数的健身课程或使用健身房设施的权限。 2. 美容美发店:提供一定次数的理发、美容护理等服务。 3. 洗车店:车主购买若干次的洗车服务。 4. 儿童游乐场:家长为孩子购买固定次数的入场游…...

Redis网络模型、通信协议、内存回收
Redis网络模型 一、用户空间和内核空间(前提)问题来了:为啥要区分用户空间和内核空间呢?我们来看看两个空间以及硬件是如何操作的 二、Linux中五种IO模型1、 阻塞IO2、非阻塞IO3、IO多路复用3.1、SELECT3.2、poll3.3、epoll 4、信…...

闯关leetcode——21. Merge Two Sorted Lists
大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/merge-two-sorted-lists/description/ 内容 You are given the heads of two sorted linked lists list1 and list2. Merge the two lists into one sorted list. The list should be made by sp…...
Notepad++中提升编码效率的关键快捷键
基本操作 Ctrl N:新建文件。Ctrl O:打开文件。Ctrl S:保存文件。Ctrl Shift S:另存为。Ctrl W:关闭当前文件。 文件和标签管理 Ctrl Tab:切换到下一个标签。Ctrl Shift Tab:切换到上…...
ai智能语电销机器人有哪些功能?
近几年火爆的AI语音机器人,已经可以成熟的服务于金融贷款、理财、房地产、电商、汽车等行业,成熟的适用于电话销售、客服服务、售后管理等等基础岗位,那么ai智能语电销机器人有哪些功能?我们来看一看。 顾名思义,智能…...

ctfshow-PHP反序列化
web254 源码 <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2020-12-02 17:44:47 # Last Modified by: h1xa # Last Modified time: 2020-12-02 19:29:02 # email: h1xactfer.com # link: https://ctfer.com //mytime 2023-12-4 0:22 */ error_reporting(0)…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...

边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...

HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...
【Redis】Redis从入门到实战:全面指南
Redis从入门到实战:全面指南 一、Redis简介 Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,它可以用作数据库、缓存和消息代理。由Salvatore Sanfilippo于2009年开发,因其高性能、丰富的数据结构和广泛的语言支持而广受欢迎。 Redis核心特点:…...