欢迎来到天天文库
浏览记录
ID:50086133
大小:1.75 MB
页数:293页
时间:2020-03-08
《EDA技术及应用 教学课件 作者 吴延海 第6-8章第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章 数字系统设计实例8.1数字密码锁电路设计8.2IIR滤波器电路设计8.3简单电子琴电路设计8.4交通信号灯控制器电路设计8.1数字密码锁电路设计8.1.1系统设计要求(1)密码输入:每按下一个数字键,就输入一个数值,并在显示器上显示出该数值,同时将先前输入的数据依次左移一个数字位置。(2)密码清除:按下“清除”键可清除前面所有输入的值。(3)密码更改:按下“更改”键可将目前的数码设定成新的密码。(4)密码上锁:按下“上锁”键可将密码锁定。(5)密码解锁:按下“解锁”键首先检查输入的密码是否正确,密码正确即开锁。8.1.2系统
2、设计根据系统设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图设计方式,系统整体设计原理图如图8-1所示。它由密码锁输入模块(SR)、密码锁控制模块(CTRL)和译码显示模块(YM)三部分组成。图8-1系统的整体组装设计原理图8.1.3模块设计与实现1.密码锁输入模块(1)时序产生电路。时序产生电路中使用三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号。(2)键盘扫描电路。键盘扫描电路的作用是提供键盘扫描信号,扫描信号变化的顺序依次为1110→1101→1011→0111→1110…。图8-2键
3、盘扫描示意图当键盘扫描信号为1110时,按键位置分别为011(“1”键按下)、101(“2”键按下)、110(“3”键按下);当键盘扫描信号为1101时,按键位置分别为011(“4”键按下)、101(“5”键按下)、110(“6”键按下);当键盘扫描信号为1011时,按键位置分别为011(“7”键按下)、101(“8”键按下)、110(“9”键按下);当键盘扫描信号为0111时,按键位置分别为011(“*”键按下)、101(“0”键按下)、110(“#”键按下)。(3)键盘译码电路。上述键盘中的按键分为数字按键和功能按键,每个功能按
4、键可能负责不同的功能,例如“清除”键、“上锁”键和“解锁”键等。数字按键主要是用来输入数字的。但是键盘所产生的输出是无法直接拿来用作密码锁控制电路的输入的;另外,不同的按键具有不同的功能,所以必须有键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。①按键存储电路。因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个键盘扫描完毕的结果记录下来。本设计采用串入串出移位寄存器实现按键存储电路。②各按键位置与数码关系如表8-1所示。其中“*”为“上锁”键,“#”为“清除/解锁”键。若按下的是数字键,
5、则译成相对应的BCD码;若按下的是功能键,则译成四位数的码字,并由密码锁控制电路给出相应的动作。根据上述分析,密码输入电路的VHDL源程序(SR.VHD)如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYSRISPORT(CLK_IN:INSTD_LOGIC;--时钟信号KEY_IN:INSTD_LOGIC_VECTOR(2DOWNTO0);--按键输入信号DATA_N
6、:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--数字键数据DATA_F:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--功能键数据FLAG_N:OUTSTD_LOGIC;--数字键数据标志FLAG_F:OUTSTD_LOGIC;--功能键数据标志CQD:OUTSTD_LOGIC;--键盘输入采样时钟KSEL:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--键盘扫描信号CSR:OUTSTD_LOGIC_VECTOR(1DOWNTO0));--按键行号00,01,10,11ENDENT
7、ITYSR;ARCHITECTUREARTOFSRISSIGNALC_QD:STD_LOGIC;SIGNALC_SR:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALN,F:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALFN,FF:STD_LOGIC;SIGNALSEL:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALQ:STD_LOGIC_VECTOR(5DOWNTO0);SIGNALC:STD_LOGIC_VECTOR(2DOWNTO0);BEGIN--内部连
8、接DATA_N<=N;--数字键译码值寄存器DATA_F<=F;FLAG_N<=FN;--数字键标志值数据FLAG_F<=FF;CQD<=C_QD;--键盘输入采样时钟CSR<=C_SR;--按键位置KSEL<=SEL;--键盘扫描信
此文档下载收益归作者所有