利用單片機(jī)控制頻率合成器 MC145151-2 的輸出頻率
一、
MC145151-2 是鎖相式頻率合成器集成芯片,它有 N13~N0 14 個引腳,用于控制輸出頻率。
其中N13、N11已經(jīng)接地,N12懸空。
從 MC145151-2 的 PDF 文件中,找到關(guān)于控制頻率的部分,截圖如下:
按照插圖,可以看出,N10~N0 對輸出頻率的控制關(guān)系如下:
011 1000 1000 : 輸出 5000 KHz
011 1000 1001 : 輸出 5001 KHz
011 1000 1010 : 輸出 5002 KHz
…………………………
…………………………
…………………………
101 0111 1100 : 輸出 5500 KHz
分析可知,最?。?x0388,最大:0x057C。
二、
現(xiàn)在要求使用單片機(jī)按鍵計(jì)數(shù)的方法控制 N10~N0 引腳,使其輸出頻率為 5000~5500KHz。
單片機(jī)是 STC89C52。
設(shè)計(jì)加、減、清0三個鍵;
把 P2.2~P2.0、P0.7~P0.0 接到 N10~N0;
在此處輸出11位二進(jìn)制數(shù),最?。?x0388,最大:0x057C。
按照以上要求,設(shè)計(jì)程序如下。
//=================================
#include
sbit K_ADD = P3^3; //+
sbit K_SUB = P3^4; //-
sbit K_000 = P3^5; //清零
//----------------------------
void delay_ms(unsigned int n)
{
unsigned char j;
while(n--) for(j = 0; j < 230; j++);
}
//----------------------------
void main()
{
unsigned int m;
m = 0x0388;
while(1) {
P2 = (m / 256);
P0 = (m % 256);
if (K_000 == 0) {
delay_ms(10);
if (K_000 == 0) {
m = 0x0388;
while(K_000 == 0);
} }
if (K_ADD == 0) {
delay_ms(10);
if (K_ADD == 0) {
m++;
if (m > 0x057C) m = 0x057C;
while(K_ADD == 0);
} }
if (K_SUB == 0) {
delay_ms(10);
if (K_SUB == 0) {
m--;
if (m < 0x0388) m = 0x0388;
while(K_SUB == 0);
} } }
}
上述程序是否正確,可以在 P2.2~P2.0、P0.7~P0.0 外接 11 個 LED 來測試。