EDA课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北华航天工业学院

《EDA技术综合设计》

课程设计报告

报告题目:16X16点阵显示综合实验作者所在系部:电子工程系

作者所在专业:自动化专业

作者所在班级:

作者姓名:

指导教师:

完成时间:2012年12月26日

容摘要

在本次课设中,设计一个共阴16X16点阵控制接口,要求:在时钟信号的控制下,使点阵动态点亮。显示花样共有三种:①6*16点阵的16列同时从上往下依次点亮,全亮后16列又同时从下往上依次熄灭;②显示单字“飞”;③依次循环显示“航”,“天”,“学”,“院”四个字。

为使点阵显示器能够动态显示,列选信号为16-4编码器编码输出。

控制器各引脚功能为:DIN[3..0]为显示花样模式选择,高电平有效;CLK 为时钟输入端;DOTOUT[15..0]为行驱动信号输出;SELOUT[3..0]为列选信号输出,为16-4编码信号。

列选信号采用与7段数码管的位选信号一样的处理方法,即列扫描信号频率大于24HZ。

关键词: VHDL,16*16点阵,QuartusII,时序仿真图。

目录

一、实验目的 (1)

二、硬件要求 (1)

三、方案论证 (1)

四、模块说明 (1)

1.整体程序 (1)

2.花样一(动画) (6)

3.花样二(“飞”字) (6)

4.花样三(四字循环显示) (7)

五、整体连接图 (7)

六、实验步骤 (7)

七、实验结果 (7)

八、实验总结 (7)

九、参考文献 (8)

课程设计任务书

一、实验目的

(1)了解16*16LED的工作原理。

(2)了解点阵字符的产生和显示原理。

二、硬件要求

(1)主芯片EPF10K10LC84-4。

(2)16*16点阵。

(3)可变时钟源。

(4)四个拨码开关(显示花样的选择)。

三、方案论证

引脚整体可分为四个部分:clk(时钟信号)、din[3…0](花样选择控制)、dotout[15…0](行驱动信号输出)、selout[3…0](列选信号输出)。

其中有一个分频器的设计,可用一个16位的计数器实现:信号q从00000到11111循环变换,将q的低四位赋给列选信号selout,当q=11111时又可驱动另一计数器工作,实现分频。

第一个花样的设计:用q驱动一个5位计数器zhen从00000到11111循环变换,当Zhen=”00000”时,dotout=”00000”

Zhen=”00001”时,dotout=”00001”

……

……

Zhen=”10000”时,dotout=”1”

……

……

Zhen=”11110”时,dotout=”00011”

Zhen=”11111”时,dotout=”00001”。

第二个花样的设计:可参考第三个花样的设计。

第三个花样的设计:当zhen1(功能同zhen)=”00”时,显示第一个字“航”,当selout=”0000”时,dotout为“航”字的最后一列代码;当selout=”0001”时,dotout为“航”字的倒数第二列代码,依次类推。其他三个字的设计同“航”字。

四、模块说明

16*16点阵综合显示实验是用一个整体的程序编写的,所以不可分成模块,但可以分成三个部分:16*16点阵的16列同时从上往下依次点亮,全亮后16列又同时从下往上依次熄灭;显示“飞”字;依次循环显示“航”、“天”、“学”、“院”。下面的程序分析中将讨论三个部分的设计。

1.整体程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity dots_test is

port(clk:in std_logic; - -硬件接口

din:in std_logic_vector(3 downto 0);

dotout:out std_logic_vector(15 downto 0);

selout:buffer std_logic_vector(3 downto 0));

end dots_test;

architecture a of dots_test is

signal q:std_logic_vector(15 downto 0);

signal zhen:std_logic_vector(4 downto 0);

begin

process(clk,din)

variable h:std_logic_vector(3 downto 0);

variable h1:std_logic_vector(3 downto 0);

variable q1:std_logic_vector(15 downto 0);

variable zhen1:std_logic_vector(1 downto 0);

begin

if clk'event and clk='1' then

if din="0000" then - -花样一的设计if q="11111" then q<="00000"; - -用于分频

if zhen="11111" then zhen<="00000";

else zhen<=zhen+1;

end if;

else q<=q+1;

end if;

selout<=q(3 downto 0);

case zhen is

when "00000"=>dotout<="00000";

when "00001"=>dotout<="00001";

when "00010"=>dotout<="00011";

when "00011"=>dotout<="00111";

when "00100"=>dotout<="01111";

when "00101"=>dotout<="11111";

when "00110"=>dotout<="11111";

when "00111"=>dotout<="11111";

when "01000"=>dotout<="11111";

when "01001"=>dotout<="11111";

when "01010"=>dotout<="11111";

when "01011"=>dotout<="11111";

when "01100"=>dotout<="11111";

when "01101"=>dotout<="11111";

when "01110"=>dotout<="11111";

when "01111"=>dotout<="11111";

when "10000"=>dotout<="11111";

when "10001"=>dotout<="11111";

when "10010"=>dotout<="11111";

when "10011"=>dotout<="11111";

相关文档
最新文档