📄 ss_sweep.lst
字号:
674 2
675 2 case 4:
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 12
676 2 /* showchinese(x+208,y,CCFB5);//系
677 2 showchinese(x+224,y,CCAFD);//数
678 2 show_num(x+240,y,CC010);//:*/
679 2 x=x+168;
680 2 showchinese(x,y,CC9A8);//扫
681 2 x=x+16;
682 2 showchinese(x,y,CCBD9);//速
683 2 x=x+16;
684 2 show_num(x,y,CC010);//:
685 2
686 2 /* showchinese(x+168,y,CC9A8);//扫
687 2 showchinese(x+184,y,CCBD9);//速
688 2 show_num(x+200,y,CC010);//:*/
689 2
690 2 break;
691 2
692 2 /* showchinese(x+224,y,C0000);//
693 2 showchinese(x+240,y,C0000);//
694 2 showchinese(x+256,y,C0000);//*/
695 2 default:break;
696 2 }
697 1 }
698
699
700 /***************************************************************
701 *名称:showchinese(uchar x,uchar y,int chin)
702 *描述:在x,y位置处,显示字符码为chin
703 *参数:坐标x,坐标y
704 *返回:
705 ****************************************************************/
706 void showchinese(unsigned int x,unsigned int y,int chin)
707 {
708 1 int temp1,temp2;
709 1 uchar hi,lo;
710 1 uchar b,c;
711 1 unsigned int d=x;
712 1 temp2=chin;
713 1 outcode(0x4F);
714 1 for(c=0;c<2;c++)
715 1 {
716 2 temp1=0x5000+d/8+y*AP;//5218
717 2 hi=temp1>>8;//hi=temp1/256;
718 2 lo=(uchar)temp1;//lo=temp1%256;
719 2 outcode(0x46);
720 2 outdata(lo);
721 2 outdata(hi);
722 2 outcode(0x42);
723 2 for(b=0;b<16;b++){
724 3 outdata(hzdot[temp2]);
725 3 temp2++;
726 3 }
727 2 d=d+8;
728 2 }
729 1 }
730 /***************************************************************
731 *名称:display_lead(void)
732 *描述:初始化液晶屏上第三层的汉字
733 *参数:
734 *返回:
735 ****************************************************************/
736 void display_lead(void)
737 {
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 13
738 1 /* uchar x=8;
739 1 uchar y=220;
740 1
741 1 showchinese(x,y,CC7EB);//请
742 1 showchinese(x+16,y,CB0B4);//按
743 1 showchinese(x+32,y,CC8B7);//确
744 1 showchinese(x+48,y,CB6A8);//定
745 1 showchinese(x+64,y,CBCFC);//键
746 1 showchinese(x+80,y,CCAE4);//输
747 1 showchinese(x+96,y,CC8EB);//入
748 1 showchinese(x+112,y,CC6B5);//频
749 1 showchinese(x+128,y,CC2CA);//率
750 1 */
751 1 last_line(0);//请按确定键输入频率
752 1 display_mod(0);//无信号
753 1
754 1 /* showchinese(264,24,CC4A3);//模
755 1 showchinese(264+16,24,CCABD);//式
756 1 show_num(264+32,24,CC010);//:
757 1
758 1 showchinese(264,144,CC6B5);//频
759 1 showchinese(264+16,144,CC2CA);//率*/
760 1
761 1 set_up(1);//频率
762 1 // show_num(264+32,144,CC010);//:
763 1
764 1 // show_num(304,184,CC011);//H
765 1 // show_num(312,184,CC012);//z
766 1 }
767 /***************************************************************
768 *名称:display_init(void)
769 *描述:初始化液晶屏和相关图形
770 *参数:
771 *返回:
772 ****************************************************************/
773 void display_init(void)
774 {
775 1 turnoff();
776 1 init();
777 1 initram();
778 1 turnon();
779 1 DrawFrame();
780 1 DrawGrid();
781 1 display_lead();
782 1 }
783 /***************************************************************
784 *名称:showsine (void)
785 *描述:显示采样的结果,采64个点但显示256点
786 *参数:xr_temp[]显示数组,N_temp数组元素个数,
787 start_add图形开始的x地址,last上次显示最后一个元素
788 *返回:
789 ****************************************************************/
790 /*void showsine (uchar xr_temp[],uchar N_temp,uchar start_add,uchar last)
791 {
792 uchar i ;
793 WriteD(start_add,xr_temp[1]>>1);
794 vector(start_add-1,last>>1,xr_temp[1]>>1);
795 for(i=2;i<N_temp;i++)
796 {
797 WriteD(i-1+start_add,xr_temp[i]>>1);
798 vector(i-2+start_add,xr_temp[i-1]>>1,xr_temp[i]>>1);
799 }
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 14
800 }*/
801
802 void show_num (unsigned int x, unsigned int y, int chin)
803 {
804 1 int temp1,temp2;
805 1 uchar hi,lo;
806 1 uchar b;
807 1 unsigned int d=y;
808 1 temp2=chin;
809 1 outcode(0x4f);
810 1 temp1=0x5000+x/8+d*AP;//5218
811 1 hi=temp1>>8;//hi=temp1/256;
812 1 lo=(uchar)temp1;//lo=temp1%256;
813 1 outcode(0x46);
814 1 outdata(lo);
815 1 outdata(hi);
816 1 outcode(0x42);
817 1 for(b=0;b<16;b++){
818 2 outdata(hzdot[temp2]);
819 2 temp2++;
820 2 }
821 1 }
822 #define Start 0
823 #define Screen 1
824 #define Setup 2
825 #define FreqScan 3
826 #define TiaoFu 4
827
828 #define enter_num 0
829 #define wait_key 1
830 #define exit_setup 2
831 #define scan_start 3
832 #define scan_select 4
833
834 unsigned long int Freq,FreqS,step,minF,maxF;
835 unsigned long int Freq_temp;
836 unsigned char MainSM=0;
837 unsigned char SetupSM=0;
838 //unsigned char SetFSM=4;//扫频状态的子状态
839 unsigned long int SetFSM=0;
840 unsigned long int aa=0;//aa是扫频状态中表示子状态的一个参数,记录按下setup的次数
841 unsigned long int bb=1;//bb is freq scan mod select
842
843 void main(void)
844 {
845 1 unsigned char mod,value_index;
846 1 init_port();
847 1 init_interrupt();
848 1 _nop_();
849 1 _nop_();
850 1 _nop_();
851 1 display_init();
852 1
853 1 //cls();
854 1 while(1){
855 2 switch(MainSM)
856 2 {
857 3 case Start: MainSM=Screen;
858 3 SetPhase(0);
859 3 SetCMD(mod&0x01);
860 3 refresh_led();
861 3 break;
C51 COMPILER V8.02 SS_SWEEP 12/07/2007 16:59:16 PAGE 15
862 3 case Screen:
863 3 if(key_pressed==ON)
864 3 {
865 4 switch(key_no)
866 4 {
867 5 case key_enter: MainSM=Setup;
868 5 //SetPhase(Freq);
869 5 break;
870 5 case key_clr: MainSM=FreqScan;
871 5 FreqS=Freq;
872 5 set_up(2);
873 5 show_fre(4);
874 5 sweep_amp(0);//扫频
875 5 break;
876 5 case key_mod: SetCMD((++mod)&0x01);//SetCMD((++mod)&0x01)
877 5 display_mod((mod)&0x01);//display_mod((mod)&0x01)
878 5 refresh_led();
879 5 break;
880 5 case key_tiao: MainSM=TiaoFu;
881 5 SetCMD(2);
882 5 sweep_amp(1);
883 5 break;
884 5 default: break;
885 5 }
886 4 key_pressed=OFF;
887 4 }
888 3 break;
889 3 case FreqScan: //扫频输出状态
890 3 //Set_Display_Add(384);
891 3 //printf("Scan Frequence");
892 3 //sweep_amp(0);//扫频
893 3 switch(SetFSM)//进入扫频状态的设置
894 3 {
895 4 case enter_num://扫频初始状态,并LCD显示不同的内容
896 4 if(aa==0){//设置扫频频率的最小值
897 5 //cls();
898 5 //Set_Display_Add(512);
899 5 //printf("min:");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -