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

📄 key-smg.lst

📁 单片机C语言程序设计实训100例
💻 LST
字号:
C51 COMPILER V8.08   KEY_SMG                                                               08/10/2009 10:06:21 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE KEY_SMG
OBJECT MODULE PLACED IN key-smg.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key-smg.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          sbit BEEP = P3^7;
   5          
   6          uchar code DSY_CODE[]=
   7          {
   8                  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00
   9          };
  10          uchar Pre_KeyNO = 16,KeyNO = 16;
  11          
  12          void DelayMS(uint ms)
  13          {
  14   1              uchar t;
  15   1              while(ms--)
  16   1              {
  17   2                      for(t=0;t<120;t++);
  18   2              }
  19   1      }
  20          
  21          void Keys_Scan()
  22          {
  23   1              uchar Tmp;
  24   1              P1 = 0x0f;
  25   1              DelayMS(1);
  26   1              Tmp = P1 ^ 0x0f;
  27   1              switch(Tmp)
  28   1              {
  29   2                      case 1: KeyNO = 0; break;
  30   2                      case 2: KeyNO = 1; break;
  31   2                      case 4: KeyNO = 2; break;
  32   2                      case 8: KeyNO = 3; break;
  33   2                      default: KeyNO = 16;
  34   2              }
  35   1              P1 = 0xf0;
  36   1              DelayMS(1);
  37   1              Tmp = P1 >> 4 ^ 0x0f;
  38   1              switch(Tmp)
  39   1              {
  40   2                      case 1: KeyNO += 0; break;
  41   2                      case 2: KeyNO += 4; break;
  42   2                      case 4: KeyNO += 8; break;
  43   2                      case 8: KeyNO += 12;
  44   2              }
  45   1      }
  46          
  47          void Beep()
  48          {
  49   1              uchar i;
  50   1              for(i=0;i<100;i++)
  51   1              {
  52   2                      DelayMS(1);
  53   2                      BEEP = ~BEEP;
  54   2              }
  55   1              BEEP = 1;
C51 COMPILER V8.08   KEY_SMG                                                               08/10/2009 10:06:21 PAGE 2   

  56   1      }
  57          
  58          void main()
  59          {
  60   1              P0 = 0x00;
  61   1              while(1)
  62   1              {
  63   2                      P1 = 0xf0;
  64   2                      if(P1 != 0xf0)
  65   2                              Keys_Scan();
  66   2                      if(Pre_KeyNO != KeyNO)
  67   2                      {
  68   3                              P0 = ~DSY_CODE[KeyNO];
  69   3                              Beep();
  70   3                              Pre_KeyNO = KeyNO;
  71   3                      }
  72   2                      DelayMS(100);
  73   2              }
  74   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    177    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -