1、数字系统设计任务书汉字的LED点阵动态显示 2 数字系统设计报告学 院(部): 电气与信息工程学院 专 业: 自动化 学 生 姓 名: 肖春元 指 导 老 师: 班 级: 1004 学号 10401700519 2013年11月数字系统设计任务及要求学院:电气与信息工程学院 班级:自动化1004班 姓名:肖春元 学号:10401700519 课题汉字的LED点阵动态显示系统功能要 求通过用Quartus设计、调试1616点阵动态显示,熟悉Quartus的设计输入、设计编译、仿真验证、时序分析、器件编程等基本操作。本设计要求掌握汉字的点阵显示原理、LED点阵的组成及驱动原理、字模软件的使用和汉字
2、动态显示的编程方法。具体要求:1.用一个1616的LED点阵显示“班级,姓名,2013年11月18日”2.至少用以下一种方法实现上面的显示。 显示方式 :a按钮k0一次就显示下一个字符;b左移显示; c右移显示 d上移显示; e下移显示;其中a方式可以用按键按下显示下一个字,用单次脉冲开关进行切换,即按一次单次脉冲开关显示一个汉字或数字;也可用软件控制,每隔一定时间显示一个字。汉字字模数据:1616,宋体。字模提取方法:从第一个开始向下每取8个点作为一个字节,如果最后不足8个点就补满8位。取模顺序:从高到低,即第一个点作为最高位。如*-取为10000000。3.电路原理图:使用visio或pr
3、otel 或proteus 绘制4.编程思路,用visio画程序设计流程图或用文字描述5.详细的程序清单(Quartus工程文件夹)6.仿真过程及结果(截图,视频),RTL图等工具EL-EDA-V+试验箱.FPGA型号芯片EP1K30TC144-3 .1616LED点阵进度安排第1周:理解设计内容,查阅资料,确定设计思路并撰写计划,完成方案设计以及电路原理图设计,并开始软件设计。第2周:主要做程序设计,用实验箱调试程序(验收),撰写实验报告,用A4打印。 汉字的LED点阵动态显示1、系统设计要求;通过用Quartus设计、调试1616点阵动态显示,熟悉Quartus的设计输入、设计编译、仿真验
4、证、时序分析、器件编程等基本操作。本设计要求掌握汉字的点阵显示原理、LED点阵的组成及驱动原理、字模软件的使用和汉字动态显示的编程方法。具体要求:1.用一个1616的LED点阵显示“班级,姓名,2013年11月18日”。2.至少用以下一种方法实现上面的显示。 显示方式 :a按钮k0一次就显示下一个字符;b左移显示; c右移显示 d上移显示; e下移显示;其中a方式可以用按键按下显示下一个字,用单次脉冲开关进行切换,即按一次单次脉冲开关显示一个汉字或数字;也可用软件控制,每隔一定时间显示一个字。汉字字模数据:1616,宋体。 字模提取方法:从第一个开始向下每取8个点作为一个字节,如果最后不足8个
5、点就补满8位。 取模顺序:从高到低,即第一个点作为最高位。如*-取为10000000。 3.电路原理图:使用visio或protel 或proteus 绘制。 4.编程思路,用visio画程序设计流程图或用文字描述。 5.详细的程序清单(Quartus工程文件夹)。6.仿真过程及结果(截图,视频),RTL图等。2、系统设计原理;2.1、LED的显示原理; 1616扫描LED点阵的工作原理同8位扫描数码管类似。它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。 通过时钟的每列扫描显示完整
6、汉字。 图2-1 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即可。应用时限流电阻可以放在X轴或Y轴。它有16个
8、共阴极输出端口,每个共阴极对应有16个LED显示灯。本实验就是要通过CPLD芯片产生读时序,将字形 从寄存器中读出,然后产生写时序,写入1616的点阵,使其扫描显示输出。为了显示整个汉字,首先分布好汉字的排列,以列给出汉字信息(从16个Y轴线输入字模信息);然后以128HZ的时序逐个点亮每一行(行扫描),即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。LED点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴(要点亮的二极管给出低电平字模信息)。本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。本实验采
9、取列扫描方式,用列给文字信息,利用周期为1s的脉冲来控制所显示的字。 图2-3 点阵原理图 图2-4 取字模三、VHDL源程序;3.1、延时消抖程序-延时消抖程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BUTTON IS PORT(CLK:IN STD_LOGIC; KEY:IN STD_LOGIC; BUTTON:OUT STD_LOGIC);END ENTITY BUTTON;ARCHITECTURE ART OF BUTTON IS SIGNAL COUNT:INTEG
10、ER:=0;BEGIN PROCESS(CLK,KEY)IS BEGIN IF(CLKEVENT AND CLK=1)THEN IF KEY=0THEN IF COUNT=10000 THEN COUNT=COUNT; -按键消抖 10ms 默认输入CLK:1MHz ELSE COUNT=COUNT+1; END IF; IF COUNT=10000-1 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 IS PORT(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 IS SIGNAL M:INTEGER:=
12、0; SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0):=0000;BEGIN PROCESS(CLK,BUTTON) BEGIN IF CLKEVENT AND CLK=1 THEN COUNTLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDCOUNTLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDCOUNTLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLEDDLED
13、DLEDDLEDDLEDDLEDDCOUNT=0000; END CASE; END IF; END IF; END PROCESS; LEDW=COUNT; PROCESS(BUTTON)IS BEGIN IF(BUTTONEVENT AND BUTTON=0)THEN IF M=3 THEN M=0; ELSE Msettings命令,弹出settings对话框,选择目标芯片为EP2C5T144C8。图4-1 选择目标器件2.选择工作方式,编程方式,及闲置引脚状态单击上图中的device&pin options按钮,弹出device&pin options窗口。 在General项中选中a
14、uto-restart configuration after error,使对FPGA的配置失败后能自动重新配置,并加入JTAG用户编码。 图4-2 选择配置器件工作方式在configuration项中,其下方的Generate compressed bitstreams处打勾,这样就能产生用于EPCS的POF压缩配置文件。在Configuration 选项页,选择配置器件为EPCS1,其配置模式选择为active serial。图4-3选择编程方式在Unused pins项,将目标器件闲置引脚状态设置高阻态,即选择As input,tri-stated。图4-4 设置闲置引脚状态4.4、
15、全程编译设置好前面的内容之后,就可以进行编译了。选择Processing菜单中start compilation,在窗口的下方processing栏中显示编译信息。图4-5 全程编译成功完成完成后在工程管理窗口左是角显示了工程yz_ok 的层次结构和其中结构模块耗用的逻辑宏单元数。此栏的右边是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等。4.5、时序仿真1.新建一个矢量波形文件,同时打开波形编辑器。设置仿真时间为50us,保存波形文件为LATTICE.vwf。2.将工程LATTICE的端口信号名选入波形编辑器中,所选的端口有clk,enable及总线h0和h8。设置
16、clk的时钟周期为2us,占空比为50%。图4-6 选择仿真控制仿真器参数设置。选择菜单Assignment中的Settings,在Settings窗口下选择Simulator,在右侧的simulation mode项下选择timing,即选择时序仿真,并选择仿真激励文件名LATTICE.vwf。选择simulation options栏,确认选定simulation coverage reporting; 毛刺检测Glitch detection 为1ns 宽度;选中Run simulation until all vector stimuli 全程仿真。现在所有设置进行完毕,在菜单proc
17、essing项下选择start simulation,直到出现simulation was successful,仿真结束 。仿真文件simulation report 通常会自动弹出,否则选择processing=simulation report 。五、逻辑综合与结果分析。VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。VHDL是超高速集成电路的硬件描述语言,它能够描述硬件的结构、行为与功能。另外,VHDL具有并发性,采用自上而下的结构式设计方法,适合大型设计工程的分工合作。在编写程序的时候,我才发现能看懂程序和能自己写程序是两个完全不同的概念,自己一开始写程序时,即便是一个很简单的功能模块,在编译时也可能产生很多错误,在不断的改错过程中,自己对VHDL语言的语法结构有了深刻的理解,对编译过程中常见的错误也有了全面的认识。通过这两周的课程设计,我在熟悉了基于FPGA设计的同时,也学到了很多在学习课本知识时所体会不到的东西。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1