麻烦各位同学帮忙看看我的代码, 效果是0-9按一下按键加一显示
#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 KEY 10
unsigned char KEY_NUM=0;
unsigned char i=0;
unsigned char table[10][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()
{
pinMode(a,OUTPUT);
pinMode(b,OUTPUT);
pinMode(c,OUTPUT);
pinMode(d,OUTPUT);
pinMode(e,OUTPUT);
pinMode(f,OUTPUT);
pinMode(g,OUTPUT);
pinMode(h,OUTPUT);
pinMode(KEY,INPUT_PULLUP);
}
void loop()
{
for(;i<10;)
{
digitalWrite(a,table[i][7]);
digitalWrite(b,table[i][6]);
digitalWrite(c,table[i][5]);
digitalWrite(d,table[i][4]);
digitalWrite(e,table[i][3]);
digitalWrite(f,table[i][2]);
digitalWrite(g,table[i][1]);
digitalWrite(h,table[i][0]);
delay(1000);
}
ScanKey();
if (KEY_NUM==1){i++;}
}
void ScanKey() //按键扫描程序
{
KEY_NUM = 0; //清空变量
if(digitalRead(KEY) == LOW) //有按键按下
{
delay(20); //延时去抖动
if(digitalRead(KEY) == LOW) //有按键按下
{
KEY_NUM = 1; //变量设置为1
while(digitalRead(KEY) == LOW); //等待按键松手
}
}
} |