• 液晶显示计算器(按键程序)



    #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
    #include"keyboard.h"
    #include"delay.h"

    #define KeyPort P1

    /*------------------------------------------------
    按键扫描函数,返回扫描键值
    ------------------------------------------------*/
    unsigned char KeyScan(void)  //键盘扫描函数,使用行列反转扫描法
    {
     unsigned char cord_h,cord_l;//行列值中间变量
     KeyPort=0x0f;            //行线输出全为0
     cord_h=KeyPort&0x0f;     //读入列线值
     if(cord_h!=0x0f)    //先检测有无按键按下
     {
      DelayMs(10);        //去抖
      if((KeyPort&0x0f)!=0x0f)
      {
        cord_h=KeyPort&0x0f;  //读入列线值
        KeyPort=cord_h|0xf0;  //输出当前列线值
        cord_l=KeyPort&0xf0;  //读入行线值

        while((KeyPort&0xf0)!=0xf0);//等待松开并输出

        return(cord_h+cord_l);//键盘最后组合码值
       }
      }return(0xff);     //返回该值
    }
    /*------------------------------------------------
              按键值处理函数,返回扫键值
               可以根据需要改变返回值

                  | 1 | 2 | 3 | + |  
                  | 4 | 5 | 6 | - |  
                  | 7 | 8 | 9 | * |  
                  | 0 | . | = | / | 
    ------------------------------------------------*/
    unsigned char KeyPro(void)
    {
     switch(KeyScan())
     {
      case 0x7e:return 1  ;break;//0 按下相应的键显示相对应的码值
      case 0x7d:return 2  ;break;//1
      case 0x7b:return 3  ;break;//2
      case 0x77:return '+';break;//3

      case 0xbe:return 4  ;break;//4
      case 0xbd:return 5  ;break;//5
      case 0xbb:return 6  ;break;//6
      case 0xb7:return '-';break;//7

      case 0xde:return 7  ;break;//8
      case 0xdd:return 8  ;break;//9
      case 0xdb:return 9  ;break;//a
      case 0xd7:return 'x';break;//b

      case 0xee:return 0  ;break;//c
      case 0xed:return '.';break;//d
      case 0xeb:return '=';break;//e
      case 0xe7:return '/';break;//f
      default:return 0xff;break;
     }
    }

     

  • 相关阅读:
    CSS快速入门
    线性模型中的高级特征选择技术——基于R
    IntelliJ IDEA的快速配置详细使用
    EventBridge 生态实践:融合 SLS 构建一体化日志服务
    华为机试:粮油买卖
    机器学习(四十九):Mean-Shift 聚类
    [计算机组成原理] 指令的完成过程
    Spring Security多种用户定义方式
    科技型中小企业认定条件和好处
    C++ STL - string 成员函数 + 模拟实现
  • 原文地址:https://blog.csdn.net/qq_46065313/article/details/131320263