脉冲按键电话显示器.docx
- 文档编号:6770323
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:10
- 大小:18.33KB
脉冲按键电话显示器.docx
《脉冲按键电话显示器.docx》由会员分享,可在线阅读,更多相关《脉冲按键电话显示器.docx(10页珍藏版)》请在冰豆网上搜索。
脉冲按键电话显示器
课程设计
课程EDA技术课程设计
题目脉冲按键电话显示器
院系工学院
专业班级13通信
学生姓名胡潇予
学生学号
指导教师杨永福
2016年6月10日
课程设计任务书
课程EDA技术课程设计
题目脉冲按键电话显示器
专业通信工程姓名胡潇予学号
主要内容、基本要求、主要参考资料等
主要内容:
设计一个准确地反映按键数字具有8位显示的电话按键显示器,该电话显示器要求具有重拨的功能,当按下重拨键时,能够显示最后一次输入的电话号码。
基本要求:
1、设计一个具有8位显示的电话按键显示器;
2、能准确地反映按键数字;
3、显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;
4、设置一个“重拨”键,按下此键,能显示最后一次输入的电话号码;
5、挂机2秒后或按熄灭按键,熄灭显示器显示。
主要参考资料:
[1]潘松着.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.
完成期限
指导教师杨永福
专业负责人杨永福
2016年6月10日
一、总体设计思想
1.基本原理
本题目是用VHDL语言实现一个能准确地反映按键数字、具有8位显示的电话按键显示器。
摘机时开始工作,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;设置一个“重拨”键,按下此键能显示最后一次输入的电话号码;挂机2秒后或按熄灭键,熄灭显示器显示。
脉冲按键电话显示器由五个模块组成:
按键电路、译码器、移位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。
(1)按键电路模块。
提供“0”到“9”数字按键的输入,同时设置有拨号键,清除键,挂机键和重拨键。
(2)译码电路模块。
译码器有两个功能。
第一,把输入的一位键值转换成四位BCD码;第二,把四位二进制码译成相应的数码管输出显示码。
(3)移位寄存器、锁存模块。
移位寄存器分为三个部分。
当按下拨号键时,数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;当按下删除键时,键值由高位向低位移除,高位数码管熄灭;当按下重拨键时,锁存器中存储的键值输入到移位寄存器中,并通过数码管显示出来。
(4)数码管显示模块。
数码管显示用于将设置好的每个按键的键值在数码管上显示出来。
由于实验过程中需要使用8个数码管,因此数码管显示模块必须加上数码管片选及移位得程序,从而实现数据输入以后从低位向高位移动、显示。
2.设计框图
数字键入
控制电路1
译码显示器
移位寄存器
脉冲产生电路
控制电路2
计时电路
译码显示电路
图1整体设计框图
二、设计步骤和调试过程
1、总体设计电路
图2总体设计电路
2、模块设计和相应模块程序
(1)顶层文件程序
LIBRARYIEEE;
USE
USE
ENTITYUPKEYIS
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;
ARCHITECTUREONEOFUPKEYIS
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)译码器译码部分的设计
图3BCD译码电路图
BCD译码子程序:
LIBRARYIEEE;
USETRAIS
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;
(3)键值显示部分设计
图4按键显示控制电路图
按键显示控制子程序:
LIBRARYIEEE;
USE
USE
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'THENKEY1<=CLK;
ELSEKEY1<=RE_DIAL1;
ENDIF;
COUNT2<="000";
ELSECOUNT2<=COUNT2+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(DIN1)ISBEGINIFDIN1(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'THEN
NUMBER(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'THEN
NUMBER(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";
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;
4、实验调试结果
为验证所设计的程序是否正确,将程序下载进行硬件测试。
在QuartusⅡ开发环境中进行管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。
最终可以看到键入的数字在数码管上进行显示。
重拨、清楚、挂机等均能够正常使用,达到设计要求。
三、结论及心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过这次的EDA课设,加深了对电子电路理论知识的理解,并锻炼了实践动手能力,具备了电子电路的基本设计能力和基本调试能力,能够正确的使用实验仪器。
回顾起此次EDA课程设计,至今我仍感慨颇多。
的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考资料
[1]潘松着.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]刘艳.EDA技术在数字系统电路设计试验中的应用[J].实验室研究与探索,2002,21(3):
63264
[3]甘力.VHDL应用与开发实践[M].科学出版社,2003.
[4]潘松,王国栋.VHDL实用教程.四川:
电子科技大学出版社,2006年,7月.
[5]李国洪.可编程器件EDA技术与实践[M].北京:
机械工业出版社,2004年7月.
[6]赵俊超.集成电路设计VHDL教程[M].北京:
希望电子出版社,2002年8月.
指导教师:
杨永福2016年6月10日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 脉冲 按键 电话 显示器