发送机.txt

来自「单片机源码」· 文本 代码 · 共 63 行

TXT
63
字号
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void dlms(void);
uchar kbscan(void);
void main(void)
{
        SCON=0x40;
	while(1)
	{
		SBUF=kbscan();/*键盘扫描函数,返回键码送key保存*/
                while(!TI);
                TI=0;
	}
}
void dlms(void)
{
	uchar i;
	for(i=200;i>0;i--){}/*延时函数*/
}
uchar kbscan(void)/*键盘扫描函数*/
{
	uchar sccode,recode;
	P1=0xf0;
	if((P1&0xf0)!=0xf0)/*如P1口高4位不全为1,有键按下*/
	{
		dlms();		/*延时去掉抖动*/
		if((P1&0xf0)!=0xf0)/*重读输入值*/
		{
			sccode=0xfe;/*最低位置0*/
			while((sccode&0x10)!=0)/*不到最后一行*/
			{
				P1=sccode;/*P1口输出扫描码*/
				if((P1&0xf0)!=0xf0)
				{
					recode=P1&0xf0;
					sccode=sccode&0x0f;
					return(sccode+recode);
				}//if
				else
					sccode=(sccode<<1)|0x01;/*如该行无键按下,查下一行,行扫描值左移一位*/
			}//while
		}//if

















	}//if
	return(0);/*无键按下,返回值为0*/
}

⌨️ 快捷键说明

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