Arduino引脚的2~8号接数码管

刚开始写的时候,很土,没有定义数码管函数,直接在loop里写了一堆

[mw_shl_code=applescript,true]void setup() {

Serial.begin (9600) ;

for (int i = 2 ; i < 9 ; i++)

{ pinMode (i,OUTPUT);

digitalWrite ( i , 1);  //通过一个for循环把2到8脚定义成数字输出,并且电平与阳极电平一致

}

}

void loop() {

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 0 );

digitalWrite(5 , 1 );

digitalWrite(6 , 0 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 1 );

digitalWrite(4 , 1 );

digitalWrite(5 , 1 );

digitalWrite(6 , 1 );

digitalWrite(7 , 1 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 1 );

digitalWrite(3 , 0 );

digitalWrite(4 , 0 );

digitalWrite(5 , 0 );

digitalWrite(6 , 1 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 1 );

digitalWrite(5 , 0 );

digitalWrite(6 , 1 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 1 );

digitalWrite(4 , 1 );

digitalWrite(5 , 0 );

digitalWrite(6 , 0 );

digitalWrite(7 , 1 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 1 );

digitalWrite(5 , 0 );

digitalWrite(6 , 0 );

digitalWrite(7 , 0 );

digitalWrite(8 , 1 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 0 );

digitalWrite(5 , 0 );

digitalWrite(6 , 0 );

digitalWrite(7 , 0 );

digitalWrite(8 , 1 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 1 );

digitalWrite(4 , 1 );

digitalWrite(5 , 1 );

digitalWrite(6 , 1 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 0 );

digitalWrite(5 , 0 );

digitalWrite(6 , 0 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

digitalWrite(2 , 0 );

digitalWrite(3 , 0 );

digitalWrite(4 , 1 );

digitalWrite(5 , 0 );

digitalWrite(6 , 0 );

digitalWrite(7 , 0 );

digitalWrite(8 , 0 );

delay (101);

}[/mw_shl_code]

这么屎的程序肯定不能忍。

恁不觉得010101很像二进制数吗。

0:0001000 对应十进制数字8

1:0111110 对应十进制数字62

2:0010001 对应十进制数字17

3:0010100 对应十进制数字20

4:0100110 对应十进制数字38

5:0010001 对应十进制数字68

6:1000000 对应十进制数字6*4

7:0011110 对应十进制数字30

8:0000000 对应十进制数字0

9:0000100 对应十进制数字4

这样呢,我们先定义一个数组,数组也可以写到 定义数码管的函数里,这里我们的数组是个全局变量:

int Ten[10] = {8 , 62 , 17 , 20 , 38 , 68 , 64 , 30 , 0 , 4}; //定义从0到9的数码管编码

写一个函数,翻译10进制数和数码管引脚的对应关系:

[mw_shl_code=applescript,true]

void NumChange(byte num){  //将数码管的数字编码输出到2至8口

int s = 1 ;

for ( int i = 2 ; i < 10 ; i ++)

{

/* int ol = num&s;

if (ol>0)

ol = 1;

else

ol = 0 ;   //这一段可有可无,与运算之后,除非当前位是0,否则输出的是正整数,正整数对应digitalWrite是1

Serial.println(ol); */

Serial.print ( num&s ,) ; //在串口调试器打印与运算结果

digitalWrite (i , num&s );

s <<= 1;   //左移位操作,准备对下一“位”进行与操作

}

}[/mw_shl_code]

上边这段程序的核心思想是调取一个10进制数,把他二进制化,然后让这个二进制数的每一位跟一个二进制数1进行与操作,与出来的0或1就是对应引脚的电平。

这时,loop就可以写的比较简洁了

[mw_shl_code=applescript,true]viod loop()

{

for (i = 0 ; i < 10 ; i ++ )

{

NumChange(Ten);

delay (1000);

}

}

[/mw_shl_code]

截图201902221733579370.png (9.19 KB, 下载次数: 3)

引脚和管子的关系

2019-2-22 17:33 上传

共阳极管的代码_共阳极数码管显示数字程序的进化相关推荐

  1. 共阳极管的代码_共阳数码管0~9代码

    0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, /* PWM 控制 LED 灯渐亮渐灭程序 *; 利用定时器控制产生占空比可变的 ...

  2. c语言共阴极数码管数字6,共阴数码管 显示数字 C语言程序

    共阴数码管显示数字C语言程序#include void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; ...

  3. python数码管倒计时程序_树莓派Python编程用1位数码管显示数字倒计时

    用1位数码管显示数字倒计时 概述 上一篇 我们学习了使用 PWM 来控制 LED 的亮度,这次我们学习使用1位数码管显示个位数字倒计时. 通过本节课,我们能学习到: 1位数码管的显示原理 所需硬件 树 ...

  4. 数码管显示数字的段码表共阳_《显示器件应用分析精粹》之(3)数码管静态显示...

    如果你觉得驱动一个发光二极管实在没什么挑战,那就试试数码管(LED segment Display)吧,它是将多个LED发光单元制作成一定形状,并按特定位置排列封装在一起的显示器件.最常用的数码管是& ...

  5. 蓝桥杯单片机数码管动态显示_关于蓝桥杯训练小程序 中断控制数码管显示数字的左右移动...

    /******************************************************************************************** 利用数码管在 ...

  6. python绘制七段数码管引脚图_多个数码管显示

    1.余晖效应 流水灯如果在流速太快的基础上再加速,那么我们看到的则是一排灯都在亮着,这就叫人眼的余晖效应.同理,我们想让多个数码管同时亮,那么就要让三八译码器的IO0~IO5每个输出引脚轮流快速切换出 ...

  7. java页面分页显示代码_通用分页jsp页面显示

    注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...

  8. 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)

    1.日常聊一聊 今天为大家带来一篇对于单片机学习的小伙伴非常重量级的一篇文章<深度剖析单片机程序的运行(C语言版本)>,该文章会比较全面的为大家解析我们的用C语言编译出来的程序是如何在单片 ...

  9. python点名代码_基于python tkinter的点名小程序功能的实例代码

    基于python tkinter的点名小程序功能的实例代码,花名册,次数,窗口,未找到,初始化 基于python tkinter的点名小程序功能的实例代码 易采站长站,站长之家为您整理了基于pytho ...

  10. lombok 生成代码_使用Project Lombok减少Java应用程序中的样板代码

    lombok 生成代码 对Java编程语言最常提出的批评之一是它需要大量的样板代码 . 对于简单的类尤其如此,该类只需要存储一些值就可以. 您需要这些值的getter和setter方法,也许您还需要一 ...

最新文章

  1. Log4J xml配置
  2. jquery的checked以及disabled
  3. android textView设置粗体
  4. pip安装OpenCV
  5. 苹果修复老旧设备中的两个 iOS 0day
  6. 写了个散列算法... 用来获取字符串的哈希. 超高效.10亿以下几乎无碰撞.
  7. java向上向下取整与四舍五入
  8. poj 2352 Stars 树状数组
  9. python暂停和恢复_Scrapy如何暂停/恢复工作?
  10. 小爱同学服务器响应,小爱同学反应慢
  11. 基因组+转录组助力油菜种子油含量自然变异的遗传研究
  12. # GIT团队实战博客
  13. 基于STM32F4 的OLED屏显示噪点、花屏问题
  14. 使用云主机,我们可以做哪些事情
  15. 20230407 定时闹钟
  16. AVX指令集是什么?(Advanced Vector Extensions 高级向量扩展)
  17. 【VBS教程3】:VBS如何激活指定窗口
  18. j - 分组(动态规划)
  19. 平衡二叉树 treap
  20. An exceptionCaught event was fired,and it ched at the tail of the pipeline,it usually means the last

热门文章

  1. python新闻文本爬虫_python学习_新闻联播文字版爬虫(V 1.0版)
  2. iOS系统语音播报文字
  3. nginx配置https启动报错:Expecting: TRUSTED CERTIFICATE)
  4. 笔记本win10 64位 1050Ti显卡 安装Anaconda3.4.2.0 (python3.5版)+tensorflow gpu版
  5. (八)博客详情页面(内容排版typo.css)插件集成
  6. 360网址导航的搜索引擎默认怎么改为百度
  7. 独孤九剑第二式-Logistic回归模型
  8. 联想e470加装固态硬盘_联想e470能不能加固态硬盘?
  9. 我看过的世界历史纪录片和科技史、经济史、人类史笔记
  10. ID卡线圈和IC卡线圈的区别