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

📄 radio.h

📁 VFD荧光显示驱动程序
💻 H
字号:
///lc72131驱动程序//////////
//////////2007.03/////////////////////////////////
///////编制:陶利 /////////////////////
///////版本:V1.0A/////////////////////
#include <REGX51.H>
#include <intrins.h>
#define radio_do P3_4  //DO
#define radio_clk P3_5 //CLK
#define radio_di P3_6  //DI
#define radio_ce P3_7  //CE
#define osc      0     // 晶振设置  o:  4.5MHZ  1: 7.2MHZ
#define BAND_Bit  bo1  //波段选择IO口设置	 0:FM  1:AM
#define IF_REQ    bo2  //中频转换、静音IO口设置	 0:静音,中频开始转换,1:正常接收状态
#define ST_MO     bo3   //立体声、单声道切换IO口设置   0:ST  1:MO
#define ST        io2  //立体声检测IO口	     		   0: ST
#define AM_IF     0 //AM 中频设置, 0:455KHZ  1:10.71MHZ
#define uint unsigned int
#define uchar unsigned char 
#define ulong unsigned long   
set_fre(uint freq,bit bandb);
////////////1data//////////////////
uchar bdata fl=0,fh=0,col=0;
sbit sns=col^0;
sbit dvs=col^1;
sbit cte=col^2;//测量中频开始或结束 1:开始	 2:结束复位
sbit xs=col^3;//晶振设置  1:7.2M  0: 4.5M
sbit r0=col^4;//参考频率设置  
sbit r1=col^5;
sbit r2=col^6;
sbit r3=col^7;
////////////////2data/////////
uchar bdata io1=0,io2=0,io3=0;
sbit  ioc1=io1^0;
sbit  ioc2=io1^1;
sbit  ioo1=io1^2;
sbit  ioo2=io1^3;
sbit  bo1=io1^4;
sbit  bo2=io1^5;
sbit  bo3=io1^6;
sbit  bo4=io1^7;
sbit doc0=io2^1;
sbit doc1=io2^2;
sbit doc2=io2^3;
sbit ul0=io2^4;
sbit ul1=io2^5;
sbit dz1=io2^6;
sbit dz2=io2^7;
sbit gt0=io3^0;
sbit gt1=io3^1;
sbit tbc=io3^2 ;
sbit dlc=io3^3;
sbit ifs=io3^4;
sbit test0=io3^5;
sbit test1=io3^6;
sbit test2=io3^7;
/////////////3data/////////	接收
uchar bdata js1;
sbit i2=js1^7;	//输入口状态  高:1 低: 0
sbit i1=js1^6;	//输入口状态  高:1 低: 0
sbit ul=js1^4;//频率锁定标志 1:锁定  0:未锁定
///////////4data///////////	接收
ulong IF=0; 
uchar   IF0,IF1,IF2;   
////////////////延时程序//////////////////
void delay1(uint i)
{
	uchar j;
	while(--i)
	{
	for(j=0;j<20;j++)_nop_();
	}
}

/////向收音机发送一个字节数据////
tx_dat(uchar i)
{   
	uchar j;
	for(j=0;j<8;j++)
	{
		radio_clk=0;//_nop_();_nop_();_nop_();_nop_();_nop_();
		radio_di=(i&1);//_nop_();_nop_();_nop_();_nop_();_nop_();
		radio_clk=1;// _nop_();_nop_();_nop_();_nop_();_nop_();
		i>>=1;		//
	}
}
////接收收音机发出的一个字节数据////
uchar rx_dat()
{
	uchar i;
	uchar   j=0;  
	for(i=0;i<8;i++)
	{  
		radio_clk=0;
		//_nop_();_nop_();_nop_();_nop_();_nop_();   
		radio_clk=1;//_nop_();_nop_();_nop_();_nop_();  
		j|=radio_do;
	    if(i<7)j<<=1;//下一位 
	}
	radio_do=1;
	radio_clk=1;
	return j;

}
///////收音机数据传输////////////
rd_cmd()
{
	  tx_dat(0X28);//地址1
	  radio_ce=1;
	  tx_dat(fl);tx_dat(fh);tx_dat(col);
	  _nop_();
	  radio_ce=0;
	  delay1(2);
	  tx_dat(0x29);
	  radio_ce=1;
	  tx_dat(io1);tx_dat(io2);tx_dat(io3);
	  _nop_();
	  radio_ce=0;
}

////////////收音机数据输出////////////
  rd_rd()
{	  
      			    
	  tx_dat(0X2a);//地址1
	  radio_ce=1;
	  js1=rx_dat();//高位
	  IF1=rx_dat();
	  IF0=rx_dat();//低位
	  IF2=js1&0xf; 
	  radio_ce=0; 
	  IF=((ulong)IF2)*65536+((uint)IF1)*256 + IF0;	    

}

/* osc           // 晶振设置  o:  4.5MHZ  1: 7.2MHZ
BAND_Bit    //波段选择IO口设置	 0:FM  1:AM
IF_REQ       //中频转换、静音IO口设置	 0:静音,中频开始转换,1:正常接收状态
ST_MO         //立体声、单声道切换IO口设置   0:ST  1:MO
ST         //立体声检测IO口	     		   0: ST
AM_IF       //AM 中频设置, 0:455KHZ  1:10.71MHZ	*/
////////////////band波段控制/////////////////
band1(bit i)
{
	if(i==1){dvs=1;sns=0;r3=0;r2=0;r1=0;r0=1;ST_MO=0;BAND_Bit=0; gt1=1;gt0=0;} //FM
 	else  {
	        if(AM_IF){dvs=0;sns=1;r3=1;r2=0;r1=0;r0=1;BAND_Bit=1; gt1=0;gt0=1; }//AM  IF 10.71
			else  {dvs=0;sns=0;   r3=1;r2=0;r1=0;r0=0; BAND_Bit=1;gt1=0;gt0=1;}    //AM IF 455
		  }																	  
}			    
///////////////设置频率////////////////////
set_fre(uint freq,bit band)
{   
    uint i;	
	//uint freq_am,uint freq_fm; 
	band1(band);
	ul1=1;
	ul0=1;		   
	xs=osc;//晶振设置
	radio_ce=0; radio_di=0;radio_clk=0;
	ioc1=ioc2=0;//io口为输入模式
	ifs=1;
	
	if(band)  //FM?
	{
		i=(freq+107)  ;//计算分频器,接收频率+中频/基准频率
		fl=i%256;	      //分出高低8位
		fh=i/256;
		rd_cmd();
	}
	else //AM?
	{
	    if(AM_IF)
		{
			i=(freq+10710)/9;// 计算分频器,接收频率+中频/基准频率
			//i*=16;			   //	 
			fl=i%256;
			fh=i/256; 
			rd_cmd(); 
		} //*/////LA1787高频头
	 	else
		{
			i=(freq+450)/10;// 计算分频器,接收频率+中频
			i*=16;			   //	 
			fl=i%256;
			fh=i/256; 
			rd_cmd(); 
		} ///*/////CD8132高频头
		
	}
}

⌨️ 快捷键说明

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