基于单片机的频率测量仪的设计内容摘要:

可以不使用外部上拉电阻。 当 P0 口用作普通 I/O 口 的时候,内部上拉电阻断开,外部必须连 接上拉电阻 ( ) [5]。 : P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口。 同时 也可以用作定时器 /计数器 2 的外部输入。 则可以用作定时器 /计数器 2 捕捉 /重装方式的触发控制 端。 : P2 口也是一个具有内部上拉电阻的 8 位双向 I/O 口。 当使用了外部存储器的时候 当做高 8 位的地址总线使用。 : P3 口也是一个具有内部上拉电阻的 8 位双向 I/O 口。 可以当做普通的 I/O 口使用。 为串口 1 是串口 1 数据接收端。 位串口 1 数据发送端。 位外部中断 0 输入端。 而 则是外部中断 1 输入端。 位定时器 /计数器0 的外部输入。 位定时器 /计数器 1 的外部输入。 RST:单片机复位脚。 从 RST 引脚施加一个 10us 加 24 个时钟周期的高电平,单片机进入复位状态,将 RST 脚拉回低电平后,单片机结束复位状态,并从用户程序区 0000H 处开始工作。 ALE:地址锁存允许信号输出端 /编程脉冲输入端,也可当做普通 I/O 口使用。 XTAL XTAL2:单片机的时钟输入引脚。 单片机定时器介绍 STC89C52RC 单片机内部具有 3 个 16 位的定时 /计数器 T0、 T1 与 T2, 它可以通过编程来获得自己所需要的功能。 定时 /计数器 T0 和 T1 还有 T2 的核心都是16 位 计数器 , TH0 与 TL0 是定时 /计数器 0 的 高 8 位和低 8 位; TH1 与 TL1 是定时 /计数器 1 的高 8 位和低 8 位。 定时器 \计数器的初值可以通过程序来设定 , 这样就可以得到所期望的计数值和定时时间。 当定时器 \计数器用 作定时器时, 定时器的寄存器的值在每 个机器周期 自动 加 1( 如果使用 12MHz 的外部晶振 , 每个机器周期是 12 个时钟周期,所以定时器 \计数器的脉冲频率是 1MHz,也就是每 1 微秒定时器 \计数器的寄存器自动加 1), 因为 外部 石英晶振的频率非常稳定,其波长和频率的波动很 小,这样就可以使用机器周期来测量时间 , 当定时器 \计数器用作 计数器时, 每个定时器 \计数器所对应的 外部引脚 产生下降沿的时候,定时器 \计数器的寄存器由硬件自动加 1,换句话说就是定时器 \计数器的时钟由外部信号提供 [6]。 通过这个原理就可以对被12 基于单片机的频率测量仪的设计 测信号进行计数。 外部输入 信号在 每个机器周期 会 被采样一次, 所以检测一个脉冲就需要两个机器周期,第一个机器周期和 第二个机器周期采样到的值不同,就说明电位发生了变化 ,所以最大计数速率 是外部晶振 频率的 1/24。 STC89C52RC单片机的时钟频率可以在 0Hz~40MHz 内自行 选择 ,当使用 12MHz 时钟时,最大计数速率约为 12MHz247。 24=500KHz。 该设计中使用 74LS161 构成了一个 256 分频的分频器,所示所能测量的频率 在不考虑器件响应 时间 的情况下理论 应 为 500KHz 256=128MHz。 由此可知 完全能够满足测量 ~15MHz 频率的 要求。 单片机部分电路设计 单片机要正常工作,需要两部分基本电路,它们分别是晶振电路和复位电路 [7]。 其电路如图 所示。 图 MCU 电路的设计 首先单片机上电之后需要复位才能正常运行。 单片机的复位方法是在 RST 引脚施加一个 24 个 时钟 周期加 10us 的高电平,单片机进入复位状态。 当单片机引脚RST 变成低电平,单片机 会 自动 结束复位状态 ,然后 并从 头开始执行用户的程序。 所以使用了一个 C4 和 R14,当系统得电之后, C4 通过 R14 进行充电,此时 RST处于高电平,当 C4 充电过程结束时, RST 变为低电平,此时单片机开始正常工作。 C2,C3,X1 构成了单片机的时钟电路,给单片机提供工作所需要的时钟, C2,C3 为负载电容,需要小于 47pF,这里选用了 22pF。 第三章 硬件设计原理 13 信号处理电路设计 高频滤波 一般被测信号都带有一定高频杂波,这会对测量结果造成影响,所以首先需要对被测信号进行滤波,这里可以使用低通滤波器,把被测信号的高频杂波滤去,以减少对测量结果的影响,所以使用了一个简单的 RC 网络组成的低通滤波器。 如图 所示。 当频率信号比较高的时候,对于低频信号来说, C1 相当于开路,对信号没有影响,但是对于高频信号来说, C1 则相当于短路,这样就可以滤去高频的杂波了。 过零比较电路 由于 频率测量仪 用途较广,经常会碰到小信号的测量。 所以这里遇到的问题是对信号进行放大和整形。 下面有 两个方案。 方案一:如图 所示。 这个方案使用两个三极管互补 ,以增大 放大 倍数,使三极管工作在饱和区而得到方波 ,由于两个三极管互补放大倍数是两个三极管放大倍数 β 的乘积,所以三极管 Q2 会趋于饱和状态,当做开关管使用。 当 INPUT为高电平的时候, Q1, Q2 导通,经过两个非门进行整形之后, OUTPUT 输出低电平。 反之,当 INPUT 为低电平的时候 Q1, Q2 截止,这时候 OUTPUT 输出为低电平。 这样就 完成了输入信号的放大和整形。 可以将小信号的三角波,锯齿波, 正弦波 等转换成 5V 幅度的标准的方波。 图 三极管搭建放大整形电路 图 低通滤波器 14 基于单片机的频率测量仪的设计 方案二:方案二是用了电压比较器 MAX9012 来进行波形的放大和整形。 其电路如图 所示。 美信的 MAX9012 是一个响应时间为 5ns 高速度的电压比较器,它 可以看作 是 放大倍数 为 “无穷大 ”的运算放大器,它的功能是比较两个电压的大小,比较结果用输出电压的高低电平来表示 [8]。 当正相端的电压 比 负相端的电压 高 ,输出高电平,当正相端的电压低于负 相端 的 电压 时 ,电压比较器输出低电平。 使用电压比较器的这个特性就可以把正弦波、三角波、锯齿波等波形转换成频率相同的方波,便于单片机进行测量。 其中 R11 和 R12 组成一个分压电路,得到一个 的参考电压,当输入信号低于 的时候,电压比较器输出高电平,当输入信号高于 的时候,电压比较器输出低电平。 R16 组成了一个正反馈,也就是所谓的迟 滞比较器,用来消除被测信号在参考电压附近抖动所造成的误差,并 缩短 高低电平转换的时间。 图 比较器构成的放大整形电路 方案一虽然没有使用集成芯片,但是它的响应速度非常快,准确度也很高,抗干扰能力也比较强,但是它有一个致命的缺点,因为是用三级管做放大整形,所以要求被测信号必须大于 ,这样测量信号的幅度就无法满足要求。 方案二使用了美信的高速电压比较器,成本上有一定的上升,抗干扰也没有方案一好,但是它响应范围宽,失调电压小于 2mv,能较好的满足使用要求,经过权衡选择了方案二作为本设计的信号放大和整形电路。 分频电路设计 第三章 硬件设计原理 15 74LS161 芯片介绍 74LS161 芯片管脚如图 所示。 74LS161 是常用的四位二进制可预置的同步加法计数器。 他可以灵活的运用在各种数字电路中,以及单片机系统 中 实现分频器等很多重要的功能。 D0D3 是预置数输入端,在 LOAD 为低电平、 CLK 的上升沿的时候 输出端 Q0Q3 等于 D0D3,这样就可以构成任意进制的分频器。 当 ENP为低电平的时候,输出保持不变。 MR 为清 0 端,当 MR 为 0 的时候输出和 RCO都清 0。 当 ENP,ENT,LOAD,MR都等于 1,在 CLK 的上升沿计数器正常计数,当溢出的时候进位 位 从 RCO 输出,以方便级联。 分频电路的设计 本设计采用两 片 74LS161 进行级联 [9],构成一个 256 分频的分频 器。 被测信号经过滤波整形之后,施加到第一片 74LS161( U2)的 CLK 脚进行计数。 当 U2溢出,也就是计数到 “1111”的时候,它的进位位 RCO 就输出一个脉冲给第二片74LS161( U3)的 CLK 脚。 由于 74LS161 的时钟脚是反相端,所以级联的时候需要加一个反相器。 U3 负责对 U2 的 RCO 脉冲进行计数,当 U3 也计数到 “1111”的时候,同样的也会在其进位端输出一个脉冲信号给单片机的。 单片机的 是计数器 0 的外部脉冲输入端, U3 的溢出次数就被计数器 0 记录了下来。 假设 T0的溢出次数为 H,则最后的脉冲总数 N 就为 N=H 256 65536+( TH0 256+TL0) 256+P0。 这样两片 74LS161 级联就构成了一个简单稳定的 256 分频的分频器。 这样做的优点是是不但能进行 256 分频,还能对没有到 256 的频率进行测量,误差小 , 使用方便。 假设单片机使用的晶振是 12M,它的计数器能测的频率上限大约为 500KHz 左右,而进过 256 分频之后,如果不考虑器件的频率特性,则其理论可测频率达到了 128Mhz 左右,完全能满足本次 毕业设计 要求的 ~15MHz 的性能指标。 其 74LS161 记录的分频电路图如图 所示。 图 74LS161 管脚图 16 基于单片机的频率测量仪的设计 图 74LS161 分频电路 测量结果显示电路设计 LCD1602 液晶介绍 这里使用了 LCD1602 液晶来对测量结果进行显示输出。 LCD1602 不像数码管那样需要不停的刷新显示,具有占用 MCU 资源较少的优点。 它是一个工业字符型液晶,能够同时显示 16x2 即 32 个字符。 是专门用来显示字母、数字、符号等的点阵型液晶模块。 LCD1602 由若干个 5 7 或者 5 11 等点阵字符 组成, 每个位上都能显示一个单独的字符,每个字符中间都会有一定的间隔。 LCD1602 液晶具有显示美观 、 内容丰富、超薄轻巧的特点, 可以被用在很多的电子产品当中。 芯片主要参数介绍 或 5V 工作电压,对比度可调,内含复位电路。 提供各种控制命令 ,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。 有 80 字节显示数据存储器DDRAM。 内建有 192 个 5X7 点阵的字型的字符发生器 CGROM。 8 个可由用户自定义的 5X7 的字符发生器 CGRAM。 器芯片管脚如图 所示。 图 LCD1602 液晶模块管脚 第三章 硬件设计原理 17 芯片管脚功能 第 1 脚: VSS 为 电源地。 第 2 脚: VCC 为电源正极 ,有 和 5V 两种产品。 第 3 脚: V0 是 LCD1602 液晶 对比度调整 输入引脚 , 在此引脚输入一个电压信号来调整对比度, 0V 的时候对比度最高,随着电压的升高,对比度下降。 (对比度过高 会造成显示不清晰,并会大幅度缩短使用寿命 , 实际使用的时候,可以在 这个引脚接 10K 的电位器,根据需要自行调整对比度 )。 第 4 脚: RS 是 寄存器选择 使能端 , 被置“ 1”的时候操作的是数据寄存器,被清 0 的时候,则 操作液晶内部的指令寄存器。 第 5 脚: RW 是 读写信号 端 , 被置 1 的时候,读数据或者读命令,同理当这个位被清 0 的时候,表示写命令或者写数据。 第 6 脚: E 端为使能端 ,高电平时读取 指令或者数据 , 下降沿的 时 候 执行指令。 第 7~ 14 脚: D0~ D7 是 LCD1602 液晶的数据接口,可以双向使用。 第 15~ 16 脚: 背光电源输入。 15 脚是 5V 或者 , 16 脚接地。 LCD1602 使用方法和常用命令 LCD1602 共 16 个管脚, 操作 LCD1602 最重要的管脚有三个 ,它们分别为:RS(数据命令选择端 ),R/W(读写选择端) ,E(使能信号); 程序的编写主要就是操作这三个管脚。 RS 为寄存器选择 端 ,高电平选择 操作 数据寄存器,低电平选择指令寄存器。 R/W 为读写选择,高电平 表示 进行读操作,低电平进行写操作。 E 端为使能端。 而 D0~D7 则 为 8 位双向数据线。 LCD1602 的操作分为四个部分。 它们分别是读状态、写指令、读数据、写指令。 首先,读状态的时候需要将数据命令选择端 RS 置低,以表示对 LCD1602 的命令寄存器进行操作,然后将读写选择端置 1,表示将要进行的操作是读取操作,接下来让使能信号 E 产生一个上升沿,此时所要读取的状态就从 LCD1602 的数据段 D0D7 进行输出。 当使用 LCD1602 之前需要对其进行初始化,而初始化液晶屏就必须得发送相应的指令,这就涉及到了写指令操作。 同理,写指令的时候需要先将数据选择端置 0,表示接下来还是对命令寄存器进行操作,然后把读写选择信号置 0,表示写操作,此时在 LCD1602 的 D0D7 端上加上所需要写的指令,在使18 基于单片机的频率测量仪的设计 能信号的上升沿写入到 LCD1602 内部。 接下来的读数据和写数据依次类推,这里就不进行赘述了。 LCD1602 常用指令的介绍。 下面介绍几个常用的命令。 0x01:清除显示指令。 这个指令将空位字符码 0x。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。