LED点灯实验报告.docx

上传人:b****5 文档编号:30118188 上传时间:2023-08-05 格式:DOCX 页数:14 大小:658.01KB
下载 相关 举报
LED点灯实验报告.docx_第1页
第1页 / 共14页
LED点灯实验报告.docx_第2页
第2页 / 共14页
LED点灯实验报告.docx_第3页
第3页 / 共14页
LED点灯实验报告.docx_第4页
第4页 / 共14页
LED点灯实验报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

LED点灯实验报告.docx

《LED点灯实验报告.docx》由会员分享,可在线阅读,更多相关《LED点灯实验报告.docx(14页珍藏版)》请在冰豆网上搜索。

LED点灯实验报告.docx

LED点灯实验报告

LED点灯实验报告

华中科技大学电信提高班1101

一.实验目的:

设计多种方案点亮DE2开发板上的LED灯,熟悉使用DE2开发板。

2.方案设计:

方案一:

设计一个计数器,通过计数器输出十进制数值的奇偶性来控制LED灯的亮与暗

Step1:

设计一个计数规律为4-5-6-7-8-9-4-5-6-7-8-9-4....的计数器

1.设计分频电路

该电路的作用是把一个频率为50MHz的电源分频为1Hz的电源。

该设计电路我在quartus上,采用verilogHDL语言实现。

源代码如下截图:

说明:

分频器的源代码截图

然后将这段代码生成一个元件,如下图,其中有一个50MHz的输入端口,有一个1Hz的输出端口。

说明:

生成的分频器元件

说明:

In:

输入脉冲频率(50MHZ)

Out:

输出脉冲频率(1HZ)

2.设计计数电路

计数电路通过芯片74191实现,由于在计数器到9时重新由4开始计数,因此在QDQCQBQA输出为1010的时候,反馈给74191的载入端子,使其重新载入DCBA=0100,开始计数。

在quartus上设计的电路如下图,其中Lab05元件为七段显示译码器件,用于接入发光二极管,从而比较直观地验证结果。

(4-9计数,译码电路)

(电路引脚分配截图)

该电路点亮LED灯的方法是:

十进制计数输出为奇数是,LED灯亮,输出为偶数时,LED灯灭,电路在DE2开发板实现的结果录像在附件中。

方案二:

模仿交通灯的设计,控制红色和绿色的LED灯的亮与灭

该方案是通过一盏红色LED灯和绿色LED灯来简易地模仿交通灯的设计,其基本原理是:

在一定时间内显示红灯,然后开始倒计时,过了一定时间后,就显示一段时间的绿灯,再倒计时,然后重新显示红灯。

在这个实验中我简化了交通灯的模型,红灯和绿灯的倒计时间一样,都设定为8秒,即计时器显示为8-7-6-5-4-3-2-1-8-7-6-5-4-3-2-1......于是,应该先做一个模八的倒计时计数器,这个功能我通过芯片74191完成。

而红灯绿灯的切换显示我通过一个JK触发器完成,其余的主要是为实现模为8服务,在quartus上连接的电路如下截图所示:

(红绿灯模拟电路连线)

实验测试结果应该为每次倒计时8到1的时候,都只会有一盏灯亮,然后到下一个8到1倒计时的时候,就会换成另一种颜色的LED灯亮,而原来亮的LED灯会灭掉。

在DE2开发板上的实现详见附件:

方案三:

模仿射击小游戏中的子弹发射过程,控制18盏红色LED灯和2盏绿色LED灯的亮与灭

如今假设从右往左开枪射击,特别地用两盏绿色LED灯代表枪头,每次绿色LED灯亮就代表开枪射击,用两盏发光的红色LED灯代表射出的枪弹,开枪后枪弹从右往左运动,设计中用两盏发光的红色LED灯从右往左运动代表。

那么通过电路设计,可以模拟出射击小游戏中的枪弹射击过程。

设计电路中,使用了一个使50MHz分频成12Hz的分频器,是通过verilog代码编写的分频元件,其verilog代码如下截图所示:

(50MHz-12Hz分频器代码截图)

然后通过芯片7490构成一个0-9的计数器,然后把计数器的输出,作为数据选择器的输入,电路中我使用的芯片为7442数据选择器芯片,然后把数据选择器的每个输出端口连接到相邻的两个LED灯上去,就完成了简化后的“子弹发射”模型。

由于数据选择器的输出是高电平,因此在7442芯片的输出都加了一个非门把电平置反。

实验设计电路如图所示:

(“子弹发射”模型设计电路)

在DE2开发板上的测试成果详见附件中的视频,部分截图如下所示:

方案四:

设计一个四比特移位器,利用移位器控制四盏LED灯的亮与暗

Step1:

运用verilogHDL设计4to1的数据选择器

如今我们需要的数据选择器的要求如下:

数据输入端口为:

W0,W1,W2,W3,选择输入端口为S0,S1;输出为一位的F。

当S0=0,S1=0时,F为W0;

当S0=1,S1=0时,F为W1;

当S0=0,S1=1时,F为W2;

当S0=1,S1=1时,F为W3;

于是,得到的verilogHDL语句如下截图(图一):

图一

通过这段程序所建模出来的4to1选择器元件如图二:

图二

Step2:

设计一个移位器

通过分析得到如下输出表格:

S1

S0

F3

F2

F1

F0

通过端口

0

0

X3

X2

X1

X0

W0

0

1

X2

X1

X0

X-1

W1

1

0

X1

X0

X-1

X-2

W2

1

1

X0

X-1

X-2

X-3

W3

因此,用四个4-to-1数据选择器,分别作为F3,F2,F1,F0的输出,容易看出,输出F3的选择器W0应该连接X3,W1端口应该连接X2,W2端口应该连接X1,W3端口应该连接X0。

以此类推,就能弄清楚每个端口应该连接哪一个输入端子。

通过连接,得到如下的电路图,如图三:

图三

Step3:

测试

运用DE2的LEDR灯,高电平发光,低电平不发光的特性,用作测试工具

测试的时候,是根据如下图分配引脚的:

(图四)

图四

以下表格为数据测试表格,其输入和输出的真值关系如下表:

X3

X2

X1

X0

X-1

X-2

X-3

S1

S0

F3

F2

F1

F0

1

0

0

1

1

1

0

0

1

0

0

1

1

1

1

1

0

0

0

0

1

1

0

0

0

0

1

1

1

0

0

1

1

0

0

1

1

1

0

1

1

0

1

0

1

0

1

0

0

1

0

1

1

0

1

1

0

1

1

0

1

0

1

1

0

然后根据上述表格的输入,在DE2板上得到输出结果,如下图所示,其中F3,F2,F1,F0分别代表前四个LED灯的亮暗情况,1为灯亮,0为灯灭:

(上表的第一种情况,三、四灯亮)

(上表的第二种情况,灯全灭)

(上表的第三种情况,灯全灭)

(上表的第四种情况,二、四灯亮)

(上表的第五种情况,二、三灯亮)

方案五:

模仿五进制计数器,一盏灯为个位计数指示灯,另一盏灯为进位指示灯

输入为一个500MHz的时间脉冲,通过分频器使之输出1Hz的时间脉冲,使用这个1HZ的时间脉冲点亮一盏LED灯,然后通过芯片7490,使用5进制计数器,在最高位QD端子输出脉冲,和时间脉冲进行一次与运算,就可以得到一个和时间脉冲高电平时间相同的高电平,把它作为第二盏LED灯的点亮脉冲。

通过时间脉冲点亮一盏LED灯,用频率为时间脉冲频率的五分之一的脉冲点亮另一盏LED灯。

设计的逻辑电路图如下:

(逻辑电路图)

(两盏LED灯的波形图)

该方案实现的结果已经用视频进行展示,详见附件。

方案六:

模仿霓虹灯的设计,使两盏LED灯交替闪亮

输入为一个500MHz的时间脉冲,通过分频器使之输出1Hz的时间脉冲,使用这个1HZ的时间脉冲点亮一盏LED灯,然后通过一个非门,对时间脉冲进行处理,输出在点亮一盏LED灯,这样就可以使两盏LED灯交替点亮,一盏在时间脉冲高电平点亮,另一盏在时间脉冲的低电平点亮。

设计的逻辑电路图如下:

(逻辑电路图)

(引脚分配截图)

方案七:

模仿学生寝室亮灯的设计,通过开关来控制LED灯的亮与灭

学生寝室亮灯,主要有两个开关,一个开关在寝室内部,用于供学生使用,另一个开关由楼管阿姨控制,该开关对所有寝室的灯统一控制。

若用0表示灯灭和开关断开,用1表示灯亮和开关闭合,由于学生寝室的开关相互之间是互相独立的,因此每个学生寝室的开关情况与楼管总开关的关系是一样的,则真值表如下图所示:

楼管总开关

学生寝室开关

0

0

0

0

1

0

1

0

0

1

1

1

现在我假设有四间学生寝室,于是就有四盏灯需要点亮,由以上真值表可以画出电路图:

(寝室点灯电路设计图)

(引脚分配图)

在DE2开发板上实现的仿真如下图所示,其中,从右数起第五个开关代表楼管开关,其余四个分别为四个寝室的开关。

测试结果如下图所示:

方案八:

通过输入的二进制的数值的奇偶特性控制LED灯的亮与暗

这里我设计的电路是一个三位二进制数值的奇偶校验电路,当输入的二进制数值a0a1a2是奇数的时候(即有奇数个1),LED灯就会发光,当输入的二进制数值a0a1a2是偶数的时候(即有偶数个1),LED灯就不发光。

输入与输出的真值表如下所示:

a0

a1

a2

output

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

于是,通过卡诺图化简法,可以得出output和a0a1a2的逻辑表达式。

于是使用了异或门设计了如下奇偶校验电路,通过输出的高低电平,控制LED灯的亮与暗:

(奇偶校验电路设计图)

通过DE2开发板,测试的结果如下图所示:

方案九:

直接从DE2开发板中使用高电平点亮LED灯

这种方案是利用了DE2开发板多功能仿真的特点,直接在设计电路中给输出接上一个高电平,然后输出接上一个红色LED灯,从而使灯点亮。

该方案比较简单,但是充分体现了quartus软件的仿真模拟功能以及DE2开发板对电路设计强大的仿真,模拟以及实现的功能。

(高电平点亮LED灯电路设计图)

在DE2开发板上的测试结果如下截图显示:

方案十:

利用开关控制LED灯的亮与暗

通过设计输入输出电路,然后输入接到DE2开发板的开关引脚,输出接到一盏红色LED灯上,就可以实现通过开关控制LED灯的亮与暗。

设计电路如下图:

(开关控制LED灯亮暗实现电路以及引脚分配截图)

在DE2开发板上的测试结果如下截图所示:

之所以在这里列出方案八方案九这两种最简单的控制LED灯亮暗的方法,是因为我之前的七个方案都是基于这两种方案拓展出去,添加别的设计从而点亮LED灯的。

可以说方案八和方案九是我所有点灯方案的基础和根本,因此,我在这里把它们罗列出来。

3.实验总结

1.通过这次的完成LED灯点亮设计,使我对DE2开发板的开发与使用更加熟悉了。

通过软件可以轻易模拟出电路,芯片功能等等,通过DE2开发板则弥补了软件所欠缺的硬件实现部分,通过DE2开发板的可编程逻辑(FPGA),可以轻松使用DE2板上所携带的所有电路元件,轻易节省了实际中的连线操作所需要花费的大量时间。

2.对于一个实际问题,我们应该首先将其抽象出一个电路模型,然后从模型出发,解决问题。

比如我上面的交通灯亮灯问题,射击过程,寝室楼栋亮灯管理等的模拟,都是通过对实际问题的抽象,建模,然后才提出解决方案,设计实现电路。

3.这次实验,我觉得最大的体会就是对于电路各个模块的设计与封装。

将电路的各模块分开设计,分别调试,大大加大了电路完成的效率。

比如说,在好几个点灯方案中我都用到了把50MHz分频成1Hz的元件,那就是元件的封装,通过编写一次verilog代码,就可以重复使用该代码所创造出来的元件,十分方便。

各个电路模块分而自治,若在团队合作中,可以增加团队的机动性和合作性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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