北邮数电实验——简易数字电压表报告重点.docxVIP

北邮数电实验——简易数字电压表报告重点.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电路与逻辑综合实验报告 题目:简易电压表设计 学院:电子工程学院 专业:光电信息科学与工程 班级学号姓名: 实验任务要求 设计并实现一个简易数字电压表, 要求使用实验板上的串行 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控制模块控制数码管动态扫描向外部数码管显示电路输出数据。 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仍保持为低电平,则在随后的时钟周期中,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进制二进制高四位低四位000000.000.00100010.320.02200100.640.04300110.960.06401001.280.08501011.600.10601101.920.12701112.240.14810002.560.16910012.880.18A10103.200.20B10113.520.22C11003.840.24D11014.160.26E11104.480.28F11114.800.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; use ieee.std_logic_unsigned.all; entity zhuanhuan

文档评论(0)

118118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档