物理与电子工程学院
《数字电路》 课程设计报告书
设计题目: 数字显示电路设计 专业: 自动化 班级: 10级1班
学生: 想 学 号: 2110341106 指导教师: 胡林
. -可修遍-
- .
年月日
. -可修遍-
- .
物理与电子工程学院 课程设计任务书
专业: 自动化 班级:10级2班
学生 课程名称 想 数字电路 学号 设计题目 2110341106 数字显示电路设计 1、课程设计是专业课学习过程中一个非常重要的环节。本次课程设计的目的是熟悉和掌握数字显示电路的应用方法,为今后的工作和学习打下坚实的基础。 2、理解数字显示电路的原理。 设计目的、3、掌握数字显示电路的应用围、核心仪器及应用电路。 主要容(参4、检索阅读与课程设计课题相关的国科技文献,书写并按时提交规的课程设计。 数、方法)5、在调查、实验、论文撰写等环节中,应尊重事实、尊重实验结果,严肃认真的的完及要求 成每一个环节的相关工作。 6、课程设计应论述层次清晰,概念准确,语句通顺。 7、完成课程设计的撰写工作,不得抄袭和剽窃他人成果。 8、符合课程设计写作规,整篇文章不少于3000字。 工作量 2周时间,每天3学时,共计42学时 第1天:下达任务书 第2-5天:搜集资料,完成课程设计的文献查阅、试验或调研工作。 第6-8天:完成课程设计的初稿,并提交指导教师。 第9-14天:完成课程设计的修改,最终定稿。 [1]路勇.电子电路实验及仿真[M].:交通大学,2010. 主要参考资料 [2]孟涛.电工电子EDA实践教程[M].:机械工业,2010. [3]高吉祥.电子技术基础实验与课程设计[M].:电子工业,2005 [4]候建军.电子技术基础实验、综合设计实验与课程设计[M].:高等教育,2007. 指导教师签字 教研室主任签字 进度安排 . -可修遍-
- .
摘 要
采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。
丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。
MAX+PLUSII 具有的强大功能极减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日完成实现设计项目的多次修改,直至最终设计定型。 MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。
. -可修遍-
- .
关键词:数字显示电路;动态扫描;段码
. -可修遍-
- .
目 录
第一章 设计任务1
1.1 项目名称:设计数字显示电路1 1.2项目设计说明1 1.2.1设计任务和要求1 1.2.2进度安排1 1.3项目总体功能模块图2
第二章 需求分析2
2.1问题基本描述2 2.2系统模块分解3
2.3系统各模块功能的基本要求3
第三章 设计原理4
3.1 设计原理4 3.2 MAXPLUSII介绍4
第四章 系统功能模块设计6
4.1.1数码管位选控制模块流程图6 4.1.2输入输出引脚及其功能说明6 4.1.3程序代码实现7 4.2数据选择模块8
4.2.1.数据选择模(八选一模块)块流程图8 4.2.2输入输出引脚及其功能说明9 4.2.3程序代码实现9
. -可修遍-
- .
4.3七段译码器模块10
4.3.1七段译码器模块模块流程图10 4.3.2输入输出引脚及其功能说明10 4.3.3程序代码实现10
第五章调试并分析结果12
5.1输入说明12 5.2预计输出12 5.3测试结果记录12 5.4测试结果分析12
第六章 结论13
6.1心得体会13
参 考 文 献14 附 录15
. -可修遍-
- .
第一章 设计任务
1.1 项目名称:设计数字显示电路
本项目的主要容是设计并实现8位数码管轮流显示8个数字。该电路将所学的数字电路与系统大部分知识和VHDL语言结合。
1.2项目设计说明
1.2.1设计任务和要求
A、用CPLD设计一个八位数码管显示电路;
B、8位数码管轮流显示8个数字,选择合适的时钟脉冲频率实现8个数码
管同时被点亮的视觉效果。
1.2.2进度安排
第一周至第二周每周二2课时,共10课时。具体安排为:第一周至第三周
6课时自行设计、第四周实验结果验收、第五周交报告并进行答辩。
. -可修遍-
2.1问题基本描述
第二章 需求分析
1.3项目总体功能模块图
- .
基本系统流程图如下
. -可修遍-
- .
2.2系统模块分解
动态扫描显示电路的主要组成为:计数器、显示译码器、32选4数据选择器、扫描电路组成。
2.3系统各模块功能的基本要求
1、计数器:8模块输入信号是时钟脉clk,每遇到一个时钟脉冲clk上升沿时,部累 加器便加一,再把累加器所得结果与2进制数的形式输出。要显示8位数字,所以用3位2进制数作为输出。输出信号为cout[0..2]。
2、八选一数据选择模块:模块输入信号一个是数据选择器的地址码SEL[2..0],另一部分是数据信息A[3..0]~F[3..0].地址码是SEL[2..0]来自时钟脉冲计数器6,由地址码SEL[2..0]决定输出哪个输入数据。输出信号是q[3..0];
3、扫描显示译码器:完成对7字段数码管显示的控制。
. -可修遍-
- .
第三章 设计原理
3.1 设计原理
采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率较大,将看不到闪烁现象。将会看到6个数码管持续稳定点亮的现象。
3.2 MAXPLUSII介绍
MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样
. -可修遍-
- .
的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。
丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。
MAX+PLUSII 具有的强大功能极减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日完成实现设计项目的多次修改,直至最终设计定型。 MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。
MAX+PLUSII支持 Altera公司的 Classic、ACEX 1K、 MAX 3000、 MAX 5000、 MAX 7000、 MAX 9000、 FLEX 6000和 FLEX 10K等系列的可编程逻辑器件,门数为600~250000门,提供了工业界真正与结构无关的可编程逻辑设计环境。MAX+PLUSII的编辑器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。
MAX+PLUSII软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具,从而可以更快的进行调试,缩短开发周期。
设计者可以从各种设计输入、编辑、校验及器件编程工具中作出选择,形成用户风格的开发环境,必要时还可以在保留原始功能的基础上添加新的功能。由于MAX+PLUSII支持多种器件系列,设计者无须学习新的开发工具即可对新结构的器件进行开发。
MAX+PLUSII软件支持多种HDL的设计输入,包括标准的VHDL、 Verilog HDL
. -可修遍-
- .
及Altera公司自己开发的硬件描述语言AHDL。
MAX+PLUS II 由设计输入、项目处理、项目检验和器件编程等4部分组成,所有这些部分都集成在一个可视化的操作环境下。
MAX+PLUS II 管理窗口包括项目路径、工作文件标题条、MAX+PLUS II菜单条、快捷工具条和工作区等几个部分。设置好授权码后,启动MAX+PLUS II即进入MAX+PLUS II 管理窗口,如图6.4所示。
MAX+PLUS II 还为用户提供了功能强大的在线帮助功能。通过使用在线帮助,用户可以获得设计中所需的全部信息。
第四章 系统功能模块设计
4.1计数(数码管位选控制)模块
4.1.1数码管位选控制模块流程图
4.1.2输入输出引脚及其功能说明
8模块输入信号是时钟脉冲clk,每遇到一个时钟脉冲clk上升沿时,部累加器便加一,再把累加器所得结果与2进制数的形式输出。要显示八位数字,所以
. -可修遍-
- .
用3位2进制数作为输出。输出信号为cout[0..2]。总之是通过输入输出信号来对数码管进行位选控制。
4.1.3程序代码实现
library ieee;
use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all; entity8 is
port(clr,start,clk: in bit;
cout: out std_logic_vector(2 downto 0)); end8;
architecture a of8 is
signal temp:std_logic_vector(2 downto 0); begin
process(clk,clr)
begin
if clr='0' then temp<=\"000\"; cout<='0';
elsif (clk'event and clk='1') then
if start='0' then
if temp>=\"111\" then
. -可修遍-
- .
temp<=\"000\"; cout<='1'; else
temp<=temp+1; cout<='0'; end if; end if; end if; end process; cout<=temp;
end a;
4.2数据选择模块
4.2.1.数据选择模(八选一模块)块流程图
. -可修遍-
- .
4.2.2输入输出引脚及其功能说明
SEL81模块输入信号一个是数据选择器SEL81的地址码SEL[2..0],另一部分是数据信息A[3..0]~H[3..0].地址码是SEL[2..0]来自时钟脉冲计数器8,由地址码SEL[2..0]决定输出哪个输入数据。输出信号是q[3..0]。
4.2.3程序代码实现
Library ieee;
Use ieee.std_logic_11.all; Entity sel81 is
Port(sel:in std_logic_vector(2 downto 0);
A,b,c,d,e,f,g,h:in std_logic_vector(3 downto 0); Q:out std_logic_vector(3 downto 0)); End sel81;
Architecture rtl of sel81 is begin
Process(a,b,c,d,e,f,g,h,sel)
Variable cout:std_logic_vector(3 downto 0); Begin Case(sel)is
When\"000\"=>cout:=a; When\"001\"=>cout:=b;
When\"010\"=>cout:=c;
. -可修遍-
- .
When\"011\"=>cout:=d; When\"100\"=>cout:=e; When\"101\"=>cout:=f; When\"110\"=>cout:=g; When others =>cout:=h; End case; Q<=cout; End process; End rtl;
4.3七段译码器模块
4.3.1七段译码器模块模块流程图
4.3.2输入输出引脚及其功能说明
DISP模块是七段译码器,将输入的4位二进制数转换为数码显示管对应的数字。例如输入为4进制数0000的时候,使数码显示管显示0,则要七段译码器输出为011111。即g段为0,g段发光二极管不亮,其它发光二极管被点亮,显示效果为0。DISP模块输入信号D[3..0],输出信号是Q[6..0]。
4.3.3程序代码实现
Library ieee;
. -可修遍-
- .
Use ieee.std_logic_11.all; Entity disp is
port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0)); end disp;
Architecture rtl of disp is Begin
Process(d) Begin Case d is
When\"0000\"=>q<=\"0111111\"; When\"0001\"=>q<=\"0000110\"; When\"0010\"=>q<=\"1011011\"; When\"0011\"=>q<=\"1001111\"; When\"0100\"=>q<=\"1100110\"; When\"0101\"=>q<=\"1101101\"; When\"0110\"=>q<=\"1111101\"; When\"0111\"=>q<=\"0100111\"; When\"1000\"=>q<=\"1111111\"; When others=>q<=\"1101111\"; End case; End process;
. -可修遍-
- .
End rtl;
第五章调试并分析结果
5.1输入说明
clk Clr
时钟输入
计数器清零(低电平有效)
打开计数器(低电平有效)
Start
A[3..0]..H[3..0] 输入要显示的数字
5.2预计输出
Cout[2..0] Q[6..0]
数码管位选控制 数码管段选控制
5.3测试结果记录
同时显示0,1,2,3,4,5,6,7这八个不同的数字图形到八个数码管上。
5.4测试结果分析
输入一个时钟,驱动计数器工作。选用模值为8的计数器,依次控制8个数码管的亮灭,使得某一时刻有且仅有一个数码管点亮,同时产生对应的,将点亮的数码管赋值显示为相应的数码予以显示。由于扫描频率较高,8位数码管序列将显示持续稳定的0至7的数码。
. -可修遍-
- .
第六章 结论
6.1心得体会
在课程设计之前,我学过51单片机,对硬件与软件的联系有初步的了解,其次我的题目相对较简单---设计8位数码管动态显示电路,所以上手特别的快。在编写程序之前,我到实验室实地考察了一下试验箱,发现8位数码管实验无法实现,只能实现6位,开关实现数码管数字变换也不现实,单单8位数码管的数字就需要32个开关控制,试验箱远远达不到这个要求,因此,我就设计全软件来控制并且做得非常成功。最后验收时听老师分析,全软件的程序有很大的缺陷,然后对我的设计又进一步的改进,用开关来进行控制。
总之,通过这次课程设计,我对EDA技术有了更进一步的了解。也知道了如何把vhdl的程序装到实验的硬件中,然后如何的连接实验箱上的管脚。 通过在上网查询本次实验相关资料。丰富了对EDA的了解。
. -可修遍-
- .
参 考 文 献
[1]路勇.电子电路实验及仿真[M].:交通大学,2010. [2]孟涛.电工电子EDA实践教程[M].:机械工业,2010. [3]高吉祥.电子技术基础实验与课程设计[M].:电子工业,2005
[4]候建军.电子技术基础实验、综合设计实验与课程设计[M].:高等教育,2007.
. -可修遍-
- .
附 录
课程设计中的程序如下: library ieee;
use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all; entity div2k is port(clk_in : in std_logic;
clk_out : out std_logic);
end;
architecture a of div2k is signalt : integer range 0 to 999;
signal clk_tmp : std_logic;
begin process(clk_in) begin if (clk_in'event and clk_in='1') then ift=999 then
t<=0; clk_tmp<= not clk_tmp;
else
t<=t+1;
. -可修遍-
- .
end if;
end if;
end process;
clk_out<=clk_tmp;
end;
------B LIBRARY IEEE;
USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; --USE IEEE.STD_numeric_std ENTITY scan_led IS
PORT ( CLK : IN STD_LOGIC;
SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
BT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );
END;
ARCHITECTURE arc OF scan_led IS ponent div2k port(clk_in: in std_logic;
clk_out: out std_logic);
end ponent;
SIGNAL T6 : INTEGER RANGE 0 TO 5;
. -可修遍-
- .
SIGNAL A : INTEGER RANGE 0 TO 5; SIGNAL COUNT : INTEGER RANGE 0 TO 5000 := 0;
SIGNAl FLAG : INTEGER RANGE 0 TO 10 := 0;
SIGNAl FLAG_A : INTEGER RANGE 0 TO 15;
SIGNAL clk_tmp: STD_LOGIC;
BEGIN
u1:div2k port map(clk_in=>CLK,clk_out=>clk_tmp);
-------------3线至6线译码器----A为位码------------- P1:process(T6) BEGIN
CASE T6 IS
WHEN 0 => BT <= \"000\" ; A <= 0 ; WHEN 1 => BT <= \"001\" ; A <= 1 ; WHEN 2 => BT <= \"010\" ; A <= 2 ; WHEN 3 => BT <= \"011\" ; A <= 3 ; WHEN 4 => BT <= \"100\" ; A <= 4 ; WHEN 5 => BT <= \"101\" ; A <= 5 ; WHEN OTHERS => NULL ; END CASE ; END PROCESS P1; -------------------------拓
展
-------------------------------------
. -块
可修遍-
模
- .
P2:process(clk_tmp) BEGIN
IF clk_tmp'EVENT AND clk_tmp = '1' THEN --实现模6计数器 if T6 = 5 then
T6 <= 0;
else T6 <= T6 + 1;
end if;
IF (FLAG = 11) THEN --设置标志
FLAG <= 0;
END IF;
IF COUNT = 5000 THEN --另一个时钟 COUNT <= 0;
FLAG <= FLAG + 1; --当记满5000时左移动一位
ELSE
COUNT <= COUNT + 1;
END IF;
END IF; END PROCESS P2; P3:process(A)
BEGIN
. -可修遍-
- .
FLAG_A <= (A + FLAG) ; --0-F循环显示
CASE FLAG_A IS
WHEN 0 => SG <= \"1111110\"; --0 --共阴abcdefg
WHEN 1 => SG <= \"0110000\"; --1
WHEN 2 => SG <= \"1101101\"; --2
WHEN 3 => SG <= \"1111001\"; --3
WHEN 4 => SG <= \"0110011\"; --4
WHEN 5 => SG <= \"1011011\"; --5
WHEN 6 => SG <= \"1011111\"; --6
WHEN 7 => SG <= \"1110000\"; --7
WHEN 8 => SG <= \"1111111\"; --8
WHEN 9 => SG <= \"1111011\"; --9
WHEN 10 => SG <= \"1110111\"; --A
WHEN 11 => SG <= \"0011111\"; --B
WHEN 12 => SG <= \"1001110\"; --C
WHEN 13 => SG <= \"0111101\"; --D
WHEN 14 => SG <= \"1001111\"; --E
WHEN 15 => SG <= \"1001111\"; --F
WHEN OTHERS => NULL ; END CASE ; END PROCESS P3; END arc;
. -可修遍-
- .
课程设计成绩评定表
分值 优秀 (x≥90%) 参考标准 学习态度认真,科学作风严谨,严格保平时考核 20 证设计时间并按任务书中规定的进度开展各项工作。 结构严谨,逻报告容组课程设计报告 技术水平 20 织书写 20 辑性强,层次清晰,语言准完全符合规化要求,书写工整或用计算机打印成文;图纸非常工整、清晰。 设计合理、理论分析与计算正确,文献查阅能力强、引用合理、调查调研非常合理、可信。 实验数据准确,有很强的仿真/制作 院系: 物理与电子工程学院 班级: 二班 : 硕 学号: 2020341239
良好 (90%>x≥80%) 中等 (80%>x≥70%) 及格 (70%>x≥60%) 不及格(x<60%) 参考标准 学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度。 容空泛,结 评分 项目 参考标准 学习态度比较认真,科学作风良好,能按期完成任务书规定的任务。 结构合理,符合逻辑,文章层次分明,语流畅,符合规化要求,书写工整或用计算机打印成文;图纸工整、清晰。 设计合理、理论分析与计算正确,文献引用、调查调研比较合理、可信。 实验数据比较准确,有较强的实际动手能力和计算机应用能力。 参考标准 学习态度尚好,遵守组织纪律,基本保按期完成各项工作。 参考标准 学习态度尚可,能遵守组期完成任务。 证设计时间,织纪律,能按结构合理,层次较为分明,文理通顺,基本达到规化要求,书写比较工整;图纸比较工整、清晰。 结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规化要求;图纸比较工整。 构混乱,文字表达不清,错别字较多,达不到规化要求;图纸不工整或不清晰。 设计不合 确,文字流畅,言准确,文字设计合理,理论分析与计主要文献引用、调查调研比较可信。 设计基本合与计算无大错。 算基本正确,理,理论分析理,理论分析与计算有原则错误,文献引用、调查调研有较大的问题。 实验数据比较准确,有一定的实际动手能力。 实验数据无大错。 实验数据不可靠,实际动手能力差。 40 实际动手能力和计算机应用能力。 指导教师签名
指导教师评定成绩 . -可修遍-
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务