脉冲按键电话显示器Word下载.docx

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

脉冲按键电话显示器Word下载.docx

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

脉冲按键电话显示器Word下载.docx

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

摘机时开始工作,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;

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

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

脉冲按键电话显示器由五个模块组成:

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

(1)按键电路模块。

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

(2)译码电路模块。

译码器有两个功能。

第一,把输入的一位键值转换成四位BCD码;

第二,把四位二进制码译成相应的数码管输出显示码。

(3)移位寄存器、锁存模块。

移位寄存器分为三个部分。

当按下拨号键时,数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;

当按下删除键时,键值由高位向低位移除,高位数码管熄灭;

当按下重拨键时,锁存器中存储的键值输入到移位寄存器中,并通过数码管显示出来。

(4)数码管显示模块。

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

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

2.设计框图

图1整体设计框图

用VHDL语言实现的脉冲按键电话显示器将由四个模块组成;

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

其原理通过数字键入,通过电脉冲信号到达控制电路,信号被储存在移位寄存器,该信号可由数码管显示电路显示出来,移位寄存器中的控制信号通过另外的一个控制电路将对以下电路进行控制;

脉冲产生电路和计时电路,该计时电路经过译码,可显示在译码显示器上。

3.总体设计电路

图2总体设计电路模块

二、设计步骤和调试过程

1、模块设计和相应模块代码

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:

CLK,CLEAR,DIAL,RE_DIAL:

SET:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

ENDCOMPONENT;

COMPONENTTRAIS

PORT(BCD1:

INSTD_LOGIC_VECTOR(3DOWNTO0);

SEG7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

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译码子程序

ENTITYTRAIS

PORT(

BCD1:

SEG7:

ARCHITECTUREONEOFTRAIS

PROCESS(BCD1)IS

BEGIN

CASEBCD1IS

WHEN"

0000"

=>

SEG7<

="

0111111"

;

0001"

0000110"

0010"

1011011"

0011"

1001111"

0100"

1100110"

0101"

1101101"

0110"

1111101"

0111"

0000111"

1000"

1111111"

1001"

1101111"

WHENOTHERS=>

0000000"

ENDCASE;

ENDPROCESS;

ENDARCHITECTURE;

(2)译码模块电路

图3BCD译码程序模块电路

各端口说明分别为:

BCD1[3…0]:

4位BCD码;

数码管的七段显示

2.3键值显示模块

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

4位BCD码

g

f

e

d

c

b

a

显示数字

1

2

3

4

5

6

7

8

9

其他情况

表1BCD码对应的数码管显示

(1)键值显示子程序

ENTITYSHOWIS

PORT(DIN:

CLK,CLEAR,DIAL,RE_DIAL:

KEYOUT:

SET:

SEG8:

ARCHITECTUREONEOFSHOWIS

SUBTYPETENISSTD_LOGIC_VECTOR(3DOWNTO0);

SIGNALBCD:

TEN;

TYPENUMBER1ISARRAY(7DOWNTO0)OFSTD_LOGIC_VECTOR(3DOWNTO0);

SIGNALNUMBER:

NUMBER1;

SIGNALKEY,KEY1,CLK1,DIAL1,RE_DIAL1:

STD_LOGIC;

SIGNALCOUNT:

SIGNALCOUNT1:

SIGNALCOUNT2:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALDIN1:

STD_LOGIC_VECTOR(9DOWNTO0);

SIGNALLOCK:

STD_LOGIC_VECTOR(31DOWNTO0);

BEGIN

PROCESS(CLK)IS

IFRISING_EDGE(CLK)THEN

COUNT1<

=COUNT1+1;

ENDIF;

CLK1<

='

0'

WHENCOUNT1<

"

1100"

ELSE'

1'

PROCESS(CLK1)IS

IFRISING_EDGE(CLK1)THEN

DIN1(9DOWNTO0)<

=DIN(9DOWNTO0);

DIAL1<

=DIAL;

RE_DIAL1<

=RE_DIAL;

KEY<

=(DIN1(0)ORDIN1

(1)ORDIN1

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

IFFALLING_EDGE(CLK1)THEN

IFCOUNT2="

100"

THEN

IFCLEAR='

ANDRE_DIAL='

KEY1<

=KEY;

ELSIFCLEAR='

ANDRE_DIAL='

=CLK;

ELSEKEY1<

=RE_DIAL1;

ENDIF;

COUNT2<

000"

ELSE

COUNT2<

=COUNT2+1;

PROCESS(DIN1)IS

IFDIN1(6)='

THENBCD<

ELSIFDIN1

(1)='

ELSIFDIN1

(2)='

ELSIFDIN1(3)='

ELSIFDIN1(4)='

ELSIFDIN1(5)='

ELSIFDIN1(0)='

ELSIFDIN1(7)='

ELSIFDIN1(8)='

ELSIFDIN1(9)='

ELSEBCD<

ENDPROCESS;

KEYOUT<

=KEY1;

PROCESS(KEY1)IS

IFRISING_EDGE(KEY1)THEN

ANDRE_DIAL1='

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='

THENNUMBER(0)<

=NUMBER(7);

NUMBER(7)<

1111"

ELSE

=LOCK(31DOWNTO28);

=LOCK(27DOWNTO24);

=LOCK(23DOWNTO20);

=LOCK(19DOWNTO16);

=LOCK(15DOWNTO12);

=LOCK(11DOWNTO8);

=LOCK(7DOWNTO4);

=LOCK(3DOWNTO0);

COUNT<

=COUNT+1;

ENDPROCESS;

PROCESS(COUNT)IS

CASECOUNTIS

SET<

=NUMBER(7);

SEG8<

00000001"

00000010"

00000100"

00001000"

00010000"

1011"

00100000"

1101"

01000000"

10000000"

NULL;

PROCESS(DIAL1)IS

BEGIN

IFRISING_EDGE(DIAL1)THEN

LOCK(31DOWNTO28)<

LOCK(27DOWNTO24)<

LOCK(23DOWNTO20)<

LOCK(19DOWNTO16)<

LOCK(15DOWNTO12)<

LOCK(11DOWNTO8)<

LOCK(7DOWNTO4)<

LOCK(3DOWNTO0)<

(2)键值显示模块

图4按键显示控制框图

DIN[9…0]:

CLK:

SET[3…0]:

键值的BCD码;

SEG3[2…0]:

2、仿真及仿真结果分析

图5仿真图

仿真结果如预期所想,实现了预期的电话号码移位设计电路是通过按不同的按键来控制电话号码的拨打情况,通过一个清零端可以控制(当输入错误号码后,清除当前号码,再重新输入一组新的号码时)电话号码的输入,这样可以自如的输入和更改电话号码。

锁存器记录最后一次所拨号码可以进行重拨操作,显示时间过长可以进行挂机操作。

3、实验调试结果

为验证所设计的程序是否正确,将程序下载进行硬件测试。

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

最终可以看到键入的数字在数码管上进行显示。

重拨、清楚、挂机等均能够正常使用,达到设计要求。

三、结论及心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

通过这次的EDA课设,加深了对电子电路理论知识的理解,并锻炼了实践动手能力,具备了电子电路的基本设计能力和基本调试能力,能够正确的使用实验仪器。

回顾起此次EDA课程设计,至今我仍感慨颇多。

的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

虽然即将毕业,但在以后的学习工作中,我一定会继续坚持不断的学习新的专业知识,不断完善自己,只有这样才能紧跟时代的潮流。

参考资料

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

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

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

[7]甘力,VHDL应用与开发实践[M].科学出版社,2003

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

课程名称

EDA技术课程设计

题目名称

学生姓名

学号

指导教师姓名

职称

序号

评价项目

指标

满分

评分

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

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

20

课程设计质量

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

45

创新

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

答辩

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

30

总分

评语:

指导教师:

2014年3月10日

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

当前位置:首页 > 高中教育 > 数学

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

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