1、 目 录 1 引言.1 1.1 背景说明1 1.2 设计任务及设计要求.1 2 设计方案1 2.1 实验基本原理1 2.2 设计要求分析2 2.1.1 编码器真值表2 2.2.2 号码输入显示控制模块状态表2 2.2.3 主控制模块状态表.3 2.3 系统设计思路与框图.3 2.4 各模块功能分析5 2.4.1 按键电路模块5 2.4.2 译码电路模块5 2.4.3 移位寄存器、锁存模式.5 2.4.4 数码管显示模块.6 3 设计步骤和调试过程.7 3.1 BEEF.VHD.7 3.2 BCD译码子程序.7 3.3 键值显示子程序8 3.3.1 键值显示控制的框图如图3.3所示:.8 3.3
2、.2 管脚锁定9 3.3.3 锁定管脚后的总体设计电路9 3.4 实验调试结果10 4 总结与体会12 参考文献.13 附 录.14 1 顶层文件程序.14 2 BCD译码子程序(DISPLAY.VHD).15 3 键值显示子程序(SET_NUM.VHD).16 脉冲按键电话按键显示器设计 1 1 引言 1.1 背景说明 EDA(Electronic Design Automation,电子设计自动化 )技术正是为了适应现代电子产品设计的要求,吸引多学科最新成果而形成的一门新技术。利用EDA进行电子系统设计,具有以下几个特点:(1)用软件的方式设计硬件;(2)用软件方式设计的系统到硬件系统的转
3、换是由有关的开发软件自动完成的;(3)设计过程中可用有关软件进行各种仿真;(4)系统可现场编程,在线升级;(5)整个系统可集成在一个芯片上,体积小,功耗低,可靠性高。因此,EDA技术是现代电子设计的发展趋势。我们本学期开设了EDA 课程,并开设了为期八周的EDA实验课,主要利用VHDL语言编程,我们组的题目具体如下。 1.2 设计任务及设计要求 1.设计一个具有7位显示的电话按键显示器,显示器应能正确反映按键数字; 2.显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前显示位; 3.七位数字输入完毕后电话接通,扬声器发出“嘟-嘟”接通声响,直到有接听信号输入,若一直没有接听,10秒钟后
4、,自动挂断,显示器清除显示,扬声器停止,直到有新号码输入; 2 设计方案 2.1 实验基本原理 电话按键显示器包括脉冲发生器、计数器、译码显示器、控制器、移位寄存器等五部分组成。其中计数器和移位寄存器是系统的主要组成部分。移位寄存器部分脉冲按键电话按键显示器设计 2 是数字按键和移位寄存器组成的,完成09任意数字的键入且显示7位数字通过控制电路1可以任意清除当前的电话号码,以便重新输入。当7位电话号码输入完毕后再通过控制电路2启动计数器部分和脉冲发生器,来计算通话时间。计数器部分主要完成通话时间的记数作用。当通话完毕后既是断开高电平后,计时器停止工作,完成计时的功能与此同时移位寄存器也停止工作
5、其显示号码部分立即清零。 2.2 设计要求分析 我们所设计的整体电路是由计时器设计电路、电话号码显示控制电路、脉冲产生电路三个部分组合而成的。下面根据相关提示进行进一步分析。 2.1.1 编码器真值表 在号码输入显示控制模块中,用数据开关K1-K10分别代表数字1、2、9、0,用编码器对数据开关K1-K10的电平信号进行编码,得四位二进制数Q,编码器真值表在表中给出。 表1 编码器真值表 2.2.2 号码输入显示控制模块状态表 号码输入显示控制模块状态表则体现了数字输入显示在最低位,再次输入数字时向高位依次左移。在C为1时,数码管显示全部清零. 脉冲按键电话按键显示器设计 3 表2 号码输入显
6、示控制模块状态表 2.2.3 主控制模块状态表 当七位号码输入完毕后,由主控制模块启动扬声器,使扬声器发出“嘟-嘟”声响,同时启动等待接听10秒计时电路。 设置接听信号answer,若定时时间到还没有接听信号输入,则号码输入显示控制电路 的C信号有效,显示器清除显示,并且扬声器停止,若在10秒计时未到时有接听信号输入,同样C信号有效、扬声器停止。 设置挂断信号reset,任何时刻只要有挂断信号输入,启动3秒计数器C,3秒后系统C有效,系统复位。 表3 主控制模块状态表 2.3 系统设计思路与框图 我们设计的用VHDL语言实现的脉冲按键电话按键显示器由4个模块组成:按键电路,译码器,移位寄存、锁
7、存器和数码管显示电路,其中移位寄存、锁存器和数码管译码显示电路为系统的主要组成部分。脉冲按键电话的总体设计框图如图1所示。 脉冲按键电话按键显示器设计 4 图1 脉冲电话按键总体设计方案 根据系统的设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图的设计方式和系统的整体组装,分别由电话按键输入模块、电话按键控制模块和电话按键显示译码模块等部分组成。由图2所示。 图2 脉冲按键电话按键显示器系统框图 脉冲按键电话按键显示器设计 5 2.4 各模块功能分析 2.4.1 按键电路模块 按键电路功能:提供09数字按键的输入,同时设置有拨号键,清除键,挂机键,应答键。 2.4.2 译码电路模块
8、 译码电路功能:译码器的功能分为两个部分,第一部分把输入的一位键值转换成四位BCD码;第二部分把4位二进制码译成相应的数码管输出显示码。 BCD码对应的七段数码管显示如表4所示。 表4 BCD码对应的数码管显示 4位BCD码 g f e d c b a 显示数字 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 2 0 0 1 1 1 0 0 1 1 1 1 3 0 1 0 0 1 1 0 0 1 1 0 4 0 1 0 1 1 1 0 1 1 0 1 5 0 1 1 0 1 1 1 1 1 0 1 6
9、0 1 1 1 1 1 1 0 0 0 0 7 1 0 0 0 1 1 1 1 1 1 1 8 1 0 0 1 1 1 0 1 1 1 1 9 其他情况 0 0 0 0 0 0 0 无 2.4.3 移位寄存器、锁存模式 移位寄存器:移位寄存器分为三个部分,当按下拨号键时,数字按键值依次由数码管的低位向高位移动,同时送入锁存器中;当按下删除键时,键值由高位向低位移除,高位数码管熄灭。(该框图是在本次设计基础上的提升,增加了一位计数并且增加了重拨键) 其大致的流程图如图3所示。 脉冲按键电话按键显示器设计 6 图3 按键输入过程流程图 此框图中有重拨键,由于时间关系此次实际设计中没有该设计,重拨键
10、的加入可作为该设计的提升部分,本次设计采用七位段码,八位的雷同也可作为设计提升。 2.4.4 数码管显示模块 七段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是 8 个四位一 体、共阴极型七段数码管。 由于七段数码管公共端连接到 GND (共阴极型) 当数码管的中的一个段被输入高电平, 则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码 管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。7个数码管 的 a、b、c、d、e、f、g 都连在了一起,7 个数码管分别由各自的位选信号来控制, 被选通的数码管显示数据,其余关闭。 在键盘获取到行
11、值和列值以后,组合成一个 7 位的数据,根据实现不同的编码在对每 个按键进行匹配,找到键值后由 7 段码管显示即可。 数码管显示用于将设置好的每个按键的键值(对应09的数字)在数码管上显示出来。由于实验过程中需要使用7个数码管,因为在数码管显示模块必须加上数码管片选及移位的程序,从而实现数据在输入以后从低位向高位移动、显示。 脉冲按键电话按键显示器设计 7 3 设计步骤和调试过程 在进行编写脉冲按键电话显示器程序时,我们主要是利用元件例化语句来实现的,在顶层文件基础上,调用了数码管BCD码译码、键值显示两个底层文件,分别命名为DISPLAY.VHD、SET_NUM.VHD。 3.1 BEEF.
12、VHD BEEF的框图如图3.1所示: 图3.1 BEEF框图 表3.1 各端口说明 输入 输出 guaduan 挂断键 jiance 脉冲信号检测 yinda 应答键 clk10HZ 10kHZ脉冲信号 qinchu 清除键 3.2 BCD译码子程序 BCD译码程序的框图如图3.2所示。 脉冲按键电话按键显示器设计 8 图3.2 BCD译码程序 表3.2各端口说明 输入 输出 BCD30 SEG60 4位BCD码 数码管的七段显示 3.3 键值显示子程序 3.3.1 键值显示控制的框图如图3.3所示: 图3.3按键显示控制框图 表3.3各端口说明分别为: 输入 输出 DIN90 0-9十个数
13、字键 CLK 时钟脉冲 KEYOUT 可输入数字指示灯 CLEAR 删除键 SET30 键值的BCD码 DIAL 拨号键 SEG20 数码管的七段 脉冲按键电话按键显示器设计 9 3.3.2 管脚锁定 3.3.3 锁定管脚后的总体设计电路 脉冲按键电话按键显示器设计 10 3.4 实验调试结果 输入8位数字以后显示结果如图3.4所示: 脉冲按键电话按键显示器设计 11 图3.4 数码管显示结果 以上为数码管显示结果,表明由最低位开始显示,再次输入时显示依次向高位移动即向左移。 脉冲按键电话按键显示器设计 12 4 总结与体会 通过此次EDA技术课程设计,我们在之前的基础上能进一步熟练使用VHD
14、L语言进行编程,也对Quartus11有了更进一步的理解。相信能给我们电子信息工程专业的学生以后的学习、工作带来不少的好处。此次设计中,学到了很多东西,懂得了做任何事情都要认真严谨。非常感谢陈初侠老师给我们讲授的EDA。如果没有他严谨细致、孜孜不倦的讲授精神。这表示真诚的感谢!在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用 EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。 通过
15、一学期EDA的理论和实验的学习,对VHDL语言以及Quartus11的下载与仿真有了一定的了解。EDA实验课程,主要是通过VHDL语言编程,利用Quartus11软件完成脉冲按键电话按键显示器的模拟。 这次的课程设计,开始不知道如何下手,利用网络搜索基本没有找到有用的资料,后来去学校图书馆去找参考书籍,也没什么用,因为书籍版本过老。后来实在没有办法,只能在找到的密码锁设计的基础上展开设计,自己画程序流图以及原理图,编写程序。在设计之初,由于掌握不好各功能在试验箱上的正确显示,还为此以为设计错误而着急。第一次调试时出现了3个小问题:数码管显示方向相反,未设定挂断键和挂断延迟,拨号出现的延迟。还有
16、蜂鸣器响声不知如何设定,不过最终都一一解决了。 脉冲按键电话按键显示器设计 13 参考文献 1 周立功. EDA实验与实践.北京:北京航天航空大学出版社,2007。 2 李云,侯传教,冯永浩.VHDL电路设计实用教程.机械工业出版社,2009。 3 谭会生,瞿遂春.EDA技术综合应用实例与分析 ,西安电子科技大学出版社,2004。 4 李国丽.EDA与数字系统设计(第二版).机械工业出版社,2009。 5 徐飞.EDA技术与实践.清华大学出版社,2011.6。 脉冲按键电话按键显示器设计 14 附 录 1 顶层文件程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164
17、.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY BEEF IS PORT(guaduan,jiance,yinda,clk10k:IN STD_LOGIC; beefout,qinchu:OUT STD_LOGIC); END ENTITY; ARCHITECTURE ONE OF BEEF IS signal ct:integer range 0 to 10000;-定义ct为分频系数及范围,可作为谁先按到改次数哪边就亮一个灯 signal a,clk1:std_logic; signal count:integer range 0 to 20:=
18、10; signal count3:integer range 0 to 15:=3; begin process (clk10k) begin if clk10kevent and clk10k=1 then if ctSEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SEG7SETSETSETSETSETSETSETSETNULL; END CASE; END PROCESS; - PROCESS(DIAL1)IS BEGIN -在按下拨号以后,显示已拨号码,按下锁屏放入锁屏的LOCK中 IF (DIAL1=1) THEN biaozhi=1; else biaozhi=0; END IF; END PROCESS; END ARCHITECTURE;