EDA课程设计八位数码管扫描显示电路的设计 2解读.docx

上传人:b****7 文档编号:25311508 上传时间:2023-06-07 格式:DOCX 页数:11 大小:637.74KB
下载 相关 举报
EDA课程设计八位数码管扫描显示电路的设计 2解读.docx_第1页
第1页 / 共11页
EDA课程设计八位数码管扫描显示电路的设计 2解读.docx_第2页
第2页 / 共11页
EDA课程设计八位数码管扫描显示电路的设计 2解读.docx_第3页
第3页 / 共11页
EDA课程设计八位数码管扫描显示电路的设计 2解读.docx_第4页
第4页 / 共11页
EDA课程设计八位数码管扫描显示电路的设计 2解读.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

EDA课程设计八位数码管扫描显示电路的设计 2解读.docx

《EDA课程设计八位数码管扫描显示电路的设计 2解读.docx》由会员分享,可在线阅读,更多相关《EDA课程设计八位数码管扫描显示电路的设计 2解读.docx(11页珍藏版)》请在冰豆网上搜索。

EDA课程设计八位数码管扫描显示电路的设计 2解读.docx

EDA课程设计八位数码管扫描显示电路的设计2解读

 

EDA技术应用期末论文

题目:

八位数码管动态显示

 

姓名:

班级:

学号:

1.系统总体方案设计................................................1

 

2.LED的工作原理...................................................2

2.1LED工作原理....................................................3

2.2LED动态扫描显示原理............................................3

3.系统设计.........................................................4

3.1硬件电路设计....................................................9

3.2VHDL代码设计...................................................9

 

4.运行调试......................................................,,7

4.1时序仿真.......................................................7

5总结..............................................,,,,,,,,,,,,,,,9

6.参考文献.........................................................10

 

1.系统总体方案设计

设计流程图如下:

首先,我们要对所要设计的八位数码管静态扫描显示电路充分理解,同时在了解了所给的硬件器材的基础上需进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;其次要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系;然后要进行“目标器件的布线∕适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系;最后,目标器件的编程下载——将前面的软件设计经过编程变成具体的设计系统,同时在设计过程中要进行有关“仿真”——模拟有关设计结果,看是否与设计构想相符。

系统结构框图如下:

硬件资源

元件引脚

EP3C引脚序号

电路使用说明

LED

数码显示

A

133

该部分电路为固定电路。

使用LED数码显示时请按照器件引脚分配表进行引脚分配后再下载到芯片中。

B

135

C

136

D

137

E

138

F

141

G

142

Dp

128

74LS138

S1

125

S2

126

S3

127

2.LED的工作原理

 

2.1LED工作原理

LED为分段式半导体显示器,通常称为七段发光二极管显示器。

下图为七段发光二极管显示器共阴极和共阳极的电路图。

对共阴极显示器的公共端应接地,给a-g输入相应高电平,对应字段的发光二极管显示十进制数;对共阳极的公共端应接+5V电源,给a-g输入端相应低电平,对应字段的发光二极管也显示十进制数。

 

 

2.2LED动态扫描显示原理

LED有段码和位码之分,所谓段码就是让LED显示出“8.”的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。

位码也就是LED的显示使能端,对于共阳级的LED而言,高电平使能。

要让8个LED同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。

虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。

多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。

 

3系统设计

3.1硬件电路设计

3.2VHDL程序设计

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_signed.all;

entityscan_seg8is

port(clk3,clk5:

instd_logic;

rst:

instd_logic;

seg_da:

outstd_logic_vector(7downto0);

seg_sel:

outstd_logic_vector(2downto0)

);

endscan_seg8;

architectureadoofscan_seg8is

signalseg_buf1,seg_buf2,seg_buf3,seg_buf4,seg_buf0:

std_logic_vector(3downto0);

signalseg_buf5,seg_buf6,seg_buf7,seg_buf8:

std_logic_vector(3downto0);

signalseg_cnt:

std_logic_vector(2downto0);

signalseg_temp:

std_logic_vector(3downto0);

signalclk:

std_logic;

begin

process(clk5)

begin

ifclk5'eventandclk5='1'then

clk<=notclk;

endif;

endprocess;

process(clk5,rst)

begin

ifclk5'eventandclk5='1'then

ifclk='1'then

seg_buf1<="0010";

seg_buf2<="0010";

seg_buf3<="1000";

seg_buf4<="0010";

seg_buf5<="0000";

seg_buf6<="0001";

seg_buf7<="0000";

seg_buf8<="0010";

else

seg_buf1<="1111";

seg_buf2<="1111";

seg_buf3<="1111";

seg_buf4<="1111";

seg_buf5<="1111";

seg_buf6<="1000";

seg_buf7<="0001";

seg_buf8<="0000";

endif;

endif;

endprocess;

process(clk3,rst)

begin

ifclk3'eventandclk3='1'then

ifrst='1'then

seg_cnt<="000";

else

seg_cnt<=seg_cnt+1;

endif;

endif;

endprocess;

seg_sel<=seg_cnt;

process(seg_cnt,seg_buf1,seg_buf2,seg_buf3,seg_buf4,seg_buf5,seg_buf6,seg_buf7,seg_buf8)

begin

caseseg_cntis

wheno"0"=>seg_temp<=seg_buf1;

wheno"1"=>seg_temp<=seg_buf2;

wheno"2"=>seg_temp<=seg_buf3;

wheno"3"=>seg_temp<=seg_buf4;

wheno"4"=>seg_temp<=seg_buf5;

wheno"5"=>seg_temp<=seg_buf6;

wheno"6"=>seg_temp<=seg_buf7;

wheno"7"=>seg_temp<=seg_buf8;

whenothers=>seg_temp<="XXXX";

endcase;

endprocess;

process(seg_temp)

begin

caseseg_tempis

when"0000"=>seg_da<="00111111";

when"0001"=>seg_da<="00000110";

when"0010"=>seg_da<="01011011";

when"0011"=>seg_da<="01001111";

when"0100"=>seg_da<="01100110";

when"0101"=>seg_da<="01101101";

when"0110"=>seg_da<="01111101";

when"0111"=>seg_da<="00000111";

when"1000"=>seg_da<="01111111";

when"1001"=>seg_da<="01101111";

when"1010"=>seg_da<="01110111";

when"1011"=>seg_da<="01111100";

when"1100"=>seg_da<="00111001";

when"1101"=>seg_da<="01011110";

when"1110"=>seg_da<="01111001";

when"1111"=>seg_da<="00000000";

whenothers=>null;

endcase;

endprocess;

endarchitectureado;

4运行调试

4.1时序仿真

(1)建立波形文件。

选择File项及其New,再选择New窗中的WaveformEditer..项,打开波形编辑窗。

(2)输入信号节点。

在波形编辑窗的上方选择Node项,在下拉菜单中选择输入信号,在弹出的窗口中首先点击List键,这时左窗口将列出设计所以信号节点。

由于设计者有时只需要观察其中部分信号的波形,因此要利用中间的“=>”键将需要观察的信号选到右栏中,然后点击OK键即可将测试信号。

(3)设置波形参量。

波形编辑窗中已经调入了所有节点信号,在为编辑窗输出信号测试前,首先设定相关的仿真参数。

(4)设定仿真时间宽度。

选择File项及其Endtime选项,在Endtime选择窗中选择适当的仿真时间域,以便有足够长的观察时间。

(5)波形文件存盘。

选择File项及其Saveas选项,按OK键即可。

(6)运行仿真器,观察分析波形。

选中“processing”菜单下的“startsiulation”,直到出现“simulationwassuccessful”对话框。

把所有的参数都设定好了之后,就可以观察相关的波形了。

5总结

通过此次实验我们进一步掌握QUARTUSII的的使用方法以及使用的各种规章流程。

同时,通过此次实验也加强了我对于VHDL这门语言的更深刻的认识,让我从感性上感知到了VHDL语言的独特之处。

以前在课堂上总是听老说VHDL语言与其他语言的不同就是VHDL是面向硬件的语言,它是会占硬件电路大小的,之前我还是没能体会到这句话的含义。

当通过这次试验后,我终于体会到了这句话的含义。

VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。

通过这次实验不仅让我专业知识得到了提高,同时也让我自身的一些不良习惯,像马虎,没有耐心等得到改善。

在设计时我们共同讨论,互相学习,互相借鉴,让我们同学之间,师生之间关系变得更融洽!

 

6.参考文献

【1】郑燕,赫建国.基于VHDL与QuartusII软件的可编程逻辑器件应用于开发.北京:

国防工业出版社,2011.

【2】Altera.PinInformationfortheCycloneIIIEP3C10Device.Sanjose:

AlteraCorp,2008.

【3】潘松,黄继业.EDA技术实用教程——VHDL版.北京:

科学出版社,2010.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1