摘要:设计一种以单片机AT89C51为核心的数字频率计,介绍了单片机、数字译码和显示单元的组成及工作原理。测量时,将被测输入信号送给单片机,通过程序控制计数,结果送译码器74- LS145与移位寄存器74LS164,驱动LED数码管显示频率值。通过测量结果对比,分析了测量误差的来源,提出了减小误差应采取的措施。频率计具有电路结构简单、成本低、测量方便、精度较高等特点,适合测量低频信号。
关键词:单片机;数字频率计;测频;译码
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率计在教学、科研、测量仪器、工业控制等方面都有较广泛的应用。测量频率的方法有多种,其中电子计数测量频率具有精度高、使用方便、测量迅速,以及便于实现测量自动化等优点,是频率测量的重要手段之一。本设计就是用计数的方法,以单片机AT89C51为控制核心,充分利用其软硬件资源,设计并制作了频率计的计数、显示部分。
1 测频设计原理
频率计测频原理方框图如图1所示。被测输入信号通过脉冲形成电路进行放大与整形(可由放大器与门电路组成),然后送到单片机入口,单片机计数脉冲的输入个数。计数结果经LED数码管显示,从而得到被测信号频率。
2 元器件选择与使用
2.1 单片机
选择单片机AT89C51是因为有编程灵活、易调试的特点,而且AT89C51的引脚较多,利于电路的展。它集成了CPU,RAM,ROM,定时器/计数器和多功能I/0口等一台计算机所需的基本功能部件,有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含两个外中断口,两个16位可编程定时计数器,两个全双工串行通信口。其片内集成了4 KB的FLASHPEROM用来存放应用程序,这个FLASH程序存储器除允许一般的编程器离线编程外,还允许在应用系统中实现在线编程,并且还提供了对程序进行三级加密保护的功能。AT89C51的另一个特点是工作速度更高,晶振频率可高达24 MHz,一个机器周期仅为500 ms,比MCS-51系列单片机快了一倍。
其具体使用方法如下:
P1.0口与寄存器74LS164的A,B端口连接,串行输出待显示的数据。
P1.1口接移位寄存器74LS164的CLK(第8引脚),输出时钟信号。
P1.5,P1.6,P1.7口分别与译码器74LS145的A,B,C端口连接,输出位控制信号。
P3.5口(即T1)输入脉冲信号。
XTAL1与XTAL2管脚接两个30 pF电容和12 MHz晶振构成时钟电路。
RST管脚接1 kΩ,10 kΩ电阻,20 μF电容及复位开关构成开关复位电路。
2.2 显示译码单元
显示部分采用译码器74LS145与移位寄存器74LS164,主要是考虑了性价比的原因。比如,此处可以采用HARRIS公司推出的ICM7218B共阴极数码管驱动芯片,它集BCD译码器、多路扫描器、段驱动和位驱动于一体。用此驱动可使电路相对简单,显示部分的软件设计也比较简单,但由于其价位相对较高,故采用译码器74LS145与移位寄存器74LS164。
2.3 数字显示单元
LED显示器采用动态显示方式。显示时将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用。译码器74LS145是位选部分,移位寄存器74LS164是段选部分。由于各位的段选线并联,段选码的输出对各位来说都是相同的。同一时刻,如果各位选线都处于选通状态的话,六位的LED将显示相同的字符。要各位LDE能够显示出与本位相应的显示字符,就须采用扫描显示方式。即在同一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字型码,这样同一时刻,六位LED中只有选通的那一位显示出字符,而其他五位则是熄灭的。而在下一刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,在段选线上输出相应位将要显示字符的字符码。
这样循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于人眼有视觉残留现象,只要每位显示间隔足够短,则可造成多位同时亮的效果。
3 硬件设计
电路原理图如图2所示。以单片机AT89C51为核心,由译码器74LS145与移位寄存器74LS164实现串行输出显示,其中74LS164输出段选信号,74LS145输出位选信号。
具体连接方法是将P1.0口与寄存器74LS164的A,B端口连接,P1.1口与移位寄存器74LS164的CLK连接,P1.5,P1.6,P1.7口分别与译码器74LS145的A,B,C端口连接,在P3.5口(即T1)输入脉冲信号。
电路实现的关键是设法取得准确的一秒定时,并让计数器只计数一秒,这样计数结果则为频率值。实现的方法是利用单片机内的16位定时/计数器,用定时器/计数器0作为定时器,实现一秒定时;用定时器/计数器1作为计数器,对输入的脉冲进行计数。当按动开关时,开始定时及计数,时间到停止计数,计数值通过LED显示,得到频率值。再次按动开关又进行定时计数。