版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计课 程 eda技术课程设计 题 目 脉冲按键电话显示器 院 系 * 专业班级 * 学生姓名 * 学生学号 * 指导教师 2011年 3 月11日课程设计任务书课程 eda技术课程设计题目 脉冲按键电话显示器专业 * 姓名 * 学号 *主要内容、基本要求、主要参考资料等主要内容:设计一个准确地反映按键数字具有8位显示的电话按键显示器,该电话显示器要求具有重拨的功能,当按下重拨键时,能够显示最后一次输入的电话号码。基本要求:1、设计一个具有8位显示的电话按键显示器;2、能准确地反映按键数字;3、显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前输入位;4、设置一个“重拨”键,
2、按下此键,能显示最后一次输入的电话号码;5、挂机2秒后或按熄灭按键,熄灭显示器显示。主要参考资料:1 潘松著.eda技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.完成期限 2011.3.11 指导教师 专业负责人 2011年 3月7日一、总体设计思想1.基本原理电话按键显示器包括脉冲发生器、计数器、译码显示器、控制器、移位寄存器等五部分组成。其中计数器和移位寄存器是系统的主要组成部分。移位寄存器部分是数字按键和移位寄存器组成的,完成09任意数字的键入且显示
3、8位数字通过控制电路1可以任意清除当前的电话号码,以便重新输入。当8位电话号码输入完毕后再通过控制电路2启动计数器部分和脉冲发生器,来计算通话时间。计数器部分主要完成通话时间的记数作用。当通话完毕后既是断开高电平后,计时器停止工作,完成计时的功能与此同时移位寄存器也停止工作其显示号码部分立即清零。我们所设计的整体电路是由计时器设计电路、电话号码显示控制电路、脉冲产生电路三个部分组合而成的。2.设计框图我们设计的用vhdl语言实现的脉冲按键电话显示器由4个模块组成:按键电路,译码器,移位寄存、锁存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。脉冲按键电话的总体
4、设计框图如图2.1所示:图2.1 脉冲按键电话总体设计方案二、设计步骤和调试过程1、总体设计电路2、模块设计和相应模块程序2.1按键电路模块按键电路功能:提供09数字按键的输入,同时设置有拨号键,清除键,挂机键和重拨键。2.2 译码电路模块译码电路功能:译码器的功能分为两个部分,第一部分把输入的一位键值转换成四位bcd码;第二部分把4位二进制码译成相应的数码管输出显示码。对应的电路图:2.3 移位寄存器、锁存模块移位寄存器:移位寄存器分为三个部分,当按下拨号键时,数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;当按下删除键时,键值由高位向低位移除,高位数码管熄灭;当按下重拨键时,锁存
5、器中存储的键值输入到移位寄存器中,并通过数码管显示出来。其大致的流程图如图2.2所示:2.4 数码管显示模块数码管显示用于将设置好的每个按键的键值(对应09的数字)在数码管上显示出来。由于实验过程中需要使用8个数码管,因为在数码管显示模块必须加上数码管片选及移位的程序,从而实现数据在输入以后从低位向高位移动、显示。1 顶层文件程序library ieee; -库定义use ieee.std_logic_1164.all; -包定义use ieee.std_logic_unsigned.all; entity pluse_key is -定义实体名、端口port(din1:in std_logi
6、c_vector(9 downto 0); -定义09数字输入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); - 8个数码管end entity;architecture one of pluse_key is -定义结构体component set_num is -调用set_num底层文件port(din:in std_logic
7、_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 display is -调用display底层文件 port(bcd1:in std_logic_vector(3 downto 0);seg7:out std_logic_vector(6 downto 0);end component;sign
8、al set_1:std_logic_vector(3 downto 0);begin -各端口的连接u1: set_num port map( din1,clk1,clear,dial,re_dial,keyout,set_1,seg8); u2:display port map(set_1,seg71);end art;2 bcd译码子程序(display.vhd)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity display is port( bcd1:in std_logic
9、_vector(3 downto 0); seg7:out std_logic_vector(6 downto 0); end entity;architecture one of display isbegin process(bcd1)is begin case bcd1 is when 0000=seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7=0000000; -其他情况下数码管熄灭 end case; end process;end architecture;3 键值显示子程序(set_num.vhd)library ieee;use ieee
10、.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity set_num 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 set_num issubtype ten
11、 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 count2:std_logic_vector
12、(2 downto 0);signal din1: std_logic_vector(9 downto 0);signal lock: std_logic_vector(31 downto 0);begin- process(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 0)=din(9 downto 0)
13、; 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 clear =1 and re_dial=0
14、 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 din1(5)=1 th
15、en 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)=numbe
16、r(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 then -按下删除键,数字从高位向低位移动 number(0)=number(1); number(1)=number(2); number(2)=number(3); number(3)=number(4); number(4)=number(
17、5); number(5)=number(6); number(6)= number(7); number(7)=1111;- process(clk)is begin if rising_edge(clk) then count=count+1; end if; end process;- process(dial1)is begin -在重拨键以后,显示已拨号码 if rising_edge(dial1) then lock(31 downto 28)=number(7); lock(27 downto 24)=number(6); lock(23 downto 20)=number(5)
18、; 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;3、仿真及仿真结果分析本文设计的矩阵键盘及显示电路在quartus 1i开发环境下进行了仿真验证。仿真结果分析如下:(1) clk为时钟信号输入信号,作为系统时钟;(2) rst为清零控制端,当其为高电平时,按键有效。4、实验调试结果本文设计的脉冲按键电话显示器进行仿真验证后,输入8位数字以后显示结果如图3.4所示:三、结论及心得体会在这次的课程设计中,主要是通过vhdl语言编程,利用cpla/fpga芯片完成脉冲按键电话显示器的模拟。这次的设计使我对于书上的知识有了进一步的了解,使我的动手能力有了很大的提高。在查找资料的时候,我觉得好像还是很简单的,但在实际动手后,才发现并没有想象中的简单。我们不光只是掌握课堂上学过的东西,还得学会灵活应用才可以。这次课程设计主要还是让我们活学活用自己的数电知识,使我更加熟悉了数字电路,对寄存器,计数器等有了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 副班长的竞选演讲稿汇编7篇
- 2024 年【数字素养】考试题库及答案 3
- 初一期末考试总结
- 高考数学复习解答题提高第一轮专题复习专题02利用导函数研究函数的单调性问题(常规问题)(典型题型归类训练)(学生版+解析)
- 广东英语语法填空答题技巧
- 高中英语语法之动词时态
- 高中英语语法精简版
- 六年级下册20课教学课件教学
- 第4章 数据资料分析课件
- 会计数据分析 Solutions-Manual Chapter-8-Labs-SM-Updated
- 统编版一年级语文下册 口语交际 听故事讲故事 小猫种鱼 一等奖创新教学设计
- 各式停水通知范文6篇
- 2022-2023学年陕西省西安市普通高校对口单招计算机基础自考真题(含答案)
- 《习近平总书记关于安全生产重要论述》考试题库250题(含各题型)
- 留置针埋置方法(宠物临床基础治疗技术)
- 酒店账单-水单-住宿
- 2023年山东春季高考数学试题word版(含答案解析)
- 国有资产管理监督概述
- 2023年副主任医师(副高)-急诊医学(副高)考试历年高频考点试题摘选附带含答案
- 猴的介绍(终稿)
- 部编版六年级上册古诗测试题
评论
0/150
提交评论