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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

显示电路研发设计VHDL编程.docx

1、显示电路研发设计VHDL编程第9章显示电路设计本章重点讨论输出结果在数码管上的显示。 电子线路输出一般都是 用灯的亮与不亮来表示输出的高低电平,这种显示不直观。数码管显 示能够更加直观、形象的描述现象。9.1两输入或门输出显示两输入或门是数字逻辑电路中最基本的门电路,电路图如下:真值表:aby000011101111两输入或门的程序设计可以有多种方式设计。输出结果主要通过 38译码器译码转换为7段显示码的输入,其电路程序设计如下: 矚慫润 厲钐瘗睞枥庑赖。library ieee;use ieee.std _lo gic_1164.all;use ieee.std_logic_ un sig

2、ned.all;*ENTIT Y or1 ISPORT(a,b:IN STD_LOGIC;out_c: out stdo gic_vector(7 dow nto 0);out_38: out std_logic_vector(2 dow nto 0);END or1;*architecture rtl OF or1 ISsig nal y:std_logic;begi ny=a OR b;out_38 = 000;out_c = 00111111 whe n y=O else00000110;END rtl;波形图如下:9.23进制计数器上一章讲到过3进制计数器的设计原理,按照一般的显示需要

3、两个 灯显示结果,在这里我们用一个数码管显示。 让读者能够更加直观的 理解3进制计数器的记数过程。其程序设计如下: 聞創沟燴鐺險爱氇 谴净。顶层文件设计:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dsp3 ISPORT(enable:IN STD_LOGIC;clk:IN STD_LOGIC;out_38: out std_logic_vector(2 downto 0);segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );END dsp3;ARCHITECTURE rt1 OF dsp3 ISCOMPON

4、ENT count3PORT(enable:IN STD_LOGIC;clk:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END COMPONENT;SIGNAL q:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINU0:count3 PORT MAP(enable,clk,q);out_38 = 000;segment 0);elseq_tmp=q_tmp+1;end if;end if;end if;q=q_tmp;end process;end rt1;波形图如下:100 .On? 200.0ns 300.0ns 0

5、0 .Uns GDO.Dns 600.0n5 7 CD. 0ns 800.0ns 900. Ddll I I h d Ienablef elk0 ou)302. .3601-tv segmantG segmenl5 segment-e segment segment segmenll ssgmenlO1 訂1aHOii19.324进制计数器24进制计数器显示和3进制计数器的显示思路一样。不同之处在 于前者需要两个数码管,在设计时必须考虑选择数码管。在任何自顶 向下的VHDL设计描述中,设计人员常常将整个设计的系统划分为 几个模块,然后采用结构描述方式对整个系统进行描述。 残骛楼諍锩瀨濟溆塹籟。

6、9.3.1顶层结构体的VHDL源代码24 进制计数器显示程序设计过程中就包含了记数部分、 显示部分。 另外为了使记数准确, 我们必须要获得稳定的频率, 即还包括稳定的 频率源部分。下面我们给出顶层结构体的 VHDL 源代码。其中 3 个 模块以元件的形式给出, 首先在结构体的说明部分进行元件说明, 然 后在结构体中进行例化调用。 同时在结构体的说明部分定义了中间信 号,主要用来在模块之间传递信息 。 酽锕极額閉镇桧猪訣锥。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clock

7、ISPORT(clk:IN STD_LOGIC;enable:IN STD_LOGIC;sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END clock;ARCHITECTURE rt1 OF clock ISCOMPONENT clk_div1000 PORT(clk:IN STD_LOGIC;clk_div:out STD_LOGIC);end component;component count24PORT(enable:IN STD_LOGIC;clk0:IN STD_LOGIC

8、;qh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);ql:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end component;component displayPORT(clk:IN STD_LOGIC;qh:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ql:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:out STD_LOGIC_VECTOR(2 DOWNTO 0);segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); end component;signal qh:

9、 STD_LOGIC_VECTOR(3 DOWNTO 0); signal ql: STD_LOGIC_VECTOR(3 DOWNTO 0);signal clk0:STD_LOGIC;beginu0:clk_div1000 PORT MAP(clk,clk0);u1:count24 PORT MAP(enable,clk0,qh,ql);u2:display PORT MAP(clk,qh,ql,sel,segment);end rt1;9.3.2 频率源 VHDL 源代码为了获得的稳定的频率源,我们才用 1000 赫兹频率作为输入,用 1000 进制 计数器分频得到 1 赫兹频率。其程序如

10、下: 彈贸摄尔霁毙攬砖卤 庑。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clk_div1000 ISPORT(clk:IN STD_LOGIC;clk_div:out STD_LOGIC);END clk_div1000;ARCHITECTURE rt1 OF clk_div1000 ISSIGNAL q_tmp:integer range 0 to 999;BEGINprocess(clk)beginIF(clkevent and clk=1)thenif(q_tmp=999

11、)thenq_tmp=0;elseq_tmp=q_tmp+1;end if;end process;process(clk)beginIF(clkevent and clk=1)thenif(q_tmp=999)thenclk_div=1;elseclk_div=0;end if;end if;end process;end rt1;9.3.3计数部分 VHDL 源代码24 进制计数器的计数主要是 24 进制,在这里我们把 24 分为个位 和十位设计。其 VHDL 源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC

12、_UNSIGNED.ALL;ENTITY count24 ISPORT(enable:IN STD_LOGIC;clk0:IN STD_LOGIC;-cout:out STD_LOGIC;qh:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);ql:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END count24;ARCHITECTURE rt1 OF count24 ISSIGNAL qh_temp,ql_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);謀荞 抟箧飆鐸怼类蒋薔。BEGINprocess(clk0)beginIF(cl

13、k0event and clk0=1)thenif (enable=1) thenif (qh_temp=0010 and ql_temp=0011) then qh_temp=0000;ql_temp=0000;elseif (ql_temp=1001) then ql_temp=0000;qh_temp=qh_temp+1;elseql_temp=ql_temp+1;end if;end if;qh二qh_temp;qlv二ql_temp;end process;end rt1;934显示模块VHDL源代码显示模块的输入信号主要来自于计数部分的输出信息。 在输出信号中,我们采用循环点亮两个

14、 LED七段显示数码管显示输出。我们通 过信号来进行2个LED七段显示数码的选择,从而将输出信号送到 相应的LED七段显示数码上完成24进制计数器的结果显示。模块框 图如下: 厦礴恳蹒骈時盡继價骚。qhql计时位选电路qOqlq3七段显示译码segment0 se呂ment1 segment 2 segmen13 segment4 segment5 segment 6enablecount8R Q 衣elCLK从图中可以看出,显示模块有四个部分构成:八进制计数器、计时位选择电路、七段显示译码电路。在外部时钟信号 clk 的作用下, 8 进制计数器的输出从 000 到 111 按顺序循环变化,输

15、出信号为se。信号seI作为计时位选择电路的选 择信号,用来选择对应位的数据并将其转换为四位位矢量。 最后将计 时位选择电路的输出信号 q 送到七段显示译码电路的输入端口, 将其 转换成用来点燃 LED 七段显示数码管的 segment 信号 。 茕桢广鳓鯡选块网羈 泪。下面描述显示模块中的四个子电路,然后描述其总体功能。 8 进 制计数器 VHDL 源代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count8 ISPORT(cIk:IN STD_LOGIC;seI:OUT

16、STD_LOGIC_VECTOR(2 DOWNTO 0);END count8;ARCHITECTURE rt1 OF count8 ISSIGNAL seI_tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINprocess(cIk)beginIF(cIkevent and cIk=1)thenif(seI_tmp=111)thensel_tmp0);elsesel_tmp=sel_tmp+1;end if;end if;selqqqsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegme

17、ntsegment=XXXXXXX;END CASE;END PROCESS;END rt1;下面对 24进制计数器显示模块总体功能描述。 在描述 24 进制计数 器显示模块时, 我们以引用元件的形式来调用以上描述的子电路。 其 VHDL 源代码如下: 籟丛妈羥为贍偾蛏练淨。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY display ISPORT(clk:IN STD_LOGIC;qh:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ql:IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel:OUT ST

18、D_LOGIC_VECTOR(2 DOWNTO 0); segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END display;ARCHITECTURE rt1 OF display ISCOMPONENT count8PORT(clk:IN STD_LOGIC;sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END COMPONENT;COMPONENT time_choosePORT(sel:IN STD_LOGIC_VECTOR(2 DOWNTO 0);qh:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ql:

19、IN STD_LOGIC_VECTOR(3 DOWNTO 0); q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT seg7PORT(q:IN STD_LOGIC_VECTOR(3 DOWNTO 0); segment:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;SIGNAL sel_tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL segment_tmp:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU0:count8 PORT MAP(clk,sel_tmp);sel=sel_tmp;U2:time_choose PORT MAP(sel_tmp,qh,ql,q);U3:seg7 PORT MAP(q,segment_tmp); segment=segment_tmp;END rt1;

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

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