📄 menu.lst
字号:
C51 COMPILER V7.07 MENU 08/17/2004 16:30:52 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 INCDIR(C:\keil7.07\c51\INC\Atmel\) DEBUG OBJECTEXTEND
stmt level source
1 #include "lcd.h"
2 #include "stdio.h"
3 #include "keyscan.h"
*** WARNING C318 IN LINE 3 OF keyscan.h: can't open file 'AT89X51.H'
4 #include "menu.h"
5 #include "DVDCTRL.h"
6 unsigned char code MenuSize[]={2,4,6};
7 char code *menu0[]={"SIGNAL","OUTPUT"};
8 char code *menu1[]={"HDTV1","HDTV2","STEP","GRID"};
9 char code *menu2[]={"480p/60","480p/50","720p/60","720p/50","1080/60","1080/50"};
10 code void (*Menu1Func[])()={NULL,NULL,NULL,NULL};
11 code void (*Menu2Func[])()={NULL,NULL,NULL,NULL};
12 DisMenu(unsigned char CurMenuId,unsigned char CurMenuItem)
13 {
14 1 char code **pmenu;
15 1 unsigned char msize;
16 1 unsigned char pg,v,i;
17 1
18 1 switch(CurMenuId)
19 1 {
20 2 case 0:
21 2 pmenu=menu0;
22 2 msize=MenuSize[0];
23 2 break;
24 2 case 1:
25 2 pmenu=menu1;
26 2 msize=MenuSize[1];
27 2 break;
28 2 case 2:
29 2 pmenu=menu2;
30 2 msize=MenuSize[2];
31 2 break;
32 2 default:
33 2 pmenu=menu0;
34 2 msize=MenuSize[0];
35 2 break;
36 2 }
37 1
38 1 pg=CurMenuItem/8;
39 1 v=CurMenuItem%8;
40 1 LCDClear();
41 1 for(i=0;i<8;i++)
42 1 {
43 2 if(pg*8+i>=msize)break;
44 2 if(v==i)LCDDrawText8(pmenu[pg*8+i],61*(i%2),8*(i/2),DrawType_NotNormal);
45 2 else LCDDrawText8(pmenu[pg*8+i],61*(i%2),8*(i/2),DrawType_Normal);
46 2 }
47 1 }
48 void Proc()
49 {
50 1 unsigned long code DelayTime=400000;//7s=400000
51 1 unsigned char CurMenuId=0,CurMenuItem=0;
52 1 unsigned long count=DelayTime;
53 1
54 1
C51 COMPILER V7.07 MENU 08/17/2004 16:30:52 PAGE 2
55 1 DisMenu(CurMenuId,CurMenuItem);
56 1 while(count--)
57 1 {
58 2 unsigned char KeyVal;
59 2
60 2 KeyVal=KeyUpScan();
61 2 switch(KeyVal)
62 2 {
63 3 case 0x1: //<<
64 3 count=DelayTime;
65 3 if(CurMenuItem>0)CurMenuItem--;
66 3 else if(CurMenuItem==0)CurMenuItem=MenuSize[CurMenuId]-1;
67 3 KeyVal=0;
68 3 DisMenu(CurMenuId,CurMenuItem);
69 3 break;
70 3 case 0x2: //==
71 3 count=DelayTime;
72 3 if(CurMenuItem/2<MenuSize[CurMenuId]/2-1)CurMenuItem+=2;
73 3 else if(CurMenuItem/2>=MenuSize[CurMenuId]/2-1)CurMenuItem=CurMenuItem%2;
74 3 DisMenu(CurMenuId,CurMenuItem);
75 3 break;
76 3 case 0x4: //>>
77 3 count=DelayTime;
78 3 if(CurMenuItem<MenuSize[CurMenuId]-1)CurMenuItem++;
79 3 else if(CurMenuItem==MenuSize[CurMenuId]-1)CurMenuItem=0;
80 3 DisMenu(CurMenuId,CurMenuItem);
81 3 break;
82 3 case 0x8: //set
83 3
84 3 count=DelayTime;
85 3 break;
86 3 case 0x10: //ok
87 3 count=DelayTime;
88 3 if(CurMenuId==0)CurMenuId=CurMenuItem+1;
89 3 else if(CurMenuId==1){ChgCtrlSignal(CurMenuItem);return ;}
90 3 else if(CurMenuId==2){SetCtrlMode(CurMenuItem,0);SetCtrlSignal(CurMenuItem,0);return ;}
91 3 /* else
92 3 {
93 3 void (**pMenuFunc)();
94 3 if(CurMenuId==1)pMenuFunc=Menu1Func;
95 3 else if(CurMenuId==2)pMenuFunc=Menu2Func;
96 3 if(pMenuFunc[CurMenuItem]!=NULL)
97 3 pMenuFunc[CurMenuItem]();
98 3
99 3 return ;
100 3 }*/
101 3 DisMenu(CurMenuId,CurMenuItem);
102 3 break;
103 3 case 0x20: //A
104 3 count=DelayTime;
105 3 if(CurMenuItem>1)CurMenuItem-=2;
106 3 else if(CurMenuItem<=1)CurMenuItem=(MenuSize[CurMenuId]/2-1)*2+CurMenuItem;
107 3 DisMenu(CurMenuId,CurMenuItem);
108 3 break;
109 3 case 0x40: //cancel
110 3 count=DelayTime;
111 3 if(CurMenuId==0)return;
112 3 else CurMenuId=0;
113 3 DisMenu(CurMenuId,CurMenuItem);
114 3 break;
115 3 default:
116 3 count--;
C51 COMPILER V7.07 MENU 08/17/2004 16:30:52 PAGE 3
117 3 break;
118 3 }
119 2 }
120 1
121 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 644 ----
CONSTANT SIZE = 115 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 14
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -