嵌入式软件--数电基础 DAY 6

news2024/11/15 14:11:12

一、前情复习

1.存储电路的复习

我们刚开始接触的第一个存储电路是SR锁存器。但是SR锁存器存在诸多不足,比如我们不希望出现无意义的状态,于是我们有了D锁存器,再输入电路中加入非门电路,避免了无意义状态,但同时失去了维持存储的功能。再然后,我们的D触发器避免了以上两个缺点。

D触发器依靠上升边沿触发,把原来的异步信号变成了同步信号,显示器不会刷新多次,稳定性增加。这种特性叫做时钟对齐,或者叫硬件对齐和时钟同步。

为了实现多位的存储,在D触发器的基础上,用多个触发器实现了寄存器。

多个寄存器相连,会导致数据同时一口气存入寄存器。为了避免这种情况,又发明了38译码器。

38译码器控制寄存器的写入使能,相当于寻址器。有了38译码器,所有寄存器就有了地址,通过输入地址,访问特指的寄存器。

3位的地址总线,一共能访问8个字节的寄存器内存。

2.计算机电路的复习

一端输入加了非门的或非门

两个二进制数可以产生2个bite的输出。产生一个输出,一个进位。

全加器的两个半加器不会同时产生进位输出,因此需要一个或门来连接。

4位全加器也是如此:

8位ALU:

ALU虽然有很多计算的电路,但只有一个结果能得到输出。

通过选择位,可以从这6个计算电路中选择需要做计算的电路。那么Select算三大总线中那一条?答案是控制总线。

总线的作用是用来影响电路逻辑的,被称为控制总线。影响数据的存储,就是数据总线。

如果想做加法运算,先将Select弄到0b010.

为了让电路向自动化靠近一步,加入内存。

二、向着自动化前进

1.内存加入计算

计算12+34+28

四个bite可以访问16个字节的地址内存

可以编辑地址,2改为12,7改为34,12改为28。

明确目标,我们想算的是加法,12+34+48。选择位select改为010

将Addr地址输入改为2,则地址对应数据是12,输出是C。

拍一下按钮。结果写入寄存器。

Addr改为7,输出结果0x22.

拍一下按钮,继续存入。

继续存入12,拍一下按钮算出结果:

输出改为十进制得:

2.加法计算,先抄数

加法计算第一件事,不是先执行010,而是001.

再拍时钟,2地址对应的12就会抄进去寄存器。

Addr再改7.这个时候不能拍时钟按钮,因为选择位还是001.如果拍了时钟,对应数据就直接抄进去了,不会做加法。所以需要该选择位为010.

同样存进12对应的地址数据48,拍时钟做加法。

多一步抄数的步骤。

再改数据位为000,改写入使能,改地址值,找个空闲地址例如15,改完拍时钟,最终结果存入。

第一步不能直接执行加法

3.添加指令内存并编写指令

目前离自动化还有一段距离,继续改动。再次寻求独立端口的EEPROM,作为指令内存。地址位数4,数据位数8.格式为二进制。

指令内存的八个bit,后面四位放地址,第一位EEPROM的写入使能,ALU的依次占后三位。

看图:

计算25-10+6-3

数据内存:

来分析地址。

分析完毕,可以抄进去了。

在EEPROM里编辑

确定之后,点击运行仿真电路。

点击时钟,输出25.

把指令改为1,再次拍时钟

指令地址改为2,点时钟。

改为3.点时钟

改4,点时钟。

结果已存入地址15

任何语言离不开地址,我们所写的高级语言是靠编译器来完成地址的操作指定的。

三、加入程序计数器,实现自动化

放一个4位寄存器和加法器

这个就是程序计数器。

之后和指令地址链接,实现自动化。

换成时钟信号

可以看出会溢出循环。仍然不完善,需要终止指令。

这套计算程序采用的是哈佛架构,数据与指令分开。

四、用抠门的思想实现指令升级

1.抠门思想

目前为止控制器还没有出现。

当前为了控制电路我们用了八个比特位,有没有可能用七个比特位控制。

选择位Sel中,当是001的时候,写入位总是0.只有寄存器的数据抄入数据内存才会打开写入位。

执行中间计算的时候,不打开写入位。基本绑定了抄入打开写入位,计算关闭写入位的关系。

写入位   选择位

    1          000      绑死   

    0          001

    0          010

    0          011

    0          100

    0          101

    0          110

    0          111

一共八种可能。

因为000这种情况只有写入位1,所以只需要3个bite可以展示八个结果。写入位可以省掉。这就是抠门思想。

基于这种思想,给电路升级。整一个指令集。

控制器:

2.升级电路

从此以后前三位是指令,后五位是数据地址。

计算10+6+18-3-6

使用汇编语言:

load 1  0b 001 00001
add 3   0b 010 00011
add 15  0b 010 01111
sub 7   0b 011 00111
sub 3   0b 011 00011
save 14 0b 000 01110

00100001
01000011
01001111
01100111
01100011
00001110

        指令名称  地址       指令    地址

即使抠出来一个bit,也不影响电路的功能。

通过开关实现计算,其实就是围绕地址指令刻画的流程让他一步步走下去。

以上电路消耗非常大。容易滋生bug.如此芯片、外设的作用就很大了。

五、爱心电路

如何点亮爱心? 按照P00->.P07->p00的顺序

0000 0001
0000 0010
0000 0100
0000 1000
0001 0000
0010 0000
0100 0000
1000 0000

第一步将数据内存的值清空。

填入指令地址。

load 1       0b 001 00001
save 16      0b 000 10000
lshift 0     0b 110 00000
save 16      0b 000 10000
lshift 0      `````
save 16
lshift 0
save 16
lshift 0
save 16
lshift 0
save 16
lshift 0
save 16
lshift 0
save 16
 0b 001 00001
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000
 0b 110 00000
 0b 000 10000

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

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

相关文章

波导模式分析1 高度形变圆波导

摘要:略 简介:略 (主要学习分析方法) 在本文中,提出了一种宽带圆TE01模式转换器的设计方法。为了在宽频带内抑制寄生模式的生成,引入了高度变形的圆波导。对高度变形圆波导中的本征模的特性进行了理论分析。分析显示&…

【 html+css 绚丽Loading 】000026 五行吞灵盘

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 &#x1f495…

harbor部署+docker-compose

harbor部署 harbor介绍 Harbor 是一个开源的企业级容器镜像仓库,用于存储和分发 Docker 镜像及其他容器格式的镜像。 Harbor 提供了一个集中化的存储库,方便团队成员共享和管理容器镜像。你可以将构建好的镜像推送到 Harbor 仓库中,其他成…

CC1链_全网最菜的分析思路

文章目录 1 你必须知道的点1.1 反序列化利用链的起点是readObject()方法1.2 回顾反射执行系统命令1.3 相关类の功能简单介绍1.3.1 InvokerTransformer类1.3.2 ChainedTransformer类1.3.3 ConstantTransformer类1.3.4 总结一下上述3个类调用transform()方法的不同 2 CC1链的环境…

嘴上说“摆烂”的90后,考了最多的PMP证书......

现在,“摆烂”一词经常被大家挂在嘴边,但真正能够安心摆烂的人却没多少,特别是承担着社会主要劳动力的90后们。 大部分90后都是嘴上说着摆烂,但该卷的时候还是得卷,特别是在考证这件事上! 一、PMP考生年龄…

缓存配置错误导致授权绕过

一个电子商务网站它有 2 个资产target.com admin.target.com target.com是面向用户的门户,用户可以去那里购买物品。admin.target.com基本上是卖家的管理门户,卖家可以在其中列出他们的物品,跟踪订单、客户信息等。 我通常使用 Autorize …

国产光耦合器的应用优势

国产光耦合器在近年来的技术发展中表现出了显著的应用优势,尤其是在电子和电力系统中。光耦合器作为一种广泛应用的电子元件,主要用于实现信号隔离、噪声抑制和电压转换等功能。随着国产品牌的不断崛起,国产光耦合器在性能、性价比以及供应链…

基于yolov8的8种人脸表情检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的人脸表情检测系统是一个结合了先进目标检测算法(YOLOv8)与深度学习技术的项目,旨在实时或离线地识别并分类人脸表情(如快乐、悲伤、愤怒、惊讶、恐惧、厌恶、中立等)。以下是一个简短的介绍…

四通道非洲猪瘟检测仪

四通道非洲猪瘟检测仪具有以下功能优势: 高效性能:四通道设计使得可以同时检测多个样本,大大提高了检测效率。这对于大规模养猪场或集中屠宰场来说尤为重要,可以快速筛查出可能感染非洲猪瘟的猪只。 高准确性:四通道检…

纯原生-如何在不破解情况下使用Android监听支付宝微信收款消息

具体思路: 首先支付宝微信收款均有到账通知,这是其app自带属性,也是为了提醒用户; 然后再规则范围内如何合理利用,在这里我们不说使用xposed这些工具,仅使用手机原生功能如何来做; 思路: 1、新建…

Python进阶06-Web服务器

零、文章目录 Python进阶06-Web服务器 1、HTTP协议 HTTP协议相关请参考HTTP协议详解网络相关内容请参考计算机网络详解 (1)HTTP协议 HTTP 协议的全称是(HyperText Transfer Protocol),翻译过来就是超文本传输协议。超文本是超级文本的缩…

图为科技闪耀双展,AI之星智领未来

图为科技同期闪耀2024AGIC深圳(国际)通用人工智能大会与深圳国际电子展,晋升AI领域新星。 人工智能爆炸时代,每一场科技盛会的召开都预示着行业的新风向与无限可能。 作为边缘计算与人工智能领域的佼佼者,图为科技携带前沿技术与创新产品&a…

UI自动化测试 —— 下拉选择框弹出框滚动条操作实践!

前言 UI测试,也称为用户界面测试,是一种测试类型,旨在检查应用程序的界面是否工作正常,以及是否存在任何妨碍用户行为且不符合书面规格的BUG。UI自动化测试则是利用自动化工具来执行这些测试,以提高测试效率和准确性.…

【ubuntu使用笔记】使用timeshift备份ubuntu系统

使用timeshift备份ubuntu系统 安装timeshift sudo apt install timeshift建立备份点 sudo timeshift --create --comments "fist" --tags D查看备份点 sudo timeshift --list参考 三种Ubuntu系统全盘备份与恢复方法—tar、timeshift、systemback

linux访问github网速太慢 the remote end hung up unexpectedly问题

linux访问github网速太慢 the remote end hung up unexpectedly问题 pip install githttps://github.com/zhanghang1989/PyTorch-Encoding/时遇到fatal: the remote end hung up unexpectedly 原因 linux访问github网速太慢 措施: 确定ip: https://link.…

CRM 客户管理系统哪个好用?本篇盘点给你答案!

本文将盘点15款CRM客户管理系统,为企业选型提供参考 。 CRM 客户管理系统哪个好用?这是众多企业在发展过程中常常思考的问题。 CRM 客户管理系统就如同企业的得力助手,能把企业的客户资源管理得井井有条。对于企业来说,如果没有一…

【Mybatis】Mybatis-Plus 高级

1、关于插件 1.1、插件机制 MyBatis 允许你在已映射语句执⾏过程中的某⼀点进⾏拦截调⽤。默认情况下,MyBatis 允许使⽤插件来拦截的⽅法调⽤包括: Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)Par…

vTESTstudio系列12--vTESTstudio中的动态函数库介绍2

在上期的文章(vTESTstudio系列11--vTESTstudio中的动态函数库介绍1)中,我们详细介绍了osek_tp.dll的接口,本章开始给大家介绍如何通过osek_tp.dll的接口去发送诊断指令,Let‘s Go!!! 目录 1. CanTp发送数据的函数&am…

插件千兆网络变压器72PIN应用图片和设计H87202D

华强盛电子导读:前面199中间2643后面0038 千兆4口网络变压器是一种常用于网络通信领域的电子元件,它可以将高频率的信号进行隔离和滤波,保护网络设备免受电磁干扰,同时也能确保信号的稳定传输。这种网络变压器通常具有多个端口&am…

使用tyarn下载依赖出现: 无法加载文件 D:\environment_software\nvm_node\tyarn.ps1,因为在此系统上禁止运行脚本。

使用tyarn下载依赖时出现: 无法加载文件 D:\environment_software\nvm_node\tyarn.ps1,因为在此系统上禁止运行脚本。 表示window不能执行ps1文件,可以通过设置命令运行执行ps1文件(PowerShell)。输入命令查看配置&am…