mc145158倍频程序
时间: 2024-05-15 18:14:12 浏览: 109
MC145158是一款用于音频应用的PLL频率合成器,可以实现高精度的频率合成。以下是一个基本的MC145158倍频程序:
```c
#include <avr/io.h>
#include <util/delay.h>
void init_mc145158(void)
{
// 设置SPI接口
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
// 启用MC145158
PORTB &= ~(1<<PB0);
_delay_us(1);
PORTB |= (1<<PB0);
}
void set_mc145158_frequency(unsigned long freq)
{
unsigned long fref = 20000000; // 参考频率为20MHz
unsigned long div = (fref << 7) / freq;
unsigned char p = div >> 16;
unsigned char n = (div >> 8) & 0xFF;
unsigned char m = div & 0xFF;
// 发送控制字节
SPDR = 0x80 | p;
while(!(SPSR & (1<<SPIF)));
SPDR = n;
while(!(SPSR & (1<<SPIF)));
SPDR = m;
while(!(SPSR & (1<<SPIF)));
}
int main(void)
{
init_mc145158();
set_mc145158_frequency(1000000); // 设置输出频率为1MHz
// ...
return 0;
}
```
这个程序使用AVR单片机的SPI接口与MC145158进行通信,设置输出频率为1MHz。在使用之前需要先将MC145158启动,这里使用了单片机的GPIO控制。具体的控制字节格式请参考MC145158的数据手册。