基于CPLD数字电压表设计_第1页
基于CPLD数字电压表设计_第2页
基于CPLD数字电压表设计_第3页
基于CPLD数字电压表设计_第4页
基于CPLD数字电压表设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要 本论文介绍了应用硬件描述语言(vhdl)来进行数字电压表的设计过程。主要介绍了使用它来设计数字系统硬件电路的方法。使设计人员摆脱传统得人工设计方法的框框,使数字系统设计的水平上升到一个新阶段。vhdl语言是一种面向设计的多层次、多领域且得到一致认同的标准硬件描述语言。它具有两大优点:1 支持自上而下的ttd设计。它直接面向用户,从系统的总体要求出发,根据电路系统的行为和功能要求,自上到下逐层的完成了相应的设计描述、综合与优化、模拟与验证,直到最终生成器件,从而完成系统的整体设计。2 大大缩短了逻辑电路的设计周期。论文详细介绍了(a/d转换器、二十进制的转换、十进制bcd码的转换、多路数据

2、选择器、数码管的显示等程序设计),为使系统设计的更加科学合理,并在编程之后,对主要参数进行了详细得计算;论文还介绍了使用max plus ii软件,另外还附了异步加法器。在论文最后还附有参考文献、外文资料,及译文。关键词:硬件描述语言(vhdl)、模数转换(a/d)、max plus ii、复杂可编程控制器件(cpld)abstractusing a hardware description languagevhdl to design a voltage watch,is introduced in this paper.emphatically,the method which we ma

3、ke use of vhdl todesigning restrictions,and will make an epoch in the design of digital systemswhich will attain a higher level.vhdl is a hardware deseription language that faces design , and appropbated by general consensus. there are two advantageous factors in using vhdl:1. supporting superincumb

4、ent ttd design. vhdl faces users directly, and users can design from the entire request according to the action and function of circuit systems. using vhdl, the user can gradually accomplish the task by steps, starting from the designs description , then synthesis and optimization、simulation and tes

5、t, till creating logic elements finally. ultimately, the entire design is completed.2. cuting the period of the design short greatly.the paper introduces (a/d zhuanhuanqi、shibcd 码的转换、多路数据选择器、数码管的显示)in detail.and also introduces the application of software max plus 2.in addition, asynchronous adder i

6、s appended in the paper. and at the rear of this paper, reference literature, foreign language files and translation are added. in order to make the design more reasonable, we compute the main parameters in detail after the procedure.keywords:vhsic hardware description languagemodel digital convert

7、organonmultiple away matrix and programmable logic user systemcomplex programmable logic device目录第1章 引言 (4)第2章 cpld的概述 (5)2.1 可编程逻辑器件的发展历程 (5)2.2 fpga/cpld技术 (5)2.3 max+plusii介绍 (7)第3章 数字电压表的设计与实现 (9)3.1 数字电压表的简单介绍 (9)3.2 各部分元件的设计 (10)3.2.1 模/数(a/d)转换器 (10)3.2.2 二十进制转换器 (16)3.2.3 十进制bcd码转化器 (18)3.2.

8、4 bcd码多路数据选择器 (20)3.2.5 bcd译码显示器 (21)第4章 控制器与控制电路的设计(23)4.1 控制器的设计 (23)4.2 控制电路的设计 (27)4.2.1 错误显示与复位清零显示的控制电路(27)4.2.2 控制bcd多路数据选择器地址的控制电路(29)4.2.3 3位有效数字在译码显示电路顺序显示的控制电路 (30)第5章 总结(32)第6章 结束语(33)附录(34)第1章 引言随着电子技术的发展,当前数字系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展,推动该潮流迅猛发展的引擎就是日趋进步和完善的asic设计技术。目前数字系统的设计可以直接面向用户要

9、求,根据系统的行为和功能要求自上而下逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计过程几乎都可以用计算机自动的完成,也就是说作到了电子设计自动化(eda)。电子设计自动化(eda)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路,即要用所谓硬件描述语言来描述硬件电路。所以硬件描述语言及相关的仿真、综合等技术的研究是当今电子设计自动化领域的一个重要课题。硬件描述语言得发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。广大用户所期盼的是一种面向设计的多层次、多领域且得到一致认同的标准的硬件描述语言。

10、80年代后期由美国国防部开发的vhdl语言恰好满足了这样的要求,并在1987年12月由ieee标准化(定为ieee std 10761987 标准,1993年进一步修订,被定为ansi/ieee std 10761993 标准)。它的出现为电子设计自动化(eda)的普及和推广奠定了坚实的基础。由于,计算机技术和自身功能的不断发展括充,使其能够在行为级、系统级、寄存器和门级上描述逻辑电路。于是人们反过来进行电路设计(描述),然后通过一定的编译算法将其转化成具有相应功能的逻辑电路,也就是说,电路设计人员可以用硬件 描述语言vhdl来设计数字系统的硬件部分。使用vhdl语言来设计数字系统是电子设计技

11、术的大势所趋。cpld是一种复杂的用户可编程逻辑器件,它以其编程方便、集成度高速度快、价格底等特点越来越受到广大电子设计人员的青睐。此外,该公司还开发了max pius ii软件,vhdl语言就是在这个软件环境应用。正是由于vhdl已广泛应用到各个领域,应用vhdl语言来编程实现数字电压表的设计,通过课题的设计来进一步掌握及应用vhdl语言编程。第2章 cpld概述2.1 可编程逻辑器件的发展历程当今社会是数字的社会,是数字集成电路广泛应用的社会。信息高速公路、媒体电脑、移动电话系统、数字电视,各种自动化设备以及我们日常的一些小制作都要用到数字集成电路,它由早期的电子管、晶体管、小规模集成电路

12、(几十几百门)、中规模集成电路(msic,几百几千门)、大规模集成电路(lsic,几千几万门)发展到超大规模集成电路(vlsic,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制作集成电路的任务已不完全由半导体厂商来独立承担。因而出现了现场可编程逻辑器件(fpld),其中应用最广泛的当属现场可编程门阵列(fpga)和复杂可编程逻辑器件(cpld)。早期的可编程逻辑器件只有可编程只读存储器(prom),紫外线可擦除只读存储器(eprom)和点可擦除只读存储器(eeprom)三种。它们的共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现

13、规模较小的电路。2.2 fpga/cpld技术 fpga(field programmable gates array,现场可编程门阵列)与cpld(cmplex programmable logic devive,复杂可编程逻辑器件)都是可编程逻辑器件。fpga/cpld的规模比较大,适合于时序、组合等。逻辑电路应用场合,它可以代替几十甚至上百块芯片。fpga、cpld概括起来它们是由三大部分组成:1) 一个二维的逻辑块阵列,构成了pld器件的逻辑组成核心2) 输入/输出块3) 连接逻辑的互连资源fpga/cpld芯片都是特殊的asic芯片,它们除了具有asic的特点之外,还具有以下特点:1

14、)fpga/cpld芯片的规模越来越大,使它所能实现的功能也越来越强,同时也可以实现系统集成。2) fpga/cpld的资金投入小,不用对厂商做任何订单数量上的承诺,节省了许多潜在的花费,而且fpga/cpld的研制开发费用相对较低。3) fpga/cpld芯片和eprom配合使用时,用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同的eprom就可以实现不同的功能。4) fpga/cpld芯片电路设计周期短。5) fpga/cpld软件易学易用,可以使设计人员更能集中精力进行电路设计。通常可将fpga/cpld设计流程归纳为以下7个步骤:第1步:设计输入。应用verilog、vh

15、dl、ahdl等硬件描述语言的输入法来设计。第2步:前仿真。所设计的电路必须在布局布线验证,目的主要是在仿真时,验证电路是否有效。第3步:设计输入编译。设计输入之后就有一个从高层系统行为设计向低层门级逻辑电路的转化翻译过程。第4步:设计输入的优化。根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元。第5步:布局步线。第6步:后仿真。设计人员需要利用在布局步线中获得的更精确的rc参数再次验证电路的功能和时序。第7步:流片。2.3 max+plusii介绍 altera 公司的max+plusii 开发系统是一个完全集成化,易学易用可编程逻辑设计环境,它可以在多种平台上运行。它所能

16、提供的灵活性 和高效性是无可比拟的,其丰富的图形界面,辅之以完整的、可即使访问的在线文档。max+plusii是由设计输入、设计处理、设计校验和器件编程四部分组成。 由前面叙述可知,max+plusii软件设计的流程应包括以下几个部分,如图1所示1)设计输入。可以采用原理图输入,hdl语言描述、edif网表读入及波形输入等方式。 2)功能仿真。此时为0延时模式,主要为检验输入是否有误。 3)编译。主要完成器件的选择及适配,逻辑的综合及器件的装入,延时信息的提取。 4)后仿真。将编译产生的延时信息加入到设计中,进行布局布线的仿真,是与实际器件工作时情况基本相同的仿真。5)译验证。用后仿真确认的配

17、置文件经eprom或编程电缆配置cpld,加入实际激励,进行测试,以检查是否完成预定功能。 设计输入设计要求设计编译功能校验时序校验器件编程在线校验系统产品设计修改 图1 max+plusii软件流程图 逻辑设计的输入方法有图形输入、文本输入和由第三方eda tool生成的edif网表输入等,输入方法不同,生成的文件格式也有所不同。建立 一个图形设计文件的方法步骤包括: 1)指定设计项目名称,用max+plusii编译一个项目前,必须确定一个设计文件作为当前项目。对于每个新的项目应该建立一个单独的子目录,当指定设计项目名称时,也就同时指定了保存该设计项目的子目录名。 2)建立新文件。 3)输入

18、图元和宏功能符号。其中prim包括基本的逻辑块电路,mf(宏功能库)包括所有74系列逻辑,mega_lpm(参数化模块库)包括参数化模块、兆功能高级模块和megacoves,ampp包括pci、ds、ucontroller等。 4)连线。 5)为引脚和节点命名。 6)保存文件,检查基本错误。 2.文本设计输入方法主要用来实现以ahdl语言或以vhdl语言形式书写的文件,ahdl是altera hardwara description lovnguage的缩写,它是一种高级的硬件行为描述语言,最适合于大型的、复杂的状态机设计。vhdl是一种符合ieee标准的高级硬件行为描述语言,特别适合于大型和

19、复杂的设计。 第3章 数字电压表的设计与实现3.1 数字电压表设计的简单介绍本课题所设计的数字电压表是能够测量05v的电压值,测得值为3位有效数字,保留两位小数并在led数码管上显示出来。除了能够测量05v之间的电压值外,当被测电压超过05v的范围时,电压表会在数码管上显示出倒f的符号,表示测量错误。通过开关按钮来启动电压表进行测量,每测量完一次通过复位按钮使电压表归零。接下来就给出数字电压表设计的原理方框图,通过方框图来详细介绍 一下各部分元件的设计思想及工作过程。方框图如图2所示,它主要包括:a/d转换器、二十进制转换器、十bcd码转换器、bcd多路数据选择器、控制器、led数码管显示电路

20、这几部分。模拟量的输入a/d二十进制的转换十进制bcd码转换bcd多路数据选择器bcd译码及数码管显示控制器 图2 数字电压表原理框图 在设计过程中我们需要注意的问题:1)二十进制转换中需要有一个范围05v,当超出这个范围时转换结果将会出错,并显示出错误的信息。2)控制器的设计,它需要控制各部分的工作过程,及状态转换,通过控制器控制显示错误信息或清零,3)各部分模块我们都需要利用vhdl语言编程,利用仿真器仿真生成能够完成我们需要功能的模块。3.2 各部分元件的设计 3.2.1 模/数(a/d)转换器 电压表进行测量首先要从外界采集信号,而所采集的信号为模拟信号,我们需要的应为数字信号,这就需

21、要我们通过模/数(a/d)转换器转换为数字信号。实现模/数转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法。考虑到逐次逼近法有速度快、转换精度高的特点,在这里我们所使用的是adc0809模/数转换器。1)adc0809芯片的主要性能1.逐次逼近型a/d转换器,所有引脚的逻辑电平与ttl兼容;2.存功能的8路模拟量转换开关,可对8路05v模拟量进行分时转换;3输出具有三态锁存/缓冲功能;4分辨率:8位,转换时间:100us;5不可调误差:+-1lsb,功耗:15mw;6工作电压:+5v,参考电压标准值:+5v;7片内无时钟,一般需要外加640khz以下且不低于100khz的时钟信号。 2

22、)模/数转换器的主要参数 转换精度 转换精度反映了a/d转换器的实际输出接近理论输出的精确程度。由于模拟量是连续的,而数字量是离散的,所以,一般是某个范围中模拟量对应一个数字量。例如,模拟量为5v时对应的数字量为800h,而实际转换中发现4.997v到4.999v也对应数字量800h。这就反映了一个转换精度的问题。a/d转换的精度通常用数字量的最低有效位(lsb)来表示。 转换时间和转换率 所谓转换时间是指完成一次a/d转换所需要的时间。转换率为转换时间的倒数。它们都表示a/d转换的速度。例如,完成一次a/d转换所需要的时间是20us,则转换率为50khz。 分辨率 分辨率是指a/d转换器能够

23、分辨最小量化信号的能力。一个n位的a/d转换器,其分辨率等于模拟量输入的满量程值除以2的n次方。显然,a/d转换器位数越长,分辨率越高。所以也常用a/d转换器的位数来表示其分辨率。3)逐次逼近式a/d转换法 逐次逼近式a/d转换法,是一种广泛应用的a/d转换方法。用一个d/a转换器的输出电压v0与模拟输入电压vi进行比较,以产生a/d结果在逐次逼近式a/d转换器中,采用一个逐次逼近寄存器放计数值,并在相应的控制电路的控制下,从高位向低位逐位确定其计数值,逐次逼近式adc0809转换原理,如图3所示8位模拟输入8位模拟开关地址锁存与译码3位地址地址锁存允许控制时序启动时钟逐次逼近寄存器树状开关2

24、56r电阻网络转换结束三态输出锁存缓冲器 图3 adc0809转换原理图4)adc0809的内部结构与引脚功能内部结构 模拟多路转换开关由8路模拟开关和3位地址锁存与译码器组成,地址锁存允许信号ale将三位地址信号addc、addb、adda进行锁存,然后由译码电路选通其中一路模拟信号加到a/d转换部分进行转换。a/d转换部分包括比较器、逐次逼近寄存器sar、256r电阻网络、树状电子开关、控制与时序电路等,另外具有三态输出锁存缓冲器。引脚功能d7d0:8位数据输出线;in7in0:8路模拟信号输入;addc、addb、adda:8路模拟信号输入通道的地址选择线;ale:地址锁存允许,其正跳变

25、地址选择线状态,经译码选通对应的模拟输入信号;start:启动信号,上升沿使片内所有寄存器清零,下降沿启动a/d转换;eoc:转换结束,转换开始后此引脚变为高电平;oe:输出允许,此引脚为高电平有效,当有效时,芯片内部三态数据输出锁存缓冲器被打开,转换结果送到d7d0;ref(+)、ref():参考电压正极、负极,通常ref(+)接vcc,ref()接gnd;vcc:电源,+5v,gnd:地线;clock:时钟,最高可达1280khz,由外部提供;adc0809的引脚图如图4所示 in3 in2in4 in1in5 in0in6 addain7 addbstrart addceoc aled3

26、 d7clock d6oe d5vcc d4ref(+) d0gnd ref()d1 d2 图4 adc0809引脚图 5)真值表与时序图clockstarteocoe功能有效 0 0 0a/d开始转换有效 0 1 0转换结束有效 0 1 1允许数据输出 表1clock模拟量输入有效数据数据输出oeeocstart5)工作原理在adc0809中,输入模拟量与输出数字量存在着这样的关系:n=(vin-vref(-)*256/(vref(+)-vref(-)一般 vref(+)=5v vref(-)=0v因为输出为8位二进制数,所以最高输出为 11111111b 即 256我们可以将01分成256

27、份,即最小间隔为:1/256因此求归一化量为:x=vin/5 (x在01之间)求归一化x有多少个256份:n=x*(1/256)=(vin/5)*256=vin*256/5 =vin=5*n/256=0.02*n实际上vin=0.02*n 就是vin模拟量真正意义上对应的数字量,而在vin通过a/d转换器后所得到的是n,若要在数值上等值,还要在n的基础上再乘以0.02.例如:若输入的模拟电压为2.5v,则转换后的数字量为:n=(vin-vref(-)*256/(vref(+)-vref(-) =(2.5-0)*256/(5-0)=128 即 10000000b3.2.2 二十进制转换器通过a/

28、d转换器我们已经得到了8位二进制的数字量,虽为二进制的数字量但它是无法直接驱动led数码管显示的,因为数码管显示的输入量只能与bcd码相匹配,因此我们需要先将8位二进制数,转换为十进制数,再将十进制数转换为bcd码,从而与led数码管显示相匹配,下面先来介绍一下二十进制的转换。1)引脚功能二十进制转换的模块图如图5所示i1 o1 oe eocstart1 aa 图5 二十进制转换模块i1:8位二进制数字量输入端;o1:3位十进制数字量输出端;start1:启动信号,当为低电平时有效并启动二十进制转换器开始工作;eoc:转换结束信号,当二十进制转换工作时,此信号为低电平,当工作结束时,此信号立即

29、为高电平;oe:允许输出信号,此信号为高电平有效,有效时转换后的数据通o1端输出;aa:错误信号,此信号为高电平有效果,当有效时表示转换后的数据有误不能够输出;2)真值表start1eocoeaa功能00 0 0开始转换0100转换结束0101数据有误0110允许输出表2工作过程及流程图我们需将各位的数,0或1分别乘各位对应的2的0次方、2的1次方、2的2次方、2的3次方、2的4次方、2的5次方、2的6次方和2的7次方,然后依次求和记为a。为了能够与输入的模拟数值上对应还需将a再乘以0.02,此时转换结束,eoc=1。接下来要判断所转换的十进制数是否超出05v的范围,如果超出则aa=1提示转换

30、出现错误,否则aa=0,oe=1数据输出。start=0开始工作等待转换结束,使eoc=1判断数据是否出错oe=1,允许输出aa=1,提示转换出错不工作3.2.3 十进制bcd码转换器1)引脚功能十进制bcd码转换器的模块图如图7所示b q eocstart2 oe 图7 十进制bcd码模块start2:启动信号,低电平胶,当有效时启动十进制bcd码转换工作;eoc:转换结束信号,当转换工作时eoc为低电平,当转换结束时eoc立即变为高电平;oe:允许输出信号,高电平有效,当有效时允许转换后的数据输出;b: 3位十进制数据输入端;q:12位bcd码输出端; 2)真值表start2eocoe功能

31、 0 00开始转换 0 10转换结束 0 11允许输出数据 表33)工作过程 十进制与bcd码的对应转换如表4所示输入的十进制数输出的bcd码000001 000120010 3 0011401005010160110701118100091001 表4通过二十进制转换器我们已经得到了3位的十进制数,当start2=0时,十进制bcd码转换器开始工作,根据查表4我们可以很方便的将每一位十进制数转换为4位的bcd码。从低位到高位,那么3位的十进制数也就转换为了12位的bcd码。例如,十进制数为4.59,通过查表4可以得到,9对应的是1001,5对应的是0101,4对应的是0100。那么最终的确1

32、2位bcd码为010001011001。当转换结束时,eoc立即变为高电平,即eoc=1,当oe=1时使得12位的bcd码允许从输出端输出。 3.2.4 bcd码多路数据选择器通过十进制bcd码转换我们已经得到了12位的bcd码,但12位的数据是无法直接在3个led数码管上显示的,因此我们要用bcd多路数据选择器将12位的bcd 码分成3路信号,每一路4位然后分别接到相应数码管显示电路的输入上,从而完显示工作。 1)功能与模块图 数据选择器(multiplexer,简称mux)又称“多路开关”或“多路调制器”。 它 的功能是在选择输入(又称“地址输入”)信号的作用下,从多个数据输入通道中 择某

33、一通道的数据(数字信息)传输至输出端。数据选择器是一种灵活方便,开 发性很强的组合逻辑电路,在数字系统中应用比较广泛,数据选择器的芯片种类很多,常用的有2选1、4选1、8选1、16选1等,但我们现在所要介绍的是一种12选4的多路数据选择器。模块图如图8所示图8 12选4多路数据选择器 d0d7:为12位bcd码输入端;a1,a0:为地址输入端;dcba: 这4位bcd码输出端;2)真值表a1 a0d c b a 0 0 d3 d2 d1 d0 0 1d7 d6 d5 d4 1 0d11 d10 d9 d8 表5通过a1a0地址的不断变化,从而完成对12位bcd码的分时输出,以实现相应数值在对应

34、位的数码管上的显示。3.2.5 bcd译码显示器 在这里我们需用七段显示器将09的十进制字符通过七段字划亮灭的不同组合来实现七段数码显示器。数码管的种类很多,但大致可分为共阴极数码管和共阳极数码管。共阴极数码管是将各发光二极管阳极连在一起接低电平,阳极分别接译码器输出端,当译码输出某段码为高电平时,相应的发光二极管就导通发光,显示相应的数码,这种显示器可用输出高电平有效的译码器来驱动。而共阳极数码管是将各发光二极管阳极连在一起,接高电平,而阴极分别接译码器输出端,当译码输出某段为低电平时,二极管导通发光,共阳显示器由输出低电平有效的译码器来驱动。在这里我们选用的是共阳极的数码管。与七段显示数码

35、管配合的译码器只能有ag七个输出端和四个输入端下有一个使能端s,控制译码器是否工作,七段译码器的真值表如表6所示十进制数或功能输入输出 sd c b aya yb yc yd ye yf yg字形 0 00 0 0 01 1 1 1 1 1 1 0 1 00 0 0 10 1 1 0 0 0 0 1 2 00 0 1 01 1 0 1 1 0 1 2 3 00 0 1 11 1 1 1 0 0 1 3 4 00 1 0 00 1 1 0 0 1 1 4 5 00 1 0 11 0 1 1 0 1 1 5 6 00 1 1 00 0 1 1 1 1 1 6 7 00 1 1 11 1 1 0 0

36、 0 0 7 8 01 0 0 01 1 1 1 1 1 1 8 01 1 1 1 0 0 0 1 1 1 1 倒f 表6通过查表6我们可以清晰的将3路4位bcd码转换为能够驱动数码管显示的七段码,从而使3位十进制数字分别在3个数码管上显示出来,表明被测量的电压值第4章 控制器与控制电路的设计4.1 控制器的设计 在数字电压表测量工作的进行中,控制器主要是对a/d转换器、二十进制转换器、十进制bcd码转换器的工作边程中起到了控制及协调的作用。使工作转换的过程顺畅有次序,当前一模块有数据输出时,随即启动后一模块开始工作。即当前一模块oe允许输出端由低电平变为高电平时,立即给后一模块一个由高电平变

37、为低电平的启动信号,使其工作。并且控制显示电路当遇到数据转换错误或复位时,完成需要的显示。 1)引脚功能 首先给出控制器的模块图如图9所示启动开关 starteoc0 start0eoc1 start1eoc2 start2 oe1aa oe2r复位开关 图9 控制器的模块图start:开关按钮,低电平有效,当有效时控制器开开始工作;start0:低电平有效,当有效时启动a/d转换器开始工作;start1:低电平有效,当有效时启动二十进制转换器开始工作;start2:低电平有效,当有效时启动十进制bcd码器工作;eoc0:a/d转换器工作时为低电平,当转换结束时立即变为高电平;eoc1:二十进

38、制转换结束信号,当转换结束时立即变为高电平;eoc2:十进制bcd码转换结束信号,当转换结束时立即变为高电平;aa:错误信号,高电平有效,当有效时表示测量过程出错;r:复位信号,低电平有效,当有效时使电路清零;oe1:允许输出信号,高电平有效,当有效时允许二十进制转换后的数据输出;oe2:允许输出信号,高电平有效,有效时允许十进制bcd码转换后的数据输出;2)真值表startstart0eoc0start1eoc1oe1aarstart2eoc2oe2功能 0 0 0 1 0 0 01 1 0 0a/d开始工作 0 0 1 1 0 0 01 1 0 0a/d轮换结束并输出数据 0 1 1 0

39、0 0 01 1 0 0二十进制开始转换0 1 1 0 1 0 01 1 0 0转换结束01 101011100转换结果有误01101101100转换结果无误允许输出01111001000启动十进制bcd码转换器01111001010转换结束01111001011输出结果01111000110显示完复位清零表73)时序图start start0eoc0有效数据数据输出start1eoc1查出有错误oe1start2 eoc2oe2有效数据数据输出控制器上的start开关按钮实际上就是数字电压表的总开关,只有当开关按钮按下时,才能完成下常的测量工作。每测量完一次都要通过按复位按钮,使数据清零,准

40、备下一次测量。4.2 控制电路的设计4.2.1 错误显示与复位清零显示的控制电路1)当二十进制转换的数据超出05v之间时,表示转换结果有误这时我们要求电 路会在led数码管的第二位上显示出倒f的字型。控制电路如图10所示接控制器aa端led数码管显示与门 sd c b a 1接片选端接bcd多路数据选择器或门或门或门或门图10 错误显示控制电路当二十进制转换的结果有误时,随即aa信号由低电平变为高电平传送给控制器,同时控制器将此信号通过非门和与门传送给译码器的使能端。译码显示电路的输入端被强行置数为1111,当使能端接到低电平时随即1111译码为0001111在数码管上显示出倒f的字型。2)每

41、测量完一次压值,我们需要用复位按钮实现数据显示的清零,并在显示电路的第一位数码管上显示0的字型。控制电路如图11所示或门led数码管显示 sd c b a或门或门或门0接bcd码多路选择器与门接复位按钮接片选信号 图11 复位清零显示控制电路当测量完一次时,随即可以按下复位按钮,使控制器上的r信号由高电平变为低电平,同时控制器将此信号传送给第一位的译码显示电路的使能端,此时译码器的输入端dcba已被强行置数为0000,当使能端接低电平时随即将0000译码为0111111,在数码管上显示0字型,表示清零成功4.2.2 控制bcd多路数据选择器地址的控制电路前面我们已经提到a1、a0做为多路数据选

42、择器的地址线直接影响到12位bcd码的选通情况,通过a1、a0由00、01、10的不断变化使得12位的bcd码有次序的分时输出,传送给译码显示电路,控制电路如图12所示 rdcp a0d0 /a0 rdcp a0d0 /a0bcd多路数据选择器与门clkroe图12 控制多路数据选择器地址的控制电路 在这里我们所使用的是上升沿动作的2位二进制异步加法器。利用clk时钟信号、r复位信号和oe十进制bcd码转换器的允许输出端通过与门作为第一级d触发器的cp脉冲。12位bcd码允许输出时,oe=1,r复位信号无效,r=1,加上clk时钟信号通过与门,实际上就是将clk作为二进制异步加法器的cp脉冲,

43、利用clk的上升沿来驱动加法器的工作。下面就来介绍一下2位二进制异步加法器的工作原理。初始下,a1a0=00,/a0=1,/a1=1,d0=/a0,d1=/a1,当第一个上升沿来到时,a0=d0=/a0=1,cp1=/a0=1,使得第二级d触发器在没有上升沿脉冲的情况下无法工作,a1仍为0,即a1a0=01,/a0=0,cp1=/a0=0,/a1=1。当第二个上升沿来到时,a0=0,cp1=/a0=1,cp1由01上升沿来到使得第二级触发器工作,a1=d1=/a1=1,即a1a0=10,同理继续工作再加1,a1a0=11,但在我们这里不需要考虑a1a0=11的情况。4.2.3 3位有效数字在译

44、码显示电路顺序显示的控制电路在设计中我们要求从多路数据选择器中得到的3路4位bcd码,要在3位led数码管上顺序显示,即从低位到高位依次显示,而且要避免数据显示错误,最后3位有效数字都能准确无误的显示出来,控制电路如图13所示 或门或非门a1a0或门最低位的s第二位的s或门最高位的s 图13 译码显示控制电路设计的思想是用多路数据选择器的地址线a1a0在选通4位bcd码的同时选通一路译码显示电路,利用译码器的使能端为低电平时才开始译码这一特点,将a1a0通过一系列不同的变化接到译码器的使能端上,使得当某一位译码器工作时,其它两位均不工作。当a1a0=00时,最低位译码器的使能端s=a1+a0;

45、当a1a0=01时,第2位译码器的使能端s=(/(a1+a0)+a1;当a1a0=10时,最高位译码器的使能端s=(/(a1+a0)+a0。第5章 总结复位清零显示通过对各部分无器件、控制器和控制电路从它的功能以及设计思想的介绍,使得对数字电压表的设计有了一个全方面的定位。总体来说,设计思想就是将输入的模拟量,通过a/d转换器转化为8位二进制的数字量,再通过二十进制转换器转化为3位十进制的数字量,再在此基础上通过十进制bcd码转换为12位的bcd码,将12位的bcd码通过bcd多路数据选择器分3路在3位译码显示电路上显示,这就是数字电压表工作的全过程。用流程图复位清零显示来表示如图14所示控制

46、器启动信号模拟量输入转换结束a/d转换器有误显示启动信号转换结束检查有误二十进制转换器如果无错允许输出译码显示电路启动信号十进制bcd码转换器具转换结束允许输出多路数据选择器 图14 数字电压表工作图电路的硬件设施设计完后,这时就需要利用vhdl语言通过对各组成部分无器件进秆编程,然后在max+plusii软件中仿真出我们所需要的模块,因此程序的设计与调试在设计中起到了至关重要的作用,它是验证我们设计成功与否的有得武器。程序设计的前提是要求对和组成部份所要实现的功能与执行的工作有一个清楚的认识,因为只有这样才能防止编程中出现大的错误。程序设计完,就要进入调试阶段,我们需要对程序中的每一个语句进行检查,包括一个输入、输出变量的定义,一个语句近几年执行的过程等等,所有的一切环节都要检查调试,直至一个程序顺利通过。我们可以仿真生成一个个所需要的模块,在max+plusii软件中经过连线组合生成设计的原理图,再对设计原理图进行图形编译直至通过。 第6章 结束语6.1 结论 本次毕业设计的基于cpld的数字电压表是根据当前数字系统的设计下朝着速度快、容量大、体积小、重量轻的方向发展为前提所进行的,是能够与现代潮流同步的一项设计。希望我的本次设计能够被消费者所认可,以适应当今品

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论