“第二十课--Microduino 两位数码管倒计时显示/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
程序
 
(未显示2个用户的2个中间版本)
第7行: 第7行:
  
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
 
*其他硬件设备
 
*其他硬件设备
 
**面包板跳线  一盒   
 
**面包板跳线  一盒   
第14行: 第14行:
 
**两位数码管      1个
 
**两位数码管      1个
 
**USB数据连接线  一根
 
**USB数据连接线  一根
 
 
 
  
 
==原理图==
 
==原理图==
第48行: 第45行:
  
 
==程序==
 
==程序==
<source lang="cpp">
 
 
 
byte digit0 = 10; //十位数Microduino pin
 
byte digit1 = 11; //个位数Microduino pin
 
byte dotPin = 2; //数码管小数点对应的pin
 
 
byte sevenSegmentPins[] = {2,3,4,5,6,7,8}; //A,B,C,D,E,F,G  对应的Microduino pin
 
byte sevenSegment[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 },  // = 2
 
  { 0,0,0,0,1,1,0 },  // = 3
 
  { 1,0,0,1,1,0,0 },  // = 4
 
  { 0,1,0,0,1,0,0 },  // = 5
 
  { 0,1,0,0,0,0,0 },  // = 6
 
  { 0,0,0,1,1,1,1 },  // = 7
 
  { 0,0,0,0,0,0,0 },  // = 8
 
  { 0,0,0,1,1,0,0 }  // = 9
 
};
 
 
void setup()
 
{
 
//初始化全部亮起
 
  pinMode(dotPin, OUTPUT); //pin 9
 
  pinMode(digit0, OUTPUT); //pin 10
 
  pinMode(digit1, OUTPUT); //pin 11
 
 
  for(int i=0; i<7; i++)
 
  {
 
    pinMode(sevenSegmentPins[i], OUTPUT);
 
  }
 
  digitalWrite(dotPin, HIGH);
 
  digitalWrite(digit0, HIGH);
 
  digitalWrite(digit1, HIGH);
 
}
 
 
//显示数字
 
void segmentWrite(byte digit)
 
{
 
  byte pin = 2;
 
  for (byte i=0; i<7; ++i)
 
  {
 
    digitalWrite(pin, sevenSegment[digit][i]);
 
      ++pin;
 
  }
 
}
 
 
void loop()
 
{
 
 
  for(int i=9;i>=0;i--) {//倒计时十位数
 
    for(int j=9;j>=0;j--) {//倒计时个位数
 
     
 
      unsigned long startTime = millis();
 
      for (unsigned long elapsed=0; elapsed < 600; elapsed = millis() - startTime) {//持续显示600ms
 
          digitalWrite(digit0, LOW);  //熄灭十位数码管
 
          segmentWrite(j);            //显示个位
 
          delay(10);                  //10ms 延迟
 
          digitalWrite(digit0, HIGH);  //点亮十位数码管
 
          digitalWrite(digit1, LOW);  //熄灭个位数码管
 
          segmentWrite(i);            //显示十位
 
          delay(10);                  //10ms 延迟
 
          digitalWrite(digit1, HIGH);  //点亮个位数码管
 
      }
 
     
 
    }
 
  }
 
 
}
 
  
</source>
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/Microduino2digitCountdown Microduino2digitCountdown]
  
 
==调试==
 
==调试==

2014年10月29日 (三) 04:41的最新版本

Language English

目的

本教程将教大家在上一课静态显示的基础上动态倒计时显示数字,主要是代码上的改动。

设备

原理图

第二十课-Microduino 2位数码管倒计时原理图.jpg

引脚表

Microduino引脚 数码管引脚
D2 10(A)
D3 9(B)
D4 1(C)
D5 4(D)
D6 3(E)
D7 6(F)
D8 5(G)
9 2(DP)
D10 8(LED1)
D11 7(LED2)

程序

Microduino2digitCountdown

调试

步骤一:确定自己的数码管引脚

步骤二:把代码复制到IDE中,编译

步骤三:电路连接,我们用两位共阳数码管电路图照片如下:

第二十课-Microduino 2位数码管倒计时连接图.jpg

步骤四:运行代码

步骤五:看数码管显示


结果

数码管会从99倒计时到0,并循环下去。

视频

http://v.youku.com/v_show/id_XNjc4NjcxMzY0.html