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

📄 2geioshibie.lst

📁 2个IO口识别6个按键
💻 LST
字号:
C51 COMPILER V8.02   2GEIOSHIBIE                                                           06/09/2011 11:08:44 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 2GEIOSHIBIE
OBJECT MODULE PLACED IN 2geIOshibie.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 2geIOshibie.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uchar unsigned char
   3          sbit IO1=P1^6;
   4          sbit IO2=P1^7;
   5          uchar keybuf,keydat;
   6          bit bkeyok;
   7          void delay_us(unsigned int n)
   8          {
   9   1        while(--n);
  10   1      }
  11          void delay_ms(unsigned int n)
  12          {
  13   1        do
  14   1        {
  15   2          delay_us(1000);
  16   2        }
  17   1        while(--n);
  18   1      }
  19          bit scan_key(void)
  20          {
  21   1         uchar tempkey;
  22   1         IO1=1;
  23   1         IO2=1;
  24   1         if(!IO1)
  25   1         {
  26   2           if(!IO2)
  27   2                  tempkey=3;
  28   2                else
  29   2                   tempkey=2;
  30   2         }
  31   1         else
  32   1         {
  33   2           if(!IO2)
  34   2               tempkey=1;
  35   2               else
  36   2               {
  37   3                 IO1=0;
  38   3                 if(!IO2)
  39   3                 {
  40   4                   IO1=1;
  41   4      
  42   4                       IO2=0;
  43   4      
  44   4                       if(!IO1)
  45   4      
  46   4                       tempkey=4;
  47   4      
  48   4                         else
  49   4                       tempkey=6;
  50   4                 }
  51   3                 else
  52   3                 {
  53   4                   IO1=1;
  54   4                       IO2=0;
  55   4                       if(!IO1)
C51 COMPILER V8.02   2GEIOSHIBIE                                                           06/09/2011 11:08:44 PAGE 2   

  56   4                          tempkey=5;
  57   4                    else
  58   4                               tempkey=0;
  59   4      
  60   4                 }
  61   3               }
  62   2         }
  63   1         IO1=1;
  64   1         IO2=1;
  65   1         if((keybuf!=0)&&(keybuf==tempkey))
  66   1         {
  67   2           bkeyok=1;
  68   2               keydat=tempkey;
  69   2         }
  70   1         keybuf=tempkey;
  71   1         teturn(bkeyok);
*** WARNING C206 IN LINE 71 OF 2GEIOSHIBIE.C: 'teturn': missing function-prototype
*** ERROR C267 IN LINE 71 OF 2GEIOSHIBIE.C: 'teturn': requires ANSI-style prototype
  72   1      }
  73          uchar read_key(void)
  74          {
  75   1        bkeyok=0;
  76   1        return(keydat);
  77   1      }
  78          void doanthing(uchar key)
  79          {
  80   1        //按键处理只有按键并正确消抖时才会进入,功能自己随便写
  81   1      }
  82          void main(void)
  83          {
  84   1        while(1)
  85   1        {
  86   2          if(scan_key())
  87   2              doanthing(read_key());
  88   2              delay_ms(10);
  89   2        }
  90   1      }

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

⌨️ 快捷键说明

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