2620. 计数器

深入理解 JavaScript 闭包与自增:实现一个高效的计数器

在编程中,如何设计高效、简洁且易于理解的代码一直是开发者追求的目标。在这篇博客中,我们将通过一个简单而高效的例子,探讨 JavaScript 中的闭包(Closure)与自增操作符(++)如何帮助我们实现一个递增的计数器。

问题描述

假设我们需要一个计数器,最初给定一个数字 n,每次调用计数器时,返回当前的值,并且在返回之后自增。也就是说,第一次调用返回 n,第二次调用返回 n+1,以此类推。

这个看似简单的问题,可以通过闭包的特性来非常简洁地实现。接下来,我们将一步步解释如何利用 JavaScript 中的闭包和自增操作符来实现这个功能。

闭包的基础

在 JavaScript 中,闭包(Closure)是指一个函数可以访问其外部函数的变量,即使外部函数已经执行完毕。闭包能够保存外部函数的作用域链,从而允许我们在内部函数中引用外部函数的变量。

具体到我们的计数器实现中,我们需要一个能够保存当前值 n 的环境,并且在每次调用时返回该值后递增。为此,闭包提供了一个非常强大的特性:即使外部函数 createCounter 执行完毕,我们仍然可以通过返回的函数来访问和操作变量 n

自增操作符(++

在 JavaScript 中,自增操作符++ 是一个常用的操作符。它用于将变量的值增加 1。++ 有两种形式:

登录 基于MB1504的锁相频率源电路设计 电子工程师 2011-01-26 16734 加入交流群 电源设计应用 450人已加入 +加入圈子 描述   0 引言   由锁相环构成的间接式频率合成器在无线通信领域发挥着非常重要的作用。通常采用锁相频率合成器的输出信号来作为无线接收机中的本振信号,以使直接频率调制器、频率解调器能够从输入信号中再生载波。   传统的频率合成一般通过混频、倍频、分频、滤波等方式进行频率变换和组合,从而产生大量离散的稳定频率信号。这不仅使频率合成器具有庞大的体积和重量,其输出信号中的谐波、噪声及寄生频率均难以抑制,同时频率范围也将受到限制。而锁相频率合成主要是通过晶体振荡器提供的标准频率,在给定的频率范围内产生与该晶体振荡器稳定度相同的大量离散频率信号。 本文介绍用集成电路MAX2620和集总LC元件构成窄带VCO电路模块,然后同集成锁相频率合成器芯片MB1504一起构成锁相环式低噪声、高稳定性的锁相频率源电路的设计方法。   1 整体设计方案   图1所示是一个锁相环(PLL)的基本电路组成。其中REF代表参考晶体振荡器,÷R为参考分频器,PFD为鉴频鉴相器,LPF为环路滤波器,VCO为压控振荡器,÷N为前置分频器。    MB1504   无线接收机中的本地振荡信号通常需要特定的频点,这往往需要设计一个窄带且相位噪声性能优越的VCO。虽然用分立晶体管、谐振回路以及缓冲放大器也可以构成VCO电路,但稳定性差、受电源及分布参数影响大、调试不方便。而MAXIM公司的MAX2620是一款较宽频率范围(10~1 050 MHz)的集成振荡器芯片,它具有高频双极工艺所特有的低闪烁噪声、低噪声系数和低寄生特点。用户可以根据自己的需要并配以适当的振荡回路,从而设计出所需中心频率的压控振荡器电路。MAX2620内部的有源器件对谐振回路的负载极轻。因而可使振荡回路具有较高的有载Q值,以用来设计窄带压控振荡器电路。 MR1504是具有吞脉冲功能的串行输入锁相环频率合成芯片,该芯片内部采用吞脉冲计数技术和鉴频鉴相技术,其工作频率可达520 MHz,因而速度快,性能稳定,与单片机接口简单,可用来实现对接收机本振信号进行方便地设置。   2 窄带VCO的设计   MAXIM公司的MAX2620是一种使用极其方便的振荡器芯片,它的内部组成原理示意图如图2所示。    MB1504   MAX2620提供有一个缓冲放大输出级,能够减少负载变化对振荡器频率的影响。该芯片的供电电压范围在+2.7~+5.25 V之间。由于芯片内部设有偏置电路以稳定其工作点。因而受电源波动的影响较小。MAX2620内部所并具有的电源关断能力可由SHDN端控制。两个互补输出(即OUT和OUT)可构成两个单端输出或一个差分输出。由于芯片采用是集电极开路输出,输出端需要上拉到VCC,设计时可以用电感或电阻来上拉。但是对于差分输出,两端均应采用相同的方式。对于50Ω的负载,在用电感上拉时,单端输出电平可达-6 dBm (峰-峰电压为320 mV);而用电阻上拉时,其输出可达-10 dBm(200 mV)。本设计中的MAX2620的两路输出中,一路输出到MB1504供鉴频鉴相使用,为使稳定性更好,此路用电阻上拉;而另一路输出则经过缓冲放大,作为时钟输出,为了使其输出功率更大,该路用电感上拉。   事实上,MAX2620需要外接RF谐振回路以构成VCO电路,其电路如图3所示。    MB1504   此电路是一个典型的Colpitts电容反馈式振荡器。谐振回路在图3的左方,并经过2、3脚接入,主要包括电容C3、C4、C5和C17、谐振电感L1和变容二极管Cvar,调谐电压经过电阻R2接入。   SHDN端用三针跳针分别接到Vcc和地,可用于控制电源的关断,以在调试中方便的判断谐振回路是否起振。   变容管可通过C17接入谐振回路。C17值取为33 pF。经过C17后,谐振回路的等效Q将升高数倍。因此,即便采用廉价的Q和较低的变容管,也可设计出Q较高的谐振回路。   谐振回路电感采用表面贴式谐振电感,该电感具有辐射干扰小、受分布电容影响小、调试方便等特点。电感值选为180 nH,当谐振频率范围为80~88 MHz时,其中心频率为84 MHz。由谐振公式 MB1504 可得出谐振回路的总电容Co=19.94 pF。经过调试,VCO电路的具体元件参数如下:   R2为20 kΩ,谐振电感L1为180 nH,C3为39pF,C4选18 pF,C5选10 pF,输出端OUT上拉电感L4选180 nH,输出端上拉电阻R4可选50Ω。   3 MB1504与AT89C52的接口设计   MB1504的原理框图如图4所示。该芯片内含一个14位可编程参考分频器、一个分频比可选择(32或64)的双模前置分频器和一个18位的可变分频器(由7位的吞脉冲计数器和11位的可编程计数器组成),另外还包含一个鉴相器、一个电荷泵和两个移位寄存器和锁存器(图中未画出)。    MB1504   MB1504冲双模前置分频器的两种分频比可由模式控制信号决定。当模式控制信号为高电平时,分频比为P+1,当模式控制信号为低电平时,分频比为P。双模前置分频器的输出可同时驱动11位可编程计数器和7位吞脉冲计数器,它们的初值分别为N和A,可进行减计数。在吞脉冲计数器和可编程计数器未计数到零时,模式控制为高电平,双模前置分频器的输出频率为fVCO/(P+1)。当输A(P+1)个脉冲周期后,吞脉冲计数器计数达到零,模式控制电平将变为低电平,同时使吞脉冲计数器停止计数。此时,可编程计数器离预置数还有N-A的数值。由于这时模式控制电平为低,分频比为P,因此,双模前置分频器的输出频率为fVCO/P。之后,再经过N-A个计数周期后,可编程计数器计数也达到零,此时可输出低电平将两个可编程分频器重新预置为N和A,同时将模式控制恢复为高电平,并向鉴相器输出比相脉冲。当比相脉冲频率f参考频率fr存在频差时,鉴相器处于鉴频工作方式。此时无论频差大小,系统都输出较大的电压;而当比相脉冲频率f与参考频率fr相等时,鉴相器转为鉴相工作方式。这种鉴频-鉴相工作方式扩大了环路的快捕带,缩短了频率牵引过程,从而使环路快速进入相位锁定区,最终实现快捕锁定。   MB1504可通过9脚(Clock)、10脚(Data)和11脚(LE)分别与单片机AT89C52的P1.2、P1.1、P1.0相连,其连接电路如图5所示。其中,CLOCK为时钟信号输入端,DATA为数据信号输入端,LE为数据锁存使能信号输入端。信号是串行输入的,即每输入一个时钟脉冲到CLOCK脚,就有一位数据从DATA脚送入MB1504芯片内的移位寄存器,并由LE信号控制锁存。当LE为高电平时,储存在移位寄存器内的数据被锁存到相应的锁存器中。而当C为高电平时,锁存到15位的锁存器的设置为14位可编程参考分频器中的预置数R和前置分频器的1位分频比SW;当C为低电平时,锁存到18位的锁存器中的设置则为11位可编程计数器中的预置数N和7位吞脉冲计数器中的预置数A。图6所示为MB1504的数据输入格式。    MB1504    MB1504   根据MB1504的工作原理,锁相环的输出频率fvco的计算公式为:    MB1504   式中,fosc为外接晶体振荡器输人参考频率;P为前置分频器的分频比(由位SW决定),当SW为高时,P为32;当SW为低时,P为64;N为11位可编程计数器中的预置数(范围从16~2047);A为7位吞脉冲计数器中的预置数(范围从0~63);R为14位可编程参考分频器中的预置数(范围从8~16383)。   本设计中,频率合成器的频率范围fout为80~88 MHz,频率间隔△f为2 kHz。参考振荡器的振荡频率fosc为4.096 MHz,参考频率fr等于合成器频率间隔△f(2 kHz),所以参考分频比R为:R=fosc/fr=2048,中心频率为84 MHz的分频比(PN+A=fout/△f)为42000。这里采用的前置分频比模式为÷32/33,即P=32,并由此可得:N=1312,A=16。这样,改变N和A,即可改变输出频率,而改变N、R,则可改变输出频率和频率间隔。   4 结束语   本设计的实际电路可以制作在一块50 mm×40mm的双层板上,电源电压为+3.3 V。VCO的频率覆盖范围为80~88 MHz,两路输出电平,OUT端为-10 dBm,OUT端为-6 dBm。输出功率大于10dBm,且信号纯度很高,杂散较少。   由于几种LC元件和MAX2620构成的窄带VCO具有稳定性高、受外界分布参数影响小、调试方便、体积小、价格低廉等优点。因此,由该VCO和MB1504芯片构成的锁相时钟频率源的时钟频率源稳定性高、相位噪声较低。 打开APP阅读更多精彩内容 声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉 相关推荐 热点推荐 MB1504 锁相频率源 有关MB1504和1648的问题 2015-08-04 3120 锁相环(PLL)电路设计与应用 2016-06-21 8375 【下载】《锁相环电路设计与应用》 2017-09-18 20184 微型高稳定的锁相频率源电路设计 2019-07-09 1494 如何用MAX2620和MB1504设计锁相频率源电路? 2021-04-07 1388 MB1504/MAX2620怎么能够实现锁相时钟频率源? 2021-04-14 1474 基于0.25um CMOS工艺的锁相环电路设计 2008-08-15 853 TTEA1504应用电路,EA1504内部原理框图 2009-05-22 2313 采用CPLD的光伏逆变器锁相及保护电路设计 2010-03-03 2317 频率跟踪的锁相环电路 2011-10-26 9321 锁相与频率合成技术图书下载 2011-11-17 1366 锁相增益放大电路设计 2016-12-17 826 电路设计--电路的频率响应 2017-02-28 1010 锁相环及频率合成器的原理及电路设计方案介绍 2018-11-19 14323 锁相频率合成器ADF4360-4在无线通信射频系统和WLAN电路中的应用 2020-07-20 4763
10-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值