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

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

?? menufunc.lst

?? 單片機驅動LCD防手機菜單的一個源代碼
?? LST
字號:
C51 COMPILER V8.02   MENUFUNC                                                              07/16/2008 16:36:20 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MENUFUNC
OBJECT MODULE PLACED IN .\Obj\MenuFunc.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE Src\MenuFunc.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\Lst\Me
                    -nuFunc.lst) OBJECT(.\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 V8.02   MENUFUNC                                                              07/16/2008 16:36:20 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 V8.02   MENUFUNC                                                              07/16/2008 16:36:20 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 V8.02   MENUFUNC                                                              07/16/2008 16:36:20 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一区二区三区免费野_久草精品视频
午夜精品久久久久久久久久久| 久久久综合网站| 成人午夜免费av| 日本va欧美va欧美va精品| 中文字幕亚洲不卡| 亚洲国产高清不卡| 久久精品亚洲精品国产欧美kt∨| 精品久久国产字幕高潮| 欧美成人一区二区| 精品日韩一区二区三区免费视频| 7777精品伊人久久久大香线蕉 | av资源网一区| 99久久99久久久精品齐齐| av一本久道久久综合久久鬼色| 成人免费观看视频| 97久久超碰国产精品| 一本大道综合伊人精品热热 | 亚洲成人av电影| 午夜不卡av在线| 久久精品二区亚洲w码| 国产精品小仙女| 99久久婷婷国产综合精品| 色av成人天堂桃色av| 欧美电影在哪看比较好| 精品美女一区二区| 成人免费一区二区三区在线观看| 一区二区三区91| 麻豆精品一区二区三区| 国产**成人网毛片九色| 在线视频中文字幕一区二区| 欧美一区二区三区成人| 日本一区二区三区高清不卡| 一区二区三区毛片| 韩日av一区二区| 色婷婷av久久久久久久| 91精品视频网| 亚洲欧美日韩电影| 久久99久久精品| 91蜜桃视频在线| 337p日本欧洲亚洲大胆色噜噜| 亚洲激情图片小说视频| 国内外精品视频| 欧美性猛交xxxxxxxx| 欧美激情一区三区| 免费高清在线视频一区·| 91免费看视频| 久久九九99视频| 青青草精品视频| 色婷婷亚洲精品| 欧美经典一区二区| 秋霞影院一区二区| 色婷婷精品久久二区二区蜜臀av| 精品国产污网站| 丝袜美腿亚洲色图| 欧美中文字幕一区二区三区亚洲| 欧美激情自拍偷拍| 国产一区二区三区高清播放| 欧美老人xxxx18| 亚洲香肠在线观看| 99在线精品视频| 国产蜜臀av在线一区二区三区| 麻豆国产精品官网| 欧美日韩成人综合在线一区二区| 亚洲欧美国产77777| 国产69精品久久久久777| 久久尤物电影视频在线观看| 奇米在线7777在线精品| 欧美日韩二区三区| 五月天久久比比资源色| 欧美午夜精品一区| 一区二区三区四区精品在线视频| 成人av综合一区| 中文字幕在线观看不卡视频| 国产成人在线色| 久久久国产综合精品女国产盗摄| 裸体在线国模精品偷拍| 欧美一区在线视频| 老汉av免费一区二区三区 | 国产一区二区视频在线播放| 日韩精品一区二区三区在线观看 | 国产精品久久影院| 成人av午夜影院| 国产精品国产a级| 91欧美一区二区| 亚洲成人免费看| 日韩视频免费观看高清完整版在线观看| 首页国产丝袜综合| 日韩一级高清毛片| 国产伦精一区二区三区| 欧美国产成人在线| 成人午夜伦理影院| 亚洲综合色噜噜狠狠| 欧美日本在线观看| 精品一区二区三区日韩| 国产区在线观看成人精品| 成人国产在线观看| 亚洲国产欧美在线| 日韩欧美一二区| 国产成人aaa| 亚洲综合999| 日韩精品一区二区三区中文精品| 粉嫩av一区二区三区粉嫩| 一区二区三区在线观看欧美 | 成人在线视频一区| 一区二区欧美国产| 欧美电影免费提供在线观看| 国产98色在线|日韩| 亚洲午夜精品在线| 欧美va亚洲va| 色婷婷综合五月| 国产伦精品一区二区三区免费| ...中文天堂在线一区| 91精品国产欧美一区二区成人| 国产曰批免费观看久久久| 亚洲精品视频免费看| 欧美一区二区性放荡片| 成人av高清在线| 蜜臀av一区二区三区| 成人免费一区二区三区视频| 日韩欧美国产综合| 色综合激情久久| 国产精品影音先锋| 午夜激情久久久| 亚洲欧美日韩在线| 亚洲国产成人在线| 欧美一区二区久久久| 色诱视频网站一区| 国产成人在线免费观看| 日本中文字幕一区二区视频| 亚洲三级电影网站| www国产成人| 日韩一卡二卡三卡| 欧美日韩一区不卡| 91偷拍与自偷拍精品| 国产精品888| 久久狠狠亚洲综合| 日韩专区在线视频| 亚洲制服丝袜av| 亚洲视频资源在线| 国产精品毛片大码女人| 久久先锋资源网| 日韩精品最新网址| 欧美精品在线观看播放| 欧美亚洲国产bt| 91福利国产成人精品照片| 99久久99久久久精品齐齐| 国产不卡在线播放| 激情综合网天天干| 韩国三级电影一区二区| 激情国产一区二区| 精品一区二区三区在线视频| 美女视频网站黄色亚洲| 丝袜美腿亚洲色图| 免费在线观看一区二区三区| 五月综合激情婷婷六月色窝| 性久久久久久久久| 青青国产91久久久久久| 老色鬼精品视频在线观看播放| 久久精品国产亚洲高清剧情介绍 | 欧美一区二区久久| 日韩欧美一卡二卡| 精品欧美久久久| 国产亚洲制服色| 中文一区一区三区高中清不卡| 国产日韩欧美综合在线| 中文字幕一区二区日韩精品绯色| 中文字幕中文字幕在线一区| 亚洲精品国产品国语在线app| 亚洲曰韩产成在线| 首页欧美精品中文字幕| 国内精品在线播放| 懂色av一区二区三区免费观看 | 国产999精品久久| 一本一本大道香蕉久在线精品| 欧美日韩中文字幕一区二区| 正在播放亚洲一区| 精品国产露脸精彩对白| 国产精品麻豆欧美日韩ww| 亚洲麻豆国产自偷在线| 蜜臀av性久久久久av蜜臀妖精| 精品综合免费视频观看| 成人av在线资源网站| 欧美日韩国产一二三| 久久先锋资源网| 亚洲人成网站影音先锋播放| 首页欧美精品中文字幕| 成人av网址在线| 在线不卡中文字幕| 日本一区二区成人| 偷拍一区二区三区四区| 国产精品66部| 欧美日韩国产综合一区二区| 久久精品亚洲国产奇米99| 亚洲国产精品影院| 国产成人aaa| 制服丝袜日韩国产| 亚洲精品日产精品乱码不卡| 久久精品免费观看| 在线观看免费视频综合| 久久久无码精品亚洲日韩按摩|