数码管例程改进

2013-07-171.1万
AI 快速预览详细 收起
本文介绍了一个改进的Arduino数码管DEMO,解决了原始代码在变更IO口后无法正常工作的问题。通过重新定义引脚配置,确保数码管在任何情况下都能正确显示数字。这个改进的代码适用于需要灵活配置数码管引脚的项目,节省了调试时间。
Arduino 电子积木基础套装 源代码.rar
这个包中带的数码管源代码码不太好
缺点为若变更了IO口 若干个函数都会不能正常工作
故重新写了一个数码管的DEMO
  1. //设置控制各段的数字IO脚
  2. int a=6;
  3. int b=5;
  4. int c=3;
  5. int d=9;
  6. int e=10;
  7. int f=7;
  8. int g=8;
  9. int dp=4;
  10. void showdigit(char digit)
  11. {
  12.   digitalWrite(a,digit&0x80?LOW:HIGH);
  13.   digitalWrite(b,digit&0x40?LOW:HIGH);
  14.   digitalWrite(c,digit&0x20?LOW:HIGH);
  15.   digitalWrite(d,digit&0x10?LOW:HIGH);
  16.   digitalWrite(e,digit&0x08?LOW:HIGH);
  17.   digitalWrite(f,digit&0x04?LOW:HIGH);
  18.   digitalWrite(g,digit&0x02?LOW:HIGH);
  19.   digitalWrite(dp,digit&0x01?LOW:HIGH);
  20. }
  21. //translate digit to number
  22. unsigned char number[]= {0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE ,0xE0,0xFE,0xF6};
  23. void showNumber(int x)
  24. {
  25.   showdigit(number[x]);
  26. }
  27. void setup()
  28. {
  29.   int i;//定义变量
  30.   for(i=3;i<=10;i++)
  31.     pinMode(i,OUTPUT);//设置4~11引脚为输出模式
  32. }
  33. void loop()
  34. {  
  35.   while(1)
  36.   {
  37.     for(int i=0;i<10;i++)
  38.     {
  39.       showNumber(i);
  40.       delay(2000);
  41.     }
  42.   }
  43. }
复制代码

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -