/*
1.開機led閃三下
2.sw1右移
3.sw2左移
4.sw3內縮外放
5.漸近燈
*/
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};
int bootTable1[] = {0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,};
int pilliTable1[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00};
int pilliTable2[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
int pilliTable3[] = {0x081, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x00};
int pilliTable4[] = {0x080, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0x00};
int buttonPin[] = {10, 11, 12, 13};
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int delaytime = 200;
int i, j;
void setup()
{
for (i = 0; i < 8; i++)
{
pinMode(ledPin[i], OUTPUT);
}
for (j = 0; j < 4; j++)
{
pinMode(buttonPin[j], INPUT);
}
for (num5 = 0; num5 < 6; num5++)
{
out(bootTable1[num5]);
delay(delaytime);
}
}
void loop()
{
buttonState1 = digitalRead(buttonPin[0]);
buttonState2 = digitalRead(buttonPin[1]);
buttonState3 = digitalRead(buttonPin[2]);
buttonState4 = digitalRead(buttonPin[3]);
if (buttonState1 == LOW)
{
for (num1 = 0; num1 < 9; num1++)
{
out(pilliTable1[num1]);
delay(delaytime);
}
}
else if (buttonState2 == LOW)
{
for (num2 = 0; num2 < 9; num2++)
{
out(pilliTable2[num2]);
delay(delaytime);
}
}
else if (buttonState3 == LOW)
{
for (num3 = 0; num3 < 8; num3++)
{
out(pilliTable3[num3]);
delay(delaytime);
}
}
else if (buttonState4 == LOW)
{
for (num4 = 0; num4 < 9; num4++)
{
out(pilliTable4[num4]);
delay(delaytime);
}
}
}
void out(byte data)
{
for (j = 0; j < 7; j++)
{
if (data % 2 == 1)
digitalWrite(ledPin[j], HIGH);//
else
digitalWrite(ledPin[j], LOW);
data = data / 2;
}
}
法二:
int ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};
int bootTable1[] = {0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00,};
int pilliTable1[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00};
int pilliTable2[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00};
int pilliTable3[] = {0x081, 0x42, 0x24, 0x18, 0x24, 0x42, 0x81, 0x00};
int pilliTable4[] = {0x080, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0x00};
int buttonPin[] = {10, 11, 12, 13};
int buttonState[] = {0,0,0,0};
int num1 = 0;
int num2 = 0;
int num3 = 0;
int num4 = 0;
int num5 = 0;
int delaytime = 200;
int i, j;
void setup()
{
for (i = 0; i < 8; i++)
{
pinMode(ledPin[i], OUTPUT);
}
for (j = 0; j < 4; j++)
{
pinMode(buttonPin[j], INPUT);
}
for (num5 = 0; num5 < 6; num5++)
{
out(bootTable1[num5]);
delay(delaytime);
}
for (i = 0; i < 3; i++)
{
tone(14, 3000, 100); delay(delaytime);
}
}
void loop()
{
buttonState[0] = digitalRead(buttonPin[0]);
buttonState[1] = digitalRead(buttonPin[1]);
buttonState[2] = digitalRead(buttonPin[2]);
buttonState[3] = digitalRead(buttonPin[3]);
if (buttonState[0] == LOW)
{
for (num1 = 0; num1 < 9; num1++)
{
out(pilliTable1[num1]);
delay(delaytime);
}
}
else if (buttonState[1] == LOW)
{
for (num2 = 0; num2 < 9; num2++)
{
out(pilliTable2[num2]);
delay(delaytime);
}
}
else if (buttonState[2] == LOW)
{
for (num3 = 0; num3 < 8; num3++)
{
out(pilliTable3[num3]);
delay(delaytime);
}
}
else if (buttonState[3] == LOW)
{
for (num4 = 0; num4 < 9; num4++)
{
out(pilliTable4[num4]);
delay(delaytime);
}
}
}
void out(byte data)
{
for (j = 0; j < 7; j++)
{
if (data % 2 == 1)
digitalWrite(ledPin[j], HIGH);//
else
digitalWrite(ledPin[j], LOW);
data = data / 2;
}
}
2020年2月2日 星期日
訂閱:
張貼留言 (Atom)
algorithm
#include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv) { for(int j=2;j<=100;j++)//j...
-
本文旨在補充《 超圖解Arduino互動設計入門 》第18章「RFID無線識別裝置與問答遊戲製作」單元,書本採用的RFID讀卡機模組是採用9600bps, TTL序列通訊介面,RFID的通訊頻率為125KHz。這種模組的接線和程式都很簡單,每當感測到RFID卡,讀卡機就把...
-
3.Keil C 幫我們寫好 程式:#include <reg51.h> vs c語言 #include <stdio.h> //幫您宣告 P0=0x80 有相對的記憶體以十六進位表示,它定義定reg51.h,我們直接拿來用他的代碼即可 P1=0...
-
四位數七段顯示器 如果不想要自行接線路,那麼市面上有已經銜接好的二合一、四合一等各種位數的七段顯示器,以四合一的七段顯示器為例,由於每個七段顯示器會需要 8 個腳位控制其上的 LED,再加上各 4 個共陰或共...
沒有留言:
張貼留言