基于FPGA的16&amp#215;16点阵汉字显示设计

上传人:博****1 文档编号:494551862 上传时间:2022-09-08 格式:DOC 页数:17 大小:1.05MB
返回 下载 相关 举报
基于FPGA的16&amp#215;16点阵汉字显示设计_第1页
第1页 / 共17页
基于FPGA的16&amp#215;16点阵汉字显示设计_第2页
第2页 / 共17页
基于FPGA的16&amp#215;16点阵汉字显示设计_第3页
第3页 / 共17页
基于FPGA的16&amp#215;16点阵汉字显示设计_第4页
第4页 / 共17页
基于FPGA的16&amp#215;16点阵汉字显示设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于FPGA的16&amp#215;16点阵汉字显示设计》由会员分享,可在线阅读,更多相关《基于FPGA的16&amp#215;16点阵汉字显示设计(17页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上EDA课程设计题 目: 16*16点阵显示器的设计 班 级: 08电子信息工程(应电方向)院 系: 应用技术学院 姓 名: 学号: 实验地点: 应用技术学院 综合实验室 指导老师: 王悦善 职称: 讲师 成 绩: ( 2011年6月2日 )目录1. 前言1.1 本设计的研究背景和研究目的随着我国经济的高速发展,对公共场合发布信息的需求日益增长,利用LED点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行PCB板级的系统集成。尽管这种方案有单片机软件的支持较为灵活

2、,但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。随着电子设计自动化(EDA)技术的进展,基于可编程FPGA器件进行系统芯片集成的新设计方法,也正在快速地到代基于PCB板的传统设计方式。因此,本设计的研究是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的VHDL语言编写主程序。1.2 LED点阵显示特点(1)可以显示各种数字、文字、图表、曲线、图形;(2)采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、丰富;(3)显示效果清晰

3、、稳定、功耗低、寿命长;(4)优质铝合金结构,磨沙、银镜或钛金不锈钢包边。尺寸和规格可根据需要灵活组合;(5)支持各种计算机网络,编辑软件丰富、易用;(6)适用于室内、外所有信息发布及广告宣传场所。如:银行、证券交易所、商场、市场、宾馆、洒楼、电信、邮政、医院、车站、机场等。1.3 FPGA设计的特点FPGA 通常被认为是ASIC 实现的一种替代手段. 一般ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以及可编程器件。对于前两种, 需要支付不可重复使用的工程费用NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费

4、用一般在1 万至数万美元以上。如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。成本高、风险大, 而通常对每个ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。而对于可编程器件PLD (Programmable Logic Device) 正是可以解决上述问题的新型ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的PLD, 其除了具有PLD 的优点外, 其规模比一般的PLD 的规模大。目前,Xilinx 推出的XC4025 可以达到25000 门的规

5、模,Altera 公司的FLEX10K100 系列芯片可达到十万门的规模,完全可以满足用户的一般设计需要。 FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。 但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。 所以, 在设计者选定某一FPGA器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。 离开对FPGA 结构的详细了解, 设计人员就不可能优化

6、设计。因而设计人员必须了解FPGA 器件的特性和限制, 熟悉FPGA 的结构。在了解FPGA 结构特点的基础上, 就可以利用VHDL 语言描写出高效的电路描述实现性能优化的电路。2 系统设计2.1.1设计任务与要求(1) 使用FPGA设计一个1616的点阵显示的控制器,使点阵显示器循环多个显示汉字;(2) 运用Quartus II 软件对程序进行编译和仿真;(3) 每人撰写一份课程设计报告,要求不少于两千字;(4) 课程设计最后一节课交报个并对自己做的设计简单介绍及答辩。2.1.2 设计要求(1) 输出预定义多个汉字(不少于4个);(2)输出汉字以1s循环显示;(3)操作方便、可维护性高;(4

7、)程序简捷,便于修改。2.2 设计原理方案一:每次显示一个汉字,一秒钟后刷新显示第二汉字,一秒钟后刷新显示第三汉字,依次刷新显示“张英黄娜”,循环显示四汉字。方案二:使用滚屏2.3扫描控制模块1616扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。 通过时钟的每列扫描显示完整汉字。 图2-2 LED灯红绿信号 图2-3 1616点阵LED等效电路点阵LED一般采用扫描式显示,实际运用分为三种方式: (1)点扫描(2)行扫描(3)列扫描若使

8、用第一种方式,其扫描频率必须大于1664=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于168=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(16颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。2.4方案选择2.4.1 方案一:1616扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。通过CPLD芯片产生读时序,将字形从寄存器中读出,然后产生写时序,写入1616的点阵

9、,使其扫描显示输出。为了显示整个汉字,首先分布好汉字的排列,以行给出汉字信息(从16个X轴线输入字模信息);然后以128HZ的时序逐个点亮每一行(行扫描),即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴(要点亮的二极管给出低电平字模信息)。如果采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。如果采取行扫描方式,用列给文字信息,利用周期为1s的脉冲来控制所显示的字。2.4.2方案二 汉字的存储用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工

10、作。第一步是获得数据并保存,即在存贮器中建立汉字数据库。第二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图3.3所示的被分成1616共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以3216的数据结构组成64个字节的数据,并保存在只读存贮器ROM中。以这种方式将若干个汉字的数据贮存在存贮器内,就完成了图像数据库的建立工作。 图3.3 16*16点阵显示模块经综合考虑,方案一控制和方案二比较起来比较难,而且方案一程序

11、较复杂,对于我们学生来说设计经验不足,不容易把握,因此选择方案二。2.5实现汉字显示使用的是1616的点阵,EDA实验箱上有其接口电路,列选信号为addrs0,addrs1,addrs2,addrs3)经4线16线译码器输出16列,从左起为第一列,列选信号是由一个4位向量SEL3.0控制;行选信号为data150,是由16个行信号组成的,每一行由一个单独的位来控制,高电平有效。例如“0000”表示第0列,“00001”表示第一行的点亮。由于列是由一个向量决定,而每一时刻的值只能有一个固定的值,因而只能使某一列的若干个点亮,因此就决定了只能用逐列扫描的方法。例如要使第一列的2,4,6,8,行亮,

12、则列为“0001”、行为“01010”就可以实现了。2.5.1列循环扫描列循环扫描,通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连续的感觉。因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续,本设计的扫描频率不得低于50Hz,扫描程序如下:process(clk)-送16位地址程序variable js:integer:=0;variable cnt:std_logic_vector(3 downto 0); beginif clkevent and clk=1 then-当时钟clk上升沿到来时,产生一个4位的2进制计数器cntif js10000 thenjs:=js+1;elsejs:=0;if cnt=1111 thencnt:=0000;else cnt:=cnt+1;end if;end if;end if;ad case ad is when 0000=datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanull; end case; when 01= cas

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号