矩形键盘控制晶体管

这次来展示一下简单的让矩形键盘控制晶体管的代码

以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>
这两个头文件是我自己写的,如果想要代码的直接评论告诉我,我无偿发给你们。本文主要为了分享矩形键盘控制晶体管,为了更清楚,所以没有把这俩程序写成函数,而是写成了头文件。
大家可以动手试一试,毕竟实践才是检验真理的唯一标准!

发布了30 篇原创文章 · 获赞 29 · 访问量 9299

猜你喜欢

转载自blog.csdn.net/qq_44629109/article/details/98478758