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

📄 key.lst

📁 lcd16x2的驱动程序,另外有proteus制作的模型,万年历
💻 LST
字号:
C51 COMPILER V7.09   KEY                                                                   12/21/2007 09:06:41 PAGE 1   


C51 COMPILER V7.09, 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 "16x2_main.h"
   2          #include "16x2_lcd.h"
   3          
   4          
   5          
   6          bit Menu_State=0;                   //为1时进入设定状态
   7          unsigned char Position;
   8          const unsigned char C_Position[14]={5,6,7,8,10,11,13,14,5,6,8,9,11,12};
   9          
  10          
  11          void Key_Initial()
  12          {
  13   1              EA=1;
  14   1              EX1=1;
  15   1      }
  16          
  17          
  18          void Key_Menu_server()
  19          {
  20   1        Menu_State=!Menu_State;      //当用时钟计时是记得关中断
  21   1        Position=0;
  22   1        
  23   1        if(Menu_State)
  24   1            {
  25   2                Lcd_CodeWrite(0x0f); //显示开,光标开,闪   //进入
  26   2      
  27   2                }
  28   1      
  29   1        else
  30   1            {
  31   2            Lcd_CodeWrite(0x0c); //显示开,光标关,闪     //退出
  32   2      
  33   2                }
  34   1      
  35   1      }
  36          void Key_Set_server()
  37          { 
  38   1        //移动光标,更新输入 
  39   1        if(Menu_State)
  40   1         {
  41   2          Position++;
  42   2          if(Position==14)Position=0;
  43   2          if(Position>=8)
  44   2             {
  45   3              while(Lcd_StateRead());
  46   3              Lcd_CodeWrite(0xc0|C_Position[Position]);  //输入地址
  47   3                  }
  48   2           else
  49   2             {
  50   3              while(Lcd_StateRead());
  51   3              Lcd_DataWrite(0x80|C_Position[Position]); 
  52   3                  }
  53   2           }
  54   1      
  55   1           Lcd_FramDisplay();
C51 COMPILER V7.09   KEY                                                                   12/21/2007 09:06:41 PAGE 2   

  56   1      }
  57          
  58          
  59          void Key_Up_server()
  60          {
  61   1         if(Menu_State)
  62   1         {
  63   2           switch (Position)
  64   2                {
  65   3              case 0:
  66   3                      case 1:
  67   3                      case 2:
  68   3                      case 3:
  69   3                  case 5:
  70   3                      case 7:
  71   3                      case 9:
  72   3                      case 11:
  73   3                      case 13: datatime[Position]=(++datatime[Position])%10;break;
  74   3              case 4:  datatime[Position]=(++datatime[Position])%2;break;
  75   3                      case 6:  datatime[Position]=(++datatime[Position])%4;break;
  76   3                      case 8:  datatime[Position]=(++datatime[Position])%3;break;
  77   3                      case 10:
  78   3                      case 12: datatime[Position]=(++datatime[Position])%7;break;
  79   3                }
  80   2      
  81   2         }
  82   1      
  83   1        Lcd_FramDisplay();
  84   1      
  85   1      }
  86          void Key_Down_server()
  87          {
  88   1          if(Menu_State)
  89   1         {
  90   2           switch (Position)
  91   2                {
  92   3              case 0:
  93   3                      case 1:
  94   3                      case 2:
  95   3                      case 3:
  96   3                  case 5:
  97   3                      case 7:
  98   3                      case 9:
  99   3                      case 11:
 100   3                      case 13: datatime[Position]--;if(datatime[Position]==255)datatime[Position]=9;break;
 101   3              case 4:  datatime[Position]--;if(datatime[Position]==255)datatime[Position]=1;break;
 102   3                      case 6:  datatime[Position]--;if(datatime[Position]==255)datatime[Position]=3;break;
 103   3                      case 8:  datatime[Position]--;if(datatime[Position]==255)datatime[Position]=2;break;
 104   3                      case 10:
 105   3                      case 12: datatime[Position]--;if(datatime[Position]==255)datatime[Position]=6;break;
 106   3                }
 107   2      
 108   2         }
 109   1           Lcd_FramDisplay();
 110   1      }
 111          
 112          
 113          
 114          void Key_int() interrupt 2
 115          {
 116   1              unsigned char key;
 117   1              EA=0;
C51 COMPILER V7.09   KEY                                                                   12/21/2007 09:06:41 PAGE 3   

 118   1              EX1=0;
 119   1      
 120   1              key=KEY_VALUE;
 121   1              Delay(500);
 122   1              if(key!=KEY_VALUE) goto keyend;
 123   1              Delay(500);
 124   1              switch(key)
 125   1              {
 126   2                      case 0xe: Key_Menu_server();  //menu  1110
 127   2                              break;
 128   2                      case 0xd: Key_Set_server();   //set   1101
 129   2                              break;
 130   2                      case 0xb: Key_Up_server();    //up   1011
 131   2                              break;
 132   2                      case 0x7: Key_Down_server();  //down  0111
 133   2                              break;
 134   2                      default: ;
 135   2               }
 136   1      keyend: Delay(10);
 137   1                  EA=1;
 138   1                  EX1=1;
 139   1      } 
 140          
 141          


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