📄 menu.lst
字号:
C51 COMPILER V8.15 MENU 10/29/2008 21:06:48 PAGE 1
C51 COMPILER V8.15, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN MENU.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MENU.C COMPACT BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include "TypeDefines.h"
3 #include "delay.h"
4 #include "MENU.h"
5 #include "1335c51.h"
6
7
8 uchar idata KeyFuncIndex = 0;
9 uchar idata LastKeyIndex = 0;
10 void (*KeyFuncPtr)(); //按键功能函数指针
11
12 void (*ptr)();
13
14 typedef struct
15 {
16 uchar KeyStateIndex; //当前状态索引号
17 uchar KeyEsState; //按下“ESC”键时转向的状态索引号
18 uchar KeyMeState; //按下“MENU”键时转向的状态索引号
19 uchar KeyLeState; //按下“LEFT”键时转向的状态索引号
20 uchar KeyUpState; //按下“UP”键时转向的状态索引号
21 uchar KeyDnState; //按下“DOWN”键时转向的状态索引号
22 uchar KeyRiState; //按下“RIGHT”键时转向的状态索引号
23 uchar KeyCrState; //按下“ENTER”键时转向的状态索引号
24 void (*CurrentOperate)();//当前状应该执行的功能操作
25 }KbdTabStruct;
26
27
28 KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=
29 {
30 // E M L U D R C *
31
32 {0, 0, 1, 0, 0, 0, 0, 0, &operation0},
33 {1, 0, 13, 10, 2, 3, 4, 13, &operation1},
34 {2, 0, 13, 10, 2, 3, 4, 13, &operation2},
35 {3, 0, 13, 10, 2, 3, 4, 13, &operation3},
36 {4, 0, 13, 1, 5, 6, 7, 13, &operation4},
37 {5, 0, 13, 1, 5, 6, 7, 13, &operation5},
38 {6, 0, 13, 1, 5, 6, 7, 13, &operation6},
39 {7, 0, 13, 4, 8, 9, 10,13, &operation7},
40 {8, 0, 13, 4, 8, 9, 10,13, &operation8},
41 {9, 0, 13, 4, 8, 9, 10,13, &operation9},
42 {10, 0, 13, 7, 11, 12, 1, 13, &operation10},
43 {11, 0, 13, 7, 11, 12, 1, 13, &operation11},
44 {12, 0, 13, 7, 11, 12, 1, 13, &operation12},
45
46 {13, 0, 25, 22, 14, 15, 16,25, &operation13},
47 {14, 0, 25, 22, 14, 15, 16,25, &operation14},
48 {15, 0, 25, 22, 14, 15, 16,25, &operation15},
49 {16, 0, 25, 13, 17, 18, 19,25, &operation16},
50 {17, 0, 25, 13, 17, 18, 19,25, &operation17},
51 {18, 0, 25, 13, 17, 18, 19,25, &operation18},
52 {19, 0, 25, 16, 20, 21, 22,25, &operation19},
53 {20, 0, 25, 16, 20, 21, 22,25, &operation20},
54 {21, 0, 25, 16, 20, 21, 22,25, &operation21},
55 {22, 0, 25, 19, 23, 24, 13,25, &operation22},
C51 COMPILER V8.15 MENU 10/29/2008 21:06:48 PAGE 2
56 {23, 0, 25, 19, 23, 24, 13,25, &operation23},
57 {24, 0, 25, 19, 23, 24, 13,25, &operation24},
58
59 {25, 0, 0, 34, 26, 27, 28,0, &operation25},
60 {26, 0, 0, 34, 26, 27, 28,0, &operation26},
61 {27, 0, 0, 34, 26, 27, 28,0, &operation27},
62 {28, 0, 0, 25, 29, 30, 31,0, &operation28},
63 {29, 0, 0, 25, 29, 30, 31,0, &operation29},
64 {30, 0, 0, 25, 29, 30, 31,0, &operation30},
65 {31, 0, 0, 28, 32, 33, 34,0, &operation31},
66 {32, 0, 0, 28, 32, 33, 34,0, &operation32},
67 {33, 0, 0, 28, 32, 33, 34,0, &operation33},
68 {34, 0, 0, 31, 35, 36, 25,0, &operation34},
69 {35, 0, 0, 31, 35, 36, 25,0, &operation35},
70 {36, 0, 0, 31, 35, 36, 25,0, &operation36}
71
72 };
73
74 uchar GetKeyInput(void) //按键扫描及处理程序
75 {
76 1 uchar KeyValue;
77 1 /*
78 1 if(STOP==0)
79 1 {
80 1 delay_xms(30);
81 1 if(STOP==0)
82 1 {
83 1 return KEY_STOP;
84 1 }
85 1 }
86 1 else if(START==0)
87 1 {
88 1 delay_xms(30);
89 1 if(START==0)
90 1 {
91 1 return KEY_START;
92 1 }
93 1 }
94 1
95 1 else if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0)&&(STOP==0)&&(START==0))
96 1 {
97 1 delay_xms(30);
98 1 if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0)&&(STOP==0)&&(START==0))
99 1 {
100 1 return KEY_ADJUST;
101 1 }
102 1 }
103 1
104 1 */
105 1 if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==1)) //按下“ESC”键
106 1 {
107 2 delay_xms(30);
108 2 if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==1))
109 2 {
110 3 KeyValue = 1;
111 3 }
112 2 }
113 1 else if((KEY_1==1)&&(KEY_2==1)&&(KEY_3==0)) //按下“MENU”键
114 1 {
115 2 delay_xms(30);
116 2 if((KEY_1==1)&&(KEY_2==1)&&(KEY_3==0))
117 2 {
C51 COMPILER V8.15 MENU 10/29/2008 21:06:48 PAGE 3
118 3 KeyValue = 2;
119 3 }
120 2 }
121 1 else if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==0)) //按下“LEFT”键
122 1 {
123 2 delay_xms(30);
124 2 if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==0))
125 2 {
126 3 KeyValue = 3;
127 3 }
128 2 }
129 1 else if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==1)) //按下“UP”键
130 1 {
131 2 delay_xms(30);
132 2 if((KEY_1==1)&&(KEY_2==0)&&(KEY_3==1))
133 2 {
134 3 KeyValue = 4;
135 3 }
136 2 }
137 1 else if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==1)) //按下“DOWN”键
138 1 {
139 2 delay_xms(30);
140 2 if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==1))
141 2 {
142 3 KeyValue = 5;
143 3 }
144 2 }
145 1 else if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==0)) //按下“RIGHT”键
146 1 {
147 2 delay_xms(30);
148 2 if((KEY_1==0)&&(KEY_2==1)&&(KEY_3==0))
149 2 {
150 3 KeyValue = 6;
151 3 }
152 2 }
153 1 else if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0)) //按下“ENTER”键
154 1 {
155 2 delay_xms(30);
156 2 if((KEY_1==0)&&(KEY_2==0)&&(KEY_3==0))
157 2 {
158 3 KeyValue = 7;
159 3 }
160 2 }
161 1 else
162 1 {
163 2 KeyValue = 0;
164 2 }
165 1
166 1 switch(KeyValue)
167 1 {
168 2 case 0: //没有键按下
169 2 {
170 3 return 0;
171 3 }
172 2 case 1: //按下“ESC”键,找出新的状态索引号
173 2 {
174 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyEsState;
175 3 break;
176 3 }
177 2 case 2: //按下“MENU”键,找出新的状态索引号
178 2 {
179 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyMeState;
C51 COMPILER V8.15 MENU 10/29/2008 21:06:48 PAGE 4
180 3 break;
181 3 }
182 2 case 3: //按下“LEFT”键,找出新的状态索引号
183 2 {
184 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyLeState;
185 3 break;
186 3 }
187 2 case 4: //按下“UP”键,找出新的状态索引号
188 2 {
189 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyUpState;
190 3 break;
191 3 }
192 2 case 5: //按下“DOWN”键,找出新的状态索引号
193 2 {
194 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyDnState;
195 3 break;
196 3 }
197 2 case 6: //按下“RIGHT”键,找出新的状态索引号
198 2 {
199 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyRiState;
200 3 break;
201 3 }
202 2 case 7: //按下“ENTER”键,找出新的状态索引号
203 2 {
204 3 KeyFuncIndex = KeyTab[KeyFuncIndex].KeyCrState;
205 3 break;
206 3 }
207 2 default: //按键出错处理
208 2 return 1;
209 2 }
210 1 KeyFuncPtr = KeyTab[KeyFuncIndex].CurrentOperate;
211 1 (*KeyFuncPtr)(); //执行当前按键操作
212 1 LastKeyIndex=KeyFuncIndex;
213 1 return 0;
214 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 479 ----
CONSTANT SIZE = 1441 ----
XDATA SIZE = ---- ----
PDATA SIZE = 6 1
DATA SIZE = ---- ----
IDATA SIZE = 2 ----
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 + -