2020年2月6日 星期四

9999+sw上數/下數

int i;
int j;
int count=0;
int number;
int KeyData;
int numKeys=0;
const int debounceDelay=20;
unsigned long time=0;
int table7seg[10]={//寫的是共陽極0亮,而共陰極1亮
0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
const int seg[]={2,3,4,5,6,7,8};  //abcdefg
const int com[]={9,10,11,12};    //com0-com3
const int sw=13;
void setup()
{
  int KeyData;
int numKeys=0;
const int debounceDelay=20;
  for(i=0;i<7;i++)
    pinMode(seg[i],OUTPUT);
  for(i=0;i<4;i++)
  {
    pinMode(com[i],OUTPUT);
    digitalWrite(com[i],HIGH);
  }   
}
void loop()
{
   KeyData=digitalRead(sw);//讀取按鍵 
  if(KeyData==LOW)    //按下按鍵
  {
    delay(debounceDelay); //消除彈跳
    while(digitalRead(sw)==LOW); //按鍵尚未放開
    numKeys++;//記錄按鍵次數
  } 
    number=count;//顯示計數值
    for(i=0;i<=3;i++)//掃瞄四位顯示數com
    {
      for(j=0;j<8;j++)
      {
        if(bitRead(~table7seg[number%10],j))
          digitalWrite(seg[j],HIGH);//共陰極1亮
        else
          digitalWrite(seg[j],LOW);   
      }
      digitalWrite(com[i],HIGH); //共同參考端0打開
      delay(5);
      digitalWrite(com[i],LOW);//共同參考端0關閉     
      number=number/10;//下一位數
      if(millis()-time>=1000)
      {
          if(numKeys%2==0)
        {
          count++;
          if(count>9999)
            count=0;
        }
        else
        {
          count--;
          if(count<0)
            count=9999;
        }           
      }     
    }
}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...