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

📄 lc72131.h

📁 o like to share this dociment
💻 H
字号:
/* 
 * LC72131 constants, data structures definitions
 *
 */

#ifndef __LC72131_H__
#define __LC72131_H__

/* Tuner band */
#define BAND_FM 0
#define BAND_AM1 1
#define BAND_AM2 2

/* 1st byte */
#define PLL_IN1 0x14
#define PLL_IN2 0x94
#define PLL_OUT 0x54

/********************************************** 
 * IN1 mode: 4th byte                                     */

/* #0-1bits FM/AM band selection */
#define PLL_IN1_FMIN     0x80  /* 1000 0000 */
#define PLL_IN1_AMIN40M 0x40  /* 0100 0000 */
#define PLL_IN1_AMIN10M 0x00 /* 0000 0000 */
/* #2 bits IF counter start/reset */
#define PLL_IN1_CTESTART 0x20
#define PLL_IN1_CTERESET 0x00
/* #3bits crystal selection */
#define PLL_IN1_XS72M 0x10
#define PLL_IN1_XS45M 0x00
/* #4-7bits reference frequencies */
#define PLL_IN1_RF100K 0x00 /* 100k */
#define PLL_IN1_RF50K 0x08 /* 100k */
#define PLL_IN1_RF25K1 0x04 /* 25k */
#define PLL_IN1_RF25K2 0x0C /* 25k */
#define PLL_IN1_RF125K 0x02 /* 12.5k */
#define PLL_IN1_RF625K 0x0A /* 6.25k */
#define PLL_IN1_RF3125K1 0x06 /* 3.125k */
#define PLL_IN1_RF3125K2 0x0E /* 3.125k */
#define PLL_IN1_RF10K 0x01 /* 10k */
#define PLL_IN1_RF9K 0x09 /* 9k */
#define PLL_IN1_RF5K 0x05 /* 5k */
#define PLL_IN1_RF1K 0x0D /* 1k */
#define PLL_IN1_RF3K 0x03 /* 3k */
#define PLL_IN1_RF15K 0x0B /* 15k */

/********************************************** 
 * IN2 mode: 2st byte                                     */
#define PLL_IN2_IOC

typedef union
{
	U32 all;
	U8 dat[4];
	struct
	{
		U8 addr  :8;  //8位输入输出模式选择地址
		U8 f1; //16位电台频率数值
		U8 f2;
		U8 sns    :1;  //dvs=0, sns=1,AMIN,2-40MHz; dvs=0, sns=0,0.5-10MHz
		U8 dvs    :1;  //dvs=1, sns=*,FMIN, 10-160MHz
		U8 cte     :1;  //中频计数控制  1:START 0:REST
		U8 xs      :1;  //晶振选择  0:4.5m 1:7.2mhz
		U8 ref     :4;  //位参考频率选择
	}in1;
}PLLInData1;

typedef union
{
	U32 all;
	U8 dat[4];
	struct
	{
		U8 addr    :8;  //8位输入输出模式选择地址

		U8  ioc     :2;  //设置IO口的工作模式,为0时设置为输入模式,反之。
		U8 io      :2;  //两个可以定义的端口,可以做输入也可做输出。再此程序中IO1空,IO2为立体声检测脚
		U8 band    :1;  //波段选择			设置为0选择调频
		U8 ifen    :1;  //中频缓冲输出使能	设置为0选择中频输出同时净音
		U8 stmo    :1;  //立体单声道强制转换	设置为1可以选择单声道输出
		U8 bnc     :1;  //空输出B01-B04四个输出口,可以控制外围的电路,常用来做波段切换。

		U8 dnc     :1;  //空数据位,不用。
		U8 doc     :3;  //设置输出数据端DO脚的辅助功能设置010时将指示中频测量的完成状况
		U8 ul      :2;  //锁相环控制电压输出驱动模式设01时为直接输出模式(一般采用此种模式)
		U8 dz      :2;  //锁相环死区控制,不是很重要。

		U8 gt      :2;  //中频测量时间设置最大64MS最小4MS当GT=00时,前两中等待时间3-4MS后两中等待时间为7-8MS,中频信号必须在等待时间结束之前输入!!
		U8 tbc     :1;  //设置为1时使B01口输出8HZ的基准脉冲,此时B01口将不能作为通用输出口。
		U8 dlc     :1;  //电荷泵输出,正常状态为0,设置为1时拉低电位。
		U8 ifs     :1;  //中频计数器控制,一般设置为1,主要设置中频场强(1:40毫伏0:70毫伏)
		U8 test    :3;  //测试模式一般全部设置为0
	}in2;
}PLLInData2;
void outByte(U8 b);
U8 inByte();
U32 PLLStepSearch(bit direction, U16 freq);//单步搜索形参:步进方向,和基频率
void PLLSetStation(U8 band, U8 f1, U8 f2, U8 mode, bit mute);
U32 PLLReadData();
U16 dataReverse(U16 x);
#endif /*__LC72131_H__*/

⌨️ 快捷键说明

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