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

📄 key_lpt.c

📁 用于凌阳单片机
💻 C
字号:
#include <SPCE061V004.H>

#define P_Flash_Ctrl (volatile unsigned int *)(0x7555)

unsigned int press_key_lpt() //A口低八为并行键盘所用
{
  unsigned int temp;
  *P_IOA_Dir|=0x000f;
  *P_IOA_Attrib|=0x00ff;  //低四位为输出,高四位输入
  *P_IOA_Data&=0xff00;
  *P_IOA_Data|=0x00fe;  //扫描第一行
  temp=*P_IOA_Data^0x00fe;
  temp&=0x00ff;
  switch(temp)          //根据键值返回按键序号
  {
    case 0x0010:return(1);
    case 0x0020:return(2);
    case 0x0040:return(3);
    case 0x0080:return(4);
    default:break;
  }
  *P_IOA_Data&=0xff00;
  *P_IOA_Data|=0x00fd;  //扫描第二行
  temp=*P_IOA_Data^0x00fd;
  temp&=0x00ff;
  switch(temp)          //根据键值返回按键序号
  {
    case 0x0010:return(5);
    case 0x0020:return(6);
    case 0x0040:return(7);
    case 0x0080:return(8);
    default:break;
  }
  *P_IOA_Data&=0xff00;
  *P_IOA_Data|=0x00fb;  //扫描第三行
  temp=*P_IOA_Data^0x00fb;
  temp&=0x00ff;
  switch(temp)          //根据键值返回按键序号
  {
    case 0x0010:return(9);
    case 0x0020:return(10);
    case 0x0040:return(11);
    case 0x0080:return(12);
    default:break;
  }
  *P_IOA_Data&=0xff00;
  *P_IOA_Data|=0x00f7;  //扫描第四行
  temp=*P_IOA_Data^0x00f7;
  temp&=0x00ff;
  switch(temp)          //根据键值返回按键序号
  {
    case 0x0010:return(13);
    case 0x0020:return(14);
    case 0x0040:return(15);
    case 0x0080:return(16);
    default:return(0);
  }
}

⌨️ 快捷键说明

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