51单片机-数码管显示多个

目录

简介:

一. 简单全亮

二. 控制单个变化

三. 2024


书接上回 51单片机-数码管显示单个

http://t.csdnimg.cn/Ii6x0

简介:

51 单片机作为控制核心,可以与数码管相连接来实现数字的显示。

数码管通常有多个段,通过控制这些段的点亮和熄灭状态,可以显示不同的数字。当要显示多个数字时,需要合理地安排数码管的布局和控制逻辑。

在硬件方面,需要将 51 单片机的引脚与数码管的相应引脚进行连接,以实现数据和控制信号的传输。可能需要使用驱动电路来增强信号或实现多位数码管的控制。

在编程方面,需要根据数码管的特性和显示需求来编写代码。可以通过循环和逻辑判断来依次控制每个数码管显示相应的数字。比如,可以先确定要显示的数字序列,然后逐位地将数字转换为对应的段码,并输出到数码管上。

通过这种方式,可以在数码管上同时显示多个数字,实现诸如计数器、时钟显示等多种功能。它为数据的直观展示提供了一种简单而有效的方式,在很多电子设备和系统中都有广泛应用。

总之,利用 51 单片机控制数码管显示多个数字是一种常见且实用的技术手段,具有很大的灵活性和可扩展性。

一. 简单全亮

ps:有好几次没电亮,是没加阻值,看了这方面的基础要好好补补了.

这种是不需要控制哪个亮,全部接了电.直接用上一篇的代码,就可以每个都动态变化

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code leddata[]={
	0x3F,  //"0"
    0x06,  //"1"
    0x5B,  //"2"
    0x4F,  //"3"
    0x66,  //"4"
    0x6D,  //"5"
    0x7D,  //"6"
    0x07,  //"7"
    0x7F,  //"8"
    0x6F,  //"9"
    0x77,  //"A"
    0x7C,  //"B"
    0x39,  //"C"
    0x5E,  //"D"
    0x79,  //"E"
    0x71,  //"F"
    0x76,  //"H"
    0x38,  //"L"
    0x37,  //"n"
    0x3E,  //"u"
    0x73,  //"P"
    0x5C,  //"o"
    0x40,  //"-"
    0x00  //熄灭
	};

void DelayMS(uint x)
{
 	uchar t;
	while(x--)
	for(t=120;t>0;t--);
}

void main()
{
 	uchar i=0;
	P0=0x00;
	while(i<24)
	{
	 	P0=leddata[i];
		i++;
		DelayMS(400);
	}
}

二. 控制单个变化

就是分别控制 1234引脚了

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code leddata[]={
	0x3F,  //"0"
    0x06,  //"1"
    0x5B,  //"2"
    0x4F,  //"3"
    0x66,  //"4"
    0x6D,  //"5"
    0x7D,  //"6"
    0x07,  //"7"
    0x7F,  //"8"
    0x6F,  //"9"
    0x77,  //"A"
    0x7C,  //"B"
    0x39,  //"C"
    0x5E,  //"D"
    0x79,  //"E"
    0x71,  //"F"
    0x76,  //"H"
    0x38,  //"L"
    0x37,  //"n"
    0x3E,  //"u"
    0x73,  //"P"
    0x5C,  //"o"
    0x40,  //"-"
    0x00  //熄灭
	};

void DelayMS(uint x)
{
 	uchar t;
	while(x--)
	for(t=120;t>0;t--);
}

void main()
{
 	uchar i=0;
	P0=0x00;
	P2 =0xfe;
	while(i<24)
	{
	 	P0=leddata[i];
		i++;
		DelayMS(400);
	}
}

这样就可以做很多小显示了,比如2024;

三. 2024

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code leddata[]={
	0x3F,  //"0"
    0x06,  //"1"
    0x5B,  //"2"
    0x4F,  //"3"
    0x66,  //"4"
    0x6D,  //"5"
    0x7D,  //"6"
    0x07,  //"7"
    0x7F,  //"8"
    0x6F,  //"9"
    0x77,  //"A"
    0x7C,  //"B"
    0x39,  //"C"
    0x5E,  //"D"
    0x79,  //"E"
    0x71,  //"F"
    0x76,  //"H"
    0x38,  //"L"
    0x37,  //"n"
    0x3E,  //"u"
    0x73,  //"P"
    0x5C,  //"o"
    0x40,  //"-"
    0x00  //熄灭
	};

void DelayMS(uint x)
{
 	uchar t;
	while(x--)
	for(t=120;t>0;t--);
}
void delay(unsigned int t)
{
    unsigned int i, j;
    for (i = 0; i < t; i++) {
        for (j = 0; j < 1275; j++) {
            ; // 空循环,等待时间过去
        }
    }
}
void main()
{
 	uchar i=0;
	P0=0x00;
	while(1)
	{
		for (i = 0; i < 5; i++)
		{
			switch (i)
			{
			case 0:
				P0 = 0x5B;
				P2 =0xFE;  //1111 1110
				break;
			case 1:
				P0 = 0x3F;
				P2 =0xFD;//1111 1101  
				break;
			case 2:
				P0 =0x5B;
				P2 =0xFB;//1111 1011  
				break;
			case 3:
				P0 =0x66;
				P2 =0xF7;//1111 0111 
				break;
			
			default:
				break;			
			}
				
			delay(1);
			P0=0x00;
		}
			
	
	}
}

四. 总结

以下是对 51 单片机控制数码管显示多个数字的总结:

51 单片机可用于驱动数码管实现多个数字的显示。数码管由多个段组成以显示数字。

硬件上,需将单片机引脚与数码管引脚相连,可能还需驱动电路。编程时,通过循环和逻辑处理来逐个让数码管显示相应数字。可用于实现如计数器、时钟显示等功能。

其优势在于:

  • 简单直观,能清晰展示数字信息。
  • 成本较低,易于实现。

应用广泛:

  • 在各类电子设备中用于数据的实时显示。
  • 在教学和实验中帮助理解单片机控制原理。

总之,51 单片机结合数码管实现多个数字显示,是一种实用且具有多种应用场景的技术组合,为数字信息的展示和简单系统的构建提供了便捷途径。

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

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

相关文章

弘君资本炒股技巧:银行降准对股票的影响?

银行降准会带动股票市场变得相对活泼起来&#xff0c;假如降准前股价在跌落状态&#xff0c;降准能够起到一定缓冲股价跌落的效果。 什么是降准&#xff1a;降准指的是减少银行在央行的存款准备金率&#xff0c;也便是说银行需求存放于央行的资金份额下降&#xff0c;银行能够…

Tensorflow2.10 完成图像分割任务

前言 图像分割在医学成像、自动驾驶汽车和卫星成像等方面有很多应用&#xff0c;本质其实就是图像像素分类任务&#xff0c;也就是使用深度学习模型为输入图像的每个像素分配一个标签&#xff08;或类&#xff09;。 准备 本文的准备如下&#xff0c;使用 pip 安装如下配置&…

动态内存管理<C语言>

导言 在C语言学习阶段&#xff0c;指针、结构体和动态内存管理&#xff0c;是后期学习数据结构的最重要的三大知识模块&#xff0c;也是C语言比较难的知识模块&#xff0c;但是“天下无难事”&#xff0c;只要认真踏实的学习&#xff0c;也能解决&#xff0c;所以下文将介绍动态…

成都石室中学学子游汶鑫展现新时代好少年风采 拾金不昧获表彰

在繁华的都市中,每天都有无数的故事在上演,而其中的一些故事,却以其独特的温暖和正能量,深深打动着我们的心灵。近日,成都石室中学初中学校的一名学生游汶鑫同学,就用他的实际行动,诠释了新时代好少年的风采,展现了中华民族传统美德在当代青少年身上的生动体现。 成都石室中学初…

# Mac下反编译微信小程序获得源码

Mac下反编译微信小程序获得源码 所需工具 mac版微信 最好3.8以上版本node环境wxappUnpacker wxappUnpacker: 小程序反编译(支持分包) 小程序反编译(支持分包) https://gitee.com/ksd/wxappUnpacker 大体步骤 用微信搜索打开对应小程序&#xff0c;为的是把产物文件加载到…

郑州小区火灾防范需重视:可燃气体报警器检测的日常管理与维护

近日&#xff0c;郑州市一小区发生了一起严重的火灾事故&#xff0c;这起事故不仅给遇难者家属带来了巨大悲痛&#xff0c;也再次引发了社会对于小区火灾防范与应急处理的关注。 在对此次事故进行深入分析的同时&#xff0c;我们不得不思考可燃气体报警器在小区火灾检测中的重…

选课清单--数据结构课程设计(十字链表+哈希表实现)

题目如上(九院版&#xff0c;被老师要求选这个题目做&#xff0c;不知道还有没有别的学校是这种题目&#xff0c;都可以相互借鉴hh) 代码写的有冗余&#xff0c;结构体应该有三个&#xff0c;一个学生&#xff0c;一个课程&#xff0c;一个十字链表的结构体&#xff0c;如果公…

如何有效处理服务器后台密码暴露

服务器后台密码的暴露是信息安全领域中的严重事件&#xff0c;它可能引发未经授权的数据访问、恶意软件植入或系统功能滥用等一系列问题。本文将探讨几种处理服务器后台密码暴露的有效策略&#xff0c;包括紧急响应步骤、密码安全增强措施及长期预防机制&#xff0c;并提供实际…

【LeetCode 第 401 场周赛】K秒后第 N 个元素的值

文章目录 1. K秒后第 N 个元素的值&#x1f197; 1. K秒后第 N 个元素的值&#x1f197; 题目链接&#x1f517; &#x1f427;解题思路&#xff1a; 前缀和 小规律&#x1f34e; &#x1f34e; 从上图观察可知&#xff0c;规律一目了然&#xff0c;arr[i] arr[i] 对上一…

【机器学习】基于3D CNN通过CT图像分类预测肺炎

1. 引言 1.1. 研究背景 在医学诊断中&#xff0c;医生通过分析CT影像来预测疾病时&#xff0c;面临一些挑战和局限性&#xff1a; 图像信息的广度与复杂性&#xff1a; CT扫描生成的大量图像对医生来说既是信息的宝库也是处理上的负担。每组CT数据可能包含数百张切片&#xf…

代码随想录算法训练营第36期DAY57

DAY57 今天的好消息&#xff1a;能去华五。 1143最长公共子序列 Code: class Solution {public: int longestCommonSubsequence(string text1, string text2) { vector<vector<int>> dp(text1.size()1,vector<int>(text2.size()1,0)); f…

【PowerDesigner】CDM生成PDM

目录 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 &#x1f30d;1.2 PowerDesigner使用环境 &#x1f30a;2. CDM生成PDM ​​​​​​​&#x1f30a;3. 研究心得 &#x1f30a;1. PowerDesigner简介 &#x1f30d;1.1 常用模型文件 主要使用Pow…

家具板材ENF级甲醛释放量检测 板材甲醛含量测定

ENF级甲醛释放量检测 ENF级是指甲醛释放量非常低的板材&#xff0c;它代表了无醛添加的最高级别。根据最新的国家标准GB/T 39600-2021&#xff0c;ENF级板材的甲醛释放量不得超过0.025 mg/m。这个标准比欧洲的E1级&#xff08;甲醛释放量≤0.124 mg/m&#xff09;和美国的P2标准…

2024年,计算机相关专业还值得选择

随着2024年高考落幕&#xff0c;数百万高三学生又将面临人生中的重要抉择&#xff1a;选择大学专业。在这个关键节点&#xff0c;计算机相关专业是否仍是“万金油”的选择&#xff1f;在过去很长一段时间里&#xff0c;计算机科学与技术、人工智能、网络安全、软件工程等专业一…

移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)

1. 实现功能 类似扫一扫的功能&#xff0c;自动识别到画面中的二维码并进行识别&#xff0c;也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库&#xff0c;该库接收原始…

使用 3D 图形 API 在 C# 中将 PLY 转换为 OBJ

OBJ和PLY是一些广泛使用的 3D 文件格式&#xff0c;易于编写和读取。这篇博文演示了如何以编程方式在 C# 中将 PLY 转换为 OBJ。此外&#xff0c;它还介绍了一种用于 3D 文件格式转换的在线3D 转换器。是的&#xff0c;Aspose.3D for .NET为程序员和非程序员提供了此功能来执行…

MTK烧录USB驱动下载

下载链接 https://www.catalog.update.microsoft.com/Search.aspx?qMediaTek%20USB%20Port 驱动安装教程 https://miuiver.com/install-official-mediatek-driver/

交友系统定制版源码 相亲交友小程序源码全开源可二开 打造独特的社交交友系统

交友系统源码的实现涉及到多个方面&#xff0c;包括前端页面设计、后端逻辑处理、数据库设计以及用户交互等。以下是一个简单的交友系统源码实现的基本框架和关键步骤: 1.数据库设计:用户表:存储用户基本信息&#xff0c;如用户ID、用户名、密码、头像、性别、年龄、地理位置…

SpringCloud 前端-网关-微服务-微服务间实现信息共享传递

目录 1 网关获取用户校验信息并保存至请求头&#xff08;前端-网关&#xff09; 2 微服务获取网关中的用户校验信息&#xff08;网关-微服务&#xff09; 2.1 一般的做法是在公共的module中添加&#xff0c;此处示例为common 公共配置module中添加 2.2 定义拦截器 2.3 定义…

什么是微控制器中的欠压复位?如何防止误断电

微控制器的“掉电”是指电源电压部分暂时降低到可靠运行所需的水平以下。许多微控制器都有一个保护电路&#xff0c;可以检测电源电压何时低于此水平&#xff0c;并将设备置于复位状态&#xff0c;以确保电源恢复时正确启动。此操作称为“欠压复位”或 BOR。类似的功能称为低电…