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

📄 menu.lst

📁 C8051F120与串口、并口、D12、USB、LCD应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN Menu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Menu.c LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <string.h>
   2          #include "System.h"
   3          #include "Lcd.h"
   4          #include "Menu.h"
   5          #include "UART.h"
   6          #include "USBCLOCK.h"
   7          //#include "GPS.h"
   8          #include "mmc.h"
   9          #include "adda.h"
  10          
  11          void GPS();
  12          void Test()
  13          {
  14   1              Clear(0,240);
  15   1              circle(100,100,50);
  16   1      }
  17          
  18          char Len(char *ptr)                                             //求参数字符串长度
  19          {
  20   1              char n=0;
  21   1              while(*ptr!=',')
  22   1              {
  23   2                      n++;
  24   2                      ptr++;
  25   2              }
  26   1              return n;
  27   1      }
  28          
  29          char *Jump(char *ptr, char n)                   //跳过n项参数字符串
  30          {
  31   1              while(*ptr!='(' && *ptr!='\0' && n>0)
  32   1              {
  33   2                      if(*ptr==',')
  34   2                      n--;
  35   2                      ptr++;
  36   2              }
  37   1              return ptr;
  38   1      }
  39          
  40          char GetValue(char *ptr)                                //返回ptr指向处ASCII码所对应的数字(char),失败返回0
  41          {
  42   1              char TempBuf[3]={0,0,0};
  43   1              char n=0;
  44   1              while (*ptr>=48 && *ptr<=57)
  45   1              {
  46   2                      TempBuf[n]=*ptr-48;
  47   2                      ptr++;
  48   2                      n++;
  49   2              }
  50   1              if(n==0)
  51   1              return (0);
  52   1              if(n==1)
  53   1              return (TempBuf[0]);
  54   1              if(n==2)
  55   1              return (TempBuf[0]*10+TempBuf[1]);
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 2   

  56   1              if(n==3)
  57   1              return (TempBuf[0]*100+TempBuf[1]*10+TempBuf[0]);
  58   1      }
  59          
  60          char GetParaTotal(char *ptr)                    //检测某条目选项个数
  61          {
  62   1              char counter=0;
  63   1              while(*ptr!='(' && *ptr!='\0')
  64   1              {
  65   2                      if(*ptr==',')   counter++;
  66   2                      ptr++;          
  67   2              }
  68   1              return counter;
  69   1      }
  70          
  71          char *MyPrintf(unsigned char X,unsigned char Y,char *ptr,char Type)             //显示某参数字符串
  72          {
  73   1              char temp[20];
  74   1              char *p;
  75   1              p=temp;
  76   1              while(*ptr!=',')
  77   1              {
  78   2                      *p=*ptr;
  79   2                      ptr++;
  80   2                      p++;            
  81   2              }
  82   1              *p='\0';
  83   1              if(Type)
  84   1              Udprintf(X,Y,temp);
  85   1              else
  86   1              dprintf(X,Y,temp);
  87   1              return ptr;     
  88   1      }
  89          
  90          //主菜单函数
  91          void MainMenu()
  92          {
  93   1              char code *Item[]={"01 串行接口传输实验","02 串行接口GPS接收机实验","03 并行接口传输实验",\
  94   1              "04 并行接口驱动LED显示器实验","05 USB接口传输控制实验","06 USB接口读卡实验"};
  95   1              void (*funp[])()={Uart,GPS,ADDA,Test,USBCLOCK,MMC};
  96   1              int i;
  97   1              char total=6;
  98   1              char refresh=1; 
  99   1              char DisItem=1; 
 100   1              char ItemSel=0;
 101   1      
 102   1              Init_LCD();     
 103   1              while(1)
 104   1              {
 105   2                      if(DisItem==1)                          //显示界面
 106   2                      {
 107   3                              dprintf(13,2,"选择实验项目");   
 108   3                              dprintf(0,20,line);                             
 109   3                              dprintf(0,200,line);
 110   3                              dprintf(1,220,"芗   兦");
 111   3                              dprintf(30,220,"说明 开始");
 112   3                              for(i=0;i<total;i++)
 113   3                              dprintf(2,i*16+36,Item[i]);
 114   3                              DisItem=0;
 115   3                      }
 116   2              
 117   2                      if(refresh==1)                          //移动小手
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 3   

 118   2                      {
 119   3                              for(i=0;i<total;i++)
 120   3                              {
 121   4                                      if(ItemSel==i)  
 122   4                                      dprintf(0,i*16+36,"贲");
 123   4                                      else
 124   4                                      dprintf(0,i*16+36,"  ");
 125   4                              }
 126   3                              refresh=0;
 127   3                      }
 128   2      
 129   2                      if(CheckKeyF==1)                        //键盘检测
 130   2                      {
 131   3                              CheckKey();
 132   3                              CheckKeyF=0;
 133   3                      }
 134   2              
 135   2                      if(Key[0].pressed==1)       //检测到上键
 136   2                      {
 137   3                              Key[0].pressed=0;
 138   3                              if(ItemSel>0)
 139   3                              ItemSel--;
 140   3                              else                    
 141   3                              ItemSel=total-1;
 142   3                              refresh=1;              
 143   3                      }
 144   2      
 145   2                      if(Key[1].pressed==1)       //检测到下键
 146   2                      {
 147   3                              Key[1].pressed=0;
 148   3                              if(ItemSel<total-1)
 149   3                              ItemSel++;
 150   3                              else                    
 151   3                              ItemSel=0;
 152   3                              refresh=1;              
 153   3                      }       
 154   2      
 155   2                      if(Key[7].pressed==1)       //检测到开始键,调用各模块函数
 156   2                      {
 157   3                              ClearKey();
 158   3                              (funp[ItemSel])();
 159   3                              DisItem=1;
 160   3                              refresh=1;                                                                      
 161   3                      }                                                       
 162   2              }
 163   1      }
 164          
 165          char MenuActive(char *Menu, unsigned char *ParaValueTable)              //激活参数设置菜单
 166          {
 167   1              int i;  
 168   1              char *p; 
 169   1              char ParaTotal[10];                             //各选项参数个数
 170   1              char ItemSel=0;                                 //当前选项
 171   1              char ItemNum;                                   //选项计数器
 172   1              char ItemTotal;                                 //总选项数
 173   1              char ReFresh=1;                                 //屏幕刷新标志位
 174   1              char TempList[20];                              //临时存放参数值
 175   1              for(i=0;i<20;i++)
 176   1              TempList[i]=ParaValueTable[i];  //copy
 177   1              
 178   1              //显示分割线
 179   1              dprintf(0,20,line);                             
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 4   

 180   1              dprintf(0,200,line);
 181   1              //显示按钮
 182   1              dprintf(1,220,"芗   兦   戛   戋            放弃 确定"); 
 183   1      
 184   1              while(1)
 185   1              {

⌨️ 快捷键说明

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