2019年6月17日 星期一
4x4鍵盤
const byte colPins[4] = {9, 8, 7, 6}; // 設定「行」腳位
const byte rowPins[4] = {13, 12, 11, 10}; // 設定「列」腳位
const char keymap[4][4] = { // 設定按鍵的「行、列」代表值
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte i, j; // 暫存迴圈的索引數字
byte scanVal; // 暫存掃描到的按鍵值
void setup(){
Serial.begin(9600);
for (i = 0; i < = 3; i++) {
pinMode(rowPins[i], INPUT);
pinMode(colPins[i], OUTPUT);
digitalWrite(colPins[i], HIGH);
digitalWrite(rowPins[i], HIGH);
}
}
void loop() {
for (i = 0; i <= 3; i++) {
for (j = 0; j <= 3; j++) {
digitalWrite(colPins[j], LOW);
scanVal = digitalRead(rowPins[i]);
if (scanVal == LOW) { // 如果輸入值是「低電位」…
Serial.println(keymap[i][j]); // 輸出按鍵代表的字元
delay(200); // 掃描按鍵的間隔時間
digitalWrite(colPins[j], HIGH);
break; // 跳出迴圈
}
digitalWrite(colPins[j], HIGH);
}
}
}
練習
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int m,n;
int a[4][4]={
{0,1,2,3},
{4,5,6,7},
{8,9,10,11},
{12,13,14,15}
};
for(m=0;m<4;m++)
for(n=0;n<4;n++)
printf("\na[%d][%d]=%d",m,n,a[m][n]);
return 0;
}
訂閱:
張貼留言 (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卡,讀卡機就把...
-
/* 多重按鈕開關 */ //==宣告區================================ #include // 定義8051暫存器之標頭檔,P2-17~19 #include "myio.h" // 自己寫的I/O程式庫 sbit PB...
沒有留言:
張貼留言