极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15585|回复: 2

急求两位的(共阳)数码管倒计(倒计时从99到0)时(动态扫描的方法)

[复制链接]
发表于 2016-11-16 19:20:48 | 显示全部楼层 |阅读模式
int a=2;//定义数字接口2 连接a 段数码管
int b=3;// 定义数字接口3 连接b 段数码管
int c=4;// 定义数字接口4 连接c 段数码管
int d=5;// 定义数字接口5 连接d 段数码管
int e=6;// 定义数字接口6 连接e 段数码管
int f=7;// 定义数字接口7 连接f 段数码管
int g=8;// 定义数字接口8 连接g 段数码管
int dp=9;// 定义数字接口9 连接dp 段数码管
void digital_0(void) //显示数字0
{
unsigned char i;
digitalWrite(g,HIGH);
digitalWrite(dp,HIGH);
for(i=2;i<=7;i++)
digitalWrite(i,LOW);
}
void digital_1(void) //显示数字1
{
unsigned char i;
digitalWrite(b,LOW);//给数字接口3 引脚高电平,点亮b段
digitalWrite(c,LOW);//点亮c 段
for(i=5;i<=9;i++)//熄灭其余段
digitalWrite(i,HIGH);
digitalWrite(a,HIGH);
}
void digital_2(void) //显示数字2
{
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(g,LOW);
digitalWrite(c,HIGH);
digitalWrite(f,HIGH);
digitalWrite(dp,HIGH);
}
void digital_3(void) //显示数字3
{
  unsigned char i;
for( i=2;i<=5;i++)//熄灭其余段
digitalWrite(i,LOW);
digitalWrite(g,LOW);
digitalWrite(f,HIGH);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);
}
void digital_4(void) //显示数字4
{
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(a,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);
}
void digital_5(void) //显示数字5
{
digitalWrite(a, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(b,HIGH);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);

}
void digital_6(void) //显示数字6
{
unsigned char i;
for(i=4;i<=8;i++)
digitalWrite(i,LOW);
digitalWrite(b,HIGH);
digitalWrite(dp,HIGH);
}
void digital_7(void) //显示数字7
{
unsigned char i;
for(i=2;i<=4;i++)
digitalWrite(i,LOW);
for(i=5;i<=9;i++)
digitalWrite(i,HIGH);
}
void digital_8(void) //显示数字8
{
for( int i=2;i<=8;i++)
digitalWrite(i,LOW);
digitalWrite(dp,HIGH);
}
void digital_9(void) //显示数字9
{
unsigned char i;
for(i=2;i<=5;i++)
digitalWrite(i,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(e,HIGH);
digitalWrite(dp,HIGH);
}
void setup()
{
int i;//定义变量
for(i=2;i<=11;i++)
pinMode(i,OUTPUT);//设置2~11 引脚为输出模式
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
}
回复

使用道具 举报

发表于 2016-11-16 22:27:57 | 显示全部楼层
本帖最后由 275891381 于 2016-11-16 22:35 编辑
  1. int weixuan_yinjiao[2]={2,3};
  2. int smg_yinjiao[8]={4,5,6,7,8,9,10,11};
  3. byte yangji[11]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};//0-9和空
  4. byte yinji[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};//yinji0-9 和空

  5. void setup() {
  6.    for(int i=0;i<8;i++)
  7.       pinMode(smg_yinjiao[i], OUTPUT);
  8.    for(int i=0;i<2;i++)
  9.       pinMode(weixuan_yinjiao[i], OUTPUT);
  10.          for(int i=0;i<2;i++)
  11.       digitalWrite(weixuan_yinjiao[i], 1);
  12. }
  13. void smg(int num,int dian,int jixing)
  14. {
  15.     int temp;
  16.     if(jixing==1)
  17.      temp=yangji[num];
  18.      else
  19.      temp=yinji[num];
  20.     for (int s = 0; s < 8; s++)
  21.     {
  22.        digitalWrite(smg_yinjiao[s], temp&0x01);
  23.         temp=temp>>1;
  24.     }
  25.     if(dian==1)
  26.         digitalWrite(smg_yinjiao[7], 0);
  27. }
  28. void saomiao(int num,int time_jiange,int jixing)
  29. {
  30.       smg(num/10,0,jixing);
  31.       digitalWrite(weixuan_yinjiao[0],~jixing);
  32.       digitalWrite(weixuan_yinjiao[1],jixing);
  33.       delay(time_jiange);
  34.       smg(num%10,0,jixing);
  35.       digitalWrite(weixuan_yinjiao[0],jixing);
  36.       digitalWrite(weixuan_yinjiao[1],~jixing);
  37.       delay(time_jiange);
  38.   
  39. }
  40. long time_old0=millis();
  41. int k=0;
  42. void loop() {
  43.    
  44.      if(millis()-time_old0>1000)
  45.      {
  46.         k++;      
  47.         time_old0=millis();
  48.     }
  49.      saomiao(k,10,0);
  50. }

  51. //扫描函数里面的delay最好也改成millis()控制  不然系统就饿没空干别的了
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-21 15:50:58 | 显示全部楼层

谢谢啊!等着晚上试试,还请大神赐教
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 22:43 , Processed in 0.036749 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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