⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 发送机.c

📁 单片机源码
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void dlms(void);
uchar kbscan(void);
uchar change(uchar);
void main(void)
{	TMOD=0x20;
    TH1=0xe6;
	TR1=1;
    SCON=0x40;
	while(1)
	{
		SBUF=change(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*/
}


uchar change(uchar i){

           uchar j;
		   if(i==0){
		   j=0;
		   }

		   if(i==0xee){
		   j=0x3f;
		   }

		   if(i==0xde){
		   j=0x06;
		   }

		   if(i==0xbe){
		   j=0x5b;
		   }

		   if(i==0x7e){
		   j=0x4f;
		   }

		   if(i==0xed){
		   j=0x66;
		   }

		   if(i==0xdd){
		   j=0x6d;
		   }

		   if(i==0xbd){
		   j=0x7d;
		   }

		   if(i==0x7d){
		   j=0x07;
		   }

		   if(i==0xeb){
		   j=0x7f;
		   }

		   if(i==0xdb){
		   j=0x6f;
		   }

		   if(i==0xbb){
		   j=0x77;
		   }

		   if(i==0x7b){
		   j=0x7c;
		   }

		   if(i==0xe7){
		   j=0x39;
		   }

		   if(i==0xd7){
		   j=0x5e;
		   }

		   if(i==0xb7){
		   j=0x79;
		   }

		   if(i==0x77){
		   j=0x71;
		   }

 return(j);
}

⌨️ 快捷键说明

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