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

📄 key.lst

📁 电子时钟
💻 LST
字号:
C51 COMPILER V8.08   KEY                                                                   04/20/2009 16:06:22 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include <init.h>
   3          extern void Delay(unsigned char i);
   4          extern void LCD_Write_Com(unsigned char com) ;
   5          extern void LCD_Write_Dat(unsigned char dat) ;
   6          extern unsigned char LCD_Read_Com(void);
   7          unsigned char tr[]={0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,
   8                                  0xc4,0xc5,0xc7,0xc8,0xca,0xcb};
   9          
  10          /*************键盘查询扫描函数*************************/
  11          unsigned char Key_Scan(void)
  12          {
  13   1         unsigned char a,b,temp; 
  14   1         temp=0xff;
  15   1         KEY=0x0f;
  16   1       //  while(c--!=0)
  17   1       //  {
  18   1           if(KEY!=0x0f)
  19   1            {
  20   2                  Delay(20);
  21   2                      if(KEY!=0x0f)
  22   2                         {
  23   3                          a=KEY;
  24   3                          KEY=0xf0;
  25   3                          b=KEY;
  26   3                          a=a|b;
  27   3                              switch(a)
  28   3                               {
  29   4                                case 0xe7:temp='1';break;
  30   4                                case 0xd7:temp='2';break;
  31   4                                case 0xb7:temp='3';break;
  32   4                                case 0x77:temp='T';break;
  33   4                                case 0xeb:temp='4';break;
  34   4                                case 0xdb:temp='5';break;
  35   4                                case 0xbb:temp='6';break;
  36   4                                case 0x7b:temp='C';break;
  37   4                                case 0xed:temp='7';break;
  38   4                                case 0xdd:temp='8';break;
  39   4                                case 0xbd:temp='9';break;
  40   4                                case 0x7d:temp='W';break;
  41   4                                case 0xee:temp='0';break;
  42   4                                case 0xde:temp='L';break;
  43   4                                case 0xbe:temp='R';break;
  44   4                                case 0x7e:temp='B';break;
  45   4                                default:break;
  46   4                            }  
  47   3                         }
  48   2      
  49   2                }
  50   1      
  51   1      //        if (temp!=0xff) break;
  52   1       //  }
  53   1         return temp;
  54   1      } 
  55          /*
C51 COMPILER V8.08   KEY                                                                   04/20/2009 16:06:22 PAGE 2   

  56          unsigned char Key_Scan(void)
  57          {
  58             unsigned char a,b,temp; 
  59             temp=0xff;
  60             KEY=0x0f;
  61             b=0x7f;
  62               if((KEY&0x0f)!=0x0f)
  63                {
  64                      Delay(20);
  65                          if((KEY&0x0f)!=0x0f)
  66                             {
  67                              for(a=0;a<4;a++)
  68                                  {
  69                               KEY=b;
  70                                   if((KEY&0x0f)!=0x0f)
  71                                      {
  72                                             temp=KEY;
  73                                             break;
  74                                          }
  75                                   else 
  76                                      b=(b>>1)|0x80;
  77                              }
  78                                  if(a>=4)
  79                                    return 0xff;
  80                                  switch(temp)
  81                                   {
  82                                    case 0x77:temp='1';break;
  83                                    case 0x7b:temp='2';break;
  84                                    case 0x7d:temp='3';break;
  85                                    case 0x7e:temp='T';break;
  86                                    case 0xb7:temp='4';break;
  87                                    case 0xbb:temp='5';break;
  88                                    case 0xbd:temp='6';break;
  89                                    case 0xbe:temp='C';break;
  90                                    case 0xd7:temp='7';break;
  91                                    case 0xdb:temp='8';break;
  92                                    case 0xdd:temp='9';break;
  93                                    case 0xde:temp='W';break;
  94                                    case 0xe7:temp='0';break;
  95                                    case 0xeb:temp='L';break;
  96                                    case 0xed:temp='R';break;
  97                                    case 0xee:temp='B';break;
  98                                    default:break;
  99                                }  
 100                             }
 101          
 102                    }
 103             return temp;
 104          }*/
 105          void Left(void)
 106          {
 107   1        unsigned char i,j,tmp;
 108   1        j=LCD_Read_Com();
 109   1        i=0;
 110   1        while(j!=tr[i])
 111   1              i++;
 112   1        if(i==0)
 113   1           tmp=tr[13];
 114   1        else
 115   1           tmp=tr[--i];
 116   1        LCD_Write_Com(tmp);
 117   1      }
C51 COMPILER V8.08   KEY                                                                   04/20/2009 16:06:22 PAGE 3   

 118          void Right(void)
 119          {
 120   1         unsigned char i,j,tmp;
 121   1         j=LCD_Read_Com();
 122   1         i=0;
 123   1         while(j!=tr[i])        //先找出当前光标在什么位置
 124   1              i++;
 125   1         if(i==13)
 126   1            tmp=tr[0];
 127   1         else
 128   1          { 
 129   2                i++;
 130   2            tmp=tr[i];
 131   2              }
 132   1         LCD_Write_Com(tmp);
 133   1      //   LCD_Write_Com(0x0f);//开显示,开光标,闪烁
 134   1      }


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