📄 lc72131.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 + -