ckey_s.c

来自「dp51单片机的实验程序」· C语言 代码 · 共 60 行

C
60
字号
#include<REG52.h>
#include<intrins.h>

sbit  	KD_KEY = P1^2;
sbit	SDA=P1^0;
sbit	CLK=P1^1;


void   delay(unsigned int n)
{ unsigned  int  j,k;	
  for(k=0;k<n;k++)
	{		
	for(j=0;j<1000;j++);
	}	
}	


void	send(unsigned char a)
{
	unsigned char i;
	for(i=0;i<8;i++)
		{
			if(_crol_(a,i)&0x80)
				SDA=1;
			else
				SDA=0;
			CLK=0;
			CLK=1;
			}
}	

	

main()	
{	
	unsigned char buffer,i,display_bit;
	buffer=0xff;				//赋初值为0xff
	while(1)	
	{	
		send(0x00);				//判断有键盘按下吗?
		while(!KD_KEY)			//有,则判断其键值
		{	
			buffer=0xff;		//赋初值为0xff
			delay(0x02);		//延时去抖动
			display_bit=0xfe;	//扫描键盘
			for(i=0;i<8;i++)	
			{	
				send(display_bit);	
				if(!KD_KEY)	//是此键按下吗?
				{	
					buffer=display_bit;	//是,则保存其键值
					break;	//退出
					}	
					display_bit=_crol_(display_bit,1); 
					//检测下一键
			}	
		}	
 	}	
}		

⌨️ 快捷键说明

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