数字显示电路设计.docx
- 文档编号:12665023
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:23.06KB
数字显示电路设计.docx
《数字显示电路设计.docx》由会员分享,可在线阅读,更多相关《数字显示电路设计.docx(18页珍藏版)》请在冰豆网上搜索。
数字显示电路设计
物理与电子工程学院
《数字电路》
课程设计报告书
设计题目:
数字显示电路设计
专业:
自动化
班级:
10级1班
学生姓名:
李想
学号:
06
指导教师:
胡林
年月日
物理与电子工程学院课程设计任务书
专业:
自动化班级:
10级2班
学生姓名
李想
学号
06
课程名称
数字电路
设计题目
数字显示电路设计
设计目的、主要内容(参数、方法)及要求
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+PLUSII是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。
它支持Altera公司不同结构的器件,可在多平台上运行。
MAX+PLUSII具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。
丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。
MAX+PLUSII具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。
用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。
MAX+PLUSII开发系统众多突出的特点,使它深受广大用户的青睐。
关键词:
数字显示电路;动态扫描;段码
第一章设计任务
项目名称:
设计数字显示电路
本项目的主要内容是设计并实现8位数码管轮流显示8个数字。
该电路将所学的数字电路与系统大部分知识和VHDL语言结合。
项目设计说明
设计任务和要求
A、用CPLD设计一个八位数码管显示电路;
B、8位数码管轮流显示8个数字,选择合适的时钟脉冲频率实现8个数码管同时被点亮的视觉效果。
进度安排
第一周至第二周每周二2课时,共10课时。
具体安排为:
第一周至第三周6课时自行设计、第四周实验结果验收、第五周交报告并进行答辩。
项目总体功能模块图
第二章需求分析
问题基本描述
基本系统流程图如下
系统模块分解
动态扫描显示电路的主要组成为:
计数器、显示译码器、32选4数据选择器、扫描电路组成。
系统各模块功能的基本要求
1、计数器:
CN8模块输入信号是时钟脉clk,每遇到一个时钟脉冲clk上升沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。
要显示8位数字,所以用3位2进制数作为输出。
输出信号为cout[0..2]。
2、八选一数据选择模块:
模块输入信号一个是数据选择器的地址码SEL[2..0],另一部分是数据信息A[3..0]~F[3..0].地址码是SEL[2..0]来自时钟脉冲计数器CN6,由地址码SEL[2..0]决定输出哪个输入数据。
输出信号是q[3..0];
3、扫描显示译码器:
完成对7字段数码管显示的控制。
第三章设计原理
设计原理
采用动态扫描的方式实现设计要求。
动态扫描显示需要由两组信号来控制:
一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。
各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。
因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。
若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。
同时,段线上输出相应位要显示字符的字型码。
这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
总之,多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环一次点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率较大,将看不到闪烁现象。
将会看到6个数码管持续稳定点亮的现象。
MAXPLUSII介绍
MAX+PLUSII是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。
它支持Altera公司不同结构的器件,可在多平台上运行。
MAX+PLUSII具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。
丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。
MAX+PLUSII具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。
用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。
MAX+PLUSII开发系统众多突出的特点,使它深受广大用户的青睐。
MAX+PLUSII支持Altera公司的Classic、ACEX1K、MAX3000、MAX5000、MAX7000、MAX9000、FLEX6000和FLEX10K等系列的可编程逻辑器件,门数为600~250000门,提供了工业界真正与结构无关的可编程逻辑设计环境。
MAX+PLUSII的编辑器还提供了强大的逻辑综合与优化功能以减轻用户的设计负担。
MAX+PLUSII软件的设计输入、处理、校验功能完全集成于可编程逻辑开发工具内,从而可以更快的进行调试,缩短开发周期。
设计者可以从各种设计输入、编辑、校验及器件编程工具中作出选择,形成用户风格的开发环境,必要时还可以在保留原始功能的基础上添加新的功能。
由于MAX+PLUSII支持多种器件系列,设计者无须学习新的开发工具即可对新结构的器件进行开发。
MAX+PLUSII软件支持多种HDL的设计输入,包括标准的VHDL、VerilogHDL及Altera公司自己开发的硬件描述语言AHDL。
MAX+PLUSII由设计输入、项目处理、项目检验和器件编程等4部分组成,所有这些部分都集成在一个可视化的操作环境下。
MAX+PLUSII管理窗口包括项目路径、工作文件标题条、MAX+PLUSII菜单条、快捷工具条和工作区等几个部分。
设置好授权码后,启动MAX+PLUSII即进入MAX+PLUSII管理窗口,如图所示。
MAX+PLUSII还为用户提供了功能强大的在线帮助功能。
通过使用在线帮助,用户可以获得设计中所需的全部信息。
第四章系统功能模块设计
计数(数码管位选控制)模块
数码管位选控制模块流程图
输入输出引脚及其功能说明
CN8模块输入信号是时钟脉冲clk,每遇到一个时钟脉冲clk上升沿时,内部累加器便加一,再把累加器所得结果与2进制数的形式输出。
要显示八位数字,所以用3位2进制数作为输出。
输出信号为cout[0..2]。
总之是通过输入输出信号来对数码管进行位选控制。
程序代码实现
libraryieee;
useentitycn8is
port(clr,start,clk:
inbit;
cout:
outstd_logic_vector(2downto0));
endcn8;
architectureaofcn8is
signaltemp:
std_logic_vector(2downto0);
begin
process(clk,clr)
begin
ifclr='0'then
temp<="000";
cout<='0';
elsif(clk'eventandclk='1')then
ifstart='0'then
iftemp>="111"then
temp<="000";
cout<='1';
else
temp<=temp+1;
cout<='0';
endif;
endif;
endif;
endprocess;
cout<=temp;
enda;
数据选择模块
数据选择模(八选一模块)块流程图
输入输出引脚及其功能说明
SEL81模块输入信号一个是数据选择器SEL81的地址码SEL[2..0],另一部分是数据信息A[3..0]~H[3..0].地址码是SEL[2..0]来自时钟脉冲计数器CN8,由地址码SEL[2..0]决定输出哪个输入数据。
输出信号是q[3..0]。
程序代码实现
Libraryieee;
Usesel81is
Port(sel:
instd_logic_vector(2downto0);
A,b,c,d,e,f,g,h:
instd_logic_vector(3downto0);
Q:
outstd_logic_vector(3downto0));
Endsel81;
Architecturertlofsel81is
begin
Process(a,b,c,d,e,f,g,h,sel)
Variablecout:
std_logic_vector(3downto0);
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;
Whenothers=>cout:
=h;
Endcase;
Q<=cout;
Endprocess;
Endrtl;
七段译码器模块
七段译码器模块模块流程图
输入输出引脚及其功能说明
DISP模块是七段译码器,将输入的4位二进制数转换为数码显示管对应的数字。
例如输入为4进制数0000的时候,使数码显示管显示0,则要七段译码器输出为011111。
即g段为0,g段发光二极管不亮,其它发光二极管被点亮,显示效果为0。
DISP模块输入信号D[3..0],输出信号是Q[6..0]。
程序代码实现
Libraryieee;
Usedispis
port(d:
instd_logic_vector(3downto0);
q:
outstd_logic_vector(6downto0));
enddisp;
Architecturertlofdispis
Begin
Process(d)
Begin
Casedis
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";
Whenothers=>q<="1101111";
Endcase;
Endprocess;
Endrtl;
第五章调试并分析结果
输入说明
clk时钟输入
Clr计数器清零(低电平有效)
Start打开计数器(低电平有效)
A[3..0]..H[3..0]输入要显示的数字
预计输出
Cout[2..0]数码管位选控制
Q[6..0]数码管段选控制
测试结果记录
同时显示0,1,2,3,4,5,6,7这八个不同的数字图形到八个数码管上。
测试结果分析
输入一个时钟,驱动计数器工作。
选用模值为8的计数器,依次控制8个数码管的亮灭,使得某一时刻有且仅有一个数码管点亮,同时产生对应的,将点亮的数码管赋值显示为相应的数码予以显示。
由于扫描频率较高,8位数码管序列将显示持续稳定的0至7的数码。
第六章结论
心得体会
在课程设计之前,我学过51单片机,对硬件与软件的联系有初步的了解,其次我的题目相对较简单---设计8位数码管动态显示电路,所以上手特别的快。
在编写程序之前,我到实验室实地考察了一下试验箱,发现8位数码管实验无法实现,只能实现6位,开关实现数码管数字变换也不现实,单单8位数码管的数字就需要32个开关控制,试验箱远远达不到这个要求,因此,我就设计全软件来控制并且做得非常成功。
最后验收时听老师分析,全软件的程序有很大的缺陷,然后对我的设计又进一步的改进,用开关来进行控制。
总之,通过这次课程设计,我对EDA技术有了更进一步的了解。
也知道了如何把vhdl的程序装到实验的硬件中,然后如何的连接实验箱上的管脚。
通过在上网查询本次实验相关资料。
丰富了对EDA的了解。
参考文献
[1]路勇.电子电路实验及仿真[M].北京:
北京交通大学出版社,2010.
[2]孟涛.电工电子EDA实践教程[M].北京:
机械工业出版社,2010.
[3]高吉祥.电子技术基础实验与课程设计[M].北京:
电子工业出版社,2005
[4]候建军.电子技术基础实验、综合设计实验与课程设计[M].北京:
高等教育出版社,2007.
附录
课程设计中的程序如下:
libraryieee;
useuseentitydiv2kis
port(clk_in:
instd_logic;
clk_out:
outstd_logic);
end;
architectureaofdiv2kis
signalcnt:
integerrange0to999;
signalclk_tmp:
std_logic;
begin
process(clk_in)
begin
if(clk_in'eventandclk_in='1')then
ifcnt=999then
cnt<=0;clk_tmp<=notclk_tmp;
else
cnt<=cnt+1;
endif;
endif;
endprocess;
clk_out<=clk_tmp;
end;
------B
LIBRARYIEEE;
USE
ENTITYscan_ledIS
PORT(CLK:
INSTD_LOGIC;
SG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
BT:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
END;
ARCHITECTUREarcOFscan_ledIS
componentdiv2k
port(clk_in:
instd_logic;
clk_out:
outstd_logic);
endcomponent;
SIGNALCNT6:
INTEGERRANGE0TO5;
SIGNALA:
INTEGERRANGE0TO5;
SIGNALCOUNT:
INTEGERRANGE0TO5000:
=0;
SIGNAlFLAG:
INTEGERRANGE0TO10:
=0;
SIGNAlFLAG_A:
INTEGERRANGE0TO15;
SIGNALclk_tmp:
STD_LOGIC;
BEGIN
u1:
div2kportmap(clk_in=>CLK,clk_out=>clk_tmp);
-------------3线至6线译码器----A为位码-------------
P1:
process(CNT6)
BEGIN
CASECNT6IS
WHEN0=>BT<="000";A<=0;
WHEN1=>BT<="001";A<=1;
WHEN2=>BT<="010";A<=2;
WHEN3=>BT<="011";A<=3;
WHEN4=>BT<="100";A<=4;
WHEN5=>BT<="101";A<=5;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESSP1;
-------------------------拓展模块-------------------------------------
P2:
process(clk_tmp)
BEGIN
IFclk_tmp'EVENTANDclk_tmp='1'THEN--实现模6计数器
ifCNT6=5then
CNT6<=0;
elseCNT6<=CNT6+1;
endif;
IF(FLAG=11)THEN--设置标志
FLAG<=0;
ENDIF;
IFCOUNT=5000THEN--另一个时钟
COUNT<=0;
FLAG<=FLAG+1;--当记满5000时左移动一位
ELSE
COUNT<=COUNT+1;
ENDIF;
ENDIF;
ENDPROCESSP2;
P3:
process(A)
BEGIN
FLAG_A<=(A+FLAG);--0-F循环显示
CASEFLAG_AIS
WHEN0=>SG<="1111110";--0--共阴abcdefg
WHEN1=>SG<="0110000";--1
WHEN2=>SG<="1101101";--2
WHEN3=>SG<="1111001";--3
WHEN4=>SG<="0110011";--4
WHEN5=>SG<="1011011";--5
WHEN6=>SG<="1011111";--6
WHEN7=>SG<="1110000";--7
WHEN8=>SG<="1111111";--8
WHEN9=>SG<="1111011";--9
WHEN10=>SG<="1110111";--A
WHEN11=>SG<="0011111";--B
WHEN12=>SG<="1001110";--C
WHEN13=>SG<="0111101";--D
WHEN14=>SG<="1001111";--E
WHEN15=>SG<="1001111";--F
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESSP3;
ENDarc;
课程设计成绩评定表
院系:
物理与电子工程学院班级:
二班姓名:
李硕学号:
39
项目
分值
优秀
(x≥90%)
良好
(90%>x≥80%)
中等
(80%>x≥70%)
及格
(70%>x≥60%)
不及格(x<60%)
评分
参考标准
参考标准
参考标准
参考标准
参考标准
平时考核
20
学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作。
学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务。
学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作。
学习态度尚可,能遵守组织纪律,能按期完成任务。
学习马虎,纪律涣散,工作作风不严谨,不能保证设计时间和进度。
课程设计报告
报告内容组织书写
20
结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰。
结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰。
结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰。
结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整。
内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰。
技术水平
20
设计合理、理论分析与计算正确,文献查阅能力强、引用合理、调查调研非常合
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 显示 电路设计