AD芯片ADC081S101测试试验设计Verilog代码VIVADO ARTIX-7开发板
名称:AD芯片ADC081S101测试试验设计Verilog代码VIVADO ARTIX-7开发板
软件:VIVADO
语言:Verilog
代码功能:
AD芯片ADC081S101测试试验
定时采集输入模拟电压,显示到数码管上
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:
设计文档:
AD数码管显示例程
1实验简介
本实验练习使用ADC,实验中使用的ADC模块型号为ADC081S101EVAL,最大采样率为20MHz,精度为8位。实验中通过调节电位器R3,调整ADC采集电压值,并通过数码管显示电压值大小。

图1、ADC081S101EVAL电压采集电路

图2、6位数码管电路
2 实验过程
本实验例程,通过调节电位器调整ADC芯片采集的输入电压,FPGA提供ADC芯片驱动信号并读取其输出采集电压值的数据,同时通过数码管显示ADC采集电压值大小。
2.1、ADC时序

图3、ADC081S101时序图
通过此时序图,我们可以看到,无需对ADC芯片进行配置,只需要我们提供时钟SCLK和CS片选信号,芯片就可以直接进行数据采集了,操作非常简便。
2.2、数码管原理
图2所示的是6位共阳数码管,通过FPGA给与引脚低电平即可点亮数码管LED灯。在本实验中,由于ADC采集电压最大为3.3V,所以最左边数码管显示最高位,同时带小数点,右边5位数码管显示小数位。在数码管显示时,采用“同步动态扫描”,是指“行信号”和“列信号”同步扫描。
3 程序设计
程序设计比较简单,功能是FPGA驱动ADC081S101芯片不断采集电压值并送到数码管进行显示。
代码说明:
at7_prj9_top.v是顶层模块,包含ad_mod.v,ad_data_pro_mod.v,display1_mod.v,display2_6_mod.v和digled_time_mod.v模块。
ad_mod.v是ADC的电压读取模块,实时读取电压值;ad_data_pro_mod.v是十六进制转换十进制模块;display1_mod.v是数码管最左边一位带小数点的显示模块;display2_6_mod.v是数码管右边五位显示模块;digled_time_mod.v是数码管显示时采用“同步动态扫描”功能的模块。
4 实验现象
编译综合完成后下载程序到开发板中,可以看到数码管不断的显示ADC采集到的电压值,通过调节电位器R3可以看到电压值在实时变化,增加或者减小。

部分代码展示:
`timescale 1ns/100ps module ad_data_pro_mod( clk_8m , rst_n , ad_data , dig_led1 , dig_led2 , dig_led3 , dig_led4 , dig_led5 , dig_led6 , dig_led7 , dig_led8 ); input clk_8m ; input rst_n ; input [7:0] ad_data ; output [3:0] dig_led1 ; output [3:0] dig_led2 ; output [3:0] dig_led3 ; output [3:0] dig_led4 ; output [3:0] dig_led5 ; output [3:0] dig_led6 ; output [3:0] dig_led7 ; output [3:0] dig_led8 ; reg [24:0] buf_data1 ; reg [24:0] buf_data2 ; reg [3:0] minus_state; reg [3:0] dig_led1 ; reg [3:0] dig_led2 ; reg [3:0] dig_led3 ; reg [3:0] dig_led4 ; reg [3:0] dig_led5 ; reg [3:0] dig_led6 ; reg [3:0] dig_led7 ; reg [3:0] dig_led8 ; reg [3:0] dig_led1_buf ; reg [3:0] dig_led2_buf ; reg [3:0] dig_led3_buf ; reg [3:0] dig_led4_buf ; reg [3:0] dig_led5_buf ; reg [3:0] dig_led6_buf ; reg [3:0] dig_led7_buf ; reg [3:0] dig_led8_buf ; always @(posedge clk_8m or negedge rst_n) begin if(!rst_n) begin buf_data1 <= 25'd0; end
代码文件(付费下载):
![]()
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » AD芯片ADC081S101测试试验设计Verilog代码VIVADO ARTIX-7开发板