1616点阵显示设计Word下载.docx

上传人:b****6 文档编号:17197313 上传时间:2022-11-28 格式:DOCX 页数:20 大小:857.82KB
下载 相关 举报
1616点阵显示设计Word下载.docx_第1页
第1页 / 共20页
1616点阵显示设计Word下载.docx_第2页
第2页 / 共20页
1616点阵显示设计Word下载.docx_第3页
第3页 / 共20页
1616点阵显示设计Word下载.docx_第4页
第4页 / 共20页
1616点阵显示设计Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

1616点阵显示设计Word下载.docx

《1616点阵显示设计Word下载.docx》由会员分享,可在线阅读,更多相关《1616点阵显示设计Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

1616点阵显示设计Word下载.docx

一、任务及要求

CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。

并最终完成电路的编程调试。

具体要求如下:

用一个16×

16的点阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。

二、进度安排

第一周:

周一:

集中布置课程设计相关事宜。

周二~周三:

子模块程序设计,顶层电路程序设计。

周四~周日:

子模块,顶层电路仿真。

第二周:

周一~周三:

编程下载,系统调试。

周四~周五:

设计报告撰写。

周五进行答辩和设计结果检查。

三、参考资料

1.张原编著,可编程逻辑器件设计及应用,机械工业出版社。

2.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。

3.刘洪喜,陆颖编著.VHDL电路设计实用教程清华大学出版社。

1.3.顶层文件设计2

一、总体设计思路

1.1基本原理

LED 

就是Light 

Emitting 

Diode(发光二极管)的缩写。

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。

PN结加反向电压,少数载流子难以注入,故不发光。

这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。

LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。

16扫描LED点阵的工作原理同8位扫描数码管类似。

它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。

通过时钟的每列扫描显示完整汉字。

点阵LED一般采用扫描式显示,实际运用分为三种方式:

(1)点扫描

(2)行扫描

(3)列扫描

若使用第一种方式,其扫描频率必须大于16×

64=1024Hz,周期小于1ms即可。

若使用第二和第三种方式,则频率必须大于16×

8=128Hz,周期小于7.8ms即可符合视觉暂留要求。

此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。

实验箱上为我们提供了16*16的点阵显示模块。

通过观察,我们可以看到,此点阵显示屏即为16行、16列的LED显示灯。

那么控制这些灯的亮暗分布,就能达到字符显示的目的。

首先输出预定义“吕、苏、田、口”四个汉字,显示屏上的灯的亮暗情况具体应如何。

如第一个汉字吕:

0000000000000000

0000000001111100

0011111101000100

0010000101000100

0000000001000100

如果高电平‘1’时表示灯是亮的,低电平‘0’时灯是暗的,这样上面的灯呈现在我们眼前的就是吕字了。

依次类推,我们就可以设计出所有要显示的汉字了。

这样这些汉字就好象是被我们当作了固定模型了。

但如何点亮这些灯呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的汉字模型的高电平相匹配时,灯就相应的点亮。

由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完16列就会显示在我们眼中一个汉字了。

但要所有的汉字就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。

此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。

1.2设计框图

图1.2总体设计框图

1.3顶层文件设计

图1.3顶层文件设计

二、单元电路设计 

2.1列循环扫描

通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连续的感觉。

因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续,输入一个时钟信号,输出为4位二进制(用sel表示)列选信号,用来选中列,进行扫描,扫描程序如下:

Libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

Entitydz_xsis

Port(enable,clk:

instd_logic;

--端口定义输入信号

Sel:

outstd_logic_vector(3downto0));

--端口定义输出信号

Enddz_xs;

Architecturecountofdz_xsis

Signallie:

std_logic_vector(3downto0);

Begin

Process(clk,enable)--脉冲、使能信号

begin

Ifclk'

eventandclk='

1'

then

Ifenable='

then

Iflie>

"

0000"

Lie<

=lie-"

0001"

;

Else

="

1111"

Endif;

Endif;

Sel<

=lie;

Endprocess;

2.2字符样式设计 

本环节是建立一个数据库,使之能在扫描的同时读取所需要的信息,从而完成汉字的显示。

本次设计“吕、苏、田、口”汉字样式设计程序如下:

h0,h8:

outstd_logic_vector(7downto0));

--端口定义输出信号(h0-列数据输出,h8-代表行数据输出)

--信号标志

Signalpast1:

std_logic_vector(1downto0);

Process(enable,clk)--脉冲、使能信号

Caselieis

When"

00"

=>

Caselieis--“吕”字设计

0011"

h0<

00000000"

h8<

01111110"

0100"

01000010"

0101"

0110"

0111"

1000"

1001"

1010"

1011"

1100"

1101"

Whenothers=>

Endcase;

01"

Caselieis--“苏”字设计

00100000"

10001100"

01110000"

10000000"

00101000"

00100011"

11111100"

10000110"

11111110"

00001100"

10"

Caselieis--“田”字设计

When"

00011111"

11110000"

00010001"

00010000"

11"

Caselieis--“口”字设计

11100000"

Endcase;

2.3循环扫描及期间的延时环节

为使汉字不断地循环显示,并且使每个汉字之间有停顿,就需要在中间加一定的延时和循环环节。

在这一环节中,可以通过修改其数值来控制每个字母的显示时间,其程序如下:

process(clk)

variableint:

integerrange0to10000;

ifclk’eventandclk=’1’then

ifint<

10000then

int:

=int+1;

else

int:

=0;

ifnext1=”11”then

next1<

=”00”;

else

=next1+’1’;

endif;

endif;

endprocess;

2.4总程序

libraryieee;

entityyz_okis

port(enable,clk:

sel:

outstd_logic_vector(3downto0);

h0,h8:

endyz_ok;

architecturecountofyz_okis

signallie:

signalnext1:

std_logic_vector(1downto0);

a1:

process(clk,enable)

Endif;

a2:

process(enable,clk)

Casenext1is

Caselieis

a3:

ifclk'

ifnext1="

=next1+'

endcount;

第三章系统调试与仿真

3.1开发环境介绍

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、Veril-ogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;

支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

3.2调试与仿真

3.2.1创建工程

在QuartusII中新建一个VHDLFile文件,将VHDL代码输入这个文件,并保存到工作目录,名为yz_ok.vhd。

利用newprejectwizard工具创建一个工程,工程名为yz_ok,顶层文件实体名为 

yz_ok,并将上面创建的yz_ok.vhd文件加入到工程中。

3.2.2编译前设置

(1)选择目标芯片。

用assignmemts-settings命令,弹出settings对话框,选择目标芯片为EP1C3T144C8。

图3-1选择目标器件

(2)选择工作方式,编程方式,及闲置引脚状态

单击上图中的device&

pinoptions按钮,弹出device&

pinoptions窗口。

在General项中选中auto-restartconfigurationaftererror,使对FPGA的配置失败后能自动重新配置,并加入JTAG用户编码。

图3-2选择配置器件工作方式

在configuration项中,其下方的Generatecompressedbitstreams处打勾,这样就能产生用于EPCS的POF压缩配置文件。

在Configuration选项页,选择配置器件为EPCS1,其配置模式选择为activeserial。

图3-3选择编程方式

在Unusedpins项,将目标器件闲置引脚状态设置高阻态,即选择Asinput,tri-stated。

图3-4设置闲置引脚状态

3.2.3全程编译

设置好前面的内容之后,就可以进行编译了。

选择Processing菜单中startcompilation,在窗口的下方processing栏中显示编译信息。

图3-5全程编译成功完成

完成后在工程管理窗口左是角显示了工程yz_ok的层次结构和其中结构模块耗用的逻辑宏单元数。

此栏的右边是编译处理流程,包括数据网表建立、逻辑综合、适配、配

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

当前位置:首页 > 初中教育 > 理化生

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

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