EDA 16路彩灯设计

EDA16路彩灯课程设计 要求写出程序和详细的工作原理

一、设计题目及要求

1.有十六只LED,L0……L15

2.显示方式

①先奇数灯依次灭

②再偶数灯依次灭

③再由L0到L15依次灭

3.显示间隔0.5S,1S可调。

二、设计过程及内容(包括1总体设计的文字描述,即由哪几个部分构成的,各个部分的功能及如何实现方法;2主要模块比较详尽的文字描述,并配以必要的图片加以说明,但图片数量无需太多)

1.设计方案

从课程设计要求来看,要求实现彩灯的23种状态,所以,可以用一个23进制的计数器,从0到22来控制这23种状态。

再画出这23种状态和计数器数字对应的状态图,计算出逻辑式,便可实现彩灯的控制。由于变量过多,逻辑式的化简比较困难,所以我们使用了译码器来得到最小项,直接用最小项进行连接。

题目要求实现频率的选择,所以我使用了74161进行分频,从实验箱得到8Hz的脉冲信号,经分频得到2Hz和1Hz的信号,然后用数据选择器进行选择。

模块一,23进制计数器

使用2块74161扩展成为23进制计数器,采用并行进位方式、整体置数。因为计数器需要23种状态(00000-10110),所以,我先用两片74161连接成256(16×16)进制计数器,然后在输出为10110(22)时,用与非门来控制两计数器的LDN端清零。同时清零信号可作为进位信号输出。

具体连接如下:

仿真图如下:

每次计数器输出22时,CO端输出高电平。

模块二,5-32译码器

用两片74154(4-16译码器)扩展为5-32译码器。74154只有4个地址输入端A,B,C,D,如果对5为二进制代码译码,就要利用一个附加控制端来实现扩展。A,B,C,D分别对应连接两片74154的A,B,C,D输入端,另外一个输入端E,利用74154的G1N和G2N来实现选择两片之一。高位的O0N――O15N分别表示O16N――O31N。

具体连接如下图:

仿真图如下:

输入端分别输入0—31,可得到如下波形
模块三,分频器

用74161做23进制计数器进行分频分出8Hz,用数据选择器和一个数据选择器,控制时间间隔分别为0.5s,1s可调。用跳线选择实验箱上的CLK2的183Hz,用模块一的23进制计数器来实现23分频,可得到8Hz的时钟信号,在把得到的信号用74151再次分频,选择B,C端输出,即可得到2Hz和1Hz的时钟信号。具体连接如下图:

仿真图如下:

模块四,控制模块

由23进制计数器输入一个五位二进制数(00000-10110),输出彩灯所对应的状态(1表示灯亮,0表示灯灭)。对应的状态图如下:

由上表可得到各个输出对应输入端的逻辑表达式

L0=M0+M1+M2+M3+M4+M5+M6+M12

L1=M0+M6+M7+M8+M9+M10+M11+M12+M13

L2= M0+M1+M2+M3+M4+M5+M6+M7+M12+M13+M14

L3= M0+M1+ M6+M7+M8+M9+M10+M11+M12+M13+M14+M15

L4= M0+M1+M2+M3+M4+M5+M6+M7+M8+M12+M13+M14+M15+M16

L5= M0+M1+M2+ M6+M7+M8+M9+M10+M11+M12+M13+M14+M15+M16+M17

L6= M0+M1+M2+M3+M4+M5+M6+M7+M8+M9+M12+M13+M14+M15+M16+M17+M18=

然后进行连线。

具体连接如下:

仿真图如下:

其中cp为时钟信号,L0—L9表示10个彩灯

模块五,总控制模块

把频率控制模块(模块三)和彩灯控制模块(模块四)连接起来,就组成了频率可调的彩灯控制器,输入端control可控制输入频率(0为2赫兹,1为1赫兹)。

仿真波形如下:

图中显示了控制信号分别为0和1时的波形
三、设计结论(包括设计过程中出现的问题;对EDA课程设计感想、意见和建议)

1. 硬件实验情况

软件设计是非常重要的,但是还是纸上谈兵啊,真正要到了 安装调试的时候,这又是一个另一个比设计还头痛的事,

在确定了我的演示波形正确之后,按照书上的程序下载操作流程,成功的将我的设计内容下载到EPF10K10LC84-3的芯片中,然后根据引脚,逐个连接,在连线的过程中,我尤其注意了时钟信号的连接,最终得到了令人相当满意的彩灯闪烁效果。

2. 改进方法

刚刚开始设计时,计数器的我都采用了CLRN端清零,但在使用中发现这样进位的脉冲过短,影响实验结果。于是全部改为LDN端清零。
温馨提示:答案为网友推荐,仅供参考
相似回答