keyboard.lst

来自「含有大量的单片机代码」· LST 代码 · 共 328 行

LST
328
字号
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 1   


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

stmt level    source

   1          #include"reg52.h"
   2          #include "intrins.h"
   3          #include "key.h" //按键通码与ascii对照表
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          #define cmd_word 0xff   //复位命令
   7          
   8          //sbit Clk_Line = P3^3; //时钟线
   9          //sbit Data_Line=P3^5;  //键盘数据线
  10          
  11          sbit Clk_Line = P3^3; //时钟线
  12          sbit Data_Line=P3^4;  //键盘数据线
  13          
  14          uchar key=0; //按键最终值
  15          uint Key_Value=0;
  16          uchar save=0;
  17          uchar Int_Time=0;
  18          void init(void);
  19          void delay(uint us);  //us=12大约100us 
  20          void command(uchar cmd);
  21          void commanden(uchar cmd);
  22          void interrupt1_receive(void);
  23          void getkey(void) ;////内部中断0 用来处理缓冲区里的数据
  24          void main(void)
  25          {
  26   1          uchar thir=2; 
  27   1          init();                //初始化
  28   1          while(thir--)
  29   1          { 
  30   2             command(cmd_word);  
  31   2                 //commanden(0xf4);
  32   2             delay(1000);
  33   2          }
  34   1          delay(150);        
  35   1          delay(300);
  36   1          while(1)
  37   1          {
  38   2            EX1=1;
  39   2            while(EX1) ;
  40   2            P0=Key_Value;
  41   2            getkey();
  42   2      
  43   2          }
  44   1      }
  45          void init(void)
  46          {
  47   1         EA = 1;
  48   1         IT1 = 1;     //外部中断1是下降沿触发方式
  49   1         TMOD = 0x20; //定时器1工作于方式2
  50   1         TL1 = 0xfd;  //串口波特率设置为9600
  51   1         TH1 = 0xfd;
  52   1         SCON = 0xd8; //11011000 串口工作方式3,11位异步收发,波特率由定时器1控制 
  53   1         PCON = 0x00;
  54   1         TR1 = 1;     //启动定时器1
  55   1      }
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 2   

  56          
  57          void getkey(void)
  58          {
  59   1           uchar i=0;
  60   1           save = Key_Value;
  61   1           //P0 = save;
  62   1           for(i=0;i<80;i++)
  63   1           {
  64   2               if(noshift[i][0]==save) //普按键的通码在缓冲区的第一位
  65   2               {   
  66   3                   key=noshift[i][1]; //搜索到字母后进行相应的处理           
  67   3                   P0 = key;
  68   3                   break;   
  69   3               }
  70   2           } 
  71   1      } 
  72          
  73          void delay(uint us)  //us=12大约100us 
  74          { 
  75   1         while(us--) ;
  76   1      }
  77          
  78          void interrupt1_receive(void) interrupt 2
  79          { 
  80   1        _nop_();
  81   1        if(Data_Line)
  82   1           Key_Value|=0x8000;
  83   1        Int_Time++;
  84   1        if(Int_Time==11)
  85   1        { 
  86   2          Key_Value>>=6;
  87   2          Int_Time=0;
  88   2          EX1=0;
  89   2        }
  90   1        Key_Value>>=1; 
  91   1      }
  92          void command(uchar cmd)
  93          {  
  94   1         uchar parity,time;
  95   1         parity=0;
  96   1         Clk_Line=1;
  97   1         Data_Line=1;
  98   1         delay(100);
  99   1         Clk_Line=0;
 100   1         delay(20);  
 101   1         Data_Line=0;
 102   1         _nop_();
 103   1         _nop_();
 104   1          _nop_();
 105   1         _nop_();
 106   1         _nop_();
 107   1         Clk_Line=1;
 108   1         while(Clk_Line)  ; 
 109   1         _nop_();
 110   1         _nop_();
 111   1         _nop_();
 112   1         _nop_();
 113   1         _nop_();
 114   1         Data_Line=1;        //数据开始了
 115   1         while(!Clk_Line) ;
 116   1         while(Clk_Line)  ;
 117   1         _nop_();
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 3   

 118   1         _nop_();
 119   1         _nop_();
 120   1         _nop_();
 121   1         _nop_();
 122   1         Data_Line=1;
 123   1         while(!Clk_Line) ;
 124   1         while(Clk_Line)  ;
 125   1         _nop_();
 126   1         _nop_();
 127   1         _nop_();
 128   1         _nop_();
 129   1         _nop_();
 130   1         Data_Line=1;
 131   1         while(!Clk_Line) ;
 132   1         while(Clk_Line)  ;
 133   1         _nop_();
 134   1         _nop_();
 135   1         _nop_();
 136   1         _nop_();
 137   1         _nop_();
 138   1         Data_Line=1;
 139   1         while(!Clk_Line) ;
 140   1         while(Clk_Line)  ;
 141   1         _nop_();
 142   1         _nop_();
 143   1         _nop_();
 144   1         _nop_();
 145   1         _nop_();
 146   1         Data_Line=1;
 147   1         while(!Clk_Line) ;
 148   1         while(Clk_Line)  ;
 149   1         _nop_();
 150   1         _nop_();
 151   1         _nop_();
 152   1         _nop_();
 153   1         _nop_();
 154   1         Data_Line=1;
 155   1         while(!Clk_Line) ;
 156   1         while(Clk_Line)  ;
 157   1         _nop_();
 158   1         _nop_();
 159   1         _nop_();
 160   1         _nop_();
 161   1         _nop_();
 162   1         Data_Line=1;
 163   1         while(!Clk_Line) ;
 164   1         while(Clk_Line)  ;
 165   1         _nop_();
 166   1         _nop_();
 167   1         _nop_();
 168   1         _nop_();
 169   1         _nop_();
 170   1         Data_Line=1;
 171   1         while(!Clk_Line) ; 
 172   1         while(Clk_Line)  ; 
 173   1         parity=8;
 174   1         if((parity&0x01))
 175   1            Data_Line=0;
 176   1         Data_Line=1;
 177   1         _nop_();
 178   1         _nop_();
 179   1         _nop_();
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 4   

 180   1         _nop_();
 181   1         _nop_();
 182   1         while(!Clk_Line) ;
 183   1         while(Clk_Line)  ;
 184   1         Data_Line=1;
 185   1         while(!Clk_Line);
 186   1         while(Data_Line) ; 
 187   1         while(Clk_Line) ;
 188   1         while(!Clk_Line) ;
 189   1         while(!Data_Line);
 190   1      } 
*** WARNING C280 IN LINE 92 OF KEYBOARD.C: 'cmd': unreferenced local variable
*** WARNING C280 IN LINE 94 OF KEYBOARD.C: 'time': unreferenced local variable
 191          
 192          void commanden(uchar cmd)
 193          { 
 194   1         uchar parity,time;
 195   1         parity=0;
 196   1         Clk_Line=1;
 197   1         Data_Line=1;
 198   1         delay(100);
 199   1         Clk_Line=0;
 200   1         delay(20);  
 201   1         Data_Line=0;
 202   1         _nop_();
 203   1         _nop_();
 204   1         _nop_();
 205   1         _nop_();
 206   1         _nop_();
 207   1         Clk_Line=1;
 208   1         while(Clk_Line)  ; 
 209   1         _nop_();
 210   1         _nop_();
 211   1         _nop_();
 212   1         _nop_();
 213   1         _nop_();
 214   1         Data_Line=0;        
 215   1         while(!Clk_Line) ;
 216   1         while(Clk_Line)  ;
 217   1         _nop_();
 218   1         _nop_();
 219   1         _nop_();
 220   1         _nop_();
 221   1         _nop_();
 222   1         Data_Line=0;
 223   1         while(!Clk_Line) ;
 224   1         while(Clk_Line)  ;
 225   1         _nop_();
 226   1         _nop_();
 227   1         _nop_();
 228   1         _nop_();
 229   1         _nop_();
 230   1         Data_Line=1;
 231   1         while(!Clk_Line) ;
 232   1         while(Clk_Line)  ;
 233   1         _nop_();
 234   1         _nop_();
 235   1         _nop_();
 236   1         _nop_();
 237   1         _nop_();
 238   1         Data_Line=0;
 239   1         while(!Clk_Line) ;
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 5   

 240   1         while(Clk_Line)  ;
 241   1         _nop_();
 242   1         _nop_();
 243   1         _nop_();
 244   1         _nop_();
 245   1         _nop_();
 246   1         Data_Line=1;
 247   1         while(!Clk_Line) ;
 248   1         while(Clk_Line)  ;
 249   1         _nop_();
 250   1         _nop_();
 251   1         _nop_();
 252   1         _nop_();
 253   1         _nop_();
 254   1         Data_Line=1;
 255   1         while(!Clk_Line) ;
 256   1         while(Clk_Line)  ;
 257   1        _nop_();
 258   1        _nop_();
 259   1         _nop_();
 260   1         _nop_();
 261   1         _nop_();
 262   1         Data_Line=1;
 263   1         while(!Clk_Line) ;
 264   1         while(Clk_Line)  ;
 265   1         _nop_();
 266   1         _nop_();
 267   1         _nop_();
 268   1         _nop_();
 269   1         _nop_();
 270   1         Data_Line=1;
 271   1         while(!Clk_Line) ;   
 272   1         while(Clk_Line)  ; 
 273   1         parity=5; 
 274   1         if((parity&0x01))
 275   1            Data_Line=0;
 276   1         Data_Line=1;
 277   1         _nop_();
 278   1         _nop_();
 279   1         _nop_();
 280   1         _nop_();
 281   1         _nop_();
 282   1         while(!Clk_Line) ;
 283   1         while(Clk_Line)  ;
 284   1         Data_Line=1;
 285   1         while(!Clk_Line);
 286   1         while(Data_Line) ;
 287   1         while(Clk_Line) ;
 288   1         while(!Clk_Line) ;
 289   1         while(!Data_Line);
 290   1      }
*** WARNING C280 IN LINE 192 OF KEYBOARD.C: 'cmd': unreferenced local variable
*** WARNING C280 IN LINE 194 OF KEYBOARD.C: 'time': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    536    ----
   CONSTANT SIZE    =    254    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       5
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.06   KEYBOARD                                                              12/01/2006 20:20:16 PAGE 6   

   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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