📄 main.lst
字号:
200 1 Line(127,63,0,63); //绘制一条直线
201 1 Line(10,12,10,42);
202 1 while(Exit_flag)
203 1 {
204 2 Key = Key_Get();
205 2 if(Key!=0)
206 2 Exit_flag = 0; //任意键按下时,退出返回
207 2 KeyScan_Service();
208 2 }
209 1 }
210 //绘矩形菜单项响应函数
211 void Show_RectanglTest(void)
212 {
213 1 unsigned int Key=0;
214 1 unsigned Exit_flag=1;
215 1 ClrScreen(0); //清屏
216 1 SetPaintMode(0,1); //设置绘图模式及前景色
217 1 Rectangle(12,12,42,42,1); //矩形填充
218 1 Rectangle(52,12,82,42,0); //绘制矩形框
219 1 while(Exit_flag)
220 1 {
221 2 Key = Key_Get();
222 2 if(Key!=0)
223 2 Exit_flag = 0; //任意键按下时,退出返回
224 2 KeyScan_Service();
225 2 }
226 1 }
227 //帮助菜单项响应函数
228 void Show_HelpTest(void)
229 {
230 1 unsigned int Key=0;
231 1 unsigned Exit_flag=1;
232 1 ClrScreen(0); //清屏
233 1 SetPaintMode(0,1); //设置绘图模式及前景色
234 1 FontSet(1,1); //设置字体类形,字符色为1
235 1 PutString(5,10,"Wellcome to MzDesign!!"); //显示字符串
236 1 PutString(5,50,"www.mzdesign.com.cn");
237 1 Line(4,60,120,60); //绘制一条直线
238 1 while(Exit_flag)
239 1 {
240 2 Key = Key_Get();
241 2 if(Key!=0)
C51 COMPILER V8.08 MAIN 11/02/2007 15:16:55 PAGE 5
242 2 Exit_flag = 0; //任意键按下时,退出返回
243 2 KeyScan_Service();
244 2 }
245 1 }
246 //字符演示菜单项响应函数
247 void CharTest_Menu(void)
248 {
249 1 //add your code here
250 1 unsigned char uiKey=0;
251 1 //uiKey用于存放扫描的键值状态
252 1 unsigned char Item_Num,Update_Flag,Enter_Flag=0;
253 1 //Item_Num:当前菜单界面当中共有几项菜单项,刷新时使用
254 1 //Update_Flag:菜单界面刷新标识
255 1 //Enter_Flag:确定键按下标识~~
256 1 unsigned char PageItem_Num;
257 1 //PageItem_Num:每页(全显示屏内)可以显示多少个菜单项
258 1 unsigned char First_Index=0,Active_Index=0,Temp_Index=0;
259 1 //First_Index:当前处在显示屏当中的最前面的菜单项序号
260 1 //Active_Index:当前指向的菜单项,即当前活动的菜单项
261 1 //Temp_Index:中间变量
262 1 unsigned char Exit_flag = 1;
263 1
264 1 Item_Num = GetMLNum(Menu_List02); //获取要显示的菜单的菜单项个数
265 1 PageItem_Num = GetMLiNum_Page((unsigned char **)Menu_List02); //获取要显示的菜单的页数
266 1 Initial_Menu((unsigned char**)Menu_List02);
267 1 while(1)
268 1 {
269 2
270 2 uiKey = Key_Get(); //获取键值
271 2 if(uiKey) //如有键按下则响应
272 2 {
273 3 switch(uiKey) //判断键值进行分支控制界面
274 3 {
275 4 case 3: //确定键按下
276 4 Enter_Flag=1; //enter flag set
277 4 break;
278 4 case 2: //down 向下键按下
279 4 if(Active_Index<Item_Num)
280 4 {
281 5 Active_Index++;
282 5 if(Temp_Index<PageItem_Num-1) Temp_Index++;
283 5 else if(First_Index<Item_Num) First_Index++;
284 5 Update_Flag = 1;
285 5 }
286 4 break;
287 4 case 1: //up 向上键按下
288 4 if(Active_Index>0)
289 4 {
290 5 Active_Index--;
291 5 if(Temp_Index>0) Temp_Index--;
292 5 else if(First_Index>0) First_Index--;
293 5 Update_Flag = 1;
294 5 }
295 4 break;
296 4 default:break;
297 4 }
298 3 }
299 2 if(Update_Flag) //Update_Flag为1时刷新菜单
300 2 {
301 3 UpDate_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
302 3 Update_Flag=0;
303 3 }
C51 COMPILER V8.08 MAIN 11/02/2007 15:16:55 PAGE 6
304 2 if(Enter_Flag) //有确定键按下时,则进入相应的功能函数
305 2 {
306 3 Enter_Flag = 0;
307 3 switch(Active_Index)
308 3 {
309 4 case 0: //这里仅定义了可以响应第一项菜单
310 4 Show_CharTest();
311 4 Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
312 4 Update_Flag = 1;
313 4 break;
314 4 case 1:
315 4 Show_StringTest();
316 4 Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
317 4 Update_Flag = 1;
318 4 break; //如感兴趣可以自己加进去玩玩
319 4 case 2:
320 4 Show_ChTest();
321 4 Redraw_Menu(First_Index,Active_Index,(unsigned char**)Menu_List02);
322 4 Update_Flag = 1;
323 4 break;
324 4 case 3: Exit_flag = 0;break;
325 4 default:break;
326 4 }
327 3 }
328 2 KeyScan_Service(); //键盘扫描的服务程序,最好在1KHz的定时/时基中断调用
329 2 }
330 1 }
331 //二级菜单中,单个西文字符菜单项响应函数
332 void Show_CharTest(void)
333 {
334 1 unsigned int Key=0;
335 1 unsigned Exit_flag=1;
336 1 ClrScreen(0); //清屏
337 1 SetPaintMode(0,1); //设置绘图模式及前景色
338 1 Rectangle(64,0,127,63,1); //半边绘制填充的矩形
339 1 FontSet(1,1); //设置字体类形,字符色为1
340 1 PutChar(10,10,'A'); //显示字符
341 1 PutChar(10,40,'8'); //显示字符
342 1 FontSet(1,0); //设置字体类形,字符色为0
343 1 PutChar(80,10,'A'); //显示字符
344 1 PutChar(80,40,'8'); //显示字符
345 1 while(Exit_flag)
346 1 {
347 2 Key = Key_Get();
348 2 if(Key!=0)
349 2 Exit_flag = 0; //任意键按下时,退出返回
350 2 KeyScan_Service();
351 2 }
352 1 }
353 //二级菜单中,西文字符串菜单项响应函数
354 void Show_StringTest(void)
355 {
356 1 unsigned int Key=0;
357 1 unsigned Exit_flag=1;
358 1 ClrScreen(0); //清屏
359 1 SetPaintMode(0,1); //设置绘图模式及前景色
360 1 FontSet(1,1); //设置字体类形,字符色为1
361 1 PutString(5,10,"Wellcome to MzDesign!!"); //显示字符串
362 1 PutString(5,50,"www.mzdesign.com.cn");
363 1 Line(4,60,120,60); //绘制一条直线
364 1 while(Exit_flag)
365 1 {
C51 COMPILER V8.08 MAIN 11/02/2007 15:16:55 PAGE 7
366 2 Key = Key_Get();
367 2 if(Key!=0)
368 2 Exit_flag = 0; //任意键按下时,退出返回
369 2 KeyScan_Service();
370 2 }
371 1 }
372 //二级菜单中,中文字符菜单项响应函数
373 void Show_ChTest(void)
374 {
375 1 unsigned int Key=0;
376 1 unsigned Exit_flag=1;
377 1 ClrScreen(0); //清屏
378 1 SetPaintMode(0,1); //设置绘图模式及前景色
379 1 FontSet(2,1); //设置字体类形,字符色为1
380 1 PutChar(10,20,0); //显示汉字 铭
381 1 PutChar(30,20,1); //显示汉字 正
382 1 PutChar(50,20,2); //显示汉字 同
383 1 PutChar(70,20,3); //显示汉字 创
384 1 while(Exit_flag)
385 1 {
386 2 Key = Key_Get();
387 2 if(Key!=0)
388 2 Exit_flag = 0; //任意键按下时,退出返回
389 2 KeyScan_Service();
390 2 }
391 1 }
392
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1142 ----
CONSTANT SIZE = 43 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 45
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 + -