数字逻辑课程设计-加法器设计(三位十进制+八位二进制)
首页
寒假期间做的数字逻辑课设,现在整理出来分享给大家。
本文内容参照WUST2019届课程设计报告要求。
课设题目
- 三位十进制加法器,需要用三位数码管显示
- 八位二进制加法器,也需要用三位数码管显示
课程设计目的
1.初步掌握数字系统电路的一般设计方法,具备对逻辑电路独立设计能力。
2.进一步熟悉常用电子器件的类型和特性,并掌握合理选用的原则。
3.提高综合运用所学的理论知识,独立分析和解决问题的能力。
4.初步掌握对数字系统电路的安装与调试等基本技能。
设计报告要求
- 摘要,介绍本设计的要点 。
- 设计方案论证与选择,理论依据。
- 实现设计方案的原理框图,系统结构图,明确功能划分。
- 单元电路设计,包括元器件选择和相关电路参数设计与计算。
- 运行效果或仿真效果。
- 本设计的收获与体会。
- 参考文献。
分析
当初有12个题目啊,我选了一个看起来最简单的题目,但后面思考了以下,其实并不简单呜呜呜,仍需要解决3个问题
- 两个加法器都存在进位的可能(例如三位十进制加法器得到四位数,八位二进制加法器得到九位二进制数)
- 三位十进制相加需要调整系数
- 八位二进制相加,其结果可能是九位二进制,最大的问题就在于,怎么样将九位二进制转化成BCD码呢?而用我们目前已经学习过简单常规方法是做不到的(可能会做到?但本人太菜了没找到呜呜)
看到这你可能感觉莫名其妙,没事,我带你先看看思路
思路
- 三位十进制加法:
- 第一步:十进制一位一位加(74HC147,74HC283)
- 个位+个位=结果+进位
- 个位进位+十位+十位=结果+进位
- 十位进位+百位+百位=结果+进位
- 所用芯片:
- 74HC147:十进制转二进制
- 74HC283:四位二进制相加
- 所用芯片:
- 第二步:将得出来的三个十进制数(可能是四进制)拼起来就是结果 (7SEG-BCD)
- 结果个位(十进制)----> 结果个位(二进制)----> 数码管显示
- 结果十位(十进制)----> 结果十位(二进制)----> 数码管显示
- 结果百位(十进制)----> 结果百位(二进制)----> 数码管显示
- 结果百位(十进制)----> 结果百位(二进制)----> 数码管显示
- 所用芯片:
- 7SEG-BCD:数码管显示用
- 第三步:用isis连起来
- 第一步:十进制一位一位加(74HC147,74HC283)
是不是看起来贼简单,我也觉得,并且洋洋得意以为自己这么快就完成了一半儿,但临近验收的时候,某一天天气晴朗,我闲来无事测试了以下 ,发现问题了,啥问题呢,就是数码管的问题:
当相应位相加产生进位时,数码管显示了稀奇古怪的东西,举个例子
无进位:
4+5=9 //无进位
输入4
输入5
结果:数码管显示9
输出是没有问题的,数码管显示9
有进位:
5+5=10 //有进位
输入5
输入5
结果:数码管显示0
但实际结果,数码管显示的是10!
哈,逗我呢,这是10?
没错,就是十,而不是0!这就是问题所在。
个位相加产生的进位送到数码管的时候,不是0而是10,因此就出现了这个诡异的图像
所以我们需要修正系数!
直接上连接图
这里用到了一些数学技巧,不会百度去我懒得讲了
后面那个芯片直接连数码管就行
- 八位二进制
- 一开始我是这样想的
- 直接用二进制加减,多简单呐!
可是问题来了,需要用数码管显示,就需要将结果转换成BCD码,那我怎么转换成BCD码呢?
如果结果是八位二进制,也比较简单,但结果还有可能是九位二进制,这个咋办呢?
于是经过我不断的度娘,找到了一个芯片74185,经过一段级联之后,就可以实现九位二进制转十进制
级联方法:
我看不懂,为此还请教了老师,结果老师说:是个用法比较复杂的芯片,如果看不懂直接这么连
然而,问题来了,我的isis不能仿真这个芯片,哭泣~
于是这个思路就game over了
接着,我又换了一个新的思路
用计数器做加法器的思路,是在度娘上找到的,基本正确,但因为软件isis自己的bug,所以不能完完全全照着图连。
这是老师给出的解决方法:
也就是借位管脚是坏的,要自己用与非门构建。
除此之外,没有什么别的问题了
下面是俩个加法器的总图
三位十进制电路图
八位二进制电路图
两个加法器的dsn文件下载地址戳这里:加法器设计
文章最后也附有相应的百度云链接
八位二进制的用法
因为是用的计数器,所以使用顺序不能错
在开始仿真前一定要将中间的开关打开,左侧的输入调整好
在仿真开始后,按下中部开关,就可以得出结果
若想继续计算,则需要关闭仿真重复上述步骤
一次仿真只能计算一个加法式子
示例
255+255=510
也就是11111111+11111111=510
显示正确
两个加法器的dsn文件在这里:传送门
文章最后也附有相应的百度云链接
原先设置的是免费资源,后面系统给改了(嘤嘤嘤)。
这里贴一个百度云盘的链接
链接:点一下下载百度云文件
提取码:nkcn
数字逻辑课程设计-加法器设计(三位十进制+八位二进制)相关推荐
- 数字逻辑课程设计,简单的8位模型计算机verilog设计
简单8位模型计算机 0.摘要 1.绪论 1.1 模型计算机简介 1.2 设计主要内容 1.2.1 设计指标 1.2.2 设计思路 2.系统设计 2.1模型计算机原理 2.2 模型计算机组成 2.3 模 ...
- 数字逻辑课程设计-数字时钟时分秒的设计
数字逻辑课程设计-数字时钟 ------------- 课程设计的三个简单要求 1.设计一个能显示日期.小时.分钟.秒的数字电子钟,并具有整点报时的功能. 2.由晶振电路产生1HZ标准的信号.分.秒为 ...
- 电路与数字逻辑课程设计-电子钟功能
以下内容为我电路与数字逻辑实验的实验报告内容. 实验部分采用的是logisim实现 本实验因时间问题做的比较仓促,有许多不足之处,还请谅解. 想要完整代码的可以在我的博客资源进行下载 电路与数字逻辑课 ...
- Verilog语言简介(数字逻辑课程笔记)
Verilog语言简介 Verilog语言简介(数字逻辑课程笔记) 概述 数据类型 模块构建 操作符 赋值语句 连续赋值 过程赋值 过程赋值语句块:always语句块 阻塞赋值 非阻塞赋值 过程赋值语 ...
- 数字从后往前每三位加个逗号
数字从后往前每三位加个逗号 // 数字从后往前每三位加个逗号(不足补零)NumberFilter(num) {let n = (Array(8).join(0) + num).slice(-8)let ...
- 51单片机实现三位十进制数加减乘除运算
51单片机实现三位十进制数加减乘除运算 一.题目 51单片机IO接口作业 请将附件给出的Proteus图用51单片机完成一个计算器功能. 1.显示采用动态分时8位共阳数码管输出. 2.采用4*4矩阵键 ...
- 数字逻辑课程设计拔河游戏机
<数字逻辑> 课 程 设 计 报 告 题目:拔河游戏机 专业:计算机科学与技术 班级:14计科2班 组长:张钦颖(1414080901218) 成员:无 ...
- js 数字递增递减_js验证连续两位数字递增或递减和连续三位数字相同
验证 function isPassword(){//连续三位数字相同 var str = $("#testid").val(); //var patrn=/(.)*(.)\2{2 ...
- 数字逻辑 课程设计 多功能电子钟 Quartus II
设计方案 1.系统功能描述 (1) 系统输入:系统状态及校时.定时转换的控制信号为k.set:时钟信号clk,采用1024Hz:系统复位信号为reset.输入信号由按键产生. (2) ...
最新文章
- 数据中心告别柴发还需要多久?
- StackBlitz里无法重命名项目的问题
- 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
- php 目录管理,PHP_php目录管理函数小结,chdir : 改变目录。 dir : 目录类 - phpStudy...
- 全国计算机一级试题重难点,全国计算机等级考试一级MS选择题(重难点)部分.doc...
- linux怎么装vnc插件,linux下安装基于GNOME的VNC连接工具Vinagre
- mysql _bin编码_mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
- zz:测试还是开发?
- java中将list、map对象写入文件
- 数字信号处理基础----拉普拉斯变换与Z变换
- Win10下ImageAI-gpu(tensorflow-gpu)环境安装(cuda及cuDNN自动安装)及实时对象检测
- excel制作表格的详细步骤
- 我的微语录周记2012-08-20---2012-…
- 本地telnet使用
- 笔记本联想(Lenovo)G40-70M加装内存和SSD固态硬盘
- 一.pandas的导入读取
- POJ1655 树重心模板题
- 交换机和路由器技术-13-三层交换
- 贝塞尔曲线是什么?如何用 Canvas 绘制三阶贝塞尔曲线?
- 如何管理好工厂,生意人值得收藏。
热门文章
- 虚幻引擎图文笔记:Lowpoly Asset低面几何资产开发技巧
- 微信小程序支付功能-服务器端实现(附源码)
- Redis(超级无敌认真好用,万字收藏篇!!!!)
- 移动互联网,还是离农村还有点远
- 2023-2028年中国花炮行业市场供需与投资预测分析报告
- 图像处理注意力机制Attention汇总(附代码)
- VCS4 debug with DVE
- [Java] if(a==1 a==2 a==3),为true,你敢信???
- linux 两个 media,初学linux 请教一下 media和mnt
- Java正则表达式学习及使用案例干货