VHDL脉冲按键电话显示器

更新时间:2024-05-28 08:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

用VHDL实现脉冲按键电路显示器

第一章 绪论

1.1前言

EDA(Electronic Design Automation,电子设计自动化 )技术正是为了适应现代电子产品设计的要求,吸引多学科最新成果而形成的一门新技术。利用EDA进行电子系统设计,具有以下几个特点:(1)用软件的方式设计硬件;(2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;(3)设计过程中可用有关软件进行各种仿真;(4)系统可现场编程,在线升级;(5)整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。因此,EDA技术是现代电子设计的发展趋势。我们本学期开设了EDA 课程,并开设了为期两周的EDA技术实训,主要利用VHDL语言编程,我们组的题目具体如下。

1.2题目要求

1、 设计一个具有最高8位显示的电话按键显示器,能准确地反映按键数字;

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

“删除键”,按下此键,从最低位开始删除数字,同时显示器数字从高位向低位移动。 3、 设置“拨号键”、“挂机键”、和“重拨键”,拨号键模拟拨号,按下此键拨号指示灯亮,

并存储当前号码;挂机键按下后,待机指示灯亮,2秒后熄灭显示器显示;重拨键按下能显示最后一次输入的电话号码。

2.1系统设计思路与框图

我们设计的用VHDL语言实现的脉冲按键电话显示器由4个模块组成:按键电路,译码器,移位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。脉冲按键电话的总体设计框图如图2.1所示:

常熟理工学院课程设计报告

图2.1 脉冲按键电话总体设计方案

2.2 各模块功能分析

2.2.1按键电路模块

按键电路功能:提供0~9数字按键的输入,同时设置有拨号键,清除键,挂机键和重拨键。

2.2.2 译码电路模块

译码电路功能:译码器的功能分为两个部分,第一部分把输入的一位键值转换成四位BCD码;第二部分把4位二进制码译成相应的数码管输出显示码。 BCD码对应的七段数码管显示如表2.1所示:

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

4位BCD码 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 其他情况 g 0 0 1 1 1 1 1 1 1 1 0 f 1 1 0 0 1 1 1 1 1 1 0 e 1 1 1 0 0 0 1 1 1 0 0 d 1 0 1 1 0 1 1 0 1 1 0 c 1 0 0 1 1 1 1 0 1 1 0 b 1 0 1 1 1 0 0 0 1 1 0 a 1 0 1 1 0 1 1 0 1 1 0 显示数字 0 1 2 3 4 5 6 7 8 9 无 1

常熟理工学院课程设计报告

2.2.3 移位寄存器、锁存模块

移位寄存器:移位寄存器分为三个部分,当按下拨号键时,数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;当按下删除键时,键值由高位向低位移除,高位数码管熄灭;当按下重拨键时,锁存器中存储的键值输入到移位寄存器中,并通过数码管显示出来。

其大致的流程图如图2.2所示:

开始可输入脉冲指示灯灭可输入脉冲指示灯亮Y数码管初始化有键按下Y扫描键值N有键按下Y删除键Y将之前输入的数据前移,并在低位输入数字数Y删除键删除已输入数字有键按下转换成4位BCD码Y计数到8译成七段数码管显示码在数码管上显示相应数值拨号并锁存结束重拨 图2.2 按键输入过程流程图

2.2.4 数码管显示模块

数码管显示用于将设置好的每个按键的键值(对应0~9的数字)在数码管上显示出来。由于实验过程中需要使用8个数码管,因为在数码管显示模块必须加上数码管片选及移位的程序,从而实现数据在输入以后从低位向高位移动、显示。

在进行编写脉冲按键电话显示器程序时,我们主要是利用元件例化语句来实现的,

在顶层文件基础上,调用了数码管BCD码译码、键值显示两个底层文件,分别命名为DISPLAY.VHD、SET_NUM.VHD。

3.1 顶层文件程序(PLUSE_KEY.VHD)

顶层文件的框图如图3.1所示:

2

常熟理工学院课程设计报告

图3.1 顶层文件框图

各端口说明分别为:

输入: 输出:

DIN1[9…0]:0~9十个数字键; KEYOUT:可输入数字指示灯; CLK1:时钟脉冲; SEG71[6…0]:8位数码管; CLEAR:删除键; SEG3[2…0]:数码管的七段; DIAL:拨号键; RE_DAIL:重拨键

3.2 BCD译码子程序

BCD译码程序的框图如图3.2所示

图3.2 BCD译码程序

各端口说明分别为:

输入: 输出:

BCD1[3…0]:4位BCD码; 数码管的七段显示

3.3键值显示子程序(SET_NUM.VHD)

键值显示控制的框图如图3.3所示:

3

常熟理工学院课程设计报告

图3.3按键显示控制框图

各端口说明分别为:

输入: 输出:

DIN [9…0]:0~9十个数字键; KEYOUT:可输入数字指示灯; CLK:时钟脉冲; SET[3…0]:键值的BCD码 CLEAR:删除键; SEG3[2…0]:数码管的七段; DIAL:拨号键; RE_DAIL:重拨键

总结与体会

在大学课程即将接近尾声的时候,学院最后为我们安排了EDA技术实训,主要是通过VHDL语言编程,利用CPLA/FPGA芯片完成脉冲按键电话显示器的模拟。可以说通过一学期 EDA的理论和实验的学习,对VHDL语言以及CPLD/FPGA 的下载与仿真有了一定的了解。

但是在刚拿到题目要求时,我们小组有点茫然,特别在找资料的时候,我们利用网络搜索基本没有找到有用的资料,后来去学校图书馆去找参考书籍,也没什么用。后来实在没有办法,只能在之前我们实验做过的数字秒表的基础上展开设计,自己画程序流图以及原理图,编写程序。在设计之初,由于用的实验箱资源不够,只能实现四位数字的移动显示,并且没有设置删除键,只有一个清除键。后来经过我们的修改,终于实现的八位数字的移动显示,也就基本将课题要求完成了。

通过此次EDA技术实训,我们在之前的基础上能进一步熟练使用VHDL语言进行编程,也对CPLD/FPGA有了更进一步的理解。相信在我们电子信息工程专业的学生以后的学习、工作有不少的好处。

4

本文来源:https://www.bwwdw.com/article/9567.html

Top