📄 menu.lst
字号:
C51 COMPILER V7.07 MENU 03/10/2006 09:06:41 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN menu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE menu.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //menu.c
2 /**========================================================================**
3 ***本c文件以"..\c1335_public\subMenu.h"为基础,显示一级、二级菜单。
4 ***供main.c调用。
5 ***文件层次:main.c <- menu.c --| <- subMenu.c
6 *** | <- c1335_driver.c
7 *** | <- DeviceAction.c
8 ***=========================================================================*/
9 #include "config.h"
10 #include "c1335_driver.h"
11 #include "subMenu.h"
12 #include "DeviceAction.h"
13 #include "IIC24c02.h"
14
15 #define MAIN_MENU_ROW_WIDTH (unsigned char)18
16 extern unsigned char KeyScan(void);
17 extern unsigned char g_ucLanguageIndex;
18
19
20 //#define MAIN_MENU_MAX_NUM 8
21 #define MAIN_MENU_X0 10
22 #define MAIN_MENU_Y0 32
23 #define MAIN_MENU_WIDTH 20
24 BOOL MainMenu(unsigned char *pSubMenu)
25 {
26 1 ClearLCD(0x28,2, 10,36,200);
27 1 //DispASCIIStr("MENU",14,10,0);
28 1 //DispASCIIStr(CommonTip[TIP_MENU_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],14,10,0);
29 1
30 1 DispSubMenuContent(MainMenuString,
31 1 sizeof(MainMenuString)/sizeof(MainMenuString[0])/2,
32 1 MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
33 1
34 1 DispSubMenuNum(*pSubMenu,
35 1 sizeof(MainMenuString)/sizeof(MainMenuString[0])/2,
36 1 MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
37 1 KeyNote();
38 1 while(1)
39 1 {
40 2 g_ucKeyData = 0;
41 2 if(!SleepAndQueryMsg(1000)) //KeyScan();
42 2 {
43 3 switch(g_ucKeyData)
44 3 {
45 4 case KEY_UP:
46 4 if(*pSubMenu == 1)
47 4 *pSubMenu = MAIN_MENU_MAX_NUM;
48 4 else
49 4 (*pSubMenu)--;
50 4 DispSubMenuNum(*pSubMenu,MAIN_MENU_MAX_NUM,
51 4 MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
52 4 break;
53 4 case KEY_DOWN:
54 4 if(*pSubMenu == MAIN_MENU_MAX_NUM)
55 4 *pSubMenu = 1;
C51 COMPILER V7.07 MENU 03/10/2006 09:06:41 PAGE 2
56 4 else
57 4 (*pSubMenu)++;
58 4 DispSubMenuNum(*pSubMenu,MAIN_MENU_MAX_NUM,
59 4 MAIN_MENU_X0,MAIN_MENU_Y0,MAIN_MENU_WIDTH);
60 4 break;
61 4 case KEY_OK:
62 4 return TRUE;
63 4 }
64 3 }
65 2 }
66 1 return TRUE;
67 1 }
68 //MAIN_MENU_MAX_NUM = sizeof(MainMenuString)/sizeof(MainMenuString[0])/2
69 BOOL LeakCheckMenu(void)
70 {
71 1 ClearLCD(0x28,6, 10,20,200);
72 1 DispASCIIStr(MainMenuString[LAYER1_LEAK_CHECK-1+
73 1 sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
74 1 14,10,0); //DispASCIIStr("LEAK CHECK",14,10,0);
75 1
76 1 VerLine(0x80, 11, 72, 32);
77 1 VerLine(0x80, 20, 80, 16);
78 1 VerLine(0x80, 22, 72, 32);
79 1
80 1 HorLine(0xff, 11, 72, 4);
81 1 HorLine(0xff, 11, 104, 4);
82 1 HorLine(0xff, 20, 80, 2);
83 1 HorLine(0xff, 20, 96, 2);
84 1 HorLine(0xff, 22, 72, 5);
85 1 HorLine(0xff, 22, 104, 5);
86 1
87 1 //DispASCIIStr("START?",16,160,0);
88 1 DispASCIIStr(CommonTip[TIP_START_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],14,160,0);
89 1
90 1 while(1)
91 1 {
92 2 g_ucKeyData = 0;
93 2 if(!SleepAndQueryMsg(1000))
94 2 {
95 3 switch(g_ucKeyData)
96 3 {
97 4 case KEY_OK://Start Leak Check
98 4 DispASCIIStr (CommonTip[TIP_CHECKING_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
99 4 14,160,0);
100 4 if(LeakCheck())
101 4 DispASCIIStr(CommonTip[TIP_PASS_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
102 4 14,160,0);
103 4 else
104 4 {
105 5 DispASCIIStr(CommonTip[TIP_FAIL_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
106 5 14,160,0);
107 5 SleepAndQueryMsg(1000);
108 5 DispASCIIStr(CommonTip[TIP_START_ID + COMMON_TIP_MAX_NUM*g_ucLanguageIndex],
109 5 14,160,0);
110 5 }
111 4 break;
112 4 case KEY_ESCAPE:
113 4 return TRUE;
114 4 }
115 3 }
116 2 }
117 1 return TRUE;
C51 COMPILER V7.07 MENU 03/10/2006 09:06:41 PAGE 3
118 1 }
119 //void HangUpMenu(void);
120 #define VEHICLE_MSG_X0 12
121 #define VEHICLE_MSG_Y0 64
122 #define VEHICLE_MSG_WIDTH 32
123 BOOL VehicleMsgMenu(void)
124 {
125 1 unsigned char ucSubMenu=1;
126 1
127 1 DispVehicleMsg:
128 1 ClearLCD(0x28,2, 10,36,200);
129 1 DispASCIIStr(MainMenuString[LAYER1_VEHICLE_MSG-1+
130 1 sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
131 1 14,10,0); //DispASCIIStr("SETTING",14,10,0);
132 1 DispSubMenuContent(VehicleMsgMenuString,VEHICLE_MSG_MENU_MAX_NUM,
133 1 VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
134 1 DispSubMenuNum(ucSubMenu, VEHICLE_MSG_MENU_MAX_NUM,
135 1 VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
136 1 while(TRUE)
137 1 {
138 2 g_ucKeyData = 0;
139 2 if(!SleepAndQueryMsg(1000))
140 2 {
141 3 switch(g_ucKeyData)
142 3 {
143 4 case KEY_UP:
144 4 if(ucSubMenu == 1)
145 4 ucSubMenu = VEHICLE_MSG_MENU_MAX_NUM;
146 4 else
147 4 (ucSubMenu)--;
148 4 DispSubMenuNum(ucSubMenu,VEHICLE_MSG_MENU_MAX_NUM,
149 4 VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
150 4 break;
151 4 case KEY_DOWN:
152 4 if(ucSubMenu == VEHICLE_MSG_MENU_MAX_NUM)
153 4 ucSubMenu = 1;
154 4 else
155 4 (ucSubMenu)++;
156 4 DispSubMenuNum(ucSubMenu,VEHICLE_MSG_MENU_MAX_NUM,
157 4 VEHICLE_MSG_X0,VEHICLE_MSG_Y0, VEHICLE_MSG_WIDTH);
158 4 break;
159 4 case KEY_OK:
160 4 switch(ucSubMenu)
161 4 {
162 5 case VEHICLE_MSG_REG_NO :
163 5 VehicleRegNo();
164 5 break;
165 5 case VEHICLE_MSG_RPM:
166 5 //;
167 5 break;
168 5 case VEHICLE_MSG_FUEL_TYPE:
169 5 VehicleFuelType();
170 5 break;
171 5 //;
172 5 }
173 4 goto DispVehicleMsg;
174 4 break;
175 4 case KEY_ESCAPE:
176 4 return TRUE;
177 4 }
178 3 }
179 2 }
C51 COMPILER V7.07 MENU 03/10/2006 09:06:41 PAGE 4
180 1 return TRUE;
181 1 }
182
183
184
185 /*=================================================
186 传人参数:ucMeasureType 作用是受上位机控制时,在其它
187 界面可以转换到对应的测量屏。
188 D7-------本参数 (1)有效 (0)无效
189 D1 D0---
190 |--00 无意义
191 |--01 普通测量
192 |--10 怠速测量
193 |--11 双怠速测量
194 **================================================*/
195 BOOL MeasureMenu(unsigned char ucMeasureType)
196 {
197 1 unsigned char ucSubMenu=1;
198 1
199 1 DispMeasure:
200 1 ClearLCD(0x28,6, 10,30,200);
201 1 DispASCIIStr(MainMenuString[LAYER1_MEASURE-1+
202 1 sizeof(MainMenuString)/sizeof(MainMenuString[0])/2*g_ucLanguageIndex],
203 1 14,10,0); //DispASCIIStr("SETTING",14,10,0);
204 1 DispSubMenuContent(MeasureMenuString,MEASURE_MENU_MAX_NUM,
205 1 10,64, 32);
206 1 DispSubMenuNum(ucSubMenu, MEASURE_MENU_MAX_NUM,
207 1 10,64, 32);
208 1 while(TRUE)
209 1 {
210 2 g_ucKeyData = 0;
211 2 if((ucMeasureType & 0x80) || (!SleepAndQueryMsg(1000)))
212 2 {
213 3 if (ucMeasureType & 0x80)
214 3 {
215 4 g_ucKeyData = KEY_OK;
216 4 ucSubMenu = ucMeasureType & 0x03;
217 4 }
218 3 switch(g_ucKeyData)
219 3 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -