📄 keyboard.lst
字号:
204 2 }
205 1 else
206 1 {
207 2 No_Key_Counter++;
208 2 }
209 1
210 1 if(Enable_Get_Key==1)
211 1 {
212 2
213 2 if(Get_Key_Counter>80)
214 2 {
215 3
216 3 if(Get_Key_Counter>No_Key_Counter+10) //No_Key_Counter+10-100))
217 3 {
218 4 Get_Panel_Click_key();
219 4 //Tuner.FMFreq=Key_Code-0x40+9000; System_Flag_DispEvent=1;
220 4 //Key_Code=0xff;
221 4 }
222 3
223 3 //process the repeat key input
224 3 if(Key_Code==KEY_FP_TRACK_DOWN
225 3 ||Key_Code==KEY_FP_TRACK_UP)
226 3 {
227 4
228 4
229 4 if(Flag_Get_Hold_Key)
230 4 {
231 5 //when get hold key ,we mask some key
232 5 if(Get_Key_Counter>80)
233 5 {
234 6 //the key is hold
235 6 No_Key_Counter=0;
236 6 Get_Key_Counter=0;
237 6 // Key_Code=0xFF;
238 6
239 6
240 6 }
241 5 else
C51 COMPILER V8.02 KEYBOARD 10/16/2006 17:42:27 PAGE 5
242 5 Key_Code=0xFF;
243 5
244 5 Need_Send_Single_Key=0;
245 5
246 5
247 5 }
248 4 else
249 4 {
250 5 Need_Send_Single_Key=1;
251 5 Panel_Key_Backup=Key_Code;
252 5 Key_Code=0xFF;
253 5 if(Get_Key_Counter>1000)
254 5 Flag_Get_Hold_Key=1;
255 5 }
256 4
257 4 Enable_Get_Key=1;
258 4
259 4
260 4 }
261 3 else if(FP_Key_Hold_Enable_Table[Key_Code-0x40])
262 3 // ==KEY_FP_TUNER_AREA||Key_Code==KEY_FP_PROGRAM)
263 3 {//process the Hold key
264 4
265 4 //get the hold key and send it ,then disable the input until key release
266 4 if(Get_Key_Counter>3000)
267 4 {
268 5 Enable_Get_Key=0;
269 5 Need_Send_Single_Key=0;
270 5 Key_Code=Key_Code+0x80;
271 5
272 5 }
273 4 else
274 4 {//only get the single press key,send the key after key release
275 5 Enable_Get_Key=1;
276 5 Need_Send_Single_Key=1;
277 5 Panel_Key_Backup=Key_Code;
278 5 Key_Code=0xFF;
279 5
280 5 }
281 4
282 4 }
283 3 else
284 3 {
285 4 Enable_Get_Key=0;
286 4 Get_Key_Counter=0;
287 4 No_Key_Counter=0;//No_Key_Counter=100;
288 4 Flag_Get_Hold_Key=0;
289 4 }
290 3
291 3 }
292 2 }
293 1
294 1
295 1 if(No_Key_Counter>10)//No_Key_Counter>130)
296 1 {
297 2 //Tuner.FMFreq=Get_Key_Counter; System_Flag_DispEvent=1;
298 2 Enable_Get_Key=1;
299 2 No_Key_Counter=0;//No_Key_Counter=100;
300 2 Get_Key_Counter=0;
301 2 Flag_Get_Hold_Key=0;
302 2 //send the backup key
303 2 if( Need_Send_Single_Key)
C51 COMPILER V8.02 KEYBOARD 10/16/2006 17:42:27 PAGE 6
304 2 {
305 3 Key_Code= Panel_Key_Backup;
306 3 Need_Send_Single_Key=0;
307 3 }
308 2 else
309 2 Key_Code=0xFF;
310 2
311 2 Key_Scan_Buffer0=0xFF;
312 2 Key_Scan_Buffer1=0xFF;
313 2 Key_Scan_Buffer2=0xFF;
314 2 Key_Scan_Buffer3=0xFF;
315 2 }
316 1
317 1
318 1 }
319
320 #else
#define SET_KEY_OUT0_LOW P2=0xFE //KEY_OUT0=0;// KEY_OUT1=1;KEY_OUT2=1;KEY_OUT3=1;
#define SET_KEY_OUT1_LOW P2=0xFD //KEY_OUT0=1; KEY_OUT1=0;KEY_OUT2=1;KEY_OUT3=1;
#define SET_KEY_OUT2_LOW P2=0xFB //KEY_OUT0=1; KEY_OUT1=1;KEY_OUT2=0;KEY_OUT3=1;
#define SET_KEY_OUT3_LOW P2=0xF7 //KEY_OUT0=1; KEY_OUT1=1;KEY_OUT2=1;KEY_OUT3=0;
#define SET_KEY_OUT_CANCEL P2=0xFF //KEY_OUT0=1; KEY_OUT1=1;KEY_OUT2=1;KEY_OUT3=1;
#define KEY_INPUT_REGISTER P2
#define GET_SIGNLE_KEY_TIMER 0x80
void Get_Panel_Click_key()
{
U8 get_key_flag, temp_key_code;
get_key_flag=0;
temp_key_code=0xff;
//check the first line input
switch(Key_Scan_Buffer0)
{
case 0x7: //key4 presss
Key_Code=0x44; // 0b 0100 0100
//Tuner.FMFreq=4+9000; System_Flag_DispEvent=1;
break;
case 0xB: //key3 press
Key_Code=0x43; // 0b 0100 0011
// Tuner.FMFreq=3+9000; System_Flag_DispEvent=1;
break;
case 0xD: //key2 presss
Key_Code=0x42; // 0b 0100 0010
// Tuner.FMFreq=2+9000; System_Flag_DispEvent=1;
break;
case 0xE: //key1 presss
Key_Code=0x41; // 0b 0100 0001
//Tuner.FMFreq=1+9000; System_Flag_DispEvent=1;
break;
default:
break;
}
switch(Key_Scan_Buffer1)
{
case 0x7: //key4 presss
Key_Code=0x48; // 0b 0100 0100
break;
case 0xB: //key3 press
C51 COMPILER V8.02 KEYBOARD 10/16/2006 17:42:27 PAGE 7
Key_Code=0x47; // 0b 0100 0011
break;
case 0xD: //key2 presss
Key_Code=0x46; // 0b 0100 0010
break;
case 0xE: //key1 presss
Key_Code=0x45; // 0b 0100 0001
break;
default:
break;
}
switch(Key_Scan_Buffer2)
{
case 0x7: //key4 presss
Key_Code=0x4C; // 0b 0100 0100
break;
case 0xB: //key3 press
Key_Code=0x4B; // 0b 0100 0011
break;
case 0xD: //key2 presss
Key_Code=0x4A; // 0b 0100 0010
break;
case 0xE: //key1 presss
Key_Code=0x49; // 0b 0100 0001
break;
default:
break;
}
switch(Key_Scan_Buffer3)
{
case 0x7: //key4 presss
Key_Code=0x50; // 0b 0100 0100
break;
case 0xB: //key3 press
Key_Code=0x4F; // 0b 0100 0011
break;
case 0xD: //key2 presss
Key_Code=0x4E; // 0b 0100 0010
break;
case 0xE: //key1 presss
Key_Code=0x4D; // 0b 0100 0001
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -