蓝桥杯按键模块

/* 独立键盘 */
/********************************************************
#define S7 0x01
#define S6 0x02
#define S5 0x04
#define S4 0x08

bit Key_flg;
u8 Trg,Cont;

void Key_ThreeLine()
{
	u8 ReadData = P3 ^ 0xff;
	Trg = ReadData & (ReadData ^ Cont);
	Cont = ReadData;
}

void Key_Scan()
{
	if(Key_flg)
	{
		Key_flg = 0;
		Key_ThreeLine();
		switch(Trg)
		{
			case S7:break;
			case S6:break;
			case S5:break;
			case S4:break;
		}
	}
	
}

************************************************************/



/* 矩阵键盘 */
/********************************************************
#define S7 0x81
#define S6 0x82
#define S5 0x84
#define S4 0x88

#define S11 0x41
#define S10 0x42
#define S9  0x44
#define S8  0x48

#define S15 0x21
#define S14 0x22
#define S13 0x24
#define S12 0x28

#define S19 0x11
#define S18 0x12
#define S17 0x14
#define S16 0x18

bit Key_flg;
u8 Trg,Cont;

u8 Get_KeyValue()
{
	u8 key = 0xff;
	P3 = 0xf0;P4 = 0xff;
	if(P44 == 0) key = 0x70;
	if(P42 == 0) key = 0xb0;
	if(P35 == 0) key = 0xd0;
	if(P34 == 0) key = 0xe0;
	
	P3 = 0x0f;P4 = 0x00;
	if(P33 == 0) key |= 0x07;
	if(P32 == 0) key |= 0x0b;
	if(P31 == 0) key |= 0x0d;
	if(P30 == 0) key |= 0x0e;
	return key;
}

void Key_ThreeLine()
{
	u8 ReadData = Get_KeyValue() ^ 0xff;
	Trg = ReadData & (ReadData ^ Cont);
	Cont = ReadData;
}

void Key_Scan()
{
	if(Key_flg)
	{
		Key_flg = 0;
		Key_ThreeLine();
		switch(Trg)
		{
			case S7:break;
			case S6:break;
			case S5:break;
			case S4:break;
			
			case S11:break;
			case S10:break;
			case S9:break;
			case S8:break;
			
			case S15:break;
			case S14:break;
			case S13:break;
			case S12:break;
			
			case S19:break;
			case S18:break;
			case S17:break;
			case S16:break;
		}
	}
	
}
************************************************************/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值