亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? menufunc.lst

?? 一個占用內存極少的菜單系統的實現,很使用的程序代碼
?? LST
字號:
C51 COMPILER V7.20   MENUFUNC                                                              09/04/2007 23:38:43 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MENUFUNC
OBJECT MODULE PLACED IN .\Obj\MenuFunc.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Src\MenuFunc.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\MenuFunc.lst) OB
                    -JECT(.\Obj\MenuFunc.obj)

line level    source

   1          /******************************************************************************
   2           * MenuFunc.C - "功能"菜單 條項動態生成代碼
   3           *
   4           *
   5           * DESCRIPTION: -
   6           *
   7           * modification history
   8           * --------------------
   9           * 01a, 04/sep/2007, 梁炎昌 written
  10           * --------------------
  11           ******************************************************************************/
  12          #include "CPU.H"
  13          
  14          #include "Ks0108.H"
  15          #include "Menu.H"
  16          #include "KeyScan.H"
  17          
  18          
  19          //功能
  20          //Bar型菜單
  21          void DispMenuFuncInit()
  22          {
  23   1      //--------------------
  24   1          GUI_Clear();
  25   1      //--------------------
  26   1          BarMenu = &MenuFunc[language];
  27   1          ItemNum = (*BarMenu).TextNum;
  28   1          DispItem = (*BarMenu).Text;
  29   1      
  30   1          //顯示按鍵對應的文字提示,1-->"進入"
  31   1          GUI_DispStringAtBar(*(Tip[language].Text+1),0,Enter_PosY,126,GUI_TA_HCENTER);
  32   1      
  33   1          //用戶定義的初始化代碼請放在這里
  34   1          BarMenuInit();//調用公共初始化的代碼
  35   1      }
  36          
  37          void DispMenuFuncUp()
  38          {
  39   1      
  40   1          switch(Item){
  41   2              case 0:{
  42   3      #ifdef  DynamicBar
                          Jump2Menu(MenuDataIndex,FlashMode_AutoInit);
              #else
  45   3                  Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
  46   3      #endif                        
  47   3      
  48   3                  break;
  49   3              }
  50   2              case 1:{
  51   3                  Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
  52   3                  break;
  53   3              }
  54   2              default:{
C51 COMPILER V7.20   MENUFUNC                                                              09/04/2007 23:38:43 PAGE 2   

  55   3                  Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
  56   3                  break;
  57   3              }
  58   2          }
  59   1      
  60   1      }
  61          void DispMenuFuncDown()
  62          {
  63   1          POP();
  64   1      }
  65          
  66          void DispMenuFuncLeft()
  67          {
  68   1          BarMenuLeft();
  69   1      }
  70          void DispMenuFuncRight()
  71          {
  72   1          BarMenuRight();
  73   1      }
  74          
  75          
  76          
  77          
  78          
  79          #ifdef DynamicBar
              
              
              //------------------------------------------------
              #define DataItemSize 8
              U8 DataItem[DispMax][DataItemSize]=
              {
              {"DataX  "},
              {"DataX  "},
              {"DataX  "},
              };
              
              
              U8 *_CONST_ DataItem_p[]=
              {
              DataItem[0],
              DataItem[1],
              DataItem[2]
              };
              
              
              U8 DynamicItem;
              U8 MaxDynamicItem = 0;
              
              /*
              實現動態數據顯示的最簡單的方式設定一定大小的緩沖,而后填充數據,但這樣把可以顯示的項限制了。這個方法對于維
             -護來說是最為簡單的
              2006/08/27
              如何利用有限緩沖來實現動態數據的條項層顯示?
              比如僅僅緩沖液晶可以顯示的條項數目,然后發現上/下越界了,就刷新緩沖?
              但這樣就要重新另外寫類似BarMenuLeft等函數來維護顯示
              */
              /*
              這里使用一個僅僅跟LCD顯示條項數目一致的緩沖區來緩沖動態生成的條項
              當實際條項數目MaxDynamicItem<=DispMax時 函數BarMenuLeft BarMenuRight工作正常
              而當MaxDynamicItem>DispMax時,我們設ItemNum = DispMax,在原本的代碼中,這意味著LCD剛剛能顯示所有的項
              于是一旦到了頂部上翻時就反顯底部,到了底部下翻時就反顯頂部 但是事實上的項的數目不是ItemNum!而是MaxDynamicI
             -tem
C51 COMPILER V7.20   MENUFUNC                                                              09/04/2007 23:38:43 PAGE 3   

              我們期望的行為是頂部上翻時,修改底部的項為新的項的數據,屏幕整個刷新(底部下翻類似)
              做法是設ItemNum = DispMax 并讓上下翻的行為跟 ItemNum > DispMax時的行為一致,跟蹤位置動態修改顯示內容
              */
              void DispMenuDataInit(void)
              {
                  U8 Menu_j;          //計數變量
                  U8 *ChangeDispItem; //項顯示內容指針
              //----------------------
                  GUI_Clear();
              //--------------------
                  GUI_Delay(100);
              //    do{
              //        MaxDynamicItem = InputNum(4,4,9);//要求輸入一個動態菜單的值,我們根據這個值生成菜單
                      MaxDynamicItem = 8;
              //        if(MaxDynamicItem == 0xFF){//退出
              //            Jump2Menu(SelfMenuIndex,FlashMode_AutoInit);
              // //           ReFlash = true;
              //            return;
              //        }
              //    }while(MaxDynamicItem ==0x00);//大于0才有效
              
              //    GUI_Clear();
                  DynamicItem = 0;
              
                  if(MaxDynamicItem >DispMax){//需要顯示的項數比液晶可以顯示的多
                      ItemNum = DispMax;
                      //08/29
                      BarDataMode = DynamicData;//通知BarMenuLeft和BarMenuRight函數現在的數據是動態數據
                      //當ItemNum == DispMax時,默認的顯示方式是到頭了直接跳到尾部的(到尾部了直接跳到頭部的)
                      //但是既然這是動態內容的話,而且實際上的項是MaxDynamicItem不少于DispMax,應當翻滾顯示的,通過修正B
             -arDataMode這個標志
                      //通知BarMenuLeft和BarMenuRight
                  } else {
                      ItemNum = MaxDynamicItem;
                  }
              
              
                  for(Menu_j = 0;Menu_j < ItemNum; Menu_j++){//初始化動態內容
                     ChangeDispItem = (U8 *)&DataItem[Menu_j];
                      *(ChangeDispItem + 4) = Menu_j+'0';
              //        *(DataItem_p[Menu_j]+4)       = Menu_j+'0';
                  }
              
              
                  DispItem = (U8 **)DataItem_p;
              
              
                  //顯示按鍵對應的文字提示,2-->"OK"
                  GUI_DispStringAtBar(*(Tip[language].Text+1),0,Enter_PosY,126,GUI_TA_HCENTER);
                  BarMenuInit();
                  Bar(DynamicItem,MaxDynamicItem,MenuBarPosX,MenuBarNumPosX);                  //維護滾動條
              }
              
              void DispMenuDataUp()
              {
                  //沒有動作,停留在本層菜單
                  Jump2Menu(SelfMenuIndex,FlashMode_NoAction);
              }
              void DispMenuDataDown()
              {
                  //08/29
                  BarDataMode = FixedData;
C51 COMPILER V7.20   MENUFUNC                                                              09/04/2007 23:38:43 PAGE 4   

                  POP();
              }
              
              void DispMenuDataLeft()
              {
                  U8 *ChangeDispItem; //項顯示內容指針
                  U8 ItemBackup;
                  if(DynamicItem == 0){//
                      DynamicItem = MaxDynamicItem-1;
                  } else {
                      DynamicItem--;
                  }
              
                  if(Where == 0){//頂部上移,需要修改數據
                      if (Item == 0) {//獲得Item
                          ItemBackup = ItemNum-1;
                      } else {
                          ItemBackup = Item-1;
                      }
                      ChangeDispItem = (U8*)&DataItem[ItemBackup];
                      *(ChangeDispItem + 4) = DynamicItem+'0';
                  }
                  BarMenuLeft();//
              
                  Bar(DynamicItem,MaxDynamicItem,MenuBarPosX,MenuBarNumPosX);                  //維護滾動條
              }
              void DispMenuDataRight()
              {
                  U8 *ChangeDispItem; //項顯示內容指針
                  U8 ItemBackup;
                  if(DynamicItem == MaxDynamicItem-1){//維護實際的Item值
                      DynamicItem = 0;
                  } else {
                      DynamicItem++;
                  }
              
                  if(Where == (DispMin-1)){//底部下移,需要修改數據
                      if (Item == (ItemNum-1)) {//獲得Item
                          ItemBackup = 0;
                      } else {
                          ItemBackup = Item + 1;
                      }
                      ChangeDispItem = (U8*)&DataItem[ItemBackup];//獲得修改位置
                      *(ChangeDispItem + 4) = DynamicItem+'0';
                  }
                  BarMenuRight();
                  Bar(DynamicItem,MaxDynamicItem,MenuBarPosX,MenuBarNumPosX);                  //維護滾動條
              }
              #endif
 225          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    155    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美电影一区| 欧美片网站yy| 高清在线成人网| 国产一区在线观看麻豆| 久久国产精品免费| 国产真实乱子伦精品视频| 国产专区欧美精品| 国产99久久久国产精品潘金| 不卡的电视剧免费网站有什么| 成人高清av在线| 在线视频一区二区免费| 欧美午夜精品久久久久久孕妇| 欧美日韩视频在线观看一区二区三区 | 另类小说视频一区二区| 午夜精品爽啪视频| 麻豆高清免费国产一区| 激情欧美一区二区三区在线观看| 国产美女精品一区二区三区| 丁香天五香天堂综合| 99麻豆久久久国产精品免费 | 91影院在线免费观看| 欧美性videosxxxxx| 在线播放一区二区三区| 精品福利一二区| 国产精品午夜久久| 亚洲1区2区3区视频| 国产在线精品一区二区夜色| 99久久伊人精品| 欧美高清激情brazzers| 久久精品视频在线免费观看| 亚洲卡通动漫在线| 久久99九九99精品| 91在线小视频| 欧美成人性福生活免费看| 亚洲人成网站影音先锋播放| 日本美女一区二区| 成人美女视频在线观看| 欧美日韩大陆在线| 国产亚洲欧洲997久久综合| 亚洲主播在线观看| 成人一级片在线观看| 欧美日韩国产区一| 国产精品国产自产拍高清av| 日韩国产精品久久久久久亚洲| 国产成人三级在线观看| 精品视频一区二区不卡| 国产精品美女久久久久久久网站| 亚洲国产精品麻豆| 成人91在线观看| 欧美白人最猛性xxxxx69交| 亚洲乱码中文字幕综合| 国模无码大尺度一区二区三区| 欧美午夜电影网| 国产精品人妖ts系列视频| 久久91精品国产91久久小草| 欧美性猛交一区二区三区精品| 久久久久国产精品人| 青青草一区二区三区| 欧美性猛交xxxx乱大交退制版| 国产区在线观看成人精品| 蜜桃久久精品一区二区| 欧美艳星brazzers| 亚洲欧洲精品成人久久奇米网| 国内精品免费在线观看| 欧美军同video69gay| 亚洲激情av在线| 9久草视频在线视频精品| 欧美激情中文字幕一区二区| 精品一区二区在线观看| 日韩午夜精品电影| 免费精品视频在线| 欧美日韩大陆一区二区| 玉米视频成人免费看| 色婷婷综合久久久久中文一区二区 | 国产夜色精品一区二区av| 蜜桃视频一区二区| 欧美一区二区成人6969| 日韩av在线发布| 日韩一区二区三区视频在线 | 中文欧美字幕免费| 成人午夜av电影| 国产精品三级在线观看| yourporn久久国产精品| 最新欧美精品一区二区三区| www.爱久久.com| 亚洲一区二区三区视频在线| 欧美日韩欧美一区二区| 日韩影院精彩在线| 亚洲精品在线网站| 成人中文字幕在线| 一区免费观看视频| 欧美视频在线不卡| 久久精品国产精品亚洲综合| 久久综合色播五月| 99精品热视频| 亚洲成av人**亚洲成av**| 91麻豆精品国产91久久久资源速度| 免费人成黄页网站在线一区二区| 日韩欧美卡一卡二| 国产成人精品免费一区二区| 最新久久zyz资源站| 在线不卡中文字幕| 国产精品夜夜嗨| 一区二区三区在线视频观看58| 欧美日韩成人一区二区| 国产一区二区三区av电影 | 亚洲午夜免费电影| 精品国产第一区二区三区观看体验 | 午夜精品福利视频网站| 精品国产一区二区精华| 色综合视频在线观看| 免费高清成人在线| 亚洲欧洲av另类| 欧美一区二区三区四区久久| 国产99久久久久| 水蜜桃久久夜色精品一区的特点 | 国产aⅴ综合色| 日韩精品一级二级 | 欧美一区二区三区四区视频| 成人av网址在线| 男男gaygay亚洲| 亚洲另类一区二区| 久久久久97国产精华液好用吗| 欧美性色欧美a在线播放| 国产一区二区在线影院| 亚洲国产毛片aaaaa无费看| 国产丝袜在线精品| 日韩一区二区在线看| 色婷婷av久久久久久久| 国产成人鲁色资源国产91色综| 亚洲一区二区三区四区在线免费观看 | 欧美电影免费观看高清完整版在线 | 国产一本一道久久香蕉| 五月天国产精品| 日韩毛片在线免费观看| 精品电影一区二区三区| 制服丝袜亚洲色图| 精品视频在线看| 色综合久久88色综合天天6| 高清国产一区二区| 国内一区二区视频| 美女视频免费一区| 日韩电影在线免费看| 亚洲电影激情视频网站| 一区二区三区视频在线观看| 国产精品久久久久久一区二区三区| 亚洲精品在线三区| 日韩欧美专区在线| 日韩免费性生活视频播放| 91精品蜜臀在线一区尤物| 在线观看视频一区二区| 91女神在线视频| 一本色道久久综合亚洲精品按摩 | 在线观看网站黄不卡| 色先锋资源久久综合| 色婷婷精品久久二区二区蜜臂av | 亚洲一区二区三区四区在线| 一区二区三区在线影院| 一区二区三区丝袜| 五月婷婷激情综合网| 日韩中文字幕91| 免费看欧美美女黄的网站| 六月丁香婷婷色狠狠久久| 精品影视av免费| 国产精品亚洲一区二区三区妖精 | 欧美日韩精品欧美日韩精品| 欧美网站大全在线观看| 欧美美女bb生活片| 日韩久久久精品| 国产午夜精品久久久久久免费视 | 91色在线porny| 欧美性生活影院| 欧美一级欧美三级在线观看| 精品久久久久久久久久久久久久久久久 | 国产一区中文字幕| 不卡电影免费在线播放一区| 91蝌蚪porny九色| 久久久综合精品| 欧美国产日韩亚洲一区| 日本一区二区三区高清不卡 | 亚洲第一成人在线| 日韩福利电影在线| 国产黄色91视频| 91毛片在线观看| 91精品免费观看| 欧美激情综合五月色丁香| 亚洲色图.com| 美女脱光内衣内裤视频久久影院| 国产一区二区网址| 91老师国产黑色丝袜在线| 欧美一区二区在线免费观看| 欧美国产1区2区| 日韩不卡一区二区| 成人av在线网站| 日韩一区二区免费在线电影| 中国色在线观看另类| 日本怡春院一区二区| 91欧美一区二区| 国产三区在线成人av| 日韩经典中文字幕一区|