简易加减运算器的制作----数字电路设计(含proteus仿真)

news2024/11/28 20:39:32

简易加减运算器的制作

一、功能要求—基本功能

1、自制0-9按键,在一个LED数码管上稳定地显示当前按下的值。(基本功能)

2、增加+、=两个按键,实现0-9两个一位数的加法运算,同时在两位LED上稳定地显示运算结果。(扩展功能1)

3、再增加一个-按钮,实现0-9两个一位数的减法运算,同时在两位LED上稳定地显示运算结果。(扩展功能2)

功能一实现

对于在LED数码管上显示数字最合适的就是74hc48。

74LS48是BCD至七段解码器,用于显示以二进制编码的十进制格式解码的数字。7 段是一种基于 7 个 LED 的小型设备,用于表示从 0 到 9 的单个数值。每个 7 段有七个输入引脚,用于点亮七个段中的单个 LED。每次制作单个数字时,某些特定引脚应该有电源输入。

74LS48解码器简介

为了实现特殊模式,可以使用逻辑门,但也可以使用IC 74LS48来控制 7 段。它有17个与门、4个或非门、6个非门和8个与非门。这些所有门的组合使 IC 具有 4 个输入和 7 个输出引脚。输出引脚在单个输出中生成两个 BCD 数字,这在 7 段上形成一个数字。该IC有4个输入引脚,总共有16种组合,但前10种组合用于产生7段输出,其余的将被视为无效状态。该 IC 是基于 TTL 的设备,因此可以由任何 TTL 设备或微控制器控制。它仅用于控制共阴极七段。

引脚配置
名称引脚
B引脚 1IC 74LS48有4个输入引脚,引脚1代表IC 4位输入数据的第三位。
C引脚 2引脚2代表IC的4位输入数据的第二位。
LT’引脚 3引脚 3 称为灯测试引脚。它用于使所有输出引脚为高电平以测试所有 7 段 LED。这是一个低电平有效引脚。
BI’/BRO’引脚 4引脚 4 将用作复位引脚。如果引脚 4 为低电平状态,则不会有任何输出。它是一个低电平有效引脚,它将使所有输出状态为低电平。
RBI’引脚 5引脚 5 称为纹波消隐输入引脚。它在多个 7 段的情况下使用来清除不必要的零。
D引脚 6引脚6代表IC的4位输入数据的MSB。
A引脚 7引脚7代表IC的4位输入数据的LSB。
GND引脚 8GND 引脚用作接地引脚。它用于使接地共用,以使 IC 能够与其他 TTL 设备和微控制器一起工作。
e引脚 9引脚 9 至引脚 15 将用作输出引脚。他们将给出输出信号来控制 7 段。引脚顺序为 a、b、c、d、e、f 和 g。每个字母代表7段LED上的字母。
d引脚 10
c引脚 11
b引脚 12
a引脚 13
g引脚 14
F引脚 15
VCC引脚 16引脚 16 用于向 IC 供电以使其正常工作。
工作原理

在 IC 74LS48 中,输出取决于输入。主要输入引脚有四个,有助于在特定输入数据上生成固定输出状态。在4位二进制数字中,十进制的0用0000表示,十进制的9用1001表示,并且从1到8的所有值也都有固定的4位二进制代码。当IC上有0到9的输入时,输出值将根据共阴极7段。这是因为 IC 是为执行该功能而设计的。如果使用7段IC,我们需要根据给定的电路连接7段IC。

原理图

左上方的四个数字输入对应BDC码

进一步完善

如需完整符合题目一的要求就需要有矩阵键盘转BCD码的数字电路。

结合给定得元件需要用到74HC147

74hc147是一个10线-4线优先编码器。它通常用于将多个输入信号(如开关或传感器输出)转换成较少的输出线,以便于处理。它能够识别多个激活输入中的最高优先级信号,并将其编码为二进制形式的输出。

最终设计的原理图如下,此时全部符合题意。

二、扩展功能1

增加+、=两个按键,实现0-9两个一位数的加法运算,同时在两位LED上稳定地显示运算结果。(扩展功能1)

对于数字电路的加法运算和给定的元器件综合分析,我们使用74hc283。

74hc283这是一个4位二进制加法器,用于执行两个4位二进制数的加法运算。它包括进4位输入和输出,可以用于构建更大的加法器系统。

设计思路
  • 根据进位信号和输出信号的逻辑表达式(74HC283逻辑图)以及真值表示例,结合行为级、数据流建模即可实现74HC283的四位二进制进位全加器的功能。
  • 进位信号和输出信号等逻辑表达式(74HC283逻辑图)

image-20231210155024610

  • 74HC283的真值表示例

image-20231210155145868

逻辑符号

image-20231210155333838

  • A 3 A 2 A 1 A 0 A_3A_2A_1A_0 A3A2A1A0:四位二进制加数。
  • B 3 B 2 B 1 B 0 B_3B_2B_1B_0 B3B2B1B0:四位二进制加数。
  • S 3 S 2 S 1 S 0 S_3S_2S_1S_0 S3S2S1S0:和数。
  • C − 1 C_{-1} C1:低位来的给 A 0 A_0 A0的进位信号。
  • C 0 C_0 C0 A 3 B 3 A_3B_3 A3B3向高位的进位信号

此时只需要将第一问输入的数字的BCD码分别接入两个AB进行加法运算,输出的BCD码继续在共阴极数码管上显示即可。

原理图

进一步完善

此时如需完整符合题意需要,需要再加入+号与=号两个按键。

等于好相当于最后的开关,打开开关显示减法的结果。原理图如下:

 

二、扩展功能2

再增加一个-按钮,实现0-9两个一位数的减法运算,同时在两位LED上稳定地显示运算结果。(扩展功能2)

关于减法功能其与加法的电路实现思路几乎一致,只是需要将被减数的BCD码进行取反加一(即补码)进行加法运算的结果就是减法运算。

思路图如下

image-20231210162617173

设计的最终原理图如下:

最终完善

需要进一步进行+和-还有等于的操作,即为+和-进行选择是否进行别减数的补码操作,加法就是不进行,减法就是进行补码操作,最总=号进行数码管加减法的结果显示。

最终原理图如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[MySQL--进阶篇]存储引擎的体系结构、简介、特点、选择

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:不要在乎别人怎么看你,因为他们根本就没有时间,他们只关心他们自己。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 存储引擎 前言MySQL体…

class066 一维动态规划【算法】

class066 一维动态规划 算法讲解066【必备】从递归入手一维动态规划 code1 509斐波那契数列 // 斐波那契数 // 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 // 该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。…

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

PWN动态调试

这篇文章就是来教大家学习怎么动态调试的,然后我还写了一篇关于动态调试的文章,不是buu上面的题,就是两道简单的栈溢出问题,那两道题挺有特点的。大家可以去看看。 每日3道PWN之课外2道(第2.5天)-CSDN博客 …

uniApp项目的创建,运行到小程序

一、项目创建 1. 打开 HBuilder X 2. 右击侧边栏点击新建,选择项目 3. 填写项目名,点击创建即可 注:uniapp中如果使用生命周期钩子函数,建议使用哪种 ?(建议使用Vue的) 二、运行 1. 运行前先登录 2. 登录后点击 manifest.js…

基于SSM的酒店管理旅店系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

模块一——双指针:202.快乐数

文章目录 题目描述简单证明补充知识算法原理代码实现 题目描述 题目链接:202.快乐数 为了方便叙述,将对于⼀个正整数,每⼀次将该数替换为它每个位置上的数字的平方和这⼀个操作记为x操作; 题目告诉我们,当我们不断重…

Python之random和string库学习

一、random库 random是python中用来生存随机数的库。具体用法如下: 1、生成一个0到1随机浮点数 random.random() 2、生成一个a到b的随机浮点数 random.uniform(1,2) 3、生成一个a到b之间的整数 random.randint(a,b) 4、随机从序列元素中取出一个值,…

基于SpringBoot+Vue的学校在线学习系统

开发环境 IDEA JDK1.8 MySQL8.0Node 系统简介 本系统拥有管理员,教师,学生三种身份登录,管理员登录可以查看所有信息,教师登录可以发布作业,查看试卷,回答问题等,学校登录可以查看作业&…

低代码还是好用的,我持有这个观念

低代码开发是近年来迅速崛起的软件开发方法,让编写应用程序变得更快、更简单。 有人说它是美味的膳食,让开发过程高效而满足,但也有人质疑它是垃圾食品,缺乏定制性与深度。 你认为低代码到底是美味的膳食还是垃圾食品呢&#xff0…

minio的k8s的单机部署

minio的k8s的单机部署 apiVersion: apps/v1 kind: Deployment metadata:name: minionamespace: itshare spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: minio/minio:RELEASE.2022-10-15T19-57-03Z…

基于Java swing的医院信息管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

c++-定长内存池

文章目录 前言一、定长内存池 前言 一、定长内存池 我们知道申请内存使用的是malloc,malloc其实就是一个通用的申请函数,什么场景下都可以用,但是什么场景下都可以用就意味着什么场景下都不会有很高的性能,下面我们来设计一个定…

Windows安装Maven

一、Maven 是什么? Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。 在有多个开发团…

Flutter笔记:滑块及其实现分析1

Flutter笔记 滑块分析1 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/134900784 本文从设计角度&#…

一个通用游戏后台的设计模式实践总结

搞业务开发的时候,发现有一些代码的开发会让人感觉非常简便舒服,有一些代码的开发却有时候会让人感觉心智负担比较大。 逐步总结的过程中,发现让开发人员写起来感觉舒服的代码,大概率是因为当前模块与其他模块代码耦合度低,开发人员无需花费过多的精力去关注其他模块的实现…

基于java swing 药品销售管理系统

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

Integer和int相比较

Integer和int相比较 一、 Integer类 在Java中,”万物皆对象“,但是八种基本数据类型是个例外,出于性能等方面的考虑,八种基本数据类型没有类和对象的概念,相应的变量值直接在栈内存中存放。但这带来了一些问题&#…

根据对数器找规律、根据数据量猜题目解法

题目一 小虎去买苹果,商店只提供两种类型的塑料袋,每种类型都有任意数量。1)能装下6个苹果的袋子2)能装下8个苹果的袋子小虎可以自由使用两种袋子来装苹果,但是小虎有强迫症,他要求自己使用的袋子数量必须…

NAND闪存市场2023年Q3增长2.9%,Q4有望激增20%

TrendForce报告显示,NAND闪存市场在2023年第三季度出现了关键转折,主要由三星的战略性减产决定驱动。最初,市场对终端用户需求的不确定性以及对平淡旺季的担忧导致买家采取保守的方法,库存低、采购慢。然而,随着三星等…