




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学能力拓展训练课程设计说明书目录摘要11原理分析22设计思路33设计程序43.1二-十进制转换43.2对十进制数分位63.3分别输出十进制数73.4输出到数码管93.5显示位数114整体设计电路图与仿真结果分析124.1整体设计电路图124.2仿真结果124.3仿真结果分析135小结与体会13参考文献15摘要BCD码亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的09这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。本文就是在quartus软件环境下利用VHDL语言将输入的八位二进制转换为BCD十进制数并且在数码管中显示出来。关键词:二-十进制转换器,BCD码,quartus,VHDL。2进制-10进制(BCD码)数码转换器设计1原理分析 BCD 码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制 度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。此处要介绍的是八位二进制转BCD码的硬件实现,采用左移加3的算法,具体描述如下:(1)、左移要转换的二进制码1位(2)、左移之后,BCD码分别置于百位、十位、个位(3)、如果移位后所在的BCD码列大于或等于5,则对该值加3(4)、继续左移的过程直至全部移位完成举例:将八位二进制码11111111转换成BCD码,其真值表如表1-1所示表1-1八位二进制码11111111转换成BCD码真值表动作 十进制数二进制数百位十位个位开始1 1 1 11 1 1 1转换111 1 1 11 1 1转换21 11 1 1 11 1转换31 1 11 1 1 11加31 0 1 01 1 1 11转换410 1 0 11 1 1 1加311 0 0 01 1 1 1转换51 10 0 0 11 1 1转换61 1 00 0 1 11 1加31 0 0 10 0 1 11 1转换710 0 1 00 1 1 11加310 0 1 01 0 1 01转换81 00 1 0 10 1 0 1BCD2552设计思路 本次设计并没有用到左移的原理进行操作,直接对输出芯片的输出进行定义,虽然较为繁琐,但是原理却简单,所以才用此种方法,具体原理如下:2进制-10进制(BCD码)的转换可以通过一个芯片实现,即输入的八位二进制码通过编程输出十进制码,八位二进制能表示的最大的数为“255”,即输出的十进制为三位数,此时输出的BCD码就要有12位,每四位代表一个数,此时可再利用一个芯片把输出的12位数重新分配到三个输出管脚中,每个管脚代表一位数,时钟信号每输变一次,输出数字的位也会变一次,即个、十、百位分别输出,同时芯片的selout输出端输出时钟信号的数字到下一个芯片的接收端,通过编程实现000对应110,001对应101,010对应011,即输出0的位置可以表示数码管中所显示数字的位,然后再通过芯片输出到七段数码管进行显示,具体流程图如图2-1所示:开始输入二进制码二进制码到十进制码的转换对输出的十进制进行分位输出到发光二极管显示结束图2-1 设计总流程图3设计程序3.1二-十进制转换 原理图如图3-1所示:图3-1二进制到十进制转换原理图具体程序语言如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity bin2bcd is port(din:in std_logic_vector(7 downto 0); bcd:out std_logic_vector(11 downto 0) );end bin2bcd;architecture fun of bin2bcd is beginprocess (din) is begincase din is when00000000=bcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdbcdy0=0000;y1=0000;y2y0=0001;y1=0000;y2y0=0010;y1=0000;y2y0=0011;y1=0000;y2y0=0100;y1=0000;y2y0=0101;y1=0000;y2y0=0110;y1=0000;y2y0=0111;y1=0000;y2y0=1000;y1=0000;y2y0=1001;y1=0000;y2y0=0110;y1=0100;y2y0=0111;y1=0100;y2y0=1000;y1=0100;y2y0=1001;y1=0100;y2y0=0000;y1=0101;y2y0=0001;y1=0101;y2y0=0010;y1=0101;y2y0=0011;y1=0101;y2y0=0100;y1=0101;y2y0=0101;y1=0101;y2y0=0000;y1=0000;y2=0000; 以上程序都为把输出的BCD码的个、十、百位分别存入y0、y1、y2中。 end case; end process; end architecture fun 3.3分别输出十进制数 原理图如图3-3所示:图3-3对三位分位输出原理图具体程序语言如下:library ieee;use ieee.std_logic_1164.all; use ieee std_logic_unsigned.all; use ieee std_logic_arith.all; entity seltime is port( clk2: std_logic; y0,y1,y2:IN std_logic _vector(3 downto 0); daout:out std_logic _ ector(3 downto 0); sel: out std_logic _ vector(2 downto 0); end; architecture fun seltime is signal count: std_logic _ vector(2 downto 0); begin sel=010)then count=000; else countdaoutdaoutdaoutdaout=0000; end case end process end fun;3.4输出到数码管原理图如图3-4所示:图3-4输出到二极管原理图具体程序语言如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity deled is port(num:IN std_logic_vector(3 downto 0); A:OUT std_logic; B:OUT std_logic; C:OUT std_logic; D:OUT std_logic; E:OUT std_logic; F:OUT std_logic; G:OUT std_logic; DP:OUT std_logic ); END DELED; ARCHITECTURE fun OF DELED IS signal led:std_logic_vector(6 downto 0); BEGIN A=led(6); B=led(5); C=led(4); D=led(3); E=led(2); F=led(1); G=led(0); DP=0; led=1111110 when num=0000else 0110000 when num=0001else 1101101 when num=0010else 1111001 when num=0011else 0110011 when num=0100else 1011011 when num=0101else 1011111 when num=0101else 1110000 when num=0111else 1111111 when num=1000else 1111011 when num=1001else 1110111 when num=1010else 0011111 when num=1011else 1001110 when num=1100else 0111101 when num=1101else 1001111 when num=1110else 1000111 when num=1111;把每一位输出用二极管显示 END fun;3.5显示位数原理图如图3-5所示:图3-5显示位数原理图具体程序语言如下: LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY decode3_8 IS PORT(SEL:IN std_logic_vector(2 downto 0); Q :OUT std_logic_vector(7 downto 0) ); END decode3_8; ARCHITECTURE a OF decode3_8 IS BEGIN Q=11111110when sel=0 else 11111101when sel=1 else 11111011when sel=2 else 11111111; END a;整个设计完成。4整体设计电路图与仿真结果分析4.1整体设计电路图在quartus环境下把以上各个环节连成一个完整的电路,并且进行仿真试验,整个电路的电路原理图如图4-1所示:图4-1 电路原理图4.2仿真结果电路经编译后没问题然后进行仿真,在“Name”标签区内双击鼠标左键,弹出添加节点的对话框,把要显示的仿真的节点添加到标签区内仿真结果如图4-2所示:图4-2仿真结果图4.3仿真结果分析 对于仿真出来的波形,前七位为输出的十进制数,当输入二进制数时这个输出口都能输出正确的十进制数,中间八位是输入的二进制数,最后八位是正在显示的数的位,在25.5ns时,输入为00000010,即十进制的2,此时个位应该输出2,用七段数码管表示即是1101101,输出完全正确,由此可见,仿真结果正确,整个电路完成。5小结与体会经过一个星期的努力终于把整个课程设计给全部完成了,途中经历了各种艰辛,也出现了各种错误,在自己的努力和同学的帮助下也一一克服,更加明白了一个道理,那就是要想做好一件事情,必须真正的付出才行。本次课程设计主要用到了quartus这个软件,以前基本上没有接触过这个软件,所以刚开始用的时候发现简直就是一个全新的东西,后来查阅了各种参考书,在网上也是查阅了各种资料然后才对quartus有了初步的认识,但是用起来还是手生的很,但是我知道这也没办法,其实也是对我自己接受新事物的一种锻炼,当我不停的使用这个软件时,才越来越发现这个软件的强大之处,不仅仅能通过编程实现各种功能,还有各种芯片可供仿真时使用,对一些芯片进行编程就可以实现其功能,然后进行仿真,就可以看到实际的效果,如果不行可以进行调试,然后再仿真直到成功为止,这样变可以节省成本,对实际的设计制作起着参考作用,如果实际制作东西的时候发现有错误整个电路就都浪费了,这样会对资源造成大量的浪费,而有了quartus这个软件就可以避免这个问题,把一些实验性的东西在电脑端实现,直到实验成功才去实际操作,节约成本的同时也节约了时间,总得来说,quartus对我们电路的实际设计和生产提供了很大的帮助,以后我要尽量多利用这个软件,争取熟练掌握它,为以后的工作提供便利。刚拿到本次课程设计的题目时,感觉应该挺简单的,210进制的转化应该用一些芯片就可以解决了,但是当我真正的深入进去做的时候发现还是有很大的问题的,在quartus环境下一些芯片并没有那么好实现,只能每个过程每个过程的进行编程,在此又遇到另一个问题那就是在quartus环境下只有两种语言可以使用,即verilog和VHDL,但是这两种语言对我来说也是全新的,以前从来没有用到过的语言,所以又得从新学起,又是各种资料满天飞,经过一段时间之后也算终于初步了解了这门语言,虽然编程起来还是会有困难,但是总也算磕磕绊绊的编了出来,当我把所有的程序都编完的时候心里非常高兴,以为终于可以告一段落了,但是后来编译的时候发现还是有很多错误,然后又经历了漫长而且痛苦的改程序的过程,在不知道改了多少次之后程序终于算是改正确了,然后编译完成,程序完全正确,心里的石头终于算是落下来了,当时的心情真是相当舒畅,说明经过自己的努力后完成的事情还是很值得骄傲的。本次课程设计过程中也是遇到了各种各样的困难,编程时遇到困难,仿真时遇到困难,也出现了各种各样的错误,这些困难靠自己解决实在是很有难度,所以我就不停的查资料问同学,班里也有几个对这个软件比较熟悉的同学,在他们的帮助下困难都给解决了,在此,也感谢帮助过我的同学,我也深刻的理解到同学之间互相帮助的重要性,团队合作的重要性。在课程设计过程中,很多次都想着放弃,直接在网上找个抄得了,但是最后都没有让自己放纵,事实证明最终也作出来了,这让我对以后人生的路也更加有信心了,让我明白了没有什么事
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务流程管理暂行办法
- 法律真空问题-洞察及研究
- 救助政策公平性研究-洞察及研究
- 可爱的小蝌蚪250字9篇
- 陶醉落叶500字15篇范文
- 个体商户加盟连锁合作合同
- 生态旅游对自然保护的意义研究
- 2025年功能性母料合作协议书
- 农业互助土地合同
- 淄川中学考试题目及答案
- 全国职工数字化应用技术技能大赛理论练习试题附答案(二)
- 中建盘扣式落地卸料平台施工方案
- 小学劳动教育课程安排表
- 管理学(第二版)邢以群PPT全套课件
- 外研版英语九年级上册教学计划
- 跨境电商理论与实务PPT完整全套教学课件
- C语言开发基础教程(Dev-C++)(第2版)PPT完整全套教学课件
- 卡通开学季收心班会幼儿开学第一课小学一二三年级开学第一课PPT通用模板课件开学主题班会
- 玻璃熔化工艺公开课课件
- 核电质量保证介绍课件
- 机床数控技术PPT完整全套教学课件
评论
0/150
提交评论