|
@ -7,12 +7,15 @@ U8 bsp_key_init(void) |
|
|
D_stdIO_P1(BITN7); |
|
|
D_stdIO_P1(BITN7); |
|
|
D_stdIO_P0(BITN6); |
|
|
D_stdIO_P0(BITN6); |
|
|
D_stdIO_P4(BITN3); |
|
|
D_stdIO_P4(BITN3); |
|
|
D_HighR_P1(BITN0); |
|
|
|
|
|
D_HighR_P0(BITN7); |
|
|
D_stdIO_P1(BITN0); |
|
|
D_HighR_P1(BITN3); |
|
|
D_stdIO_P0(BITN7); |
|
|
D_HighR_P2(BITN0); |
|
|
D_stdIO_P1(BITN3); |
|
|
|
|
|
D_stdIO_P2(BITN0); |
|
|
|
|
|
|
|
|
|
|
|
//初始化为高电平
|
|
|
KR1 = KR2 = KR3 = KR4 = 1; |
|
|
KR1 = KR2 = KR3 = KR4 = 1; |
|
|
|
|
|
//初始化为高电平
|
|
|
KC1 = KC2 = KC3 = KC4 = 1; |
|
|
KC1 = KC2 = KC3 = KC4 = 1; |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
@ -20,19 +23,19 @@ U8 bsp_key_init(void) |
|
|
|
|
|
|
|
|
void scan_row(U8 r) |
|
|
void scan_row(U8 r) |
|
|
{ |
|
|
{ |
|
|
KR1 = 0; |
|
|
KR1 = 1; |
|
|
KR2 = 0; |
|
|
KR2 = 1; |
|
|
KR3 = 0; |
|
|
KR3 = 1; |
|
|
KR4 = 0; |
|
|
KR4 = 1; |
|
|
switch(r){ |
|
|
switch(r){ |
|
|
case 1: |
|
|
case 1: |
|
|
KR1 = 1;break; |
|
|
KR1 = 0;break; |
|
|
case 2: |
|
|
case 2: |
|
|
KR2 = 1;break; |
|
|
KR2 = 0;break; |
|
|
case 3: |
|
|
case 3: |
|
|
KR3 = 1;break; |
|
|
KR3 = 0;break; |
|
|
case 4: |
|
|
case 4: |
|
|
KR4 = 1;break; |
|
|
KR4 = 0;break; |
|
|
default: |
|
|
default: |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
@ -42,45 +45,45 @@ U8 scan_col(U8 c) |
|
|
{ |
|
|
{ |
|
|
if(c == 1) |
|
|
if(c == 1) |
|
|
{ |
|
|
{ |
|
|
if(KC1 == 1) |
|
|
if(KC1 == 0) |
|
|
{ |
|
|
{ |
|
|
delayInMs(10); |
|
|
delayInMs(10); |
|
|
if(KC1 == 1) |
|
|
if(KC1 == 0) |
|
|
{ |
|
|
{ |
|
|
while(KC1 == 1); |
|
|
while(KC1 == 0); |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
else if(c == 2){ |
|
|
else if(c == 2){ |
|
|
if(KC2 == 1) |
|
|
if(KC2 == 0) |
|
|
{ |
|
|
{ |
|
|
delayInMs(10); |
|
|
delayInMs(10); |
|
|
if(KC2 == 1) |
|
|
if(KC2 == 0) |
|
|
{ |
|
|
{ |
|
|
while(KC2 == 1); |
|
|
while(KC2 == 0); |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
else if(c == 3){ |
|
|
else if(c == 3){ |
|
|
if(KC3 == 1) |
|
|
if(KC3 == 0) |
|
|
{ |
|
|
{ |
|
|
delayInMs(10); |
|
|
delayInMs(10); |
|
|
if(KC3 == 1) |
|
|
if(KC3 == 0) |
|
|
{ |
|
|
{ |
|
|
while(KC3 == 1); |
|
|
while(KC3 == 0); |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
else if(c == 4){ |
|
|
else if(c == 4){ |
|
|
if(KC4 == 1) |
|
|
if(KC4 == 0) |
|
|
{ |
|
|
{ |
|
|
delayInMs(10); |
|
|
delayInMs(10); |
|
|
if(KC4 == 1) |
|
|
if(KC4 == 0) |
|
|
{ |
|
|
{ |
|
|
while(KC4 == 1); |
|
|
while(KC4 == 0); |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -106,44 +109,44 @@ U8 bsp_key_scan(void) |
|
|
return 3; |
|
|
return 3; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// //扫描第2行
|
|
|
//扫描第2行
|
|
|
// scan_row(2);
|
|
|
scan_row(2); |
|
|
// if(scan_col(1) > 0){
|
|
|
if(scan_col(1) > 0){ |
|
|
// key = 4;
|
|
|
key = 4; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(2) > 0){
|
|
|
if(scan_col(2) > 0){ |
|
|
// key = 5;
|
|
|
key = 5; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(3) > 0){
|
|
|
if(scan_col(3) > 0){ |
|
|
// key = 6;
|
|
|
key = 6; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(4) > 0){
|
|
|
if(scan_col(4) > 0){ |
|
|
// key = 7;
|
|
|
key = 7; |
|
|
// }
|
|
|
} |
|
|
|
|
|
|
|
|
// //扫描第3行
|
|
|
//扫描第3行
|
|
|
// scan_row(3);
|
|
|
scan_row(3); |
|
|
// if(scan_col(1) > 0){
|
|
|
if(scan_col(1) > 0){ |
|
|
// key = 8;
|
|
|
key = 8; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(2) > 0){
|
|
|
if(scan_col(2) > 0){ |
|
|
// key = 9;
|
|
|
key = 9; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(3) > 0){
|
|
|
if(scan_col(3) > 0){ |
|
|
// key = 10;
|
|
|
key = 10; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(4) > 0){
|
|
|
if(scan_col(4) > 0){ |
|
|
// key = 11;
|
|
|
key = 11; |
|
|
// }
|
|
|
} |
|
|
|
|
|
|
|
|
// //扫描第4行
|
|
|
//扫描第4行
|
|
|
// scan_row(4);
|
|
|
scan_row(4); |
|
|
// if(scan_col(1) > 0){
|
|
|
if(scan_col(1) > 0){ |
|
|
// key = 12;
|
|
|
key = 12; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(2) > 0){
|
|
|
if(scan_col(2) > 0){ |
|
|
// key = 13;
|
|
|
key = 13; |
|
|
// }
|
|
|
} |
|
|
// if(scan_col(KC3) > 0){
|
|
|
// if(scan_col(KC3) > 0){
|
|
|
// key = 14;
|
|
|
// key = 14;
|
|
|
// }
|
|
|
// }
|
|
|