极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7701|回复: 0

大家能帮我看看这段程序吗,关于矩阵键盘,附上代码,和仿真图

[复制链接]
发表于 2017-1-23 17:53:23 | 显示全部楼层 |阅读模式
#include<Keypad.h>
const byte ROWS = 3; // Four rows
const byte COLS = 3; // Four columns
int a=7;
int b=6;
int c=5;
int d=11;
int e=10;
int f=8;
int g=9;
void digital_0(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=5;j<=8;j++)
&nbsp;&nbsp;digitalWrite(j,LOW);
&nbsp;&nbsp;digitalWrite(d,LOW);
&nbsp;&nbsp;digitalWrite(e,LOW);
&nbsp;&nbsp;digitalWrite(g,HIGH);
}
void digital_1(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=7;j<=11;j++)
&nbsp;&nbsp;digitalWrite(j,HIGH);
&nbsp;&nbsp;digitalWrite(b,LOW);
&nbsp;&nbsp;digitalWrite(c,LOW);
}
void digital_2(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=9;j<=11;j++)
&nbsp;&nbsp;digitalWrite(j,LOW);
&nbsp;&nbsp;digitalWrite(a,LOW);
&nbsp;&nbsp;digitalWrite(b,LOW);
&nbsp;&nbsp;digitalWrite(c,HIGH);
&nbsp;&nbsp;digitalWrite(f,HIGH);
}
void digital_3(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=5;j<=7;j++)
&nbsp;&nbsp;digitalWrite(j,LOW);
&nbsp;&nbsp;digitalWrite(d,LOW);
&nbsp;&nbsp;digitalWrite(g,LOW);
&nbsp;&nbsp;digitalWrite(e,HIGH);
&nbsp;&nbsp;digitalWrite(f,HIGH);
}
void digital_4(void)
{
&nbsp;&nbsp;digitalWrite(b,LOW);
&nbsp;&nbsp;digitalWrite(c,LOW);
&nbsp;&nbsp;digitalWrite(f,LOW);
&nbsp;&nbsp;digitalWrite(g,LOW);
&nbsp;&nbsp;digitalWrite(a,HIGH);
&nbsp;&nbsp;digitalWrite(d,HIGH);
&nbsp;&nbsp;digitalWrite(e,HIGH);
}
void digital_5(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=7;j<=9;j++)
&nbsp;&nbsp;digitalWrite(j,LOW);
&nbsp;&nbsp;digitalWrite(c,LOW);
&nbsp;&nbsp;digitalWrite(d,LOW);
&nbsp;&nbsp;digitalWrite(b,HIGH);
&nbsp;&nbsp;digitalWrite(e,HIGH);
}
void digital_6(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=7;j<=11;j++)
&nbsp;&nbsp;digitalWrite(j,LOW);
&nbsp;&nbsp;digitalWrite(c,LOW);
&nbsp;&nbsp;digitalWrite(b,HIGH);
}
void digital_7(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=8;j<=11;j++)
&nbsp;&nbsp;digitalWrite(j,HIGH);
&nbsp;&nbsp;digitalWrite(a,LOW);
&nbsp;&nbsp;digitalWrite(b,LOW);
&nbsp;&nbsp;digitalWrite(c,LOW);
}
void digital_8(void)
{
&nbsp;&nbsp;unsigned char j;
&nbsp;&nbsp;for(j=5;j<=11;j++)
&nbsp;&nbsp;digitalWrite(j,0);
}
void setup()
{
unsigned char i;
&nbsp;&nbsp;for(i=5;i<=11;i++)
&nbsp;&nbsp;pinMode(i,OUTPUT);
}
//Define the keymap
char keys[ROWS][COLS] = {
{'0','1','2'},
{'3','4','5'},
{'6','7','8'}
};
// Connect keypad ROW0, ROW1 and ROW2 to these Arduino pins.
byte rowPins[ROWS] = {12,13,14,};
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = {15,16,17,}; //connect to column pinouts
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
&nbsp; &nbsp;Serial.begin(9600);
}
void loop(){
&nbsp; &nbsp;char key = keypad.getKey();
&nbsp; &nbsp;if (key != NO_KEY){
&nbsp; &nbsp;Serial.println(key);
switch(key){
case0:
digital_0();
break;
case1:
digital_1();
break;
case2:
digital_2();
break;
case3:
digital_3();
break;
case4:
digital_4();
break;
case5:
digital_5();
break;
case6:
digital_6();
break;
case7:
digital_7();
break;
case8:
digital_8();
break;
}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 05:57 , Processed in 0.046386 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表