⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文档 (4)相位可调.txt

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 TXT
📖 第 1 页 / 共 2 页
字号:
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);

                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
  				lcd1602_wrcmd(offset+0x40);   //换行
			     a=a*10+8;
	      	     xianshu(a);  
                 }
			else if (key==10)
		     	 {
		  		lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
			 	a=a*10+9;
	      	    xianshu(a);  
                }
			else if (key==13)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
				a=a*10+0;
	      	    xianshu(a);  
                 }
              
              }
		    
	          return a;
			 
			
        	}						    







void main()																	  		 
{	
   
    uchar i;
	uchar t;

   	
 	uchar i2;
	uchar j=0;     //标记
	ulong a=1000,b=1000;  //a用来记录频率;b用来记录频率间隔(开始是为1000HZ)
	ulong c=0; 
	
    
	uchar code d[]="please insert F:";
	uchar code q[]="insert code:        ";  
	uchar code w[]="please insert DF:" ;
	uchar  ask[10];


	uchar str0='1';
	uchar str1='2';
	uchar str2='3';
    uchar str3='A';
	uchar str4='4';
	uchar str5='5';
    uchar str6='6';
	uchar str7='B';
	uchar str8='7';
    uchar str9='8';
	uchar str10='9';
	uchar str11='c';
	uchar str12='*';
    uchar str13='0';
	uchar str14='#';
	uchar str15='D';	

	

	unsigned char offset=0x80;   //定义一个偏移地址变量,lcd1602 写入控制字时用到
	unsigned char key;

	delay(2);
	lcd1602_bus=0xff;
	lcd1602_init();
    lcd1602_wrcmd(offset+0x00);
    xianshi(0);  
   	
	
    


//	lcd1602_clear();
    while(1)
        {  	
           
		   key=getkey_ii();

		   if(key==7)
		  	{ 
				j=j+1;
				if(j>4)j=0;
			     xianshi(j);      
			 
			 }
		   if (key==3)
		  	{ 			 
			    if (j==0) j=5;
				j=j-1;
			    

				xianshi(j);

			 } 
		  if(key==0  || ((j==0)&&(key==15)))
        	{ key=getkey_ii(); 
		       ad9850(a,b,c);			
	           delay(1000);           
         	}




          if(key==1  || ((j==1)&&(key==15)))
		  {
		  key=18;
		  i2=0;
          lcd1602_init();
          lcd1602_clear();
		 
		  while(key!=15)
		   {	
            key=getkey_ii(); 
		    delay(100);
		    if (key==0) 	 {i2=i2+1; ask[i2-1]=1	;}	  
			if (key==13)     {i2=i2+1; ask[i2-1]=0; }  
			lcd1602_clear();            
			for(i=0;i<18;i++) lcd1602_wrdata(q[i]);
			lcd1602_wrcmd(offset+0x40);   //换行
		    for(i=0;i<i2;i++) lcd1602_wrdata(ask[i]+0x30);   	
		   } 

			  lcd1602_clear(); 
			key=18;
			while(key!=15)
		    {
			
			for(i=0;i<i2;i++)	
			{
			   if(ask[i]==0) ad9850(0,0,0);
			   if(ask[i]==1) ad9850(300,0,0);
			   lcd1602_clear(); 
		       lcd1602_wrcmd(offset+0x40);   //换行
			   for(t=0;t<i2;t++) lcd1602_wrdata(ask[t]+0x30);  
			   delay_1ms(10);
			   key=getkey_ii();
			}
			
			}
			xianshi(j); 
		 }




		  if(key==2|| ((j==2)&&(key==15)))
		  { a=0;
		    lcd1602_clear();
	        for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
			key=18;     //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次 
			
		    while(key!=15 )
		    {
		      key=getkey_ii();


	    	if(key==0)
		    	{ 
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
			           
			    a=a*10+1;

                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
	      	    xianshu(a);  
		        //lcd1602_wrcmd(offset+0x40);
			//	for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
		    	 }
		    else if (key==1)
		    	{ 
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);

                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
				lcd1602_wrcmd(offset+0x40);   //换行 
				a=a*10+2;
				 xianshu(a);  
		        //lcd1602_wrcmd(offset+0x40);
				//for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
		    	 }
		   else if (key==2)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
	      	    
                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
                a=a*10+3;
				xianshu(a);  
		      //  lcd1602_wrcmd(offset+0x40);
			//	for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
		    	 }

           else if (key==4)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				a=a*10+4;
			
                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
	      	    xianshu(a);  
               }
            else if (key==5)
		    	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
				a=a*10+5;
	      	    xianshu(a);  
               }
            else if (key==6)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
				a=a*10+6;
	      	    xianshu(a);  
                }
			else if (key==8)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
               lcd1602_wrcmd(offset+0x40);   //换行
				a=a*10+7;
	      	    xianshu(a);  
                }
			else if (key==9)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);

                for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
  				lcd1602_wrcmd(offset+0x40);   //换行
			     a=a*10+8;
	      	     xianshu(a);  
                 }
			else if (key==10)
		     	 {
		  		lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
			 	a=a*10+9;
	      	    xianshu(a);  
                }
			else if (key==13)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<16;i++) lcd1602_wrdata(d[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
				a=a*10+0;
	      	    xianshu(a);  
                 }
             
              }
		    
	         xianshi(0);
			 j=0;
			ad9850(a,b,c);
        	}						    	//设定频率


		


		
		  if(key==4 || ((j==3)&&(key==15)))
		  { b=0;
		    lcd1602_clear();
	        for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
			       
			key=18;     //避免和下面的WHILE语句条件冲突;临时改变KEY 只变一次 
			
		    while(key!=15 )
		    {
		      key=getkey_ii();


	    	if(key==0)
		    	{ 
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
			           
			    b=b*10+1;

                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
	      	    xianshu(b);  
		        //lcd1602_wrcmd(offset+0x40);
			//	for(i=0;i<11;i++) lcd1602_wrdata(str12[i]);
		    	 }
		    else if (key==1)
		    	{ 
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);

                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
				lcd1602_wrcmd(offset+0x40);   //换行 
				b=b*10+2;
				 xianshu(b);  
		        //lcd1602_wrcmd(offset+0x40);
				//for(i=0;i<15;i++) lcd1602_wrdata(str22[i]);
		    	 }
		   else if (key==2)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
	      	    
                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
                b=b*10+3;
				xianshu(b);  
		      //  lcd1602_wrcmd(offset+0x40);
			//	for(i=0;i<15;i++) lcd1602_wrdata(str31[i]);
		    	 }

           else if (key==4)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				b=b*10+4;
			
                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
	      	    xianshu(b);  
               }
            else if (key==5)
		    	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
				b=b*10+5;
	      	    xianshu(b);  
               }
            else if (key==6)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
                lcd1602_wrcmd(offset+0x40);   //换行
				b=b*10+6;
	      	    xianshu(b);  
                }
			else if (key==8)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				
                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
               lcd1602_wrcmd(offset+0x40);   //换行
				b=b*10+7;
	      	    xianshu(b);  
                }
			else if (key==9)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);

                for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
  				lcd1602_wrcmd(offset+0x40);   //换行
			     b=b*10+8;
	      	     xianshu(b);  
                 }
			else if (key==10)
		     	 {
		  		lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
			 	b=b*10+9;
	      	    xianshu(b);  
                }
			else if (key==13)
		     	 {
				lcd1602_clear();
     	  	    lcd1602_wrcmd(offset+0x00);
				for(i=0;i<17;i++) lcd1602_wrdata(w[i]);
            	lcd1602_wrcmd(offset+0x40);   //换行
				b=b*10+0;
	      	    xianshu(b);  
                 }
             
              }
		    
	         xianshi(0);
			 j=0;
			ad9850(a,b,c);
        	}


			if(key==5|| ((j==4)&&(key==15)))
			{
			  c=dushu();
			  ad9850(a,b,c);


			}
	    										   //相位控制


          if(key==12){a=a-b; ad9850(a,b,c);}	//	 *键用来步减
		  if(key==14) {a=a+b; ad9850(a,b,c);}	//   #用来步加	

	  
	
     }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -