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

📄 key_4x3.lst

📁 单片机实现在的电子琴
💻 LST
字号:
C51 COMPILER V8.05a   KEY_4X3                                                              11/30/2008 13:26:22 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE KEY_4X3
OBJECT MODULE PLACED IN key_4x3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key_4x3.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "key_4x3.h"
   2          
   3          void delay2ms(uchar m)
   4          {
   5   1              uchar n, s;
   6   1              for (; m--; )
   7   1              {    
   8   2                      for (n = 16; n--;)
   9   2                      {
  10   3                              for (s=S; s--;)
  11   3                              {
  12   4                              }
  13   3                      }       
  14   2              }      
  15   1      }              
  16          
  17          void delay5us(uchar u)
  18          {
  19   1          u *= CLK;
  20   1          while (--u);
  21   1      }
  22          /***************底层函数******************/
  23          uchar Read_io()             //ok
  24          {
  25   1          uchar tmp;
  26   1          tmp = Px;                   //读入数据
  27   1          tmp = (tmp >> MOVE) & 0x0f; //处理数据
  28   1          return(tmp);
  29   1      }
  30          
  31          void Write_io(uchar value)      //ok
  32          {
  33   1          uchar tmp = 0x0f;
  34   1          Px = Px & ~(tmp << MOVE);   //键盘口清0
  35   1          Px = Px | (value << MOVE);  //装入数值
  36   1      }
  37          
  38          /****************主函数*******************/
  39          uchar KEY_value(uchar key,uchar wait)
  40          {
  41   1              uchar code _value[]={14,13,11,7}, _key[]={12,10,6,12,9,5,10,9,3,6,5,3};
  42   1              --key;
  43   1              Write_io(_value[key/3]);
  44   1              if(Read_io() == _key[key])
  45   1              {
  46   2                      delay2ms(14);
  47   2                      if(Read_io() == _key[key]) 
  48   2                              if(!wait)
  49   2                                      return(1);
  50   2                              else
  51   2                              {       
  52   3                      while(Read_io() == _key[key])
  53   3                                      {}
  54   3                                      return(1);
  55   3                  }
C51 COMPILER V8.05a   KEY_4X3                                                              11/30/2008 13:26:22 PAGE 2   

  56   2                      else return(0);
  57   2              }
  58   1              else return(0);
  59   1      }
  60          
  61          uchar KEY_num(uchar wait)
  62          {
  63   1              uchar num;
  64   1              for(num=1;num<13;num++)
  65   1              {
  66   2              if(KEY_value(num,wait))
  67   2              {return(num);break;}
  68   2              }
  69   1      }
  70          
  71          uchar KEY_wait()
  72          {
  73   1          uchar tmp;
  74   1          while(!(tmp = KEY_num(0)));
  75   1          return tmp;
  76   1      }
  77          /***********/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    143    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   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 + -