EDA脉冲按键电话显示器.docx
《EDA脉冲按键电话显示器.docx》由会员分享,可在线阅读,更多相关《EDA脉冲按键电话显示器.docx(6页珍藏版)》请在冰豆网上搜索。
![EDA脉冲按键电话显示器.docx](https://file1.bdocx.com/fileroot1/2023-1/24/258b48d9-c624-4ffd-8851-11dc20b187ea/258b48d9-c624-4ffd-8851-11dc20b187ea1.gif)
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;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.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:
OUT STD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITY;
ARCHITECTUREONEOFUP_KEY IS
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;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.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;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.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);