当前位置:   article > 正文

基于arduino UNO开发板的四位数码管循环计数器_arduino串口四位数码管编程

arduino串口四位数码管编程

此为基础小白文

说明

四位数码管几个说明
每一位数码管由八个发光二极管组成,其供电模式分为共阳极共阴极两种,一般有12个引脚。
(1)共阳极:即四位供电脚LED1+、LED2+、LED3+、LED4+需要给高电平(HIGH);八个显示A、B、C、D、E、F、G、dp需要给低电平(LOW)。
(2)共阴极:即四位供电引脚LED1-、LED2-、LED3-、LED4-需要给低电平(LOW);八个显示引脚A、B、C、D、E、F、G、dp需要给高电平(HIGH)。
(3)位选和段选:位选指通过给LED1+、LED2+、LED3+、LED4+其中一个供电电平,即哪一位亮,全给就是全都亮。段选指要显示的数字多少,这里我们用数组实现段选(下面会讲)。
*本实验为共阳极管

arduino开发板引脚说明
实验的开发板用到的数字引脚2~13,其中2号引脚为中断引脚:

说明 引脚
中断触发 2、3
数字输入输出 2、3、4、5、6、7、8、9、10、11、12、13

程序说明
本实验实现数码管计数和循环计数,两个功能。
实验中可以重点学习的两个程序内容:数组中断机制
数组说明
一维数组 :粗浅解释指一组相同类型元素的集合。
其函数表达式:类型说明符 数组名 [常量表达式] = {同类型元素}
例如:  int value [5];
初始化后: int value [5] = {1, 2, 3, 4, 5};//读作一组名为value的整数型数组,每个元素分别赋值1、2、3、4、5
调用:
value [1] ;//此时名为value值是1

二维数组:指一维数组的叠加的集合。
其函数表达式:类型说明符 数组名 [常量表达式] [常量表达式] = {同类型元素}
例如:  int value [5]【4】;
初始化后:int value [5]【4】=
{
{0,0,0,1}
{0,0,1,0}
{0,0,1,1}
{0,1,0,0}
{0,1,0,1}
};//理解为从0行0零开始的,一共5行4列的一维数组
调用:
value [0]【0】;//第零行,第零列,则它的值为0
value [2]【3】;//第二行,第三列,它的值为1

//想更深入学习数组的,有B站大佬视频的BV号:BV1ka411M73P

程序模块化解析

一、全局变量定义

(1)引脚定义:
定义引脚3、4、5、6、7、8、9对应数码管的a、b、c、d、e、f、g引脚;
定义计数变量value;
定义中断接口为2,赋予了不可改变的字符型button:const(不可改变)byte(字符型)button(名称)=(赋予)2(接口)
(2)定义一个int(整数型)名为table的10行,7列的数组表格。
引脚从左到右数为a、b、c、d、e、f、g所以是7列,要显示0~9数字所以是10行,最后通过低电平点亮(0为低电平,1为高电平)。
例如数码管显示数字0,则g=1(灭),a=b=c=d=e=f=0(亮)。

dp  aaaaa    
  f       b
  f       b
   ggggg   
  e      c
  e      c
    ddddd
数码管八个发光二极管排布

int a = 3;//引脚定义
int b = 4;//引脚定义
int c = 5;//引脚定义
int d = 6;//引脚定义
int e = 7;//引脚定义
int f = 8;//引脚定义
int g = 9;//引脚定义
int value;//计数变量
const byte button = 2;//中断接口
int table[10] [7] =
{
    //数字显示数组 从左到右a b c d e f g
  {
    0, 0, 0, 0, 0, 0, 1,  },//数字0
  {
    1, 0, 0, 1, 1, 1, 1,  },//数字1
  {
    0, 0, 1, 0, 0, 1, 0,  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/946693
推荐阅读
相关标签
  

闽ICP备14008679号