目录一、总体设计思路........................................................................................................11.1基本原理...........................................................................................................11.2总体设计图框图..............................................................................................31.3顶层文件设计..................................................................................................3二、单元电路设计........................................................................................................42.1时序控制模块..................................................................................................42.2扫描控制模块..................................................................................................52.3显示控制模块..................................................................................................6三、仿真结果..............................................................................................................13四、系统调试..............................................................................................................154.1创建工程........................................................................................................154.2全程编译........................................................................................................154.3管脚绑定........................................................................................................154.4硬件调试.......................................................................................................16五、心得体会..............................................................................................................17六、附录......................................................................................................................186.1总电路图........................................................................................................186.2参考程序:....................................................................................................19七、参考文献..............................................................................................................271一、总体设计思路1.1基本原理LED就是LightEmittingDiode(发光二极管)的缩写。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。中小规模的LED点阵显示使用非常广泛,采用单片机控制时,需要扩展大量的外围资源,并且不便于进行扩展、修改和维护。在系统可编程逻辑器件具有丰富的I/O口及内部资源,器件的编程和修改也极为方便。本设计是以Altera公司可编程逻辑芯片EP1K30TC144-3为控制核心、附加一定外围电路组成的一个16×16点阵,此点阵系统使用逐列循环扫描的方式来显示自己姓名的英文大写字母。这样不但简化了外围电路、而且易于修改、扩展和维护。16×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亮度会不足。2实验箱上为我们提供了16*16的点阵显示模块。通过观察,我们可以看到,此点阵显示屏即为16行、16列的LED显示灯。那么控制这些灯的亮暗分布,就能达到字符显示的目的。首先我们设计要正确显示自己名字的英文大写字母(T,A,N,G,J,I,N,G),显示屏上的灯的亮暗情况具体应如何。如第一个字母‘T’:0000000000000000111111111111111111111111111111110000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000000000000如果高电平‘1时表示灯是亮的,低电平‘0’时灯是暗的,这样上面的灯呈现在我们眼前的就是‘T’字了。依次类推,我们就可以设计出所有要显示的字母了。这样这些字母就好象是被我们当作了固定模型了。但如何点亮这些灯呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的字母模型的高电平相匹配时,灯就相应的点亮。由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完16列就会显示在我们眼中一个字母了。但要所有的字母就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。31.2总体设计图框图图1.2总体设计框图1.3顶层文件设计顶层文件来实现循环显示各个字母的功能。它由时序控制模块,扫描模块和字母显示控制模块组成。时序控制模块利用脉冲来控制每个字母的显示时间。扫描控制模块利用列扫描脉冲产生列扫描信号。而字母显示控制模块用时序控制模块和扫描控制模块所提供的脉冲信号来点亮各个字母模型中相应的灯。在时序模块的控制下(此设计中每八个字母为一个循环)实现了各个字母循环显示的功能。要实现显示自己的英文名字大写字母。结合实际,模块chw,cnta,cora分别实现时序控制模块,扫描模块和字母显示控制模块。具体电路的顶层文件设计如下图图1.3顶层文件设计4二、单元电路设计2.1时序控制模块此模块用来控制每个字母的显示时间,当计满四个脉冲时cnt自动清零,即每个字母显示四个脉冲的时间。一共有八个字母(T,A,N,G,J,I,N,G)。当tmp=1000时,tmp自动清零,此后是这些字母显示的下一个循环。如此不停的循环显示各个字母。为使字母不断地循环显示,并且使每个字母之间有停顿,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改其数值来控制每个字母的显示时间。图2.1时序控制模块程序如下:Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;EntitychwisPort(clk:instd_logic;q:outstd_logic_vector(3downto0));Endchw;Architecturechw_arcofchwisBeginProcess(clk)variablecnt:integerrange0to1000;variabletmp:std_logic_vector(3downto0);5beginIfclk'eventandclk='1'thenIfcnt1000thencnt:=cnt+1;Elsecnt:=0;Iftmp=1111thentmp:=0000;Elsetmp:=tmp+1;Endif;Endif;Endif;q=tmp;Endprocess;Endchw_arc;2.2扫描控制模块此模块用来实现列扫描控制,通过对每一列的扫描来完成对字母的现实,,每扫描完16列,tmp自动清零,这样就提供了一个列循环扫描的功能,这样就可以循环的是各个字母。只要扫描的频率足够快,就能给人以连续的感觉。因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续。图2.2扫描控制模块扫描程序如下6Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;EntitycntaisPort(clk:instd_logic;--端口定义输入信号q:outstd_logic_vector(3downto0));--端口定义输出信号Endcnta;ArchitecturecountofcntaisSignallie:std_logic_vector(3downto0);BeginProcess(clk)beginIfclk'eventandclk='1'thenIflie=1111thenLie=0000;ElseLie=lie+1;Endif;Endif