当前位置:文档之家› EDA课程设计报告

EDA课程设计报告

北华航天工业学院《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 isport(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 issignal q:std_logic_vector(15 downto 0);signal zhen:std_logic_vector(4 downto 0);beginprocess(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);beginif clk'event and clk='1' thenif 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 iswhen "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";when "10100"=>dotout<="11111";when "10101"=>dotout<="11111";when "10110"=>dotout<="11111";when "10111"=>dotout<="11111";when "11000"=>dotout<="11111";when "11001"=>dotout<="11111";when "11010"=>dotout<="11111";when "11011"=>dotout<="11111";when "11100"=>dotout<="01111";when "11101"=>dotout<="00111";when "11110"=>dotout<="00011";when "11111"=>dotout<="00001";when others=>null;end case;elsif din="0001" then - -花样二的设计,显示“飞”字if h="1111" then h:="0000";else h:=h+1;end if;selout<=h;case h iswhen "0000" =>dotout<="00000";when "0001" =>dotout<="00000";when "0010" =>dotout<="00000";when "0011" =>dotout<="00000";when "0100" =>dotout<="00100";when "0101" =>dotout<="11000";when "0110" =>dotout<="00000";when "0111" =>dotout<="00000";when "1000" =>dotout<="11110";when "1001" =>dotout<="00010";when "1010" =>dotout<="00010";when "1011" =>dotout<="00010";when "1100" =>dotout<="00010";when "1101" =>dotout<="00010";when "1110" =>dotout<="00011";when "1111" =>dotout<="00010";when others=>dotout<=null;end case;else - -花样三的设计if q1="11111" then q1:="00000"; - -同q,用于分频if zhen1="11" then zhen1:="00";else zhen1:=zhen1+1;end if;else q1:=q1+1;end if;h1:=q1(3 downto 0);selout<=h1;case zhen1 iswhen "00"=> - -显示“航”字case h1 iswhen "0000" =>dotout<="00000";when "0001" =>dotout<="00100";when "0010" =>dotout<="10100";when "0011" =>dotout<="10110";when "0100" =>dotout<="10111";when "0101" =>dotout<="10100";when "0110" =>dotout<="00100";when "0111" =>dotout<="00000";when "1000" =>dotout<="00000";when "1001" =>dotout<="11100";when "1010" =>dotout<="10100";when "1011" =>dotout<="10101";when "1100" =>dotout<="00110";when "1101" =>dotout<="11100";when "1110" =>dotout<="00000";when "1111" =>dotout<="00000";when others=>dotout<=null;end case;when "01"=> - -显示“天”字case h1 iswhen "0000" =>dotout<="00000";when "0001" =>dotout<="00000";when "0010" =>dotout<="00010";when "0011" =>dotout<="00010";when "0100" =>dotout<="00010";when "0101" =>dotout<="00010";when "0110" =>dotout<="00010";when "0111" =>dotout<="00010";when "1000" =>dotout<="00010";when "1001" =>dotout<="11110";when "1010" =>dotout<="00010";when "1011" =>dotout<="00010";when "1100" =>dotout<="00010";when "1101" =>dotout<="00010";when "1110" =>dotout<="00000";when "1111" =>dotout<="00000";when others=>dotout<=null;end case;when "10"=> - -显示“学”字case h1 iswhen "0000" =>dotout<="10000";when "0001" =>dotout<="10011";when "0010" =>dotout<="10100";when "0011" =>dotout<="10000";when "0100" =>dotout<="10000";when "0101" =>dotout<="10000";when "0110" =>dotout<="10000";when "0111" =>dotout<="11110";when "1000" =>dotout<="10001";when "1001" =>dotout<="10000";when "1010" =>dotout<="10000";when "1011" =>dotout<="10000";when "1100" =>dotout<="00110";when "1101" =>dotout<="10001";when "1110" =>dotout<="00000";when "1111" =>dotout<="00000";when others=>dotout<=null;end case;when "11"=> - -显示“院”字case h1 iswhen "0000" =>dotout<="11000";when "0001" =>dotout<="11000";when "0010" =>dotout<="01000";when "0011" =>dotout<="01000";when "0100" =>dotout<="01110";when "0101" =>dotout<="01111";when "0110" =>dotout<="01011";when "0111" =>dotout<="01000";when "1000" =>dotout<="01000";when "1001" =>dotout<="01000";when "1010" =>dotout<="11000";when "1011" =>dotout<="01111";when "1100" =>dotout<="11011";when "1101" =>dotout<="10001";when "1110" =>dotout<="00001";when "1111" =>dotout<="11111";when others=>dotout<=null;end case;when others=>dotout<=null;end case;end if;end if;end process;end a;2.花样一(动画)花样一的仿真结果如下图(为了仿真的需要,在仿真时已将q改成5位,即q在00000到11111间循环变换):图一:16*16点阵的16列同时从上往下依次点亮图二:16行全部点亮图三:16列又同时从下往上依次熄灭3.花样二(“飞”字)花样一的仿真结果如下图当列选信号selout=”0000”时,dotout为“飞“字倒数第一列代码”00000”;当列选信号selout=”0001”时,dotout为“飞“字倒数第二列代码”00000”;当列选信号selout=”0010”时,dotout为“飞“字倒数第三列代码”00000”;…………图四:“飞”字仿真波形(部分)4.花样三(四字循环显示)为了仿真的需要,在仿真时已将q1改成5位,即q1在00000到11111间循环变换。

相关主题