极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11309|回复: 4

数码管累加器

[复制链接]
发表于 2015-2-15 09:42:42 | 显示全部楼层 |阅读模式
本帖最后由 子夏清 于 2015-2-15 10:38 编辑

//按一下按键数码管加一


#include<Arduino.h>

#define a 2
#define b 3
#define c 4
#define d 5
#define e 6
#define f 7
#define g 8
#define h 9

#define com1 10
#define com2 11
#define com3 12
#define com4 13

#define an_jian 1

char anxia = 1;
char s = 0;       /*随便定义的变量*/


unsigned char tiaodeng[][8]=
{
        {0,        0,        1,        1,        1,        1,        1,        1},
        {0,        0,        0,        0,        0,        1,        1,        0},
        {0,        1,        0,        1,        1,        0,        1,        1},
        {0,        1,        0,        0,        1,        1,        1,        1},
        {0,        1,        1,        0,        0,        1,        1,        0},
        {0,        1,        1,        0,        1,        1,        0,        1},
        {0,        1,        1,        1,        1,        1,        0,        1},
        {0,        0,        0,        0,        0,        1,        1,        1},
        {0,        1,        1,        1,        1,        1,        1,        1},
        {0,        1,        1,        0,        1,        1,        1,        1}       
};

void setup()

{
  for(unsigned char z = 2; z <= 13; z++)
  {
    pinMode(z,OUTPUT);
  }
  pinMode(an_jian,INPUT);
  digitalWrite(an_jian,HIGH);
}

void loop()
{
  
  if(jian_ce() == 1)
  {
    s++;
    if(s > 9999)
      {
        s = 0;
      }
  }
  shumaguang(1,s/1000);
  delay(2);
  shumaguang(2,s%1000/100);
  delay(2);
  shumaguang(3,s%100/10);
  delay(2);
  shumaguang(4,s%10);
  delay(2);
}

unsigned char jian_ce()
{
  if(anxia == 1 && digitalRead(an_jian) == LOW)
    {
      anxia = 0;
      delay(1);
      if(digitalRead(an_jian) == LOW);
        {
          return 1;
        }
    }
  if(digitalRead(an_jian) == HIGH)
    {
      anxia = 1;
    }
  return 0;
}

unsigned char shumaguang(unsigned char com,unsigned num)
{

  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(h,LOW);
  
  switch(com)
  {
    case 1:
            digitalWrite(com1,LOW);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,HIGH);
            break;
    case 2:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,LOW);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,HIGH);
            break;
    case 3:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,LOW);
            digitalWrite(com4,HIGH);
            break;
    case 4:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,LOW);
            break;        
    default:break;
  }
  
   digitalWrite(a,tiaodeng[num][7]);
   digitalWrite(b,tiaodeng[num][6]);
   digitalWrite(c,tiaodeng[num][5]);
   digitalWrite(d,tiaodeng[num][4]);
   digitalWrite(e,tiaodeng[num][3]);
   digitalWrite(f,tiaodeng[num][2]);
   digitalWrite(g,tiaodeng[num][1]);
   digitalWrite(h,tiaodeng[num][0]);
           
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2015-2-15 10:21:06 | 显示全部楼层
//用数码管显示温度


#include<Arduino.h>

#define a 2
#define b 3
#define c 4
#define d 5
#define e 6
#define f 7
#define g 8
#define h 9

#define com1 10
#define com2 11
#define com3 12
#define com4 13

#define LM35 A0

int z,s;



unsigned char tiaodeng[][8]=
{
        {0,        0,        1,        1,        1,        1,        1,        1},
        {0,        0,        0,        0,        0,        1,        1,        0},
        {0,        1,        0,        1,        1,        0,        1,        1},
        {0,        1,        0,        0,        1,        1,        1,        1},
        {0,        1,        1,        0,        0,        1,        1,        0},
        {0,        1,        1,        0,        1,        1,        0,        1},
        {0,        1,        1,        1,        1,        1,        0,        1},
        {0,        0,        0,        0,        0,        1,        1,        1},
        {0,        1,        1,        1,        1,        1,        1,        1},
        {0,        1,        1,        0,        1,        1,        1,        1}       
};

void setup()

{
  for(unsigned char z = 2; z <= 13; z++)
  {
    pinMode(z,OUTPUT);
  }
   Serial.begin(9600);
}

void loop()
{
  
  z = analogRead(LM35);                        //读取AD值
  s = z * 0.48876;
  Serial.print("LM35 = ");               
  Serial.println(s);
  shumaguang(1,s/10);
  delay(2);
  shumaguang(2,s%10);
  delay(2);
}



unsigned char shumaguang(unsigned char com, unsigned num)
{

  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(h,LOW);
  

  switch(com)
  {
    case 1:
            digitalWrite(com1,LOW);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,HIGH);
            break;
    case 2:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,LOW);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,HIGH);
            break;
    case 3:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,LOW);
            digitalWrite(com4,HIGH);
            break;
    case 4:
            digitalWrite(com1,HIGH);
            digitalWrite(com2,HIGH);
            digitalWrite(com3,HIGH);
            digitalWrite(com4,LOW);
            
  }
  
   digitalWrite(a,tiaodeng[num][7]);
   digitalWrite(b,tiaodeng[num][6]);
   digitalWrite(c,tiaodeng[num][5]);
   digitalWrite(d,tiaodeng[num][4]);
   digitalWrite(e,tiaodeng[num][3]);
   digitalWrite(f,tiaodeng[num][2]);
   digitalWrite(g,tiaodeng[num][1]);
   digitalWrite(h,tiaodeng[num][0]);
           
}
回复 支持 反对

使用道具 举报

发表于 2015-2-15 11:15:35 | 显示全部楼层
不错,挺好的啊
回复 支持 反对

使用道具 举报

发表于 2015-2-16 04:42:40 | 显示全部楼层
正在学习Arduino……
回复 支持 反对

使用道具 举报

发表于 2016-4-15 14:41:46 | 显示全部楼层
正是我找的,謝謝
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 03:50 , Processed in 0.048777 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表