当前位置:范文大全 > 调查报告 > 数电实验报告发光二极管走马灯电路设计与实现:数电控制led点阵

数电实验报告发光二极管走马灯电路设计与实现:数电控制led点阵

时间:2021-11-06 16:57:13 浏览次数:

  北京邮电大学

 数字电路与逻辑设计实验

 实验报告

 实验名称:

 发光一极官走马灯电路设计与头现

 学

 院:

 班

 级:

 姓

 名:

 学

 号:

 任课老师:

 实验日期:

 成

 绩:

 实验名称和实验任务要求

 实验名称:发光二极管走马灯电路设计与实现 实验目的:⑴进一步了解时序电路描述方法;

 ⑵熟悉状态机的设计方法。

 实验任务要求:

 设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功 能,并下载到实验板测试。

 ⑴单点移动模式:一个点在8个发光二极管上来回的亮;

 ⑵幕布式:从中间两个点,同时向两边依次点亮直至全亮,然后 再向中间点灭,依次往复。

 设计思路和过程

 设计实现过程:⑴ 设计的电路拥有两种功能,所以设定 d」n控制 输出实现两种功能,规定当 d」n =0时,实现单

 点移动模式;当d」n =1时,实现幕布式。同时, 时序电路中钟控是必不可少的,所以引入 clk_in 来实现钟控。最终需输出在实验板上的 8个发光 二极管上验证,所以输出f需设定为8端口输出, 女口: f:out std_logic_vector(7 downto 0) 。

 ⑵ 单点移动模式的实现:来一个时钟沿,实现一次 变化。单点移动模式需实现发光二极管来回亮,

 所以需定义一个16变量的数据类型。利用 CASE-WHE语句实现状态的转移。状态转移TTT …T-T ... T⑶ 幕布式的实现:需实现发光二极管从中间两个点, 同时向两边依次点亮直至全亮,然后再向中间点 灭,往复。需要8变量数据类型,利用单点式中 信号类型定义给状态转移。状态转移需满足:TT …TT TVHDL程序

 发光二极管走马灯电路VHDI程序:

 1 library leee;

 2. 二二= re ■ std lacxc; 11 € 1 ■ a 11 r

 3 \ise Leee . std lcgic unsigned, all;

 弓

 E ■ entity color 1 aicp ±a

 Sport (

 : in svd._lc?iG;

 R d^in r in ?td_loqi.c:;

 9 f:out std lcgic vectorp downto 0)};

 10

 snd color_airf;

 11

 12

 Q architecture a 匚£ colorlaKp is

 13

 Q type all scace la (3Qf

 14

 310f 31丄F鼻3丄攻r 215):

 15

 s丄gnal state:all atate;

 16

 ■ begm

 17

 Sprocess(elk in}

 IB

 begm

 5 if ( ellr in1 eTZEnt and ulZ in=11. 1 ) then

 20

 Hif (d 1 n=1 0 1 ) then

 21

 S case state 二m

 22

 <hen g0=> svate<—al;f<=nC DC 0< OZC";

 23

 when aZ=> stavef<=wGOGQ?'OLQn;

 巧

 -.:nen 32=> svaue^=a3;r^="Q9OQ0iOQ";

 25

 v?ien a3=> state<^54; £<-;

 26

 whe^ 3^=> svate<=35;f<=wOQG10QOO";

 27

 when a5-> 3tate<—£<-;

 28

 whe^ b6"> 3tate<?s7;f<?;

 303132333435裁37383S4Cwizen =7—> 日仁f<-"LC'DOOOOG">wnen

 30

 31

 32

 33

 34

 35

 裁

 37

 38

 3S

 4C

 wizen =7—> 日仁f<-"LC'DOOOOG">

 wnen

 wrzen

 3^=> state<=s9; r<=r, D1CQDOOO"; s9=> 3tate<=510;£<=;

 510 = >

 511=>

 51 2=>

 3tate<=311; f<=rr00 3 10?0 j": f<=rTTnnr.r tq -trt: at ate<=313ff<=n QOQ 00 LOO n;

 wrier.

 wnen whe^ end case; "d i£;

 3匸鼻匸亡弋=3二3;工弋二” ?0_";

 si ^=?- ovhers=> ntate<=sO;f<="0OQOQOOl";

 ^2

 ^3

 £5

 46

 张

 50

 51

 52

 53

 54

 Q case suatm is

 when s0=>3tate<=sl;f<="00011COO*;

 when 31">3ta匸览

 when s2=>fltat&<=33;f<-;

 WhMD ?3:=>HtHt:P< = H4 ; f<=" J * 1 ;: 1 11 ";

 when □4->otate<-aS ;£<i-n0111111Qn;

 when =5->5tate<-36;£<-"Q0111100_;

 whan s^=>3tate<=s7;£<="QOOHQOOH;

 when 盘丁=>日匸且匸豐V■且。;f<=;

 whan others "> state<"s0; f<?nOOOHOOOTT; end case;

 end i£;

 end if;

 55 end process;

 弓右 end a;

 仿真波形图

 发光二极管走马灯电路的仿真波形图:

 仿真波形图分析

 ⑴单点移动模式功能的仿真波形图分析:

 由波形可见,当控制信号d」n=O时,输出的8个端口依次出

 现正脉冲,波形呈现阶梯状,代表一个发光的点在8个发光二极管

 上来回的亮,实现了功能要求;

 ⑵幕布式功能的仿真波形图的分析:

 当控制信号d」n=1时,输出的8个端口出现正脉冲的时间与 脉冲的长度呈现“中间宽,两头窄”的形状,先是中间的两个灯亮, 接下来是中间四个灯亮,接下来是中间六个灯亮,两旁两个灯不亮, 最后全亮,接着中间六个灯亮,两旁两个灯不亮,继而循环下去, 实现了幕布式的点灯方式。由图可知,该电路实现了要求的逻辑。

 故障及问题分析

 ⑴开始设计时想到用计数器实现,导致全用 case语句实现当设 计电路,但是仿真是发现:不论是单点移动式还是幕布式只能实现单 方向的移动,而无法进行反方向的移动。最后,查阅书籍决定改为引 入类型定义语句,利用类型第一语句来完成实验,所以引进了 16个

 信号数据类型进行状态转移。

 ⑵电路拥有两个功能,不能同时将这两个功能实现,所以需引进 控制信号来控制功能的实现。

 ⑶引入时钟,控制状态的变化,此次的时钟的周期不用分频器来 分频,利用实验板上先用的低频率时钟,可以实现发光二极管的状态 变化。

 ⑷实验的程序设计基本上问题不大,主要是要熟练掌握IF-THEN, CASE-WHE语句等。

 总结和结论

 这学期的数字电路与逻辑设计实验在这一周结束了。

 这学期学 了一门新课程,接触了关于课程的实验,我发现理论联系实际,实验 验证理论的方法令人感到很满足。每次做实验都会期待这次的电路设 计自己会做出一个什么东西出来。实验课结束了,回顾这几周的实验, 现在的我可以很高兴的说:现在自己已经基本上掌握了数字电路的设 计了。

 这几周的数字逻辑电路设计实验, 我明白了一个重要的道理:进 行实验,理论分析是十分重要的一环,只有逻辑分析透彻无误了,才 能用语言进行描述,进而用硬件实现。这几次实验让我对 VHDI这样

 一门硬件描述语言有了更加深刻的认识。

 同时,我也明白了做任何实验之前预习的要求是极为重要的。

 做好预习工作,不仅可以减少实验课上应无知而浪费的时间, 还可以 更深入的明白仿真实验所蕴含的原理。

 总的来说,数字逻辑电路与设计实验课对我的帮助真的很大。我 更加深刻的理解了理论课上老师所教授的知识, 同时对于自己能够将 理论知识运用到实验中感到十分高兴,相信下学期的数字逻辑电路与 设计实验将会带给我更多新奇与经验。