1、- 1 -第一章概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率。测量范围在 9kHz 以下的方波,时基宽度为 1us,10us,100us,1ms。用单片机实现自动测量功能。基本设计原理是直接用十进制数字显示被测信号频率的一种测量装置。它以测量周期的方法对方波的频率进行自动的测量。1.
2、1 课程设计的基本原理所谓频率,就是周期性信号在单位时间( )内变化的次数,若在一定时间s1间隔 内测得这个周期性信号的重复变化次数为 ,则其频率可表示为T NTf- 2 -图 1 数字频率计结构图图 1 是数字频率计的组成框图。被测信号 经放大整形电路变成计数器所XV要求的脉冲信号 ,其频率与被测信号的频率 相同。时基电路提供标准时AA间基准信号 ,其高电平持续时间 ,当 信号来到时,闸门开通,被测Tst1脉冲信号通过闸门,计数器开始计数,直到 信号结束时闸门关闭,停止计数。若在闸门时间内计数器计得的脉冲数为 ,则被测信号频率 。逻辑控NNhzfX制电路的作用有两个:一是产生锁存脉冲 ,使显
3、示器上的数字稳定;二是产L生清“0”脉冲 ,使计数器每次测量从零开始计数。R1.2 系统设计要求 以单片机未核心设计一个数字频率计,有频率检测电路、单片机时钟电路、抚慰电路、数码管驱动电路、四位数码管电路 5 部分组成 可以测量 9KHZ 以下的方波1.3 设计方案确定1. 硬件方案 硬件电路有5部分组成,既平率检测电路、单片机时钟电路、复位电路、数码管驱动电路、四位数马管电路。各部分实现功能如下: 频率检测电路:进行频率检测并转换成数字信号。 单片机时钟电路、复位电路:单片机正常工作需要。 数码管驱动电路、四位数码管电路:用于测试的电压结果显示。2. 软件方案本系统的软件部分主要完成功能:对
4、脉冲的频率采集、计算及显示。根据软件的功能划分软件设计模块,各模块的具体任务如下: 数码管显示模块:实现采集好的频率值的显示。 脉冲计数模块:把脉冲的频率检测出来。- 3 -第二章 数字频率计的硬件结构设计2.1 系统硬件的构成本频率计的数据采集系统主要元器件是单片机 AT89C51,由它完成对待测信号频率的计数和结果显示等功能,外部还要有分频器、显示器等器件。可分为以下几个模块:放大整形模块、秒脉冲产生模块、换档模拟转换模块、单片机系统、LCD 显示模块。各模块关系图如图 2 所示:图 2 数字频率计功能模块2.2 系统工作原理图图 3 数字频率计系统工作原理图显 示时 基 电 路倍 频 锁
5、 相放 大 整 形 单片机被 测 信 号- 4 -2.3 AT89C51 单片机及其引脚说明89C51 是一种高性能低功耗的采用 CMOS 工艺制造的 8 位微控制器,它提供下列标准特征:4K 字节的程序存储器,128 字节的 RAM,32 条 I/O 线,2 个16 位定时器/计数器, 一个 5 中断源两个优先级的中断结构,一个双工的串行口 , 片上震荡器和时钟电路。引脚说明:VCC:电源电压GND:地P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,作为输出口用时,每个引脚能驱动 8 个 TTL 逻辑门电路。当对 0 端口写入 1 时,可以作为高阻抗输入端使用。当 P0 口访问外
6、部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0 口具有内部上拉电阻。在 EPROM 编程时,P0 口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1 口:P1 口是一带有内部上拉电阻的 8 位双向 I/O 口。P1 口的输出缓冲能接受或输出 4 个 TTL 逻辑门电路。当对 P1 口写 1 时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1 口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(I IL) 。P2 口:P2 是一带有内部上拉电阻的 8 位双向的 I/O 端口。P2 口的输出
7、缓冲能驱动 4 个 TTL 逻辑门电路。当向 P2 口写 1 时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(I IL) 。P2 口在访问外部程序存储器或 16 位地址的外部数据存储器(例如 MOVX DPTR)时,P2 口送出高 8 位地址数据。在这种情况下,P2 口使用强大的内部上拉电阻功能当输出 1 时。当利用 8 位地址线访问外部数据存储器时(例MOVX R1),P2 口输出特殊功能寄存器的内容。当 EPROM 编程或校验时,P2 口同时接收高 8 位地址和一些控制信号。- 5 -P3 口:P3 是一带有内
8、部上拉电阻的 8 位双向的 I/O 端口。P3 口的输出缓冲能驱动 4 个 TTL 逻辑门电路。当向 P3 口写 1 时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(I IL) 。P3 口同时具有 AT89C51 的多种特殊功能,具体如下表 1 所示:端口引脚 第二功能P3.0 RXD (串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断 0)0INTP3.3 (外部中断 1)1P3.4 T0(定时器 0)P3.5 T1(定时器 1)P3.6 (外部数据存储器写选通)WRP3.7 (外部数据存储器都选通
9、)D表 1 P3 口的第二功能RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期的高电平将使单片机复位。ALE/ :当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低 8 位字节。当在 Flash 编程时还可以作为编程脉冲输出( ) 。一般情况下,ALE 是以晶振频率的 1/6 输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个 ALE 脉冲。 :程序存储允许时外部程序存储器的读选通信号。当 AT89C52 执行外部程序存储器的指令时,每个机器周期 两次有效,除了当访问外部数据存储器时, 将跳过两个信号。 /VPP:外部访问允许。为了使单片
10、机能够有效的传送外部数据存储器从0000H 到 FFFH 单元的指令, 必须同 GND 相连接。需要主要的是,如果加密位1 被编程,复位时 EA 端会自动内部锁存。当执行内部编程指令时, 应该接到 VCC 端。- 6 -XTAL1:振荡器反相放大器以及内部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。在本次设计中,采用 89C51 作为 CPU 处理器,充分利用其硬件资源,结合D 触发器 CD4013,分频器 CD4060,模拟转换开关 CD4051,计数器 74LS90 等数字处理芯片,主要控制两大硬件模块,量程切换以及显示模块。下面还将详细说明。2.4 信号调理及放大整形模块放大
11、整形系统包括衰减器、跟随器、放大器、施密特触发器。它将正弦输入信号 Vx 整形成同频率方波 Vo,幅值过大的被测信号经过分压器分压送入后级放大器,以避免波形失真。由运算放大器构成的射级跟随器起阻抗变换作用,使输入阻抗提高。同相输入的运算放大器的放大倍数为(R1+R2)/R1,改变 R1的大小可以改变放大倍数。系统的整形电路由施密特触发器组成,整形后的方波送到闸门以便计数。由于输入的信号幅度是不确定、可能很大也有可能很小,这样对于输入信号的测量就不方便了,过大可能会把器件烧毁,过小可能器件检测不到,所以在设计中采用了这个信号调理电路对输入的波形进行阻抗变换、放大限幅和整形,信号调理部分电路具体实
12、现电路原理图和参数如下图 4 所示:图 42.5 时基信号产生电路:CD4013-双上升沿 D 触发器 ,引脚及功能见如下图 5:CD4013 由两个相同的、相互独立的数据型触发器构成。每个触发器有独立的数据置位复位时钟输入和 Q 及 Q 非输出。此器件可用作移位寄存器,且通D4DIODED3DIODED2DIODE23 76 5184U3LM31D1DIODECLR11 CLK13 D12 D212CLK21 SET14 SET210 CLR213 Q1 5Q1 6Q2 9Q28GND 7+5V 14IC174LS1412J1CON212J2CON2C1105R1RES1R2RES1R3RE
13、S1R4RES1R5RES1R6RES1D5ZENER1VC15V-VC15VGNDVC15V-VC15VGND GNDGND5VGNDVCGND32 184U1ALF353 56 7U1BLF353- 7 -过将 Q 非输出连接到数据输入,可用作计数器和触发器。在时钟上升沿触发时,加在 D 输入端的逻辑电平传送到 Q 输出端。置位和复位或复位线上的高电平完成。 图 5 CD4013 芯片引脚用功能图 CD4060-14 位二进制串行计数器,引脚及功能见如下图 6: CD4060 由一震荡器和 14 极二进制串行计数器位组成,震荡器的结构可以是 RC 或晶振电路。CR 为高电平时,计数器清零且
14、振荡器使用无效,所有的计数器位均为主从触发器 CP1 非(和 CP0)的下降沿计数器以二进制进行计数,在时钟脉冲线上使用施密特触发器对时钟上升和下降时间无限制。 图 6 CD4060 芯片引脚用功能图时基信号的产生原理:本电路采用 32768HZ 晶体震荡器,利用 CD4060 芯片经过 14 级分频得到2HZ 的信号(32768/2 14) ,在经过 CD4013 双 D 触发器经过二分频得到 0.5HZ 的方波,即输出秒脉冲信号使单片机进行计数。- 8 -图七 秒脉冲产生电路原理图2.6 显示模块1602 主要功能A、 40 通道点阵 LCD 驱动;B、 可选择当作行驱动或列驱动;C、 输
15、入/输出信号:输出,能产生 202 个 LCD 驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压(V1V6);D、 通过单片机控制将所测的频率信号读数显示出来。第 3 章 软件设计根据硬件电路和设计思路,可以画出如下的程序结构图。Q121 Q132Q143 Q64Q55 Q76Q47 VSS8 0 9-0 10111RESET 12Q9 13Q814Q10 15VDD 16U10000000000CD4060Q11 -Q12CLOCK13 RESET14D15 SET16VSS7 SET2 8D29RESET2 10CLOCK2 11-Q212Q2 13VDD 14U2CD4013C1
16、10pY232768GNDVCC VCCC20.1uR71M/INTO- 10 -程序流程图- 11 -3.1 应用程序Include.h 文件/*文件名称:Include.h*文件功能:包含文件中常用操作函数*/#ifndef INCLUDE_H#define INCLUDE_H#include “AT89X51.h“#include “intrins.h“#define uchar unsigned char#define uint unsigned int#define _BV(x) (1(x)#define GET_BIT(x,y) (x) /数码管显示缓冲区,千,百,十,个const
17、 uchar displayMode=0x00; /后四位分别对应缓冲区中每位的数据类型,1 为任意字符显示,0 为数字显示void main()uint get_fre;target_init();init_led();- 12 -sei();while(1)get_fre=get_fre_number();if(get_fre/10000x0A)displayBuff0=get_fre/1000+0; /计算频率千位,放在缓冲区第 0 位displayBuff1=(get_fre/100)%10+0; /计算频率百位,放在缓冲区第 1 位displayBuff2=(get_fre%100)
18、/10+0; /计算频率十位,放在缓冲区第 2 位displayBuff3=get_fre%10+0; /计算频率个位 ,放在缓冲区第 3 位ledSweepDisplay(displayBuff,displayMode,0x04);/循环显示数码管缓冲区中数据3.2 建立仿真模型在电子设计尤其是单片机系统设计过程中利用 Proteus 软件来进行仿真建模分析有很大的好处,它不但非常方便而且能够在很大程度范围内减少因设计问题而造成的浪费。这里的仿真主要是运用 ISIS 工具。先从 ISIS 的元件库中找到需要用的元件,然后搭建相应的主电路,设置好参数后即可进行仿真。仿真电路图由三部分组成,分别
19、为计时部分,计频部分。计时部分可以由脉冲信号发生器来实现不同时间范围内的计时功能,如:将脉冲信号发生器设置为 1HZ,则计时时间为 100 秒,若为 100HZ,则计时时间为 1 秒。计频电路的输入部分的脉冲由 555 芯片的 3 脚输出来提供,555 芯片的输入部分由一个脉冲信号发生器来模拟。为了便于观察其他形式的波形是否能够整形成方波。3.3 仿真程序设计及编译由上面的程序结构图,可以写出仿真程序,完整的程序见附录 2 所示。经检查在 Keil 中编译后,程序无误生成 hex 文件。Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统
20、,与汇编相比,- 13 -C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行 Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在
21、开发大型软件时更能体现高级语言的优势。C51 工具包的整体结构,uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分别由 C51 及 C51 编译器编译生成目标文件(.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS)。ABS 文件由 OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调
22、试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中- 14 -第四章 结束语 频率测量在科技研究和实际应用中的作用日益重要。这次课程设计让我知道了测量方波信号的方法,如利用可编程逻辑器件或者利用单片机做小系统,传统的频率计通采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度慢,而且测量低频信号时不宜直接使用。而这次课程设计采用了 AT89C51 单片机和相关硬软件实现。用 C 语言进行设计,采用单片机智能控制,结合外围电子电路,得以高低频率的精度测量,编程简单,精度高。自己学习单片机已有两年的时间了,这是我又一次利用它来完成课程设计,现在深深
23、地感受单片机的适用性强、应用面广、功能完善。单片机技术发展已经很成熟,在电子控制系统应用上仍然占有很重要的地位,作为一名自动化专业的学生,学习好单片机就显得很有必要。在学习单片机时,不能只满足于课本以及软件仿真,更为重要的是注重它在实际生活中的应用,多思考、多动手搭建电路,这样我们才能将所学的东西内化,为今后在系统设计中打下一个坚实的基础。总之,利用不多的空余时间完成的这次课程设计,不仅很好地巩固了相关专业知识,而且本次实验再次频繁的使用了 Proteus 和 Keil 软件,快速有效的解决了一些问题,但它的功能与优越性远远不止这些,自己要加深对这两款软件的了解与学习。自己查资料,自己设计,自
24、己验证,直到得出满意的结果,使我明白了自主学习的重要性和必要性。学习要有收获,不仅局限于课本,还要能在实践中学以致用,这才是我们这些即将离开大学的大学生应该努力的方向。- 15 -参考文献1 孙晓明 EDA 实验指导书 武汉:武汉理工大学教材中心,200712 谭会生,张昌凡 EDA 技术及应用 西安:西安电子科技大学出版社20043杨欣、王玉凤、刘湘黔.51 单片机应用从零开始.北京:清华大学出版社,20084焦宝文.电子技术基础课程设计指南.北京:清华大学出版社,20065阎石.数字电子技术基础.北京:清华大学出版社,20076马建国.孟宪元.电子设计自动化技术基础.北京:清华大学出版社,20047李光飞 ,楼苗然主编.51系列单片机.北京:北京航空航天大学出版社,20038黄正瑾编著.CPLD系统设计技术入门与应用. 北京: 电子工业出版社, 20029谢自美编著.电子线路设计实验测试.华中理工大学出版社,200210陈永甫编著.电子电路智能化设计.实例与应用.北京:电子工业出版,2002.811康华光主编.电子技术 基础(第四版).北京:高等教育出版社,1999- 14 -