基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的频率、电压测量仪器...

1、概述

基于明德扬至简设计法和明德扬设计规范,设计一个基于FPGA的频率、电压测量仪器,实现了测量AD采集后的波形频率和电压(峰峰值),并将数值显示在数码管上。这个案例通过扩展还可结合明德扬的波形采集显示案例实现显示波形频率、峰峰值功能,还可拓展结合上次DDS案例产生的已知波形的频率峰峰值,验证本设计的正确性。

本案例的扩展和应用在现实生活中具有重大意义。

在本案例的设计过程中,应用了至简设计法、状态机模板应用等,在经过逐步改进、调试等一系列工作之后,最终达到了设计目标。

2、设计目标

(1)将AD采集后的数据转换成同频率的方波,并测量出波形实际频率

(2)能够实现测量出波形的周期

(3)能够实现测量波形的峰峰值或者某个信号的电压值

(4)数码管显示频率或电压值,并通过按键控制切换决定数码管显示频率或电压值

3、模块功能

(1)频率测量模块实现功能:

将AD采集后的数据转换成同频率的方波;

测量出波形的实际频率;

测量出波形的周期

(2)电压测量模块实现功能:

将AD采集后的数据进行缓冲;

记录数据最大值和最小值;

根据公式得出波形的峰峰值(电压)

(3)数码管显示模块实现功能

数码管显示频率值或者电压值

通过按键1实现切换决定数码管显示频率还是电压

(4)按键模块实现功能:

将外来异步信号打两拍处理,将异步信号同步化;

实现20ms按键消抖功能,并输出有效按键信号;

4、信号定义

(1)顶层模块Freq_Volt_Top.v

5e29aa3a6a91453f9bb0dc6f3110de39.png

(2)频率测量模块Frequency.v

f5785006412544c7453e908b6b8334fe.png

(3)电压测量模块Voltage.v

af2f09d2f7e68b56e3ace83447726bb9.png

(4)数码管显示模块sel_disp.v

e11374d4db9df90a3da39d12bc83d0b4.png

(5)按键模块key_module.v

b5dea4a4770332bd8dd31122af073229.png

5、频率测量代码

54a91c046c61d710df9330d3df389cc8.png

dfae7b8e127a8e51266720dad60f4976.png

利用明德扬的四段式状态机模板,可以很熟练地写出状态的转换,先将ad_data取最高位,得到同频率的方波,再分别计算方波高电平和低电平的时间,就可以得出一个周期的时间,从而计算出频率值和峰峰值。利用wave的高低电平控制状态机进入高电平计数或低电平计数状态。

3d164b0f71e719d08dfcdcf1a624f49e.png

S1状态:即wave=1时开始进行高电平计数,wave=0时证明变为低电平,记录下high_cnt的最大值,代表高电平的时间。

0c21b6d72405b7323cf6f4822fe4528c.png

S2状态:即wave=0时开始进行低电平计数,wave=1时证明变为高电平,记录下low_cnt的最大值,代表低电平的时间。

得到高电平和低电平的时间,相加即得到一个周期的时间,可以算出频率值和周期值

9d4bf34ba1e6c8c1441a28d0fe500b4e.png

FPGA原则上不能直接进行除法运算,因此调用除法器IP进行除法运算可以算出频率值,取整数部分。

6、电压测量

fe2752c64b2bdc1ce06251f146e0ff96.png

将AD数据和初始的最大值最小值相比较,如果AD数据大则赋值给fengzhi_max,如果AD数据小则赋值给fengzhi_min,经过一段时间后可以得出数据的最大值和最小值。如果是8位AD9280,则255代表+5V,0代表-5V;

则可以得到峰峰值计算公式;

值得注意的是,记录下最大最小值后,fengzhi_max,fengzhi_min将不变,为了能够实时记录数据最大最小值,需要定时刷新,因此设置1s RST信号,定时初始化fengzhi_max,fengzhi_min。

6c3513232718cd5a3437b28e509d2863.png

7、数码管显示

48b5471481e160edf410b12c0b0bdc14.png

通过按键切换决定数码管显示频率值还是电压值。

8cc3221ad65b543ae6be3bccfbacda90.png

动态扫描数码管,同时显示多个不同数字,显示频率和电压信息。数码显示原理和案例具体请学习明德扬论坛上资料。

在这个设计案例中,至简设计法和明德扬计数器模板、状态机模板发挥了至关重要的作用,使我能够快速准确完成设计。

本设计可以加以拓展:

结合明德扬AD采集波形案例,将计算出的频率值、电压值显示在VGA屏幕上;

对于初学者而言,流水灯太简单,复杂项目又太难,不如尝试一下这些相对简单而又酷炫的案例,并一步步拓展成大项目。赶紧动手尝试吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值