实验2基于EDA动态显示电路设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

44河南机电高等专科学校实验报告系部名称:电子通信工程系课程名称:可编程逻辑器件原理与应用实验项目:实验1:计数器设计班级:医电131学号:130411116姓名:徐长伟45实验1:计数器设计一、实验目的(1)、掌握13进制计数器的工作原理及设计方法(2)、掌握用两位数码管显示高低位的方法二、实验要求(1)、掌握13进制计数器的VHDL描述方法(2)、掌握编码器的VHDL描述语言三、实验原理用两个数码管,一个高位(十位),一个低位(个位),显示13进制计数器的技术方式。首先,设计好计数器的程序,然后,设计相应的编码程序对其进行编码。之后两个程序生成元件符号,相互连接起来,形成一个顶层原理图文件,对其进行编译、仿真分析等。这个顶层原理图文件就是我们这次实验所需的设计。四、实验步骤1、13进制计数器的程序设计程序1如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount13isport(en1,en2,res,clk:instd_logic;ca:outstd_logic;a,b:outstd_logic_vector(3downto0));endcount13;architecturertlofcount13issignalaout,bout:std_logic_vector(3downto0);signalcout,cl:std_logic;begincl=clkwhenen2='0'elseen1;process(en1,en2,cl,res)beginif(res='0')thenaout=0000;bout=0000;cout='0';—复位信号为低电平,复位elsif(cl'eventandcl='1')then46if(bout=1)thenif(aout2)thenaout=0000;bout=0000;cout='1';—计数器计到12时,进位输出高电位,重新开始计数elseaout=aout+1;endif;elseif(aout=9)thenaout=0000;bout=bout+1;—个位计到9时,十位进位elseaout=aout+1;cout='0';endif;endif;endif;endprocess;a=aout;b=bout;ca=cout;endrtl;2、编码器的程序设计程序2如下:libraryieee;useieee.std_logic_1164.all;entitydispisport(d:instd_logic_vector(3downto0);q:outstd_logic_vector(6downto0));enddisp;architecturertlofdispisbeginprocess(d)begincasediswhen0000=q=0111111;47when0001=q=0000110;when0010=q=1011011;when0011=q=1001111;when0100=q=1100110;when0101=q=1101101;when0110=q=1111101;when0111=q=0100111;when1000=q=1111111;whenothers=q=1101111;endcase;endprocess;endrtl;3、将程序1、2分别生成元件符号。如下:图1—元件符号1图2—元件符号2484、建立一个顶层原理图文件。(1)、顶层原理图文件如下:图3—连接好的顶层原理图文件(2)、对顶层文件编译:图4—编译成功后生成的报告49(3)、对顶层文件进行仿真:图5—编辑好的激励波形图6—仿真成功后生成的报告(4)、仿真分析情况1:res为低电平时,复位图7—情况1的波形分析情况2:—个位计到9时,十位进位50图8—情况2的波形分析情况3:计数器计到12时,进位输出高电位,重新开始计数图9—情况3的波形分析设计体会经过这次课程设计,我学到了很多东西,其中包括知识方面的,还有其他方面的。首先让我认识到,做好一件事,做成功一件事是不容易的,但是你只要坚持不懈的努力,不断的发挥自己的智慧去思索去探究,你会欣慰的发现自己正向着成功一步步迈进。这次课程设计使我对汇编语言程序设计这门课程有了进一步的理解和认识,使我学到了许多编程语言以及算法设计方面的知识,同时也锻炼了我的耐心和意志,增长了我的实践能力。这次课程设计我所选的题目是使用汇编语言设计一个具有加减乘除基本运算功能的简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。通过使用汇编语言设计实现简单计算器,我进一步了解和掌握了对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的,我通过对具有加减乘除基本功能的计算器的设计实现,学会了使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。在汇编语言程序设计中,我通过对各种指令的合理使用,熟悉并加深了对各种指令的用法,同时也学会使用汇编语言设计各个功能模块。当我实现各个程序模块后,学会了通过程序的调用最终实现一个具有基本计算功能的简单计算器。在本次课程设中,我遇到了很多问题。例如,在计完成具有输入功能的模块input模块时我就遇到了困难。通过一番努力后我发现利用int21H中的01号功能调用可以较好的实现输入功能,原因是Int21H的01号功能调用可以直接接收键入的字符,当有键按下时,首先检查是否是ctrl+break,若是,则执行退出命令;否则将键值送入AL寄存器并回显。通过这次汇编语言程序课程设计,我学到了许多东西,同时也发现了一些不足之处,在以后的学习中我会逐步弥补这些不足。总而言之,此次课程设计使我受益匪浅。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功