dk型led智能显示系统 线条方式设计天安门图案闪光并以各种不同方式显示大学论文.docx
- 文档编号:9694356
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:23
- 大小:101.54KB
dk型led智能显示系统 线条方式设计天安门图案闪光并以各种不同方式显示大学论文.docx
《dk型led智能显示系统 线条方式设计天安门图案闪光并以各种不同方式显示大学论文.docx》由会员分享,可在线阅读,更多相关《dk型led智能显示系统 线条方式设计天安门图案闪光并以各种不同方式显示大学论文.docx(23页珍藏版)》请在冰豆网上搜索。
dk型led智能显示系统线条方式设计天安门图案闪光并以各种不同方式显示大学论文
唐山学院
《EDA技术》课程设计
题目简易数字频率计设计
系(部)智能与信息工程学院
班级
姓名
学号
指导教师郭耀华王墨琪戴彦
2016年6月29日至7月1日共1周
2016年7月1日
《EDA技术》课程设计任务书
一、设计题目、内容及要求
设计题目:
《简易数字频率计设计》
设计内容:
(1)设计四位十进制的简易数字频率计,对1HZ-10MHZ的方波信号进行测量;
(2)测量的方波频率值要在4位数码管上进行显示;
(3)根据不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程。
(4)此频率计要设有一个整体复位控制;
设计要求:
(1)根据任务要求确定状态关系,画出状态转换图;
(2)写出设计程序;
(3)给出时序仿真结果;
(4)最后要有设计总结;
二、设计原始资料
QuartusⅡ软件;EDA实验箱;计算机一台;
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。
四、进程安排
周1-周4:
查阅资料,上机编写并调试程序
周5:
课程设计答辩并交设计说明书
五、主要参考资料
[1].VokneiA.Pedroni.《VHDL数字电路设计教程》.电子工业出版社,2008.5
[2].潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,2005.2
[3].焦素敏.《EDA应用技术》.清华大学出版社,2002.4
指导教师(签名):
教研室主任(签名):
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年月日
目录
1引言1
2应用工具简介2
2.1EDA技术介绍2
2.2VHDL语言介绍2
3总体设计3
3.1设计内容3
3.2设计要求3
3.3设计原理3
3.4设计思路3
3.5模块的设计3
3.5.1分频模块设计3
3.5.2频率测量模块设计5
3.5.3锁存与倍率分辨模块设计6
3.5.4译码模块设计7
3.6模块连接8
4系统仿真及下载9
4.1系统仿真9
4.2系统下载9
4.3结果分析9
5总结及体会10
参考文献11
附录12
1引言
所谓频率,就是周期性信号在单位时间(1s)里变化的次数。
本频率计设计测量频率的基本原理是,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来。
根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。
本频率计设计还可以测量周期性信号,其基本原理与测量频率的基本原理基本一样,首先让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把被测信号一个周期内标准基准信号的脉冲计数的结果,用锁存器锁存起来,最后用显示译码器,把锁存的结果用LED数码显示管显示出来,显示管的读数就是被测信号以标准信号的周期为单位乘积的周期。
2应用工具简介
2.1EDA技术介绍
EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来。
EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
2.2VHDL语言介绍
电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。
VHDL硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA技术研究的重点之一。
VHDL的英文全写是:
VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。
因此它的应用主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件描述语言。
因此,VHDL成为硬件描述语言的业界标准之一。
一个完整的VHDL程序包括以下几个基本组成部分:
实体(Entity),结构体(Architecture),程序包(Package),库(Library)。
其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成,实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为,系统数据的流程或系统组织结构形式。
程序包存放各设计模块能共享的数据类型,常数,子程序等。
库用于存放已编译的实体,机构体,程序包及配置。
VHDL语言的编译环境有不同的版本,我们应用的是Altera公司的Maxplus软件,它的操作顺序如下:
使用TEXTEDITOR编写VHDL程序使用COMPILER编译VHDL程序;使用WAVE2FORMEDITOR,SIMULAROT仿真实验;使用TIMINGANALTZER进行芯片的时序分析;用FLOORPLANEDITOR锁定芯片管脚位置;使用PROGRAMMER将编译好的VHDL程序下载到芯片中。
3总体设计
3.1设计内容
(1)设计四位十进制的简易数字频率计,对1HZ-10MHZ的方波信号进行测量;
(2)测量的方波频率值要在4位数码管上进行显示;
(3)根据不同的待测方波信号,频率计分为4个量程进行测量,四个量程分别为乘1,乘10,乘100,乘1000量程。
(4)此频率计要设有一个整体复位控制;
3.2设计要求
(1)根据任务要求确定状态关系,画出状态转换图;
(2)写出设计程序;
(3)给出时序仿真结果;
(4)最后要有设计总结;
3.3设计原理
根据设计要求,系统的输入信号:
基准时钟脉冲clk,待测信号clkin,复位信号rst,输出信号:
显示倍率bei,显示频率y0—y3。
在复位信号ret=0时显示该时刻输入频率,rst=1时显示0。
3.4设计思路
整个设计由分频模块、频率测量模块、锁存与倍率分辨模块、译码模块四个部分组成。
其中分频模块是把clk分成100个周期的脉冲的mile_clk与8个或9个周期的cost_clk;计程模块是用来计算行驶里程;计费是用来显示行驶费用。
系统结构框图如图3-1所示:
3.5模块的设计
模块列化是EDA设计常用手段,将一个复杂系统分块设计使其变得简单,具体方法是将一个小系统用VHDL语言或者硬件连接的方式表示出来然后生成一个新的具有特殊功能的元件。
本设计中采用了4个经列化的元件,具体如下所示。
3.5.1分频模块设计
clk为基准脉冲5MHZ通过分频模块分成4个不同频率与占空比的脉冲,clk1用来作为1秒脉宽的测频基准信号其高电平保持1秒低电平保持10个基准脉宽,
图3-1系统结构框图
clkf用来在下一次测频前将前一秒的数据清零其保持1秒加9个基准脉冲的低电平与1个基准脉冲的高电平,clk1与clkf频率为5000010HZ。
clk5为2.5MHZ的锁存器扫描频率,clk100位1000HZ的数码管扫描频率。
分频模块如图3-2所示:
图3-2分频模块图
分频模块仿真图如图3-3所示
图3-3分频模块仿真图
3.5.2频率测量模块设计
当复位信号rst为低电平时,在clk高电平期间clkin每来一个上升沿,测频器低位i1就自增1,当i1满9时,i1清零,i2自增1,i2满9时,i2清零,直至i7计满9全部清零。
因此测频器的测频范围是0~9999999Hz,满量程后自动归零。
在下一个clk高电平到来之前clk配合clkf将前一个高电平所计值清零。
测频模块图3-4如下:
图3-4测频模块图
测频模块仿真图如图3-5所示
图3-5测频模块图
3.5.3锁存与倍率分辨模块设计
本模块共有11个输入端口其中包括7位测频器输入,一个扫描端口,一个复位端口,clk与clkf两个端口同时控制其读取与锁存测频器输入信号;5个输出端口分别是最高非零4位测频器输入值与一位倍率值,其4位测频器输入值送入译码器再送至数码管译码显示;倍率值直接输出至二极管。
计费模块如图3-4所示:
图3-6锁存与倍率模块图
计费模块仿真图如图3-7所示
图3-7锁存与倍率模块仿真图
3.5.4译码模块设计
本系统最终由8段数码管显示但系统运算皆使用bcd码,所以要对将要显示的数进行译码处理,由于实验室提供4位共阴极动态显示模块,对频率值四位译码。
译码器模块如图3-8所示:
图3-8译码模块图
三位译码模块仿真图如图3-9所示
图3-9译码模块仿真图
3.6模块连接
由于该系统使用元件列化制作最后使用原理图连接的方式将其连接在一起。
系统整体元件连接图如图3-10所示
图3-10整体元件连接图
4系统仿真及下载
4.1系统仿真
系统仿真是在实际系统上进行实验研究比较困难时适用的必不可少的工具,它是指通过系统模型实验去研究一个已经存在或正在设计的系统的过程。
程序输入完成后进行编译,编译完成后,可以对所进行的设计进行仿真,本课程设计的仿真平台是QuartusII软件,通过对VHDL源程序进行编译检错,然后创建波形文件(后缀名为.scf),加入输入输出变量,选择适用的芯片以及设定仿真结束时间,设置好输入初值进行仿真。
系统仿真图如图4-1所示:
图4-1系统仿真图
4.2系统下载
b、wx、y为输出,分别表示倍率、位码和段码,用实验箱上的动态数码管显示,clk为5MHz的脉冲信号,in为待测脉冲信号,rst表示复位,用实验箱上的拨码开关L1代替实现其功能。
硬件引脚锁定如图4-4所示:
图4-2引脚锁定图
4.3结果分析
下载完成后,rst初始置为0。
在一秒后显示输入频率,改变输入频率显示值也相应延时改变符合要求。
5总结及体会
通过这学期学的《EDA技术》,再加上这几天边查资料边请教老师,终于理清了头绪,完成了此次课程设计。
刚开始拿到本次程序设计题的时候确实有点儿兴奋,心想着尽量要独立快速而又高质量的完成这次课程设计。
但是大概思路有了,觉得特别复杂,我害怕了,一阵慌乱后,终于定下心来了终于找到了一个比较类似的VHDL程序的简易数字频率计设计。
这也使得我今天的程序颇有类同的感觉。
看了几遍课题设计要求和书上给的源程序后对如何写这一方面的程序有了一定的了解,于是就尝试着自己开始作起了这个系统的总体框图。
平时觉得老师讲课时都特别简单清楚,但是现在自己拿到一个设计要求时,乱阵脚了,但是经过努力,先把封装图画了出来,最终把原理框图画出来了。
时间过得真快,马上到周三了,要进实验室做仿真和下载的时候了,刚开始在实验室有点着急,但是老师的新要求提出时,我冷静了,修改程序,做调试,在最后终于成功的完成了符合设计要求的程序,下载后仍有点小问题需要修改。
但是毕竟得到了老师的肯定,我的信心更足了。
下午又重新整理了自己的思路,功夫不负有心人,终于把问题都解决了。
通过这次EDA课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。
在这次课程设计的过程中,我对VHDL语言有了更深的认识。
通过查阅相关资料和动手设计我发现我以前对VHDL语言的认识太过肤浅,认为VHDL语言只能用于设计小型的电路系统。
但有了更深刻的认识之后我发现学好VHDL语言可以设计出大规模的、功能复杂的电路系统。
我发现了动手实践的重要性。
动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。
只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。
这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑,想要有更大的发展,更深入的研究,还需要更多的努力与实践。
参考文献
[1]VokneiA.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.5
[2]潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.2
[3]焦素敏.EDA应用技术.清华大学出版社,2002.4
[4]张昌凡等.可编程逻辑器件及VHDL设计技术[M].广州:
华南理工大学出版社,2001
[5]曾繁泰,陈美金.VHDL程序设计[M].北京:
清华大学出版社,2001
附录
分频模块源程序
libraryieee;
useieee.std_logic_1164.all;
entityfpis
port(clk:
instd_logic;
clkout1:
outstd_logic;
clkout5:
outstd_logic;
clkout100:
outstd_logic;
clkoutf:
outstd_logic);
end;
architecturebhvoffpis
begin
process(clk)
variabletemp,temp1,temp2,temp3:
integerrange0to10000000;
variablec1,c2,c3,c4:
std_logic;
begin
ifclk'eventandclk='1'then
temp:
=temp+1;temp1:
=temp1+1;temp2:
=temp2+1;temp3:
=temp3+1;
if(temp<50000)then
c1:
='1';
endif;
if(temp=50000)then
c1:
='0';
endif;
if(temp=50010)then
temp:
=0;
endif;
if(temp1<50009)then
c2:
='0';
endif;
if(temp1=50010)then
c2:
='1';
temp1:
=0;
endif;
if(temp2=1)then
c3:
=notc3;
temp2:
=0;
endif;
if(temp3=50)then
c4:
=notc4;
temp3:
=0;
endif;
endif;
clkout1<=c1;
clkout5<=c3;
clkout100<=c4;
clkoutf<=c2;
endprocess;
endbhv;
测频模块源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitybeiceis
port(clk,ql,clkin,rst:
instd_logic;
i1,i2,i3,i4,i5,i6,i7:
outstd_logic_vector(3downto0));
endbeice;
architecturebhvofbeiceis
signalclk1:
std_logic;
begin
process(clk,clkin)
begin
clk1<=clkinandclk;
endprocess;
process(rst,clk1,clk)
variablea1,a2,a3,a4,a5,a6,a7:
std_logic_vector(3downto0);
begin
ifrst='1'orql='1'then
a1:
="0000";a2:
="0000";a3:
="0000";a4:
="0000";a5:
="0000";a6:
="0000";a7:
="0000";
elsifclk1'eventandclk1='1'then
ifa1="1001"thena1:
="0000";
ifa2="1001"thena2:
="0000";
ifa3="1001"thena3:
="0000";
ifa4="1001"thena4:
="0000";
ifa5="1001"thena5:
="0000";
ifa6="1001"thena6:
="0000";
ifa7="1001"thena7:
="0000";
elsea7:
=a7+1;
endif;
elsea6:
=a6+1;
endif;
elsea5:
=a5+1;
endif;
elsea4:
=a4+1;
endif;
elsea3:
=a3+1;
endif;
elsea2:
=a2+1;
endif;
elsea1:
=a1+1;
endif;
endif;
i1<=a1;
i2<=a2;
i3<=a3;
i4<=a4;
i5<=a5;
i6<=a6;
i7<=a7;
endprocess;
endbhv;
锁存与倍率分辨模块源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitysuocunis
port(clk,clk1,clkf,rst:
instd_logic;
a1,a2,a3,a4,a5,a6,a7:
instd_logic_vector(3downto0);
bei:
outstd_logic_vector(3downto0);
bcd1,bcd2,bcd3,bcd4:
outstd_logic_vector(3downto0));
endsuocun;
architecturebhvofsuocunis
begin
process(clk1)
variablesel,b1,b2,b3,b4:
std_logic_vector(3downto0);
begin
ifrst='1'then
bcd4<="0000";bcd3<="0000";bcd2<="0000";bcd1<="0000";
elsifclk1'eventandclk1='1'then
ifclk='0'andclkf='0'then
ifa7>"0000"thenb4:
=a7;b3:
=a6;b2:
=a5;b1:
=a4;sel:
="1000";
elsifa6>"0000"thenb4:
=a6;b3:
=a5;b2:
=a4;b1:
=a3;sel:
="0100";
elsifa5>"0000"thenb4:
=a5;b3:
=a4;b2:
=a3;b1:
=a2;sel:
="0010";
elseb4:
=a4;b3:
=a3;b2:
=a2;b1:
=a1;sel:
="0001";
endif;
endif;
endif;
bei<=sel;
bcd1<=b1;
bcd2<=b2;
bcd3<=b3;
bcd4<=b4;
endprocess;
endbhv;
译码模块源程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityyimais
port(clk:
instd_logic;
bcd1,bcd2,bcd3,bcd4:
instd_logic_vector(3downto0);
wx:
outstd_logic_vector(3downto0);
y:
outstd_logic_vector(7downto0));
endyima;
architecturebhvofyimais
signalbcd:
std_logic_vector(3downto0);
begin
process(clk)
variableys:
integerrange0to5;
begin
ifclk'eventandclk='1'then
ys:
=ys+1;
ifys=1thenbcd<=bcd4;wx<="1000";
elsifys=2thenbcd<=bcd3;wx<="0100";
elsifys=3thenbcd<=bcd2;wx<="0010";
elsifys=4thenbcd<=bcd1;wx<="0001";ys:
=0;
endif;
endif;
endprocess;
process(bcd)
begin
casebcdis
when"0000"=>y(7downto0)<="11111100";
when"0001"=>y(7downto0)<="01100000";
when"0010"=>y(7downto0)<="11011010";
when"0011"=>y(7downto0)<="11110010";
when"0100"=>y(7downto0)<="01100110";
when"0101"=>y(7downto0)<="10110110";
when"0110"=>y(7downto0)<="10111110";
when"0111"=>
y(7downto0)<="11100000";
when"1000"=>y(7downto0)<="11111110";
when"1001"=>y(7downto0)<="11110110";
whe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dk型led智能显示系统 线条方式设计天安门图案闪光并以各种不同方式显示大学论文 dk led 智能 显示 系统 线条 方式 设计 天安门 图案 闪光 各种 不同 大学 论文