vhdl实验报告——bcd码转换成二进制码(免费哦~)
BCD码怎么转换成标准二进制形式

BCD码怎么转换成标准二进制形式BCD码怎么转换成标准二进制形式?二进制编码的十进制数,简称BCD码(Binarycoded Decimal). 这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。
4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。
最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。
点击此处将给出十进制数和8421BCD编码的对应关系表。
1、BCD码与十进制数的转换BCD码与十进制数的转换.关系直观,相互转换也很简单,将十进制数75.4转换为BCD码如:75.4=(0111 (0101.0100)BCD 若将BCD码1000 0101.0101转换为十进制数如: (1000 0101.0101)BCD=85.5注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。
例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时,其值为18。
又例如00011100,如将其视为二进制数,其值为28,但不能当成BCD码,因为在8421BCD码中,它是个非法编码 .2、BCD码的格式计算机中的BCD码,经常使用的有两种格式,即分离BCD码,组合BCD码。
所谓分离BCD码,即用一个字节的低四位编码表示十进制数的一位,例如数82的存放格式为:_ _ _1 0 0 0 _ _ _ _0 0 1 0 其中_表示无关值。
组合BCD码,是将两位十进制数,存放在一个字节中,例82的存放格式是1000 00103、BCD码的加减运算由于编码是将每个十进制数用一组4位二进制数来表示,因此,若将这种BCD码直接交计算机去运算,由于计算机总是把数当作二进制数来运算,所以结果可能会出错。
verilog实现任意位二进制转换BCD

verilog实现任意位二进制转换BCD一直感觉这是个很简单的问题,直到突然自己连BCD都不太清楚的时候,才发现这没有看起来那么简单,这里介绍里任意位二进制转为BCD的verilog代码,这个转换方法也可以用在C上面,此为原创,转载请注明,谢谢。
基础知识:BCD:BCD码又称为8421码,意义:之所以有时候需要将binary转换为BCD,一般是用在本科的实验中,为了将binary显示在数码管中,当然还有很多应用,只是目前我还没有用到。
转换算法:左移加3法移位加3法的具体原理,在网上感觉也没有人能够说的清楚,以后找到书籍再说吧。
下面解释下左移加三算法。
这里以8bit二进制数FF做例子。
该算法的操作为上图。
下面对上图的操作进行详细的解释:由于8bit的二进制最大为FF,转换为十进制为255。
所以需要使用三个BCD码来表示所有的8bit二进制数。
上图的hundreds表示百位的BCD,tens表示十位的BCD,Units表示个位的BCD。
算法的操作为一直将binary数据左移,移出的数据按顺序存在hundreds,tens,Units。
例如上面的shift1,shift2,shift3操作后,Units变为了0111,至于为何在shift3后进行add3操作,是因为在算法中每一次左移,都要对hundreds,tens和Units进行判断,如果hundreds,tens和Units里面的值大于或等于5,就将hundreds,tens和Units自加3.所以shift3后,Units里面为0111,表示为7,此时不能左移,而是对Units加三操作,所以Units的值从0111变为了1010.值得注意的是,只要hundreds,tens和Units中任意一个的值大于或等于5(0101),就要先进行一次自加三的操作,然后才能继续左移,后面的操作同上。
注意2:n位的binary就需要进行n次左移注意3:最后一次左移不需要进行add3操作注意4: 亲自推导16位的,和24位的binary转换,结果正确,所以该算法适用于任意位binarytoBCD,当然这种论断没有足够的理论依据。
(实验三)BCD码转换为二进制码实验报告

实验三BCD码转换为二进制码一、实验目的1、掌握BCD码到二进制码的转换方法。
2、用于BCD码转入信号处理。
二、实验内容对于内存中给定的几个十进制BCD码数转换为二进制数。
三、实验程序框图四、实验步骤脱机模式:⑴在P.态下,按SCAL键,然后在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。
⑵在P.态下,输入2D40,按EXEC键。
⑶复位RST键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。
联机模式:(1)在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。
(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S3.ASM文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(3)按“系统复位”键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。
五、实验程序清单X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S3.ASMCODE SEGMENT ;S3.ASM ,BCD 码转换为2 进制码ASSUME CS:CODEORG 2D40HSTART: MOV CX,0004H ;输入数据长度。
[4000]:01,02..MOV DI,4000H ;结果存放在 [4100]: 0C,00,. CON1: MOV AL,[DI]ADD AL,AL ;*2MOV BL,ALADD AL,AL ;*2ADD AL,AL ;*2ADD AL,BL ;*10INC DIMOV AH,00ADD AL,[DI] ;BCD码个位,十位相加MOV [DI+0FFH],AX ;存结果INC DI ;结果地址加1LOOP CON1 ;CX不为零继续JMP $CODE ENDSEND START。
实验二二进制到BCD转换讲述

课程名称:微机原理及应用实验
实验项目名称:二进制到BCD转换
学院:物理科学与技术学院
专业:应用物理
指导教师:
报告人:学号:班级:应用物理班
实验时间:2015-10-19
实验报告提交时间:2015-11-02
教务处制
一、实验名称:
二进制到BCD转换
二、实验目的
(1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作;
JZ LP ;两个数比较,相等,比较后ZF=0,跳转至LP
;OR DL,30H
INT 21H ;返回DOS
;------------------------------------------
;程序结束必须要有的两条指令
MOV AX, 4C00H ;
INT 21H ;
;------------------------------------------
CODE ENDS
END START ;最后一行要按回车键
MOV CL, 0 ;计数器清零
NEXT4:
SUB AX, 10000 ;减10000
JC OVER4 ;有借位说明不够减
INC CL ;否则够减,计数器加1
JMP NEXT4 ;无条件跳转
OVER4:
ADD AX, 10000 ;最后恢复不够减时AL的余数
MOV BCD_0,CL ; CL累计的计数值赋予万位变量
用到主要寄存器:
AX:开始用于目标数接收,后面用于每次保存被除数
CX:用作每次除数保存
DX:用作每次除数保存
减法实现:
算法说明:
五位数先循环减10000,直到不够减了,做减法的次数就是万分位的结果,用CL累加次数得到;将不够减之前一次的余数恢复,再循环减去1000,直到不够减了,做减法的次数就是千分位的结果,用CL累加次数得到;将不够减之前一次的余数恢复,再循环减去100,直到不够减了,做减法的次数就是百分位的结果,用CL累加次数得到;将不够减之前一次的余数恢复,再循环减去10,直到不够减了,做减法的次数就是十分位的结果,用CL累加次数得到;最后恢复的正余数就是个位的结果。
二进制到BCD转换实验报告[本站推荐]
![二进制到BCD转换实验报告[本站推荐]](https://img.taocdn.com/s3/m/616743020a4c2e3f5727a5e9856a561252d321fc.png)
二进制到BCD转换实验报告[本站推荐]第一篇:二进制到BCD转换实验报告[本站推荐]二进制到BCD转换实验报告班级姓名学号日期一、实验目的:1.掌握简单的数值转换算法2.基本了解数值的各种表达方法二、实验要求:将给定的一个二进制数,转换成十进制(BCD)码。
三、实验内容:1、给累加器赋值,如#1232、将累加器的内容拆分为三个BCD码,并存入Result开始的三个单元。
四、程序及运行结果截图DATASEGMENT RESULT_1DBRESULT_2DBRESULT_3DBDATAENDSSTACKSEGMENTATACK STADBDUP(0)STACK_TOP DB0 STACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX LEASP,ATACK_TOP MOVAX,123H MOVCL,100 DIVCL MOVRESULT_1,ALMOVCL,8 SHRAX,CL MOVCL,10 DIVCL MOVRESULT_2,AL MOVRESULT_3,AHADDRESULT_1,30H ADDRESULT_2,30H ADDRESULT_3,30HMOVDL, RESULT_1 MOVAH,02H INT21HMOVAX,4C00H INT21H CODEENDSENDSTART五、实验过程中遇到的主要问题;将 A 拆为三个 BCD 码, 并存入 Result 开始的叁个单元Result equ20horgljmp StartBinT oBCD:movb, #100divabmovResult, a;除以 100, 得百位数mova, bmovb, #10divabmovResult+1, a;余数除以 10, 得十位数movResult+2, b;余数为个位数retStart:movsp, #40hmova, #123call BinT oBCDljmp $end六、实验后的心得体会第二篇:二进制与十进制的转换二进制与十进制的转换2007年07月06日星期五 13:21教学目标:知识目标:知道二进制与十进制之间的转换方法操作目标:能在二进制与十进制之间进行进制转换教学重点:二进制与十进制之间的转换教学难点:二进制与十进制之间的转换教学过程:一、复习引入上一节课已经学习了什么是二进制以及二进制的运算。
数字逻辑转换实验报告

一、实验目的1. 理解和掌握数字逻辑转换的基本原理和方法。
2. 掌握将不同编码形式的数字信号相互转换的技巧。
3. 通过实验验证数字逻辑转换电路的正确性和性能。
二、实验原理数字逻辑转换是指将一种数字信号转换为另一种数字信号的过程。
常见的数字逻辑转换包括BCD码与二进制码之间的转换、格雷码与二进制码之间的转换、8421码与余3码之间的转换等。
本实验主要涉及以下几种转换:1. BCD码与二进制码之间的转换:BCD码(Binary-Coded Decimal)是一种用4位二进制数表示1位十进制数的编码方式。
将BCD码转换为二进制码时,只需将每一位BCD码直接转换为对应的二进制码即可。
2. 格雷码与二进制码之间的转换:格雷码(Gray Code)是一种循环码,相邻两个码字之间只有一个位码发生改变。
将格雷码转换为二进制码时,只需将格雷码的最低位取反即可。
3. 8421码与余3码之间的转换:8421码是一种有权码,从左到右,第一位1代表2,第二位1代表4,第三位1代表2,第四位1代表1。
余3码是由8421BCD码加上0011形成的一种无权码。
将8421码转换为余3码时,只需将8421码的每一位加3即可。
三、实验设备与器材1. 数字逻辑实验箱2. 数字逻辑转换电路模块3. 示波器4. 信号发生器5. 电源四、实验步骤1. 连接实验电路:根据实验要求,连接数字逻辑转换电路模块,并确保电路连接正确。
2. 设置输入信号:使用信号发生器产生待转换的数字信号,并将其输入到转换电路中。
3. 观察转换结果:使用示波器观察转换电路的输出信号,记录实验数据。
4. 比较理论值与实验值:根据实验原理,计算理论值,并与实验值进行比较。
5. 分析实验数据:分析实验数据,总结实验结果,验证数字逻辑转换电路的正确性和性能。
五、实验数据及分析1. BCD码与二进制码之间的转换输入BCD码:0011理论转换结果:0001 0011实验转换结果:0001 00112. 格雷码与二进制码之间的转换输入格雷码:1100理论转换结果:1110实验转换结果:11103. 8421码与余3码之间的转换输入8421码:0101理论转换结果:0110实验转换结果:0110通过实验数据的对比分析,可以得出以下结论:1. 实验电路能够正确实现BCD码与二进制码、格雷码与二进制码、8421码与余3码之间的转换。
【创新实验】基于VHDL的二进制与十进制之间的相互转换

《创新实验》——可编程逻辑设计基础实验题目:二进制与十进制之间的相互转换指导教师:周克峰小组成员:摘要十进制-二进制转换的编码器是将十进制数0、1、2、3、4、5、6、7、8、9等十个信号编成二进制代码的电路。
它的输入是代表0~9这个10个数符的状态信号,有效信号为1,输出是响应的BCD码,其特点是任何时刻只允许输入一个有效信号。
二进制-十进制转换的编码器是十-二进制转换的逆过程,它的功能是将输入的一位BCD码译成10个高、低电平输出信号。
当输入一个BCD码时,就会在它所表示的十进制数的对应输出端产生一个低电平有效信号。
在本次的实验中,主要使用开发软件ISE和芯片Xilinx Spartan-II来实现二进制与十进制之间的相互转换。
目录一、概述 (5)1、PLD/FPGA 结构与原理 (5)1)PLD/FPGA原理2)查找表(L ook-Up-Ta ble)的原理与结构2、开发软件与芯片 (5)1)开发软件2)芯片介绍二、算法设计原理 (6)1、十进制-二进制的转换2、二(BCD)-十进制的转换三、工程开发流程 (7)(一)工程开发流程 (7)1、设计输入2、综合3、实现4、验证5、下载(二)实际运用过程 (9)1、设计输入 (9)1)建立源文件2)输入原理图3)行为仿真2、设计实现 (15)1)时序仿真2)产生报告并修改设计3、配置或编程 (17)1)编程器件2)验证电路3)下载四、实验总结 (20)五、实验心得 (21)六、参考文献 (21)一、概述1、PLD/FPGA 结构与原理1)PLD/FPGA原理:PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或PLD/FPGA。
单片机实验报告_二进制到BCD转换

单片机实验报告成员:学号:实验时间:实验1 二进制到BCD转换一、实验目的学习星研Star16L仿真器系统的基本操作,熟悉EL-Ⅱ型通用接口板实验电路,掌握简单的数值转换算法。
二、实验仪器和设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路。
三、实验内容1)将给定的一个单字节二进制数(存放在R2中),转换成非压缩的二—十进制(BCD)码,并存放到R3R4R5中。
2)将给定的一个双字节二进制数(存放在R2R3中),转换成压缩的二—十进制(BCD)码,并存放到R4R5R6中。
四、参考程序清单及框图1)单字节二进制到非压缩BCD;NAME T1_1_BCDORG 0000HLJMP BCD1ORG 0100HBCD1: MOV A, R2 ;二进制数送AMOV B, #100 ;100作为除数送入BDIV ABMOV R3, A ;百位数送R3,余数在B中MOV A, #10 ;分离十位和个位数XCH A, B ;余数送A,除数10在B中DIV AB ;分离出十位在A, 个位在B中MOV R4, A ;十位送R3MOV A, BMOV R5, A ;个位送R4NOPLJMP BCD1END2)双字节二进制到压缩BCD;NAME T1_2_BCDORG 0000HLJMP BCD2ORG 0150H BCD2: CLR AMOV R4, AMOV R5, AMOV R6, AMOV R7, #16 LOOP: CLR CMOV A, R3RLC AMOV R3, AMOV A, R2RLC AMOV R2, AMOV A, R6ADDC A, R6DA AMOV R6, AMOV A, R5ADDC A, R5DA AMOV R5, AMOV A, R4ADDC A, R4DA AMOV R4, ADJNZ R7, LOOPLJMP BCD2END参考程序框图:Array单字节二进制数转换成非压缩BCD码框图五、思考题如何验证程序的正确性?答:输入数据,查看得出的结果是否与理论上的结果一致。