51单片机——共阴数码管实验
数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示

如何实现点亮单个数字,用下图中的ABC来实现

P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C
//定义数码管位选管脚
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;for(i=0;i<8;i++){
//位选
switch(i){
case 0:
LSC=1,LSB=1,LSA=1; //7:LED8
break;
case 1:
LSC=1,LSB=1,LSA=0; //6:LED7
break;
case 2:
LSC=1,LSB=0,LSA=1; //5:LED6
break;
case 3:
LSC=1,LSB=0,LSA=0; //4:LED5
break;
case 4:
LSC=0,LSB=1,LSA=1; //3:LED4
break;
case 5:
LSC=0,LSB=1,LSA=0; //2:LED3
break;
case 6:
LSC=0,LSB=0,LSA=1; //1:LED2
break;
case 7:
LSC=0,LSB=0,LSA=0; //0:LED1
break;
}
}
每一位有8段,如下图所示

eg显示0:0 0 1 1 1 1 1 1
------------------------------------------------------
DP(小数点) G F E D C B A
//段码数据
u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0 1 2 3 4 5 6 7 8 9 A B C D E F
P0端控制数码管
1、静态数码管实验
#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
//数码管显示数字的数组(共阴数码管)
u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0-F
#define SMG_A_DP_PORT P0
//控制静态数码管显示数字0,即让P0端口输出数字0的段码0x3f(共阴)
void main(){
while(1){
//显示数字0
SMG_A_DP_PORT=gsmg_code[0];
}
}
2、动态数码管实验
#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
//段码数据
u8 gsmg_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
#define SMG_A_DP_PORT P0
//定义数码管位选管脚
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void delay(u16 time){
while(time--);
}
//动态数码管
void smg_display(){
u16 i=0;
for(i=0;i<8;i++){
//位选
switch(i){
case 0:
LSC=1,LSB=1,LSA=1; //7
break;
case 1:
LSC=1,LSB=1,LSA=0; //6
break;
case 2:
LSC=1,LSB=0,LSA=1; //5
break;
case 3:
LSC=1,LSB=0,LSA=0; //4
break;
case 4:
LSC=0,LSB=1,LSA=1; //3
break;
case 5:
LSC=0,LSB=1,LSA=0; //2
break;
case 6:
LSC=0,LSB=0,LSA=1; //1
break;
case 7:
LSC=0,LSB=0,LSA=0; //0
break;
}
SMG_A_DP_PORT=gsmg_code[i];
delay(5000);
SMG_A_DP_PORT=0x00; //消隐
}
}
void main(){
while(1){
smg_display();
}
}
相关文章:
51单片机——共阴数码管实验
数码管中有8位数字,从右往左分别为LED1、LED2、...、LED8,如下图所示 如何实现点亮单个数字,用下图中的ABC来实现 P2.2管脚控制A,P2.3管脚控制B,P2.4管脚控制C //定义数码管位选管脚 sbit LSAP2^2; sbit LSBP2^3; s…...
【开源社区openEuler实践】rust_shyper
title: 探索 Rust_Shyper:系统编程的新前沿 date: ‘2024-12-30’ category: blog tags: Rust_ShyperRust 语言系统编程性能与安全 sig: Virt archives: ‘2024-12’ author:way_back summary: Rust_Shyper 作为基于 Rust 语言的创新项目,在系统编程领域…...
LiteFlow 流程引擎引入Spring boot项目集成pg数据库
文章目录 官网地址简要项目引入maven 所需jar包配置 PostgreSQL 数据库表使用LiteFlow配置 yml 文件通过 代码方式使用 liteflow数据库sql 数据在流程中周转 官网地址 https://liteflow.cc/ 简要 如果你要对复杂业务逻辑进行新写或者重构,用LiteFlow最合适不过。…...
阻抗(Impedance)、容抗(Capacitive Reactance)、感抗(Inductive Reactance)
阻抗(Impedance)、容抗(Capacitive Reactance)、感抗(Inductive Reactance) 都是交流电路中描述电流和电压之间关系的参数,但它们的含义、单位和作用不同。下面是它们的定义和区别: …...
旷视科技Java面试题及参考答案
讲一下进程间的通讯方式(如管道、消息队列、共享内存、Socket 等),各有什么特点? 管道(Pipe) 管道是最早出现的进程间通信方式之一,主要用于具有亲缘关系(父子进程)的进程之间通信。 特点: 半双工通信,数据只能单向流动。例如,在一个简单的父子进程通信场景中,父进…...
reactor的Hooks.enableAutomaticContextPropagation();不生效解决方案
1. pom中需要先增加如下的内容 <dependency><groupId>io.micrometer</groupId><artifactId>context-propagation</artifactId><version>1.1.2</version> </dependency> 2. 注意,要看idea是否将context-propagati…...
DS复习提纲模版
数组的插入删除 int SeqList::list_insert(int i, int item) { //插入if (i < 1 || i > size 1 || size > maxsize) {return 0; // Invalid index or list is full}for (int j size-1; j > i-1; j--) { // Shift elements to the rightlist[j1] list[j];}li…...
蓝桥杯备赛:C++基础,顺序表和vector(STL)
目录 一.C基础 1.第一个C程序: 2.头文件: 3.cin和cout初识: 4.命名空间: 二.顺序表和vector(STL) 1.顺序表的基本操作: 2.封装静态顺序表: 3.动态顺序表--vector:…...
【LLM】概念解析 - Tensorflow/Transformer/PyTorch
背景 本文将从算法原理、适用范围、强项、知名大模型的应用、python 调用几个方面,对深度学习框架 TensorFlow、PyTorch 和基于深度学习的模型 Transformer 进行比较。主要作用是基础概念扫盲。 一、 算法原理对比 Transformer Transformer 是一种基于深度学习的…...
对一段已知行情用python中画出K线图~
1. 已知行情: 2024/09/05 ~ 2025/1/3 date open high low close 0 2024-09-05 2785.2635 2796.0186 2777.4710 2788.3141 1 2024-09-06 2791.7645 2804.0932 2765.6394 2765.8066 2 2024-09-09 2754.7237 2756.5560 2726.9667 2736.…...
Rocky Linux下安装meld
背景介绍: meld是一款Linux系统下的用于 文件夹和文件的比对软件,非常常用; 故障现象: 输入安装命令后,sudo yum install meld,报错。 12-31 22:12:17 ~]$ sudo yum install meld Last metadata expirat…...
DVWA靶场Insecure CAPTCHA(不安全验证)漏洞所有级别通关教程及源码审计
目录 Insecure CAPTCHA(不安全验证)low源码审计 medium源码审计 high源码审计 impossible源码审计 Insecure CAPTCHA(不安全验证) Insecure CAPTCHA(不安全验证)漏洞指的是在实现 CAPTCHA(完全自动化公共图灵测试区分计算机和人类࿰…...
JavaScript HTML DOM 实例
JavaScript HTML DOM 实例 JavaScript 的 HTML DOM(文档对象模型)允许您通过脚本来控制 HTML 页面。DOM 是 HTML 文档的编程接口,它将 Web 页面与编程语言连接起来,使得开发者可以改变页面中的内容、结构和样式。在这篇文章中,我们将通过一系列实例来探讨如何使用 JavaSc…...
软件架构和软件体系结构的关系
软件架构(Software Architecture)和软件体系结构(Software System Architecture)这两个术语在日常使用中经常被交替使用,但它们在严格意义上有所区别: 1. **软件架构**: - 软件架构主要关注软件…...
C++并发:在线程间共享数据
1 线程间共享数据的问题 1.1 条件竞争 条件竞争:在并发编程中:操作由两个或多个线程负责,它们争先让线程执行各自的操作,而结果取决于它们执行的相对次序,这样的情况就是条件竞争。 诱发恶性条件竞争的典型场景是&am…...
GaussDB逻辑解码技术原理深度解析
GaussDB逻辑解码技术原理深度解析 一、背景介绍 在数字化转型的大潮中,异构数据库之间的数据同步需求日益增长。异构数据库同步指的是将不同类型、不同结构的数据库之间的数据进行同步处理,以确保数据在不同数据库之间的一致性。华为云提供的DRS服务&a…...
JAVA构造方法练习
要求在Student类中,(task1)添加一个有name和ID两个参数的构造方法,对成员变量name和ID进行初始化,(task2)实例化一个Student对象,学生姓名:Yaoming,ID&#x…...
Pytorch 三小时极限入门教程
一、引言 在当今的人工智能领域,深度学习占据了举足轻重的地位。而 Pytorch 作为一款广受欢迎的深度学习框架,以其简洁、灵活的特性,吸引了大量开发者投身其中。无论是科研人员探索前沿的神经网络架构,还是工程师将深度学习技术落…...
Rockect基于Dledger的Broker主从同步原理
1.前言 此文章是在儒猿课程中的学习笔记,感兴趣的想看原来的课程可以去咨询儒猿课堂 这篇文章紧挨着上一篇博客来进行编写,有些不清楚的可以看下上一篇博客: RocketMQ原理简述(二)-CSDN博客 2.Broker的高可用 如果…...
面向对象分析与设计Python版 面向对象的核心特征
文章目录 一、封装二、继承三、多态四、聚合/组合五、接口/实现六、抽象 一、封装 封装 Encapsulation 封装是隐藏对象实现细节的过程内部状态通常不能被其他对象访问对象的数据只能通过接口去访问封装使得对象可以被看成一个“黑盒子”它保护对象的内部状态不被其他对象破坏…...
从二维平台到伺服电机:手把手教你用STM32+串口指令实现毫米级精确定位(丝杆导程计算详解)
STM32与伺服电机协同控制:构建毫米级精度的二维运动平台 在工业自动化与精密仪器领域,实现毫米级甚至更高精度的运动控制是许多项目的核心需求。想象一下,当你需要将一个小型光学元件精确移动到指定位置进行检测,或者让3D打印机的…...
如何用ModAssistant快速解决Beat Saber模组安装的3大痛点
如何用ModAssistant快速解决Beat Saber模组安装的3大痛点 【免费下载链接】ModAssistant Simple Beat Saber Mod Installer 项目地址: https://gitcode.com/gh_mirrors/mo/ModAssistant 你是否曾因Beat Saber模组安装的复杂依赖关系而头痛?是否遇到过版本冲突…...
深入对比:ESP32-C3的Bluedroid与NimBLE蓝牙协议栈,到底该怎么选?
ESP32-C3蓝牙协议栈深度选型指南:Bluedroid与NimBLE的实战对比 在物联网设备开发中,蓝牙协议栈的选择往往决定了产品的性能上限与能耗下限。当ESP32-C3遇上Bluedroid与NimBLE这两大协议栈,开发者该如何做出明智选择?本文将带您穿透…...
手把手教你用Simulink搭建Buck变换器:从元器件选型到波形分析
手把手教你用Simulink搭建Buck变换器:从元器件选型到波形分析 在电力电子领域,Buck变换器作为最基础的DC-DC降压拓扑,几乎出现在所有电源设计工程师的入门课程中。但很多初学者在理论学习后,面对实际仿真建模时仍会感到无从下手—…...
Qt6实战:用setGeometry和事件过滤器,实现一个可拖拽调整大小的自定义控件(附完整源码)
Qt6实战:打造可拖拽调整大小的Photoshop风格浮动面板 在图形界面开发中,能够自由拖拽和调整大小的浮动面板是专业级应用的标配功能。就像Photoshop的工具箱那样,用户可以随心所欲地摆放工作区组件。本文将带你用Qt6实现这样一个工业级交互控件…...
用MCNP模拟NaI探测器:从137铯源设置到能谱分析的全流程实战
用MCNP模拟NaI探测器:从137铯源设置到能谱分析的全流程实战 在核技术研究领域,精确模拟探测器响应是实验设计的关键环节。NaI(Tl)闪烁体探测器因其高探测效率和良好的能量分辨率,成为测量伽马射线的首选设备之一。本文将带你完成一个完整的MC…...
nSkinz皮肤修改器:如何在CS:GO中免费自定义武器外观的完整指南
nSkinz皮肤修改器:如何在CS:GO中免费自定义武器外观的完整指南 【免费下载链接】nSkinz Skin changer for CS:GO 项目地址: https://gitcode.com/gh_mirrors/ns/nSkinz 你是否想在CS:GO中体验各种炫酷的武器皮肤,但又不想花费大量金钱?…...
一次由“TCP粘包-拆包”引发的网络通信故障
一次由TCP粘包拆包引发的网络通信故障 某金融交易系统在夜间批量处理时突然出现数据错乱,经过排查发现是TCP粘包拆包问题导致。这个看似基础却常被忽视的网络现象,竟让日均处理百万级交易的核心系统瘫痪了6小时。本文将深入剖析这次故障,揭示…...
eqMac:macOS系统级音频均衡器与音量混合器的终极解决方案
eqMac:macOS系统级音频均衡器与音量混合器的终极解决方案 【免费下载链接】eqMac macOS System-wide Audio Equalizer & Volume Mixer 🎧 项目地址: https://gitcode.com/gh_mirrors/eq/eqMac 你是否曾为MacBook平淡的音质感到困扰࿱…...
NODE:表格数据的深度学习新架构
神经 oblivious 决策集成(NODE)——用于表格数据的先进深度学习算法——深度与浅层 神经 oblivious 决策集成(NODE)是一种针对表格数据设计的深度学习架构。它借鉴了决策树集成(如随机森林、梯度提升树)的优…...
