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

📄 keyboard.lst

📁 键盘扫描C程序,希望对大家有用
💻 LST
字号:
C51 COMPILER V7.20   KEYBOARD                                                              12/03/2004 14:58:06 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<stdio.h>
   3          #include<stdlib.h> 
   4          #include<intrins.h>
   5          #include<absacc.h>
   6          
   7          #define uchar unsigned char
   8          #define uint unsigned int
   9          #define nop _nop_()
  10          
  11          sbit pc=P2^0;
  12          sbit pd=P2^1;
  13          
  14          code uchar table[16]={0xfc,0x60,0xda,0xF2,0x66,
  15                                0xB6,0xBE,0xE0,0xFE,0xf6,
  16                                                    0x10,0x11,0x12,0x13,0x14,0x15};
  17          uchar keycode;
  18                  //----------------------------------------------
  19                  void sendData(char c)
  20                  {
  21   1                      char i;
  22   1                      bit temp;
  23   1                      c=~c;
  24   1                      for(i=0;i<8;i++)
  25   1                  {
  26   2                        if (c&0xfe==0xfe) temp=0;
  27   2                        else temp=1;
  28   2      
  29   2                        pc=0;
  30   2                        pd=temp;
  31   2                        pc=1;
  32   2      
  33   2                        c>>=1;
  34   2                      }
  35   1              }
  36          //---------------------------------
  37          void delay2ms()
  38          {
  39   1        uchar t=255;
  40   1        while(t--);
  41   1        t=52;
  42   1        while(t--);
  43   1      }
  44          //---------------------------------
  45          void delay10ms()
  46          {
  47   1        uchar i=5;
  48   1        while(i--) delay2ms();
  49   1      }
  50          //---------------------------------
  51          void detectkey(void)
  52          {
  53   1        uchar key,line,col;
  54   1      
  55   1        P1=0xf0;
C51 COMPILER V7.20   KEYBOARD                                                              12/03/2004 14:58:06 PAGE 2   

  56   1        key=P1&0xf0;
  57   1        if(key!=0xf0)
  58   1        {
  59   2          delay10ms();
  60   2              P1=0xf0;
  61   2          key=P1&0xf0;
  62   2              if(key!=0xf0) //confirm
  63   2          {
  64   3                if(key==0xe0) line=0;
  65   3                if(key==0xd0) line=1;
  66   3            if(key==0xb0) line=2;
  67   3            if(key==0x70) line=3;
  68   3      
  69   3                P1=0xfe;
  70   3                key=P1&0xf0;          
  71   3            if(key!=0xf0) col=0;
  72   3      
  73   3                P1=0xfd;
  74   3                key=P1&0xf0;
  75   3                if(key!=0xf0) col=1;
  76   3      
  77   3            P1=0xfb;
  78   3                key=P1&0xf0;
  79   3                if(key!=0xf0) col=2;
  80   3                
  81   3            P1=0xf7;
  82   3                key=P1&0xf0;
  83   3                if(key!=0xf0) col=3;
  84   3      
  85   3            keycode=(line*4+col);
  86   3                sendData(table[keycode]);
  87   3      
  88   3            P1=0xf0;
  89   3            key=P1&0xf0;
  90   3            while(key!=0xf0)
  91   3            {
  92   4              P1=0xf0;
  93   4              key=P1&0xf0;
  94   4            };//wait until release
  95   3          }
  96   2        }
  97   1      }
  98          //==================================
  99          void main(void)
 100          {
 101   1        while(1) detectkey(); 
 102   1      }


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