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

📄 menu_data.lst

📁 Embedded C 这本书的范例光碟程式
💻 LST
字号:
C51 COMPILER V7.07   MENU_DATA                                                             06/12/2006 21:12:15 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MENU_DATA
OBJECT MODULE PLACED IN Menu_Data.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Menu_Data.c OPTIMIZE(6,SIZE) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*------------------------------------------------------------------*-
   2             Menu_Data.C (v1.00)
   3            ------------------------------------------------------------------
   4             Use 'Hyperterminal' (under Windows 95, 98, 2000) or similar 
   5             terminal emulator program on other operating systems.
   6             Terminal options: 
   7             - Data bits    = 8
   8             - Parity       = None
   9             - Stop bits    = 1
  10             - Flow control = Xon / Xoff
  11          -*------------------------------------------------------------------*/
  12          #include "Main.H"
  13          #include "Port.H"
  14          #include "Menu_Data.h"
  15          #include "PC_IO.h"
  16          // ------ Public variable declarations -----------------------------
  17          // See Char_Map.c
  18          extern const char code CHAR_MAP_G[10]; 
  19          // ------ Private variables ----------------------------------------
  20          static bit First_time_only_G;
  21          
  22          /*------------------------------------------------------------------*-
  23            MENU_Command_Processor()
  24            This function is the main menu 'command processor' function.  
  25          -*------------------------------------------------------------------*/
  26          void MENU_Command_Processor(void)
  27             {
  28   1         char Ch;
  29   1         if (First_time_only_G == 0)
  30   1            {
  31   2            First_time_only_G = 1;
  32   2            MENU_Show_Menu();
  33   2            }
  34   1      
  35   1         // Check for user inputs
  36   1         PC_LINK_IO_Update();
  37   1      
  38   1         Ch = PC_LINK_IO_Get_Char_From_Buffer();
  39   1            
  40   1         if (Ch != PC_LINK_IO_NO_CHAR)
  41   1            {
  42   2            MENU_Perform_Task(Ch);
  43   2            MENU_Show_Menu();
  44   2            }
  45   1         }
  46          /*------------------------------------------------------------------*-
  47            MENU_Show_Menu()
  48            Display menu options on PC screen (via serial link)
  49            - edit as required to meet the needs of your application.
  50          -*------------------------------------------------------------------*/
  51          void MENU_Show_Menu(void)
  52             {
  53   1         PC_LINK_IO_Write_String_To_Buffer("------------------------------\n"); 
  54   1         PC_LINK_IO_Write_String_To_Buffer("Main Menu :\n"); 
  55   1         PC_LINK_IO_Write_String_To_Buffer("A - Check P1 Status \n");
C51 COMPILER V7.07   MENU_DATA                                                             06/12/2006 21:12:15 PAGE 2   

  56   1         PC_LINK_IO_Write_String_To_Buffer("B - Check P2 status \n\n");
  57   1      
  58   1      //   PC_LINK_IO_Write_String_To_Buffer("c - Read P3\n");
  59   1      //   PC_LINK_IO_Write_String_To_Buffer("d - Read Download\n");
  60   1      //   PC_LINK_IO_Write_String_To_Buffer("e - Read Write\n");
  61   1      //   PC_LINK_IO_Write_String_To_Buffer("f - Read Status\n\n");
  62   1         PC_LINK_IO_Write_String_To_Buffer("? : ");
  63   1         }
  64          /*------------------------------------------------------------------*-
  65            MENU_Perform_Task()
  66            Perform the required user task
  67            - edit as required to match the needs of your application.
  68          -*------------------------------------------------------------------*/
  69          void MENU_Perform_Task(char c)
  70             {
  71   1         // Echo the menu option
  72   1         PC_LINK_IO_Write_Char_To_Buffer(c);
  73   1         PC_LINK_IO_Write_Char_To_Buffer('\n');
  74   1      
  75   1         // Perform the task
  76   1         switch (c)
  77   1            {
  78   2            case 'a':      case 'A':
  79   2               {
  80   3               Get_Data_From_Port1();
  81   3               break;
  82   3               }
  83   2            
  84   2            case 'b':      case 'B':
  85   2               {
  86   3               Get_Data_From_Port2();
  87   3               break;
  88   3               }
  89   2            case 'c':      case 'D':
  90   2               {
  91   3               //Get_Data_From_Port3();
  92   3               break;
  93   3               }      
  94   2            case 'e':      case 'E':
  95   2               {
  96   3               //Get_Data_From_TR();
  97   3               break;
  98   3               }
  99   2            case 'f':      case 'F':
 100   2               {
 101   3               //Get_Data_From_TX();
 102   3               break;
 103   3               }
 104   2            } 
 105   1         }
 106          
 107          /*------------------------------------------------------------------*-
 108           Get_Data_From_Port1()
 109          -*------------------------------------------------------------------*/
 110          void Get_Data_From_Port1(void)
 111             {
 112   1         tByte Port1 = Data_Port1;
 113   1         char String[11] = "\nP1 = XXX\n\n";
 114   1      
 115   1         String[6] = CHAR_MAP_G[Port1 / 100];
 116   1         String[7] = CHAR_MAP_G[(Port1 / 10) % 10];
 117   1         String[8] = CHAR_MAP_G[Port1 % 10];
C51 COMPILER V7.07   MENU_DATA                                                             06/12/2006 21:12:15 PAGE 3   

 118   1      
 119   1         PC_LINK_IO_Write_String_To_Buffer(String);
 120   1         }
 121          /*------------------------------------------------------------------*-
 122            Get_Data_From_Port2()
 123          -*------------------------------------------------------------------*/
 124          void Get_Data_From_Port2(void)
 125             {
 126   1         tByte Port2 = Data_Port2;
 127   1         char String[11] = "\nP2 = XXX\n\n";
 128   1      
 129   1         String[6] = CHAR_MAP_G[Port2 / 100];
 130   1         String[7] = CHAR_MAP_G[(Port2 / 10) % 10];
 131   1         String[8] = CHAR_MAP_G[Port2 % 10];
 132   1      
 133   1         PC_LINK_IO_Write_String_To_Buffer(String);
 134   1         }
 135          
 136          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    247    ----
   CONSTANT SIZE    =    117    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      25
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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