meun.c
上传用户:nbddcb
上传日期:2022-05-19
资源大小:48k
文件大小:4k
源码类别:

菜单

开发平台:

Visual C++

  1. #include "meun.h"
  2. #include "demo.h"
  3. void (*KeyFuncPtr)(); 
  4. uchar KeyFuncIndex = 0;
  5. KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=
  6.   {
  7.      { 0, 4, 6, 1,(*func0)},           
  8.      { 1, 2, 3, 0,(*func1)},              
  9.      { 2, 3, 1, 0,(*func2)},             
  10.      { 3, 1, 2, 0,(*func3)},              
  11.      { 4, 6, 0, 5,(*func4)},                
  12.      { 5, 7, 7, 4,(*func5)},                
  13.      { 6, 0, 4, 8,(*func6)},              
  14.      { 7, 5, 5, 4,(*func7)},            
  15.      { 8, 9, 9, 6,(*func8)},
  16.      { 9, 8, 8, 6,(*func9)} 
  17.   };
  18. void delay(unsigned int i)
  19. {
  20.    unsigned int j;
  21.    for(j=6000;j>0;j--)
  22.       for(;i>0;i--);
  23. }
  24. void func0(void)
  25.   {    
  26.        int i;
  27.        MB90092_DisChar(1,2,0x0c,0,1,4,1);
  28.        for (i=0;i<5;i++)
  29.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  30.        for (i=0;i<5;i++)
  31.       MB90092_DisChar(i+3,3,0x05+i,0,1,4,1);        
  32.        for (i=0;i<5;i++)
  33.       MB90092_DisChar(i+3,4,0x41+i,0,1,4,1);
  34.   }
  35. void func1(void)
  36.   {
  37.        int i;
  38.        MB90092_DisChar(1,2,0x0c,0,1,4,1);
  39.        for (i=0;i<3;i++)
  40.       MB90092_DisChar(i+3,2,0x180+i,0,1,4,1);
  41.        for (i=0;i<2;i++)
  42.       MB90092_DisChar(i+3,3,0xB6+i,0,1,4,1);        
  43.       MB90092_DisChar(3,4,0x0b,0,1,4,1);
  44.   }
  45. void func2(void)
  46.   {
  47.        int i;
  48.        MB90092_DisChar(1,3,0x0c,0,1,4,1);
  49.        for (i=0;i<3;i++)
  50.       MB90092_DisChar(i+3,2,0x180+i,0,1,4,1);
  51.        for (i=0;i<2;i++)
  52.       MB90092_DisChar(i+3,3,0xB6+i,0,1,4,1);        
  53.       MB90092_DisChar(3,4,0x0b,0,1,4,1);
  54.   } 
  55.   
  56. void func3(void)
  57.   {
  58.        int i;
  59.        MB90092_DisChar(1,4,0x0c,0,1,4,1);
  60.        for (i=0;i<3;i++)
  61.       MB90092_DisChar(i+3,2,0x180+i,0,1,4,1);
  62.        for (i=0;i<2;i++)
  63.       MB90092_DisChar(i+3,3,0xB6+i,0,1,4,1);        
  64.       MB90092_DisChar(3,4,0x0b,0,1,4,1);
  65.   }
  66. void func4(void)
  67.   {
  68.        int i;
  69.        MB90092_DisChar(1,3,0x0c,0,1,4,1);
  70.        for (i=0;i<5;i++)
  71.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  72.        for (i=0;i<5;i++)
  73.       MB90092_DisChar(i+3,3,0x05+i,0,1,4,1);        
  74.        for (i=0;i<5;i++)
  75.       MB90092_DisChar(i+3,4,0x41+i,0,1,4,1);
  76.   }
  77. void func5(void)
  78.   {
  79.        int i;
  80.        MB90092_DisChar(1,2,0x0c,0,1,4,1);
  81.        for (i=1;i<10;i=i+2)
  82.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  83.           MB90092_DisChar(3,3,0x0b,0,1,4,1);
  84.   }
  85. void func6(void)
  86.   {
  87.        int i;
  88.        MB90092_DisChar(1,4,0x0c,0,1,4,1);
  89.        for (i=0;i<5;i++)
  90.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  91.        for (i=0;i<5;i++)
  92.       MB90092_DisChar(i+3,3,0x05+i,0,1,4,1);        
  93.        for (i=0;i<5;i++)
  94.       MB90092_DisChar(i+3,4,0x41+i,0,1,4,1);
  95.   }
  96. void func7(void)
  97.   {
  98.        int i;     
  99.        MB90092_DisChar(1,3,0x0c,0,1,4,1);
  100.        for (i=1;i<10;i=i+2)
  101.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  102.           MB90092_DisChar(3,3,0x0b,0,1,4,1);
  103.   }
  104. void func8(void)
  105.   {
  106.        int i;
  107.        MB90092_DisChar(1,2,0x0c,0,1,4,1);
  108.        for (i=0;i<10;i=i+2)
  109.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  110.           MB90092_DisChar(3,3,0x0b,0,1,4,1);   
  111.   }
  112. void func9(void)
  113.   {
  114.        int i;
  115.        MB90092_DisChar(1,3,0x0c,0,1,4,1);
  116.        for (i=0;i<10;i=i+2)
  117.       MB90092_DisChar(i+3,2,0x00+i,0,1,4,1);
  118.           MB90092_DisChar(3,3,0x0b,0,1,4,1);
  119.   }
  120. void GetKeyInput(void)
  121. {   
  122.    
  123. if(EXT==0)
  124.  { delay(1);
  125.          if(EXT==0)
  126.            {
  127.              while (EXT==0);
  128.              MB90092_ClearXY (1,2);
  129.              MB90092_ClearXY (1,3);
  130.              MB90092_ClearXY (1,4);
  131.          KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;
  132.            }
  133.  }
  134. if(INT==0)
  135.  { 
  136.        delay(1);
  137.        if(INT==0)
  138.         {
  139.           while (INT==0);
  140.           MB90092_ClearXY (1,2);
  141.           MB90092_ClearXY (1,3);
  142.           MB90092_ClearXY (1,4);
  143.       KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;
  144.         }
  145.   }
  146.     if(MODE==0)
  147.     {
  148.       delay(1);
  149.       if(MODE==0)
  150.         {
  151.           while (MODE==0);
  152.           MB90092_ClearScreen ();
  153.           KeyFuncIndex=KeyTab[KeyFuncIndex].KeyCrState;
  154.         }
  155.     }
  156.    KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
  157.    (*KeyFuncPtr)();                                              
  158. }        
  159.