历史上的今天
今天是:2025年05月08日(星期四)
2018年05月08日 | 利用单片机控制频率合成器 MC145151-2 的输出频率
2018-05-08 来源:eefocus
一、
MC145151-2 是锁相式频率合成器集成芯片,它有 N13~N0 14 个引脚,用于控制输出频率。
其中N13、N11已经接地,N12悬空。
从 MC145151-2 的 PDF 文件中,找到关于控制频率的部分,截图如下:
按照插图,可以看出,N10~N0 对输出频率的控制关系如下:
011 1000 1000 : 输出 5000 KHz
011 1000 1001 : 输出 5001 KHz
011 1000 1010 : 输出 5002 KHz
…………………………
…………………………
…………………………
101 0111 1100 : 输出 5500 KHz
分析可知,最小:0x0388,最大:0x057C。
二、
现在要求使用单片机按键计数的方法控制 N10~N0 引脚,使其输出频率为 5000~5500KHz。
单片机是 STC89C52。
设计加、减、清0三个键;
把 P2.2~P2.0、P0.7~P0.0 接到 N10~N0;
在此处输出11位二进制数,最小:0x0388,最大:0x057C。
按照以上要求,设计程序如下。
//=================================
#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 来测试。
史海拾趣
|
我记得在做ARM9 S3C2410/S3C2440的BSP时,生成是NK.BIN和NK.NB0. 但现在做ARM11 tcc8900时,生成是NK.ROM. 哪位大哥能解释下吗?… 查看全部问答> |
|
***** COMPILING source\\pp_main.c MS-DOS C51 COMPILER V4.10 - Serial Number 83205779 Copyright (c) Franklin Software, Inc. 1991 - 1993 *** ERROR 318 IN LINE 0: can\'t open file \'SOURCE\\PP_MAIN.C\' C51 COMPILATION COMPLETE.&n ...… 查看全部问答> |
|
USB2.0已成为连接计算机与外部设备最流行的工业标准,确保产品能通过USB-IF组织规定的USB2.0一致性测试验证则是电子工程师非常关注的工作,本文介绍了力科公司的QualiPHY软件如何帮助工程师快速进行USB2.0产品一致性测试。… 查看全部问答> |
|
专利工程师 岗位职责: 1、进行专利技术检索,对研发人员提供专利咨询和指导。 2、对公司研发技术进行专利挖掘并对专利布局进行分析。 3、专利侵权分析,协助律师处理专利诉讼等专利法律事宜。 4、辅助技术团队进行专利编写, ...… 查看全部问答> |




