8421bcd码转换二进制

电子说

1.3w人已加入

描述

8421BCD码

算机内毫无例外地都使用二进制数进行运算,但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员,要理解这些数的含义是没问题,但对非专业人员却不那么容易的。由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制码,称为BCD码,它是一种以二进制表示的十进制数码。

二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’。‘1’符号串组成的代码。其运算模式正是二进制。19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号“0‘’。‘’1‘’的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。

8421bcd码转换二进制

用MSI器件设计。 设两位8421BCD码为D7D6D5D4D3D2D1D0转换后的B码为B685B4B3B2B1B0则

二进制

上式中加横线部分都可以用一个MSI加法器实现S为加法器的输出S的下标代表模块序号和输出高低位号。

逻辑图如图5.2.1所示。

二进制

[解法2]

VHDL设计。

根据上述解题方法在VHDL程序的结构体设计中可采用结构描述的方法其VHDL主程序如下:

LIBRARY ieee;

USE ieee.Std_logic_1164.ALL; USE work.components.ALL;

ENTITY xiti50 1 IS PORT(d:IN Std_logic_vector(7 downto 0);

b:OUT Std_logic_vector(6 downto 0));

END xiti501;

ARCHITECTURE xiti501_ar OF xitiS01 IS SIGNAL m:Std_logic_vector(3 downto 0);

SIGNAL n1n2:Std_logic;

COMPONENT v74x283 PORT(ab:IN std_logic_vector(3 downto 0);

ci:IN std_logic;

s:out std_logic_vector(3 downto 0);

co:OUT std_logic);

END COMPONENT;

BEGIN u1:v74x283 PORT MAP(‘0’&d(3 downto 1)d(7 downto 4)‘0’mn1);

u2:v74x283 PORT MAP(“00”&m(3 downto 2)d(7 downto 4)‘0’b(6 downto 3)n2);

b(0)《=d(0);

b(2 downto 1)《=m(1 downto 0);

END xiti501_ar;

[解法1]

用MSI器件设计。

设两位8421BCD码为D7D6D5D4D3D2D1D0,转换后的B码为B685B4B3B2B1B0,则上式中加横线部分都可以用一个MSI加法器实现,S为加法器的输出,S的下标代表模块序号和输出高低位号。逻辑图如图5.2.1所示。[解法2]VHDL设计。根据上述解题方法,在VHDL程序的结构体设计中,可采用结构描述的方法,其VHDL主程序如下:

LIBRARYieee;

USEieee.Std_logic_1164.ALL;

USEwork.components.ALL;

ENTITYxiti501ISPORT(d:INStd_logic_vector(7downto0);

b:OUTStd_logic_vector(6downto0));

ENDxiti501;

ARCHITECTURExiti501_arOFxitiS01ISSIGNALm:Std_logic_vector(3downto0);

SIGNALn1,n2:Std_logic;

COMPONENTv74x283PORT(a,b:INstd_logic_vector(3downto0);

ci:INstd_logic;

s:outstd_logic_vector(3downto0);

co:OUTstd_logic);

ENDCOMPONENT;

BEGINu1:v74x283PORTMAP(‘0’&d(3downto1),d(7downto4),‘0’,m,n1);

u2:v74x283PORTMAP(“00”&m(3downto2),d(7downto4),‘0’,b(6downto3),n2);

b(0)《=d(0);b(2downto1)《=m(1downto0);

ENDxiti501_ar;

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分