一. 实验内容
1、制作LED计数电路,输入是编号为1~5的5个开关,输出是5个发光二极管(LED)
点几号开关,就有几个LED发光。
2、制作一个5位输入3位输出的编码器,
输入的第5位为1,输出就是数字5对应的二进制数(101),
输入的第4位为1,输出就是数字4对应的二进制数(100),
输入的第3位为1,输出就是数字3对应的二进制数(011),
输入的第2位为1,输出就是数字2对应的二进制数(010),
输入的第1位为1,输出就是数字1对应的二进制数(001)。
二. 实验步骤
Logisim的简介和安装
首先要知道什么是logisim
?
Logisim是一种用于数字电路设计和模拟的开源工具,Logisim在2014年10月11日无限期暂停。因它足够简单,可以帮助学习逻辑电路相关的基本概念而闻名。Logisim被世界各地大学的学生在课程中使用。
Logisim的特性
- 开源免费
- 绘画界面直观简洁
- 可以在任何支持Java 5或更高版本的机器上运行,同时针对MacOS X和Windows发布了特殊版本
由于Logisim现在已经停止更新了,我这里提供两种安装方式
官方网站:http://www.cburch.com/logisim/
如果想要获取演化版本,可以在snapcraft.io上下载其稳定版本
演化版本:https://snapcraft.io/logisim-evolution
我这里是3.80稳定版本的,注意这里需要Java 16及以上
如果想要知道自己的Java版本,可以在命令窗口查看自己的Java版本
我这里是Java 20,满足条件即可,如果对Java环境配置不清楚的可以看我之前写的https://blog.csdn.net/ntr851217/article/details/132521784?spm=1001.2014.3001.5501Java配置教程
安装完成,打开大致是这样一个界面
如果你的语言是英文的,可以在将语言设置成中文
Logisim语言设置
选择cn/cn,关闭窗口即可
这里我就不赘述Logisim的使用方法了,想要详细了解的可以自行上网查询。
设计LED详细电路
进入主界面可以先改名和选择保存文件路径,按ctrl+s
键进行保存,选择合适的位置
当然我们也可以修改我们的电路名称
完成我们的初始化操作之后,就要进行电路设计了。我们的要求是,有五个发光二极管,我们点击几号开关就有几个LED发光。想要完成这一功能,我们首先要进行抽象
设计思路
首先我们的输入是由五个开关组成,我们可以将其抽象成五个二进制位
00001其实对应这我们的00001,同样的00010对应这00011,00100对应输出00111,01000对应输出01111,10000对应输出11111
真值表设计
这里是部分的真值表
1 | 2 | 3 | 4 | 5 | LED1 | LED2 | LED3 | LED4 | LED5 |
---|---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
电路图设计
下面到了我们喜闻乐见的电路图设计环节
添加5个输入引脚,可以按ctrl+d
进行复制,如下图
然后我们要添加或门和输出引脚,可以在导航栏右边可以修改参数
在这里可以修改引脚数
设计电路如下图所示
电路测试
点击手的图标,进行测试
LED电路的封装测试
我们可以新添加一个LED电路的测试类用于LED电路测试
- 鼠标右键项目目录,创建测试电路
- 选择封装编辑模式
- 编辑封装,长按引脚会展示详细图片
- 设计封装
- 添加封装到测试电路中
鼠标双击进入测试电路,单击LED计数电路,添加封装电路到测试电路
- 添加按钮和发光二极管进行测试
自动生成电路5输入编码器
首先我们先创建一个5输入编码器的项目,选择分析组合逻辑电路
添加输入和输出项
如下图所示
同理输出
真值表设计
根据真值表可以查看表达式,生成电路
如下图
封装5输入编码器
分线器的使用
首先添加编码器到LED计数测试电路中
添加分线器
同样的,添加第二个分线器和探针
16进制数字显示
如下图所示
如果出现了测试异常的情况,可以重新打开项目
七段数码管
数码管驱动
真值表设计
驱动电路
数码管测试
添加到LED计数测试中
总结
实验主要考查了关于Logisim的使用方法,LED的详细电路封装以及5输入编码器的设计使用,分线器的使用,16进制的功能测试等等。实验中所遇到的问题,可能还是真值表设计和电路的设计部分。