📄 read_key.lst
字号:
144 key_H = ~key_H;
145
146 key_code = key_L; // 将6位键码存入key_code中
147 key_code &= 0x3f;
148
149 key_ctrl = key_H & 0x03;
150 key_ctrl <<= 2;
151 key_ctrl |= key_L>>6; // 将4位特殊码存入key_ctrl中
152 // 判有无键输入
153
154 if(key_code==0 && key_ctrl==0) // 无键
155 {
156 ;
157 } // brush dis buffer sw ctrl
158 if(key_code_temp_L == key_code && key_code_temp_H == key_ctrl)
159 { // 有键但键码未变
160 ;
161 }
162 else // 有键且键码已变
163 {
164 key_code_temp_H = key_ctrl;
165 key_code_temp_L = key_code;
166 }
167
168 }
C51 COMPILER V7.50 READ_KEY 05/08/2005 19:55:53 PAGE 4
169
170 //------------------------------ end sub ----------------------------
171
172 //++++++++++++++++++ key code turn to floor define ++++++++++++++++++
173
174 // key code turn to define floor
175
176
177 void key_code_doing( uchar c_to_f )
178 {
179
180 switch( c_to_f )
181 {
182 //case 0 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
183 case 1 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
184 case 2 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
185 case 3 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
186 case 4 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
187 case 5 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
188 case 6 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
189 case 7 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
190 case 8 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
191 case 9 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
192
193 case 10 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
194 case 11 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
195 case 12 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
196 case 13 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
197 case 14 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
198 case 15 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
199 case 16 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
200 case 17 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
201 case 18 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
202 case 19 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
203
204 case 20 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
205 case 21 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
206 case 22 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
207 case 23 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
208 case 24 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
209 case 25 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
210 case 26 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
211 case 27 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
212 case 28 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
213 case 29 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
214
215 case 30 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
216 case 31 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
217 case 32 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
218 case 33 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
219 case 34 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
220 case 35 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
221 case 36 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
222 case 37 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
223 case 38 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
224 case 39 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
225
226 case 40 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
227 case 41 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
228 case 42 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
229 case 43 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
230 case 44 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
C51 COMPILER V7.50 READ_KEY 05/08/2005 19:55:53 PAGE 5
231 case 45 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
232 case 46 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
233 case 47 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
234 case 48 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
235 case 49 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
236
237 case 50 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
238 case 51 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
239 case 52 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
240 case 53 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
241 case 54 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
242 case 55 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
243 case 56 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
244 case 57 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
245 case 58 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
246 case 59 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
247
248 case 60 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
249 case 61 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
250 case 62 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
251 case 63 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
252 case 64 : floor_l = floor_tab[c_to_f*2+1]; floor_h = floor_tab[c_to_f*2]; break;
253
254 default : floor_l = 0xff; floor_h = 0xff; break; // send don't dis data
255 }
256 }
257 //++++++++++++++++++++++++++++++ sub end +++++++++++++++++++++++++++
258
259 //!!!!!!!!!!!!!!!!!!!!!!!!! special key judge !!!!!!!!!!!!!!!!!!!!!!!
260
261 void key_ctrl_doing()
262 {
263 switch( key_ctrl )
264 {
265 case 0 : special_code = 0; break; //无特殊键
266
267 case 1 : special_code = 1; break; //有上箭头
268 case 5 : special_code = 2; break; //有上箭头,且上滚
269
270 case 2 : special_code = 3; break; //有下箭头
271 case 6 : special_code = 4; break; //有下箭头,且下滚
272
273 case 8 : special_code = 5; break; //有暂停服务消息
274
275 default : special_code = 6; break; //作出错处理
276 }
277 }
278
279
280
281
282
283
284 void key_decoder()
285 {
286 read_key();
287 key_ctrl_doing();
288 switch( special_code )
289 {
290 case 0 : number_location_flag = 0; key_code_doing( key_code );break;
291 case 1 : number_location_flag = 1; arrow_roll_flag = 0; arrow_type=1; key_code_doing( key_code );break;
292 case 2 : number_location_flag = 1; arrow_roll_flag = 1; arrow_type=1; key_code_doing( key_code );break;
C51 COMPILER V7.50 READ_KEY 05/08/2005 19:55:53 PAGE 6
293 case 3 : number_location_flag = 1; arrow_roll_flag = 0; arrow_type=0; key_code_doing( key_code );break;
294 case 4 : number_location_flag = 1; arrow_roll_flag = 1; arrow_type=0; key_code_doing( key_code );break;
295 case 5 : break; //out_0f_server(); break;
296 case 6 : break; //error(); break;
297 }
298 }
299
300
C51 COMPILATION COMPLETE. 0 WARNING(S), 11 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -