计数器7段数码管控制接口技术课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《EDA技术综合设计》
课程设计报告
报告题目:计数器7段数码管控制接口技术
作者所在系部:
作者所在专业:
作者所在班级:
作者姓名:
作者学号:
指导教师姓名:
完成时间:
1
内容摘要
掌握VHDL语言基本知识,并熟练运用VHDL语言来编写程序,来下载实践到硬件上,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。利用VHDL语言设计一个七段数码管控制引脚,在时钟信号的控制下,使6位数码管动态刷新显示十进制计数器及其进位,十二进制计数器,四位二进制可逆计数器,六十进制计数器的计数结果,这期间需要seltime分频器来动态的给各个计数器分配数码管,并显示数字的变化。
关键词:VHDL语言编程七段数码管控制引脚芯片
目录
一概述 (1)
二方案设计与论证 (1)
三单元电路设计与参数计算 (1)
3.1数码管译码器 (1)
3.2 十进制计数器 (2)
3.3六十进制计数器 (3)
3.4四位二进制可逆计数器 (5)
3.5时间数据扫描分时选择模块 (6)
3.6顶层文件 (8)
四总的原理图 (9)
五器件编程与下载 (9)
六性能测试与分析(要围绕设计要求中的各项指标进行) (10)
七实验设备 (10)
八心得体会 (10)
九参考文献 (10)
课程设计任务书课题
名称7段数码管控制引脚
完成
时间
2011.
12.12
指导
教师胡辉职称副教授
学生
姓名
庄仲班级B09212 总体设计要求和技术要点
通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。
具体要求:
1.设计一个共阴7段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号,同时显示2、3、4所要求的计数器。
2.设计一个带使能输入、进位输出及同步清0的增1十进制计数器。
3.设计一个带使能输入及同步清0的六十进制同步加法计数器;
4.设计一个四位二进制可逆计数器;
工作内容及时间进度安排
第16周:
周一、周二:设计项目的输入、编译、仿真
周三:器件编程下载与硬件验证
周四:成果验收与总结
周五:撰写课程设计总结报告
课程设计成果
把编写好的程序下载到试验箱,使数码管能够按照编写的程序显示出正确的结果,实验成功。
一、概述
设计一个共阴7段数码管控制接口,在硬件时钟电路的基础上,采用分频器,输出一个1S的时钟信号。一个带使能输入、进位输出及同步清0的增1十进制计数器。一个带使能输入及同步清0的六十进制同步加法计数器和一个四位二进制可逆计数器。要求:在时钟信号的控制下,使6位数码管动态刷新显示上述计数器的计数结果。
二、方案设计与论证
首先VHDL语言编写底层文件和三个计数器的程序,再编写分频器和数码管的程序,最后用例化语句编写顶层文件,分别都调试在确认无误后把顶层文件下载到试验箱,连接导线,完成后实现在时钟信号的控制下,6位数码管动态刷新显示三个计数器的技术结果。
三、单元电路设计
1.数码管译码器程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_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 is
begin
-- abcdefg
led<="1111110"when num="0000"else
"0110000"when num="0001"else
"1101101"when num="0010"else
"1111001"when num="0011"else
"0110011"when num="0100"else
"1011011"when num="0101"else
"1011111"when num="0110"else
"1110000"when num="0111"else
"1111111"when num="1000"else
"1111011"when num="1001"else
"1110111"when num="1010"else
"0011111"when num="1011"else
"1001110"when num="1100"else
"0111101"when num="1101"else
"1001111"when num="1110"else
"1000111"when num="1111";
end fun;
原理图
2.十进制计数器程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
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)
begin