EDA脉冲按键电话显示器要点.docx

上传人:b****1 文档编号:14900611 上传时间:2023-06-28 格式:DOCX 页数:15 大小:76.01KB
下载 相关 举报
EDA脉冲按键电话显示器要点.docx_第1页
第1页 / 共15页
EDA脉冲按键电话显示器要点.docx_第2页
第2页 / 共15页
EDA脉冲按键电话显示器要点.docx_第3页
第3页 / 共15页
EDA脉冲按键电话显示器要点.docx_第4页
第4页 / 共15页
EDA脉冲按键电话显示器要点.docx_第5页
第5页 / 共15页
EDA脉冲按键电话显示器要点.docx_第6页
第6页 / 共15页
EDA脉冲按键电话显示器要点.docx_第7页
第7页 / 共15页
EDA脉冲按键电话显示器要点.docx_第8页
第8页 / 共15页
EDA脉冲按键电话显示器要点.docx_第9页
第9页 / 共15页
EDA脉冲按键电话显示器要点.docx_第10页
第10页 / 共15页
EDA脉冲按键电话显示器要点.docx_第11页
第11页 / 共15页
EDA脉冲按键电话显示器要点.docx_第12页
第12页 / 共15页
EDA脉冲按键电话显示器要点.docx_第13页
第13页 / 共15页
EDA脉冲按键电话显示器要点.docx_第14页
第14页 / 共15页
EDA脉冲按键电话显示器要点.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA脉冲按键电话显示器要点.docx

《EDA脉冲按键电话显示器要点.docx》由会员分享,可在线阅读,更多相关《EDA脉冲按键电话显示器要点.docx(15页珍藏版)》请在冰点文库上搜索。

EDA脉冲按键电话显示器要点.docx

EDA脉冲按键电话显示器要点

 

东北石油大学

课程设计

课程EDA技术课程设计

题目脉冲按键电话显示器

院系电子科学学院

专业班级电子信息工程

学生姓名

学生学号

指导教师

 

 

2012年3月2日

东北石油大学课程设计任务书

课程EDA技术课程设计

题目脉冲按键电话显示器

专业电子信息工程姓名学号

主要内容、基本要求、主要参考资料等

主要内容:

设计一个准确地反映按键数字具有8位显示的电话按键显示器,该电话显示器要求具有重拨的功能,当按下重拨键时,能够显示最后一次输入的电话号码。

基本要求:

1、设计一个具有8位显示的电话按键显示器;

2、能准确地反映按键数字;

3、显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;

4、设置一个“重拨”键,按下此键,能显示最后一次输入的电话号码;

5、挂机2秒后或按熄灭按键,熄灭显示器显示。

主要参考资料:

[1]潘松著.EDA技术实用教程(第二版).北京:

科学出版社,2005.

[2]康华光主编.电子技术基础模拟部分.北京:

高教出版社,2006.

[3]阎石主编.数字电子技术基础.北京:

高教出版社,2003.

完成期限2012.3.5

指导教师

专业负责人

2012年3月2日

一、总体设计思想

1.基本原理

EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。

在本次课程设计中是用VHDL语言实现一个能准确地反映按键数字、具有8位显示的电话按键显示器。

摘机时开始工作,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;设置一个“重拨”键,按下此键能显示最后一次输入的电话号码;挂机2秒后或按熄灭键,熄灭显示器显示。

2.设计框图

图1脉冲按键电话显示器总体设计方案

二、设计步骤和调试过程

1、总体设计电路

本文设计的脉冲按键电话显示器由五个模块组成:

按键电路、译码器、移位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。

图2总体设计电路模块

2、模块设计和相应模块程序

2.1顶层文件

按键电路模块。

提供“0”到“9”数字按键的输入,同时设置有拨号键,清除键,挂机键和重拨键。

(1)顶层文件程序

模块程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYUP_KEYIS

PORT(DIN1:

INSTD_LOGIC_VECTOR(9DOWNTO0);

CLK1,CLEAR,DIAL,RE_DIAL:

INSTD_LOGIC;

KEYOUT:

OUTSTD_LOGIC;

SEG71:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

SEG8:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITY;

ARCHITECTUREONEOFUP_KEYIS

COMPONENTSHOWIS

PORT(DIN:

INSTD_LOGIC_VECTOR(9DOWNTO0);

CLK,CLEAR,DIAL,RE_DIAL:

INSTD_LOGIC;

KEYOUT:

OUTSTD_LOGIC;

SET:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SEG8:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDCOMPONENT;

COMPONENTTRAIS

PORT(BCD1:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SEG7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDCOMPONENT;

SIGNALSET_1:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

U1:

SHOWPORTMAP(DIN1,CLK1,CLEAR,DIAL,RE_DIAL,KEYOUT,SET_1,SEG8);

U2:

TRAPORTMAP(SET_1,SEG71);

ENDARCHITECTUREONE;

(2)各端口说明分别为:

输入:

输出:

DIN1[9…0]:

0~9十个数字键;KEYOUT:

可输入数字指示灯;

CLK1:

时钟脉冲;SEG71[6…0]:

8位数码管;

CLEAR:

删除键;SEG3[2…0]:

数码管的七段;

DIAL:

拨号键;

RE_DAIL:

重拨键

2.2BCD译码模块

译码器有两个功能。

第一,把输入的一位键值转换成四位BCD码;第二,把4位二进制码译成相应的数码管输出显示码。

(1)BCD译码子程序

模块程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYTRAIS

PORT(

BCD1:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SEG7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITY;

ARCHITECTUREONEOFTRAIS

BEGIN

PROCESS(BCD1)IS

BEGIN

CASEBCD1IS

WHEN"0000"=>SEG7<="0111111";

WHEN"0001"=>SEG7<="0000110";

WHEN"0010"=>SEG7<="1011011";

WHEN"0011"=>SEG7<="1001111";

WHEN"0100"=>SEG7<="1100110";

WHEN"0101"=>SEG7<="1101101";

WHEN"0110"=>SEG7<="1111101";

WHEN"0111"=>SEG7<="0000111";

WHEN"1000"=>SEG7<="1111111";

WHEN"1001"=>SEG7<="1101111";

WHENOTHERS=>SEG7<="0000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTURE;

(2)BCD译码模块电路

图3BCD译码程序模块电路

各端口说明分别为:

输入:

输出:

BCD1[3…0]:

4位BCD码;数码管的七段显示

2.3键值显示模块

数码管显示用于将设置好的每个按键的键值在数码管上显示出来。

由于实验过程中需要使用8个数码管,因此数码管显示模块必须加上数码管片选及移位得程序,从而实现数据输入以后从低位向高位移动、显示。

(1)键值显示子程序

模块程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYSHOWIS

PORT(DIN:

INSTD_LOGIC_VECTOR(9DOWNTO0);

CLK,CLEAR,DIAL,RE_DIAL:

INSTD_LOGIC;

KEYOUT:

OUTSTD_LOGIC;

SET:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SEG8:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITY;

ARCHITECTUREONEOFSHOWIS

SUBTYPETENISSTD_LOGIC_VECTOR(3DOWNTO0);

SIGNALBCD:

TEN;

TYPENUMBER1ISARRAY(7DOWNTO0)OFSTD_LOGIC_VECTOR(3DOWNTO0);

SIGNALNUMBER:

NUMBER1;

SIGNALKEY,KEY1,CLK1,DIAL1,RE_DIAL1:

STD_LOGIC;

SIGNALCOUNT:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALCOUNT1:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALCOUNT2:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALDIN1:

STD_LOGIC_VECTOR(9DOWNTO0);

SIGNALLOCK:

STD_LOGIC_VECTOR(31DOWNTO0);

BEGIN

PROCESS(CLK)IS

BEGIN

IFRISING_EDGE(CLK)THEN

COUNT1<=COUNT1+1;

ENDIF;

ENDPROCESS;

CLK1<='0'WHENCOUNT1<"1100"ELSE'1';

PROCESS(CLK1)IS

BEGIN

IFRISING_EDGE(CLK1)THEN

DIN1(9DOWNTO0)<=DIN(9DOWNTO0);

DIAL1<=DIAL;

RE_DIAL1<=RE_DIAL;

ENDIF;

ENDPROCESS;

KEY<=(DIN1(0)ORDIN1

(1)ORDIN1

(2)ORDIN1(3)ORDIN1(4)ORDIN1(5)ORDIN(6)ORDIN1(7)ORDIN1(8)ORDIN1(9));

PROCESS(CLK1)IS

BEGIN

IFFALLING_EDGE(CLK1)THEN

IFCOUNT2="100"THEN

IFCLEAR='0'ANDRE_DIAL='0'THEN

KEY1<=KEY;

ELSIFCLEAR='1'ANDRE_DIAL='0'THEN

KEY1<=CLK;

ELSEKEY1<=RE_DIAL1;

ENDIF;

COUNT2<="000";

ELSE

COUNT2<=COUNT2+1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(DIN1)IS

BEGIN

IFDIN1(6)='1'THENBCD<="0110";

ELSIFDIN1

(1)='1'THENBCD<="0001";

ELSIFDIN1

(2)='1'THENBCD<="0010";

ELSIFDIN1(3)='1'THENBCD<="0011";

ELSIFDIN1(4)='1'THENBCD<="0100";

ELSIFDIN1(5)='1'THENBCD<="0101";

ELSIFDIN1(0)='1'THENBCD<="0000";

ELSIFDIN1(7)='1'THENBCD<="0111";

ELSIFDIN1(8)='1'THENBCD<="1000";

ELSIFDIN1(9)='1'THENBCD<="1001";

ELSEBCD<="0000";

ENDIF;

ENDPROCESS;

KEYOUT<=KEY1;

PROCESS(KEY1)IS

BEGIN

IFRISING_EDGE(KEY1)THEN

IFCLEAR='0'ANDRE_DIAL1='0'THENNUMBER(7)<=NUMBER(6);

NUMBER(6)<=NUMBER(5);

NUMBER(5)<=NUMBER(4);

NUMBER(4)<=NUMBER(3);

NUMBER(3)<=NUMBER

(2);

NUMBER

(2)<=NUMBER

(1);

NUMBER

(1)<=NUMBER(0);

NUMBER(0)<=BCD;

ELSIFCLEAR='1'ANDRE_DIAL1='0'THENNUMBER(0)<=NUMBER

(1);

NUMBER

(1)<=NUMBER

(2);

NUMBER

(2)<=NUMBER(3);

NUMBER(3)<=NUMBER(4);

NUMBER(4)<=NUMBER(5);

NUMBER(5)<=NUMBER(6);

NUMBER(6)<=NUMBER(7);

NUMBER(7)<="1111";

ELSE

NUMBER(7)<=LOCK(31DOWNTO28);

NUMBER(6)<=LOCK(27DOWNTO24);

NUMBER(5)<=LOCK(23DOWNTO20);

NUMBER(4)<=LOCK(19DOWNTO16);

NUMBER(3)<=LOCK(15DOWNTO12);

NUMBER

(2)<=LOCK(11DOWNTO8);

NUMBER

(1)<=LOCK(7DOWNTO4);

NUMBER(0)<=LOCK(3DOWNTO0);

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CLK)IS

BEGIN

IFRISING_EDGE(CLK)THEN

COUNT<=COUNT+1;

ENDIF;

ENDPROCESS;

PROCESS(COUNT)IS

BEGIN

CASECOUNTIS

WHEN"0001"=>SET<=NUMBER(7);SEG8<="00000001";

WHEN"0011"=>SET<=NUMBER(6);SEG8<="00000010";

WHEN"0101"=>SET<=NUMBER(5);SEG8<="00000100";

WHEN"0111"=>SET<=NUMBER(4);SEG8<="00001000";

WHEN"1001"=>SET<=NUMBER(3);SEG8<="00010000";

WHEN"1011"=>SET<=NUMBER

(2);SEG8<="00100000";

WHEN"1101"=>SET<=NUMBER

(1);SEG8<="01000000";

WHEN"1111"=>SET<=NUMBER(4);SEG8<="10000000";

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

PROCESS(DIAL1)IS

BEGIN

IFRISING_EDGE(DIAL1)THEN

LOCK(31DOWNTO28)<=NUMBER(7);

LOCK(27DOWNTO24)<=NUMBER(6);

LOCK(23DOWNTO20)<=NUMBER(5);

LOCK(19DOWNTO16)<=NUMBER(4);

LOCK(15DOWNTO12)<=NUMBER(3);

LOCK(11DOWNTO8)<=NUMBER

(2);

LOCK(7DOWNTO4)<=NUMBER

(1);

LOCK(3DOWNTO0)<=NUMBER(0);

ENDIF;

ENDPROCESS;ENDARCHITECTURE;

(2)键值显示模块

图4按键显示控制框图

各端口说明分别为:

输入:

输出:

DIN[9…0]:

0~9十个数字键;KEYOUT:

可输入数字指示灯;

CLK:

时钟脉冲;SET[3…0]:

键值的BCD码

CLEAR:

删除键;SEG3[2…0]:

数码管的七段;

DIAL:

拨号键;

RE_DAIL:

重拨键

3、仿真及仿真结果分析

图5仿真图

4、实验调试结果

将程序下载进行硬件测试。

在QuartusⅡ开发环境中进行管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。

最终可以看到按键正常显示、“重拨”键功能正常、达到设计要求。

三、结论及心得体会

通过本次课程设计,让我在以前所学知识的基础上,更加了解了对EDA语言编程的认识,不仅强化了以前所学过的知识,并且学到了许多书本上没有的知识,极大的扩展了我的知识面,所获匪浅。

从复习以前所学的知识到对整体设计的了解,再从概要设计、详细设计到开始使用软件以及最后的调试,整个过程都很充实。

虽然遇到不少困难,但当我通过自己查资料向老师请教及与同学相互讨论而设计出解决方案并成功实现时,那种成就感和满足感就让我忘了所有的辛苦。

由于自己只是的不足,在本次设计中仍有许多不尽如人意的地方,可能在实际应用中有些功能不到位。

经过这段时间的毕业设计实习,确实学到了不少的东西,同时也深感自己知识的欠缺,虽然即将毕业,但在以后的学习工作中,我一定会继续坚持不断的学习新的专业知识,不断完善自己,只有这样才能紧跟时代的潮流。

 

参考资料

[1]潘松著.EDA技术实用教程(第二版).北京:

科学出版社,2005.

[2]康华光主编.电子技术基础模拟部分.北京:

高教出版社,2006.

[3]阎石主编.数字电子技术基础.北京:

高教出版社,2003.

[4]李云,侯传教,冯永浩编.VHDL电路设计实用教程.机械工业出版社,2009.

[5]褚振勇,翁木云编.FPGA设计及应用.西安电子科技大学出版社,2002.

[6]卢毅,赖杰编.VHDL与数字电路设计.科学出版社,2001.

 

东北石油大学课程设计成绩评价表

课程名称

EDA技术课程设计

题目名称

脉冲按键电话显示器

学生姓名

学号

指导教师姓名

职称

序号

评价项目

指标

满分

评分

1

工作量、工作态度和出勤率

按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。

20

2

课程设计质量

课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。

45

3

创新

工作中有创新意识,对前人工作有一些改进或有一定应用价值。

5

4

答辩

能正确回答指导教师所提出的问题。

30

总分

评语:

 

指导教师:

2012年3月5日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2