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

📄 keyboard.lst

📁 通过调节一个可变电阻得到变化的电压来模拟一个湿度度传感器
💻 LST
字号:
C51 COMPILER V8.05a   KEYBOARD                                                             10/28/2008 10:30:03 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: F:\Keil C51 V8\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          
   3          #define CHECK_KEY_DOWN  0
   4          #define CHECK_KEY_UP    1
   5          #define KEY_UP                  0
   6          #define KEY_DOWN                1
   7          
   8          sbit _p33 = P3^3;
   9          sbit _p34 = P3^4;
  10          sbit _p35 = P3^5;
  11          sbit _p36 = P3^6;
  12          
  13          char _key_status = CHECK_KEY_DOWN;
  14          char _key_idx = 0;
  15          char _key_led = 0;
  16          
  17          void _delay_1ns() {
  18   1      }
  19          
  20          void _p34_plus() {
  21   1          _p34 = 0;
  22   1          _delay_1ns();
  23   1          _p34 = 1;
  24   1          _delay_1ns();
  25   1          _p34 = 0;
  26   1      }
  27          
  28          void _p35_plus() {
  29   1          _p35 = 0;
  30   1          _delay_1ns();
  31   1          _p35 = 1;
  32   1          _delay_1ns();
  33   1          _p35 = 0;
  34   1      }
  35          
  36          void serial_output(unsigned char out) {
  37   1          char i = 0;
  38   1          for (i = 7; i >= 0 ; i--) {
  39   2              _p33 = (out >> i)& 0x01;
  40   2              _p34_plus();
  41   2          }
  42   1          _p35_plus();
  43   1      }
  44          
  45          char _check_key(unsigned char _key_idx) {
  46   1              serial_output(_key_led | (~(0x01<<_key_idx)) & 0x0f );
  47   1              if (_p36 == 0) {
  48   2                      return KEY_DOWN;
  49   2              } else {
  50   2                      return KEY_UP;
  51   2              }
  52   1      }
  53          
  54          char get_key(void) {
  55   1              char result = -1;
C51 COMPILER V8.05a   KEYBOARD                                                             10/28/2008 10:30:03 PAGE 2   

  56   1              if (_key_status == CHECK_KEY_DOWN) {
  57   2                      if (_check_key(_key_idx) == KEY_DOWN) {
  58   3                              _key_status = CHECK_KEY_UP;
  59   3                      } else {
  60   3                              _key_status = CHECK_KEY_DOWN;
  61   3                              if (++_key_idx == 4) {
  62   4                                      _key_idx = 0;
  63   4                              }
  64   3                      }
  65   2              } else if (_key_status == CHECK_KEY_UP) {
  66   2                      if (_check_key(_key_idx) == KEY_UP) {
  67   3                              result = _key_idx;
  68   3                              _key_status = CHECK_KEY_DOWN;
  69   3                              if (++_key_idx == 4) {
  70   4                                      _key_idx = 0;
  71   4                              }
  72   3                      } else {
  73   3                              _key_status = CHECK_KEY_UP;
  74   3                      }
  75   2              }
  76   1              return result;
  77   1      }


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