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

📄 key.c

📁 基于DAC0832的简单波形发生器
💻 C
字号:
#include<reg52.h>
#include<key.h>

static void delay(void);
void delay(void)                              //延时子程序
{
 unsigned char n, m;
 for (n = 100; n > 0; n--)
  for (m = 300; m > 0; m--);    
}
uchar KeyScan(void)            //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线
{
  uchar rcode, ccode;
  PX = 0xF0;                         // 发全0行扫描码,列线输入
  if((PX&0xF0) != 0xF0)              // 若有键按下
  {
    delay();                        // 延时去抖动 
    if((PX&0xF0) != 0xF0)
    {  rcode = 0xFE;               // 逐行扫描初值
    while((rcode&0x10) != 0)
    {
       PX = rcode;                  // 输出行扫描码
    if((PX&0xF0) != 0xF0)           // 本行有键按下
    {
       ccode = (PX&0xF0)|0x0F;
       do{;}while((PX&0xF0) != 0xF0); //等待键释放
       return ((~rcode) + (~ccode)); // 返回键编码
    }
    else
    rcode = (rcode<<1)|0x01; // 行扫描码左移一位
    }
 }
  }  
  return 0; // 无键按下,返回值为0
}

⌨️ 快捷键说明

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