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

📄 key_4x3.lst

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


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

  56   2                              if(!wait)
  57   2                                      return(1);
  58   2                              else
  59   2                              {       
  60   3                      while(Read_io() == _key[key])
  61   3                                      {}
  62   3                                      return(1);
  63   3                  }
  64   2                      else return(0);
  65   2              }
  66   1              else return(0);
  67   1      }
  68          
  69          uchar KEY_num(uchar wait)
  70          {
  71   1              uchar num;
  72   1              for(num=1;num<13;num++)
  73   1              {
  74   2              if(KEY_value(num,wait))
  75   2              {return(num);break;}
  76   2              }
  77   1      }
  78          
  79          uchar KEY_wait()
  80          {
  81   1          uchar tmp;
  82   1          while(!(tmp = KEY_num(0)));
  83   1          return tmp;
  84   1      }
  85          /***********/


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 + -