
7段数码管控制引脚【范本模板】.pdf
15页EDA 技术综合设计 课程设计报告报 告题 目:计数器 7 段数码管控制接口技术作者所在系部:作者所在专业:作者所在班级:作 者 姓 名:作 者 学 号:指导教师姓名:完 成 时 间:1内内容容摘摘要要掌握 VHDL 语言基本知识,并熟练运用 VHDL 语言来编写程序,来下载实践到硬件上,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想利用 VHDL 语言设计一个七段数码管控制引脚,在时钟信号的控制下,使 6 位数码管动态刷新显示十进制计数器及其进位,十二进制计数器,四位二进制可逆计数器,六十进制计数器的计数结果,这期间需要 seltime 分频器来动态的给各个计数器分配数码管,并显示数字的变化关键词:VHDL 语言编程七段数码管控制引脚芯片2目目录录一 概述 1二 方案设计与论证1三 单元电路设计与参数计算131 数码管译码器132 十进制计数器233 六十进制计数器 334 四位二进制可逆计数器 53.5 时间数据扫描分时选择模块 63.6 顶层文件 8四 总的原理图9五 器件编程与下载9六 性能测试与分析(要围绕设计要求中的各项指标进行)10七 实验设备10八 心得体会10九 参考文献103课程设计任务书课程设计任务书课题7 段数码管控制引脚名称指导胡辉教师职称副教授姓名总体设计要求和技术要点通过本课程的学习使学生掌握可编程器件、EDA 开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用 EDA 技术解决一些简单的电子设计问题。
具体要求:具体要求:1设计一个共阴 7 段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个 1S 的时钟信号,同时显示 2、3、4 所要求的计数器2设计一个带使能输入、进位输出及同步清 0 的增 1 十进制计数器3设计一个带使能输入及同步清 0 的六十进制同步加法计数器;4设计一个四位二进制可逆计数器;完成时间学生庄仲班级2011.1212B09212工作内容及时间进度安排第 16 周:周一、周二:设计项目的输入、编译、仿真周三:器件编程下载与硬件验证周四:成果验收与总结周五:撰写课程设计总结报告课程设计成果把编写好的程序下载到试验箱,使数码管能够按照编写的程序显示出正确的结果,实验成功4一、概述设计一个共阴 7 段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个 1S 的时钟信号一个带使能输入、进位输出及同步清 0 的增 1 十进制计数器.一个带使能输入及同步清 0 的六十进制同步加法计数器和一个四位二进制可逆计数器要求:在时钟信号的控制下,使 6 位数码管动态刷新显示上述计数器的计数结果二、方案设计与论证首先 VHDL 语言编写底层文件和三个计数器的程序,再编写分频器和数码管的程序,最后用例化语句编写顶层文件,分别都调试在确认无误后把顶层文件下载到试验箱,连接导线,完成后实现在时钟信号的控制下,6 位数码管动态刷新显示三个计数器的技术结果.三、单元电路设计1。
数码管译码器程序library ieee;use ieee.std_logic_1164all;use ieeestd_logic_unsigned.all;entity deled is port(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end deled;architecture fun of deled isbegin abcdefgled=1111110when num=0000”else”0110000”when num=”0001else”1101101”when num=0010else 1111001when num=”0011else0110011”when num=”0100”else1011011when num=0101”else1 1011111when num=0110else1110000”when num=0111else”1111111when num=1000”else”1111011when num=1001”else”1110111”when num=”1010else”0011111”when num=”1011else”1001110”when num=1100else”0111101when num=1101”else”1001111”when num=1110else”1000111”when num=1111”;end fun;原理图2。
十进制计数器程序library ieee;use ieee.std_logic_1164all;use ieeestd_logic_unsignedall;entity cnt10 is port(clk,clr,en:in std_logic;co:out std_logic;q:buffer std_logic_vector(3 downto 0);end cnt10;architecture behave of cnt10 is begin process(clk,clr,en)begin2if(en=0)then q=”0000;elsif(clkevent and clk=1)thenif(clr=1)then q=0000”;elsif(q=9)then q=0000;co=1;else q=q+1;co=0;end if;end if;end process;end behave;原理图仿真波形图3六十进制计数器程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEESTD_LOGIC_UNSIGNEDALL;ENTITY cnt60 IS3 PORT(clk,clr,en:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END cnt60;ARCHITECTURE behave OF cnt60 IS SIGNAL qh,ql:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(clk,clr,en)BEGINIF(en=1)THEN ql=0000”;qh=”0000;ELSIF(clkevent and clk=1)THEN IF(clr=1)THEN ql=”0000”;qh=0000”;ELSIF(ql=9)THEN ql=”0000”;IF(qh=5)THEN qh=0000”;ELSE qh=qh+1;END IF;ELSE ql=ql+1;END IF;END IF;q=qhql;END PROCESS;END behave;原理图4波形图4。
四位二进制可逆计数器程序library ieee;use ieeestd_logic_1164.all;use ieeestd_logic_unsigned.all;entity kn4 is port(clk,clr,plus_sub:in std_logic;q:buffer std_logic_vector(3 downto 0));end kn4;architecture behave of kn4 is begin process(clk,clr,plus_sub)begin if(clkevent and clk=1)then if(clr=1)then q=0000”;elsif(plus_sub=1)then if(q=15)then q=”0000;else q=q+1;end if;elsif(plus_sub=0)then if(q=0)then q=1111”;else q=q1;end if;end if;end if;end process;5end behave;原理图波形图5.时间数据扫描分时选择模块程序library ieee;use ieeestd_logic_1164.all;use ieee.std_logic_unsigned。
all;use ieee.std_logic_arithall;entity seltime is port(clk,reset,ci:in std_logic;Kn4,cnt10:in std_logic_vector(3 downto 0);cnt60:in std_logic_vector(7 downto 0);daout:out std_logic_vector(3 downto 0);dp:out std_logic;sel:out std_logic_vector(2 downto 0);end seltime;architecture fun of seltime is signal count:std_logic_vector(2 downto 0);begin6 sel=count;process(clk,reset)beginif(reset=0)then count=000;elsif(clkevent and clk=1)then if(count=”101)thencountdaout=cnt10(3 downto 0);dp=0;when001”=daout(3 downto 1)=”000;daout(0)=ci;dp=0;when”010”=daout=kn4(3 downto 0);dp=0;when”011=daout=cnt60(7 downto 4);dpdaout=cnt60(3 downto 0);dp=0;end case;end process;end fun;原理图76.顶层文件程序library ieee;use ieee。
std_logic_1164all;entity ss_top isport(clk,clr,en,plus_sub,clkdsp:in std_logic;a,b,c,d,e,f,g,dpout:out std_logic;sel:out std_logic_vector(2 downto 0));end ss_top;architecture one of ss_top iscomponent cnt60 port(clk,clr,en:in std_logic;q:out std_logic_vector(7 downto 0);end component;component kn4 port(clk,clr,plus_sub:in std_logic;q:buffer std_logic_vector(3 downto 0);end component;component cnt10 port(clk,clr,en:in std_logic;co:out std_logic;q:buffer std_logic_vector(3 downto 0));end component;component deled PORT(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end component;component seltime port(clk,reset,ci:in std_logic;cnt60:in std_logic_vector(7 downto 0);kn4:in std_logic_vector(3 downto 0);cnt10:in std_logic_vector(3 downto 0);dp:out std_logic;daout:out std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0));end component;signal cnt60_out:std。












