📄 ss_sweep.lst
字号:
632 3 Set_Display_Add(428);
633 3 printf("SETUP");
634 3 SetFSM=0;
635 3 aa=0;
636 3 switch(SetupSM)
637 3 {
638 4 case enter_num: value[0]=0;
639 4 value[1]=0;
640 4 value[2]=0;
641 4 value[3]=0;
642 4 value[4]=0;
643 4 Set_Display_Add(560);
644 4 putchar(value[0]+0x30);
645 4 putchar(value[1]+0x30);
646 4 putchar(value[2]+0x30);
647 4 putchar(value[3]+0x30);
648 4 putchar(value[4]+0x30);
649 4 value_index=0;
650 4 SetupSM=wait_key;
651 4 break;
652 4 case wait_key: if(key_pressed==ON)
653 4 {
654 5 switch(key_no)
655 5 {
656 6 case key0:
657 6 case key1:
658 6 case key2:
659 6 case key3:
660 6 case key4:
661 6 case key5:
662 6 case key6:
663 6 case key7:
664 6 case key8:
665 6 case key9:
666 6 if(value_index<5)
667 6 {
668 7 value[value_index]=key_no;
669 7 value_index++;
670 7 }
671 6
672 6 break;
673 6 case key_enter:SetupSM=exit_setup;
674 6 break;
675 6 case key_mod: SetCMD((++mod)&0x03);
C51 COMPILER V7.06 SS_SWEEP 02/25/2007 16:14:28 PAGE 12
676 6 display_mod((mod)&0x03);
677 6 refresh_led();
678 6 break;
679 6 default: break;
680 6 }
681 5 Set_Display_Add(560);
682 5 putchar(value[0]+0x30);
683 5 putchar(value[1]+0x30);
684 5 putchar(value[2]+0x30);
685 5 putchar(value[3]+0x30);
686 5 putchar(value[4]+0x30);
687 5 refresh_led();
688 5 key_pressed=OFF;
689 5 }
690 4
691 4 break;
692 4 case exit_setup: Freq_temp=value[0];
693 4 Freq=Freq_temp*10000;
694 4 Freq_temp=value[1];
695 4 Freq=Freq+Freq_temp*1000;
696 4 Freq_temp=value[2];
697 4 Freq=Freq+Freq_temp*100;
698 4 Freq_temp=value[3];
699 4 Freq=Freq+Freq_temp*10;
700 4 Freq=Freq+value[4];
701 4 SetPhase(Freq);
702 4 Set_Display_Add(560);
703 4 putchar(value[0]+0x30);
704 4 putchar(value[1]+0x30);
705 4 putchar(value[2]+0x30);
706 4 putchar(value[3]+0x30);
707 4 putchar(value[4]+0x30);
708 4 refresh_led();
709 4 Set_Display_Add(428);
710 4 printf(" ");
711 4 refresh_led();
712 4 SetupSM=enter_num;
713 4 MainSM=Screen;
714 4 break;
715 4 }
716 3 break;
717 3 ////////////////////////////////////////////////////////////
718 3 case TiaoFu: //调幅状态
719 3 SetCMD(2);
720 3 display_mod(2);
721 3 aa=0;
722 3 SetFSM=0;
723 3 switch(SetupSM)
724 3 {
725 4 case enter_num: value[0]=0;//调制波频率初始值为前一个状态所设置的值
726 4 value[1]=0;
727 4 value[2]=0;
728 4 value[3]=0;
729 4 value[4]=0;
730 4 Set_Display_Add(560);
731 4 putchar(value[0]+0x30);
732 4 putchar(value[1]+0x30);
733 4 putchar(value[2]+0x30);
734 4 putchar(value[3]+0x30);
735 4 putchar(value[4]+0x30);
736 4 value_index=0;
737 4 SetupSM=wait_key;
C51 COMPILER V7.06 SS_SWEEP 02/25/2007 16:14:28 PAGE 13
738 4 break;
739 4 case wait_key: if(key_pressed==ON)//提取按键值,进行状态的处理
740 4 {
741 5 switch(key_no)
742 5 {
743 6 case key0:
744 6 case key1:
745 6 case key2:
746 6 case key3:
747 6 case key4:
748 6 case key5:
749 6 case key6:
750 6 case key7:
751 6 case key8:
752 6 case key9:
753 6 if(value_index<5)
754 6 {
755 7 value[value_index]=key_no;
756 7 value_index++;
757 7 }
758 6
759 6 break;
760 6 case key_enter:SetupSM=exit_setup;//按下setup,进行载波调制波频率的设置
761 6 break;
762 6 case key_tiao: //若再按下调幅键,则进入DDS的最初状态,即screen状态,可以进行正常频率的设置
763 6 SetupSM=enter_num;
764 6 MainSM=Screen;
765 6 SetCMD(0);
766 6 display_mod(0);
767 6 break;
768 6 default: break;
769 6 }
770 5 Set_Display_Add(560);
771 5 putchar(value[0]+0x30);
772 5 putchar(value[1]+0x30);
773 5 putchar(value[2]+0x30);
774 5 putchar(value[3]+0x30);
775 5 putchar(value[4]+0x30);
776 5 refresh_led();
777 5 key_pressed=OFF;
778 5 }
779 4
780 4 break;
781 4 case exit_setup: Freq_temp=value[0];
782 4 Freq=Freq_temp*10000;
783 4 Freq_temp=value[1];
784 4 Freq=Freq+Freq_temp*1000;
785 4 Freq_temp=value[2];
786 4 Freq=Freq+Freq_temp*100;
787 4 Freq_temp=value[3];
788 4 Freq=Freq+Freq_temp*10;
789 4 Freq=Freq+value[4];
790 4 SetPhase(Freq);//设置调制波频率
791 4 Set_Display_Add(560);
792 4 putchar(value[0]+0x30);
793 4 putchar(value[1]+0x30);
794 4 putchar(value[2]+0x30);
795 4 putchar(value[3]+0x30);
796 4 putchar(value[4]+0x30);
797 4 refresh_led();
798 4 Set_Display_Add(428);
799 4 printf(" ");
C51 COMPILER V7.06 SS_SWEEP 02/25/2007 16:14:28 PAGE 14
800 4 refresh_led();
801 4 SetupSM=enter_num;
802 4 MainSM=Screen;
803 4
804 4 break;
805 4 }
806 3 break;
807 3 ////////////////////////////////////////////////////////////
808 3 default:
809 3 break;
810 3 }
811 2
812 2
813 2
814 2 } //等待中断
815 1 }
816
817 void interrupt_handle() interrupt 0
818 {
819 1 //uchar disdata;
820 1 DISABLE; //CPU关中断
821 1 wait(); //键盘消抖延时
822 1 if (Int_wire==0)
823 1 {
824 2 key_pressed=ON;
825 2 P2=0xFF;
826 2 key_no=P2&0x0F; //读取P2口的低四位显示数据编码
827 2 }
828 1 ENABLE; //CPU开中断
829 1 }
830
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3536 ----
CONSTANT SIZE = 185 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 42 11
IDATA SIZE = 6 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -