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

📄 ch8-2.c

📁 单片机接口技术(C51版)例程源代码
💻 C
字号:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int 
void dlms(void);
uchar kbscan(void);

void main(void)
  {
 	 uchar key;
 	 while(1)
 	    {
 	    	key=kbscan();/*主程序中可以根据键值通过switch-case语句执行对应的功能*/
 	    	dlms();
 	    }
  }
 
 void dlms(void)
   {
   	uchar i;
   	for(i=0;i<2000;i++); /*延时时间根据不同键的机械特性取值不同*/
   }
   
uchar kbscan(void) /*键扫描函数*/
  {
  	uchar sccode,recode;
  	P1=0xf0;/*发全0行扫描码,列线输入*/
  	if((P1&0xf0)!=0xf0) /*若有键按下*/
  	  {
  	  	dlms();         /*延时去抖动*/
  	  	if((P1&0xf0)!=0xf0) /*若键仍按下*/
  	  	  {
  	  	  	sccode=0xfe;    /*逐行扫描初值*/
  	  	  	while(sccode&0x10!=0)/*判别是否最后一行*/
  	  	  	  {
  	  	  	  	P1=sccode;/*输出行扫描码*/
  	  	  	  	if((P1&0xf0)!=0xf0)/*本行有键按下*/
  	  	  	  	    {
                        recode=(P1&0xf0)|0x0f;
  	  	  	  	    	return((~sccode)+(~recode)); /*返回键值*/
  	  	  	  	    	
  	  	  	  	   	}
  	  	  	  }
  	  	  }
  	  	 else
  	  	  {
  	  	  	sccode=(sccode<<1)|0x01;/*行扫描码左移一位,最低位补1*/
  	  	  }
  	  }
  	  return(0);
  }

⌨️ 快捷键说明

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