1616点阵显示设计之欧阳理创编Word格式.docx
- 文档编号:16765302
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:20
- 大小:844.85KB
1616点阵显示设计之欧阳理创编Word格式.docx
《1616点阵显示设计之欧阳理创编Word格式.docx》由会员分享,可在线阅读,更多相关《1616点阵显示设计之欧阳理创编Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
一、任务及要求
CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。
并最终完成电路的编程调试。
具体要求如下:
用一个16×
16的点阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。
二、进度安排
第一周:
周一:
集中布置课程设计相关事宜。
周二~周三:
子模块程序设计,顶层电路程序设计。
周四~周日:
子模块,顶层电路仿真。
第二周:
周一~周三:
编程下载,系统调试。
周四~周五:
设计报告撰写。
周五进行答辩和设计结果检查。
三、参考资料
1.张原编著,可编程逻辑器件设计及应用,机械工业出版社。
2.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。
3.刘洪喜,陆颖编著.VHDL电路设计实用教程清华大学出版社。
1.总体设计思路与功能设计1
1.1.基本原理1
1.2.总体设计框图2
1.3.顶层文件设计2
2.单元电路设计3
2.1列循环扫描模块3
2.2字符样式设计模块3
2.3循环扫描及延时模块4
2.4整个程序5
3.系统调试与仿真9
3.1开发环境介绍9
3.2.1创建工程9
3.2.2编译前设计9
3.2.3全程编译11
3.2.4时序仿真12
4.下载调试13
5.心得体会14
6.参考文献14
一、总体设计思路
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
Lie<
="
1111"
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;
Endif;
2.3循环扫描及期间的延时环节
为使汉字不断地循环显示,并且使每个汉字之间有停顿,就需要在中间加一定的延时和循环环节。
在这一环节中,可以通过修改其数值来控制每个字母的显示时间,其程序如下:
process(clk)
variableint:
integerrange0to10000;
ifclk’eventandclk=’1’then
ifint<
10000then
int:
=int+1;
else
int:
=0;
ifnext1=”11”then
next1<
=”00”;
=next1+’1’;
endif;
endif;
endprocess;
2.4总程序
libraryieee;
entityyz_okis
port(enable,clk:
sel:
outstd_logic_vector(3downto0);
endyz_ok;
architecturecountofyz_okis
signallie:
signalnext1:
std_logic_vector(1downto0);
a1:
process(clk,enable)
a2:
process(enable,clk)
Casenext1is
Caselieis
Endcase;
a3:
ifclk'
int:
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全程编译
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1616 点阵 显示 设计 欧阳 创编