📄 timer1.lst
字号:
552 3 }
553 2 break ;
554 2
555 2 case GREEN :
556 2 if(MachineState==WORK)
557 2 {
558 3 CurrLed=4 ;
559 3 //这一路正在运行
560 3 if(IsRun[CurrLed]==1)
561 3 {
562 4 PLed4=1 ;
563 4 IsRun[CurrLed]=0 ;
564 4 //停止并数据复位。
565 4 TimeDelay[CurrLed]=0 ;
566 4 }
567 3 else
568 3 {
569 4 PLed4=0 ;
570 4 IsRun[CurrLed]=1 ;
571 4 TimeDelay[CurrLed]=TimeSave[CurrLed];
572 4 }
573 3 }
574 2
575 2
576 2 else
577 2 {
578 3 PLed4=0 ;
579 3 MachineState=SET5 ;
580 3 if(TimeSave[4]>=100)
581 3 TimeSave[4]-=100 ;
582 3 IsSetFirst=1 ;
583 3 }
584 2 break ;
585 2
586 2 case BLUE :
587 2 if(MachineState==WORK)
588 2 {
589 3 CurrLed=5 ;
590 3 //这一路正在运行
591 3 if(IsRun[CurrLed]==1)
592 3 {
593 4 PLed5=1 ;
594 4 IsRun[CurrLed]=0 ;
595 4 //停止并数据复位。
596 4 TimeDelay[CurrLed]=0 ;
597 4 }
598 3 else
599 3 {
600 4 PLed5=0 ;
601 4 IsRun[CurrLed]=1 ;
602 4 TimeDelay[CurrLed]=TimeSave[CurrLed];
603 4 }
604 3 }
605 2
606 2 else
607 2 {
608 3 PLed5=0 ;
609 3 MachineState=SET6 ;
610 3 if(TimeSave[5]>=100)
611 3 TimeSave[5]-=100 ;
612 3 IsSetFirst=1 ;
613 3 }
C51 COMPILER V9.01 TIMER1 05/06/2012 20:40:06 PAGE 11
614 2 break ;
615 2
616 2 case UP :
617 2 funUp();
618 2 break ;
619 2 case DOWN :
620 2 funDown();
621 2 break ;
622 2
623 2 case LEFT :
624 2 funLeft();
625 2 break ;
626 2 case RIGHT :
627 2 funRight();
628 2 break ;
629 2 case OK :
630 2 funOk();
631 2 break ;
632 2 default :
633 2 break ;
634 2 }
635 1 KeyCode=0x00 ;
636 1
637 1
638 1
639 1 //按键p1持续按下的代码
640 1 if(KeyPressing1)
641 1 {
642 2 if(MachineState!=WORK)
643 2 {
644 3
645 3 //持续按下的时间超过50*20=1000ms则
646 3 if(++Key1PressingTime>=20)
647 3 {
648 4 //每200ms会执行一次keycode++;
649 4 if(Key1PressingTime%5==0)
650 4 switch(KeyPressing1)
651 4 {
652 5 case YELLOW :
653 5 PLed0=0 ;
654 5 MachineState=SET1 ;
655 5 IsSetFirst=1 ;
656 5 if(TimeSave[0]<100)TimeSave[0]+=100 ;
657 5 IsSetFirst=1 ;
658 5 break ;
659 5 case ORANGE :
660 5 PLed1=0 ;
661 5 MachineState=SET2 ;
662 5 IsSetFirst=1 ;
663 5 if(TimeSave[1]<100)TimeSave[1]+=100 ;
664 5 IsSetFirst=1 ;
665 5 break ;
666 5 case PURPLE :
667 5 PLed2=0 ;
668 5 MachineState=SET3 ;
669 5 IsSetFirst=1 ;
670 5 if(TimeSave[2]<100)TimeSave[2]+=100 ;
671 5 IsSetFirst=1 ;
672 5 break ;
673 5 case RED :
674 5 PLed3=0 ;
675 5 MachineState=SET4 ;
C51 COMPILER V9.01 TIMER1 05/06/2012 20:40:06 PAGE 12
676 5 IsSetFirst=1 ;
677 5 if(TimeSave[3]<100)TimeSave[3]+=100 ;
678 5 IsSetFirst=1 ;
679 5 break ;
680 5 case GREEN :
681 5 PLed4=0 ;
682 5 MachineState=SET5 ;
683 5 IsSetFirst=1 ;
684 5 if(TimeSave[4]<100)TimeSave[4]+=100 ;
685 5 IsSetFirst=1 ;
686 5 break ;
687 5 case BLUE :
688 5 PLed5=0 ;
689 5 MachineState=SET6 ;
690 5 IsSetFirst=1 ;
691 5 if(TimeSave[5]<100)TimeSave[5]+=100 ;
692 5 IsSetFirst=1 ;
693 5 break ;
694 5 case UP :
695 5 IsFlashTime=0 ;
696 5 funUp();
697 5 break ;
698 5 case DOWN :
699 5 IsFlashTime=0 ;
700 5 funDown();
701 5 break ;
702 5 default :
703 5 break ;
704 5 }
705 4 }
706 3
707 3 }
708 2 }
709 1 else
710 1 Key1PressingTime=0 ;
711 1 //该按键出现弹起现象,则时间恢复为0
712 1
713 1 //按键p2持续按下的代码
714 1 if(KeyPressing2)
715 1 {
716 2 //持续按下的时间超过50*20=1000ms则
717 2 if(++Key2PressingTime>=20)
718 2 if(KeyPressing2==(OK&0x0e))
719 2 if(MachineState==WORK)
720 2 {
721 3 MachineState=SET1 ;
722 3 if(TimeSave[0]>=100)
723 3 TimeSave[0]-=100 ;
724 3 IsSetFirst=1 ;
725 3
726 3 }
727 2
728 2 }
729 1 else
730 1 Key2PressingTime=0 ;
731 1 //该按键出现弹起现象,则时间恢复为0
732 1
733 1
734 1 }
735
736
737 void funUp(void)
C51 COMPILER V9.01 TIMER1 05/06/2012 20:40:06 PAGE 13
738 {
739 1 if(MachineState!=WORK)
740 1 {
741 2 if(IsFlash[2])
742 2 {
743 3 if(++DisplayData[2]>=10)
744 3 DisplayData[2]=0 ;
745 3 }
746 2 else
747 2 {
748 3 if(++DisplayData[3]>=10)
749 3 DisplayData[3]=0 ;
750 3 }
751 2 }
752 1 }
753 void funDown(void)
754 {
755 1 if(MachineState!=WORK)
756 1 {
757 2 if(IsFlash[2])
758 2 {
759 3 if(--DisplayData[2]>=10)
760 3 DisplayData[2]=9 ;
761 3 }
762 2 else
763 2 {
764 3 if(--DisplayData[3]>=10)
765 3 DisplayData[3]=9 ;
766 3 }
767 2 }
768 1
769 1 }
770
771
772 void funLeft(void)
773 {
774 1 if(MachineState!=WORK)
775 1 {
776 2 IsFlash[2]=0x01 ;
777 2 IsFlash[3]=0x00 ;
778 2 }
779 1 }
780 void funRight(void)
781 {
782 1 if(MachineState!=WORK)
783 1 {
784 2 IsFlash[2]=0x00 ;
785 2 IsFlash[3]=0x01 ;
786 2 }
787 1
788 1 }
789 void funOk(void)
790 {
791 1 unsigned char i ;
792 1 //保存数据并进入倒计时暂停状态
793 1 if(MachineState!=WORK)
794 1 {
795 2
796 2 IsFlash[2]=0x00 ;
797 2 IsFlash[3]=0x00 ;
798 2 if(TimeSave[MachineState-1]<100)
799 2 TimeSave[MachineState-1]=DisplayData[2]*10+DisplayData[3];
C51 COMPILER V9.01 TIMER1 05/06/2012 20:40:06 PAGE 14
800 2 else
801 2 TimeSave[MachineState-1]=DisplayData[2]*10+DisplayData[3]+100 ;
802 2
803 2 MachineState=WORK ;
804 2 for(i=0;i<6;i++)
805 2 {
806 3 TimeDelay[i]=TimeSave[i];
807 3 IsRun[i]=0 ;
808 3 }
809 2 //这里保存数据到eeprom
810 2 sector_erase(0x4000);
811 2 sequential_write_flash_in_one_sector(0x4000, 6, TimeSave );
812 2 }
813 1 }
814
815
816
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1606 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 39 2
IDATA SIZE = ---- ----
BIT SIZE = 6 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -