1.c

来自「51单片机串行口扩展键盘接口仿真 51单片机串行口扩展键盘接口仿真」· C语言 代码 · 共 97 行

C
97
字号
#include <reg51.h>

sbit  flag = P3^2;
unsigned char key_code = 10;  
 
void delay()	//延时函数;
{
	unsigned char a,b;	  
	for(a=0;a<20;a++)
		for(b=0;b<100;b++);
    		
}

key() //按键处理函数;
{
	unsigned char k =0xfe, column = 0;
	while(1)
	{
   		SBUF = k;
		while(TI !=1);
		TI = 0;	
		if(flag != 0)
		{	
			column++;
			if(column >= 8) column = 0;
			k = k<<1;
			
		}	
		else
		{
			key_code = column;
			
			SBUF = 0x00;
			while(TI == 0);
			TI = 0;
			return(key_code);
			break;									
		}		
    }


}





main()
{
	SCON = 0x00;
	EA = 0;
	ES = 0;
	SBUF = 0x00;
	while(TI !=1);
	TI = 0;

	while(1)
	{
		if(flag == 0)
		{
			delay();
			if(flag == 0) key();
		}
		
		switch(key_code)
		{
			case 0:
				P1 = 0x01;
				break;
			case 1:
				P1 = 0x02;
				break;
			case 2:
				P1 = 0x04;
				break;
			case 3:
				P1 = 0x08;
				break;
			case 4:
				P1 = 0x10;
				break;
			case 5:
				P1 = 0x20;
				break;
			case 6:
				P1 = 0x40;
				break;
			case 7:
				P1 = 0x80;
				break;
			default:
				P1 = 0x00;
				break;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?