找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3707|回复: 0
打印 上一主题 下一主题
收起左侧

基于单片机的频率特性测试仪课程设计

[复制链接]
跳转到指定楼层
楼主
ID:262244 发表于 2018-3-27 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

放大整形模块

由于输入的信号可以是正弦波、三角波、矩形波等,而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。
本文采用单管共射极放大电路对信号进行放大和再由非门74LS00构成施密特触发器对输出的信号进行整形成矩形波后再次输出。

3.2.1 与非门74LS00

74LS00 为四组2 输入端与非门(正逻辑),共有 54/7400、54/74H00、54/74S00、54/74LS00  Y=(AB)非

Input
Input
Output
A
B
Y
L
L
H
L
H
H
H
L
H
H
H
L

3.2.2 放大整形模块原理图

此模块原理图:
图5 放大整形电路原理图

3.3 分频模块

本文采用12MHZ的时钟,最大计数速率为500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。
为了测量提高精度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。这两种情况使用T1(P3.5)和TO(P3.4,程序定义为十分频接入口)计数选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应选择,继而测得相应频率值。
因此此模块主要包括分频器74LS161、与非门74LS00。

3.3.1 分频器74LS161芯片

74LS161是常用的四位二进制可预置的同步加法计数器。
表4 74161的功能表

从表中可以知道,当清零端RD=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当RD=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当RD=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO= Q0·Q1·Q2·Q3·CET。合理应用计数器的异步清零功能和同步计数功能,一片74LS161可以组成16进制以下的任意进制分频器。本文组成了十进制的分频器。
图6上图为分频电路

3.4 显示电路

显示模块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz频率单位,使读数简单可观。
数码管是一种半导体发光器件,其基本单元是发光二极管。常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型。

图7 两种数码管内部原理图

因为这里用的是共阳极数码管,它的公共端为高电平,因此要让其中各段(DP,A,B,C,D,E,F,G)的发光二极管发光,只要使它另一端置为低电平,即置0。

3.4.1 频率数值显示电路

图8共阳极数码管显示电路图

3.4.2 频率数值单位显示电路

图9 LED档位指示电路

四、系统软件设计

本文中系统软件设计采用模块化设计,整个系统分为初始化模块、频率测量模块、量程自动切换模块和显示模块等。
整个系统软件设计的程序由C语言编写,通俗易懂。
系统软件设计模块框图:
图10系统软件设计模块框图

4.1 开始

程序预处理,先声明头文件,定义一些变量。
程序入口,main()函数框图:
图11 主函数框图

4.2 初始化模块

初始化模块初始化分频器、量程档位、LED显示、工作寄存器、中断控制和定时/计数器的工作方式等。

4.3 频率测量模块和量程自动切换模块

经过初始化计数器1,每一次下降沿触发一次计数器1中断,每次中断执行中断处理程序则fCnt加1,因此fCnt为信号下降沿次数;经过初始化定时器0,
每50ms触发一次定时器0中断,每次中断执行中断处理程序则对数据下降沿次数fCnt进行处理,通过对数据的大小判断实现量程自动切换等,从而计算出信号的频率,然后调用显示模块把频率值显示出来。其中,16位定时/计数器的最高计数值为65535,因此,还需要先由硬件十分频后,再有定时/计数器对被测信号计数,加大测量的精度和范围。
计数器0(或者1)和定时器2的中断处理框图:
图12 计数器0(或者1)中断处理              图13定时器2中断处理
量程自动切换模块框图:
图14 量程自动切换程序总流程图

4.4 显示模块

显示程序将频率值和量程档位在数码管和LED管显示出来。由于所有4位数码管的8 根段选线由单片机的P0口控制,因此,在每一瞬间4位数码管会显示相同的字符,要想每位显示不同的字符就必须采用扫描方法轮流点亮各位数码管,即在每一瞬间只点亮某一位显示字符,由P1.0-P1.3逐位轮流点亮各个数码管,在此瞬间,段选控制口P0输出相应字符。P2.4-P2.6控制三个发光二极管,通过光颜色的不同表示量程档位的不同。
P1.0-P1.3对应共阳极数码管的1,2,3,4;P0.0-P0.7对应共阳极数码管的A,B,C,D,E,F,G,DP;P2.4-P2.6对应发光二极管的颜色:绿色(MHZ档),黄色(KHZ),红色(HZ)。发光二极管全亮表示所测信号频率超出测量范围。
显示模块框图:
图15 显示子程序流程图

4.5 延时模块

延时模块框图:
图16 延时程序流程图

4.6 频率计仿真

4.6.1 用KEIL软件

先创建工程,后导入bs.c文件,其中bs.c文件就是软件设计中的源代码:
图17 keil软件应用图
设置一些软件目标选项
由此打开选项:
图18软件设置选项图
点击后,弹出对话框并设置相关属性。
点击按钮后,编译连接,若代码无问题,之后会生成bs.hex文件,如下图:
图19 (.hex)文件图

4.6.2 使用软件Proteus仿真频率计

信号的放大整形模块、分频模块和显示模块都要与单片机模块相连才能达到所需的要求,因此,这三个模块就一起仿真,用Proteus软件仿真如下图:
图20 频率计仿真图
其中需要注意是一些设置:
单片机设置:

图21 单片机属性设置图
其中是需要导入由KEIL软件生成的"*.hex"文件,再是时钟频率为12MHZ。
电源的设置:
        
图22 电源大小设置图
设置电源为5V。

4.6.3 频率计仿真运行调试

设置如下:
  • 给定1HZ的矩形信号波
图23 频率计测量10HZ信号运行图
其中红色LED亮,是表示数码管显示的频率值是HZ档,也就是频率的单位是HZ,也就表明运行结果读数是1HZ。
2.给定46.3kH的正弦波
点击确定后,点击运行按钮,之后看频率计仿真运行情况
图24 频率计测量46.3KHZ信号运行图
3.0  给定9.643MHZ的矩形信号波后信号运行图
图25 频率计测量9.643MHZ信号运行图
其中绿色LED亮,是表示数码管显示的频率值是MHZ档,也就是频率的单位是MHZ,也就表明运行结果读数是9.643MHZ。
4.0  给定超过量程信号波后,信号运行图如下
其中三个LED灯都会点亮,数码管全部都显示为0

完整的Word格式文档51黑下载地址:
系统硬件设计.docx (2.26 MB, 下载次数: 40)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表