内容发布更新时间 : 2024/11/15 2:11:07星期一 下面是文章的全部内容请认真阅读。
数字电路与逻辑综合实验报告
题目:简易电压表设计
学院:电子工程学院 专业:光电信息科学与工程 班级:20132112 学号:20132111 姓名:
一、 实验任务要求
设计并实现一个简易数字电压表, 要求使用实验板上的串行 AD 芯片 ADS7816。
基本要求:
1、测量对象:1-2 节干电池。 2、AD 参考电压:5V。
3、用三位数码管显示测量结果, 保留两位小数。 4、被测信号超过测量范围有溢出显示并有声音提示。 5、按键控制测量和复位。 提高要求:
1、能够连续测量。 2、自拟其他功能。 二、设计思路
利用ADS7816作为电压采样端口,FPGA作为系统的核心器件,用LED进行数码显示,把读取的13位二进制数据转换成便利于输出3位十进制BCD码送给数码管。采用FPGA芯片作为系统的核心器件,负责ADS7816的A/D转换的启动、地址锁存、输入通道的选择、数据的读取。同时,把读取的13位二进制数据转换成便于输出3位十进制的BCD码送给数码管,以显示当前测量电压值。 三、 总体框图
数字电压表整体设计框图,如下图所示,数字电压表系统由A/D转换模块、FPGA控制模块、数码显示模块三部分构成。FPGA控制模块控制外部A/D转换器自动采样模拟信号,通过A/D芯片转换为数字信号,再由FPGA控制模块控制数码管动态扫描向外部数码管显示电路输出数据。
信号采集 数码 转控管 换制显模模 示块块
四、模块设计 1、A/D转换模块
(1)ADS7816工作原理
ADS7816的工作时序图如图所示。在ADS7816的工作时序中,串行时钟DCLK用于同步数据转换,每位转换后的数据在DCLK的下降沿开始传送。因此,从Dout(数字数据输出引脚)引脚接收数据时,可在DCLK的下降沿期间进行,也可以在DCLK的上升沿期间进行。通常情况下,采用在DCLK的上升沿接收转换后的各位数据流。CS的下降沿用于启动转换和数据变换,CS有效后的最初115至2个转换周期内,ADS7816采样输入信号,此时输出引脚Dout呈三态。DCLK的第2个下降沿后,Dout使能并输出一个时钟周期的低电平的无效信号。在随后的12个DCLK周期中,Dout输出转换结果,其输出数据的格式是最高有效位(B11位)在前。当最低有效位(B0位)输出后,若CS变为高电位,则一次转换结束,Dout显三态。若CS
FPGAA/D 仍保持为低电平,则在随后的时钟周期中,Dout将以最低有效位在前的格式重复输出转换后的数据,其中第2次重复输出的最低有效位不再出现(与前一输出周期的最低有效位重叠),当最高有效位(B11位)重新出现后,Dout呈三态,以后的时钟序列对ADS7816不产生影响,仅当CS由高变为低后,ADS7816才启动下一个新的转换。
ADS7816的工作时序图
(2)BCD转码设计
8位数字量BD0~BD7转换成3位BCD码用FPGA实现乘除法是很耗资源的,并且实现起来非常麻烦,所以小组通过讨论跟商量后,觉得利用加法来实现更加方便。
表中将8位数字量分为高4位HB和低4位LB,这样每个4位码的编程都是从0000~1111的16组码,由于5V被8位二进制码最大值除得到的结果是0.02v,即数字量每增大1对应模拟电压增大0.02v。 16进制 二进制 高四位 低四位 0 0000 0.00 0.00 1 0001 0.32 0.02 2 0010 0.64 0.04 3 0011 0.96 0.06 4 0100 1.28 0.08 5 0101 1.60 0.10 6 0110 1.92 0.12 7 0111 2.24 0.14 8 1000 2.56 0.16 9 1001 2.88 0.18 A 1010 3.20 0.20 B 1011 3.52 0.22 C 1100 3.84 0.24 D 1101 4.16 0.26 E 1110 4.48 0.28 F 1111 4.80 0.30 将二进制加法运算的结果修正为BCD码加法运算的结果,两个两位BCD数相加时,对二进制加法运算结果采用修正规则进行修正。修正规则:
a.如果任何两个对应位BCD数相加的结果向高一位无进位,若得到的结果小于或等于9,则该不需修正;若得到的结果大于9且小于16时,该位进行加6修正。
b.如果任何两个对应位BCD数相加的结果向高一位有进位时(即结果大于或等于16),该位进行加6修正。
c.低位修正结果使高位大于9时,高位进行加6修正。 (3)VHDL代码 library ieee;
use ieee.std_logic_1164.all;