这次来展示一下简单的让矩形键盘控制晶体管的代码。
代码语言:javascript复制#include<reg52.h>#include<delay.h> //这是我自己写的延时函数头文件#include<shumaguan.h>。//这是我自己写的数码管选数字的头文件typedef unsigned char u8;typedef unsigned int u16;#define jianpan P1#define jingtiguan P0sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;u8 key;u8 deng;void saomiao(void){ char a=0; jianpan=0x0f; if(jianpan!=0x0f) { delay(10); if(jianpan!=0x0f) { switch(jianpan) { case 0x07: key=0;break; case 0x0b: key=1;break; case 0x0d: key=2;break; case 0x0e: key=3;break; } } jianpan=0xf0; if(jianpan!=0xf0) { switch(jianpan) { case 0x70: key=key 0;break; case 0xb0: key=key 4;break; case 0xd0: key=key 8;break; case 0xe0: key=key 12;break;
} while((a<50)&&(jianpan!=0xf0)) //检测按键松手检测 //当按键不松手时就始终在这个循环里,当按键松开则跳出循环 { delay(100); a ;
} } }}void main(void){ LSA=0; //给一个数码管提供位选 LSB=1; LSC=0;
while(1) { saomiao(); jingtiguan=shumaguan[key]; } }
直接复制代码会运行失败,因为开头的 #include<delay.h> #include<shumaguan.h> 这两个头文件是我自己写的,如果想要代码的可以看这里。https://blog.csdn.net/qq_44629109/article/details/102827016。本文主要为了分享矩形键盘控制晶体管,为了更清楚,所以没有把这俩程序写成函数,而是写成了头文件。 大家可以动手试一试,毕竟实践才是检验真理的唯一标准!