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

📄 key.lst

📁 51单片机游戏程序包括图纸
💻 LST
字号:
C51 COMPILER V7.01  KEY                                                                    04/27/2007 22:08:22 PAGE 1   


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

stmt level    source

   1          #include <AT89X52.h>
   2          #include "typedef.h"
   3          
   4          #define Nothing 100
   5          //端口定义
   6          sbit C1 = P2^3;
   7          sbit C2 = P2^4;
   8          sbit C3 = P3^2;
   9          sbit C4 = P3^3;
  10          
  11          sbit R1 = P3^4;
  12          sbit R2 = P3^5;
  13          sbit R3 = P3^0;
  14          sbit R4 = P3^1;
  15          
  16          uchar Key=Nothing;                //键盘缓冲寄存器(公有数据)
  17          uchar Fn_Key;                    //功能键
  18          
  19          //*********************************************************************
  20          //= 函数原型: void KEYPAD_Scan(char* const Key, char* const Fn_Key)
  21          //= 功    能: 扫描键盘
  22          //= 参    数: 普通键New_Key,功能键New_FuncKey,缓存器的指针
  23          //= 返 回 值:
  24          //= 函数性质:私有函数
  25          //**********************************************************************
  26          
  27          void KEYPAD_Scan(char* const Key, char* const Fn_Key)
  28          {
  29   1      
  30   1         C1 = 0; 
  31   1            if (R1 == 0) *Fn_Key = 'o'; //ON键
  32   1            if (R2 == 0) *Key    =  0;
  33   1            if (R3 == 0) *Fn_Key = '=';
  34   1            if (R4 == 0) *Key    = '+';
  35   1         C1 = 1;
  36   1      
  37   1         C2 = 0; 
  38   1            if (R1 == 0) *Key = 1;
  39   1            if (R2 == 0) *Key = 2;
  40   1            if (R3 == 0) *Key = 3;
  41   1            if (R4 == 0) *Key = '-';
  42   1         C2 = 1;
  43   1      
  44   1         C3 = 0; 
  45   1            if (R1 == 0) *Key = 4;
  46   1            if (R2 == 0) *Key = 5;
  47   1            if (R3 == 0) *Key = 6;
  48   1            if (R4 == 0) *Key = '*';
  49   1         C3 = 1;
  50   1      
  51   1         C4 = 0; 
  52   1            if (R1 == 0) *Key = 7;
  53   1            if (R2 == 0) *Key = 8;
  54   1            if (R3 == 0) *Key = 9;
  55   1            if (R4 == 0) *Key = '/';   
C51 COMPILER V7.01  KEY                                                                    04/27/2007 22:08:22 PAGE 2   

  56   1      
  57   1         C4 = 1;
  58   1      
  59   1      }
  60          //*********************************************************************
  61          //= 函数原型: void KEY_Update()
  62          //= 功    能: 键盘缓冲寄存器更新程序. 普通键Key, 功能键Fn_Key
  63          //= 参    数: 
  64          //= 返 回 值:
  65          //= 函数性质:公有函数
  66          //**********************************************************************
  67          void KEY_Update() 
  68          {
  69   1         static uchar delay=20;               //去抖动延时
  70   1         static bit delaying=0;               //标识是否正在延时
  71   1      
  72   1         if(delaying==0)
  73   1         {
  74   2             if(Key==Nothing)            //如果Key缓存器中的数据未被读取,则不扫描键盘
  75   2                 {
  76   3                    KEYPAD_Scan(&Key,&Fn_Key);           //扫描键盘
  77   3                        if(Key!=Nothing)
  78   3                        {
  79   4                           delaying=1; 
  80   4                               Key=Nothing; 
  81   4      
  82   4                         }
  83   3                      }
  84   2         }
  85   1         else
  86   1         {
  87   2            if(delay==0)                               //延时结束
  88   2                {
  89   3                   KEYPAD_Scan(&Key,&Fn_Key);    //读取键盘
  90   3                       delay=20;
  91   3                       delaying=0;
  92   3                }
  93   2                else   delay--;                       //延时减一
  94   2         }
  95   1      }                                                  
  96          
  97          
  98            
  99          
 100          
 101              


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    380    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =      3       6
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -