32位移位寄存器

上传人:鲁** 文档编号:470015586 上传时间:2024-01-15 格式:DOC 页数:11 大小:288KB
返回 下载 相关 举报
32位移位寄存器_第1页
第1页 / 共11页
32位移位寄存器_第2页
第2页 / 共11页
32位移位寄存器_第3页
第3页 / 共11页
32位移位寄存器_第4页
第4页 / 共11页
32位移位寄存器_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《32位移位寄存器》由会员分享,可在线阅读,更多相关《32位移位寄存器(11页珍藏版)》请在金锄头文库上搜索。

1、8 位数码扫描显示电路设计一、实验目的学习硬件扫描显示电路的设计;二、实验原理动态数码扫描显示方式是利用了人眼的视觉暂留效应,把八个数码 管按一定顺序进行点亮,当点亮的频率不大时,我们看到的是数码管一 个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个 的点亮,而是全部同时显示,与传统方式得到的视觉效果完全一样。因 此我们只要给数码管这样一个扫描频率,那么就可以实现两个以上的数 码管同时点亮。而这个频率我们可以通过一个计数器来产生,只要计数 频率足够大,就可以实现我们的要求。事实上,因为数码管点亮不是瞬 间就可以的,它也需要一定的时间,该时间与数码管的选择有关系。为 了折中这一对矛

2、盾,实验中一般可将计数频率选择在 100Hz左右。图示8位数码扫描显示电路,其中每个数码管的8个段:h、g、f、e、 d、 c、 b、 a(h 是小数点)都分别连在一起, 8 个数码管分别由 8 个选 通信号k1、k2、k8来选择。被选通的数码管显示数据,其余关闭。 如在某一时刻, k3 为高电平,其余选通信号为低电平,这时仅 k3 对应 的数码管显示来自段信号端的数据,而其它 7 个数码管呈现关闭状态。 根据这种电路状况,如果希望在 8 个数码管显示希望的数据,就必须使 得8个选通信号k1、k2、k8分别被单独选通,并在此同时,在段信 号输入口加上希望在该对应数码管上显示的数据,于是随着选通

3、信号的 扫变,就能实现扫描显示的目的。实验参考扫描显示程序中 clk 是扫描时钟; SG 为7 段控制信号, 由 高位至低位分别接g、f、e、d、c、b、a 7个段;BT是位选控制信号, 接图5-2中的8个选通信号:k1、k2、k8。程序中CNT8是一个3位 计数器,作扫描计数信号,由进程 P2 生成;进程 P3 是7 段译码查表输 出程序,进程P1是对8个数码管选通的扫描程序,例如当CNT8等于001时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译 码输出1001111,显示在数码管上即为“ 3”;当CNT8扫变时,将能图1八位数码管显示电路三、实验步骤1、建立一个工程项目,设置

4、路径,项目名和顶层实体名一致;2、设计一个动态扫描显示电路,在8个数码管上显示数据:13579BDF 并进行编译仿真与下载测试;四、8位数码扫描显示电路的 VHDL描述:LIBRARY IEEE;USE SCAN_LED ISPORT ( CLK : IN STD_LOGIC;SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);BT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END;ARCHITECTURE one OF SCAN_LED ISSIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A

5、 : INTEGER RANGE 0 TO 15;BEGINP1:PROCESS( CNT8 )BEGINCASE CNT8 ISWHEN 000 = BT = 00000001 ; A BT = 00000010 ; A BT = 00000100 ; A BT = 00001000 ; A BT = 00010000 ; A BT = 00100000 ; A BT = 01000000 ; A BT = ; A NULL ;END CASE ;END PROCESS P1;P2:PROCESS(CLK)BEGINIF CLKEVENT AND CLK = 1 THEN CNT8 SG S

6、G SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ;END CASE ;END PROCESS P3;END;五、仿真波形功能仿真波形3 fs10. q riE20 1he3Q q ns:IS 陥 t:J10CLK ta scjli _rlUDQQ1L0XIDQlltl11OUIJXODCOL11fjaaODZOLmMBEJO)OOMOLED上DOQD1GOD时序仿真波形J ps1U.0 h3CJ.0 ns30.(JQ=L5.01Jr nriTT.innimjLtoiiciDSXZnnn(pin加 Rf);co32 位并进 / 并出移位寄存器设计

7、一、实验原理用一个 8位移位寄存器, 再增加一些电路, 如 4个 8位锁存器等,设计成为一个能 为 32 位二进制数进行不同方式移位的移位寄存器。、实验步骤1、建立一个工程项目,设置路径,项目名和顶层实体名一致;2、设计一个 8位移位寄存器电路;3、设计一个 8位锁存器电路;4、运用元件调用声明语句和元件例化语句完成顶层设计。 三、实验程序1、八位移位寄存器程序LIBRARY IEEE;USE jicun ISPORT ( CLK,CO: IN STD_LOGIC;MD : IN STD_LOGIC_VECTOR(2 DOWNTO 0);D : IN STD_LOGIC_VECTOR(7 DO

8、WNTO 0);QB : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CN : OUT STD_LOGIC);END jicun;ARCHITECTURE behav OF jicun ISSIGNAL REG : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL CY : STD_LOGIC;BEGINPROCESS(CLK,CO,MD)BEGINIF CLKEVENT AND CLK=1 THENCASE MD ISWHEN 001= REG(0)=CO;REG(7 DOWNTO 1)= REG(6 DOWNTO 0);CY REG(0)=REG

9、(7); -自循环左移REG(7 DOWNTO 1)REG(7)=REG(0); - 自循环右移REG(6 DOWNTO 0)REG(7)=CO; -带进位循环右移加载待移数REG(6 DOWNTO 0)=REG(7 DOWNTO 1);CYREG(7 DOWNTO 0)REG=REG;CY=CY;- 保持 END CASE;END IF;END PROCESS;QB(7 DOWNTO 0)=REG(7 DOWNTO 0);CN=CY;END behav;2、锁存器程序 library ieee ; use ;entity suocun isport(d : in std_logic_vect

10、or(7 downto 0) ;q: out std_logic_vector(7 downto 0);clk : in std_logic );end suocun ;architecture one of suocun issignal q1: std_logic_vector(7 downto 0); beginprocess(clk,q1)beginif clkevent and clk=1then q1=d; end if;end process;qdb(7 DOWNTO 0),q=e,clk=clk0);u2: jicun PORT MAP (D=e,QB=qb(7 DOWNTO 0), CLK=clkO,CO=co,CN=l,MD=md);u3: suocun PORT MAP(d=db(1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号