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

📄 menu.lst

📁 单片机51环境下的字库代码122*32点阵的液晶显示
💻 LST
字号:
C51 COMPILER V7.07   MENU                                                                  08/17/2004 16:30:52 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN menu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE menu.c BROWSE INCDIR(C:\keil7.07\c51\INC\Atmel\) DEBUG OBJECTEXTEND

stmt level    source

   1          #include "lcd.h"
   2          #include "stdio.h"
   3          #include "keyscan.h"
*** WARNING C318 IN LINE 3 OF keyscan.h: can't open file 'AT89X51.H'
   4          #include "menu.h"
   5          #include "DVDCTRL.h"
   6          unsigned char code MenuSize[]={2,4,6};
   7          char code *menu0[]={"SIGNAL","OUTPUT"};
   8          char code *menu1[]={"HDTV1","HDTV2","STEP","GRID"};
   9          char code *menu2[]={"480p/60","480p/50","720p/60","720p/50","1080/60","1080/50"};
  10          code void (*Menu1Func[])()={NULL,NULL,NULL,NULL};
  11          code void (*Menu2Func[])()={NULL,NULL,NULL,NULL};
  12          DisMenu(unsigned char CurMenuId,unsigned char CurMenuItem)
  13          {
  14   1              char code **pmenu;
  15   1              unsigned char msize;
  16   1              unsigned char pg,v,i;
  17   1      
  18   1              switch(CurMenuId)
  19   1              {
  20   2              case 0: 
  21   2                      pmenu=menu0;
  22   2                      msize=MenuSize[0];
  23   2                      break;
  24   2              case 1: 
  25   2                      pmenu=menu1;
  26   2                      msize=MenuSize[1];
  27   2                      break;
  28   2              case 2:
  29   2                      pmenu=menu2;
  30   2                      msize=MenuSize[2];
  31   2                      break;
  32   2              default: 
  33   2                      pmenu=menu0;
  34   2                      msize=MenuSize[0];
  35   2                      break;  
  36   2              }
  37   1      
  38   1              pg=CurMenuItem/8;
  39   1              v=CurMenuItem%8;
  40   1              LCDClear();
  41   1              for(i=0;i<8;i++)
  42   1              {
  43   2                      if(pg*8+i>=msize)break;
  44   2                      if(v==i)LCDDrawText8(pmenu[pg*8+i],61*(i%2),8*(i/2),DrawType_NotNormal);
  45   2                      else LCDDrawText8(pmenu[pg*8+i],61*(i%2),8*(i/2),DrawType_Normal);
  46   2              }
  47   1      }
  48          void Proc()
  49          {
  50   1          unsigned long code DelayTime=400000;//7s=400000
  51   1              unsigned char CurMenuId=0,CurMenuItem=0;
  52   1              unsigned long count=DelayTime;
  53   1      
  54   1              
C51 COMPILER V7.07   MENU                                                                  08/17/2004 16:30:52 PAGE 2   

  55   1              DisMenu(CurMenuId,CurMenuItem);
  56   1              while(count--)
  57   1              {
  58   2                      unsigned char KeyVal;
  59   2              
  60   2                      KeyVal=KeyUpScan();
  61   2                      switch(KeyVal)
  62   2                      {
  63   3                      case 0x1:                                                                                       //<<
  64   3                              count=DelayTime;
  65   3                              if(CurMenuItem>0)CurMenuItem--;
  66   3                              else if(CurMenuItem==0)CurMenuItem=MenuSize[CurMenuId]-1;
  67   3                              KeyVal=0;
  68   3                              DisMenu(CurMenuId,CurMenuItem);
  69   3                              break;
  70   3                      case 0x2:                                                                                       //==
  71   3                              count=DelayTime;
  72   3                              if(CurMenuItem/2<MenuSize[CurMenuId]/2-1)CurMenuItem+=2;
  73   3                              else if(CurMenuItem/2>=MenuSize[CurMenuId]/2-1)CurMenuItem=CurMenuItem%2;
  74   3                              DisMenu(CurMenuId,CurMenuItem);
  75   3                              break;  
  76   3                      case 0x4:                                                                                       //>>
  77   3                              count=DelayTime;
  78   3                              if(CurMenuItem<MenuSize[CurMenuId]-1)CurMenuItem++;
  79   3                              else if(CurMenuItem==MenuSize[CurMenuId]-1)CurMenuItem=0;
  80   3                              DisMenu(CurMenuId,CurMenuItem);
  81   3                              break;                                                                          
  82   3                      case 0x8:                                                                                       //set
  83   3                      
  84   3                      count=DelayTime;
  85   3                              break;
  86   3                      case 0x10:                                                                                      //ok                                                                    
  87   3                              count=DelayTime;
  88   3                              if(CurMenuId==0)CurMenuId=CurMenuItem+1;
  89   3                              else if(CurMenuId==1){ChgCtrlSignal(CurMenuItem);return ;}
  90   3                              else if(CurMenuId==2){SetCtrlMode(CurMenuItem,0);SetCtrlSignal(CurMenuItem,0);return ;}
  91   3                      /*      else 
  92   3                              {
  93   3                                      void (**pMenuFunc)();
  94   3                                      if(CurMenuId==1)pMenuFunc=Menu1Func;
  95   3                                      else if(CurMenuId==2)pMenuFunc=Menu2Func;
  96   3                                      if(pMenuFunc[CurMenuItem]!=NULL)
  97   3                                              pMenuFunc[CurMenuItem]();
  98   3                                                      
  99   3                                      return ;
 100   3                              }*/
 101   3                              DisMenu(CurMenuId,CurMenuItem);
 102   3                              break;
 103   3                      case 0x20:                                                                                      //A
 104   3                              count=DelayTime;
 105   3                              if(CurMenuItem>1)CurMenuItem-=2;
 106   3                              else if(CurMenuItem<=1)CurMenuItem=(MenuSize[CurMenuId]/2-1)*2+CurMenuItem;
 107   3                              DisMenu(CurMenuId,CurMenuItem);
 108   3                              break;
 109   3                      case 0x40:                                                                      //cancel        
 110   3                              count=DelayTime;
 111   3                              if(CurMenuId==0)return;
 112   3                              else CurMenuId=0;
 113   3                              DisMenu(CurMenuId,CurMenuItem);
 114   3                              break;          
 115   3                      default:
 116   3                              count--;
C51 COMPILER V7.07   MENU                                                                  08/17/2004 16:30:52 PAGE 3   

 117   3                      break;
 118   3                      }
 119   2              }
 120   1      
 121   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    644    ----
   CONSTANT SIZE    =    115    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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