课程设计1616点阵显示_第1页
课程设计1616点阵显示_第2页
课程设计1616点阵显示_第3页
课程设计1616点阵显示_第4页
课程设计1616点阵显示_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 数字系统与逻辑设计 课题名称16*16点阵显示专 业 通信工程 班 级通信1101学 号姓 名指导教师乔汇东 胡瑛 谭小兰 2013年 7月 7日湖南工程学院课 程 设 计 任 务 书课程名称数字系统与逻辑设计 课 题16*16点阵显示专业班级通信1101学生姓名 皮锋学 号 201103020127指导老师 乔汇东 胡瑛 谭小兰审 批 乔汇东任务书下达日期 2013 年 6月 29日任务完成日期 2013年 7月 7日目 录一. 16*16点阵显示的总体设计11.1. 问题描述11.2. 功能描述21.3. 引脚分配2二. 16*16点阵显示的模块划分32.1

2、. 显示的时序控制模块32.2. 汉字的点阵显示32.3. 系统的总体框图4三. 主要功能的实现43.1. 时序控制模块的设计43.2. 汉字显示控制模块的设计53.3. 点阵LED显示屏模块的设计6四. 系统调试与仿真74.1. 系统调试74.2. 仿真图10五. 总结与体会10六. 附件11七. 评分表18一16*16点阵显示的总体设计1.1 问题描述本实验主要完成汉字字符在LED 上的显示,16*16 扫描LED 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。下面就本实验系统的16*16 点阵的工件原理做一些简单的说明。16*16 点阵由此256 个LED 通过排

3、列组合而形成16 行*16 列的一个矩阵式的LED 阵列,俗称16*16 点阵。单个的LED 的电路如下图11-1 所示:图11-1 单个LED 电路图由上图可知,对于单个LED 的电路图当Rn 输入一个高电平,同时Cn 输入一个低电平时,电路形成一个回路,LED 发光。也就是LED 点阵对应的这个点被点亮。16*16 点阵也就是由16 行和16 列的LED 组成,其中每一行的所有16 个LED的Rn 端并联在一起,每一列的所有16 个LED 的Cn 端并联在一起。通过给Rn 输入一个高电平,也就相当于给这一列所有LED 输入了一个高电平,这时只要某个LED 的Cn 端输入一个低电平时,对应的

4、LED 就会被点亮。具体的电路如下图11-2所示:图11-2 16*16 点阵电路原理图在点阵上显示一字符是根据其字符在点阵上的显示的点的亮灭来表示的,如下图11-3 所示:图11-3 字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。根据前面我们所介绍的点阵显示的原理,当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn置为高电平,则在第一列中需要被点亮的点就会被点亮。依此类推,显示第二列、第三列第N 列中需要被点亮的点。然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示

5、一个完整的不闪烁的汉字。同时也可以按照这个原理来显示其它的汉字。下图11-4 是一个汉字显示所需要的时序图:图11-4 显示时序图1.2 功能描述本实验的示例程序依次显示的是“湖南工程学院”,要求每隔一秒换下一个字显示。1.3 引脚分配显示:16×16 点阵LED 模块16×16 点阵LED 模块16×16 点阵信号名称FPGA 引脚说明DOT-C0F7列DOT-C1E8列DOT-C2J8列DOT-C3G9列DOT-C4G10列DOT-C5F11列DOT-C6F9列DOT-C7F10列DOT-C8G2列DOT-C9F1列DOT-C10E1列DOT-C11E2列DO

6、T-C12D1列DOT-C13D2列DOT-C14C2列DOT-C15B2列DOT-R0B3行选择DOT-R1C3行选择DOT-R2H1行选择DOT-R3J2行选择DOT-R4L2行选择DOT-R5J13行选择DOT-R6H15行选择DOT-R7V11行选择DOT-R8E10行选择DOT-R9F12行选择DOT-R10E12行选择DOT-R11F13行选择DOT-R12F14行选择DOT-R13E15行选择DOT-R14F15行选择DOT-R015F16行选择时钟:ClkN1图1-3 引脚说明图二16*16点阵显示的模块划分2.1 显示的时序控制模块用信号count进行时钟计数累加,用信号q进

7、行单个汉字扫描控制,用信号k控制单个汉字的行扫描。在时钟上升沿来时,当count小于1000,count加1,一旦count等于1000,count归零,同时如果q小于5,q加1,否则q等于零。在时钟上升沿来时,如果k小于15,k加1,否则k等于0。2.2 汉字的点阵显示用取模软件对“湖南工程学院”六个字进行按行取模,得到16进制数,然后转换成二进制位表示。因为是按行扫描,所以低电平“0”为点亮一个LED灯,所以表示成二进制位后取反输出。2.3 系统的总体框图图2-3 系统的总体框图三主要功能的实现3.1 时序控制模块的设计设置三个信号:signal k: integer:=0;signal

8、q: integer:=0;signal count : integer range 0 to 1000:=0;时序控制进程为:process(clk)-显示时序控制beginif clk'event and clk='1' thencount<=count+1;-计数累加if count=1000 then count<=0;if q<5 then q<=q+1;-控制单个汉字扫描周期else q<=0;end if;end if;if k<15 then k<=k+1;else k<=0;end if;end if;e

9、nd process;3.2 汉字显示控制模块的设计程序按行扫描,所以设置一个变量控制点阵的行扫描:variable r:std_logic_vector(15 downto 0);行扫描进程为:process(k)variable r:std_logic_vector(15 downto 0);begincase k iswhen 0=> r:="0000000000000001"when 1=> r:="0000000000000010"when 2=> r:="0000000000000100"when 3=&

10、gt; r:="0000000000001000"when 4=> r:="0000000000010000"when 5=> r:="0000000000100000"when 6=> r:="0000000001000000"when 7=> r:="0000000010000000"when 8=> r:="0000000100000000"when 9=> r:="0000001000000000"when ot

11、hers=>r:="0000000000000000"end case;cn<=r;3.3 点阵LED显示屏模块的设计用取模软件按行取模,得到“湖南工程学院”六个字的二进制代码,然后在进程中按行进行扫描,例如“湖”字:当k等于0时扫描“湖”字:process(k,q)variable c:std_logic_vector(15 downto 0);begin case q iswhen 0=>case k is-显示 湖 字when 3=>c:="0000001000100100"when others=>c:="

12、0000000000000000"end case;四系统调试与仿真4.1 系统调试 创建工程利用new preject wizard 工具创建一个工程,工程名为L16_16,顶层文件实体名为 L16_16.选择目标芯片,芯片为EP2C35F672C8,如图所示:图4.1.1 工程创建图新建一个VHDL file在刚建立的工程中新建一个file,选择VHDL file,如图:图4.1.2 VHDL文件创建图建立一个仿真文件新建一个file,选择others file ,然后选择Vector Waveform File,如图所示:图4.1.3 仿真文件创建图程序仿真完全正确后

13、,设置引脚,然后再次编译,没有错误后下载程序到硬件之中,得到点阵LED显示结果,其中每个汉字显示时间为一秒,一秒过后自动换下一个汉字,直到显示完“湖南工程学院”,再循环显示以上内容。4.2 仿真图图4-2 程序仿真图五总结与体会在做课设的过程中,我们遇到了很多难题。在程序编写前,我们不知道该怎样着手。经过一天的思考,我们初步确定了编写课设程序的方向,把程序的基本模块区分出来,分块编写,然后整合到一块进行编译、仿真等过程。在进行编译仿真时也遇到了一些不知道该怎么办的情况。经过我们的讨论和向其他同学请教,我们解决了这阶段的问题,最终仿真波形出现,下载到芯片中成功显示。在答辩的时候,老师的问题让我明

14、白,在实际问题中,我们不仅要考虑怎样把程序完成,还要考虑到用什么样的器件来完成设计,整体需要哪些东西组成。通过此次课程设计,我从中获益不少,不仅弥补了平时理论知识的一些不足,还使我们领悟到许多做人处事的道理。比如,我们在实验过程中有一些不同的意见,而且有些意见完全不在一条线上,但经过我们的讨论最后还是得以共识。此外,我对自己的专业有了更为详尽而深刻的了解,也是对这几年大学里所学知识的巩固与运用。从这次实习中,我体会到了实际的工作与书本上的知识是有一定距离的,认识到自己的不足。六附件程序源代码:library ieee;use ieee.std_logic_1164.all;use ieee.s

15、td_logic_unsigned.all;entity L16_16 isport( clk : IN STD_LOGIC; cn: out std_logic_vector(15 downto 0); rn: out std_logic_vector(15 downto 0);END L16_16;architecture L1616 of L16_16 issignal k: integer:=0;signal q: integer:=0;signal count : integer range 0 to 1000:=0;beginprocess(clk)-显示时序控制beginif c

16、lk'event and clk='1' thencount<=count+1;-计数累加if count=1000 then count<=0;if q<5 then q<=q+1;-控制单个汉字扫描周期else q<=0;end if;end if;if k<15 then k<=k+1;else k<=0;end if;end if;end process;process(k,q)variable c:std_logic_vector(15 downto 0);begin case q iswhen 0=>ca

17、se k is-显示 湖 字when 3=>c:="0000001000100100"when others=>c:="0000000000000000"end case;when 1=>case k is-显示 南 字when 0=>c:="0000000100000000"when 1=>c:="0000000100000100"when 3=>c:="0000000100000000"when 4=>c:="000000100000000

18、0"when 15=>c:="0000000000000000"when others=>c:="0000000000000000"end case;when 2=>case k is-显示 工 字when 0=>c:="0000000000000000"when 2=>c:="0000000100000000"when 3=>c:="0000000100000000"when 4=>c:="0000000100000000"

19、;when 5=>c:="0000000100000000"when 6=>c:="0000000100000000"when 7=>c:="0000000100000000"when 8=>c:="0000000100000000"when 9=>c:="0000000100000000"when 10=>c:="0000000100000000"when 11=>c:="0000000100000000"whe

20、n 12=>c:="0000000100000000"when 14=>c:="0000000000000000"when 15=>c:="0000000000000000"when others=>c:="0000000000000000"end case;when 3=>case k is-显示 程 字when others=>c:="0000000000000000"end case;when 4=>case k is-显示 学 字when 3=&

21、gt;c:="0000000000100000"when 8=>c:="0000000001000000"when 9=>c:="0000000110000000"when 11=>c:="0000000100000000"when 12=>c:="0000000100000000"when 13=>c:="0000000100000000"when 15=>c:="0000001000000000"when others=>c:="0000000000000000"end case;when 5=>case k is-显示 院 字when 0=>c:="0000000001000000"when others=>c:="0000000000000000"end case;when others=>c:="0000000000000000"end ca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论