《CPLD字符发生器的设计.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《CPLD字符发生器的设计

字符发生器的设计 一、实验目的:1、掌握字符发生器原理; 2、通过自己完成程序设计,掌握字符发生器的设计方法; 3、通过自己完成程序设计,掌握VHDL的编程方法; 二、设计要求:1、自己完成各模块的程序编写; 2、设计的字数必须超过9个字以上(包含9个字); 3、字符中包含自己的名字; 使用硬件:16×16LED点阵,FPGA芯片(Cyclone EP1C12Q240C8)及连线; 四、设计原理 1、LED显示原理 16X16的点阵显示是传统的点阵显示的基本应用,它是很多复杂的显示的基础。这种点阵的显示可以使用多种方法来实现,其中所用到的期间也不尽相同,但是很多基本的算法和思想都是相同的,只是根据不同的硬件,具体的方法有所区别。目前这种简单的显示方法已经很成熟了,很多地方会用到它。例如在火车站、机场、银行、证券公司等公共场所的信息显示都是用的点阵显示。有些场所使用了一些更为复杂的点阵。随着硬件水平的提高,显示的效果会更加美观。现设计一个16X16点阵。要求汉字可不断地循环显示,并且使每个汉字之间有停顿。 一个汉字,常见的是 16×16 的点阵, 256 个发光点。 这些点,并不是同时发光的。 如果每一瞬间,只有一行发光,那就需要把整个的汉字“横向取模”,送到显示屏; 如果每一瞬间,只有一列发光,那就需要把整个的汉字“纵向取模”,送到显示屏。 16×16扫描LED点阵的工作原理同8位扫描数码管类似。 它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。所以其扫描译码地址是4位信号线。其汉字扫描码由 16 位段地址(l0-l15)输入。 通过时钟的每列扫描显示完整汉字。2864E2PROM存储器是电擦除/编程的只读存储器,容量为8K×8Bit,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存储空间为32字节即32×8Bit,也就是说2684最多可连续存256个16×16点阵字形。存储方式可事先约定好。 本设计就是要通过CPLD芯片产生读时序,将字形从2864中读出,然后产生写时序,写入16×16的点阵,使其扫描显示输出。 字库格式说明 这是一16×16点阵字库,一个字占32个字节,例如“正”: ◎所对应的32个字节是: W0,W1,W2,W3,W4, W5,W6,W7…… 五、设计程序及仿真图 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dots_test is port ( clk:in std_logic; dotout:out std_logic_vector(15 downto 0); selout:out std_logic_vector(3 downto 0) ); end dots_test; architecture a of dots_test is signal sel_tmp:std_logic_vector(3 downto 0); signal dot_tmp:std_logic_vector(15 downto 0); type dot_type is array (0 to 15) of std_logic_vector(15 downto 0); --定义16个长度为16位的数组,用来存放每一行的显示值 signal dotout_tmp:dot_type; constant dotout_tmp1:dot_type:= --自 (x"0000",x"0000",x"0000",x"FFF8",x"4448",x"4448",x"4448",x"444A", x"444B",x"444C",x"4448",x"4448",x"FFF8",x"0000",x"0000",x"0000"); constant dotout_tmp2:dot_type:= --动 (x"0000",x"0000",x"3FF0",x"4010",x"2010",x"03FF",x"0C10",x"1010", x"2420",x"4E24",x"0524",x

文档评论(0)

1789811832 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档