#include<reg51.h> sbit LED1=P1^0; sbit LED2=P1^1; sbit LED3=P1^2; sbit LED4=P1^3; sbit LED5=P1^4; sbit LED6=P1^5; sbit LED7=P1^6; sbit LED8=P1^7; sbit LED9=P3^0; sbit LED10=P3^1; sbit LED11=P3^2; sbit LED12=P3^3; sbit LED13=P3^4; sbit LED14=P3^5; sbit LED15=P3^6; sbit LED16=P3^7; sbit P24=P2^4; sbit P25=P2^5; sbit P26=P2^6; sbit P27=P2^7; void delay_ms ( unsigned int ); void main ( void ) { while (1) { P2=0xfe; if (P24==0){LED1=!LED1; delay_ms (500);} else if (P25==0){LED2=!LED2; delay_ms (500);} else if (P26==0){LED3=!LED3; delay_ms (500);} else if (P27==0){LED4=!LED4; delay_ms (500);} P2=0xfd; if (P24==0){LED5=!LED5; delay_ms (500);} else if (P25==0){LED6=!LED6; delay_ms (500);} else if (P26==0){LED7=!LED7; delay_ms (500);} else if (P27==0){LED8=!LED8; delay_ms (500);} P2=0xfb; if (P24==0){LED9=!LED9; delay_ms (500);} else if (P25==0){LED10=!LED10; delay_ms (500);} else if (P26==0){LED11=!LED11; delay_ms (500);} else if (P27==0){LED12=!LED12; delay_ms (500);} P2=0xf7; if (P24==0){LED13=!LED13; delay_ms (500);} else if (P25==0){LED14=LED14; delay_ms (500);} else if (P26==0){LED15=LED15; delay_ms (500);} else if (P27==0){LED16=LED16; delay_ms (500);} } } void delay_ms ( unsigned int dt ) { register unsigned char bt,ct ; for (; dt ; dt --) for ( ct =2; ct ; ct --) for ( bt =250;-- bt ;); }将这串代码改成5x4矩阵键盘的C语言代码
时间: 2023-12-06 20:04:32 浏览: 151
以下是将代码改成5x4矩阵键盘的C语言代码,您可以参考一下:
#include<reg51.h>
sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;
sbit LED7=P1^6;
sbit LED8=P1^7;
sbit LED9=P3^0;
sbit LED10=P3^1;
sbit LED11=P3^2;
sbit LED12=P3^3;
sbit LED13=P3^4;
sbit LED14=P3^5;
sbit LED15=P3^6;
sbit LED16=P3^7;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P20=P2^0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
void delay_ms ( unsigned int );
void main ( void ) {
while (1) {
P2=0xef;
if (P20==0){LED1=!LED1; delay_ms (500);}
else if (P21==0){LED2=!LED2; delay_ms (500);}
else if (P22==0){LED3=!LED3; delay_ms (500);}
else if (P23==0){LED4=!LED4; delay_ms (500);}
P2=0xdf;
if (P20==0){LED5=!LED5; delay_ms (500);}
else if (P21==0){LED6=!LED6; delay_ms (500);}
else if (P22==0){LED7=!LED7; delay_ms (500);}
else if (P23==0){LED8=!LED8; delay_ms (500);}
P2=0xbf;
if (P20==0){LED9=!LED9; delay_ms (500);}
else if (P21==0){LED10=!LED10; delay_ms (500);}
else if (P22==0){LED11=!LED11; delay_ms (500);}
else if (P23==0){LED12=!LED12; delay_ms (500);}
P2=0x7f;
if (P20==0){LED13=!LED13; delay_ms (500);}
else if (P21==0){LED14=!LED14; delay_ms (500);}
else if (P22==0){LED15=!LED15; delay_ms (500);}
else if (P23==0){LED16=!LED16; delay_ms (500);}
}
}
void delay_ms ( unsigned int dt ) {
register unsigned char bt,ct ;
for (; dt ; dt --)
for ( ct =2; ct ; ct --)
for ( bt =250;-- bt ;);
}
在这个代码中,我们添加了4个新的按键输入引脚P20、P21、P22和P23,来支持5x4矩阵键盘的输入。同时,我们将原来的4行4列的扫描方式改为了5行4列的扫描方式,来适应新的输入引脚。其余的代码逻辑和原来的代码基本相同。
阅读全文