ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:89.22KB ,
资源ID:6098094      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6098094.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(脉冲按键电话显示器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

脉冲按键电话显示器.docx

1、脉冲按键电话显示器 课 程 设 计课 程 EDA技术课程设计 题 目 脉冲按键电话显示器 院 系 工学院 专业班级 13通信 学生姓名 胡潇予 学生学号 201301031040 指导教师 杨永福 2016年 6 月10日 课程设计任务书课程 EDA技术课程设计题目 脉冲按键显示器专业 通信工程 胡潇予 学号 201301031040主要容、基本要求、主要参考资料等主要容:设计一个准确地反映按键数字具有8位显示的按键显示器,该显示器要求具有重拨的功能,当按下重拨键时,能够显示最后一次输入的。基本要求:1、设计一个具有8位显示的按键显示器;2、能准确地反映按键数字;3、显示器显示从低位向高位前移

2、,逐位显示按键数字,最低位为当前输入位;4、设置一个“重拨”键,按下此键,能显示最后一次输入的;5、挂机2秒后或按熄灭按键,熄灭显示器显示。主要参考资料:1 松著.EDA技术实用教程(第二版). :科学,2005.2 康华光主编.电子技术基础 模拟部分. :高教,2006.3 阎石主编.数字电子技术基础. :高教,2003.完成期限 2016.6.10 指导教师 永福 专业负责人 永福 2016年 6月10日 一、总体设计思想1.基本原理本题目是用VHDL语言实现一个能准确地反映按键数字、具有8位显示 的按键显示器。摘机时开始工作,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入

3、位;设置一个“重拨”键,按下此键能显示最后一次输入的;挂机2秒后或按熄灭键,熄灭显示器显示。脉冲按键显示器由五个模块组成:按键电路、译码器、移位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。(1)按键电路模块。提供“0”到“9”数字按键的输入,同时设置有拨号 键,清除键,挂机键和重拨键。(2)译码电路模块。译码器有两个功能。第一,把输入的一位键值转换成 四位 BCD 码;第二,把四位二进制码译成相应的数码管输出显示码。(3)移位寄存器、锁存模块。移位寄存器分为三个部分。当按下拨号键时, 数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;当按

4、下删除 键时,键值由高位向低位移除,高位数码管熄灭;当按下重拨键时,锁存器中 存储的键值输入到移位寄存器中,并通过数码管显示出来。(4)数码管显示模块。数码管显示用于将设置好的每个按键的键值在数码 管上显示出来。由于实验过程中需要使用8个数码管,因此数码管显示模块必须加上数码管片选及移位得程序,从而实现数据输入以后从低位向高位移动、显示。2.设计框图数字键入控制电路1译码显示器移位寄存器脉冲产生电路控制电路2计时电路译码显示电路图1 整体设计框图二、设计步骤和调试过程1、总体设计电路图2总体设计电路2、模块设计和相应模块程序(1) 顶层文件程序LIBRARY IEEE; USE IEEE.ST

5、D_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY UPKEY ISPORT(DIN1:IN STD_LOGIC_VECTOR(9DOWNTO 0); CLK1,CLEAR,DIAL,RE_DIAL:IN STD_LOGIC;KEYOUT:OUT STD_LOGIC; SEG71:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY; ARCHITECTURE ONE OF UPKEY IS COMPONENT SHO

6、W IS PORT(DIN:IN STD_LOGIC_VECTOR(9 DOWNTO 0);CLK,CLEAR,DIAL,RE_DIAL:IN STD_LOGIC; KEYOUT:OUT STD_LOGIC; SET:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END COMPONENT;COMPONENT TRA ISPORT(BCD1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SEG7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END COMP

7、ONENT; SIGNAL SET_1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN U1:SHOW PORT MAP( DIN1,CLK1,CLEAR,DIAL,RE_DIAL,KEYOUT,SET_1,SEG8); U2:TRA PORT MAP(SET_1,SEG71); END ARCHITECTURE ONE; (2)译码器译码部分的设计图3 BCD译码电路图BCD译码子程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRA IS PORT(

8、BCD1:IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEG7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END ENTITY; ARCHITECTURE ONE OF TRA IS BEGIN PROCESS(BCD1)IS BEGIN CASE BCD1 IS WHEN 0000=SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7=0000000; END CASE;END PROCESS; END ARCHITECTURE;(3)键值显示部分设计图4按键显示控制电路图按键显示控制子程序:LIBRARY

9、IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SHOW IS PORT(DIN:IN STD_LOGIC_VECTOR(9 DOWNTO 0);CLK,CLEAR,DIAL,RE_DIAL:IN STD_LOGIC; KEYOUT:OUT STD_LOGIC; SET:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEG8:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY; ARCHITECTURE ONE OF SHOW IS

10、SUBTYPE TEN IS STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL BCD :TEN; TYPE NUMBER1 IS ARRAY(7 DOWNTO 0) OF STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL NUMBER : NUMBER1; SIGNAL KEY,KEY1,CLK1,DIAL1,RE_DIAL1:STD_LOGIC; SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL COUNT1:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL COUNT

11、2:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL DIN1: STD_LOGIC_VECTOR(9 DOWNTO 0); SIGNAL LOCK: STD_LOGIC_VECTOR(31 DOWNTO 0); BEGINPROCESS(CLK)IS BEGIN IF RISING_EDGE(CLK) THEN COUNT1=COUNT1+1;END IF; END PROCESS; CLK1=0 WHEN COUNT11100 ELSE 1; PROCESS(CLK1)IS BEGIN IF RISING_EDGE(CLK1) THEN DIN1(9 DOWNTO

12、0)=DIN(9 DOWNTO 0); DIAL1=DIAL; RE_DIAL1=RE_DIAL; END IF; END PROCESS; KEY=(DIN1(0) OR DIN1(1) OR DIN1(2) OR DIN1(3) OR DIN1(4) OR DIN1(5) OR DIN(6) OR DIN1(7) OR DIN1(8) OR DIN1(9); PROCESS(CLK1)IS BEGIN IF FALLING_EDGE(CLK1) THEN IF COUNT2=100 THEN IF CLEAR=0AND RE_DIAL=0 THEN KEY1=KEY; ELSIF CLEA

13、R =1 AND RE_DIAL=0 THEN KEY1=CLK; ELSE KEY1=RE_DIAL1;END IF; COUNT2=000; ELSE COUNT2=COUNT2+1; END IF; END IF;END PROCESS;PROCESS(DIN1)IS BEGIN IF DIN1(6)=1 THEN BCD=0110; ELSIF DIN1(1)=1 THEN BCD=0001; ELSIF DIN1(2)=1 THEN BCD=0010;ELSIF DIN1(3)=1 THEN BCD=0011; ELSIF DIN1(4)=1 THEN BCD=0100; ELSIF

14、 DIN1(5)=1 THEN BCD=0101; ELSIF DIN1(0)=1 THEN BCD=0000; ELSIF DIN1(7)=1 THEN BCD=0111; ELSIF DIN1(8)=1 THEN BCD=1000; ELSIF DIN1(9)=1 THEN BCD=1001; ELSE BCD=0000; END IF;END PROCESS;KEYOUT=KEY1; PROCESS(KEY1)IS BEGIN IF RISING_EDGE(KEY1) THEN IF CLEAR=0 AND RE_DIAL1=0 THEN NUMBER(7)=NUMBER(6); NUM

15、BER(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; ELSIF CLEAR=1 AND RE_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); NUMB

16、ER(6)= NUMBER(7); NUMBER(7)=1111; ELSE NUMBER(7)= LOCK(31 DOWNTO 28); NUMBER(6)= LOCK(27 DOWNTO 24); NUMBER(5)= LOCK(23 DOWNTO 20); NUMBER(4)= LOCK(19 DOWNTO 16); NUMBER(3)= LOCK(15 DOWNTO 12); NUMBER(2)= LOCK(11 DOWNTO 8); NUMBER(1)= LOCK(7 DOWNTO 4); NUMBER(0)= LOCK(3 DOWNTO 0); END IF; END IF; EN

17、D PROCESS; PROCESS(CLK)IS BEGIN IF RISING_EDGE(CLK) THEN COUNTSET=NUMBER(7);SEG8SET=NUMBER(6);SEG8SET=NUMBER(5);SEG8SET=NUMBER(4);SEG8SET=NUMBER(3);SEG8SET=NUMBER(2);SEG8SET=NUMBER(1);SEG8SET=NUMBER(4);SEG8NULL; END CASE; END PROCESS; PROCESS(DIAL1)IS BEGIN IF RISING_EDGE(DIAL1) THEN LOCK(31 DOWNTO

18、28)=NUMBER(7); LOCK(27 DOWNTO 24)=NUMBER(6);LOCK(23 DOWNTO 20)=NUMBER(5); LOCK(19 DOWNTO 16)=NUMBER(4); LOCK(15 DOWNTO 12)=NUMBER(3); LOCK(11 DOWNTO 8)=NUMBER(2); LOCK(7 DOWNTO 4)=NUMBER(1); LOCK(3 DOWNTO 0)=NUMBER(0); END IF; END PROCESS;END ARCHITECTURE;4、实验调试结果为验证所设计的程序是否正确,将程序下载进行硬件测试。在Quartus开发

19、环境中进行管脚锁定,连接好数码管驱动电路,然后将目标文件下载到器件中。最终可以看到键入的数字在数码管上进行显示。重拨、清楚、挂机等均能够正常使用,达到设计要求。三、结论及心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次的EDA课设,加深了对电子电路理论知识的理解,并锻炼了实践动手能力,具备了电子电路的基本设计能力和基本调试能力 ,能够正确的使用实验仪器。回顾起此次EDA课程设计,至今我仍感慨颇多。的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的

20、东西,同时不仅可以巩固了以前所学过的知识,通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。参考资料1 松著.EDA技术实用教程(第二版). :科学,2005.2 艳.EDA技术在数字系统电路设计试验中的应用J.实验室研究与探索,2002,21(3):632643 甘力.VHDL应用与开发实践M.科学,2003.4 松,王国栋.VHDL实用教程.:电子科技大学,2006年,7月.5 国洪.可编程器件EDA技术与实践M.:机械工业,2004年7月.6 俊超.集成电路设计VHDL教程M.:希望电子,2002年8月.指导教师: 永福 2016年 6 月 10 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1