




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、东北石油大学课程设计课 程 eda技术课程设计题 目 脉冲按键电话显示器院 系电子科学学院专业班级电子信息工程学生姓名学生学号指导教师2012年3月2日东北石油大学课程设计任务书课程 eda技术课程设计题目脉冲按键电话显示器专业 电子信息工程 姓名 学号主要内容、基本要求、主要参考资料等主要内容:设计一个准确地反映按键数字具有 8位显示的电话按键显示器,该电话显示器要求具有重拨的功能, 当按下重拨键时,能够显示最后一次输入的电话号码。基本要求:1、设计一个具有8位显示的电话按键显示器;2、能准确地反映按键数字;3、显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;4、设置一个
2、重拨”键,按下此键,能显示最后一次输入的电话号码;5、挂机2秒后或按熄灭按键,熄灭显示器显示。主要参考资料:1潘松著.eda技术实用教程(第二版).北京:科学出版社,2005.2康华光主编.电子技术基础 模拟部分.北京:高教出版社,2006.3阎石主编.数字电子技术基础.北京:高教出版社,2003.完成期限2012.3.5指导教师专业负责人2012年3月2日一、总体设计思想1 .基本原理ed微术就是依赖功能弓5大的计算机,在 eda:具软件平台上,对以硬件描 述语言hd为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、化简、 分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线
3、路系 统功能。在本次课程设计中是用vhd语言实现一个能准确地反映按键数字、具有 8位 显示的电话按键显示器。摘机时开始工作,显示器显示从低位向高位前移,逐 位显示按键数字,最低位为当前输入位;设置一个“重拨”键,按下此键能显 示最后一次输入的电话号码;挂机2秒后或按熄灭键,熄灭显示器显示。2 .设计框图图1脉冲按键电话显示器总体设计方案二、设计步骤和调试过程1、总体设计电路本文设计的脉冲按键电话显示器由五个模块组成:按键电路、译码器、移 位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示 电路为系统的主要组成部分。做u2sh0w:u1cleari clk1i diali re
4、.dialf din1i9.01isme - 6eg716.0fc-l-=ga7.ol keyout图2总体设计电路模块2、模块设计和相应模块程序2.1 顶层文件按键电路模块。提供“ 0”到“9”数字按键的输入,同时设置有拨号键, 清除键,挂机键和重拨键。(1)顶层文件程序模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity up_key isport(din1:in std_logic_vector(9 downto 0);clk1,clear,dial,re_dial:in
5、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 up_key iscomponent show isport(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);
6、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 component;signal set_1:std_logic_vector(3 downto 0); beginu1:showportmap(din1,clk1,clear,dial,re_dial,keyout,set_1,seg8);u2:tra port map(set_1,seg71
7、);end architecture one;(2) 各端口说明分别为:输入:din19, 0 : 09十个数字键;clk1:时钟脉冲;clear删除键;dial:拨号键;re dail重拨键输出:keyoutseg716seg32:可输入数字指示灯;, 0 : 8 位数码管;, 0 :数码管的七段;2.2 bcd译码模块译码器有两个功能。第一,把输入的一位键值转换成四位bcd码;第二,把 4 位二进制码译成相应的数码管输出显示码。(1)bcd译码子程序模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsign
8、ed.all;entity tra isport(bcd1:in std_logic_vector(3 downto 0);seg7:out std_logic_vector(6 downto 0);end entity;architecture one of tra isbeginprocess(bcd1)isbegincase bcd1 iswhen 0000=seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7=0000000;end case;end process;end architecture;(2)bcd译码模块电路tra:u2图3 bcd译
9、码程序模块电路各端口说明分别为:输入:输出:bcd13 0: 4位bc照;数码管的七段显示2.3 键值显示模块数码管显示用于将设置好的每个按键的键值在数码管上显示出来。由于实 验过程中需要使用8个数码管,因此数码管显示模块必须加上数码管片选及移 位得程序,从而实现数据输入以后从低位向高位移动、显示。(1)键值显示子程序 模块程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity show isport(din:in std_logic_vector(9 downto 0);clk,cl
10、ear,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 issubtype 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 num
11、ber : 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 count2:std_logic_vector(2 downto 0);signal din1: std_logic_vector(9 downto 0);signal lock: std_logic_vector(31 downto 0);beginprocess(clk)isbeginif
12、rising_edge(clk) thencount1=count1+1;end if;end process;clk1=0 when count11100 else 1;process(clk1)isbeginif rising_edge(clk1) thendin1(9 downto 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) ordin1(5) or din(6) or din1(7) o
13、r din1(8) or din1(9);process(clk1)isbeginif falling_edge(clk1) thenif count2=100 thenif clear=0and re_dial=0 thenkey1=key;elsif clear =1 and re_dial=0 thenkey1=clk;else key1=re_dial1;end if;count2=000;elsecount2=count2+1;end if;end if;end process;process(din1)isbeginif din1(6)=1 then bcd=0110;elsif
14、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 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;key
15、out=key1;process(key1)isbeginif rising_edge(key1) thenif clear=0 and re_dial1=0 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;elsif clear=1 and re_dial1=0 thennumber(0)=number(1);number(1)
16、=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;elsenumber(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
17、downto 8);number(1)= lock(7 downto 4);number(0)= lock(3 downto 0);end if;end if;end process;process(clk)isbeginif rising_edge(clk) thencountset=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;en
18、d process;process(dial1)isbeginif rising_edge(dial1) thenlock(31 downto 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 proce
19、ss;end architecture;(2)键值显示模块shoaf:u1图4按键显示控制框图各端口说明分别为:输入:输出:din 9, 0: 09十个数字键;keyout :可输入数字指示灯;clk时钟脉冲;set3, 0:键值的bc网clear删除键;seg32, 0:数码管的七段;dial:拨号键;re_dail重拨键3、仿真及仿真结果分析图5仿真图x g j rl x j 6d( ljj x rldc 0 .二 %颐奴屹欲滋侬队设孩侬4、实验调试结果将程序下载进行硬件测试。在quartus h开发环境中进行管脚锁定,连接好 数码管驱动电路,然后将目标文件下载到器件中。最终可以看到按键正常显示、 “重拨”键功能正常、达到设计要求。三、结论及心得体会通过本次课程设计,让我在以前所学知识的基础上,更加了解了对eda语言编程的认识,不仅强化了以前所学过的知识,并且学到了许多书本上没有的 知识,极大的扩展了我的知识面,所获匪浅。从复习以前所学的知识到对整体设计的了解,再从概要设计、详细设计到开始使用软件以及最后的调试,整个过程都很充实。虽然遇到不少困难,但当我通过自己查资料向老师请教及与同学相互讨论而设计出解决方案并成功实现时,那种成就感和满足感就让我忘了所有的辛
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全员竞聘安全服务题及答案
- 2025年BIM安全管理体系建设题及答案
- 2025年建筑施工企业三类人员-B-证笔试预测题
- 2025年安全生产管理模拟题答案解析
- 2025年维修工笔试高频题库与解析
- 2025年视距内无人机面试必考题
- 2025年文物保护师初级考试题集
- 课件中时间轴
- 2025年健身教练从业资格水平考核试题及答案解析
- 2025年建筑材料工程师专业知识考核试题及答案解析
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- 厂房消防应急预案
- 景区开发政府战略框架协议书(2篇)
- 保洁投标书范本
- “雄鹰杯”全国小动物医师技能大赛考试题库(660题)
- 实验室隐患排查培训
- 九年级化学第三单元课题1分子和原子人教新课标版省公开课获奖课件说课比赛一等奖课件
- 宠物医疗器械创新与发展
- 《路由与交换技术》教学大纲
- 4《给植物画张“像”》教学设计-2024-2025学年科学一年级上册教科版
- 森林防火条例
评论
0/150
提交评论