level 9
奥巴小鸟free
楼主
sbit K0=P3^4;
sbit K1=P3^5;
sbit K2=P3^2;
sbit K3=P3^3;
sbit K4=P2^1;
sbit K5=P2^2;
char get_key0(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K0 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K0 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K0 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key1(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K1 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K1 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K1 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key2(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K2 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K2 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K2 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key3(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K3 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K3 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K3 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key4(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K4 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K4 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K4 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key5(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K5 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K5 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K5 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char getkeys(){
if(get_key0()){
return 1;
}
if(get_key1()){
return 2;
}
if(get_key2()){
return 3;
}
if(get_key3()){
return 4;
}
if(get_key4()){
return 5;
}
if(get_key5()){
return 6;
}
return 0;
}
2022年05月07日 08点05分
1
sbit K1=P3^5;
sbit K2=P3^2;
sbit K3=P3^3;
sbit K4=P2^1;
sbit K5=P2^2;
char get_key0(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K0 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K0 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K0 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key1(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K1 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K1 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K1 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key2(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K2 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K2 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K2 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key3(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K3 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K3 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K3 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key4(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K4 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K4 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K4 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char get_key5(){
static char key_flag = 0,num=0;
switch(key_flag){
case 0:
key_flag = 1;
num=0;
//break;
case 1:
if((K5 == 0) ){
key_flag = 2;
}
break;
case 2:
num++;
if(num > 3){
key_flag = 3;
}
break;
case 3:
if((K5 == 0) ){
key_flag = 4;
}else{
key_flag = 0;
}
break;
case 4:
if((K5 == 0)){
num = 1;
}else{
key_flag = 0;
return 1;
}
break;
}
return 0;
}
char getkeys(){
if(get_key0()){
return 1;
}
if(get_key1()){
return 2;
}
if(get_key2()){
return 3;
}
if(get_key3()){
return 4;
}
if(get_key4()){
return 5;
}
if(get_key5()){
return 6;
}
return 0;
}