1、课 程 设 计课程名称 嵌入式系统课程设计课题名称 16X16 的点阵显示设计专 业班 级学 号姓 名指导老师2016 年 12 月 20 日电 气 信 息 学 院课 程 设 计 任 务 书课题名称1616的点阵显示设计姓 名 专业 班级 学号指导老师课程设计时间 2016年12月18日-2016年12月30日(17、18周)教研室意见 意见:同意 审核人:刘望军一、任务及要求CPLD 为复杂可编程逻辑器件,通过 EDA 技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程调试。具体要求如下:用一个 1616 的点
2、阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。二、进度安排第一周:周一:集中布置课程设计相关事宜。周二周三:子模块程序设计,顶层电路程序设计。周四周日:子模块,顶层电路仿真。第二周:周一周三:编程下载,系统调试。周四 周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料1. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。2.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。3. 刘洪喜,陆颖编著. VHDL 电路设计实用教程 清华大学出版社。目 录1.总体设计思路与功能设计 11.1.基本原理 .11.2.总体设计框图 .21.3.顶层文件设计 .22.
3、单元电路设计 32.1 列循环扫描模块 .32.2 字符样式设计模块 .32.3 循环扫描及延时模块 .42.4 整个程序 .53.系统调试与仿真 93.1 开发环境介绍 .93.2.1 创建工程 .93.2.2 编译前设计 .93.2.3 全程编译 113.2.4 时序仿真 124.下载调试 .135.心得体会 .146.参考文献 .141、总体设计思路 1.1 基本原理LED 就是 Light Emitting Diode(发光二极管)的缩写。在某些半导体材料的PN 结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN 结加反向电压,少数
4、载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称 LED。LED 显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 1616 扫描 LED 点阵的工作原理同 8 位扫描数码管类似。它有 16 个共阴极输出端口,每个共阴极对应有 16 个 LED 显示灯,所以其扫描译码地址需 4 位信号线(SEL0-SEL3) ,其汉字扫描码由 16 位段地址(0-15)输入。 通过时钟的每列扫描显示完整汉字。点阵 LED 一般采用扫描式显示,实际运用分为三种方式: (1)点扫描(2)行扫描(3)列扫描若
5、使用第一种方式,其扫描频率必须大于 1664=1024Hz,周期小于 1ms 即可。若使用第二和第三种方式,则频率必须大于 168=128Hz,周期小于 7.8ms 即可符合视觉暂留要求。此外一次驱动一列或一行(8 颗 LED)时需外加驱动电路提高电流,否则LED 亮度会不足。实验箱上为我们提供了 16*16 的点阵显示模块。通过观察,我们可以看到,此点阵显示屏即为 16 行、16 列的 LED 显示灯。那么控制这些灯的亮暗分布,就能达到字符显示的目的。首先输出预定义“吕、苏、田、口”四个汉字,显示屏上的灯的亮暗情况具体应如何。如第一个汉字吕:0000000000000000000000000
6、000000000000000011111000011111101000100001000010100010000100001010001000010000101000100001000010100010000100001010001000010000101000100001111110100010000000000010001000000000001111100000000000000000000000000000000000000000000000000如果高电平1时表示灯是亮的,低电平0时灯是暗的,这样上面的灯呈现在我们眼前的就是吕字了。依次类推,我们就可以设计出所有要显示的汉字了。这样
7、这些汉字就好象是被我们当作了固定模型了。但如何点亮这些灯呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的汉字模型的高电平相匹配时,灯就相应的点亮。由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完 16 列就会显示在我们眼中一个汉字了。但要所有的汉字就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。1.2 设计框图图 1.2 总体设计框图1.3 顶层文件设计图 1.3 顶层文件设计二、单元电路设计 2.1 列循环扫描通过对每一列的扫描来完成对字母的现实,只
8、要扫描的频率足够快,就能给人以连续的感觉。因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续, 输入一个时钟信号,输出为 4 位二进制(用 sel 表示)列选信号,用来选中列,进行扫描,扫描程序如下:Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;Entity dz_xs isPort(enable,clk:in std_logic; -端口定义 输入信号Sel:out std_logic_vector(3 downto 0); -端口定义 输出信号End dz_xs;Architect
9、ure count of dz_xs is Signal lie:std_logic_vector(3 downto 0);BeginProcess(clk,enable) -脉冲、使能信号beginIf clkevent and clk=1thenIf enable=1 thenIf lie“0000“ thenLieCase lie is -“吕”字设计When “0011“=h0h0h0h0h0h0h0h0h0h0h0h0Case lie is -“苏”字设计When “0011“=h0h0h0h0h0h0h0h0h0h0h0h0Case lie is -“田”字设计 When“0100
10、“=h0h0h0h0h0h0h0h0h0h0Case lie is -“口”字设计When“0101“=h0h0h0h0h0h0h0h0“0000“ thenLieCase lie is When “0011“=h0h0h0h0h0h0h0h0h0h0h0h0Case lie is When “0011“=h0h0h0h0h0h0h0h0h0h0h0h0Case lie is When“0100“=h0h0h0h0h0h0h0h0h0h0Case lie is When“0101“=h0h0h0h0h0h0h0h0h0=“00000000“;h8=“00000000“;End case;End
11、 if;End if;End process;a3:process(clk)variable int: integer range 0 to 10000;beginif clkevent and clk=1thenif int10000 thenint:=int+1;elseint:=0;if next1=“11“thennext1=“00“;elsenext1= next1+1;end if;end if;end if;end process;end count;第三章 系统调试与仿真3.1 开 发 环 境 介 绍Quartus II 是 Altera 公司的综合性 PLD 开发软件,支持原
12、理图、VHDL、Veril-ogHDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 支 持 Altera 的 IP 核 , 包 含 了 LPM/MegaFunction 宏 功 能 模 块 库 ,使 用 户 可 以 充 分 利 用 成 熟 的 模 块 , 简 化 了 设 计 的 复 杂 性 、 加 快 了 设 计 速 度 。 对 第 三方 EDA 工 具 的 良 好 支 持 也 使 用 户 可 以 在 设 计 流 程 的 各
13、个 阶 段 使 用 熟 悉 的 第 三 方EDA 工 具 。此 外 , Quartus II 通 过 和 DSP Builder 工 具 与 Matlab/Simulink 相 结 合 , 可以 方 便 地 实 现 各 种 DSP 应 用 系 统 ; 支 持 Altera 的 片 上 可 编 程 系 统 ( SOPC) 开 发 ,集 系 统 级 设 计 、 嵌 入 式 软 件 开 发 、 可 编 程 逻 辑 设 计 于 一 体 , 是 一 种 综 合 性 的 开 发 平台 。3.2 调 试 与 仿 真3.2.1 创 建 工 程在 Quartus II 中 新 建 一 个 VHDL File 文
14、 件 , 将 VHDL 代 码 输 入 这 个 文 件 , 并保 存 到 工 作 目 录 , 名 为 yz_ok.vhd。利 用 new preject wizard 工 具 创 建 一 个 工 程 , 工 程 名 为 yz_ok,顶 层 文 件 实体 名 为 yz_ok, 并 将 上 面 创 建 的 yz_ok.vhd 文 件 加 入 到 工 程 中 。3.2.2 编 译 前 设 置( 1) 选 择 目 标 芯 片 。 用 assignmemts- settings 命 令 , 弹 出 settings 对话 框 , 选 择 目 标 芯 片 为 EP1C3T144C8。图 3-1 选 择 目
15、 标 器 件( 2) 选 择 工 作 方 式 , 编 程 方 式 , 及 闲 置 引 脚 状 态单 击 上 图 中 的 device 毛 刺 检 测 Glitch detection 为 1ns 宽 度 ;选中 Run simulation until all vector stimuli 全 程 仿 真 。现 在 所 有 设 置 进 行 完 毕 , 在 菜 单 processing 项 下 选 择 start simulation,直 到 出 现 simulation was successful, 仿 真 结 束 。 仿 真 文 件 simulation report 通 常 会 自 动
16、弹 出 , 否 则 选 择 processing simulation report 。图 3-7 仿 真 波 形 输 出四、下载调试选择 tools 菜单中 programmer,点击左上角的 Hardware Setup,选择 USB,点击 start 即可连接硬件,进行调试 。连接成功后,即可在实验箱中 LED 屏循环显示字母。如下图汉字的显示:图 4-1 调 试 结 果 图图 4-2 调 试 结 果 图五、心得体会为期两周的嵌入式课程设计完成了。整过设计过程虽然不是很顺利。不过我认真对待老师给我们的课题,中间虽然也有不少挫折,但不经历挫折怎么见风雨,在我四处查看资料,请教同学下终于完成
17、。 经过这两周的课程设计,我加深了对 PLD 的认识,学到了很多以前不知道的东西,也明白也 PLD 在现实生活中的重要应用和它的发展趋势。以前在书本上学到的东西总是不能够很好地运用到现实当中去,现在终于得到了改善,这让我感到非常的高兴。从这次实习中,我体会到,如果将我们在大学里所学的知识与更多的实践结合在一起,用实践来检验真理,使一个本科生具备较强的处理基本实务的能力与比较系统的专业知识,这才是我们学习与实习的真正目的。让我们不再是一个沉睡的孩子,让我们的无知渐渐远去,把我们所学的知识运用到实际中去,为社会出上我们的一份力。感谢老师给的这次让我们自行设计的机会,通过这次设计通过这次课程设计使我
18、懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的 1616 点阵显示控制还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了
19、自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢。6、参考文献1. 张原编著,可编程逻辑器件设计及应用,机械工业出版社。2.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。3. 刘洪喜,陆颖编著. VHDL 电路设计实用教程 ,清华大学出版社。电气信息学院课程设计评分标准评价环节 项目优 良 中 及格 不及格实践环节(70%)1、设计方案合理性与创造性2、编程完成情况3、电路模块仿真调试结果4、硬件测试过程及结果5、解决问题能力及答辩情况6、纪律和出勤情况设计报告(30%)1 设计报告内容完整、规范2 设计步骤规范、正确3 仿真调试结果正确、波形清楚4 硬件测试过程规范、结果正确综合评价课程设计成绩评定为:优 良 中 及格 不及格指导老师签名:_日 期:_