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

📄 键盘扫描.lst

📁 单片机键盘扫描程序,STC12C5410单片机
💻 LST
字号:
C51 COMPILER V7.07   键臺蒧描                                                              07/25/2007 11:14:43 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE 键臺蒧描
OBJECT MODULE PLACED IN 键盘扫描.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 键盘扫描.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include        "STC12C5410AD.H"
   2          #include        <stdio.h>
   3          #include        "键盘扫描.H"
   4          #include        <math.h>
   5          
   6          unsigned int m=0,n=0;
   7          unsigned int i=0,j=0;
   8          unsigned char Key_InitNumber=0,Key_Number=0,Key_i=0,Key_Buffer=0;
   9          unsigned int idata value[]={0,1,1,1,
  10                  1,1,1,1,
  11                  1,1,1,1,
  12                  1,1,1,1,
  13                  1,1,1,1};
  14          
  15          #define NUMBER (0x131A)         
  16          unsigned int BUFF1=0;
  17          
  18          
  19          void    Delay_10US(void)
  20          {
  21   1              for(j=0;j<10;j++)
  22   1                      {;}                                                                                                     
             -   
  23   1      }
  24          
  25          void D200M(void)                                                                        //不开定时器0的时候,
  26          {                                                                                                                               //定时200MS,示波器显示2MS--2.02MS
  27   1              for(j=0;j<923;j++)
  28   1              {
  29   2                      for(i=0;i<100;i++)
  30   2                      {
  31   3                              ;       
  32   3                      }       
  33   2              }                                                                                                        
  34   1      }
  35          
  36          void Key_Clock(unsigned char Key_InitNumber)                            //键盘扫描的时钟序列1
  37          {
  38   1              for(Key_i=0;Key_i<Key_InitNumber;Key_i++)
  39   1              {
  40   2                      P2_1=0;
  41   2                      Delay_10US();
  42   2                      P2_1=1;
  43   2                      Delay_10US();
  44   2              }
  45   1      }
  46          
  47          void Key_Clock1(void)                           //键盘扫描的时钟序列2
  48          {
  49   1              P2_1=0;
  50   1              Delay_10US();
  51   1              P2_1=1;
  52   1              Delay_10US();
  53   1      }
  54          
C51 COMPILER V7.07   键臺蒧描                                                              07/25/2007 11:14:43 PAGE 2   

  55          void initTimer(void)                                            //定时器初始化,晶振6MHz,
  56          {                                                                                                                               //定时器0,方式2(8位定时器),中断100us
  57   1              TMOD=0x22;                                                                                      //(2^8-x)*12/(6*(10^6))=100*(10^-6)
  58   1              TH0=0xB2;                                                                                       //解得x=206,TH0=0xCE,TL0=0xCE;
  59   1              TL0=0xB2;                                                                                                                       
  60   1              //TL0=0x1f;
  61   1              AUXR=0x80;
  62   1              
  63   1      }
  64          
  65          void initPWM(void)                              //PWM的初始化                   
  66          {
  67   1              CMOD=0x02;
  68   1      //      CL=0x00;
  69   1      //      CH=0x00;
  70   1              CCAP0L=0x80;                                            //80H=128D
  71   1              CCAP0H=0x80;
  72   1              CCAPM0=0x42;
  73   1      //      PCA_PWM0=0x00;
  74   1              CR=1;   
  75   1              
  76   1              AUXR=0xE0;
  77   1              TMOD=0x15;
  78   1              IE=0x88;
  79   1              TH0=0x00;
  80   1              TL0=0x00;
  81   1        TH1=0x15;
  82   1              TL1=0xA0;
  83   1              
  84   1              
  85   1      //      P0=0x02;        //RN3:CH2,通道2
  86   1              P0=0x00;                                //RN1:CH0,通道0
  87   1      }
  88          
  89          
  90          void timer0(void) interrupt 1 using 1                           
  91          {                                                                                                                               //每0.01ms中断一次
  92   1      //      P3_5=!P3_5;
  93   1              P2_4=!P2_4;
  94   1      }
  95          
  96          void timer1(void) interrupt 3
  97          {
  98   1              TH1=0x15;
  99   1              TL1=0xA0;
 100   1       //add your code here.
 101   1              BUFF1=(TH0<<8)+TL0;
 102   1              TH0=0x00;
 103   1              TL0=0x00;
 104   1      }
 105          
 106          
 107          
 108          
 109          
 110          void main()
 111          {
 112   1      //      initTimer();                                                                            //定时器初始化
 113   1      //AUXR=0x00;
 114   1      //TR0=1;
 115   1              ET0=1;
 116   1              EA=1;
C51 COMPILER V7.07   键臺蒧描                                                              07/25/2007 11:14:43 PAGE 3   

 117   1              AUXR=0x80;
 118   1              P1=0xff;                                                                                                        //默认为1,设置为0时才有效
 119   1      
 120   1              P2_1=0;                                                                                                         //164的初始化   
 121   1              P2_2=1;
 122   1              P2_3=1;
 123   1      
 124   1              P0_3=0;                                                                                                         //LED和蜂鸣器的初始化
 125   1              P2_0=0;
 126   1              P1_7=1;
 127   1              
 128   1              P2_4=0;
 129   1              P3_4=0;
 130   1              
 131   1              for(;;)
 132   1              {
 133   2                      Key_Buffer=0;
 134   2                      P2_2=1;
 135   2                      P2_3=1;
 136   2                      Key_Clock(20);                                                                  //键盘各按键的初始化
 137   2                      P2_4=0;
 138   2                      P3_4=0;
 139   2                      P1_7=1;
 140   2                              
 141   2                      P2_2=0;
 142   2                      Key_Clock1();
 143   2      /*              if(P2_3=0)
 144   2                      {
 145   2                              initTimer();
 146   2                              Code_08();
 147   2                              P1_7=0; 
 148   2                      }  */
 149   2                      
 150   2                      for(Key_Number=1;Key_Number<17;Key_Number++)
 151   2                      {
 152   3                              P2_2=1;
 153   3                              Key_Clock1();           
 154   3                              if(P2_3==0)
 155   3                              {
 156   4                                      Key_Buffer=Key_Number;  
 157   4              //                      break;
 158   4                              }
 159   3                              
 160   3                              switch (Key_Buffer)
 161   3                              {
 162   4                                      case 1:
 163   4                                              break;
 164   4                                      case 2:
 165   4                                              break;
 166   4                                      case 3:
 167   4                                              break;                                  
 168   4                                      case 4: 
 169   4                                              break;
 170   4                                      
 171   4                                      case 9: 
 172   4                                              break;
 173   4                                      case 10:                                
 174   4                                              break;
 175   4                                      case 11:                        
 176   4                                              break;
 177   4                                      case 12:                                
 178   4                                              break;
C51 COMPILER V7.07   键臺蒧描                                                              07/25/2007 11:14:43 PAGE 4   

 179   4                                      case 13:                        
 180   4                                              break;
 181   4                                      case 14:                                
 182   4                                              break;
 183   4                                      case 15:                        
 184   4                                              break;
 185   4                                      default:
 186   4                                              TR0=0;
 187   4                                              TR1=0;
 188   4                                              break;  
 189   4                              }
 190   3                              
 191   3                      }
 192   2                                      
 193   2                      P2_0=!P2_0;
 194   2                      D200M();
 195   2              }
 196   1              
 197   1              
 198   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    302    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   IDATA SIZE       =     40    ----
   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 + -