使用C计算数码管段码

news2024/9/27 19:22:52

前言

        平时使用数码管时为了避免使用跳线往往不会按照顺序焊接数码管的段选引脚,为了焊接的方便段选引脚可能会焊接的乱七八糟的,此时标准的段码表就用不了了,需要重新去计算。因为在焊接时为了考虑布线可能每次焊的顺序都会有不同,那么每次都要去计算就太麻烦了,所以就想到用C写一个程序可以根据输入段码对应的引脚顺序后自动输出与之对应的段码表。

C代码

  1 #include<stdio.h>
  2 /*   
  3        a
  4      ______
  5      |    | 
  6    f |    | b
  7      | g  |
  8      ------
  9      |    |
 10    e |    | c
 11      |    |
 12      ------   . 
 13        d        h
 14 */
 15 int Data_[8]={0};
 16 
 17 unsigned char Encoding(char *dat) // abc defg h (a = 97 )
 18 {
 19   unsigned char j=0;
 20   while(*dat)
 21   {
 22     j |= (0x01<<(Data_[*dat-97]-1));
 23     //printf("%d\n",Data_[*dat-97]-1);
 24     dat++;
 25   }
 26   return j;
 27 }
 28 
 29 void main(void)
 30 {
 31   unsigned char Cathode[10]={0},i=0,j=0;
 32   printf("请输入数码管a-g字段的对应的位数:");
 33   for(i=0;i<8;i++)
 34   {
 35     scanf("%d",&Data_[i]);
 36   }
 37 
 38   Cathode[0] = Encoding("abcdef"); // ' 0 ' 
 39   Cathode[1] = Encoding("bc");     // ' 1 '
 40   Cathode[2] = Encoding("abged");  // ' 2 '
 41   Cathode[3] = Encoding("abcdg");  // ' 3 '
 42   Cathode[4] = Encoding("fgbc");   // ' 4 ' 
 43   Cathode[5] = Encoding("afgcd");  // ' 5 '
 44   Cathode[6] = Encoding("acdefg"); // ' 6 '
 45   Cathode[7] = Encoding("abc");    // ' 7 '
 46   Cathode[8] = Encoding("abcdefg");// ' 8 '
 47   Cathode[9] = Encoding("abcdfg"); // ' 9 '
 48 
 49 
 50   printf("共阴极数码管0~9的段码:");
 51   for(i=0;i<10;i++)
 52   printf("0x%02x,",Cathode[i]);
 53   printf("\n\r");
 54 
 55 
 56   printf("共阳极数码管0~9的段码:");
 57   for(i=0;i<10;i++)
 58   {
 59     j = ~Cathode[i];
 60     printf("0x%02x,",j);
 61   }
 62   printf("\n\r");
 63 
 64 }

运行结果:

测试:

     输入正常顺序的段码引脚检查输出的断码表发现都是正确的。

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

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

相关文章

使用vite+react+ts+Ant Design开发后台管理项目(三)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

使用AI进行需求分析的案例研究

生成式 AI 的潜在应用场景似乎无穷无尽。虽然这令人兴奋&#xff0c;但也可能让人不知所措。因此&#xff0c;团队在使用这项技术时需要有明确的目标&#xff1a;关键是要明确生成式 AI 在团队工作中能产生哪些实质性影响。 在软件工程中&#xff0c;一个引人注目的应用场景是…

QMT如何获取股票基本信息?如上市时间、退市时间、代码、名称、是否是ST等。QMT量化软件支持!

获取股票概况 包含股票的上市时间、退市时间、代码、名称、是否是ST等。 #获取合约基础信息数据 该信息每交易日9点更新 #内置Python 提示 旧版本客户端中&#xff0c;函数名为ContextInfo.get_instrumentdetail 调用方法 内置python ContextInfo.get_instrument_detai…

全连接神经网络

这里写目录标题 全连接神经网络vs前馈神经网络基于全连接神经网络的手写数字识别使用Pytorch实现纯Python实现 全连接神经网络的局限 端到端学习 深度学习有时也称为端到端机器学习&#xff08;end-to-end machine learning&#xff09;。这里所说的端到端是指从一端到另一端的…

西门子因为TC在与PTC及达索的混战中占据优势,西门子与SAP的合作价值几何?(2)

今天这篇文章是通过腾讯会议先录了一个视频然后转录的&#xff0c;看看效果怎么样。 主要是我昨天写了一篇公众号的文章&#xff0c;这篇文章是转自国外的一个记者。写的是他对这个工业软件三巨头西门子、达索和PTC之间的竞争做的一个访谈性质的文章&#xff0c;谈了他的一些看…

1.1.5 计算机网络的性能指标(上)

信道&#xff1a; 表示向某一方向传送信息的通道&#xff08;信道&#xff01;通信线路&#xff09;一条通信线路在逻辑上往往对应一条发送信道和一条接收信道。 速率&#xff1a; 指连接到网络上的节点在信道上传输数据的速率。也称数据率或比特率、数据传输速率。 速率单…

python常见的魔术方法

什么是魔术方法 Python类的内置方法&#xff0c;各自有各自的特殊功能&#xff0c;被称之为魔术方法 常见的魔术方法有以下&#xff1a; __init__:构造方法 __str__:字符串方法 __lt__:小于、大于符号比较 __le__:小于等于、大于等于符合比较 __eq__:等于符合比较__init__ c…

【论文速看】DL最新进展20240925-医学图像分割、目标跟踪、图像超分

目录 【医学图像分割】【目标跟踪】【图像超分】 【医学图像分割】 [2024] UU-Mamba: Uncertainty-aware U-Mamba for Cardiovascular Segmentation 论文链接&#xff1a;https://arxiv.org/pdf/2409.14305 代码链接&#xff1a;https://github.com/tiffany9056/UU-Mamba 在深…

【NLP】循环神经网络--RNN学习.day3

一.初步认识RNN 循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一种用于处理序列数据的深度学习模型。与传统的静态神经网络相比&#xff0c;RNN 可以有效处理输入数据的时间序列特性。这使得 RNN 在处理自然语言处理&#xff08;NLP&#xff09;、时间…

【Python报错已解决】TypeError: forward() got an unexpected keyword argument ‘labels‘

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

使用API有效率地管理Dynadot域名,注册域名服务器(NS)信息

前言 Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮箱&…

【9.模块化开发和代码重用之——头文件、动静态库】

目录 前言软件工程的基本原则程序的模块化开发和代码重用技术开发自己的头文件定义实现自己的头文件编写实现文件&#xff08;源文件&#xff09;编译代码链接目标文件到可执行文件 实现类似标准库效果的几种方法实际使用的开发方法头文件库 尝试自动链接静态库&#xff08;好像…

替换jar包中class文件

虽然.jar文件是一种Java归档文件&#xff0c;可以使用压缩软件打开&#xff0c;但是并不能通过压缩软件来修改其内容&#xff0c;只能通过jar命令来更新文件。 一、背景 在使用血氧仪SDK时出现了问题&#xff0c;经过分析是在申请权限时版本不兼容导致的闪退异常&#xff0c;…

大数据新视界 --大数据大厂之 Kylin 多维分析引擎实战:构建数据立方体

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

全国信息学奥赛泄题事件:一场对公平与公正的严峻考验

在科技与教育日益融合的今天&#xff0c;信息学奥林匹克竞赛作为选拔计算机科学领域未来人才的重要平台&#xff0c;始终承载着培养青少年逻辑思维、编程能力和创新潜力的重任。然而&#xff0c;2024年9月发生的一起全国CSP-J/S认证考试泄题事件&#xff0c;却如同一枚重磅炸弹…

SpringBoot教程(三十) | SpringBoot集成Shiro权限框架

SpringBoot教程&#xff08;三十&#xff09; | SpringBoot集成Shiro权限框架 一、 什么是Shiro二、Shiro 组件核心组件其他组件 三、流程说明shiro的运行流程 四、SpringBoot 集成 Shiro &#xff08;shiro-spring-boot-web-starter方式&#xff09;1. 添加 Shiro 相关 maven2…

领导让部署一个系统服务,我该怎么弄?

文章目录 Dockerdocker基础通过Dockerfile构建镜像打包镜像&#xff0c;离线使用docker修改代理内容 Nginxubuntu安装nginxnginx基本操作 问题Sqlalchemy可以反射一些表&#xff0c;另外一些反射为None查看服务器的架构和版本&#xff0c;查看本机外网IPPG数据库创建角色创建库…

CentOS7 离线部署docker和docker-compose环境

一、Docker 离线安装 1. 下载docker tar.gz包 下载地址&#xff1a; Index of linux/static/stable/x86_64/ 本文选择版本&#xff1a;23.0.6 2.创建docker.service文件 vi docker.service文件内容如下&#xff1a; [Unit] DescriptionDocker Application Container Engi…

SpringBoot中XXL-JOB实现灵活控制的分片处理方案

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

9.25盒马鲜生一面

1.自我介绍 2.css两种盒子模型 ​3.rem和em 4.px概念 5.transition和animation的区别 6.移动端适配方案 7.vh、vw、% 8.js基本数据类型 9.call、apply、bind的区别 10.js实现继承的方法 11.get和post的区别 12.web安全&#xff08;XSS&#xff0c;CSRF&#xff09; …