📄 main.lst
字号:
371 **
372 ** 作 者: 龚树强
373 ** 日 期: 2004年10月15日
374 **-------------------------------------------------------------------------------------------------------
375 ** 修改人:
376 ** 日 期:
377 **------------------------------------------------------------------------------------------------------
378 ********************************************************************************************************/
379 void ISR_Counter_Int(void) interrupt COUNTER_INT_ISR
380 {
381 1 OS_INT_ENTER(); // 中断开始处理
382 1
383 1 IE0=0;
384 1 EX0=0;
385 1
386 1
387 1 TH0=TIME_THREADHOLD_LOW>>8;
388 1 TL0=TIME_THREADHOLD_LOW;
389 1
390 1 TR0=1;
391 1 ET0=1;
392 1
393 1 _Flag_CounterFallDown=1;
394 1
395 1
396 1 OSIntExit(); // 中断结束处理
397 1
398 1 }
399
400
401 /*********************************************************************************************************
402 ** 函数名称: ISR_Counter_Tmr
403 ** 功能描述: 一个任务,计数器的中断处理函数
404 **
405 ** 输 入: 无
406 ** 输 出: 无
407 ** 全局变量: 无
408 ** 调用模块: OSSemCreate(),DispStr(),OSWait(),DispClr(),OSSemPost(),
409 **
410 ** 作 者: 龚树强
411 ** 日 期: 2004年10月15日
412 **-------------------------------------------------------------------------------------------------------
413 ** 修改人:
414 ** 日 期:
415 **------------------------------------------------------------------------------------------------------
416 ********************************************************************************************************/
417 void ISR_Counter_Tmr(void) interrupt COUNTER_TMR_ISR
418 {
419 1 OS_INT_ENTER(); // 中断开始处理
420 1
421 1 TR0=0;
422 1 ET0=0;
423 1
424 1 _Flag_CounterTimeOut=1;
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 8
425 1
426 1
427 1 OSIntExit(); // 中断结束处理
428 1
429 1 }
430
431 /*********************************************************************************************************
432 ** 函数名称: ISR_Keyboard
433 ** 功能描述: 一个任务,Keyboard的中断处理函数
434 **
435 ** 输 入: 无
436 ** 输 出: 无
437 ** 全局变量: 无
438 ** 调用模块: OSSemCreate(),DispStr(),OSWait(),DispClr(),OSSemPost(),
439 **
440 ** 作 者: 龚树强
441 ** 日 期: 2004年10月15日
442 **-------------------------------------------------------------------------------------------------------
443 ** 修改人:
444 ** 日 期:
445 **------------------------------------------------------------------------------------------------------
446 ********************************************************************************************************/
447 void ISR_Keyboard(void) interrupt KEYBOARD_ISR
448 {
449 1 uint8 i,temp;
450 1 uint8 timer;
451 1
452 1
453 1 OS_INT_ENTER(); // 中断开始处理
-
454 1
455 1 IE1=0;
456 1 EX1=0;
457 1
458 1 ET2=1;
459 1 TF2=0;
460 1
461 1 PS2_CLK=1;
462 1 PS2_DATA=1;
463 1
464 1 temp=0;
465 1
466 1 for(timer=OVERTIME_THREAD;;timer--)
467 1 {
468 2 if(timer)
469 2 {
470 3 if(PS2_CLK){break;}
471 3 }
472 2 else{goto ERROR_OVERTIME;}
473 2 }
474 1 for(i=0;i<8;i++)
475 1 {
476 2 temp>>=1;
477 2 for(timer=OVERTIME_THREAD;;timer--)
478 2 {
479 3 if(timer)
480 3 {
481 4 if(!PS2_CLK)
482 4 {
483 5 if(PS2_DATA){temp+=0x80;}
484 5
485 5 break;
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 9
486 5 }
487 4 }
488 3 else{goto ERROR_OVERTIME;}
489 3 }
490 2 for(timer=OVERTIME_THREAD;;timer--)
491 2 {
492 3 if(timer)
493 3 {
494 4 if(PS2_CLK){break;}
495 4 }
496 3 else{goto ERROR_OVERTIME;}
497 3 }
498 2 }
499 1
500 1 for(;i<10;i++)
501 1 {
502 2 for(timer=OVERTIME_THREAD;;timer--)
503 2 {
504 3 if(timer)
505 3 {
506 4 if(!PS2_CLK){break;}
507 4 }
508 3 else{goto ERROR_OVERTIME;}
509 3 }
510 2 for(timer=OVERTIME_THREAD;;timer--)
511 2 {
512 3 if(timer)
513 3 {
514 4 if(PS2_CLK){break;}
515 4 }
516 3 else{goto ERROR_OVERTIME;}
517 3 }
518 2 }
519 1
520 1 if(temp>0xF0)
521 1 goto ERROR_OVERTIME;
522 1
523 1
524 1 _KeyboardTimer=UP_DELAY_THREADHOLD;
525 1
526 1 if(_Flag_KeyPressed)
527 1 {
528 2 if((temp==0xF0))
529 2 {
530 3 _KeyboardTimer=0;
531 3 _Flag_KeyPressed=0;
532 3 OSQIntPost(CommandData,_KeyScanReg);
533 3 _KeyScanReg=0;
534 3 }
535 2 }
536 1 else
537 1 {
538 2 if(temp==KEY_LOCK)
539 2 {
540 3 OSQIntPost(CommandData,temp);
541 3 }
542 2 else if((temp!=0xE0)&&(_KeyScanReg!=temp))
543 2 {
544 3 _Flag_KeyPressed=1;
545 3
546 3 _KeyScanReg=temp;
547 3 }
C51 COMPILER V7.50 MAIN 12/29/2004 20:23:49 PAGE 10
548 2
549 2
550 2
551 2 }
552 1
553 1
554 1
555 1 ERROR_OVERTIME : EX1=1;
556 1 IE1=0;
557 1 OSIntExit();
558 1
559 1 }
560
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -