EDA课程设计报告
课题名称:16*16点阵显示 专 业:通信工程
班 级:2013级通信工程(2)班 学 号: 姓 名:刘乐 指导教师:杨泽林
完成时间:2015年12月18号
0
目 录
一、设计目的
二、课题的主要功能
三、课题的功能模块划分
四、主要功能的实现
五、实验程序
六、系统调试与仿真
七、总结与体会
1
一 、设计目的
全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
二、课题的主要功能
问题描述
本实验主要完成汉字字符在LED 上的显示,16*16 扫描LED 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。下面就本实验系统的16*16 点阵的工件原理做一些简单的说明。16*16 点阵由此256 个LED 通过排列组合而形成16 行*16 列的一个矩阵式的LED 阵列,俗称16*16 点阵。单个的LED 的电路如下图1 所示:
图1 单个LED 电路图
由上图可知,对于单个LED 的电路图当Rn 输入一个高电平,同时Cn 输入一个低电平时,电路形成一个回路,LED 发光。也就是LED 点阵对应的这个点被点亮。16*16 点阵也就是由16 行和16 列的LED 组成,其中每一行的所有16 个LED的Rn 端并联在一起,每一列的所有16 个LED 的Cn 端并联在一起。通过给Rn 输入一个高电平,也就相当于给这一列所有LED 输入了一个高电平,这时只要某个LED 的Cn 端输入一个低电平时,对应的LED 就会被点亮。具体的电路如下图2所示:
图2 16*16 点阵电路原理图
在点阵上显示一字符是根据其字符在点阵上的显示的点的亮灭来表示的,如下图3 所示:
2
图3 字符在点阵上的显示
在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。根据前面我们所介绍的点阵显示的原理,当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn置为高电平,则在第一列中需要被点亮的点就会被点亮。依此类推,显示第二列、第三列……第N 列中需要被点亮的点。然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。同时也可以按照这个原理来显示其它的汉字。下图4 是一个汉字显示所需要的时序图:
图4 显示时序图
功能描述
本实验的示例程序依次显示的是“宁大物电学院”,要求每隔一秒换下一个字显示。
三、课题的功能模块的划分
系统的总体框图
8 进制 计数器 16 进制计数器 行驱动程序 3 字体显示驱动 顶层文件设计 图5
此程序分为五个模块,两个计数器和一个行驱动程序和一个显示字体控制程序,最后再加上一个顶层文件,用来连接前四个模块,程序简图如下: CLK CNT8 XIANSHI W1 CLK1 CNT16 HANG Q1 图6电路连接简图
四、主要功能的实现
8进制加法器设计
是8进制的计数器,其每计一次数,输出一个字。例如当计数为“000B”时显示“宁”,当计数为“001B”时显示“大”。给其脉冲周期为1S。 16进制计数器设计
是16进制的计数器,其输出端控制行和列驱动控制器的输出数据。 列驱动设计
为列驱动控制器,该模块控制所亮的行,当输出为0001H时,给点阵的第一行高电平,输出为0010H时,给点阵的第二行高电平,依次类推,逐次给每行高电平。
字体显示控制器
为字体显示控制器,SHI控制的是所显示的字。例如当SHI为00H时,表示显示第一个字;当SHI为01H时,表示显示第二个字,依次类推。WEI控制所显示的为字的第几行,例如当WEI为0000B时,表示输出字的第一行文字信息;WEI为0001B时,表示输出字的第二行文字信息,依次类推。 顶层文件设计
是顶层文件设计,文件在实体中首先定义了顶层设计元件的端口信号,然后在architecture和begin之间利用component语句对准备调用的元件做了声明,并定义了c,d两个信号作为器件内部的连接线。最后利用端口映射语句PORT MAP()将两个计数器和列驱动,字体显示驱动连接起来构成一个完整的器件。
4