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

📄 74ls165.c

📁 74LS165驱动构成8键键盘74LS165驱动构成8键键盘
💻 C
字号:
/****************************
74LS165驱动构成8键键盘
***************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit out165=P1^7; 
sbit SL=P1^4;     //0:读端口的信息,1:保存端口,SL是SH/LD脚
sbit SCLK=P1^6;    //时钟输入
sbit CLOCK_INH=P1^5;
uint readkey(void)

{
 uint key=0;
 uchar i=8; 
 SL=0;//读键盘数据
 delay(100);
 SL=1;//保持键盘状态
 CLOCK_INH=0;
 while(i--)
 {
  
  key=key<<1;
  if(out165)
  {key=key+1;}
  SCLK=0;
  delay(50);
  SCLK=1;
 }
 return (key);
}
/***************************/
//读取扫描键盘,没有按键按下的时候,返回0,有键按下的时候,能消抖动
//等待按键释放,然后再返回按键号1-8

uchar scankey(void)
{
 uint key;
 key=readkey();      //读期键盘的信息,
 if(key!=0xffff)    
 {
   //delay(100);     //延时消抖
  key=readkey();
   while(readkey()!=0xffff);     //等待按键释放
   if(key!=0xffff)
    {  
      
     switch(key)       //只处理单个键按下的情况,多个键按下不识别,当作没有键按下
     { 
      case 0xfe:return 0;
      case 0xfd:return 1;
      case 0xfb:return 2;
      case 0xf7:return 3; 
      case 0xef:return 4;
      case 0xdf:return 5;
      case 0xbf:return 6;
      case 0x7f:return 7; 
      
      default:   return 0; 
     }
	 }else return 0;                 
 }else return 0;
}

⌨️ 快捷键说明

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