基于FPGA的16×16点阵汉字显示设计
- 格式:doc
- 大小:1.12 MB
- 文档页数:17
第45卷 第10期 2018年10月天 津 科 技TIANJIN SCIENCE & TECHNOLOGYV ol.45 No.10Oct. 2018*通讯作者基金项目:天津科技大学大学生实验室创新基金(No.1702A203),全国高校实验室工作研究会学术研究计划(No.SY2015Z059)。
收稿日期:2018-09-05应用技术基于FPGA 的16×16点阵模块控制器设计乔广欣,李亚峻*,李 松,杨 堃斌,于宝(天津科技大学电子信息与自动化学院 天津300222)摘 要:为了减少芯片IO 口的占用,由74HC138驱动点阵行、由74HC595驱动点阵列。
为了用FPGA 芯片控制点阵显示,用VHDL 语言编程实现。
介绍了16×16点阵模块的硬件连接,分析了74HC595的工作时序和点阵列数据的存储与调用,进而提出点阵行列控制器的VHDL 程序设计方法,用于实现装载新数据、选通点阵行、16位数据先低位后高位的串行输出、产生74HC595的时钟信号和输出锁存信号。
将Basys2开发板与点阵模块相连,将程序下载到FPGA 上,实现了16×16点阵的显示,验证了设计的正确性,具有实际应用价值。
关键词:现场可编程门阵列 VHDL 语言 点阵显示 74HC595芯片 74HC138芯片 中图分类号:TP332.1 文献标志码:A 文章编号:1006-8945(2018)10-0059-03Design of 16×16 Dot Matrix Module Controller Based on FPGAQIAO Guangxin ,LI Yajun*,LI Song ,YANG Bin ,YU Baokun(College of Electronic Information and Automation ,Tianjin University of Science & Technology ,Tianjin 300222,China )Abstract :74HC138 and 74HC595 were used to drive dot matrix row and column respectively to reduce the occupation of the chip IO port. Programming was implemented using VHDL language to control the dot matrix display via FPGA chip.This paper introduces hardware connection of the 16×16 dot matrix module ,and analyzes the timing of the 74HC595 and storage and transfer of dot matrix column data. A VHDL program design method for dot matrix row and column controller was proposed to implement new data loading ,the strobe dot matrix row ,16-bit data serial output according to the low first and then high ,the generation of 74HC595 clock signal and output latch signal. The dot matrix module is connected to the Basys2 development board ,and the program is downloaded to the FPGA.A 16×16 dot matrix display is implemented ,which verifies the correctness of the design. The design has practical application value.Key words :FPGA ;VHDL language ;dot matrix display ;74HC595;74HC138LED 点阵显示系统不仅能够静态显示字符和图像,而且能够动态显示文字、动画、视频等信息,具有亮度高、寿命长、价格低、视角大等优点,得到广泛 应用。
北华航天工业学院《EDA技术综合设计》课程设计报告报告题目:16*16点阵字符发生器作者所在系部:电子工程系作者所在专业:通信工程作者所在班级:作者姓名:学号:指导教师姓名:陈刚完成时间:2011年12月22日内容摘要随着微电子技术和计算机技术的发展,电子信息产品更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计与制作技术的发展,其核心就是电子设计自动化——EDA。
16点阵显示器是一个发光二极管阵列,我们所用的是16个共阴极二级管组成一列,共16列的显示器。
只要让二极管阴极接低电平,阳极接高电平,便可使这个二极管亮,同构不同二极管的组合,便可显示要现实的内容。
16点阵显示器在日常生活中随处可见,掌握对16点阵显示器控制显示的方法,是很重要的。
实验是使用FPGA设计一个16×16的点阵显示的控制器,使点阵显示器显示汉字及花样。
我们所做的花样一个是字的显示,显示:北华工业生日快乐列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。
通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用QuartusⅡ对应用程序了仿真,并给出了相应的仿真结果。
关键词EDA、可编程逻辑器件、时钟源、16*16点阵字符发生器目录一、设计要求 (5)二、实验目的 (5)三、硬件要求 (5)四、实验原理 (5)五、硬件电路设计 (6)六、实验步骤 (10)七、实验结果 (11)八、总结 (12)九、参考文献 (13)课程设计任务书课题名称16*16点阵字符发生器完成时间12-22 指导教师陈刚职称教授学生姓名班级总体设计要求和技术要点使用FPGA设计一个16×16的点阵显示的控制器,使点阵显示器显示“北华工业生日快乐”八个字。
设计一个16进制计数器对花样进行选择,设计一个行列驱动控制器,对行列进行驱动,将两部分结合在一起,下载到FPGA芯片中即可完成。
EDA课程设计题目: 16*16点阵显示器的设计班级:08电子信息工程(应电方向)院系:应用技术学院姓名:学号:实验地点:应用技术学院综合实验室指导老师:王悦善职称:讲师成绩:( 2011年6月2日 )目录1. 前言 (2)1.1本设计的研究背景和研究目的 (2)1.2LED点阵显示特点 (2)1.3FPGA设计的特点 (2)2 系统设计 (3)2.1.1设计任务与要求 (3)2.1.2 设计要求 (3)2.2设计原理 (3)2.3扫描控制模块 (3)2.4方案选择 (3)2.4.1 方案一: (3)2.4.2方案二汉字的存储 (4)2.5实现 (4)2.5.1列循环扫描 (4)2.5.2字符样式设计 (5)3. 系统调试与仿真 (8)3.1开发环境介绍 (8)3.2调试与仿真 (8)3.2.1 创建工程 (8)3.2.2 编译前设置 (8)3.2.3 全程编译 (10)3.2.4功能仿真 (10)4 结束语 (12)5 参考文献 (12)6 附录:程序 (13)1. 前言1.1 本设计的研究背景和研究目的随着我国经济的高速发展,对公共场合发布信息的需求日益增长,利用LED点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。
采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行PCB板级的系统集成。
尽管这种方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。
随着电子设计自动化(EDA)技术的进展,基于可编程FPGA器件进行系统芯片集成的新设计方法,也正在快速地到代基于PCB板的传统设计方式。
因此,本设计的研究是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。
并且采用编写灵活的VHDL语言编写主程序。
中国矿业大学徐海学院《MCU/FPGA控制的小型字符显示屏设计与研制》设计制作要求2012-5本设计的研究目标,是利用LED显示板和51单片机/FPGA,设计、制作一个具备字符、数据显示功能、有一定应用价值的小型LED点阵字符显示屏。
1、研究内容1)使用8Ⅹ8 LED显示板,构建一个点阵为16Ⅹ16的小型LED 显示屏,要求能以静态方式显示字符/数字/汉字,也能以流动方式显示多个汉字(如流动显示“徐海学院欢迎你!”)。
2)该显示板使用的直流供电电源为+5V,输出电流>1A,可使用现成的5V直流稳压电源。
2、实施方案:本项目可分成4大部分:1)单片机硬件电路设计。
通过单片机串行通讯接口,实现字符点阵数据的串行输出。
要求数据输出电路尽可能的简单、高效;2)利用ACEX 1K30 FPGA器件作为单片机串行输出数据的串并转换电路,利用1K30 FPGA器件内部逻辑部件多、引脚多的特点,直接驱动一个16Ⅹ16点阵LED显示屏。
13)研究从PC机汉字库中提取字符与汉字字模点阵的方法与程序(可使用现成的汉字字模点阵提取软件);4)编写51单片机数据输出软件程序以及1K30 FPGA器件的接口设计AHDL程序,使系统满足预期的设计要求;5)使用实验室提供的系统板(包含有89C51单片机和ACEX 1K30 FPGA器件,以及他们的下载接口)来进行本系统的制作、调试与运行。
3、实施步骤1) 理论设计,先理顺设计思路;2) 提出设计方案与硬件电路。
硬件电路做在2块电路板上(点阵显示板及89C51单片机+ACEX 1K30 FPGA器件的系统板。
3) 设计、焊接、安装、运行、调试,达到预期的字符显示目标;4) 完成单片机程序设计与编译、下载和调试,完成ACEX 1K30FPGA器件的应用设计与编译、下载和调试。
5) 进行全系统测试与调试,直到满足系统功能要求。
4、技术关键:1)设计满足系统功能要求的单片机/FPGA硬件电路;2)掌握汉字字符点阵数据获取与取得方法;3)设计单片机控制软件,实现汉字字符的流动显示。
LED16×16点阵汉字显示设计(VHDL版)基于FPGA的毕业设计(论文)开题报告设计(论文)主题LED 16×16点阵汉字显示设计一、选题的背景和意义:LED点阵显示屏是集微电子技术、计算机技术和信息处理技术于一体的大型显示屏系统。
由于其色彩鲜艳、动态范围宽、亮度高、使用寿命长、运行稳定可靠,已成为许多显示媒体和户外操作显示器的理想选择。
在体育场馆对LED显示屏需求快速增长的驱动下,近年来LED显示屏在中国的应用逐渐增多。
目前,发光二极管已广泛应用于银行、火车站、广告和体育场馆。
随着奥运会和世博会的临近,LED显示屏将广泛应用于体育场馆和道路交通指示。
发光二极管显示屏在体育广场的应用将会迅速增长。
因此,这种设计是非常必要的。
基于现场可编程门阵列(FPGA)设计的原因是现场可编程门阵列(FPGA)设计周期短、灵活性高,适用于小批量系统,提高了系统的可靠性和集成度。
主程序用灵活的VHDL语言编写。
这种设计可以方便地应用于各种广告。
二、课题研究的主要内容:1.用16×16点阵实现汉字显示;2.实现有限的汉字显示;5.完成方案演示。
三、主要研究(设计)方法:通过去图书馆查找书籍和收集数据,同时在搜索引擎上搜索数据,分析和参考现有的类似产品、设计方案和成功经验,选择几个可行的方案进行比较,最终确定最实用的方案进行设计。
利用Multisim或Quartus软件对系统进行仿真,以改善和完善电路功能。
EDA测试箱的调试。
四、设计(论文)计划表:时间(截止日期)在XXXX工作的几年中,中国的发光二极管显示屏的应用逐渐增加。
目前,发光二极管已广泛应用于银行、火车站、广告和体育场馆。
随着奥运会和世博会的临近,LED显示屏将广泛应用于体育场馆和道路交通指示。
发光二极管显示屏在体育广场的应用将会迅速增长。
因此,这种设计是非常必要的。
基于FPGA设计的原因是现场可编程门阵列(FPGA)设计周期短、灵活性高,适用于小批量系统,提高了系统的可靠性和集成度。
16乘16点阵LED电子显示屏的设计概述本文将讨论16乘16点阵LED电子显示屏的设计。
这是一个可以显示图形和文字的电子屏幕,使用16列和16行LED灯来组成一个点阵,可以显示256个像素。
这样的屏幕可以广泛应用于科技展示、娱乐游戏和家庭电子设备等领域。
设计硬件LED灯基本的LED操作和驱动电路在这里不再赘述。
需要注意的是,对于16行LED 灯和16列LED灯,需要使用合适的电流控制电路并且保证它们可以受到足够的电流。
此外,将需要16个NPN晶体管来控制16列LED灯,和16个PNP晶体管来控制16行LED灯。
控制器在控制器的选择上推荐使用ATmega328p微控制器。
这个控制器也是Arduino Uno的基础。
软件代码结构代码文件应当按照以下结构进行组织:Libraries/SevSeg/SevSeg.hLedControl/LedControl.hLedControl.cppMAX7219.hMAX7219.cppSPI.hSPI.cpp16x16LEDMatrix/16x16LEDMatrix.inoREADME.md这里我们使用SevSeg和LedControl库。
打包由于ATmega328p微控制器的内存限制,将需要对代码进行压缩,以减小程序的尺寸,使它适合在所预算的存储设备中运行。
可以通过使用压缩工具完成这个任务。
推荐使用zip或tar。
结论在这篇文档中,我们讨论了16乘16点阵LED电子显示屏的设计。
我们详细介绍了硬件和软件方面的设计需求以及代码结构的组织。
通过对这些内容的了解,你可以开始创建你自己的16乘16点阵LED电子显示屏!。
基于FPGA的汉字显示系统设计董莹【期刊名称】《价值工程》【年(卷),期】2012(031)010【摘要】This paper introduces the basic principles and design method of displaying Chinese characters by Chinese characters display system based on FPCA in 16x16 dot matrix display; expounds design principle of Chinese characters display system based on FPCA, analyzes ways of designing cycle display of Chinese characters with simpler method, combining with an example; finally the Block Diagram / Schematic File and part VHDL source file are given.%文章介绍了FPGA构建的汉字显示系统在16×16点阵显示器上显示汉字的基本原理和系统设计方法;阐述了基于FPGA的汉字显示系统设计的原理,并结合实例分析如何用较为简单的方法设计循环汉字显示;最后给出了Block Diagram/Schematic File和部分VHDL源文件.【总页数】2页(P166-167)【作者】董莹【作者单位】青海民族大学,西宁810007;西安电子科技大学研究生院,西安710071【正文语种】中文【中图分类】TP31【相关文献】1.基于FPGA的汉字点阵显示系统设计 [J], 郭志冬2.汉字显示加速系统设计及FPGA实现 [J], 周俊明;胡小龙;刘少庆3.基于FPGA的VGA汉字显示系统设计与实现 [J], 袁堂青;张玉璘4.基于图形液晶显示器的汉字显示系统设计与仿真 [J], 朱清慧;陈绍东;徐志强5.基于FPGA的VGA汉字显示器设计 [J], 李营;殷小杭;吕兆承;陈帅;权循忠因版权原因,仅展示原文概要,查看原文内容请购买。
电子综合设计方案题目:16*16点阵汉字显示屏显示设计年级专业:电气学生姓名:2011年12 月10 日第一章课题简介1.1 LED显示简介LED显示屏:它是一种通过控制半导体发光二极管的显示方式,其大概的样子就是由很多个通常是红色的发光二极管组成,靠灯的亮灭来显示字符。
用来显示文字、图形等各种信息的显示屏幕。
LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点在车站、证券所、运动场馆、交通干道及各种室内/外显示场合的信息发布,公益宣传,环境参数实时,重大活动倒计时等等得到广泛的应用。
单片机控制系统程序采用单片机汇编语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
所显示字符的点阵数据可以自行编写,也可从标准字库中提取。
第二章课题系统整体方案2.1 需要实现的功能本设计是一16×16点阵LED电子显示屏的设计。
整机以40脚单片机AT89C51为核心,通过该芯片控制列驱动器74HC595来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,全屏能显示1个汉字。
显示可以采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
开关控制显示“矿大电气五班”、“电子综合设计”的字幕。
同时还要实现的功能:5V的电压输入,时钟电路的设置,复位电路的设置,单片机给74HC154芯片同时给E1和E2低电平,74LS154才能正常的工作。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y,16*16LED 点阵如图2.1.1所示。
图 2.1.116X16点阵LED 工作原理说明 : 16X16点阵共需要256个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
EDA课程设计题目: 16*16点阵显示器的设计班级:08电子信息工程(应电方向)院系:应用技术学院姓名:学号:实验地点:应用技术学院综合实验室指导老师:王悦善职称:讲师成绩:( 2011年6月2日 )目录1. 前言 (2)1.1本设计的研究背景和研究目的 (2)1.2LED点阵显示特点 (2)1.3FPGA设计的特点 (2)2 系统设计 (3)2.1.1设计任务与要求 (3)2.1.2 设计要求 (3)2.2设计原理 (3)2.3扫描控制模块 (3)2.4方案选择 (3)2.4.1 方案一: (3)2.4.2方案二汉字的存储 (4)2.5实现 (4)2.5.1列循环扫描 (4)2.5.2字符样式设计 (5)3. 系统调试与仿真 (8)3.1开发环境介绍 (8)3.2调试与仿真 (8)3.2.1 创建工程 (8)3.2.2 编译前设置 (8)3.2.3 全程编译 (10)3.2.4功能仿真 (10)4 结束语 (12)5 参考文献 (12)6 附录:程序 (13)1. 前言1.1 本设计的研究背景和研究目的随着我国经济的高速发展,对公共场合发布信息的需求日益增长,利用LED点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。
采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行PCB板级的系统集成。
尽管这种方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。
随着电子设计自动化(EDA)技术的进展,基于可编程FPGA器件进行系统芯片集成的新设计方法,也正在快速地到代基于PCB板的传统设计方式。
因此,本设计的研究是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。
并且采用编写灵活的VHDL语言编写主程序。
1.2 LED点阵显示特点(1)可以显示各种数字、文字、图表、曲线、图形;(2)采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、丰富;(3)显示效果清晰、稳定、功耗低、寿命长;(4)优质铝合金结构,磨沙、银镜或钛金不锈钢包边。
尺寸和规格可根据需要灵活组合;(5)支持各种计算机网络,编辑软件丰富、易用;(6)适用于室内、外所有信息发布及广告宣传场所。
如:银行、证券交易所、商场、市场、宾馆、洒楼、电信、邮政、医院、车站、机场等。
1.3 FPGA设计的特点FPGA 通常被认为是ASIC 实现的一种替代手段. 一般ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以及可编程器件。
对于前两种, 需要支付不可重复使用的工程费用NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费用一般在1 万至数万美元以上。
如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。
成本高、风险大, 而通常对每个ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。
而对于可编程器件PLD (Programmable Logic Device) 正是可以解决上述问题的新型ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的PLD, 其除了具有PLD 的优点外, 其规模比一般的PLD 的规模大。
目前,Xilinx 推出的XC4025 可以达到25000 门的规模,Altera 公司的FLEX10K100 系列芯片可达到十万门的规模,完全可以满足用户的一般设计需要。
FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。
但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。
FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。
所以, 在设计者选定某一FPGA器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。
离开对FPGA 结构的详细了解, 设计人员就不可能优化设计。
因而设计人员必须了解FPGA 器件的特性和限制, 熟悉FPGA 的结构。
在了解FPGA 结构特点的基础上, 就可以利用VHDL 语言描写出高效的电路描述实现性能优化的电路。
2 系统设计2.1.1设计任务与要求(1) 使用FPGA设计一个16×16的点阵显示的控制器,使点阵显示器循环多个显示汉字;(2) 运用Quartus II 软件对程序进行编译和仿真;(3) 每人撰写一份课程设计报告,要求不少于两千字;(4) 课程设计最后一节课交报个并对自己做的设计简单介绍及答辩。
2.1.2 设计要求(1) 输出预定义多个汉字(不少于4个);(2)输出汉字以1s循环显示;(3)操作方便、可维护性高;(4)程序简捷,便于修改。
2.2 设计原理方案一:每次显示一个汉字,一秒钟后刷新显示第二汉字,一秒钟后刷新显示第三汉字,依次刷新显示“张英黄娜”,循环显示四汉字。
方案二:使用滚屏2.3扫描控制模块16×16扫描LED点阵的工作原理同8位扫描数码管类似。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。
通过时钟的每列扫描显示完整汉字。
图2-2 LED灯红绿信号图2-3 16×16点阵LED等效电路点阵LED一般采用扫描式显示,实际运用分为三种方式:(1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(16颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
2.4方案选择2.4.1 方案一:16×16扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。
通过CPLD芯片产生读时序,将字形从寄存器中读出,然后产生写时序,写入16×16的点阵,使其扫描显示输出。
为了显示整个汉字,首先分布好汉字的排列,以行给出汉字信息(从16个X轴线输入字模信息);然后以128HZ的时序逐个点亮每一行(行扫描),即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。
LED点阵每个点都有一个红色的发光二极管。
点阵内的二极管间的连接都是行共阳,列共阴(要点亮的二极管给出低电平字模信息)。
如果采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。
如果采取行扫描方式,用列给文字信息,利用周期为1s的脉冲来控制所显示的字。
2.4.2方案二汉字的存储用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作。
第一步是获得数据并保存,即在存贮器中建立汉字数据库。
第二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。
获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图3.3所示的被分成16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以32×16的数据结构组成64个字节的数据,并保存在只读存贮器ROM中。
以这种方式将若干个汉字的数据贮存在存贮器内,就完成了图像数据库的建立工作。
图3.3 16*16点阵显示模块经综合考虑,方案一控制和方案二比较起来比较难,而且方案一程序较复杂,对于我们学生来说设计经验不足,不容易把握,因此选择方案二。
2.5实现汉字显示使用的是16×16的点阵,EDA实验箱上有其接口电路,列选信号为addrs[0],addrs[1],addrs[2],addrs[3)经4线16线译码器输出16列,从左起为第一列,列选信号是由一个4位向量SEL[3..0]控制;行选信号为data[15 0],是由16个行信号组成的,每一行由一个单独的位来控制,高电平有效。
例如“0000”表示第0列,“0000000000000001”表示第一行的点亮。
由于列是由一个向量决定,而每一时刻的值只能有一个固定的值,因而只能使某一列的若干个点亮,因此就决定了只能用逐列扫描的方法。
例如要使第一列的2,4,6,8,行亮,则列为“0001”、行为“0000000010101010”就可以实现了。
2.5.1列循环扫描列循环扫描,通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连续的感觉。
因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续,本设计的扫描频率不得低于50Hz,扫描程序如下:process(clk)--送16位地址程序variable js:integer:=0;variable cnt:std_logic_vector(3 downto 0);beginif clk'event and clk='1' then--当时钟"clk"上升沿到来时,产生一个4位的2进制计数器"cnt"if js<10000 thenjs:=js+1;elsejs:=0;if cnt="1111" thencnt:="0000";else cnt:=cnt+1;end if;end if;end if;ad<=cnt;end process;2.5.2字符样式设计本环节是建立一个数据库,使之能在扫描的同时读取所需要的信息,从而完成汉字的显示。
本次设计“张英黄娜”汉字样式设计程序如下:process(fenpin,ad)begincase fenpin iswhen "00"=>case ad iswhen "0000"=>data<="0100000001001111";--404F "张"when "0001"=>data<="0100100001001000";--4848when "0010"=>data<="0111100000000000";--7800when "0011"=>data<="0000000100000001";--0101when "0100"=>data<="1111111100000101";--FF05when "0101"=>data<="0000100100010001";--0911when "0110"=>data<="0110000100100001";--6121when "0111"=>data<="0000000100000000";--0100when "1000"=>data<="1000000011000000";--80C0when "1001"=>data<="1000001010000001";--8281when "1010"=>data<="1111111000000000";--FE00when "1011"=>data<="0000000000000010";--0002when "1100"=>data<="1111111100000010";--FF02when "1101"=>data<="1100010000110000";--C430when "1110"=>data<="0000100000000110";--0806when "1111"=>data<="0000010000000000";--0400when others=>null;end case;when "01"=>case ad iswhen "0000"=>data<="0010000000100000";--2020 "英"when "0001"=>data<="0010000000100111";--2027when "0010"=>data<="0010010011110100";--24F4when "0011"=>data<="0010010000101111";--242Fwhen "0100"=>data<="0010010000100100";--2424when "0101"=>data<="1111010000100111";--F427when "0110"=>data<="0010000000100000";--2020when "0111"=>data<="0010000000000000";--2000when "1000"=>data<="0100000001000000";--4040when "1001"=>data<="0100000111000010";--41C2when "1010"=>data<="0100010001001000";--4448when "1011"=>data<="0101000011100000";--50E0when "1100"=>data<="0101000001001000";--5048when "1101"=>data<="0100010011000110";--44C6when "1110"=>data<="0100001101000011";--4342when "1111"=>data<="0100000000000000";--4000when others=>null;end case;when "10"=>case ad iswhen "0000"=>data<="0000010001000000";--0440H "黄"when "0001"=>data<="0011111111111000";--3FF8Hwhen "0010"=>data<="0000010001000000";--0440Hwhen "0011"=>data<="0000010001000000";--0440Hwhen "0100"=>data<="1111111111111110";--FFFEHwhen "0101"=>data<="0000000100000000";--0100Hwhen "0110"=>data<="0001111111110000";--1FF0Hwhen "0111"=>data<="0001000100010000";--1110Hwhen "1000"=>data<="0000010001000000";--1110Hwhen "1001"=>data<="0001111111110000";--1FF0Hwhen "1010"=>data<="0000010001000000";--1110Hwhen "1011"=>data<="0000010001000000";--1110Hwhen "1100"=>data<="0001111111110000";--1FF0Hwhen "1101"=>data<="0000010001000000";--0440Hwhen "1110"=>data<="0000100000100000";--0820Hwhen "1111"=>data<="0001000000010000";--1010Hwhen others=>null;end case;when "11"=>case ad iswhen "0000"=>data<="0010000000000000";--2000H"娜"when "0001"=>data<="0001111111011110";--2FDEHwhen "0010"=>data<="0010001001010010";--2252Hwhen "0011"=>data<="0010001001010010";--2252Hwhen "0100"=>data<="1111001001010100";--F254Hwhen "0101"=>data<="0101011111010100";--57D4Hwhen "0110"=>data<="0101001001011000";--5258Hwhen "0111"=>data<="0101001001010100";--5254Hwhen "1000"=>data<="0101001001010010";--5252Hwhen "1001"=>data<="1001111111010010";--9FD2Hwhen "1010"=>data<="0101001001010010";--5252Hwhen "1011"=>data<="0010001001011010";--225AHwhen "1100"=>data<="0010001001010100";--2254Hwhen "1101"=>data<="0101010001010000";--5450Hwhen "1110"=>data<="0101010101010000";--5550Hwhen "1111"=>data<="1000100010010000";--8890Hwhen others=>null;end case;when others=>null;end case;end process;为使汉字不断地循环显示,并且使每个汉字之间有停顿,就需要在中间加一定的延时和循环环节。