收藏 分销(赏)

数字系统设计任务书-汉字的LED点阵动态显示.doc

上传人:天**** 文档编号:2670355 上传时间:2024-06-04 格式:DOC 页数:17 大小:1.35MB
下载 相关 举报
数字系统设计任务书-汉字的LED点阵动态显示.doc_第1页
第1页 / 共17页
数字系统设计任务书-汉字的LED点阵动态显示.doc_第2页
第2页 / 共17页
数字系统设计任务书-汉字的LED点阵动态显示.doc_第3页
第3页 / 共17页
数字系统设计任务书-汉字的LED点阵动态显示.doc_第4页
第4页 / 共17页
数字系统设计任务书-汉字的LED点阵动态显示.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、数字系统设计任务书_汉字的LED点阵动态显示 作者: 日期:2 个人收集整理 勿做商业用途 数字系统设计报告学 院(部): 电气与信息工程学院 专 业: 自动化 学 生 姓 名: 陈建允 指 导 老 师: 聂辉 班 级: 1002 学号 10401700504 2013年11月数字系统设计任务及要求学院:电气与信息工程学院 班级:自动化1002班 姓名:陈建允 学号:10401700504 课题汉字的LED点阵动态显示系统功能要 求通过用Quartus设计、调试1616点阵动态显示,熟悉Quartus的设计输入、设计编译、仿真验证、时序分析、器件编程等基本操作。本设计要求掌握汉字的点阵显示原理

2、、LED点阵的组成及驱动原理、字模软件的使用和汉字动态显示的编程方法。具体要求:1。用一个1616的LED点阵显示“班级,姓名,2013年11月18日2。至少用以下一种方法实现上面的显示。 显示方式 :a按钮k0一次就显示下一个字符;b左移显示; c右移显示 d上移显示; e下移显示;其中a方式可以用按键按下显示下一个字,用单次脉冲开关进行切换,即按一次单次脉冲开关显示一个汉字或数字;也可用软件控制,每隔一定时间显示一个字。汉字字模数据:1616,宋体。字模提取方法:从第一个开始向下每取8个点作为一个字节,如果最后不足8个点就补满8位.取模顺序:从高到低,即第一个点作为最高位。如-取为1000

3、0000。3。电路原理图:使用visio或protel 或proteus 绘制4。编程思路,用visio画程序设计流程图或用文字描述5.详细的程序清单(Quartus工程文件夹)6.仿真过程及结果(截图,视频),RTL图等工具ELEDAV+试验箱。FPGA型号芯片EP1K30TC144-3 .1616LED点阵进度安排第1周:理解设计内容,查阅资料,确定设计思路并撰写计划,完成方案设计以及电路原理图设计,并开始软件设计。第2周:主要做程序设计,用实验箱调试程序(验收),撰写实验报告,用A4打印。 汉字的LED点阵动态显示一、 系统设计要求;通过用Quartus设计、调试1616点阵动态显示,熟

4、悉Quartus的设计输入、设计编译、仿真验证、时序分析、器件编程等基本操作。本设计要求掌握汉字的点阵显示原理、LED点阵的组成及驱动原理、字模软件的使用和汉字动态显示的编程方法。具体要求:1。用一个1616的LED点阵显示“班级,姓名,2013年11月18日。2.至少用以下一种方法实现上面的显示。 显示方式 :a按钮k0一次就显示下一个字符;b左移显示; c右移显示 d上移显示; e下移显示;其中a方式可以用按键按下显示下一个字,用单次脉冲开关进行切换,即按一次单次脉冲开关显示一个汉字或数字;也可用软件控制,每隔一定时间显示一个字。汉字字模数据:1616,宋体。 字模提取方法:从第一个开始向

5、下每取8个点作为一个字节,如果最后不足8个点就补满8位。 取模顺序:从高到低,即第一个点作为最高位.如*-取为10000000。 3。电路原理图:使用visio或protel 或proteus 绘制. 4。编程思路,用visio画程序设计流程图或用文字描述。 5.详细的程序清单(Quartus工程文件夹).6.仿真过程及结果(截图,视频),RTL图等。二、 系统设计原理;2.1、LED的显示原理; 1616扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0SEL3),其汉字扫描码由16位段地址(0

6、-15)输入。 通过时钟的每列扫描显示完整汉字。 图21 LED灯红绿信号 图2-2 1616点阵LED等效电路点阵LED一般采用扫描式显示,实际运用分为三种方式: (1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于1664=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于168=128Hz,周期小于7。8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。2.2、汉字的储存;用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作.第一步是获得数据并保存,即在存贮器中建立汉字数据库。第

7、二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图3。3所示的被分成1616共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以3216的数据结构组成64个字节的数据,并保存在只读存贮器ROM中。以这种方式将若干个汉字的数据贮存在存贮器内,就完成了图像数据库的建立工作。 2.3、设计方案; 1616扫描LED点阵只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可.应用时

8、限流电阻可以放在X轴或Y轴。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。本实验就是要通过CPLD芯片产生读时序,将字形 从寄存器中读出,然后产生写时序,写入1616的点阵,使其扫描显示输出.为了显示整个汉字,首先分布好汉字的排列,以列给出汉字信息(从16个Y轴线输入字模信息);然后以128HZ的时序逐个点亮每一行(行扫描),即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴(要点亮的二极管给出低电平字模信息)。本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发

9、光;反之处于截止状态,不放光。本实验采取列扫描方式,用列给文字信息,利用周期为1s的脉冲来控制所显示的字。 图23 点阵原理图 图24 取字模三、VHDL源程序;3.1、延时消抖程序-延时消抖程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164。ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BUTTON ISPORT(CLK:IN STD_LOGIC; KEY:IN STD_LOGIC; BUTTON:OUT STD_LOGIC);END ENTITY BUTTON;ARCHITECTURE ART OF BUTTON ISSIG

10、NAL COUNT:INTEGER:=0;BEGINPROCESS(CLK,KEY)ISBEGINIF(CLKEVENT AND CLK=1)THENIF KEY=0THENIF COUNT=10000 THEN COUNT=COUNT;按键消抖 10ms 默认输入CLK:1MHzELSE COUNT=COUNT+1;END IF;IF COUNT=100001 THEN BUTTON=0; -按下及长按都只出现一个低电平ELSE BUTTON=1;END IF;ELSE COUNT=0;END IF;END IF;END PROCESS;END ARCHITECTURE ART;3。2、汉字

11、显示程序-汉字显示程序,带按键切换LIBRARY IEEE;USE IEEE.STD_LOGIC_1164。ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LATTICE ISPORT(CLK:IN STD_LOGIC; BUTTON:IN STD_LOGIC; LEDD:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); LEDW:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY LATTICE;ARCHITECTURE ART OF LATTICE ISSIGNAL M:INTEGER:=0;SI

12、GNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0):=0000;BEGIN PROCESS(CLK,BUTTON)BEGINIF CLKEVENT AND CLK=1 THEN COUNT=COUNT+1;IF(M=0)THENCASE COUNT IS-0x00,0x00,0x7F,0xFF,0x44,0x40,0x4A,0x20,0x71,0xC4,0x00,0x08,0x23,0x30,0x2D,0x02,0x31,0x01,0xE7,0xFE,0x21,0x00,0x21,0x40,0x21,0x20,0x21,0x18,0x20,0x0C,0x00,0x0

13、0,/”陈,0/WHEN 0000”=LEDD=”0000000000000000”;WHEN ”0001”=LEDD=0111111111111111;WHEN 0010=LEDDLEDD=”0111000111000100;WHEN ”0101=LEDD=”0000000000001000”;WHEN ”0110”=LEDDLEDDLEDDLEDD=”0010000100011000;WHEN 1110”=LEDDLEDDLEDDLEDD=”0100011000101000;WHEN ”0011=LEDD=”0101101000010000;WHEN ”0100=LEDD=”0110001

14、111101000”;WHEN 0101=LEDD=”0000100000010010”;WHEN 0110”=LEDD=0010101010010100”;WHEN ”0111”=LEDD=0010101010010010;WHEN ”1000=LEDD=”0010101010010010;WHEN 1001=LEDD=1111111111111110”;WHEN 1010=LEDD=”0010101010010010”;WHEN 1011=LEDD=”0010101010010010;WHEN 1100”=LEDD=”0011111010010010;WHEN 1101”=LEDDLEDD

15、LEDD=0000000000000000;WHEN OTHERS=COUNT=”0000”;END CASE;END IF;IF(M=2)THENCASE COUNT IS-0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x04,0x0E,0x08,0x34,0x30,0xC7,0xC0,0x04,0x00,0x04,0x00,0x07,0xFC,0x04,0x02,0x14,0x02,0x0E,0x02,0x04,0x02,0x00,0x0E,0x00,0x00,/允”,2*/WHEN 0000”=LEDD=0000000000000000”;WHEN ”0001”

16、=LEDD=0000000000000001;WHEN ”0010=LEDDLEDDLEDD=0011010000110000;WHEN ”0110=LEDDLEDDLEDD=0000011111111100;WHEN 1010=LEDD=”0000010000000010;WHEN 1011=LEDD=0001010000000010”;WHEN 1100=LEDDLEDDLEDD=0000000000001110;WHEN ”1111”=LEDDCOUNTsimulation report 。五、逻辑综合与结果分析。VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以

17、描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法.VHDL是超高速集成电路的硬件描述语言,它能够描述硬件的结构、行为与功能.另外,VHDL具有并发性,采用自上而下的结构式设计方法,适合大型设计工程的分工合作。在编写程序的时候,我才发现能看懂程序和能自己写程序是两个完全不同的概念,自己一开始写程序时,即便是一个很简单的功能模块,在编译时也可能产生很多错误,在不断的改错过程中,自己对VHDL语言的语法结构有了深刻的理解,对编译过程中常见的错误也有了全面的认识.通过这两周的课程设计,我在熟悉了基于FPGA设计的同时,也学到了很多在学习课本知识时所体会不到的东西。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服