EDA 16x16点阵显示
- 格式:doc
- 大小:834.50 KB
- 文档页数:20
单片机16×16点阵显示实验总结400字单片机16×16点阵显示实验总结这次实验我们使用单片机设计了16×16点阵显示器的驱动电路,并成功实现了在点阵上显示字符、数字和图案的功能。
下面是对本次实验的总结。
首先,我们按照实验手册的指示,采用逐行扫描的方式驱动16×16点阵显示器。
通过设置接口电路和引脚连接,将单片机与点阵电路相连,实现数据和控制信号的传输。
接着,我们编写了相应的程序代码,在单片机上进行编译和烧录,并使用示波器进行调试。
在调试过程中,我们发现了一些常见的问题,比如接口线连接错误、引脚配置错误等,及时解决这些问题,确保了实验的顺利进行。
接下来,我们开始编写点阵显示的控制程序。
通过对点阵每一个LED灯珠的亮灭状态进行控制,我们可以实现在点阵上显示不同的字符、数字和图案。
我们编写了一个字符库,其中包含了常用字符和数字的点阵码。
通过查表的方式,我们可以根据需要在点阵上显示相应的内容。
在编写程序的过程中,我们充分利用了单片机的IO口和定时器的功能,并采用了合理的算法,提高了程序的执行效率。
在实验过程中,我们遇到了一些困难和挑战。
首先,点阵显示器的像素较多,对于单片机的计算能力和IO口的数量有一定要求。
因此,在编写程序的过程中,我们需要注意内存和资源的使用,避免发生卡顿或者无法正常显示的情况。
其次,点阵显示器的扫描速度要求较高,需要通过设置定时器的中断来实现,以确保显示的稳定性和清晰度。
通过本次实验,我们不仅掌握了单片机的基本原理和编程技巧,还深入了解了点阵显示器的工作原理和驱动方式。
通过自主设计和编写代码,我们成功实现了在16×16点阵上显示字符、数字和图案的功能。
这不仅加深了我们对嵌入式系统的理解,还提高了我们的动手实践能力和问题解决能力。
总之,通过这次实验,我们不仅学到了很多知识,还锻炼了自己的动手能力和团队合作能力。
虽然在实验过程中遇到了一些困难,但通过不懈努力和团队合作,我们最终取得了成功。
一﹑系统设计总述(本次为课设,不是实验报告,请按模板修改)1.实验目的(1)了解点阵字符的产生和显示原理。
(2)了解FPGA芯片和16×16点阵管的工作原理。
(3)熟练掌握连线与对硬件的使用。
2.实验原理16×16LED点阵管的点亮是由其列选信号和其行选信号所共同控制的。
其行选号共有15个为L0—L15,列选信号有四个为SEL3—SEL0。
当其列选信号选中某一列时,在给所需要的行一个高电平,就能控制其点亮。
例如当SEL0—SEL3为0000时,给L0一个高电平,就能使第一行第一列对应的点亮。
3. 实验内容(1)上机调试所编写好的程序。
(2)将程序下载到芯片上。
(3)实验连线及功能测试。
二﹑系统总实验原理图八进制计数器是用于切换显示花样,CLK1是用于扫描列的信号,其频率应大于人眼的视觉效果。
DOTOUT和SELOUT则是用于控制16×16点阵管的点亮。
三﹑系统子程序设计1.八进制计数器设计JY是八进制计数器,当每一个时钟上升沿到来时,计数器就记一次数,16×16点阵管就显示一个字。
例如当其为0000时,就显示“进”字。
其程序如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jy isport(clk,rst:in std_logic;jout:buffer std_logic_vector(3 downto 0));end jy;architecture b of jy isbeginprocess(clk,rst)beginif rst='1' then jout<="0000";elsif clk'event and clk='1' thenif jout=7 then jout<="0000" ;else jout<=jout+1;end if;end if;end process;end b;其仿真波形2.行列驱动设计此程序是文字显示,即“进德修业,精益求精”通过计数器的计数而循环显示。
应用科学学院SOPC/EDA综合课程设计报告设计题目:设计者:学号:班级:指导老师:完成时间:目录第1章总体设计原理及原理框图 (1)1.1 设计原理 (1)1.2顶层文件设计 (2)1.3总体仿真图 (2)第2章单元电路设计 (4)2.1时序控制模块设计 (4)2.1.1时序控制模块的源程序及其实体图 (4)2.1.2时序控制模块仿真 (5)2.2扫描控制模块设计 (5)2.2.1扫描控制模块源程序及其实体图 (5)2.2.2扫描控制模块仿真 (6)2.3显示控制模块源程序及其实体图 (6)2.3.1显示控制模块 (6)2.3.2显示控制模块仿真 (21)第3章心得体会 (22)参考文献 (23)1第1章 总体设计原理及原理框图1.1 设计原理首先我们设计要正确显示这些字,显示屏上的灯的亮暗情况具体应如何。
如第一个字‘江’:第一种方案 第二种方案如果高电平‘1 时表示灯是亮的,低电平‘0’时灯是暗的,这样上面的灯呈现在我们眼前的就是‘江’字了。
依次类推,我们就可以设计出所有要显示的字了。
使用FPGA 设计一个16×16的点阵显示的控制器,使点阵显示器以两种花样显示“江西理工大学应用科学学院欢迎您”第一种花样是用亮着的灯组合所要显示的字,第二种方案是用暗着的灯组成所需要的字。
这样这些字就好象是被我们当作了固定模型了。
但如何点亮这些灯呢,这就要求有一个脉冲循环扫描的电路,我们采用列扫描,当扫描的和我们先设计好的字模型的高电平相匹配时,灯就相应的点亮。
由于扫描的速度很快,我们人的眼睛并不会感到灯的闪烁,所以每扫描完16列就会显示在我们眼中一个字了。
但要所有的字母就可以依次的显示出来并不停的循环显示,就还要再有一个时序控制电路来控制。
此时序控制电路象一个计数器,有自动清零的功能,这样就可以实现循环的效果了。
其设计原理图框图如下图1.1 总体设计框图1.2顶层文件设计顶层文件来实现循环显示各个字的功能。
综合实践总结报告综合实践名称: EDA技术与实践综合实践地点、时间一.题目功能分析和设计实验的要求有如下三点:1.用16*16点阵的发光二极管显示字符;2.可显示字符为0~9的数字字符与A~F英文字母的大写;3.输入为四位二进制矢量;按照要求可知,LED点阵模块,共由16×16=256个LED发光二极管组成,如何在该点阵模块上显示数字和字母是本实验的关键。
先将要显示的每一幅图像画在一个16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布以数字8为例,点阵分布为:0000000000000000000000000000000000011111111110000001111111111000000110000001100000011000000110000001100000011000000111111111100000011111111110000001100000011000000110000001100000011000000110000001111111111000000111111111100000000000000000000000000000000000考虑到实际物理实验平台上点阵发光二极管的原理,以下为16×16点阵LED外观图,只要其对应的X、Y轴顺向偏压,即可使LED 发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
所以我采用行列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平(1),哪些行是低电平(0);为高电平的则点亮,为低电平的不亮。
(列信号都接地)。
如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。
注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。
江西理工大学应用科学学院SOPC/EDA综合课程设计报告设计题目:基于FPGA的16*16点阵汉字显示设计设计者:学号:班级:指导老师:王忠锋完成时间: 2012年1月6日设计报告综合测试总评格式(10)内容(40)图表(10)答辩(20)平时(20)目录前言 (3)第一章基本概要 (4)1.1 EDA的基本特征和设计流程 (4)1.2 LED点阵显示特点 (4)1.3 FPGA基本特点和设计的特点 (5)第二章系统设计 (7)2.1设计任务与要求 (7)2.1.1设计要求 (7)2.1.2 要求分析 (7)2.2.设计方案 (7)2.3.LED的显示原理 (8)2.4系统设计原理 (8)第三章系统子程序设计 (10)3.1 32进制计数器设计 (10)3.2 16进制计数器设计 (11)3.3 列驱动设计 (13)3.4 行驱动设计 (15)第四章原理图仿真波形 (36)第五章课程设计体会 (37)参考文献 (38)前言现代文明的一个明显特征是城市中随处可见的五颜六色的广告宣传,其中大多都是由LED点阵制作的汉字或图形广告,广泛应用在银行、医院、酒店、火车站、运动场馆等各种公共场所。
汉字转动显示器的传统设计方法是用单片机来控制的,固然单片机方案具有价格低廉,程序编程灵活等特点,但由于单片机硬件资源术具有系统设计效率高、集成度好、保密性强、易的限制,未来对设计的变更和升级,总是要付出较多研发经费和较长投放市场周期的代价,甚至有可能需要重新设计。
况且,在以显示为主的系统中,单片机的运算和控制等主要功能的利用率很低,单片机的上风得不到发挥,相当于很大的资源浪费。
采用EDA技术的自顶向下的模块化设计方法,借助相关开发软件,例如QualtusⅡ软件,将硬件描述语言——VHDL程序固化于具有丰富I/O口、内部逻辑和连线资源的FPGA(现场可编程门阵列)中。
该技于修改、易于实现等优点,成为当今数字第一章基本概要1.1 EDA的基本特征和设计流程EDA技术是采用高级语言描述,具有系统级仿真和综合能力,它主要采用并行工程(Concurrent Engineering)设计和自顶向下(Top-down)设计方法,其基本思想是从系统总体要求出发,分为行为描述、寄存器传输级描述、逻辑综合三个层次,将设计内容逐步细化,最后完成整体设计,这是一种全新的设计思想与设计理念。
课程设计报告课程名称数字系统与逻辑设计课题名称16*16点阵显示专业通信工程班级学号姓名指导教师乔汇东胡瑛2012年7月2日湖南工程学院课程设计任务书课程名称数字系统与逻辑设计课题16*16点阵显示专业班级通信工程1001班学生姓名学号指导老师乔汇东胡瑛审批乔汇东任务书下达日期2012 年6月23日任务完成日期2012 年7月2日《数字系统与逻辑设计》课程设计任务书一、设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
二、设计要求1、设计正确,方案合理。
2、程序精炼,结构清晰。
3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
4、上机演示。
5、有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
三、进度安排第二十周星期一:课题讲解,查阅资料星期二:总体设计,详细设计星期三:编程,上机调试、修改程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。
目录一. 16*16点阵显示的总体设计 (1)1.116*16点阵显示 (1)1.2基本设计思想 (1)二. 16*16点阵显示的功能实现 (3)2.1系统的总体框图 (3)2.2系统的流程图 (3)2.3系统各功能模块实现 (4)三.系统的调试与仿真 (8)四.总体与体会 (9)五附件 (10)六评分表 (16)一. 16*16点阵显示的总体设计1.1 16*16点阵显示本实验主要完成汉字字符在LED 上的显示,16*16 扫描LED 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。
三、16×16点阵LED电子显示屏的设计1.功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
2.方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定的时间,然后熄灭;再送出第2行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭,……第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。
SOPC/EDA综合课程设计报告设计题目:16*16的点阵显示设计设计者:学号:班级:指导老师:完成时间:目录绪论 (1)第一章设计项目与分析 (2)1.1设计要求: (2)1.2设计原理 (2)1.3设计框图 (3)1.4顶层文件设计 (3)第二章一屏一屏亮灯显示 (5)2.1时序控制模块设计 (5)2.2扫描控制模块设计 (6)2.3显示控制模块设计 (7)2.4显示控制模块仿真 (15)第三章暗灯显示 (16)3.1暗灯控制模块设计 (16)3.2扫描控制模块设计 (17)3.3暗灯显示控制模块设计 (18)第四章心得体会 (27)参考文献 (28)绪论1 在信息产业中EDA产生的影响随着大规模集成电路技术和计算机技术的不断发展,在设计通信,国防,航天医学工业自动化计算机应用仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于EDA技术的应用,即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使得产品的开发周期大为缩短,性能价格大幅度提高。
不言而喻。
EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
2 中国国内EDZ发展情况从目前的EDA技术来看,其发展趋势是政府重视使用普及应用广泛工具多样软件功能强大。
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板的小型ASIC领域,仅有小部分的设计人工发复杂片上系统器件,为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。
在信息通信领域,优先发展高速宽带信息网,深亚微米集成电路,新型元器件,计算机及软件技术,第三代移动通信技术。
信息管理,信息安全技术,积极开拓以数字技术,网络技术为基础的新一代产品,发展新兴产业,培育新的经济增长点。
要大力推进制造业信息化,积极开展计算机辅助设计(CAD),计算机辅助工程(CAE),计算机辅助工艺(CAPP),j计算机辅助制造(CAM),产品数据管理(PDM),制造资源计划(MRPII),以及企业管理资源(ERP)等。
三、实验效果分析(包过仪器设备等使用效果)三、实验效果分析:静态点阵RTL图形:动态RTL仿真图形:实验中程序一点阵里显示静态的师字,程序二中点阵显示的师字自右往左移动,说明实验程序正确。
字符显示的内容改变通过将要显示的数据取模,定制在ROM上,便可实验内容的改变,移动方向的改变将Q1<=Q1+1;改成Q1<=Q1-1;也就是将当前对应地址发生器的地址改为前一地址便可右移,改为后一地址便是左移,不变则静止。
教师评语指导教师年月日江西师范大学物理与通信电子学院教学实验报告专业:电子信息工程2011年5月11日实验名称16×16点阵字符显示设计指导老师姓名年级学号成绩一、预习部分1、实验目的2、实验基本原理3、主要仪器设备(包含必要的元器件、工具)一、实验目的:1.进一步熟悉QUARTUS‖及其LPM_ROM与FPGA硬件资源的使用方法。
2.学习和掌握16*16点阵字符显示设计方法。
二、实验基本原理:利用不同的行抄描和列扫描,加上字取模软件对字取模,利用动态扫描便在点阵上看到了字。
二、主要仪器设备电脑、实验箱二、实验操作步骤1.实验数据、表格及数据处理2.实验操作过程(可以用图表示)3.结论1.实验数据、表格及数据处理如下:library ieee; if rst='1'thenuse ieee.std_logic_1164.all; qa<=(others=>'0');use ieee.std_logic_unsigned.all; elsif clk'event and clk='1' thenentity sy12 is qa<=qa+1;port(clk,rst:in std_logic; end if;sel:out std_logic_vector(3 downto 0); end process;dout:out std_logic_vector(15 downto 0)); process(qa,rst)end ; beginarchitecture one of sy12 is if rst='1' thencomponent data_rom q1<=(others=>'0');port (address:in std_logic_vector(4 downto 0); elsif qa(10)'event and qa(10)='1' then inclock:in std_logic; q1<=q1+1; --当前所有地址改为对应的下一q:out std_logic_vector(15 downto 0)); end if; 地址,即整体左移end component; end process;signal qa:std_logic_vector(10 downto 0); sel<=not(q0-2);signal q0:std_logic_vector(3 downto 0); qq<=q1+q0;signal qq:std_logic_vector(4 dow u1: data_rom port map(address=>qq,q=>dout,inclock=>clk); signal q1:std_logic_vector(4 downto 0); end;beginprocess(clk,rst)beginif rst='1' thenq0<=(others=>'0');elsif clk'event and clk='1' thenq0<=q0+1;end if ;end process;process(clk,rst)begin 2、实验操作过程如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sy11 isport(clk,rst:in std_logic;sel:out std_logic_vector(3 downto 0);dout:out std_logic_vector(15 downto 0));end ;architecture one of sy11 iscomponent data_romport (address:in std_logic_vector(4 downto 0);inclock:in std_logic;q:out std_logic_vector(15 downto 0));end component;signal qq:std_logic_vector(4 downto 0);signal q1:std_logic_vector(4 downto 0);beginprocess(clk,rst)beginif rst='1' thenq1<=(others=>'0');elsif clk'event and clk='1' thenq1<=q1+1; end if ;end process;qq<=q1-1;sel<=not qq(3 downto 0);u1:data_rom port map(address=>q1,q=>dout,inclock=>clk); end;。
目录第一章系统设计总述 (1)1.1 设计要求 (1)1.2 要求分析 (1)第二章系统设计原理 (2)第三章系统子程序设计 (3)3.1 32进制计数器设计 (3)3.2 16进制计数器设计 (4)3.3 列驱动设计 (5)3.4 行驱动设计 (6)第四章原理图仿真波形 (25)第五章设计小结 (26)参考文献 (27)SOPC/EDA综合课程设计报告―16×16点阵显示控制第一章系统设计总述1.1 设计要求使用FPGA设计一个16×16的点阵显示的控制器,使点阵显示器以两种花样显示“江西理工大学应用科学学院欢迎您!”1.2 要求分析根据设计要求可以分析出:点阵显示的花样有静态显示一个汉字,一屏一屏的显示汉字还有滚动显示汉字,还可以用亮着的灯显示汉字或者用暗着的灯显示汉字。
根据以上的分析,本实验采用如下两种花样显示:第一种花样是用亮着的灯组合所要显示的字,第二种方案是用暗着的灯组成所需要的字。
两种花样都是用一屏一屏的显示方法。
图1-1 方案一示例图1-2 方案二示例第二章系统设计原理16×16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
本实验就是要通过CPLD 芯片产生读时序,将字形从寄存器中读出,然后产生写时序,写入16×16的点阵,使其扫描显示输出。
为了显示整个汉字,首先分布好汉字的排列,以行给汉字信息;然后以128HZ 的时序逐个点亮每一行,即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。
LED点阵每个点都有一个红色的发光二极管。
点阵内的二极管间的连接都是行共阳,列共阴。
本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
课程设计报告课程名称数字系统与逻辑设计课题名称16*16点阵显示专业通信工程班级学号姓名指导教师乔汇东胡瑛2012年7月2日湖南工程学院课程设计任务书课程名称数字系统与逻辑设计课题16*16点阵显示专业班级通信工程1001班学生姓名学号指导老师乔汇东胡瑛审批乔汇东任务书下达日期2012 年6月23日任务完成日期2012 年7月2日《数字系统与逻辑设计》课程设计任务书一、设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
二、设计要求1、设计正确,方案合理。
2、程序精炼,结构清晰。
3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
4、上机演示。
5、有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
三、进度安排第二十周星期一:课题讲解,查阅资料星期二:总体设计,详细设计星期三:编程,上机调试、修改程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。
目录一. 16*16点阵显示的总体设计 (1)1.116*16点阵显示 (1)1.2基本设计思想 (1)二. 16*16点阵显示的功能实现 (3)2.1系统的总体框图 (3)2.2系统的流程图 (3)2.3系统各功能模块实现 (4)三.系统的调试与仿真 (8)四.总体与体会 (9)五附件 (10)六评分表 (16)一. 16*16点阵显示的总体设计1.1 16*16点阵显示本实验主要完成汉字字符在LED 上的显示,16*16 扫描LED 点阵的工作原理与8 位扫描数码管类似,只是显示的方式与结果不一样而已。
下面就本实验系统的16*16 点阵的工件原理做一些简单的说明。
16*16 点阵由此256 个LED 通过排列组合而形成16 行*16 列的一个矩阵式的LED 阵列,俗称16*16 点阵。
本实验的示例程序依次显示的是“湖南工程学院”,要求每隔一秒换下一个字显示。
1.2 基本设计思想单个的LED 的电路如下图11-1 所示:图11-1 单个LED 电路图由上图可知,点阵内的二极管间的连接都是行共阳,列共阴。
本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
本实验采取行扫描方式,用列给文字信息,利用周期为1s的脉冲来控制所显示的字。
即对于单个LED 的电路图当Rn 输入一个高电平,同时Cn 输入一个低电平时,电路形成一个回路,LED 发光。
也就是LED 点阵对应的这个点被点亮。
16*16 点阵也就是由16 行和16 列的LED 组成,其中每一行的所有16 个LED的Rn 端并联在一起,每一列的所有16 个LED 的Cn 端并联在一起。
通过给Rn 输入一个高电平,也就相当于给这一列所有LED 输入了一个高电平,这时只要某个LED 的Cn 端输入一个低电平时,对应的LED 就会被点亮。
具体的电路如下图11-2所示:图11-2 16*16 点阵电路原理图在点阵上显示一字符是根据其字符在点阵上的显示的点的亮灭来表示的,如下图11-3 所示:图11-3 字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。
根据前面我们所介绍的点阵显示的原理,当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn 置为高电平,则在第一列中需要被点亮的点就会被点亮。
依此类推,显示第二列、第三列……第N 列中需要被点亮的点。
然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。
同时也可以按照这个原理来显示其它的汉字。
下图11-4 是一个汉字显示所需要的时序图:图11-4 显示时序图二. 16*16点阵显示的功能实现2.1 系统的总体框图2.2 系统的流程图2.3 系统各功能模块实现1.六进制计数器当每一个时钟上升沿到来时,计数器就记一次数。
其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jy isport(clk,rst:in std_logic;din:buffer std_logic_vector(3 downto 0));end jy;architecture b of jy isbeginprocess(clk,rst)beginif rst='1' then din<="0000";elsif clk'event and clk='1' thenif din=7 then din<="0000" ;else din<=din+1;end if;end if;end process;end b;其仿真波形:2.A为列驱动控制器,该模块控制所亮的行,当输出为1000000000000000时,给点阵的第一行高电平,输出为0100000000000000时,给点阵的第二行高电平,依次类推,逐次给每行高电平。
其程序:A:process(hl)begincase hl iswhen "0000"=> row<="1000000000000000";when "0001"=> row<="0100000000000000";when "0010"=> row<="0010000000000000";when "0011"=> row<="0001000000000000";when "0100"=> row<="0000100000000000";when "0101"=> row<="0000010000000000";when "0110"=> row<="0000001000000000";when "0111"=> row<="0000000100000000";when "1000"=> row<="0000000010000000";when "1001"=> row<="0000000001000000";when "1010"=> row<="0000000000100000";when "1011"=> row<="0000000000010000";when "1100"=> row<="0000000000001000";when "1101"=> row<="0000000000000100";when "1110"=> row<="0000000000000010";when "1111"=> row<="0000000000000001";when others=> row<="0000000000000000";END case;end process A ;其仿真波形:3.B为行驱动控制器din控制的是所显示的字。
例如当din为000时,表示显示第一个字;当为001时,表示显示第二个字,依次类推。
hl控制所显示的为字的第几行,例如当hl为全是0时,表示输出字的第一行文字信息,依次类推。
其中包括两种花样的显示方式,其描述如下:B:process(clk,rst,din)beginif rst='1' then dout<="0000000000000000";hl<="0000" ;din<="000";elsif clk'event and clk='1' thenif din>6 then din<="000";else din<=din +1;if hl>15 then hl<="0000" ;else hl<=hl+1;end if;case din iswhen "000"=>case hl iswhen "0000" =>dout<="1000000000011111";when "0001" =>dout<="0100001000010001";when "0010" =>dout<="0010111110010001";when "0011" =>dout<="0010001000010001";when "0100" =>dout<="0001001000011111";when "0101" =>dout<="1000001000010001";when "0110" =>dout<="0100111111010001";when "0111" =>dout<="0010100001010001";when "1000" =>dout<="0001100001011111";when "1001" =>dout<="0000100001010001";when "1010" =>dout<="0001100001010001";when "1011" =>dout<="0001111111010001";when "1100" =>dout<="0010000000010001";when "1101" =>dout<="0100000000100001";when "1110" =>dout<="0100000001000111";when "1111" =>dout<="0000000010000001";when others=>dout<=null;end case;when "001"=>case hl iswhen "0000" =>dout<="0000000000000000";when "0001" =>dout<="0000000100000000";when "0010" =>dout<="0001111111111000";when "0011" =>dout<="0000000100000000";when "0100" =>dout<="0000000100000000";when "0101" =>dout<="0000000100000000";when "0110" =>dout<="0111111111111110";when "0111" =>dout<="0100010010000010";when "1000" =>dout<="0100001100000010";when "1001" =>dout<="0100111111000010";when "1010" =>dout<="0100000100000010";when "1011" =>dout<="0100000100000010";when "1100" =>dout<="0101111111111010";when "1101" =>dout<="0100000100000010";when "1110" =>dout<="0100000100000110";when "1111" =>dout<="0000000000000011";when others=>dout<=null;end case;when "010"=>************其仿真波形:三.系统的调试与仿真整个系统的调试与仿真如下图:调试成功:仿真波形成功:部分生成的电路图如下:四.总体与体会这次EDA课程设计历时三晚上。