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

📄 key.lst

📁 芯片at89s52
💻 LST
字号:
C51 COMPILER V8.05a   KEY                                                                  08/01/2007 10:43:24 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE KeyBord\key.c BROWSE DEBUG OBJECTEXTEND PRINT(.\key.lst) OBJE
                    -CT(key.obj)

line level    source

   1          /******************************************************************************
   2           * File   Name: key.c                                                                                                             *
   3           * Create Time: 2007/07/14                                                                                                        *
   4           * Description:                                                                                                                           *
   5           * Copyright  :                                                                                                                           *
   6           * History    :                                                                                                                           *
   7           * |---Data---|---Author---|--Version--|--------------Description-------------|
   8           *****************************************************************************/
   9           //#define KEY_ONOFF
  10           #ifdef  KEY_ONOFF
              /******************************
               *      Head File                         *
               *****************************/
               #include"key.h" 
              /******************************
               *     Global Variable            *
               *****************************/
               int row=0; //键盘行数
               int column=0;//键盘列数
               uchar keybuf=0x00;//键盘按钮显示内容中间量*/
               uchar keybit = 0;//用以计数键盘扫描行数
              /******************************
               *         Const Segment                  *
               *****************************/
               uchar key_row[4] = {0x0e,0x0d,0x0b,0x07};//令键盘1-4行依次有效
              /******************************
               *      Function  Implement       *
               *****************************/
               
              /**********************************************************************************************
              Function Name:按键显示函数                                                                                                                                        *
              Target : 将按键相应的数值显示在数码管上                                                                                                           *
              Input  Parameter : 8位的unsigned char                                                                                                             *
              Output Parameter : 无                                                                                                                                             *
              Function Description :                                                                                                                                            *
              **********************************************************************************************/
              uchar keyValue(uchar temp)
              {
                       switch(temp&0xf0)      //判断高四位的值
                              {
                                      case 0x70:column = 0x00;break; //7位
                                      case 0xb0:column = 0x04;break; //6
                                      case 0xd0:column = 0x08;break; //5
                                      case 0xe0:column = 0x0c;break; //4              
                              }
                              switch(temp&0x0f) //判断第四位的值
                              {
                                      case 0x0e:row = 0x00;break;     //0
                                      case 0x0d:row = 0x01;break;     //1
                                      case 0x0b:row = 0x02;break;     //2
                                      case 0x07:row = 0x03;break;     //3
                              }
                              return  row+column;
              }
C51 COMPILER V8.05a   KEY                                                                  08/01/2007 10:43:24 PAGE 2   

              /**********************************************************************************************
              Function Name:键盘按下函数                                                                                                                                        *
              Target  : 判断键盘是否按下                                                                                                                                        *
              Input  Parameter : 无                                                                                                                                             *
              Output Parameter : 1或0                                                                                                                                           *
              Function Description : 用全扫描的方法判断键盘是否有键按下,有键按下返回1,键值保存在中间量        *
                                                         temp中,没有返回0.                                                                                                     *
              **********************************************************************************************/
              uchar isKeyDown(void)
              {        
                       P2=0xf0;          //将低四位置0
                       if((P2&0xf0)<0xf0)//判断是否有键按下,即高四位不全为1即有键按下                                
                              {
                               keybuf=P2&0xf0;//保存高四位的值
                           P2=0x0f;     //将高四位置0
                               keybuf|=P2&0x0f;//保存低四位的值                
                               return 0x01;
                              }                                       
                       return 0x00;     //输出该键值
              }
              /**********************************************************************************************
              Function Name:对按下键的操作函数                                                                                                                          *
              Target   : 按下相应键做相应功能                                                                                                                           *
              Input  Parameter : 无                                                                                                                                             *
              Output Parameter : 无                                                                                                                                             *
              Function Description : 若有键按下,显示键码                                                                                                       *
              **********************************************************************************************/
              void keyOperate(void)
              {
                       if(isKeyDown()==0x01)
                              DisPrint(keyValue(keybuf));
              }
              
              uchar downKeyValue()
              {
                      return keybuf;
              }
              /**********************************************************************************************
              Function Name:定时器0中断函数                                                                                                                             *
              Target   : 定时器中断并产生相应功能                                                                                                                       *
              Input  Parameter : 无                                                                                                                                             *
              Output Parameter : 无                                                                                                                                             *
              Function Description : 间隔2.5ms产生一次中断                                                                                              *
              **********************************************************************************************/
              #endif
 100          
 101          /*******************************************************************************
 102           *                        The end of the entire file                                   *
 103           ******************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   ----    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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