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

📄 key.lst

📁 简单的键盘扫描程序。采用中断机制。加了个倒计时功能。
💻 LST
字号:
C51 COMPILER V7.06   KEY                                                                   09/29/2007 13:49:18 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEY.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<at89x51.h>
   2          sbit START_COUNTER = P1^0;
   3          sbit DIS_KEY_PAD = P1^1;
   4          unsigned int KEY_ID = 0;
   5          unsigned int OFCounter = 0;
   6          
   7          void delay_ms(unsigned int count)
   8          {
   9   1              int i,j;
  10   1              for(i= 0; i<=count; i++)
  11   1              {
  12   2                      for(j=0;j<=120;j++)
  13   2                      {;}
  14   2              }
  15   1      }
  16          
  17          void Key_Init(void)
  18          {
  19   1              EX0 = 1;
  20   1      }
  21          
  22          void Counter_Init(void)
  23          {
  24   1              TMOD = 0x10;
  25   1              TH1 = 0xC3;
  26   1              TL1 = 0x50;
  27   1      }
  28          
  29          
  30          void COUNTER_DOWN(void) interrupt 3 using 1
  31          {
  32   1              ET1 = 0;
  33   1              OFCounter++;
  34   1              if(OFCounter == 20)
  35   1              {
  36   2                      KEY_ID --;
  37   2                      OFCounter = 0;
  38   2              }
  39   1              P0 = (KEY_ID / 10) * 16 + KEY_ID %10;
  40   1      
  41   1              if(KEY_ID == 0)
  42   1              {
  43   2                      P1_2 = 0;
  44   2                      return;
  45   2              }
  46   1              ET1 = 1;
  47   1      }
  48          
  49          void KEY_GET(void) interrupt 0 using 2
  50          {
  51   1              EX0 = 0;
  52   1              P2 = 0xFF;
  53   1      
  54   1              P2_1 = 0;
  55   1              delay_ms(10);
C51 COMPILER V7.06   KEY                                                                   09/29/2007 13:49:18 PAGE 2   

  56   1              if(P2_4 == 0) KEY_ID = 5;
  57   1              if(P2_5 == 0) KEY_ID = 6;
  58   1              if(P2_6 == 0) KEY_ID = 7;
  59   1              if(P2_7 == 0) KEY_ID = 8;
  60   1              P2_1 = 1;
  61   1      
  62   1              P2_0 = 0;
  63   1              delay_ms(10);
  64   1              if(P2_4 == 0) KEY_ID = 1;
  65   1              if(P2_5 == 0) KEY_ID = 2;
  66   1              if(P2_6 == 0) KEY_ID = 3;
  67   1              if(P2_7 == 0) KEY_ID = 4; 
  68   1              P2_0 = 1;
  69   1      
  70   1              P2_2 = 0;
  71   1              delay_ms(10);
  72   1              if(P2_4 == 0) KEY_ID = 9;
  73   1              if(P2_5 == 0) KEY_ID = 10;
  74   1              if(P2_6 == 0) KEY_ID = 11;
  75   1              if(P2_7 == 0) KEY_ID = 12; 
  76   1              P2_2 = 1;
  77   1      
  78   1              P2_3 = 0;
  79   1              delay_ms(10);
  80   1              if(P2_4 == 0) KEY_ID = 13;
  81   1              if(P2_5 == 0) KEY_ID = 14;
  82   1              if(P2_6 == 0) KEY_ID = 15;
  83   1              if(P2_7 == 0) KEY_ID = 16; 
  84   1              P2_3 = 1;
  85   1      
  86   1              P0 = (KEY_ID / 10) * 16 + KEY_ID %10;
  87   1              delay_ms(50);
  88   1              P2 = 0xF0;
  89   1              EX0 = 1; 
  90   1      }
  91          
  92          main()
  93          {
  94   1              Key_Init();
  95   1      
  96   1              P2 = 0xF0;
  97   1              P0 = 0x00;
  98   1              DIS_KEY_PAD = 0;
  99   1              EA = 1;
 100   1              
 101   1              while(START_COUNTER)
 102   1              {}
 103   1      
 104   1              if(!START_COUNTER)
 105   1              {
 106   2                      Counter_Init();
 107   2                      TR1 = 1;
 108   2                      ET1 = 1;
 109   2              }
 110   1              DIS_KEY_PAD = 1;
 111   1              while(1)
 112   1              {}      
 113   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    404    ----
C51 COMPILER V7.06   KEY                                                                   09/29/2007 13:49:18 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   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 + -