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

📄 dev_io.lst

📁 cy7c68013的输入输出源码 和HEX文件 实现对键盘的读和对数码管的写操作
💻 LST
字号:
C51 COMPILER V7.02a   DEV_IO                                                               02/28/2006 17:23:23 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE DEV_IO
OBJECT MODULE PLACED IN DEV_IO.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DEV_IO.C OPTIMIZE(6,SPEED) DEBUG OBJECTEXTEND

stmt level    source

   1          #include "Fx2.h"
   2          #include "Fx2regs.h"
   3          
   4          #define PF_IDLE                 0
   5          #define PF_GETKEYS              1
   6          
   7          #define KEY_WAKEUP              0
   8          #define KEY_F1                  1
   9          #define KEY_F2                  2
  10          #define KEY_F3                  3
  11          
  12          #define BTN_ADDR                0x38
  13          #define LED_ADDR                0x39
  14          
  15          BYTE xdata Digit[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x98, 0x88, 0x83, 0xc6, 0xa1,
             - 0x86, 0x8e };
  16          
  17          main()
  18          {
  19   1              BYTE    num = 0;
  20   1              BYTE xdata      buttons;
  21   1              BYTE    kstates = 0xff;
  22   1              BYTE    kdeltas;
  23   1              BYTE    key;
  24   1              BYTE    display = TRUE;
  25   1      
  26   1              EZUSB_InitI2C();                        // Initialize EZ-USB I2C controller
  27   1      
  28   1              while(TRUE)
  29   1              {
  30   2                      EZUSB_ReadI2C(BTN_ADDR,0x01,&buttons);  // Read button states
  31   2      
  32   2                      kdeltas = kstates ^ buttons;                    // 
  33   2                      kstates = buttons;
  34   2                      key = 0;
  35   2      
  36   2                      while(kdeltas)
  37   2                      {
  38   3                              if(kdeltas & 0x01)
  39   3                              {
  40   4                                      if(!((kstates >> key) & 0x01))
  41   4                                              switch(key)
  42   4                                              {
  43   5                                                      case KEY_F1:
  44   5                                                              if(--num > 0x0f)
  45   5                                                                      num = 0x0f;
  46   5                                                              break;
  47   5                                                      case KEY_F2:
  48   5                                                              if(++num > 0x0f)
  49   5                                                                      num = 0;
  50   5                                                              break;
  51   5                                                      case KEY_WAKEUP:
  52   5                                                              num = 0;
  53   5                                                              break;
  54   5                                                      case KEY_F3:
C51 COMPILER V7.02a   DEV_IO                                                               02/28/2006 17:23:23 PAGE 2   

  55   5                                                              num = 0x0f;
  56   5                                              }
  57   4                                      display = TRUE;
  58   4                              }
  59   3                              kdeltas = kdeltas >> 1;
  60   3                              ++key;
  61   3                      }
  62   2                      if(display)
  63   2                      {
  64   3                              EZUSB_WriteI2C(LED_ADDR, 0x01, &(Digit[num]));
  65   3                              EZUSB_WaitForEEPROMWrite(LED_ADDR);
  66   3                              display = FALSE;
  67   3                      }
  68   2              }
  69   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    150    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     16       1
   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 + -