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

📄 基本程序 实现调频.txt

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 TXT
📖 第 1 页 / 共 2 页
字号:
    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);  
   	ad9850(a,b);
	
    


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

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

				xianshi(j);

			 } 
		  if(key==0  || ((j==0)&&(key==15)))
        	{
               while(key==2 || key==0xff || key==3)	  //????
		       {key=getkey_ii(); 
   		     
        
                lcd1602_clear();

		        ad9850(a,b);		
		
 
	           delay(1000);
             }  
         	}
          if(key==1  || ((j==1)&&(key==15)))
		  {
          lcd1602_init();
          lcd1602_clear();
	      for(i=0;i<10;i++) lcd1602_wrdata(d[i]);
		  }



		  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!=12 )
		    {
		      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);
        	}						    	//设定频率


		


		
		  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!=12 )
		    {
		      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);
        	}
	    
          if(key==12) ad9850(a-b,a);	//	 *键用来步减
		  if(key==14) ad9850(a+b,a);	//   #用来步加	

	  
	
     }

}

⌨️ 快捷键说明

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