这次来展示一下简单的让矩形键盘控制晶体管的代码
以51单片机为例
#include<reg52.h>
#include<delay.h> //这是我自己写的延时函数头文件
#include<shumaguan.h>。 //这是我自己写的数码管选数字的头文件
typedef unsigned char u8;
typedef unsigned int u16;
#define jianpan P1
#define jingtiguan P0
sbit 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>
这两个头文件是我自己写的,如果想要代码的直接评论告诉我,我无偿发给你们。本文主要为了分享矩形键盘控制晶体管,为了更清楚,所以没有把这俩程序写成函数,而是写成了头文件。
大家可以动手试一试,毕竟实践才是检验真理的唯一标准!