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

简易加减运算器的制作

一、功能要求—基本功能

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.mzph.cn/news/211987.shtml

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

相关文章

React中每次渲染都会传入一个新的props.children到子组件?

传入props.children后, 为什么会导致组件的重新渲染? 问题描述 在 react 中, 我想要对组件的渲染进行优化, 遇到了一个非常意思的问题, 当我向一个组件中传入了 props.children 之后, 每次父组件重新渲染都会导致这个组件的重新渲染; 它看起来的表现就像是被memo包…

MTU与MSS

MTU:一个网络包的最大长度,以太网中一般为1500各字节。 MSS:除去头部之后,一个网络包所能容纳的TCP数据的最大长度。 应用程序调用write后,将要发送的数据被交给TCP/IP协议栈进行。 协议栈不关心应用的数据内容&…

四:爬虫-Cookie与Session实战

四:Cookie与Session实战 ​ 在浏览网站的过程中,我们经常会遇到需要登录的情况,有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站,但是有时候过一段时间就需要重新登录。还有一些网站,在打开浏览器…

c语言归并排序(详解)

归并排序是一种分治算法,它将列表分割成较小的子列表,然后递归地对子列表进行排序,最后将这些子列表合并以产生已排序的列表。基本概念包括: 分割:将列表分割成较小的子列表,直到子列表的长度为1或0。排序…

Leetcode—219.存在重复元素II【简单】

2023每日刷题&#xff08;五十三&#xff09; Leetcode—219.存在重复元素II 实现代码 class Solution { public:bool containsNearbyDuplicate(vector<int>& nums, int k) {unordered_map<int, int> m;int n nums.size();for(int i 0; i < n; i) {if(m…

vs的生成事件error MSB3073

生成事件设置位于&#xff1a;项目-》属性-》生成事件&#xff1b; 生成事件有&#xff1a;生成前事件、链接前事件、生成后事件 以生成前事件为例&#xff1a;可以用于一些库文件的配置 COPY ..\dll\*.* .\bin\ MKDIR .\bin\libx COPY ..\dll\libx\*.* .\bin\libx这里是在开…

[Decipher@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复

导言&#xff1a; 在数字世界的边缘&#xff0c;[support2022cock.li].faust、[tsai.shenmailfence.com].faust、[Encrypteddmailfence.com].faust、[backupsairmail.cc].faust、[Deciphermailfence.com].faust勒索病毒如同黑暗的幽灵&#xff0c;威胁着我们珍贵的数字财产。本…

漏洞复现-大华dss struts2-045表达式注入漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【webpack】初始化

webpack 旧项目的问题下一代构建工具 Vite 主角 &#xff1a;webpack安装webpack1&#xff0c;mode的选项2&#xff0c;使用source map 精准定位错误行数3&#xff0c;使用watch mode(观察模式)&#xff0c;自动运行4&#xff0c;使用webpack-dev-server工具&#xff0c;自动刷…

Linux_CentOS_7.9配置oracle sqlplus、rman实现上下按键切换历史命令等便捷效率功能之简易记录

配置oracle sqlplus以及rman可以上下按键切换历史命令等便捷效率功能 设置前提是已经yum安装了rlwrap软件具体软件下载及配置参考文章http://t.csdnimg.cn/iXuVK su - oracleVim .bash_profile ## 文件中增加如下的别名设置 ---------------- alias sqlplusrlwrap sqlplus…

c++的算术生成算法

#include<numeric>//算术生成算法头文件 要加的头文件#include<numeric> accumulate 是 C 标准库中的一个算法函数&#xff0c;用于计算给定范围内的数值之和&#xff0c;它位于 <numeric> 头文件中。它的函数原型如下&#xff1a; template <class In…

Matlab之带时区的日期时间数据和不带时区的日期时间数据相互转换方法

使用datetime和datetimezone函数 通过使用datetime和datetimezone函数&#xff0c;可以将带时区的日期时间数据转换为不带时区的数据&#xff0c;或者将不带时区的日期时间数据转换为带时区的数据。这样可以满足坐标区的配置要求。 1、将带时区的日期时间数据转换为不带时区的…

理解IoC容器初始化

问题&#xff1a;当自己面试或者背诵八股文时&#xff0c;会背到各种各样的spring底层的东西&#xff0c;自己越看越迷糊。 OS&#xff1a;不知道兄弟们是不是也会这样&#xff1f;如果大家没有说明我太菜了。 原因&#xff1a;就是自己学的框架越来越多&#xff0c;很多框架…

​types --- 动态类型创建和内置类型名称​

目录 动态类型创建 标准解释器类型 附加工具类和函数 协程工具函数 源代码: Lib/types.py 此模块定义了一些工具函数&#xff0c;用于协助动态创建新的类型。 它还为某些对象类型定义了名称&#xff0c;这些名称由标准 Python 解释器所使用&#xff0c;但并不像内置的 int …

代码规范及开发工具

代码规范及开发工具&#xff1a; 前端&#xff08;vscode、idea&#xff09;: JavaScript规范&#xff1a; 1. 谷歌开源项目风格指南&#xff1a;JavaScript 、TypeScript篇 https://zh-google-styleguide.readthedocs.io/en/latest/google-typescript-…

P8625.生命之树

求最大的子树之和 维护包含当前节点的最大子树之和就好了 #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e610; ll w[N]; vector<int>g[N]; ll f[N]; ll res;ll dfs(int u,int father){f[u] w[u];for(auto &t:g[u]){if(tf…

2023.12.10 homework

五年级一元一次方程

C语言作业6

1.联合体也会完全浪费空间 2.在结构体中 注意好偏移量和实际是第几个的区别 那个对齐数是和偏移量有关的 (就用我之前的那个就行了) 3. 字节序 才有大小端

参数占位符#{}和${}

#是预处理而$是直接替换 Mybatis在处理#{}时&#xff0c;会将SQL中的#{}替换成占位符&#xff1f;&#xff0c;再使用preparedStatement的set方法来赋值。而Mybatis在处理 时&#xff0c;是将 {}时&#xff0c;是将 时&#xff0c;是将{}直接替换成变量的值 我们分别使用#{}和…

Redis AOF源码解析

本文取3.0版本分析&#xff08;各个版本差异很大&#xff0c;4.0以上才有aof和rdb混合模式&#xff09; 触发时机 1、bgrewriteaofCommand函数触发&#xff0c;即在Redis server服务上运行bgrewriteaof命令。 1-1、当前已经有 AOF 重写的子进程正在执行&#xff0c;重复执行bg…