【51单片机系列】使用74HC595控制数码管显示

使用74HC595结合数码管显示字符。

proteus仿真设计如下,74HC595的输出端连接到动态数码管的位选和静态数码管的段选,动态数码管的段选连接到P0口。这两个数码管都是共阴极的。

74HC595结合数码管显示字符

静态数码管显示字符0-F,软件设计如下:

/*实现功能:74HC595芯片控制静态数码管显示字符0-F[2023-12-11] zoya
*/
#include "reg52.h"
#include "intrins.h"
#include "HC595.h"// 共阴极数码管编码
u8 code smg[] = {0x3F, 0x06, 0x5B, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,  // 0~9
0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00}; // a~f+不显示// 延时函数,i=1时延时10us
void Delay(u16 i)
{while(i--);
}void main()
{u8 i;while(1){for(i=0;i<17;i++){HC595SendByte(smg[i]);  // 发送段选数据Delay(50000);}}
}

HC595SendByte函数参考前面的文章“【51单片机系列】74HC595扩展实验之使用74HC595芯片在LED点阵中显示数字”。

仿真结果:

74HC595控制静态数码管显示0-F

动态数码管显示0-7,软件代码如下:

/*实现功能:74HC595芯片控制动态数码管显示0-7[2023-12-11] zoya
*/
#include "reg52.h"
#include "intrins.h"
#include "HC595.h"#define GPIO_LED P0// 共阴极数码管编码
u8 code smg[] = {0x3F, 0x06, 0x5B, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,  // 0~9
0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00}; // a~f+不显示u8 duan = 0xfe;
// 延时函数,i=1时延时10us
void Delay(u16 i)
{while(i--);
}// 数码管显示函数
void digDisplay()
{u8 i;for(i=0;i<8;i++){HC595SendByte(duan);GPIO_LED = smg[i];Delay(150);duan = _crol_(duan,1);GPIO_LED = 0x00;}
}void main()
{while(1){digDisplay();}
}

仿真结果:

74HC595控制动态数码管显示0-7

显示动态数码管时尝试使用多个延时时间,均不能达到38译码器稳定显示0-7的效果,这也是一个bug,希望日后了解更多可以解决。

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

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

相关文章

Java:SpringBoot获取当前运行的环境activeProfile

代码示例 /*** 启动监听器*/ Component public class AppListener implements ApplicationListener<ApplicationReadyEvent> {Overridepublic void onApplicationEvent(ApplicationReadyEvent event) {// 获取当前的环境&#xff0c;如果是test&#xff0c;则直接返回Co…

redis实际应用实现合集

一、redis实现抢红包的功能&#xff08;set 数据结构&#xff09; 分两种情况&#xff1a; 情况一: 从10个观众中随机抽2名幸运观众 首先需要把10个观众的id&#xff08;具体是什么id可以根据实际业务情况自己定义&#xff09;放到redis 的 set 集合里 然后随机抽取2名幸运…

【hcie-cloud】【8】华为云Stack_LLD设计【部署设计、资源设计、服务设计、学习推荐、缩略语】【下】

设计概览、整体架构设计、网络设计 看下面-这篇文章 【hcie-cloud】【7】华为云Stack_LLD设计【设计概览、整体架构设计、网络设计、部署设计、资源设计、服务设计】【上】 部署设计 云平台整体部署架构 图中在Region下每个灰底都代表一个数据中心&#xff0c;AZ1可以跨数据…

yarn系统架构与安装

1.1 YARN系统架构 YARN的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。其思想是拥有一个全局ResourceManager (RM)&#xff0c;以及每个应用程序拥有一个ApplicationMaster (AM)。应用程序可以是单个作业&#xff0c;也可以是一组作业。 一个ResourceManage…

ai智能机器人外呼系统怎么操作?

什么是ai智能机器人外呼&#xff1f;ai智能机器人外呼怎么操作&#xff1f;当下&#xff0c;很多企业主已经认识到&#xff0c;AI外呼是一种高效的拉新引流手段。但具体到实际应用中&#xff0c;实现的效果好像并没有那么理想。从企业外呼的结果来看&#xff0c;接通率是可以达…

【信息安全】-ISO/IEC 27001-2022(翻译)

文章目录 范围规范性引用文件3 术语和定义4 组织环境&#xff08;P&#xff09;4.1 理解组织及其环境4.2 理解相关方的需求和期望组织应确定:a) 信息安全管理体系相关方;b) 这些相关方的相关要求;c) 哪些要求可以通过信息安全管理体系得到解决。注:相关方的要求可包括法律、法规…

Ceph入门到精通-ceph二次开发开源协议考虑

Ceph 是一个开源的分布式存储系统&#xff0c;它由多个组件组成&#xff0c;包括分布式对象存储&#xff08;RADOS&#xff09;、分布式块存储&#xff08;RBD&#xff09;和分布式文件系统&#xff08;CephFS&#xff09;等。Ceph 采用了 GNU Lesser General Public License&a…

kuboard如何部署nacos?

​ kuboard如何部署nacos&#xff1f; 这个快速开始手册是帮忙您快速在您的电脑上&#xff0c;下载、安装并使用 Nacos。 项目包含一个可构建的Nacos Docker Image&#xff0c;旨在利用StatefulSets在Kubernetes上部署Nacos。 在高级使用中,Nacos在K8S拥有自动扩容缩容和数据…

“华为杯”研究生数学建模竞赛2019年-【华为杯】B题:天文导航中的星图识别

目录 摘 要: 一、问题重述 二、模型假设 三、符号说明 四、问题分析

nginx 前端服务调用后端服务报426

nginx 前端服务调用后端服务报426 在配置文件中加上一句配置 2&#xff1a;外挂出来

三(三)ts非基础类型(接口)

说明 在面向对象语言中&#xff0c;接口是一个很重要的概念&#xff0c;它是对行为的抽象&#xff0c;而具体如何行动需要由类去实现。 TypeScript 中的接口是一个非常灵活的概念&#xff0c;除了可用于对类的一部分行为进行抽象以外&#xff0c;也常用于对「对象的形状&…

屏幕分辨率修改工具SwitchResX mac功能特点

SwitchResX mac是可用于修改和管理显示器的分辨率和刷新率。 SwitchResX mac功能和特点 支持多种分辨率和刷新率&#xff1a;SwitchResX可以添加和管理多种分辨率和刷新率&#xff0c;包括自定义分辨率和刷新率。 自动切换分辨率&#xff1a;SwitchResX可以根据应用程序和窗口…

绝地求生:追寻枪王之路,为什么PUBG老玩家要进行训练?

作为一款全球热门的射击游戏&#xff0c;《绝地求生&#xff1a;大逃杀》&#xff08;PUBG&#xff09;吸引了大批热衷于挑战极限的玩家。在这个枪战沙盒中&#xff0c;角逐者们需要不断提升自己的战术、枪法和反应速度&#xff0c;才能在百人对战中脱颖而出。那么为什么PUBG老…

1274:【例9.18】合并石子

【算法分析】 【算法分析】 首先我们要先读懂题意&#xff0c;可能有部分同学在读题的时候就有点难以理解。 我们首先来分析一个比较简单的问题&#xff0c;现在一共有三堆石头&#xff0c;每堆石子的数量分别是3&#xff0c;4&#xff0c;11。求合并成一堆石头的最小得分。…

Hanlp自然语言处理如何再Spring Boot中使用

一、HanLP HanLP (Hankcs NLP) 是一个自然语言处理工具包&#xff0c;具有功能强大、性能高效、易于使用的特点。HanLP 主要支持中文文本处理&#xff0c;包括分词、词性标注、命名实体识别、依存句法分析、关键词提取、文本分类、情感分析等多种功能。 HanLP 可以在 Java、Py…

【LeetCode每日一题】2270.分割数组的方案数

https://leetcode.cn/problems/number-of-ways-to-split-array/description/ 题目&#xff1a; 给定一个数组&#xff0c;从 下标为 index 的地方切开&#xff0c;左边的数大于右边&#xff0c;保证右边至少有一个数。 思路一&#xff1a; 遍历数组&#xff0c;用prefixArr …

运用企业微信构建内部外部沟通桥梁的策略

随着互联网技术的普及和移动设备的广泛使用&#xff0c;企业微信作为企业内部协作和沟通的重要工具&#xff0c;发挥着越来越重要的作用。其中&#xff0c;企业微信的社群功能为信息的传播和交流提供了新的途径。通过建立活跃的企业微信社群&#xff0c;不仅可以加强员工之间的…

部署Nextcloud详细步骤及优化方法

一、安装PHP8.0以上 我这里使用PHP8.0.30 [rootlocalhost ~]# php -v PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.30, Copyright (c) Zend Technologies [rootlocalhost ~]# 安装方法参考 二、安装MY…

[算法基础 ~排序] Golang 实现

文章目录 排序什么是排序排序的分类1. 冒泡1.1 冒泡排序1.2. 快速排序 2. 选择2.1 简单选择排序2.2 堆排序 3. 插入3.1 直接插入3.2 折半插入3.3 希尔排序 4. 归并排序代码实现 5. 基数排序 排序图片就不贴了吧 排序 什么是排序 以下部分动图来自CSDN ::: tip 稳定性的概念 …

linux创建新用户

在Linux中&#xff0c;可以使用useradd命令来创建新用户。以下是创建新用户的基本步骤&#xff1a; 打开终端或命令行界面。输入以下命令并按下回车键创建新用户&#xff1a; sudo useradd -m -s /bin/bash username 其中&#xff0c;-m选项表示同时创建用户主目录&#xff…