📄 mcu.lst
字号:
245 2 INTEXT_EN = 0x11;
246 2 KeyTemp2 = 0;
247 2 }
248 1 INTEXT_EN |= 0x22;
249 1 TMOD=0x22;TL1=0xf3;TH1=0xf3;TR1=1;
250 1 PCON=0x80;SCON=0x50;ES=1;
251 1 TL0 = -250;TH0 = -250;TR0=1;ET0=1;EA=1;
252 1
253 1 #ifdef Debug
flag3 = 4;
#else
256 1 flag3 = 0;
257 1 #endif
258 1
259 1 //Sleep(50);
260 1 PowerStatus = 0xff;
261 1 IIC_BaudRate = 0x01;
262 1 LoadDDCData(1);
263 1 }
264
265 void Timer0(void) interrupt 1 using 2
266 {
267 1 if(IR_Timer != 0xff)
268 1 IR_Timer++;
269 1 if(++T0_INT_CNT >= 4)
270 1 {
271 2 T0_INT_CNT = 0;
272 2 if(Timer1 != 0) // 1ms
273 2 Timer1--;
274 2 if(++Timer10ms >= 10) // 10ms
275 2 {
276 3 CLRWDT = 0x55;
277 3 Timer10ms = 0;
278 3 if(DecodeDelay != 0)
279 3 DecodeDelay--;
280 3 if(Timer2 != 0)
281 3 Timer2--;
282 3 if(Timer3 != 0)
283 3 Timer3--;
284 3 if(Timer4 != 0)
285 3 Timer4--;
286 3 if(RepeatTimer != 0)
287 3 RepeatTimer--;
288 3 if(PoSvTimer != 0)
289 3 PoSvTimer--;
290 3 if(IR_RepeatTimer != 0){
291 4 IR_RepeatTimer--;
292 4 }
293 3 }
294 2 }
295 1 }
296
297 void Sbuf(void) interrupt 4
298 {
C51 COMPILER V7.50 MCU 03/18/2008 22:04:55 PAGE 6
299 1 RI=0;
300 1 if(zw)
301 1 { DataSbuf[x1]=SBUF;
302 2 x1++;
303 2 if(x1>=3)
304 2 { zw=0;x1=0;
305 3 if(DataSbuf[2]==0xfe)
306 3 { IRCode=DataSbuf[1];}
307 3 }
308 2 }
309 1 if(SBUF==0xf0) {zw=1;x1=1;}
310 1 }
311
312 void Sleep(unsigned short time)
313 {
314 1 Timer1 = time; /* timeout n ms */
315 1 while(Timer1 != 0){
316 2 }
317 1 }
318
319 void WaitSetup(unsigned short time)
320 {
321 1 Timer1 = time; /* timeout n ms */
322 1 while(Timer1 != 0){
323 2 CheckModeChange();
324 2 }
325 1 }
326
327 void ScanKeyPad(void)
328 {
329 1 unsigned char i,j,k;
330 1 Timer1 = 0;
331 1 do{
332 2 while((ADC_REG[3] & BIT_7) == 0){};
333 2 KeyPad1 = ADC_REG[0] & 0x7f;
334 2 KeyPad2 = ADC_REG[1] & 0x7f;
335 2 if((ADC_REG[2] & 0x7f) < 0x38){
336 3 flag1 |= BIT_7;
337 3 return;
338 3 }
339 2 ADC_CON = 0x17; //Channel; // Start AD Convert
340 2 ADC_CON = 0x97; //Channel; // Start AD Convert
341 2 //check adc0
342 2 if(KeyPad1 > KeyTemp1){
343 3 if((KeyPad1 - KeyTemp1 ) > 5){
344 4 KeyTemp1 = KeyPad1;
345 4 flag1 |= BIT_2;
346 4 Timer1 = KeyStabTime;
347 4 }
348 3 }
349 2 else{
350 3 if((KeyTemp1 - KeyPad1 ) > 5){
351 4 KeyTemp1 = KeyPad1;
352 4 flag1 |= BIT_2;
353 4 Timer1 = KeyStabTime;
354 4 }
355 3 }
356 2 //check adc1
357 2 if(KeyPad2 > KeyTemp2){
358 3 if((KeyPad2 - KeyTemp2 ) > 5){
359 4 KeyTemp2 = KeyPad2;
360 4 flag1 |= BIT_2;
C51 COMPILER V7.50 MCU 03/18/2008 22:04:55 PAGE 7
361 4 Timer1 = KeyStabTime;
362 4 }
363 3 }
364 2 else{
365 3 if((KeyTemp2 - KeyPad2 ) > 5){
366 4 KeyTemp2 = KeyPad2;
367 4 flag1 |= BIT_2;
368 4 Timer1 = KeyStabTime;
369 4 }
370 3 }
371 2
372 2 //check power key
373 2 if(((PortC & BIT_6) == 0)&&((flag3 & BIT_5) != 0)){
374 3 flag3 &= ~BIT_5;
375 3 flag1 |= BIT_2;
376 3 Timer1 = KeyStabTime;
377 3 }
378 2 if(((PortC & BIT_6) != 0)&&((flag3 & BIT_5) == 0)){
379 3 flag3 |= BIT_5;
380 3 flag1 |= BIT_2;
381 3 Timer1 = KeyStabTime;
382 3 }
383 2 }while(Timer1 != 0);
384 1 //change key
385 1 if((flag1 & BIT_2) != 0x00){
386 2 flag1 &= ~BIT_2;
387 2 if((flag3 & BIT_2) != 0x00){
388 3 printf("KEY1 = %x\r\n",(unsigned short)KeyTemp1);
389 3 printf("KEY2 = %x\r\n",(unsigned short)KeyTemp2);
390 3 }
391 2 for(i=0; i<5; i++){
392 3 if(KeyTemp1 > KeyTab[i])
393 3 j = KeyTemp1 - KeyTab[i];
394 3 else
395 3 j = KeyTab[i] - KeyTemp1;
396 3 if(j < 16){
397 4 j = i;
398 4 break;
399 4 }
400 3 }
401 2 for(i=0; i<5; i++){
402 3 if(KeyTemp2 > KeyTab[i])
403 3 k = KeyTemp2 - KeyTab[i];
404 3 else
405 3 k = KeyTab[i] - KeyTemp2;
406 3 if(k < 16){
407 4 k = i;
408 4 break;
409 4 }
410 3 }
411 2 KeyBuffer = k << 4;
412 2 KeyBuffer |= j;
413 2
414 2 if((flag3 & BIT_5) == 0){
415 3 if(KeyBuffer == DownKey){
416 4 flag3 |= BIT_0;
417 4 flag2 &= ~BIT_5;
418 4 Write24C16(0xcd,0x01);
419 4 if((flag3 & BIT_2) != 0x00)
420 4 printf("Entry Factory mode\r\n");
421 4 }
422 3 else{
C51 COMPILER V7.50 MCU 03/18/2008 22:04:55 PAGE 8
423 4 flag3 &= ~BIT_0;
424 4 k = Read24C16(0xe1);
425 4 k = ColorTab[k];
426 4 if(k == 0)
427 4 flag2 &= ~BIT_5;
428 4 else
429 4 flag2 |= BIT_5;
430 4 Write24C16(0xcd,0x00);
431 4 if((flag3 & BIT_2) != 0x00)
432 4 printf("Release Factory mode\r\n");
433 4 }
434 3 flag2 &= 0xf3; //clear display flag
435 3 KeyBuffer = PowerKey;
436 3 }
437 2 if((flag3 & BIT_2) != 0x00)
438 2 printf("KeyBuffer = %x\r\n",(unsigned short)KeyBuffer);
439 2 // set repeat timer
440 2 Repeat = KeyBuffer;
441 2 RepeatTimer = KeyHoldTime;
442 2 }
443 1 else{
444 2 if((RepeatTimer == 0)&&((OSD_Type > 0x00)||(OSD_Type < 0x04))){
445 3 switch(Repeat){
446 4 case LeftKey:
447 4 KeyBuffer = Repeat;
448 4 RepeatTimer = KeyRepeatTime;
449 4 break;
450 4 case RightKey:
451 4 KeyBuffer = Repeat;
452 4 RepeatTimer = KeyRepeatTime;
453 4 break;
454 4 }
455 3 }
456 2 }
457 1 }
458
459 void CheckKey(void)
460 {
461 1
462 1 ScanKeyPad();
463 1 if((PowerStatus & BIT_7) == 0)
464 1 {
465 2 if(KeyBuffer == RightKey){
466 3 ModePoint++;
467 3 }
468 2 if(KeyBuffer == LeftKey){
469 3 ModePoint--;
470 3 }
471 2 if(KeyBuffer != PowerKey){
472 3 KeyBuffer = 0xff;
473 3 }
474 2 }
475 1 switch(KeyBuffer){
476 2 case PowerKey: //POWER
477 2 KeyBuffer = 0xff;
478 2 if((PowerStatus & BIT_7) == 0)
479 2 {
480 3 PowerStatus |= BIT_7; //normal
481 3 Write24C16(0xcc,PowerStatus);
482 3 flag1 &= ~BIT_0;
483 3 if((flag1 & BIT_3) == 0)
484 3 {
C51 COMPILER V7.50 MCU 03/18/2008 22:04:55 PAGE 9
485 4 flag1 |= BIT_3;
486 4 ForceToBackground(0); //Set fource to background
487 4 PoSvTimer = 500;
488 4 }
489 3 if(ModePoint == 0xfc)
490 3 {
491 4 InitEEPROM();
492 4 LoadModeIndependentSettings();
493 4 LoadADC_Gain();
494 4 SetBrightness();
495 4 sRGB();
496 4 SetSharpness();
497 4 }
498 3 ScalerPowerUp();
499 3 DVI_On();
500 3 SourceSelect();
501 3 LED_RedOff();
502 3 LED_GrnOn();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -